diff --git a/COPYING b/COPYING index 3a807a52..c33ae6f0 100644 --- a/COPYING +++ b/COPYING @@ -1,11 +1,11 @@ -$Id: COPYING,v 1.3 2009-11-16 21:52:45 oops Exp $ +$Id: COPYING,v 1.4 2009/11/19 05:29:49 oops Exp $ GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301 USA + 51 Franklin Street, Fifth Floor, Boston, + MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. diff --git a/COPYING.ko b/COPYING.ko index 1a7056ae..59685e72 100644 --- a/COPYING.ko +++ b/COPYING.ko @@ -1,8 +1,11 @@ -$Id: COPYING.ko,v 1.3 2009-11-16 21:52:45 oops Exp $ +$Id: COPYING.ko,v 1.6 2014/03/02 17:11:28 oops Exp $ -GPL ȿ 켱 ˴ϴ. ѱ -ϱ Ǹ 켱 մϴ. +GPL 한글 문서를 보기 전에 알아둘것. +1. 한글 문서에 해당 하는 내용은 법적인 효력을 가지기 보다는 영문문서에 대한 것을 + 보기 쉽게 한것에 한한다. 실질적인 법적인 문제는 영문문서를 따른다. + +2. 모든 질의는 http://jsboard.kldp.net 으로 하기를 바란다. ------------------------------------------------------------------------------- GNU GENERAL PUBLIC LICENSE @@ -12,306 +15,306 @@ Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -۱ǰ 㰡 Ǵ ,  ü -糪 鵵 ȴ. , ÷ ʴ´. - - ( ) - -Ʈ κ ̼ ش Ʈ - Ϸ Ѵ. ׷ GNU General Public License (, "G -PL"̶ Ѵ) Ʈ ȣ ϱ -ؼ Ǿ. Ʈ ϴ κ Ʈ GPL - ؼ ǰ ȿ̶ ǴܵǴ -귯 ƾ 쿡 GNU Library General Public License - ϰ ִ. Ʈ ̸ Ϸ ؼ - Ǹ Բ 絵Ǵ Ʈ ǹϸ α׷ -  α׷ ִ. - - Ʈ Ǵ '' ܾ () ǹϴ - ƴ϶ ӵ ʴ´ٴ ǹϸ, GPL - Ʈ ̿ , ͻ - Ѵ. ⿡ ҽ ڵ Ǵ Ϻθ ؼ -α׷ Űų ο α׷ â ִ Ǹ ڽ - 絵 ̷ Ǹ Ȯϰ ν ֵ ϱ - ԵǾ ִ. - -GPL GPL ȿ Ʈ 絵 Ǿ絵 Ǹ ϴ װ ܼ - ߰ Ű ϰ ν ڵ Ǹ ϰ -. Ʈ ۰ ϰ ִ ̷ - 絵 ؼؾ߸ Ѵ. - -Ư α׷ 츦 ε, 絵ڴ ڽ 絵޾Ҵ Ǹ - ο Ǵٸ Ǿ絵ڿ ״ ؾ߸ Ѵ. ҽڵ - Ǹ ⿡ ԵǾ ϸ ̿ ׵ ν Ǿ絵 -ڿ ׵ 絵 Ǹ Ȯϰ ֵ ؾ Ѵ. - - Ʈ ؼ Ʈ ݺ - Ǹ ȣѴ: (1) ۱ ν α׷ -ڵ Ǹ ȣѴ. (2) ۱ 絵 ؼ ȿ -ȿ GPL ؼ Ʈ ,  Ǿ絵 - Ѵ. - - Ʈ ϴ 絵 ؼ Ʈ ü - Ͼ , ̴ ڰ Ʈ  - ִ ƴ ִٴ νϰ ־ Ѵ. GPL Ʈ -  ̷ Ǿ -̸ ̴ α׷ ڿ Ʈ ο Ȱ ϴ - ̱⵵ ϴ. - -Ư Ʈ ϴ ۿ . -Ʈ 쿡 Ư㸦 ۹ Բ -Ű ν ̿ ѵ ʵ ϴ ּ ̴. GPL - ̷ ó ϱ ؼ Ư㰡 ۹ ̼ Ư -(, "()" ̶ Ѵ) ϴ 쿡 ؼ -Ʈ Բ ֵ ϰ ִ. - -(copying) (modification), (distribution)  õ ü - . - - , ǰ - - 1 . ̼ GNU General Public License ִ - ۱ڿ ؼ õ ǻ α׷ ۹ ؼ ϰ -ȴ. ǻ α׷ ۹(, "α׷"̶ Ѵ) ̶ Ư α׷ -̳ ̿ õ Ÿ ۹ ǹ ϰ "2 α׷" ̶ ۱ǹ - α׷ Ǵ κ ϰų ٸ α׷ - ִ ؼ â۵ ο α׷ ̿ õ ۹ -ǹѴ. (ķ ٸ α׷ ٸ -ԵǴ Ѵ) "Ǿ絵" GPL ؼ α׷ 絵 - ǹѴ. - - ̼ α׷ , ؼ ȴ. -α׷ Ű ѵ α׷ ࿡ - ü ο 2 α׷ - ؼ ̼ ִ. 2 α׷ δ 2 - α׷ ȿ α׷ ǴѴ. - - 2 . Ǿ絵ڴ α׷ ʴ´ٴ ǰ ۱ - ϴ , 絵 ҽڵ Ǵ Ϻθ  ü ؼ -ؼ ִ. Ǿ絵ڰ α׷ ҽ ڵ带 Ҷ α׷ - ῩǾ ִٴ ǰ ̼ ؼ ׵ 絵 - ״ Ѿ ϸ GPL Բ ؾ Ѵ. - - 쿡 ϱ ؼ ҿ ϱ ؼ - Ǹ Ǹſ ȯ ϴ - ִ. - - 3 . Ǿ絵ڴ ڽ 絵 α׷ Ǵ Ϻθ -̸ ؼ 2 α׷ â ִ. ۵ α׷̳ â۵ 2 -α׷ ҽ ڵ 1 ؼ ׵ Ű ǿ -ؼ Ǵٽ ؼ ִ. - - a) ۵ ۵ ǰ ۵ ¥ Ȯεɼ ֵ - ۼ Ǿ Ѵ. - - b) ϰų Ϸ ۹ Ǵ Ϻΰ 絵 α׷κ - Ļ ̶ ۵ α׷ ̳ ǹ ü - ߿ ؾ Ѵ. - - c) ۵ α׷ Ϲ ° ɾ Է Ŀ ȭ - , ۵ α׷ ̷ ȭ ϰ Ǿ ۱ - װ α׷ ῩǾ ִٴ ׸ ۵ - α׷ ̼ ؼ Ǵٽ ؼ ִٴ - GPL ִ Ŀ Ǵ ȭ ؼ Բ - µ ֵ ۼǾ Ѵ. ( : 絵 α׷ ȭ - ߰ ִٰ ϴ ȯ ׵ µ - ʴ ¿ 쿡 ̸ α׷ û׵ ½Ű - Ƶ ϴ) - - ׵ ۵ κ ԵǾ ִ 2 α׷ ü ȴ. , - ۹ Ư 2 α׷ ԵǾ ִ κа ϴ ϴ - 絵 α׷κ Ļ ƴ϶ ۹ ɸ - 쿡 ش ۹ ̼ - ʴ´. ׷, ̷ ۹ 2 α׷ ԵǾ Բ - ȴٸ ۱ǰ ؿ Ե ۹ ΰ - ̼ ؼ Ǿ ϸ ü۹ Ϻ Ǵ ο - Ǹ ߿ 絵Ǿ Ѵ. - -̷ ۹ ۱ Ǹ Ű ƴ϶ -2 α׷κ ݺ Ļǰų ̷ α׷ - ؼ ̼ ϰ ϱ ̴. - -α׷̳ 2 α׷ α׷κ Ļ α׷ - Բ ġ ü 쿡 ̵ Ļ ۹ - ʴ ̼ ؼ ȴ. - - 4 . Ǿ絵ڴ ϳ ׸ Ű ǿ ؼ 1װ 2 - α׷(Ǵ 2 2 α׷) ڵ峪 - · ؼ ִ. - - a) ڵ峪 ¿ شϴ ҽ ڵ θ 1װ 2 - ǻͰ Է¹ްų ִ · Ʈ ؼ - Ϲ Ǵ ü ؼ Բ ؾ Ѵ. - - b) ڵ峪 ¿ شϴ ҽ ڵ θ ּ 3 ̻ - ִ μ⹰ · 1װ 2 Ʈ - ؼ Ϲ Ǵ ü ؼ ۽Ǻ ϴ 븸 - ؼ ߿ 絵 ֵ Բ ؾ Ѵ. - - c) ڵ峪 ¿ شϴ ҽڵ θ ִ - Բ ؾ Ѵ. ( ׸ 񿵸 ׸ b) ؼ - ڵ峪 ؼ ִ) ۹ - ҽ ڵ ش ۹ ϱ ؼ Ϲ ȣ Ǵ ǥ - ǹϰ, ๰ ҽڵ α׷ ùٸ DZ ؼ - ʿ ̽ , ϰ ġ ؼ ʿ ũƮ - Եȴ. ׷ Ϸ Ŀΰ  ü ֿ κе鿡 - ҽڵ峪 ̳ʸ ´ α׷ ̷ κе - Բ ʾƵ ϴ. - -ڵ峪 ¸ Ư ҷκ ֵ ϴ - , ҷκ ҽ ڵ带 ֵ ϴ Ǿ絵ڿ - ҽڵ带 ڵ峪 ¿ Բ ʾҴ ϴ -ҽ ڵ带 Բ ϴ Ѵ. - - 5 . ̼ ؼ α׷ 絵 ʾҴٸ 絵 -α׷ , ̼ . - õ  ȿ̸ ̼ ϰ ִ - Ǹ ڵ Ҹȴ. , ̼ ʰ 絵 - α׷̶ ϴ ̸ ̼ 絵 ٽ -쿡 α׷ ٽ 絵 3 Ǿ絵ڴ ̼ ؼϴ - Ǹ ִ. - - 6 . Ǿ絵ڴ α׷ 絵 ̼ ν -̼ ޾Ƶ ִ. , Ǿ絵ڿԴ α׷ - ܼ 븸 Ǹ α׷ 2 α׷ ۰ - ʴ´. ̴ Ǿ絵ڰ ̼ ν ߻ - ̴. α׷ (Ǵ 2 α׷) ϰų ϴ - , ̼ ǵ ޾Ƶ̰ڴٴ - Ƿ Ѵ. - - 7 . Ǿ絵ڿ ؼ α׷ (Ǵ 2 α׷) ݺ ɰ -, ܰ迡 Ǿ絵ڴ ̼ α׷ , - α׷ 絵ڷκ 絵 ڵ ֵ -. α׷(Ǵ 2 α׷) 絵 Ǿ絵 Ǹ ִ - ׵ ߰ ̼ ؼ - . - - 8 . ǰ̳ Ư ħؿ Ǵ Ư ѵ -׹ ؼ ̼ ġǴ ߻Ѵ ϴ -̼ ġǴ ̼ 켱 Ե -´. ̳  ؼ ̼ Ǵ ׵ -ȴ ϴ ̼ Բ Ű鼭 α׷ -ٸ ش α׷ ȴ. , Ư Ư ö̼ -Ǵ 絵 ؼ α׷ ϴ ʴ -ٸ ̷ ̼ Ǵ α׷ ̼ ؼ Ǵ -α׷ Բ . - -Ư Ȳ ׵ 쿡 װ 浹 Ͼ - ʴ ٸ Ȳ Ͽ Ϻγ θ ؾ Ѵ. - - Ư㳪 ħ ϰų ش Ǹ - ƴ϶ GPL ؼ Ʈ ü踦 - ȣϱ ̴. ü迡 ŷִ - ν Ʈ پ о߿ ־. Ʈ - ü踦 ؼ ΰ ϴ ڿ ڵ - ޷ Ϲ ڵ ִ ƴ ̴. - - ӵǴ ̼ ؼ ߿ϰ ޵ǰ ִ - Ȯϰ ϴµ ̴. - - 9 . Ưǰ ۱ ó Ŀ ؼ Ư α׷ - Բ Ǵ , ̼ ؼ α׷ - ڴ ߻ ʴ ؼ ̸ Ѵٴ - Ҽ ̷ ̼ Ϻη ֵȴ. - - 10 . Ʈ GPL ϰų ִ. ǰų -Ǵ ο ɿ ǰ ٺ -ٲ ̴. - -GPL ٸ ȣ ̴. 絵 α׷ Ư - ̼ ϰ ִٸ ش Ǵ ̼ Ǹ -  ̼ ص ϴ. - - 11 . α׷ Ϻθ ̼ ٸ α׷ Բ - 쿡 ش α׷ ڷκ ޾ƾ Ѵ. -Ʈ ۱ ִ Ʈ ϱ ؼ Ʈ - Ѵ. Ʈ ǿ ؼ - ִ. Ʈ Ʈ 2 ۹ -ο · Ű Ʈ Ϲ Ȱ -Ű ؿ ٰؼ θ ̴. - - Ῡ - - 12 . ̼ α׷ 絵 ǹǷ ϴ -ѵ  ʴ´. , α׷ ۱ڿ 3 - ڿ ؼ Ǵ Ư α׷ ռ - ϱ 쳪 Ǹſ ȴٴ - õǾ ִ ܷ Ѵ. ׷ ̷ 쿡 ش α׷ -ü ִ ٿ Ῡ . α׷ α׷ -࿡ ߻ ִ Ǿ絵ڿ μ Ǹ ̿ - Ǿ絵ڰ δѴ. - - 13 . ۱ڳ 3 ڰ α׷ ջ ɼ ˰ ־ -ϴ ߻ ս Կ ؼ ȣǰ ְų ۱ڳ α׷ -ü ʴ´ٴ α׷ ۵ α׷ Բ Ǵ - ڰ 찡 ƴ϶ α - ̳ ̼ ؼ ߻ ս Ǿ絵 å̴. -߻ ս Ϲݼ̳ ƯӸ ƴ϶ ߼ ʿ -´. - - , ǰ . - - ǹ ϴ - - α׷ 鿡 ϰ DZ⸦ Ѵٸ α׷ - ̼ Ӱ ǰ ֵ Ʈ - ּ ̴. - - ׵ α׷ ߰ν ش α׷ Ʈ - ִ. α׷ ʴ´ٴ ȿ - ִ ҽ ڵ尡 ԵǾ ִ κп ̷ ׵ - ϴ ̴. ϵ ּ ۱ǰ GPL ִ -ؾ߸ Ѵ. - -α׷ ̸ 뵵 ؼ Ѵ. - - Copyright (C) 19yy α׷ ̸ - - α׷ Ʈ̴. - - Ʈ Ǿ絵ڴ Ʈ GNU General Public License - ؼ α׷ ۵ 2 α׷ Բ Ǵ - ִ. α׷ ϰ ǰ - ǰ  ʴ´. ڼ ׿ ؼ - GNU General Public License ϱ ٶ. GNU General Public License - α׷ Բ ȴ. , Ǿ ִٸ Ʈ - ϱ ٶ. - ( Ʈ : Free Software Foundation, Inc., 59 Temple Place - Suite +저작권과 사용 허가에 대한 본 사항이 명시 되는 한, 어떠한 정보 매체에 의한 본문의 +전재나 발췌도 무상으로 허용된다. 단, 원문에 대한 수정과 첨삭은 허용되지 않는다. + +전 문 (前 文) + +소프트웨어에 대한 대부분의 라이센스는 해당 소프트웨어에 대한 수정과 공유의 자유 +를 제한하려는 것을 그 목적으로 한다. 그러나 GNU General Public License (이하, "G +PL"이라 한다)는 자유 소프트웨어에 대한 수정과 공유의 자유를 호혜적 으로 보장하기 +위해서 성립되었다. 자유 소프트웨어 재단이 제공하는 대부분의 소프트웨어들은 GPL의 +규정에 의해서 관리되고 있으며 별도의 관리 방법이 보다 효과적이라고 판단되는 라이 +브러리 서브루틴의 경우에는 별도의 문서인 GNU Library General Public License를 선 +택적으로 적용하고 있다. 자유 소프트웨어란 이를 사용하려는 모든사람에 대해서 동일 +한 자유와 권리가 함께 양도되는 소프트웨어를 의미하며 프로그램 저작자의 의지에 따 +라서 어떠한 프로그램에도 이 규정들이 적용될 수 있다. + +자유 소프트웨어를 언급할 때 사용되는 '자유' 라는 단어는 무료(無料)를 의미하는 금 +전적인 측면의 자유가 아니라 구속되지 않는다는 관점에서의 자유를 의미하며, GPL 은 +자유 소프트웨어를 이용한 복제와 개작, 배포와 수익사업 등의 가능한 모든 형태의 자 +유를 실제적으로 보장한다. 여기에는 소스 코드의 전부 또는 일부를 원용해서 개선된 +프로그램으로 변형시키거나 새로운 프로그램을 창작할 수 있는 자유가 포함 되며 자신 +에게 양도된 이러한 자유와 권리를 보다 명확하게 인식할 수 있도록 하기위한 규정 또 +한 포함되어 있다. + +GPL은 GPL 안에 소프트웨어를 양도받을 피양도자의 권리를 제한하는 조항과 단서를 별 +항으로 추가 시키지 못하게 함으로써 사용자들의 실질적인 자유와 권리를 보장하고 있 +다. 자유 소프트웨어의 개작과 배포에 관계 하고 있는 사람들은 이러한 무조건적인 권 +리 양도 규정을 준수해야만 한다. + +특정한 프로그램을 배포할 경우를 예로들면, 양도자는 자신이 양도받았던 모든 권리를 +수익 여부에 관계없이 또다른 피양도자에게 그대로 이전해야만 한다. 소스코드의 사용 +에 대한 권리 또한 여기에 포함되어야 하며 이와 같은 사항들을 명시함 으로써 피양도 +자에게 그들이 양도받은 권리를 명확하게 알 수 있도록 해야 한다. + +자유 소프트웨어 재단은 다음과같은 두 가지 방법을 사용해서 소프트웨어의 반복된 양 +도에 따른 사용자 모두의 권리를 보호한다: (1) 저작권을 인정함으로써 프로그램 저작 +자들의 권리를 보호한다. (2) 저작권의 양도에 관한 실정법에 의해서 유효한 법률적 +효력을 갖는 GPL 을 통해서 소프트웨어의 복제와 개작, 배포 등에 대한 피양도자의 권 +리를 실질적으로 보장한다. + +자유 소프트웨어를 사용하는 사람들은 지속적인 양도과정을 통해서 소프트웨어 자체에 +수정과 변형이 일어날 수도 있으며, 이는 최초의 저작자가 만들었던 소프트 웨어가 갖 +고 있는 문제가 아닐 수 있다는 개연성을 인식하고 있어야 한다. GPL에 자유 소프트웨 +어에 대한 어떠한 형태의 보증도 규정하지 않은 이유는 이러한 점들이 고려 되었기 때 +문이며 이는 프로그램 원저작자와 자유 소프트웨어 재단의 자유로운 활동을 보장하는 +현실적인 수단이기도 하다. + +특허 제도는 자유 소프트웨어의 발전을 위협하는 요소일 수밖에 없다. 따라서 자유 소 +프트웨어를 배포할 경우에는 개별적인 배포 과정에 특허를 취득한 저작물을 함께 포함 +시키지 않음으로써 이용상의 자유가 제한되지 않도록 하는 것이 최선의 방법이다. GPL +은 이러한 문제에 대처 하기 위해서 특허가 취득된 저작물은 그 라이센스를 불특정 다 +수(이하, "공중(公衆)" 이라 한다)에게 공개적으로 허용하는 경우에 한해서 자유 소프 +트웨어와 함께 사용할 수 있도록 규정하고 있다. + +복제(copying)와 개작(modification), 배포(distribution) 등에 관련된 구체적인 조건 +과 규정은 다음과 같다. + +복제와 개작, 배포에 관한 조건과 규정 + +제 1 항. 본 라이센스는 GNU General Public License의 규정에 따라서 배포될 수 있다 +는 사항이 저작권자에 의해서 명시된 모든 컴퓨터 프로그램 저작물에 대해서 동일하게 +적용된다. 컴퓨터 프로그램 저작물(이하, "프로그램"이라 한다) 이란 특정한 프로그램 +이나 이와 관련된 기타 저작물을 의미 하고 "2차적 프로그램" 이란 저작권법의 규정에 +따라 프로그램의 전부 또는 상당 부분을 원용하거나 다른 프로그래밍 언어로의 번역을 +포함할 수 있는 개작 과정을 통해서 창작된 새로운 프로그램과 이와 관련된 저작물을 +의미한다. (이후로 다른 프로그래밍 언어로의 번역은 별다른 제한 없이 개작의 범위에 +포함되는 것으로 간주한다) "피양도자" 란 GPL 의 규정에 의해서 프로그램을 양도받은 +사람을 의미한다. + +본 라이센스는 프로그램에 대한 복제와 개작, 배포 행위에 대해서만 적용된다. 따라서 +프로그램을 실행 시키는 행위는 제한되지 않으며 프로그램의 실행에 따른 결과물은 실 +행 자체에 의한 결과물의 생성 여부에 상관없이 결과물이 2차적 프로그램을 구성 했을 +때에 한해서 본 라이센스의 규정을 적용할 수 있다. 2차적 프로그램의 구성 여부는 2 +차적 프로그램 안에서의 프로그램의 역할을 토대로 판단한다. + +제 2 항. 피양도자는 프로그램에 대한 보증을 제공하지 않는다는 사실과 저작권을 함 +께 명시하는 한, 양도받은 소스코드의 전부 또는 일부를 어떠한 정보 매체를 통해서도 +복제해서 배포할 수 있다. 피양도자가 프로그램의 소스 코드를 재배포할때는 프로그램 +에대한 보증이 결여되어 있다는 사실과 본 라이센스에 대해서 언급한 사항들을 양도받 +은 그대로 유지시켜야 하며 GPL 원문을 함께 제공해야 한다. + +복제물을 배포할 경우에는 복제물을 제작 하기 위해서 소요된 경비를 충당하기 위해서 +배포본을 유료로 판매할 수 있으며 유료판매에 따른 배포본의 환불을 보장하는 별도의 +보증을 설정할 수 있다. + +제 3 항. 피양도자는 자신이 양도받은 프로그램의 전부 또는 일부를 개작할 수 있으며 +이를 통해서 2차적 프로그램을 창작할 수 있다. 개작된 프로그램이나 창작된 2차적 프 +로그램의 소스 코드는 제 1항의 규정에 의해서 다음의 사항들을 만족시키는 조건에 한 +해서 또다시 복제해서 배포될 수 있다. + + a) 개작된 파일은 파일이 개작된 사실과 개작된 날짜가 명시적으로 확인될수 있도록 + 작성 되어야 한다. + + b) 배포하거나 출판 하려는 저작물의 전부 또는 일부가 양도받은 프로그램으로부터 + 파생된 것이라면 개작된 프로그램에 대한 배포본이나 출판물 전체에 대한 사용권 + 리를 공중에게 무상으로 허용해야 한다. + + c) 개작된 프로그램의 일반적인 실행 형태가 명령어 입력 방식에 의한 대화형구조일 + 경우, 개작된 프로그램은 이러한 대화형 구조로 평이하게 실행되었을 때 저작권 + 에 대한 사항과 프로그램에 대한 보증이 결여되어 있다는 사실 그리고 개작된 프 + 로그램을 본 라이센스의 규정에 의해서 또다시 개작 해서 배포할 수 있다는 사실 + 과 GPL 을 열람할 수 있는 방법 들이 실행 직후에 지면 또는 화면을 통해서 함께 + 출력될 수 있도록 작성되어야 한다. (예외 규정: 양도받은 프로그램이 대화형 구 + 조를 갖추고 있다고 하더라도 통상적인 실행환경 에서 전술한 사항들이 출력되지 + 않는 형태였을 경우에는 이를 개작한 프로그램 또한 관련사항들을 출력시키지 않 + 아도 무방하다) + +본 조항들은 개작된 부분이 포함되어 있는 2차적 프로그램 전체에 적용된다. 만약, 어 +떠한 저작물이 특정한 2 차적 프로그램에 포함되어 있는 부분과 동일하다 하더라도 그 +것이 양도받은 프로그램으로부터 파생된 것이 아니라 별도의 독립저작물로 인정될만한 +상당한 이유가 있을 경우에는 해당 저작물의 개별적인 배포과정에는 본 라이센스의 규 +정들이 적용되지 않는다. 그러나, 이러한 저작물이 2 차적 프로그램에 포함되어 함께 +배포 된다면 개별적인 저작권과 배포 기준에 상관없이 배포본에 포함된 저작물 모두가 +본 라이센스에 의해서 관리되어야 하며 전체저작물의 일부 또는 전부에 대한 사용상의 +모든 권리는 공중에게 무상으로 양도되어야 한다. + +이러한 규정은 개별적인 저작물에 대한 저작권자의 권리를 말소 시키려는 것이 아니라 +2 차적 프로그램으로부터 반복적으로 파생되거나 이러한 프로그램들을 모아 놓은 배포 +본에 대해서 본 라이센스의 규정들을 동일하게 적용하기 위한 것이다. + +프로그램이나 2 차적 프로그램을 그 프로그램으로부터 파생되지 않은 별도의 프로그램 +과 함께 저장 장치나 배포 매체에 구성해 놓은 경우에는 이들이 파생적 저작물을 생성 +하지 않는 한 본 라이센스에 의해서 관리된다. + +제 4 항. 피양도자는 다음 중 하나의 항목을 만족시키는 조건에 한해서 제1항과 제2항 +의 규정에 따라서 프로그램(또는 제2항의 규정에 의한 2차적 프로그램)을 목적 코드나 +실행 형태로 복제 해서 배포할 수 있다. + + a) 목적 코드나 실행 형태에 해당하는 소스 코드의 전부를 제1항과 제 2항의 규정에 + 따라서 컴퓨터가 입력받거나 번역할 수 있는 형태로 소프트웨어의 배포를 위해서 + 일반적으로 사용 되는 정보 매체를 통해서 함께 제공해야 한다. + + b) 목적 코드나 실행 형태에 해당하는 소스 코드의 전부를 최소한 3 년 이상 유지될 + 수 있는 인쇄물의 형태로 제 1항과 제 2항의 규정에 따라서 소프트웨어의 배포를 + 위해서 일반적으로 사용되는 정보 매체를 통해서 제작실비에 준하는 비용만을 부 + 과해서 공중에게 양도될 수 있도록 함께 제공해야 한다. + + c) 목적코드나 실행형태에 해당하는 소스코드의 전부를 취득할 수 있는 방법에 대한 + 정보를 함께 제공해야 한다. (이 항목은 비영리적인 배포와 항목 b)에 의해서 목 + 적 코드나 실행 형태의 배포본을 제공할 때에 한해서 적용될 수 있다) 저작물에 + 대한 소스 코드란 해당 저작물을 개작하기 위해서 일반적으로 선호 되는 표현 형 + 식을 의미하고, 실행물에 대한 소스코드란 프로그램이 올바르게 실행되기 위해서 + 필요한 모듈과 인터페이스 정의 파일, 컴파일과 설치를 위해서 필요한 스크립트 + 등이 모두 포함된다. 그러나 컴파일러나 커널과 같은 운영 체제의 주요 부분들에 + 대한 소스코드나 바이너리 형태는 프로그램이 이러한 부분들과 직접 관계되지 않 + 는한 함께 제공하지 않아도 무방하다. + +목적코드나 실행 형태를 특정한 장소로부터 복제할 수 있도록 허용하는 방식으로 배포 +할 경우, 동일한 장소로부터 소스 코드를 복제할 수 있도록 허용하는 것은 피양도자에 +게 소스코드를 목적코드나 실행형태와 함께 복제해 갈 것을 규정하지 않았다 하더라도 +소스 코드를 함께 배포하는 것으로 간주한다. + +제 5 항. 본 라이센스에 의해서 명시적으로 프로그램을 양도 받지 않았다면 양도받은 +프로그램에 대한 복제와 개작, 별도의 라이센스 설정과 배포행위 둥을 할 수 없다. 이 +와 관련된 어떠한 행위도 법률적으로 무효이며 본 라이센스에서 규정하고 있는 사용상 +의 모든 권리는 자동적으로 소멸된다. 단, 본 라이센스의 규정에 의하지 않고 양도받 +은 프로그램이라 하더라도 이를 명시적인 라이센스 양도 규정에 따라서 다시 배포했을 +경우에는 프로그램을 다시 양도받은 제3의 피양도자는 본 라이센스를 준수하는 조건하 +에서 사용상의 권리를 유지할 수 있다. + +제 6 항. 피양도자는 프로그램의 양도에 관한 본 라이센스에 서명하지 않음으로써 본 +라이센스의 규정들을 받아들이지 않을 수 있다. 이 경우, 피양도자에게는 프로그램에 +대한 단순한 사용만이 허용되며 프로그램과 2차적 프로그램에 대한 개작과 배포행위는 +허용되지 않는다. 이는 피양도자가 라이센스에 서명하지 않음으로써 발생된 법률적 금 +지 사항이다. 따라서 프로그램 (또는 2차적 프로그램) 을 개작하거나 배포하는 행위는 +복제와 개작, 배포에 관한 본 라이센스의 규정과 조건들을 모두 받아들이겠다는 묵시 +적인 동의로 간주한다. + +제 7 항. 피양도자에 의해서 프로그램 (또는 2차적 프로그램) 이 반복적으로 배포될경 +우, 각단계에서의 피양도자는 본 라이센스의 규정에 의한 프로그램의 복제와 개작, 배 +포에 대한 권한을 최초의 프로그램 양도자로부터 양도받은 것으로 자동적 으로 간주된 +다. 프로그램(또는 2차적 프로그램)을 양도할 때는 피양도자의 권리를 제한할 수 있는 +어떠한 사항도 별항으로 추가할 수 없으며 그 누구도 본 라이센스의 규정들을 준수 하 +도록 강제할 수 없다. + +제 8 항. 법원의 판결이나 특허권 침해에 대한 주장 또는 특허 문제에 국한되지 않은 +그밖의 이유들로 인해서 본 라이센스의 규정에 배치되는 사안이 발생한다 하더라도 본 +라이센스에 배치되는 규정들이 본 라이센스에 대한 실행 상의 우선권을 갖게되지는 않 +는다. 따라서 법원의 명령이나 합의 등에 의해서 본 라이센스에 위배되는 사항들이 부 +과된다 하더라도 본 라이센스의 규정들을 함께 충족시키면서 프로그램을 배포할 수 없 +다면 해당 프로그램의 배포는 금지된다. 예를 들면, 특정한 특허 관련라이센스가 직접 +또는 간접적인 양도 방법에 의해서 프로그램을 무상으로 배포하는 것을 허용하지 않는 +다면 이러한 라이센스로 관리되는 프로그램은 본 라이센스의 규정에 의해서 관리되는 +프로그램들과 함께 배포될 수 없다. + +특정한 상황에서 본 조항의 사항들이 적용될 수 없는 경우에는 본 조항과 충돌이 일어 +나지 않는 다른 상황과 조건 하에서 본 조항의 일부나 전부를 적용해야 한다. + +본 조항의 목적은 특허나 재산권 등을 침해 행위를 조장하거나 해당 권리를 인정하지 +않으려는 것이 아니라 GPL 의 실제적인 적용을 통해서 자유 소프트웨어의 배포 체계를 +통합적으로 보호하기 위한 것이다. 많은 사람들이 배포 체계에 대한 신뢰있는 지원을 +계속해 줌으로써 소프트웨어의 다양한 분야에 많은공헌을 해 주었다. 소프트웨어를 어 +떠한 배포 체계를 통해서 배포할 것인가를 결정하는 것은 전적으로 저작자와 기증자들 +의 의지에 달려있지 일반 사용자들이 강요할 수 있는 문제는 아닌 것이다. + +본 조항은 계속되는 본 라이센스의 내용들을 통해서 중요하게 취급되고 있는점들을 보 +다 명확하게 설명하는데 도움이 될 것이다. + +제 9 항. 특허권과 저작권의 법적 처리 방식에 의해서 특정한 국가에서 프로그램의 배 +포와 사용이 함께 또는 개별적으로 금지될 경우, 본 라이센스에 의해서 프로그램을 공 +개한 원저작자는 문제가 발생되지 않는 국가에 한해서 이를 배포한다는 배포상의 지역 +적 제한 조건을 설정할수 있으며 이러한 사항은 본 라이센스의 일부로 간주된다. + +제 10 항. 자유 소프트웨어 재단은 GPL 을 개정하거나 경신할 수 있다. 개정되거나 변 +동되는 사항은 새로운 문제와 관심에 따라서 세부적으로 조정되겠지만 그 근본 정신은 +바뀌지 않을 것이다. + +GPL 의 모든 버전은 다른 버전 번호로 구별될 것이다. 양도받은 프로그램이 특정한 버 +전의 라이센스를 명시하고 있다면 해당 버전 또는 그 이후의 라이센스가 적용되며 버 +전을 명시하지 않은 경우는 어떠한 버전의 라이센스를 적용해도 무방하다. + +제 11 항. 프로그램의 일부를 본 라이센스와 배포기준이 다른 자유프로그램과 함께 배 +포할 경우에는 해당 프로그램의 저작자로부터 서면을 통한 승인을 받아야 한다. 자유 +소프트웨어 재단이 저작권을 갖고 있는 소프트웨어를 사용하기 위해서는 자유소프트웨 +어 재단의 승인을 얻어야 한다. 자유 소프트웨어 재단은 승인 요건에 대해서 예외 규 +정을 둘 수 있다. 자유 소프트웨어 재단은 자유 소프트웨어의 2차적 저작물들을 모두 +자유로운 상태로 유지시키려는 목적과 소프트웨어의 일반적인 공유와 재활용을 증진시 +키려는 기준에 근거해서 승인 여부를 결정할 것이다. + +보증의 결여 + +제 12 항. 본 라이센스에 의한 프로그램은 무상으로 양도 되므로 관련 법이 허용하는 +한도 내에서 어떠한 형태의 보증도 제공하지 않는다. 단, 프로그램의 저작권자와 제 3 +의 배포자에 의해서 공동 또는 개별적으로 특정한 목적에대한 프로그램의 적합성 여부 +를 검증하기 위한 경우나 상업적 판매에 따른 별도의 보증이 제공 된다는 사항이 서면 +으로 명시되어 있는 경우는 예외로 한다. 그러나 이러한 경우에도 해당 프로그램 자 +체가 갖고 있는 근원적인 보증의 결여를 제한할 수는 없다. 프로그램과 프로그램의 실 +행에 따라 발생할 수 있는 위험은 모두 피양도자에게 인수 되며 이에 따른 보수 및 복 +구를 위한 제반 경비 또한 모두 피양도자가 부담한다. + +제 13 항. 저작권자나 제 3의 배포자가 프로그램의 손상 가능성을 사전에 알고 있었다 +하더라도 발생된 손실이 관련 법규에 의해서 보호되고 있거나 저작권자나 프로그램 자 +체에대한 보증을 제공하지 않는다는 전제로 프로그램과 개작된 프로그램을 함께 또는 +개별적으로 공급한 배포자가 서면으로 별도의 보증을 설정한 경우가 아니라면 프로그 +램의 사용이나 사용상의 미숙으로 인해서 발생된 손실은 모두 피양도자의 책임이다. +발생된 손실의 일반성이나 특수성뿐만 아니라 원인의 우발성 및 필연성도 고려되지 않 +는다. + +복제와 개작, 배포에 관한 조건과 규정의 끝. + +규정들을 실무에 적용하는 방법 + +개발한 프로그램이 보다 많은 사람들에게 유용하게 사용 되기를 원한다면 그 프로그램 +이 본 라이센스의 규정에 따라서 자유롭게 수정되고 배포될 수 있도록 자유 소프트웨 +어로 만드는 것이 최선의 방법이다. + +다음과같은 사항들을 프로그램에 추가함으로써 해당 프로그램을 자유 소프트웨어로 만 +들 수 있다. 프로그램에 대한 보증을 제공하지 않는다는 사실을 가장 효과적으로 전달 +할 수 있는 방법은 소스 코드가 포함되어 있는 모든파일의 시작 부분에 이러한 사항들 +을 명시하는 것이다. 각각의 파일들은 최소한 저작권과 GPL 을 취득할 수 있는 방법을 +명시해야만 한다. + +프로그램의 이름과 용도에 대한 설명을 위해서 한 줄을 사용한다. + + Copyright (C) 19yy 프로그램 저작자의 이름 + + 이 프로그램은 자유 소프트웨어이다. + + 소프트웨어의 피양도자는 자유 소프트웨어 재단의 GNU General Public License의 규 + 정에 의해서 이 프로그램을 개작된 2 차적 프로그램과 함께 또는 개별적으로 배포할 + 수 있다. 이 프로그램은 보다 유용하게 사용될 수 있으라는 희망에서 배포되고 있지 + 만 제품에 대한 어떠한 형태의 보증도 제공하지 않는다. 보다 자세한 사항에 대해서 + 는 GNU General Public License를 참고하기 바란다. GNU General Public License는 + 이 프로그램과 함께 제공 된다. 만약, 이 문서가 누락되어 있다면 자유 소프트웨어 + 재단으로 문의하기 바란다. + (자유 소프트웨어 재단: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA) -, α׷ ڿ Ǵ ؼ ִ -ؾ Ѵ. +또한, 프로그램 저작자와 서면 또는 전자 메일을 통해서 연락할 수 있는 정보를 기재 +해야 한다. -, α׷ ɾ Է Ŀ ȭ ϰ ִٸ α׷ - ȭ Ǵ ʱ ¿ Ǿ -. +만약, 이 프로그램이 명령어 입력 방식에 의한 대화형 구조를 택하고 있다면 프로그램 +이 대화형 방식으로 실행되는 초기 상태에서 다음과 같은 주의 사항이 출력 되어야 한 +다. - Gnomovision version 69, Copyright (C) 19yy α׷ ̸ + Gnomovision version 69, Copyright (C) 19yy 프로그램 저작자의 이름 - Gnomovision ǰ  ʴ´. ڼ - 'show w' ɾ ̿ؼ ִ. α׷ Ʈ - ̸ Ư Ű Ͽ ִ. ش - 'show c' ɾ ؼ ִ. + Gnomovision은 제품에 대한 어떠한 형태의 보증도 제공되지 않는다. 보다 자세한 사 + 항은 'show w' 명령어를 이용해서 참고할 수 있다. 본 프로그램은 자유 소프트웨어 + 이며 특정한 규정들을 만족시키는 조건하에서 재배포 될 수 있다. 배포에 대한 해당 + 규정은 'show c' 명령어를 통해서 참조할 수 있다. -'show w' 'show c' GPL ش κ ϱ ɾ̴. - ɾ 콺 ϰų ޴ ϴ α׷ - · ̴. +'show w'와 'show c'는 GPL 의 해당 부분을 참조하기 위한 가상의 명령어이다. 따라서 +이 명령어들은 마우스로 조작하거나 메뉴 방식으로 구성하는 등의 프로그램에 적합한 +여러 가지 형태로 변형될 수 있을 것이다. -, α׷ ڰ б ü Ǿ ִٸ α - ο ؼ ֳ ش α׷ ۱ - Ѵٴ Ǹ Ѵ. , ִ. +만약, 프로그램 저작자가 학교나 기업과 같은 단체나 기관에 고용되어 있다면 프로그 +램의 자유로운 배포를 위해서 고용주나 해당 기관장으로 부터 프로그램에 대한 저작권 +을 포기한다는 동의를 얻어야 한다. 예를 들면, 다음과 같은 형식이 될 수 있다. - James Hacker ؼ ۼ 'Gnomovision' α׷ - Ѵ. + 본사는 James Hacker에 의해서 작성된 'Gnomovision' 프로그램에 관계된 모든 저작 + 권을 포기한다. - 1989 4 1 - Yoyodye, Inc., λ: Ty Coon - : Ty Coon + 1989년 4월 1일 + Yoyodye, Inc., 부사장: Ty Coon + 서명: Ty Coon의 서명 - ̼ Ʈ α׷ Ʈ Բ - ʴ´. , ۼ α׷ ̺귯 ƾ -׷ 쿡 ̸ Ʈ α׷ Բ ν - ȿ Ȱ ִٰ ̴. ̷ - ſ GNU Library General Public License ν ұ -ų ̴. +본 라이센스는 자유 소프트웨어로 설정된 프로그램을 독점 소프트웨어와 함께 사용하 +는 것을 허용하지 않는다. 만약, 작성된 프로그램이 라이브러리 서브루틴과 같은 프로 +그램일 경우에는 이를 독점 소프트웨어 형태의 응용 프로그램과 함께 사용함으로써 보 +다 효과적으로 활용될 수 있다고 생각할 수도 있을 것이다. 이러한 경우 에는 본 라이 +센스 대신에 GNU Library General Public License를 사용함으로써 소기의 목적을 충족 +시킬 수 있을 것이다. diff --git a/INSTALLER/SQL/board-freebsd.sql b/INSTALLER/SQL/board-freebsd.sql new file mode 100644 index 00000000..b29c49b1 --- /dev/null +++ b/INSTALLER/SQL/board-freebsd.sql @@ -0,0 +1,35 @@ +# +# Table structure for table 'test' +# +CREATE TABLE test ( + no int(6) NOT NULL auto_increment, + num int(6) DEFAULT '0' NOT NULL, + idx int(6) DEFAULT '0' NOT NULL, + date int(11) DEFAULT '0' NOT NULL, + host tinytext, + name tinytext, + rname tinytext, + passwd varchar(56), + email tinytext, + url tinytext, + title tinytext, + text mediumtext, + refer int(6) DEFAULT '0' NOT NULL, + reyn int(1) DEFAULT '0' NOT NULL, + reno int(6) DEFAULT '0' NOT NULL, + rede int(6) DEFAULT '0' NOT NULL, + reto int(6) DEFAULT '0' NOT NULL, + html int(1) DEFAULT '1' NOT NULL, + comm int(6) DEFAULT '0' NOT NULL, + bofile varchar(100), + bcfile varchar(100), + bfsize int(4), + KEY no (no), + KEY num (num), + KEY idx (idx), + KEY reno (reno), + KEY date (date), + KEY reto (reto), + KEY comm (comm), + PRIMARY KEY (no) +); diff --git a/INSTALLER/SQL/board-linux.sql b/INSTALLER/SQL/board-linux.sql new file mode 100644 index 00000000..b29c49b1 --- /dev/null +++ b/INSTALLER/SQL/board-linux.sql @@ -0,0 +1,35 @@ +# +# Table structure for table 'test' +# +CREATE TABLE test ( + no int(6) NOT NULL auto_increment, + num int(6) DEFAULT '0' NOT NULL, + idx int(6) DEFAULT '0' NOT NULL, + date int(11) DEFAULT '0' NOT NULL, + host tinytext, + name tinytext, + rname tinytext, + passwd varchar(56), + email tinytext, + url tinytext, + title tinytext, + text mediumtext, + refer int(6) DEFAULT '0' NOT NULL, + reyn int(1) DEFAULT '0' NOT NULL, + reno int(6) DEFAULT '0' NOT NULL, + rede int(6) DEFAULT '0' NOT NULL, + reto int(6) DEFAULT '0' NOT NULL, + html int(1) DEFAULT '1' NOT NULL, + comm int(6) DEFAULT '0' NOT NULL, + bofile varchar(100), + bcfile varchar(100), + bfsize int(4), + KEY no (no), + KEY num (num), + KEY idx (idx), + KEY reno (reno), + KEY date (date), + KEY reto (reto), + KEY comm (comm), + PRIMARY KEY (no) +); diff --git a/INSTALLER/SQL/comment.sql b/INSTALLER/SQL/comment.sql new file mode 100644 index 00000000..109310e8 --- /dev/null +++ b/INSTALLER/SQL/comment.sql @@ -0,0 +1,16 @@ +# +# Table structure for table 'test_comm' +# +CREATE TABLE test_comm ( + no int(6) NOT NULL auto_increment, + reno int(20) NOT NULL default '0', + rname tinytext, + name tinytext, + passwd varchar(56) default NULL, + text mediumtext, + host tinytext, + date int(11) NOT NULL default '0', + PRIMARY KEY (no), + KEY parent (reno) +); + diff --git a/INSTALLER/SQL/userdb-freebsd.sql b/INSTALLER/SQL/userdb-freebsd.sql new file mode 100644 index 00000000..bde64a67 --- /dev/null +++ b/INSTALLER/SQL/userdb-freebsd.sql @@ -0,0 +1,23 @@ +# +# Table structure for table 'userdb' +# +CREATE TABLE userdb ( + no int(6) NOT NULL auto_increment, + nid varchar(30) NOT NULL default '', + name varchar(30) NOT NULL default '', + email tinytext NOT NULL, + url tinytext NOT NULL, + passwd varchar(100) NOT NULL default '', + position int(1) NOT NULL default '0', + PRIMARY KEY (no), + KEY no (no), + UNIQUE KEY nid (nid), + KEY name (name), + KEY position (position) +) TYPE=MyISAM; + +# +# Dumping data for table 'userdb' +# + +INSERT INTO userdb VALUES ('','admin','관리자','','','\$1\$Cx\$.2OyfWZCiPTc4sSw0vswc/',1); diff --git a/INSTALLER/SQL/userdb-linux.sql b/INSTALLER/SQL/userdb-linux.sql new file mode 100644 index 00000000..dc68d454 --- /dev/null +++ b/INSTALLER/SQL/userdb-linux.sql @@ -0,0 +1,25 @@ +# +# Table structure for table 'userdb' +# + +CREATE TABLE userdb ( + no int(6) NOT NULL auto_increment, + nid varchar(30) NOT NULL default '', + name varchar(30) NOT NULL default '', + email tinytext NOT NULL, + url tinytext NOT NULL, + passwd varchar(100) NOT NULL default '', + position int(1) NOT NULL default '0', + PRIMARY KEY (no), + KEY no (no), + UNIQUE KEY nid (nid), + KEY name (name), + KEY position (position) +) TYPE=MyISAM; + +# +# Dumping data for table 'userdb' +# + +INSERT INTO userdb VALUES ('','admin','관리자','','','lHJTjGW8VhHc.',1); + diff --git a/INSTALLER/act.php b/INSTALLER/act.php new file mode 100644 index 00000000..b82ca623 --- /dev/null +++ b/INSTALLER/act.php @@ -0,0 +1,220 @@ + + + + + JSBoard Initialize + + + + + + + diff --git a/INSTALLER/auth.php b/INSTALLER/auth.php new file mode 100644 index 00000000..919fefe3 --- /dev/null +++ b/INSTALLER/auth.php @@ -0,0 +1,335 @@ +\n"; + + +if($langs['code'] == 'ko') { + $charset = 'euc-kr'; + $charfont = '굴림체'; +} else { + $charset = 'iso-8859-1'; + $charfont = 'tahoma,arial'; +} + +echo << + + + + + + Jsboard {$board['ver']} Installation + + + + + + + + +
+ +EOF; + +if (!$mode) { + echo << + + + + +
+ JSBoard Installer +
+  
+ Korean + English
+
  +
+ + +
+ + +EOF; +} elseif ($mode == "license") { + if ($langs['code'] == "ko") $agreefile = "../COPYING.ko"; + else $agreefile = "../COPYING"; + + echo << + + + + +
+ JSBoard License +
+ +EOF; + + if ($agent['br'] == "MSIE" || $agent['br'] == 'Firefox' || $agent['br'] == "MOZL" || ($agent['br'] == "NS" && $agent['vr'] == 6)) { + echo << +EOF; + } else { + $agree_ment = file_operate($agreefile,"r"); + $agree_ment = preg_replace("/(http:\/\/jsboard.kldp.net)/i","\\1",$agree_ment); + + if ($langs['code'] == "en") $colsize = form_size(40); + else $colsize = form_size(35); + + echo <<{$agree_ment} +EOF; + } + + echo <<
+ + + +
+ +EOF; +} elseif ($mode == "check_exec") { + echo << +
+ JSBoard Environment Check +
+ +EOF; + + if (extension_loaded('mysqli')) { + $dbconnfunc = 'mysqli_connect'; + $dbtype = 'mysqli'; + } else if (extension_loaded('mysql')) { + $dbconnfunc = 'mysql_connect'; + $dbtype = 'mysql'; + } else { + $dbconnfunc = ''; + $dbtype = ''; + } + + $user = $mysqlroot ? 'root' : $mysqlusername; + + if ($dbtype) { + $mcon = @$dbconnfunc($mysql_dock, $user, $passwd); + + # mysql login 가능 여부 + $mcheck = $mcon ? 1 : 0; + } else $mcheck = 0; + + # jsboard/data 에 쓰기 권한이 있는지 여부 + if(@touch("../data/aaa.test")) { + $p1 = 1; + @unlink("../data/aaa.test"); + } + + # jsboard/config 에 쓰기 권한이 있는지 여부 + if(@touch("../config/aaa.test")) { + $p2 = 1; + @unlink("../config/aaa.test"); + } + + if ($p1 && $p2) $pcheck = 1; + else $pcheck = 0; + + echo <<{$langs['waitm']} + +
+ {$langs['wait']} +
+EOF; + +} elseif ($mode == "check_confirm") { + + if ($mcheck) $m = "OK"; + else $m = "Failed"; + + if ($pcheck) $p = "OK"; + else $p = "Error"; + + if (!$mcheck || !$pcheck) $actlink = ""; + else $actlink = "first"; + + $os_type = js_wrapper('php_uname'); + if (preg_match("/freebsd/i",$os_type)) $os_type = "FreeBSD"; + elseif (preg_match("/openbsd/i",$os_type)) $os_type = "OpenBSD"; + elseif (preg_match("/netbsd/i",$os_type)) $os_type = "NetBSD"; + elseif (preg_match("/windows/i",$os_type)) $os_type = "Windows"; + elseif (preg_match("/linux/i",$os_type)) { + if ( file_exists ("/etc/annyung-release") ) $os_type = "AnNyung"; + elseif (file_exists("/etc/centos-release")) $os_type = "CentOS"; + elseif (file_exists("/etc/redhat-release")) $os_type = "Redhat"; + elseif (file_exists("/etc/debian_version")) $os_type = "Debian"; + else $os_type = "Linux"; + } elseif (preg_match("/solaris/i",$os_type)) $os_type = "Solaris"; + else $os_type = "Unknowns"; + + echo << + + + + + +
+ JSBoard Enviornment Check Reuslt +
+  
+ + + + + + + + + + + + + + + + + + + +EOF; + + if (!$mcheck) + echo << +EOF; + + echo << + + + + +EOF; + + if ($p == "Error") + echo << +EOF; + + echo << +
  + + +
+
OS Type:{$os_type}
MySQL extension type:{$dbtype}
MySQL check:{$m}
{$langs['mcheck']}
Permission check:{$p}
{$langs['pcheck']}
+ + + +
+ +EOF; +} elseif ($mode == "first") { + if ($agent['co'] == "mozilla") $fsize = form_size(7); + else $fsize = form_size(9); + + echo << +
+ JSBoard Installer +
+ MySQL password +
+ + + + {$submitButton} +

+ +
+ + + Password {$langs['inst_r']} +
+
+ {$langs['auser']} +
+EOF; +} else + echo << ^0^ +EOF; + +?> + +

+ Copyleft 1999- by + JSBoard Open Project + + + + diff --git a/INSTALLER/include/check.php b/INSTALLER/include/check.php new file mode 100644 index 00000000..272e51bd --- /dev/null +++ b/INSTALLER/include/check.php @@ -0,0 +1,85 @@ +\n" . + "alert('$msg')\n" . + "document.location='./session.php?mode=logout&langss={$langs['code']}'\n" . + "". + "\n"; + exit; + } +} +// }}} + +# // {{{ +-- public inst_chk_var($db,$msg) +# DB에서 사용할 변수값 지정 유무 체크 +function inst_chk_var($db,$msg) { + if (!$db) print_error($msg,250,150,1); +} +// }}} + +// {{{ +-- public inst_chk_numberic($name,$msg) +function inst_chk_numberic($name,$msg) { + if (preg_match("/^[0-9]/",$name)) print_error($msg,250,150,1); +} +// }}} + +// {{{ +-- public inst_chk_dbname($name,$msg) +function inst_chk_dbname($name,$msg) { + global $indb, $c; + + $ret = sql_query('SHOW DATABASES', $c); + while (($r = sql_fetch_row ($ret,$c))) { + if ($name == $r[0]) print_error($msg,250,150,1); + } +} +// }}} + +// {{{ +-- public inst_chk_dbuser($name,$msg) +function inst_chk_dbuser($name,$msg) { + global $langs, $c; + $check = "select user from user where user = '$name'"; + sql_select_db('mysql', $c); + $result = sql_query($check, $c); + $row = sql_fetch_array($result,$c); + if ($row) print_error($msg,250,150,1); +} +// }}} + +// {{{ +-- public inst_check($chk='') +function inst_check($chk='') { + global $dbinst, $langs; + inst_chk_var($dbinst['name'],$langs['inst_chk_varn']); + inst_chk_var($dbinst['user'],$langs['inst_chk_varu']); + inst_chk_var($dbinst['pass'],$langs['inst_chk_varp']); + + if($chk) { + inst_chk_numberic($dbinst['name'],$langs['inst_ndb']); + inst_chk_numberic($dbinst['user'],$langs['inst_udb']); + inst_chk_dbname($dbinst['name'],$langs['inst_adb']); + inst_chk_dbuser($dbinst['user'],$langs['inst_cudb']); + } + + return 1; +} +// }}} + +/* + * Local variables: + * tab-width: 2 + * indent-tabs-mode: nil + * c-basic-offset: 2 + * show-paren-mode: t + * End: + * vim600: filetype=php et ts=2 sw=2 fdm=marker + * vim<600: filetype=php et ts=2 sw=2 + */ +?> diff --git a/INSTALLER/include/passwd.php b/INSTALLER/include/passwd.php new file mode 100644 index 00000000..0ce9b3f4 --- /dev/null +++ b/INSTALLER/include/passwd.php @@ -0,0 +1,43 @@ + diff --git a/INSTALLER/index.php b/INSTALLER/index.php new file mode 100644 index 00000000..809d055a --- /dev/null +++ b/INSTALLER/index.php @@ -0,0 +1,9 @@ + diff --git a/INSTALLER/install.php b/INSTALLER/install.php new file mode 100644 index 00000000..889b35e3 --- /dev/null +++ b/INSTALLER/install.php @@ -0,0 +1,145 @@ +\n". + "\n". + "\n"; +} +?> + + + + + Jsboard <?php echo $board['ver']?> Installation + + + + + + + +
+ +
+ JSBoard Mysql User Registration Page +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DB valueADMIN value
  DB name  >  ID  
  DB user  >  NAME  
  DB pass  >  Email  
 
+ + > + +
+
+ +
+ +
+ +

+ Copyleft 1999- by + JSBoard Open Project +

+
+ + + diff --git a/INSTALLER/sample/admin/external.php.orig b/INSTALLER/sample/admin/external.php.orig new file mode 100644 index 00000000..7b4f531b --- /dev/null +++ b/INSTALLER/sample/admin/external.php.orig @@ -0,0 +1,40 @@ + diff --git a/utils/sample/admin/global.php.orig b/INSTALLER/sample/admin/global.php.orig similarity index 61% rename from utils/sample/admin/global.php.orig rename to INSTALLER/sample/admin/global.php.orig index 4e948551..b0a50c16 100644 --- a/utils/sample/admin/global.php.orig +++ b/INSTALLER/sample/admin/global.php.orig @@ -1,83 +1,81 @@ -STR'; # Table Align of board -$board['align'] = 'center'; +$board['align'] = 'center'; # board web path -$board['path'] = '@WEBPATH@/'; - -# board Session Temp dir -$board['sessTmp'] = 'config/jsSessTMP'; +$board['path'] = 'http://localhost/jsboard/'; ############################################################################## # login mode Configuration ############################################################################## # login variation name (This value must be modified as security problem) -$jsboard = '@LOGINNAME@'; +$jsboard = 'login'; # Don't touch this line. -$jsboard = 'jsboard' . $jsboard; +$jsboard = 'jsboard'.$jsboard; # location of default page after login -$print['dpage'] = '@WEBPATH@/list.php?table=test'; +$print['dpage'] = 'http://localhost/jsboard/list.php?table=test'; # location of default page after logout -$print['dopage'] = '@WEBPATH@/login.php?type=admin'; +$print['dopage'] = 'http://localhost/jsboard/login.php?table=test'; # permition of user registration # 1 -> everyone # 0 -> admin only -$board['regist'] = 0; +$board['regist'] = 0; ############################################################################## # Theme Configuration ############################################################################## # Theme Name -$print['theme'] = '@THEME@'; +$print['theme'] = '@THEME@'; ############################################################################## # UPLOAD Configuration # if value of $upload['yesno'] is 0, then all board disable upload ############################################################################## -$upload['yesno'] = 1; # enable upload -$upload['dir'] = 'files'; # directory name of upload file -$upload['maxsize'] = '2000000'; # upload max size -$upload['maxtime'] = '60'; # max execution time of php script +$upload['yesno'] = 1; # enable upload +$upload['dir'] = 'files'; # directory name of upload file +$upload['maxsize'] = '2000000'; # upload max size +$upload['maxtime'] = '60'; # max excutiom time of php script ############################################################################## # Config of IP Blocking # if value of $board['useipbl'] is 0, then all board disable check ip blocking. ############################################################################## -$board['useipbl'] = 0; +$board['useipbl'] = 0; ############################################################################## @@ -98,24 +96,25 @@ $board['captcha'] = ''; ############################################################################## # Mail Configuration ############################################################################## -$rmail['uses'] = 1; +$rmail['uses'] = 1; # MTA configuration # no value -> send mail with self method of JSBoard # mail server address -> send mail with selected mail server # WARN : windows version can't select self method of JSBoard -$rmail['mta'] = '127.0.0.1'; +$rmail['mta'] = '127.0.0.1'; +$rmail['chars'] = '__at__'; ############################################################################## # Preview article contents ############################################################################## -$list['pre'] = 1; # enable preview -$list['preren'] = 100; # if enable preview, lenth of contents +$list['pre'] = 1; # enable preview +$list['preren'] = 100; # if enable preview, lenth of contents ############################################################################## # If registed article as follow information, requried passwd of super user ############################################################################## -$compare['name'] = 'admin'; -$compare['email'] = 'user@localhost.com'; +$compare['name'] = '쥔장'; +$compare['email'] = 'user@localhost.com'; ?> diff --git a/INSTALLER/sample/admin/spam_list.txt.orig b/INSTALLER/sample/admin/spam_list.txt.orig new file mode 100644 index 00000000..1aa1778a --- /dev/null +++ b/INSTALLER/sample/admin/spam_list.txt.orig @@ -0,0 +1,13 @@ +# 글 등록 필터링 설정 +# $Id: spam_list.txt.orig,v 1.4 2014/03/02 17:11:29 oops Exp $ +# 제일 첫줄이 "#" 으로 시작하면 주석으로 간주합니다. +# 정규 표현식을 사용하실 수 있습니다. +# +# doc/ko/README.CONFIG 의 "3. admin mode 의 GLOBAL 설정" 을 참고하여 +# 설정을 하십시오. +# +# Filtering Configuration of Article registration +# enabled to use regular expression +# disregarded keyword is start hash charactor +# use over 3 byte +# diff --git a/INSTALLER/sample/data/config.php b/INSTALLER/sample/data/config.php new file mode 100644 index 00000000..800fe908 --- /dev/null +++ b/INSTALLER/sample/data/config.php @@ -0,0 +1,181 @@ + 게시판 관리자 id +# mode -> 게시판 관리 모드 +# 0 -> 공개 게시판 +# 1 -> 공지 게시판 (admin only write) +# 2 -> 회원 전용 게시판 +# 3 -> 회원 전용 공지 게시판 (admin only write) +# 4 -> 공개 게시판 (read, reply only) +# 5 -> 회원 전용 게시판 (read, reply only) +# 6 -> 공개 게시판 (reply only admin) +# 7 -> 회원 전용 게시판 (reply only admin) +############################################################################### +# +$board['ad'] = '@ADMIN@'; +$board['mode'] = 0; + +# 로그인 모드시에 이름 출력을 실명으로 할지 Nickname 으로 할지 결정 +# 이 변수값이 설정이 안되어 있으면 Nickname 으로 출력 +$board['rnname'] = 0; + +# 로그아웃 후에 이동할 페이지를 지정 +$print['dopage'] = 'http://domain.com/jsboard/login.php?table=test'; + +############################################################################### +# 게시판 허가 설정 +############################################################################### +# +# 미리보기 설정 +# +$enable['pre'] = 0; # 미리 보기 허가 +$enable['preren'] = 200; # 미리 보기 허가시 글 길이 + +# 답장시 원본글 포함을 선택사항으로 설정 +# +$enable['ore'] = 0; # 0 - 무조건 출력 1 - 선택사항 + +# 글읽기에서 관련글이 있을 경우 관련글 리스트를 보여줄지 여부 설정 +# +$enable['re_list'] = 1; # 0 - 보여주지 않음 1 - 보여줌 + +# 커멘트 기능 사용여부 +# +$enable['comment'] = 0; # 0 - 보여주지 않음 1 - 보여줌 + + +############################################################################### +# 게시판 정렬 상태를 설정 +############################################################################### +# +$board['align'] = 'center'; #

+ + +############################################################################### +# 게시판 기본 설정 +############################################################################### +# +$board['title'] = 'Test BOARD'; # 게시판 제목 +$board['wrap'] = 1; # 본문 길게 늘어지는것 방지 +$board['wwrap'] = 120; # $board['wrap']이 적용안될시 강제 적용 +$board['width'] = '550'; # 게시판 너비 +$board['tit_l'] = 42; # 제목 필드 최대 길이 +$board['nam_l'] = 8; # 글쓴이 필드 최대 길이 +$board['perno'] = 10; # 페이지 당 게시물 수 +$board['plist'] = 2; # 페이지 목록 출력 갯수 (x2+1) + +# 쿠키 기간 설정 (日) +$board['cookie'] = 30; + + +############################################################################### +# FORM SIZE +############################################################################### +# +$size['name'] = 14; # 이름 폼 길이 +$size['pass'] = 4; # submit button 길이 +$size['titl'] = 25; # 제목 폼 길이 +$size['text'] = 32; # TEXTAREA 길이 +$size['uplo'] = 19; # UPLOAD 폼 길이 + + +############################################################################### +# 호스트 정보 출력 설정 0 - Failed, 1 - True +############################################################################### +# +$enable['dhost'] = 0; # IP address 출력 여부(상단 메뉴 출력 안할시) +$enable['dlook'] = 0; # DNS lookup 여부 +$enable['dwho'] = 0; # WHOIS 검색 여부 + + +############################################################################### +# Theme Configuration +############################################################################### +# +$print['theme'] = 'EN-default'; # Theme 이름 + + +############################################################################### +# file upload 관련 설정 +# 전체 관리자가 허락 하지 않으면 여기서 yes를 선택해서 이기능도 사용할수 없다 +############################################################################### +# +$cupload['yesno'] = 0; # upload 사용 여부 +$cupload['dnlink'] = 0; # 0: 헤더를통해 1: 다이렉트 링크 + + +############################################################################### +# url,email 사용 여부 설정 +############################################################################### +# +$view['url'] = 1; +$view['email'] = 1; + + +############################################################################### +# mail 발송 여부 설정 +# 전체 관리자의 기능 on에 의해 사용을 할수 있다 +############################################################################### +# +$rmail['admin'] = 0; +$rmail['user'] = 0; +$rmail['toadmin'] = 'user@localhost'; # 메일을 받을 게시판 관리자의 메일 주소 + + +############################################################################### +# 아래의 정보를 사용하여 글 등록시 관리자의 password를 요구 +############################################################################### +# +$ccompare['name'] = '관리자'; +$ccompare['email'] = 'username@domain.com'; + + +############################################################################### +# IP Blocking 기능 +# 설정값의 구분자는 ';' 로 한다. +# 설정 예) 1.1.1.1;2.2.2.2;3.3.3.3 +############################################################################### +$enable['ipbl'] = ''; + + +############################################################################### +# dhyper : 0 -> 등록된 값만 허락 +# 1 -> 등록된 값만 막음 +# plink 가 없을 경우에는 작동 안함 +# plink : dhyper 가 작동할 ip 주소. ';' 를 구분자로 사용 +# 설정 예) 1.1.1.1;2.2.2.2;3.3.3.3 +############################################################################### +# +$enable['dhyper'] = 0; +$enable['plink'] = ''; + +############################################################################### +# 게시판 공지사항 +# +# 배열로 하여 여러개를 지정할 수 있음 +# $notice['subject'] -> 공지사항 제목 +# $notice['body'] -> 공지사항 내용 +# 공지사항 내용이 없을 경우에는 제목 링크가 안되게 출력 +############################################################################### +# +$notice['subject'] = ''; +$notice['contents'] = ""; + +############################################################################### +# 게시판 RSS 설정 +# +# $rss['use'] -> rss 사용여부 +# $rss['channel'] -> rss 리더의 채널목록 이름 +# $rss['is_des'] -> 기사의 설명 출력 여부 +# $rss['align'] -> rss link 의 위치 ( left/right ) +# $rss['color'] -> rss link 의 color +############################################################################### +# +$rss['use'] = 0; +$rss['is_des'] = 0; +$rss['channel'] = 'JSBoard 게시판'; +$rss['align'] = 1; +$rss['color'] = '#999999'; +?> diff --git a/INSTALLER/sample/data/html_head.php b/INSTALLER/sample/data/html_head.php new file mode 100644 index 00000000..ce8678e4 --- /dev/null +++ b/INSTALLER/sample/data/html_head.php @@ -0,0 +1,3 @@ + + + diff --git a/INSTALLER/sample/data/html_tail.php b/INSTALLER/sample/data/html_tail.php new file mode 100644 index 00000000..c1851acf --- /dev/null +++ b/INSTALLER/sample/data/html_tail.php @@ -0,0 +1,7 @@ + +{$langs['u_print']}
"; +} +?> + diff --git a/INSTALLER/sample/data/stylesheet.php b/INSTALLER/sample/data/stylesheet.php new file mode 100644 index 00000000..a5707175 --- /dev/null +++ b/INSTALLER/sample/data/stylesheet.php @@ -0,0 +1,4 @@ + diff --git a/INSTALLER/script/LANG/en.conf b/INSTALLER/script/LANG/en.conf new file mode 100644 index 00000000..d5b4499e --- /dev/null +++ b/INSTALLER/script/LANG/en.conf @@ -0,0 +1,23 @@ +################################################################# +# English Language File +# $Id: en.conf,v 1.5 2009/11/19 05:29:50 oops Exp $ +################################################################# +SYSTEM_IN="# System INFORMATION" +SYSTEM_LN="# System Language : English" +SYSTEM_OS="# System OS : ${DIST}" +SYSTEM_HU="# Apache User : ${Auser}" +SYSTEM_HG="# Apache Group : ${Agroup}" +SYSTEM_MN="If isn't right upper informations, you types N and appoint new value." +SYSTEM_AL="Is right upper information? [Y/N](default Y) :" +RECONF_HU="Input value of User directive in httpd.conf : " +RECONF_HG="Input value of Group directive in httpd.conf : " +ENDMSG="DONE !!!" + +SYSTEM_GE="#-1 is not system group.\n\ +Excute again this script, after changed GROUP\n\ +directive in httpd.conf that existed group on system" + +ACC_END_MSG="Group Owner of \"config/global.php\n\ +config/allow_browser.txt\" must set GROUP value in httpd.conf\n\ +that is operation group of Web Server. If can't set as value of\n\ +GROUP directive in httpd.conf, you will set the permission 606." diff --git a/INSTALLER/script/LANG/ko.conf b/INSTALLER/script/LANG/ko.conf new file mode 100644 index 00000000..39b385b4 --- /dev/null +++ b/INSTALLER/script/LANG/ko.conf @@ -0,0 +1,23 @@ +################################################################# +# 한국어 언어 파일 +# $Id: ko.conf,v 1.5 2014/03/02 17:11:30 oops Exp $ +################################################################# +SYSTEM_IN="## 시스템 정보" +SYSTEM_LN="# 시스템 언어 : 한국어" +SYSTEM_OS="# 시스템 타입 : ${DIST}" +SYSTEM_HU="# 아파치 유저권한 : ${Auser}" +SYSTEM_HG="# 아파치 그룹권한 : ${Agroup}" +SYSTEM_MN="위의 정보가 틀리면 N 을 선택해서 재조정 해 주십시오." +SYSTEM_AL="위의 정보가 맞습니까? [Y/N](default Y) : " +RECONF_HU="httpd.conf 의 User 지시자의 값을 적어 주십시오 : " +RECONF_HG="httpd.conf 의 Group 지시자의 값을 적어 주십시오 : " +ENDMSG="설정 완료!!!" + +SYSTEM_GE="#-1 은 시스템에 존재하지 않는 그룹입니다. httpd.conf 의 GROUP\n\ +지시자의 값을 시스템에 존재하는 그룹으로 지정하고 이 스크립트\n\ +를 다시 시작하십시오." + +ACC_END_MSG="config/global.php config/spam_list.txt\n\ +file 의 group 소유권이 nobody 에게 있어야 합니다. 만약 위의 파\n\ +일들의 그룹 소유권을 변경할 수 없다면 permission 을 606으로 맞\n\ +춰 주십시오" diff --git a/INSTALLER/script/account b/INSTALLER/script/account new file mode 100755 index 00000000..0f817384 --- /dev/null +++ b/INSTALLER/script/account @@ -0,0 +1,52 @@ +#!/bin/sh +# $Id: account,v 1.5 2009/11/19 05:29:50 oops Exp $ +clear +echo "########################################################" +echo "# JSBoard Config File Installer v2.0 #" +echo "# Scripted By JoungKyun Kim < http://www.oops.org > #" +echo "########################################################" +echo + +echo "STEP 1 Language Check" +echo "---------------------" +echo -n "Do you want to use Koean during the installation? [Y/N](default Y) : " +read langs + +case "${langs}" in + N*|n*) + langs=en ;; + *) + langs=ko ;; +esac + +if [ "${langs}" = "ko" ]; then + . ./LANG/ko.conf +else + . ./LANG/en.conf +fi + +cp -Rp ../sample/admin/global.php.orig ../../config/global.php +cp -Rp ../sample/admin/spam_list.txt.orig ../../config/spam_list.txt +if [ -d "../../data/test" ]; then + cp -Rp ../sample/data/* ../../data/test/ +else + cp -Rp ../sample/data/ ../../data/test +fi + +# permission configuration +chmod 707 ../../config +chmod 707 ../../data +chmod 707 ../../data/test +chmod 707 ../../data/test/files +chmod 660 ../../config/global.php +chmod 660 ../../config/spam_list.txt +chmod 606 ../../data/test/config.php +chmod 606 ../../data/test/html_head.php +chmod 606 ../../data/test/html_tail.php +chmod 606 ../../data/test/stylesheet.php + +echo +echo -e ${ACC_END_MSG} +echo + +exit 0 diff --git a/INSTALLER/script/account_p b/INSTALLER/script/account_p new file mode 100755 index 00000000..f2795bfc --- /dev/null +++ b/INSTALLER/script/account_p @@ -0,0 +1,40 @@ +#!/bin/sh +# $Id: account_p,v 1.5 2009/11/19 05:29:50 oops Exp $ +clear +echo "########################################################" +echo "# JSBoard Config File Installer v2.0 #" +echo "# Scripted By JoungKyun Kim < http://www.oops.org > #" +echo "########################################################" +echo + +echo "STEP 1 Language Check" +echo "---------------------" +echo -n "Do you want to use Korean during the installation? [Y/N](default Y) : " +read langs + +case "${langs}" in + N*|n*) + langs=en ;; + *) + langs=ko ;; +esac + +if [ "${langs}" = "ko" ]; then + . ./LANG/ko.conf +else + . ./LANG/en.conf +fi + +# permission configuration +chmod 707 ../../config +chmod 707 -R ../../data +chmod 606 ../../data/*/files/*/* +chmod 606 ../../data/*/*.* +chmod 660 ../../config/global.php +chmod 660 ../../config/spam_list.txt + +echo +echo -e ${ACC_END_MSG} +echo + +exit 0 diff --git a/INSTALLER/script/conv_udate b/INSTALLER/script/conv_udate new file mode 100755 index 00000000..4f78cc95 --- /dev/null +++ b/INSTALLER/script/conv_udate @@ -0,0 +1,499 @@ +#!/bin/sh +# $Id: conv_udate,v 1.16 2014/03/02 17:11:30 oops Exp $ +PERL_PATH="/usr/bin/perl" +DEFAULTPATH="../.." + +echo "global.php 변환중.." +echo +ACONFFILE="${DEFAULTPATH}/config/global.php" + +rm -rf ${DEFAULTPATH}/config/themes +rm -f ${DEFAULTPATH}/config/README.THEME +rm -f ${DEFAULTPATH}/config/default.themes +rm -f ${DEFAULTPATH}/config/allow_browser.txt + +ASERVER=$(sed -n -e '/db\[server\]/ s/.*db\[server\][^=]*=[^\"a-zA-Z\xA1-\xFE]*[\"]\([^\"]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +[ "${ASERVER}" = "" ] && ASERVER="" + +AUSER=$(sed -n -e '/db\[user\]/ s/.*db\[user\][^=]*=[^\"a-zA-Z\xA1-\xFE]*[\"]\([^\"]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +[ "${AUSER}" = "" ] && AUSER="" + +APASS=$(sed -n -e '/db\[pass\]/ s/.*db\[pass\][^=]*=[^\"a-zA-Z\xA1-\xFE]*[\"]\([^\"]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +[ "${APASS}" = "" ] && APASS="" + +ANAME=$(sed -n -e '/db\[name\]/ s/.*db\[name\][^=]*=[^\"a-zA-Z\xA1-\xFE]*[\"]\([^\"]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +[ "${ANAME}" = "" ] && ANAME="" + +ATITLE=$(sed -n -e '/board\[title\]/ s/.*board\[title\][^=]*=[^\"a-zA-Z\xA1-\xFE]*[\"]\([^\"]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +[ "${ATITLE}" = "" ] && ATITLE="WebBoard" + +AWIDTH=$(sed -n -e '/board\[width\]/ s/.*board\[width\][^=]*=[^\"0-9%]*[\"]*\([0-9%]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +[ "${AWIDTH}" = "" ] && AWIDTH="550" + +ATIT_L=$(sed -n -e '/board\[tit_l\]/ s/.*board\[tit_l\][^=]*=[^\"0-9]*[\"]*\([0-9 ]*\)[\"]*;.*/\1/p;' ${ACONFFILE}) +[ "${ATIT_L}" = "" ] && ATIT_L=42 + +ANAM_L=$(sed -n -e '/board\[nam_l\]/ s/.*board\[nam_l\][^=]*=[^\"0-9]*[\"]*\([0-9 ]*\)[\"]*;.*/\1/p;' ${ACONFFILE}) +[ "${ANAM_L}" = "" ] && ANAM_L=8 + +APERNO=$(sed -n -e '/board\[perno\]/ s/.*board\[perno\][^=]*=[^\"0-9]*[\"]*\([0-9 ]*\)[\"]*;.*/\1/p;' ${ACONFFILE}) +[ "${APERNO}" = "" ] && APERNO=10 + +APLIST=$(sed -n -e '/board\[plist\]/ s/.*board\[plist\][^=]*=[^\"0-9]*[\"]*\([0-9 ]*\)[\"]*;.*/\1/p;' ${ACONFFILE}) +[ "${APLIST}" = "" ] && APLIST=3 + +ALANG=$(sed -n -e '/langs\[code\]/ s/.*langs\[code\][^=]*=[^\"a-zA-Z]*[\"]*\([a-zA-Z]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +case ${ALANG} in + ko|KO|Ko|kO) ATHEME="KO-default" ;; + en|EN|En|eN) ATHEME="EN-default" ;; + *) ATHEME="EN-default" +esac + +ADATEF=$(sed -n -e '/board\[date_fmt\]/ s/.*board\[date_fmt\][^=]*=[^\"a-zA-Z\xA1-\xFE]*[\"]\([^\"]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +[ "${ADATEF}" = "" ] && ADATEF="Y.m.d" + +AHL=$(sed -n -e '/board\[hl\]/ s/.*board\[hl\][^=]*=[^\"0-9a-zA-Z<>]*[\"]*\([^\"]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +if [ "${AHL}" = "" ]; then + AHL="#000000" +else + AHL=${AHL##*=} + AHL=${AHL%%>*} +fi + +AALIGN=$(sed -n -e '/board\[align\]/ s/.*board\[align\][^=]*=[^\"a-zA-Z]*[\"]*\([a-zA-Z]*\)[\"]*;.*/\1/p;' ${ACONFFILE}) +[ "${AALIGN}" = "" ] && AALIGN="center" + +AYESNO=$(sed -n -e '/upload\[yesno\]/ s/.*upload\[yesno\][^=]*=[^\"a-zA-Z]*[\"]*\([a-zA-Z]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +case ${AYESNO} in + y*|Y*) AYESNO=1;; + *) AYESNO=0;; +esac + +ADIR=$(sed -n -e '/upload\[dir\]/ s/.*upload\[dir\][^=]*=[^\"a-zA-Z\xA1-\xFE]*[\"]\([^\"]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +[ "${ADIR}" = "" ] && ADIR="files" + +AMAX=$(sed -n -e '/upload\[maxsize\]/ s/.*upload\[maxsize\][^=]*=[^\"0-9%]*[\"]*\([0-9%]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +[ "${AMAX}" = "" ] && AMAX="2000000" + +AUSES=$(sed -n -e '/rmail\[uses\]/ s/.*rmail\[uses\][^=]*=[^\"a-zA-Z]*[\"]*\([a-zA-Z]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +case ${AUSES} in + y*|Y*) AUSES=1;; + *) AUSES=0;; +esac + +ASMTP=$(sed -n -e '/rmail\[smtp\]/ s/.*rmail\[smtp\][^=]*=[^\"0-9a-zA-Z\xA1-\xFE\.]*[\"]\([^\"]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +[ "${ASMTP}" = "" ] && ASMTP="127.0.0.1" + +ABBS=$(sed -n -e '/rmail\[bbshome\]/ s/.*rmail\[bbshome\][^=]*=[^\"0-9a-zA-Z\xA1-\xFE\.]*[\"]\([^\"]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +[ "${ABBS}" = "" ] && ABBS="http://127.0.0.1/jsboard/" + +APRE=$(sed -n -e '/list\[pre\]/ s/.*list\[pre\][^=]*=[^\"0-9]*[\"]*\([0-9 ]*\)[\"]*;.*/\1/p;' ${ACONFFILE}) +[ "${APRE}" = "" ] && APRE=0 + +APREN=$(sed -n -e '/list\[preren\]/ s/.*list\[preren\][^=]*=[^\"0-9]*[\"]*\([0-9 ]*\)[\"]*;.*/\1/p;' ${ACONFFILE}) +[ "${APREN}" = "" ] && APREN=100 + +ACNAME=$(sed -n -e '/compare\[name\]/ s/.*compare\[name\][^=]*=[^\"a-zA-Z\xA1-\xFE]*[\"]\([^\"]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +[ "${ACNAME}" = "" ] && ACNAME="" + +ACMAIL=$(sed -n -e '/compare\[email\]/ s/.*compare\[email\][^=]*=[^\"a-zA-Z\xA1-\xFE]*[\"]\([^\"]*\)[\" ]*;.*/\1/p;' ${ACONFFILE}) +[ "${ACMAIL}" = "" ] && ACMAIL="" + +cp -af ${DEFAULTPATH}/config/global.php ${DEFAULTPATH}/config/global.php.orig + +echo "STR\"; + +# Table Align of board +\$board[align] = \"${AALIGN}\"; + +# web path of installed jsboard +\$board[path] = \"${ABBS}\"; + + +############################################################################## +# login mode Configuration +############################################################################## +# login variation name (This value must be modified as security problem) +\$jsboard = \"login\"; + +# Don't touch this line. +\$jsboard = \"jsboard\".\$jsboard; + +# location of default page after login +\$print[dpage] = \"${ABBS}list.php?table=test\"; + +# location of default page after logout +\$print[dopage] = \"${ABBS}list.php?table=test\"; + +# permition of user registration +# 1 -> everyone +# 0 -> admin only +\$board[regist] = 0; + + +############################################################################## +# Theme Configuration +############################################################################## +# Theme Name +\$print[theme] = \"${ATHEME}\"; + + +############################################################################## +# UPLOAD Configuration +# if value of \$upload[yesno] is 0, then all board disable upload +############################################################################## +\$upload[yesno] = ${AYESNO}; # enable upload +\$upload[dir] = \"${ADIR}\"; # directory name of upload file +\$upload[maxsize] = \"${AMAX}\"; # upload max size + + +############################################################################## +# Config of IP Blocking +# if value of \$board[useipbl] is 0, then all board disable check ip blocking. +############################################################################## +\$board[useipbl] = 0; + + +############################################################################## +# Control Access From Remote Hyper Link +# if value of \$board[usedhyper] is 0, then all board disable check dhyper. +############################################################################## +\$board[usedhyper] = 0; + + +############################################################################## +# Mail Configuration +############################################################################## +\$rmail[uses] = ${AUSES}; +# MTA configuration +# no value -> send mail with self method of JSBoard +# mail server address -> send mail with selected mail server +# WARN : windows version can't select self method of JSBoard +\$rmail[mta] = \"${ASMTP}\"; +# charactor of converted mail address +\$rmail[chars] = \"__at__\"; + + +############################################################################## +# Preview article contents +############################################################################## +\$list[pre] = ${APRE}; # enable preview +\$list[preren] = ${APREN}; # if enable preview, lenth of contents + + +############################################################################## +# If registed article as follow information, requried passwd of super user +############################################################################## +\$compare[name] = \"${ACNAME}\"; +\$compare[email] = \"${ACMAIL}\"; +?>" > ${DEFAULTPATH}/config/global.php + + +# 게시판 목록을 구함 +TARGET=$(ls -l ${DEFAULTPATH}/data | grep -e "^d" | awk '{print $9}' | sed -e 's/\///') + +for i in ${TARGET} +do + + echo "${i} 게시판 작업중" + + # 필요 없는 테마 파일을 삭제 + rm -f "${DEFAULTPATH}/data/${i}/default.themes" + CONFFILE="${DEFAULTPATH}/data/${i}/config.php" + + # 미리보기 허가 설정값 + PRE=$(sed -n -e '/enable\[pre\]/ s/.*enable\[pre\][^=]*=[^\"0-9]*[\"]*\([0-9 ]*\)[\"]*;.*/\1/p;' ${CONFFILE}) + [ "${PRE}" = "" ] && PRE=0 + + # 미리보기 허가 글길이 값 + PREREN=$(sed -n -e '/enable\[preren\]/ s/.*enable\[preren\][^=]*=[^\"0-9]*[\"]*\([0-9]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${PREREN}" = "" ] && PREREN=100 + + # 원본글 포함 여부 값 + ORE=$(sed -n -e '/enable\[ore\]/ s/.*enable\[ore\][^=]*=[^\"0-9]*[\"]*\([0-9]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${ORE}" = "" ] && ORE=0 + + # 관련글 리스트 값 + RE_LIST=$(sed -n -e '/enable\[re_list\]/ s/.*enable\[re_list\][^=]*=[^\"0-9]*[\"]*\([0-9]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${RE_LIST}" = "" ] && RE_LIST=0 + + # 보드 align 값 + ALIGN=$(sed -n -e '/board\[align\]/ s/.*board\[align\][^=]*=[^\"a-zA-Z]*[\"]*\([a-zA-Z]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${ALIGN}" = "" ] && ALIGN="center" + + # 게시판 제목 + TITLE=$(sed -n -e '/board\[title\]/ s/.*board\[title\][^=]*=[^\"a-zA-Z\xA1-\xFE]*[\"]\([^\"]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${TITLE}" = "" ] && TITLE="" + + # 본문 길게 늘어지는것 방지 + WRAP=$(sed -n -e '/board\[wrap\]/ s/.*board\[wrap\][^=]*=[^\"0-9]*[\"]*\([0-9]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${WRAP}" = "" ] && WRAP=0 + + WWRAP=$(sed -n -e '/board\[wwrap\]/ s/.*board\[wwrap\][^=]*=[^\"0-9]*[\"]*\([0-9]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${WWRAP}" = "" ] && WWRAP=120 + + # 게시판 너비 + WIDTH=$(sed -n -e '/board\[width\]/ s/.*board\[width\][^=]*=[^\"0-9%]*[\"]*\([0-9%]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${WIDTH}" = "" ] && WIDTH=550 + + # 제목 필드 최대 길이 + TIT_L=$(sed -n -e '/board\[tit_l\]/ s/.*board\[tit_l\][^=]*=[^\"0-9]*[\"]*\([0-9]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${TIT_L}" = "" ] && TIT_L=38 + + # 글쓴이 필드 최대 길이 + NAM_L=$(sed -n -e '/board\[nam_l\]/ s/.*board\[nam_l\][^=]*=[^\"0-9]*[\"]*\([0-9]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${NAM_L}" = "" ] && NAM_L=8 + + # 페이지 당 게시물 수 + PERNO=$(sed -n -e '/board\[perno\]/ s/.*board\[perno\][^=]*=[^\"0-9]*[\"]*\([0-9]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${PERNO}" = "" ] && PERNO=10 + + # 페이지 목록 출력 갯수 + PLIST=$(sed -n -e '/board\[plist\]/ s/.*board\[plist\][^=]*=[^\"0-9]*[\"]*\([0-9]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${PLIST}" = "" ] && PLIST=3 + + # 쿠키값 + COOKIE=$(sed -n -e '/board\[cookie\]/ s/.*board\[cookie\][^=]*=[^\"0-9]*[\"]*\([0-9]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${COOKIE}" = "" ] && COOKIE=30 + + # IP address 출력 여부(상단 메뉴 출력 안할시) + DHOST=$(sed -n -e '/enable\[dhost\]/ s/.*enable\[dhost\][^=]*=[^\"0-9]*[\"]*\([0-9]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${DHOST}" = "" ] && DHOST=0 + + # DNS lookup 여부 + DLOOK=$(sed -n -e '/enable\[dlook\]/ s/.*enable\[dlook\][^=]*=[^\"0-9]*[\"]*\([0-9]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${DLOOK}" = "" ] && DLOOK=0 + + # WHOIS 검색 여부 + DWHO=$(sed -n -e '/enable\[dwho\]/ s/.*enable\[dwho\][^=]*=[^\"0-9]*[\"]*\([0-9]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${DWHO}" = "" ] && DWHO=0 + + # upload 사용 여부 + YESNO=$(sed -n -e '/cupload\[yesno\]/ s/.*cupload\[yesno\][^=]*=[^\"a-zA-Z]*[\"]*\([a-zA-Z]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + + case ${YESNO} in + y*|Y*) YESNO=1;; + *) YESNO=0;; + esac + + # URL 출력 여부 + VURL=$(sed -n -e '/view\[url\]/ s/.*view\[url\][^=]*=[^\"a-zA-Z]*[\"]*\([a-zA-Z]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + + case ${VURL} in + y*|Y*) VURL=1;; + *) VURL=0;; + esac + + # EMAIL 출력 여부 + VEMAIL=$(sed -n -e '/view\[email\]/ s/.*view\[email\][^=]*=[^\"a-zA-Z]*[\"]*\([a-zA-Z]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + + case ${VEMAIL} in + y*|Y*) VEMAIL=1;; + *) VEMAIL=0;; + esac + + # 메일 발송 여부(어드민) + RADMIN=$(sed -n -e '/rmail\[admin\]/ s/.*rmail\[admin\][^=]*=[^\"a-zA-Z]*[\"]*\([a-zA-Z]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + + case ${RADMIN} in + y*|Y*) RADMIN=1;; + *) RADMIN=0;; + esac + + # 메일 발송 여부(유저) + RUSER=$(sed -n -e '/rmail\[user\]/ s/.*rmail\[user\][^=]*=[^\"a-zA-Z]*[\"]*\([a-zA-Z]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + + case ${RUSER} in + y*|Y*) RUSER=1;; + *) RUSER=0;; + esac + + # 메일 발송 주소(어드민) + TOADMIN=$(sed -n -e '/rmail\[toadmin\]/ s/.*rmail\[toadmin\][^=]*=[^\"a-zA-Z\xA1-\xFE]*[\"]\([^\"]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${TOADMIN}" = "" ] && TOADMIN="" + + + # 패스워드 요구 정보(이름) + CNAME=$(sed -n -e '/ccompare\[name\]/ s/.*ccompare\[name\][^=]*=[^\"a-zA-Z\xA1-\xFE]*[\"]\([^\"]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${CNAME}" = "" ] && CNAME="" + + # 패스워드 요구 정보(메일) + CEMAIL=$(sed -n -e '/ccompare\[email\]/ s/.*ccompare\[email\][^=]*=[^\"a-zA-Z\xA1-\xFE]*[\"]\([^\"]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + [ "${CEMAIL}" = "" ] && CEMAIL="" + + # LANGUAGE 체크 + CLANG=$(sed -n -e '/langs\[code\]/ s/.*langs\[code\][^=]*=[^\"a-zA-Z]*[\"]*\([a-zA-Z]*\)[\" ]*;.*/\1/p;' ${CONFFILE}) + case ${CLANG} in + ko|KO|Ko|kO) CTHEME="KO-default" ;; + en|EN|En|eN) CTHEME="EN-default" ;; + *) CTHEME="EN-default" + esac + + cp -af ${DEFAULTPATH}/data/${i}/config.php ${DEFAULTPATH}/data/${i}/config.php.old + + echo " 게시판 관리자 id +# mode -> 게시판 관리 모드 +# 0 -> 공개 게시판 +# 1 -> 공지 게시판 (admin only write) +# 2 -> 회원 전용 게시판 +# 3 -> 회원 전용 공지 게시판 (admin only write) +# 4 -> 공개 게시판 (read, reply only) +# 5 -> 회원 전용 게시판 (read, reply only) +# 6 -> 공개 게시판 (reply only admin) +# 7 -> 회원 전용 게시판 (reply only admin) +############################################################################### +# +\$board[ad] = \"admin\"; +\$board[mode] = 0; + +# 로그인 모드시에 이름 출력을 실명으로 할지 Nickname 으로 할지 결정 +# 이 변수값이 설정이 안되어 있으면 Nickname 으로 출력 +\$board[rnname] = 0; + +# 로그아웃 후에 이동할 페이지를 지정 +\$print[dopage] = \"${ABBS}list.php?table=${i}\"; + + +############################################################################### +# 게시판 허가 설정 +############################################################################### +# +\$enable[pre] = ${PRE}; # 미리 보기 허가 +\$enable[preren] = ${PREREN}; # 미리 보기 허가시 글 길이 + +# 답장시 원본글 포함을 선택사항으로 설정 +# +\$enable[ore] = ${ORE}; # 0 - 무조건 출력 1 - 선택사항 + +# 글읽기에서 관련글이 있을 경우 관련글 리스트를 보여줄지 여부 설정 +# +\$enable[re_list] = ${RE_LIST}; # 0 - 보여주지 않음 1 - 보여줌 + + +############################################################################### +# 게시판 정렬 상태를 설정 +############################################################################### +# +\$board[align] = \"${ALIGN}\"; #
+ + +############################################################################### +# 게시판 기본 설정 +############################################################################### +# +\$board[title] = \"${TITLE}\"; # 게시판 제목 +\$board[wrap] = ${WRAP}; # 본문 길게 늘어지는것 방지 +\$board[wwrap] = ${WWRAP}; # \$board[wrap]이 적용안될시 강제 적용 +\$board[width] = \"${WIDTH}\"; # 게시판 너비 +\$board[tit_l] = ${TIT_L}; # 제목 필드 최대 길이 +\$board[nam_l] = ${NAM_L}; # 글쓴이 필드 최대 길이 +\$board[perno] = ${PERNO}; # 페이지 당 게시물 수 +\$board[plist] = ${PLIST}; # 페이지 목록 출력 갯수 (x2) + +# 쿠키 기간 설정 (日) +\$board[cookie] = ${COOKIE}; + + +############################################################################### +# 호스트 정보 출력 설정 0 - Failed, 1 - True +############################################################################### +# +\$enable[dhost] = ${DHOST}; # IP address 출력 여부(상단 메뉴 출력 안할시) +\$enable[dlook] = ${DLOOK}; # DNS lookup 여부 +\$enable[dwho] = ${DWHO}; # WHOIS 검색 여부 + + +############################################################################### +# Theme Configuration +############################################################################### +# +\$print[theme] = \"${CTHEME}\"; # Theme 이름 + + +############################################################################### +# file upload 관련 설정 +# 전체 관리자가 허락 하지 않으면 여기서 yes를 선택해도 이기능을 사용할수 없다 +############################################################################### +# +\$cupload[yesno] = ${YESNO}; # upload 사용 여부 + + +############################################################################### +# url,email 사용 여부 설정 +############################################################################### +# +\$view[url] = ${VURL}; +\$view[email] = ${VEMAIL}; + + +############################################################################### +# mail 발송 여부 설정 +# 전체 관리자의 기능 on에 의해 사용을 할수 있다 +############################################################################### +# +\$rmail[admin] = ${RADMIN}; +\$rmail[user] = ${RUSER}; +\$rmail[toadmin] = \"${TOADMIN}\"; # 메일을 받을 게시판 관리자의 메일 주소 + + +############################################################################### +# 아래의 정보를 사용하여 글 등록시 관리자의 password를 요구 +############################################################################### +# +\$ccompare[name] = \"${CNAME}\"; +\$ccompare[email] = \"${CEMAIL}\"; + + +############################################################################### +# IP Blocking 기능 +# 설정값의 구분자는 ';' 로 한다. +# 설정 예) 1.1.1.1;2.2.2.2;3.3.3.3 +############################################################################### +\$enable[ipbl] = \"\"; + + +############################################################################### +# 원격의 하이퍼링크를 통해 들어오는 접속제어 +# dhyper : 0 -> 등록된 값만 허락 +# 1 -> 등록된 값만 막음 +# plink 가 없을 경우에는 작동 안함 +# plink : dhyper 가 작동할 ip 주소. ';' 를 구분자로 사용 +# 설정 예) 1.1.1.1;2.2.2.2;3.3.3.3 +############################################################################### +# +\$enable[dhyper] = 0; +\$enable[plink] = \"\"; +?>" > ${DEFAULTPATH}/data/${i}/config.php + +done + +exit 0 diff --git a/INSTALLER/script/dbconv_to_20 b/INSTALLER/script/dbconv_to_20 new file mode 100755 index 00000000..0d1bc46f --- /dev/null +++ b/INSTALLER/script/dbconv_to_20 @@ -0,0 +1,39 @@ +#!/bin/sh +# $Id: dbconv_to_20,v 1.6 2014/03/02 17:11:30 oops Exp $ + +# 아래의 정보들은 global.php 의 DB 정보와 동일하게 입력함. +# jsboard 에 접근할 유저이름 +DB_USER= + +# jsboard 에 접근할 유저 패스워드 +DB_PASS= + +# jsboard 가 사용할 database 이름 +DB_NAME= + +# 만약 사용하는 database 에 JSBoard 가 사용하는 table 외의 다른 +# 테이블이 존재할 경우에는 JSBoard 가 사용할 table 들을 직접 지 +# 정해 줘야 한다. +# ex> TARGET="qna faq freeboard" +# +TARGET="" + +# mysql client path +# find /usr -name mysql 로 찾도록 한다. +MPATH=/usr/bin/mysql + +if [ "${TARGET}" = "" ]; then + TARGET=$(mysql -u${DB_USER} -p${DB_PASS} ${DB_NAME} -e "show tables" | grep -v "Tables_in_\|userdb") +fi + +for i in ${TARGET} +do + if [ "${TARGET}" != "userdb" ]; then + echo "Converting ${i} table ......." + ${MPATH} -u${DB_USER} -p${DB_PASS} ${DB_NAME} -e "ALTER TABLE ${i} ADD rname tinytext" + ${MPATH} -u${DB_USER} -p${DB_PASS} ${DB_NAME} -e "ALTER TABLE ${i} DROP moder" + ${MPATH} -u${DB_USER} -p${DB_PASS} ${DB_NAME} -e "ALTER TABLE ${i} MODIFY passwd varchar(56)" + fi +done + +exit 0 diff --git a/INSTALLER/script/preinstall b/INSTALLER/script/preinstall new file mode 100755 index 00000000..e8b31663 --- /dev/null +++ b/INSTALLER/script/preinstall @@ -0,0 +1,156 @@ +#!/bin/sh +# $Id: preinstall,v 1.10 2014/03/02 17:11:30 oops Exp $ +clear +echo "########################################################" +echo "# JSBoard Pre Installer v2.0 #" +echo "# Scripted By JoungKyun Kim < http://www.oops.org > #" +echo "########################################################" +echo + +EXE= + +echo "STEP 1 Language Check" +echo "---------------------" +echo -n "Can you enable to use KOREAN in this console? [Y/N](default Y) : " +read langs + +case "${langs}" in + N*|n*) + langs=en ;; + *) + langs=ko ;; +esac + +me=$(whoami) + +if [ "${me}" != "root" ]; then + if [ "${langs}" = "ko" ]; then + echo + echo "주의 !!!" + echo "현재 당신은 ${me} 유저로 이 파일을 실행하고 있습니다." + echo "만약 루트의 권한이 있으면 이 파일을 루트의 권한으로 실행하십시오" + echo + else + echo + echo "Attention !!!" + echo "Now, U are running this file as ${me} user." + echo "If u have root privilege, U must excute this file as root user." + echo + fi + + if [ "${langs}" = "ko" ]; then + echo "Root 유저로 다시 작업 하시겠습니까?" + echo -n "Root 권한을 얻을수 없다면 N 을 선택하십시오. [Y/N](default N) : " + else + echo "Do you continue as root user?" + echo -n "If you can't login as root, type N. [Y/N](default N) : " + fi + read priv + + case "${priv}" in + Y*|y*) + priv=y ;; + *) + priv=n ;; + esac + + if [ "${priv}" = "y" ]; then + if [ "${langs}" = "ko" ]; then + echo + echo "root 로 로그인을 하신 후에 다시 실행해 주십시오" + else + echo + echo "Excute this file after login as root user" + fi + exit 0 + fi +fi + +if [ ! -d "../../data" ]; then + mkdir ../../data +fi + +if [ ! -d "../../config" ]; then + mkdir ../../config +fi + +if [ "${me}" = "root" ]; then + #AUSER=$(ps aux | grep -E "apache|httpd" | grep -v ^root | grep -v grep | awk '{print $1}' | uniq) + AUSER=$(ps aux|awk '{print $1,$2}'|grep "$(ps ax|grep -E 'apache|httpd|www|www-data'|grep -v grep|awk '{print $1}')"|grep -v ^root|awk '{print $1}'|uniq) + + if [ "${langs}" = "ko" ]; then + echo + echo "웹서버가 ${AUSER} 의 권한으로 작동하고 있는듯 싶습니다." + echo -n "맞습니까? 있는 값과 일치해야 합니다. [Y/N](default Y) : " + else + echo + echo "Maybe web server is running as ${AUSER} privilege." + echo -n "Is Right? [Y/N](default Y) : " + fi + + read achk + + case "${achk}" in + N*|n*) + achk=n ;; + *) + achk=y ;; + esac + + if [ "${achk}" = "n" ]; then + AUSER= + while [ true ] + do + if [ "${AUSER}" != "" ]; then + break + else + if [ "${langs}" = "ko" ]; then + echo + echo -n "웹서버의 Group 권한을 입력 하십시오 : " + else + echo + echo -n "Input value of Group privilege on web server : " + fi + read AUSER + fi + done + fi + + chgrp ${AUSER} ../../config > /dev/null 2>&1 + [ "$?" != "0" ] && EXE=1 + chgrp ${AUSER} ../../data > /dev/null 2>&1 + [ "$?" != "0" ] && EXE=1 + chmod 731 ../../config > /dev/null 2>&1 + [ "$?" != "0" ] && EXE=1 + chmod 775 ../../data > /dev/null 2>&1 + [ "$?" != "0" ] && EXE=1 + + if [ "${EXE}" = "1" ]; then + if [ "${langs}" = "ko" ]; then + echo + echo "${AUSER} 는 잘못된 값입니다. httpd.conf 에서 Group 지시자의" + echo "값을 확인하시고 다시 시도하십시오" + else + echo + echo "Value ${AUSER} is incollect. Retry after confirms value of" + echo "Group directive in httpd.conf" + fi + exit 1 + fi + +else + chmod 707 ../../config + chmod 707 ../../data +fi + +if [ "${langs}" = "ko" ]; then + echo + echo "작업이 완료 되었습니다. jsboard/INSTALLER/include/passwd.php의 정보를" + echo "적절히 수정한 후에, 브라우져로 jsboard/INSTALLER/ 로 접속하여 echo 설" + echo "치를 계속 하시기 바랍니다." +else + echo + echo "Complete this working. After Edit jsboard/INSTALLER/include/passwd.php and" + echo " access jsboard/INSTALLER with web browser, continue install jop" +fi +exit 0 diff --git a/INSTALLER/script/root b/INSTALLER/script/root new file mode 100755 index 00000000..a3a2c901 --- /dev/null +++ b/INSTALLER/script/root @@ -0,0 +1,153 @@ +#!/bin/sh +# $Id: root,v 1.11 2014/03/02 17:11:30 oops Exp $ +clear +echo "########################################################" +echo "# JSBoard Config File Installer v2.1 #" +echo "# Scripted By JoungKyun Kim < http://oops.org > #" +echo "########################################################" +echo + +echo "STEP 1 Language Check" +echo "---------------------" +echo -n "Do you want to use Korean during the installation? [Y/N](default Y) : " +read langs + +case "${langs}" in + N*|n*) + langs=en ;; + *) + langs=ko ;; +esac + +# location of apache configuration file +if [ -f "/etc/httpd/conf/httpd.conf" ] ;then + CONF="/etc/httpd/conf/httpd.conf" +elif [ -f "/etc/www/conf/httpd.conf" ]; then + CONF="/etc/www/conf/httpd.conf" +elif [ -f "/etc/www/httpd.conf" ]; then + CONF="/etc/www/httpd.conf" +elif [ -f "/usr/local/apache/conf/httpd.conf" ]; then + CONF="/usr/local/apache/conf/httpd.conf" +elif [ -f "/usr/local/etc/apache/httpd.conf" ]; then + CONF="/usr/local/etc/apache/httpd.conf" +elif [ -f "/etc/apache/conf/commonapache.conf" ]; then + CONF="/etc/apache/conf/commonapache.conf" +else + while [ true ]; + do + if [ "${langs}" = "ko" ]; then + echo + echo "ERROR : httpd.conf 를 찾을 수가 없습니다." + echo -n "httpd.conf 의 절대 경로를 지정해 주십시오 : " + else + echo + echo "ERROR : Can't find httpd.conf" + echo -n "Please specify the location of httpd.conf : " + + fi + read CONF + + [ -f "${CONF}" ] && break + done +fi + +DIST=`uname -s` +Auser=$(ps uax | grep -E "apache|httpd|www|www-data" | grep -v ^root | grep -v grep | awk '{print $1}' | uniq) +Agroup=$(cat ${CONF} | grep -E "^(`echo -ne "\t"`|[ ])*Group " | awk '{print $2}') + +if [ "${langs}" = "ko" ]; then + . ./LANG/ko.conf +else + . ./LANG/en.conf +fi + +echo +echo "########################################################" +echo "${SYSTEM_IN}" +echo "########################################################" +echo "#" +echo "${SYSTEM_LN}" +echo "${SYSTEM_OS}" +echo "${SYSTEM_HU}" +echo "${SYSTEM_HG}" +echo "#" +echo "########################################################" +echo +echo + +if [ "${Agroup}" = "#-1" ]; then + echo -e "${SYSTEM_GE}" + exit 1 +else + echo "${SYSTEM_MN}" + echo -n "${SYSTEM_AL}" + read INFO +fi + +case "${INFO}" in + N*|n*) + INFO=N ;; + *) + INFO=Y ;; +esac + +if [ "$INFO" = "N" ] ; then + echo + echo "1. Webserver user configuration" + echo -n "${RECONF_HU}" + read Auser + + while [ true ]; do + if [ ${Auser} ]; then + break; + else + echo -n "${RECONF_HU}" + read Auser + fi + done + + echo + echo "2. Webserver group configuration" + echo -n "${RECONF_HG}" + read Agroup + + while [ true ]; do + if [ ${Agroup} ]; then + break; + else + echo -n "${RECONF_HG}" + read Agroup + fi + done +fi + +cp -Rp ../sample/admin/global.php.orig ../../config/global.php +cp -Rp ../sample/admin/spam_list.txt.orig ../../config/spam_list.txt +if [ -d "../../data/test" ]; then + cp -Rp ../sample/data/* ../../data/test/ +else + cp -Rp ../sample/data ../../data/test +fi + +# owner configuration +chgrp ${Agroup} ../../config +chgrp -R ${Agroup} ../../data/ +chgrp ${Agroup} ../../config/global.php +chgrp ${Agroup} ../../config/spam_list.txt + +# permission configuration +chmod 731 ../../config +chmod 775 ../../data +chmod 775 ../../data/test +chmod 775 ../../data/test/files +chmod 664 ../../config/spam_list.txt +chmod 660 ../../config/global.php +chmod 664 ../../data/test/config.php +chmod 664 ../../data/test/html_head.php +chmod 664 ../../data/test/html_tail.php +chmod 664 ../../data/test/stylesheet.php + +echo +echo "${ENDMSG}" +echo +exit 0 diff --git a/INSTALLER/script/root_p b/INSTALLER/script/root_p new file mode 100755 index 00000000..b8de0f33 --- /dev/null +++ b/INSTALLER/script/root_p @@ -0,0 +1,144 @@ +#!/bin/sh +# $Id: root_p,v 1.10 2014/03/02 17:11:30 oops Exp $ +clear +echo "########################################################" +echo "# JSBoard Config File Permissioner v2.0 #" +echo "# Scripted By JoungKyun Kim < http://www.oops.org > #" +echo "########################################################" +echo + +echo "STEP 1 Language Check" +echo "---------------------" +echo -n "Do you want to use Korean during the installation? [Y/N](default Y) : " +read langs + +case "${langs}" in + N*|n*) + langs=en ;; + *) + langs=ko ;; +esac + +# location of apache configuration file +if [ -f "/etc/httpd/conf/httpd.conf" ] ;then + CONF="/etc/httpd/conf/httpd.conf" +elif [ -f "/etc/www/conf/httpd.conf" ]; then + CONF="/etc/www/conf/httpd.conf" +elif [ -f "/etc/www/httpd.conf" ]; then + CONF="/etc/www/httpd.conf" +elif [ -f "/usr/local/apache/conf/httpd.conf" ]; then + CONF="/usr/local/apache/conf/httpd.conf" +elif [ -f "/usr/local/etc/apache/httpd.conf" ]; then + CONF="/usr/local/etc/apache/httpd.conf" +elif [ -f "/etc/apache/conf/commonapache.conf" ]; then + CONF="/etc/apache/conf/commonapache.conf" +else + while [ true ]; + do + if [ "${langs}" = "ko" ]; then + echo + echo "^[[1;31mERROR^[[7;0m : httpd.conf 를 찾을 수가 없습니다." + echo -n "httpd.conf 의 절대 경로를 지정해 주십시오 : " + else + echo + echo "^[[1;31mERROR^[[7;0m : Can't find httpd.conf" + echo -n "Please specify the location of httpd.conf : " + fi + read CONF + + [ -f "${CONF}" ] && break + done +fi + +DIST=`uname -s` +Auser=$(ps uax | grep -E "apache|httpd" | grep -v ^root | grep -v grep | awk '{print $1}' | uniq) +Agroup=$(cat ${CONF} | grep -E "^(`echo -ne "\t"`|[ ])*Group " | awk '{print $2}') + +if [ "${langs}" = "ko" ]; then + . ./LANG/ko.conf +else + . ./LANG/en.conf +fi + +echo +echo "########################################################" +echo "${SYSTEM_IN}" +echo "########################################################" +echo "#" +echo "${SYSTEM_LN}" +echo "${SYSTEM_OS}" +echo "${SYSTEM_HU}" +echo "${SYSTEM_HG}" +echo "#" +echo "########################################################" +echo +echo + +if [ "${Agroup}" = "#-1" ]; then + echo -e "${SYSTEM_GE}" + exit 1 +else + echo "${SYSTEM_MN}" + echo -n "${SYSTEM_AL}" + read INFO +fi + +case "${INFO}" in + N*|n*) + INFO=N ;; + *) + INFO=Y ;; +esac + +if [ "$INFO" = "N" ] ; then + echo + echo "1. Webserver user configuration" + echo -n "${RECONF_HU}" + read Auser + + while [ true ]; do + if [ ${Auser} ]; then + break; + else + echo -n "${RECONF_HU}" + read Auser + fi + done + + echo + echo "2. Webserver group configuration" + echo -n "${RECONF_HG}" + read Agroup + + while [ true ]; do + if [ ${Agroup} ]; then + break; + else + echo -n "${RECONF_HG}" + read Agroup + fi + done +fi + +# owner configuration +chgrp ${Agroup} ../../config +chgrp -R ${Agroup} ../../data/ +chgrp ${Agroup} ../../config/global.php +chgrp ${Agroup} ../../config/spam_list.txt + +# permission configuration +chmod 731 ../../config +chmod 775 ../../data +chmod 775 ../../data/* +chmod 775 ../../data/*/files +chmod 775 ../../data/*/files/* +chmod 664 ../../data/*/files/*/* +chmod 664 ../../data/*/*.* +chmod 664 ../../config/spam_list.txt +chmod 660 ../../config/global.php + +echo +echo "${ENDMSG}" +echo + +exit 0 diff --git a/INSTALLER/session.php b/INSTALLER/session.php new file mode 100644 index 00000000..ce21af17 --- /dev/null +++ b/INSTALLER/session.php @@ -0,0 +1,58 @@ +\n",$str); +} +?> + + + + JSBoard Initialize + + + + + + + diff --git a/README b/README index 28f61e9f..5124ea88 100644 --- a/README +++ b/README @@ -1,7 +1,7 @@ -$Id: README,v 1.3 2009-11-16 21:52:45 oops Exp $ +$Id: README,v 1.2 2009/11/19 05:29:49 oops Exp $ ENGLISH message -goto doc/en +goto jsboard/doc/en KOREAN message -goto doc/ko +goto jsboard/doc/ko diff --git a/SQL/mysql/board.sql b/SQL/mysql/board.sql deleted file mode 100644 index 883abf74..00000000 --- a/SQL/mysql/board.sql +++ /dev/null @@ -1,37 +0,0 @@ -# sql -# # ڴ ּ ó -# sql ̾ tab ؾ . -# õ - -CREATE TABLE @table@ ( - no int(6) NOT NULL auto_increment, - num int(6) DEFAULT '0' NOT NULL, - idx int(6) DEFAULT '0' NOT NULL, - date int(11) DEFAULT '0' NOT NULL, - host tinytext, - name tinytext, - rname tinytext, - passwd varchar(56), - email tinytext, - url tinytext, - title tinytext, - text mediumtext, - refer int(6) DEFAULT '0' NOT NULL, - reyn int(1) DEFAULT '0' NOT NULL, - reno int(6) DEFAULT '0' NOT NULL, - rede int(6) DEFAULT '0' NOT NULL, - reto int(6) DEFAULT '0' NOT NULL, - html int(1) DEFAULT '1' NOT NULL, - comm int(6) DEFAULT '0' NOT NULL, - bofile varchar(100), - bcfile varchar(100), - bfsize int(4), - KEY no (no), - KEY num (num), - KEY idx (idx), - KEY reno (reno), - KEY date (date), - KEY reto (reto), - KEY comm (comm), - PRIMARY KEY (no) - ) TYPE=MyISAM; diff --git a/SQL/mysql/comment.sql b/SQL/mysql/comment.sql deleted file mode 100644 index c0bcad85..00000000 --- a/SQL/mysql/comment.sql +++ /dev/null @@ -1,18 +0,0 @@ -# sql -# # ڴ ּ ó -# sql ̾ tab ؾ . -# õ - -CREATE TABLE @table@_comm ( - no int(6) NOT NULL auto_increment, - reno int(20) NOT NULL default '0', - rname tinytext, - name tinytext, - passwd varchar(56) default NULL, - text mediumtext, - host tinytext, - date int(11) NOT NULL default '0', - PRIMARY KEY (no), - KEY parent (reno) - ) TYPE=MyISAM; - diff --git a/SQL/mysql/userdb.sql b/SQL/mysql/userdb.sql deleted file mode 100644 index 14e2edbf..00000000 --- a/SQL/mysql/userdb.sql +++ /dev/null @@ -1,20 +0,0 @@ -# sql -# # ڴ ּ ó -# sql ̾ tab ؾ . -# õ - -CREATE TABLE userdb ( - no int(6) NOT NULL auto_increment, - nid varchar(30) NOT NULL default '', - name varchar(30) NOT NULL default '', - email tinytext NOT NULL, - url tinytext NOT NULL, - passwd varchar(100) NOT NULL default '', - position int(1) NOT NULL default '0', - PRIMARY KEY (no), - KEY no (no), - UNIQUE KEY nid (nid), - KEY name (name), - KEY position (position) - ) TYPE=MyISAM; - diff --git a/SQL/mysql3/board.sql b/SQL/mysql3/board.sql deleted file mode 100644 index bc4b057c..00000000 --- a/SQL/mysql3/board.sql +++ /dev/null @@ -1,37 +0,0 @@ -# sql -# # ڴ ּ ó -# sql ̾ tab ؾ . -# õ - -CREATE TABLE @table@ ( - no int(6) NOT NULL auto_increment, - num int(6) DEFAULT '0' NOT NULL, - idx int(6) DEFAULT '0' NOT NULL, - date int(11) DEFAULT '0' NOT NULL, - host tinytext, - name tinytext, - rname tinytext, - passwd varchar(56), - email tinytext, - url tinytext, - title tinytext, - text mediumtext, - refer int(6) DEFAULT '0' NOT NULL, - reyn int(1) DEFAULT '0' NOT NULL, - reno int(6) DEFAULT '0' NOT NULL, - rede int(6) DEFAULT '0' NOT NULL, - reto int(6) DEFAULT '0' NOT NULL, - html int(1) DEFAULT '1' NOT NULL, - comm int(6) DEFAULT '0' NOT NULL, - bofile varchar(100), - bcfile varchar(100), - bfsize int(4), - KEY no (no), - KEY num (num), - KEY idx (idx), - KEY reno (reno), - KEY date (date), - KEY reto (reto), - KEY comm (comm), - PRIMARY KEY (no) - ); diff --git a/SQL/mysql3/comment.sql b/SQL/mysql3/comment.sql deleted file mode 100644 index 5a652e38..00000000 --- a/SQL/mysql3/comment.sql +++ /dev/null @@ -1,18 +0,0 @@ -# sql -# # ڴ ּ ó -# sql ̾ tab ؾ . -# õ - -CREATE TABLE @table@_comm ( - no int(6) NOT NULL auto_increment, - reno int(20) NOT NULL default '0', - rname tinytext, - name tinytext, - passwd varchar(56) default NULL, - text mediumtext, - host tinytext, - date int(11) NOT NULL default '0', - PRIMARY KEY (no), - KEY parent (reno) - ); - diff --git a/SQL/mysql3/userdb.sql b/SQL/mysql3/userdb.sql deleted file mode 100644 index e23889d4..00000000 --- a/SQL/mysql3/userdb.sql +++ /dev/null @@ -1,20 +0,0 @@ -# sql -# # ڴ ּ ó -# sql ̾ tab ؾ . -# õ - -CREATE TABLE userdb ( - no int(6) NOT NULL auto_increment, - nid varchar(30) NOT NULL default '', - name varchar(30) NOT NULL default '', - email tinytext NOT NULL, - url tinytext NOT NULL, - passwd varchar(100) NOT NULL default '', - position int(1) NOT NULL default '0', - PRIMARY KEY (no), - KEY no (no), - UNIQUE KEY nid (nid), - KEY name (name), - KEY position (position) - ); - diff --git a/SQL/mysql4/board.sql b/SQL/mysql4/board.sql deleted file mode 100644 index 6bc2a35f..00000000 --- a/SQL/mysql4/board.sql +++ /dev/null @@ -1,37 +0,0 @@ -# sql -# # ڴ ּ ó -# sql ̾ tab ؾ . -# õ - -CREATE TABLE @table@ ( - no int(6) NOT NULL auto_increment, - num int(6) DEFAULT '0' NOT NULL, - idx int(6) DEFAULT '0' NOT NULL, - date int(11) DEFAULT '0' NOT NULL, - host tinytext, - name tinytext, - rname tinytext, - passwd varchar(56), - email tinytext, - url tinytext, - title tinytext, - text mediumtext, - refer int(6) DEFAULT '0' NOT NULL, - reyn int(1) DEFAULT '0' NOT NULL, - reno int(6) DEFAULT '0' NOT NULL, - rede int(6) DEFAULT '0' NOT NULL, - reto int(6) DEFAULT '0' NOT NULL, - html int(1) DEFAULT '1' NOT NULL, - comm int(6) DEFAULT '0' NOT NULL, - bofile varchar(100), - bcfile varchar(100), - bfsize int(4), - KEY no (no), - KEY num (num), - KEY idx (idx), - KEY reno (reno), - KEY date (date), - KEY reto (reto), - KEY comm (comm), - PRIMARY KEY (no) - ) diff --git a/SQL/mysql4/comment.sql b/SQL/mysql4/comment.sql deleted file mode 100644 index e84024a8..00000000 --- a/SQL/mysql4/comment.sql +++ /dev/null @@ -1,18 +0,0 @@ -# sql -# # ڴ ּ ó -# sql ̾ tab ؾ . -# õ - -CREATE TABLE @table@_comm ( - no int(6) NOT NULL auto_increment, - reno int(20) NOT NULL default '0', - rname tinytext, - name tinytext, - passwd varchar(56) default NULL, - text mediumtext, - host tinytext, - date int(11) NOT NULL default '0', - PRIMARY KEY (no), - KEY parent (reno) - ) - diff --git a/SQL/mysql4/userdb.sql b/SQL/mysql4/userdb.sql deleted file mode 100644 index 65a6de4d..00000000 --- a/SQL/mysql4/userdb.sql +++ /dev/null @@ -1,20 +0,0 @@ -# sql -# # ڴ ּ ó -# sql ̾ tab ؾ . -# õ - -CREATE TABLE userdb ( - no int(6) NOT NULL auto_increment, - nid varchar(30) NOT NULL default '', - name varchar(30) NOT NULL default '', - email tinytext NOT NULL, - url tinytext NOT NULL, - passwd varchar(100) NOT NULL default '', - position int(1) NOT NULL default '0', - PRIMARY KEY (no), - KEY no (no), - UNIQUE KEY nid (nid), - KEY name (name), - KEY position (position) - ) - diff --git a/SQL/mysql41/board.sql b/SQL/mysql41/board.sql deleted file mode 100644 index bf492fd9..00000000 --- a/SQL/mysql41/board.sql +++ /dev/null @@ -1,37 +0,0 @@ -# sql -# # ڴ ּ ó -# sql ̾ tab ؾ . -# õ - -CREATE TABLE @table@ ( - no int(6) NOT NULL auto_increment, - num int(6) DEFAULT '0' NOT NULL, - idx int(6) DEFAULT '0' NOT NULL, - date int(11) DEFAULT '0' NOT NULL, - host tinytext, - name tinytext, - rname tinytext, - passwd varchar(56), - email tinytext, - url tinytext, - title tinytext, - text mediumtext, - refer int(6) DEFAULT '0' NOT NULL, - reyn int(1) DEFAULT '0' NOT NULL, - reno int(6) DEFAULT '0' NOT NULL, - rede int(6) DEFAULT '0' NOT NULL, - reto int(6) DEFAULT '0' NOT NULL, - html int(1) DEFAULT '1' NOT NULL, - comm int(6) DEFAULT '0' NOT NULL, - bofile varchar(100), - bcfile varchar(100), - bfsize int(4), - KEY no (no), - KEY num (num), - KEY idx (idx), - KEY reno (reno), - KEY date (date), - KEY reto (reto), - KEY comm (comm), - PRIMARY KEY (no) - ) CHARSET=euckr diff --git a/SQL/mysql41/comment.sql b/SQL/mysql41/comment.sql deleted file mode 100644 index 84d8bd3e..00000000 --- a/SQL/mysql41/comment.sql +++ /dev/null @@ -1,18 +0,0 @@ -# sql -# # ڴ ּ ó -# sql ̾ tab ؾ . -# õ - -CREATE TABLE @table@_comm ( - no int(6) NOT NULL auto_increment, - reno int(20) NOT NULL default '0', - rname tinytext, - name tinytext, - passwd varchar(56) default NULL, - text mediumtext, - host tinytext, - date int(11) NOT NULL default '0', - PRIMARY KEY (no), - KEY parent (reno) - ) CHARSET=euckr - diff --git a/SQL/mysql41/userdb.sql b/SQL/mysql41/userdb.sql deleted file mode 100644 index c8a3e4cf..00000000 --- a/SQL/mysql41/userdb.sql +++ /dev/null @@ -1,20 +0,0 @@ -# sql -# # ڴ ּ ó -# sql ̾ tab ؾ . -# õ - -CREATE TABLE userdb ( - no int(6) NOT NULL auto_increment, - nid varchar(30) NOT NULL default '', - name varchar(30) NOT NULL default '', - email tinytext NOT NULL, - url tinytext NOT NULL, - passwd varchar(100) NOT NULL default '', - position int(1) NOT NULL default '0', - PRIMARY KEY (no), - KEY no (no), - UNIQUE KEY nid (nid), - KEY name (name), - KEY position (position) - ) CHARSET=euckr - diff --git a/SQL/pgsql/board.sql b/SQL/pgsql/board.sql deleted file mode 100644 index 16d77b29..00000000 --- a/SQL/pgsql/board.sql +++ /dev/null @@ -1,38 +0,0 @@ --- --- sql --- ù -- ϸ ش ּ ó --- sql ̾ tab ؾ . --- õ --- - -CREATE TABLE @table@ ( - no serial NOT NULL, - num int DEFAULT '0' NOT NULL, - idx int DEFAULT '0' NOT NULL, - date int DEFAULT '0' NOT NULL, - host text, - name text, - rname text, - passwd varchar(56), - email text, - url text, - title text, - text text, - refer int DEFAULT '0' NOT NULL, - reyn int DEFAULT '0' NOT NULL, - reno int DEFAULT '0' NOT NULL, - rede int DEFAULT '0' NOT NULL, - reto int DEFAULT '0' NOT NULL, - html int DEFAULT '1' NOT NULL, - comm int DEFAULT '0' NOT NULL, - bofile varchar(100), - bcfile varchar(100), - bfsize int, - PRIMARY KEY (no) - ) without oids; -CREATE INDEX @table@_num_i on @table@ (num); -CREATE INDEX @table@_idx_i on @table@ (idx); -CREATE INDEX @table@_reno_i on @table@ (reno); -CREATE INDEX @table@_date_i on @table@ (date); -CREATE INDEX @table@_reto_i on @table@ (reto); -CREATE INDEX @table@_comm_i on @table@ (comm); diff --git a/SQL/pgsql/comment.sql b/SQL/pgsql/comment.sql deleted file mode 100644 index 91dca8ce..00000000 --- a/SQL/pgsql/comment.sql +++ /dev/null @@ -1,19 +0,0 @@ --- --- sql --- ù -- ϸ ش ּ ó --- sql ̾ tab ؾ . --- õ --- - -CREATE TABLE @table@_comm ( - no serial NOT NULL, - reno int NOT NULL default '0', - rname text, - name text, - passwd varchar(56) default NULL, - text text, - host text, - date int NOT NULL default '0', - PRIMARY KEY (no) - ) without oids; -CREATE INDEX @table@_comm_reno_i on @table@_comm (reno); diff --git a/SQL/pgsql/userdb.sql b/SQL/pgsql/userdb.sql deleted file mode 100644 index e6a612a1..00000000 --- a/SQL/pgsql/userdb.sql +++ /dev/null @@ -1,21 +0,0 @@ --- --- sql --- ù -- ϸ ش ּ ó --- sql ̾ tab ؾ . --- õ --- - -CREATE TABLE userdb ( - no serial NOT NULL, - nid varchar(30) NOT NULL default '', - name varchar(30) NOT NULL default '', - email text NOT NULL, - url text NOT NULL, - passwd varchar(100) NOT NULL default '', - position int NOT NULL default '0', - PRIMARY KEY (no) - ) without oids; -CREATE UNIQUE INDEX userdb_nid_i on userdb (nid); -CREATE INDEX userdb_name_i on userdb (name); -CREATE INDEX userdb_position_i on userdb (position); - diff --git a/SQL/sqlite/board.sql b/SQL/sqlite/board.sql deleted file mode 100644 index 356a89c0..00000000 --- a/SQL/sqlite/board.sql +++ /dev/null @@ -1,30 +0,0 @@ -CREATE TABLE @table@ ( - no integer NOT NULL PRIMARY KEY, - num int(6) DEFAULT '0' NOT NULL, - idx int(6) DEFAULT '0' NOT NULL, - date int(11) DEFAULT '0' NOT NULL, - host tinytext, - name tinytext, - rname tinytext, - passwd varchar(56), - email tinytext, - url tinytext, - title tinytext, - text mediumtext, - refer int(6) DEFAULT '0' NOT NULL, - reyn int(1) DEFAULT '0' NOT NULL, - reno int(6) DEFAULT '0' NOT NULL, - rede int(6) DEFAULT '0' NOT NULL, - reto int(6) DEFAULT '0' NOT NULL, - html int(1) DEFAULT '1' NOT NULL, - comm int(6) DEFAULT '0' NOT NULL, - bofile varchar(100), - bcfile varchar(100), - bfsize int(4) - ); -CREATE INDEX @table@_num_i on @table@(num); -CREATE INDEX @table@_idx_i on @table@(idx); -CREATE INDEX @table@_date_i on @table@(date); -CREATE INDEX @table@_reno_i on @table@(reno); -CREATE INDEX @table@_reto_i on @table@(reto); -CREATE INDEX @table@_comm_i on @table@(comm); diff --git a/SQL/sqlite/comment.sql b/SQL/sqlite/comment.sql deleted file mode 100644 index 562decef..00000000 --- a/SQL/sqlite/comment.sql +++ /dev/null @@ -1,11 +0,0 @@ -CREATE TABLE @table@_comm ( - no integer NOT NULL PRIMARY KEY, - reno int(20) NOT NULL default '0', - rname tinytext, - name tinytext, - passwd varchar(56) default NULL, - text mediumtext, - host tinytext, - date int(11) NOT NULL default '0' - ); -CREATE INDEX @table@_comm_reno_i on @table@_comm(reno); diff --git a/SQL/sqlite/userdb.sql b/SQL/sqlite/userdb.sql deleted file mode 100644 index 98d2c4cf..00000000 --- a/SQL/sqlite/userdb.sql +++ /dev/null @@ -1,13 +0,0 @@ -CREATE TABLE userdb ( - no integer NOT NULL PRIMARY KEY, - nid varchar(30) UNIQUE NOT NULL, - name varchar(30) NOT NULL, - email tinytext NOT NULL, - url tinytext NOT NULL, - passwd varchar(100) NOT NULL default '', - position int(1) NOT NULL default '0' - ); -CREATE INDEX userdb_nid_i on userdb(nid); -CREATE INDEX userdb_name_i on userdb(name); -CREATE INDEX userdb_pos_i on userdb(position); - diff --git a/act.php b/act.php index 4ae20259..6be347c1 100644 --- a/act.php +++ b/act.php @@ -1,18 +1,19 @@ check ($atc['ckey'], $atc['ckeyv']) === false ) - print_error ($_('captinvalid'),250,150,1); + print_error ($langs['captinvalid'],250,150,1); } - # Խù ۼ Լ - function article_post($table, $atc) { - global $jsboard, $board, $upload, $cupload, $rmail, $_, $agent; - global $print, $max_file_size, $c, $db, $o; + # 게시물 작성 함수 + function article_post(&$c, $table, $atc) { + global $jsboard, $board, $upload, $cupload, $rmail, $langs, $agent; + global $print, $max_file_size, $o; - if($board['mode'] == 4 && $board['super'] != 1 && !$board['adm']) print_error($_('login_err')); + if($board['mode'] == 4 && $board['super'] != 1 && !$board['adm']) print_error($langs['login_err']); - $atc['date'] = time(); # ð - $atc['host'] = get_hostname(0); # ۾ ּ + $atc['date'] = time(); # 현재 시각 + $atc['host'] = get_hostname(0); # 글쓴이 주소 - # Injection html Ѵ. - # phpbb bb tag ó + # Injection 등의 위험 요소 때문에 html 쓰기 지원을 포기한다. + # phpbb 의 bb tag 처럼 대안을 제시 $atc['html'] = 2; - # ȣȯ ÿ html header tag ϴ Ѵ. + # 글 등록 호환 모드시에 html header tag를 사용하는 것을 방지한다. delete_tag($atc); - $atc = article_check($table, $atc); + $atc = article_check($c, $table, $atc); if(preg_match("/^0|4|6$/",$board['mode'])) $atc['passwd'] = crypt($atc['passwd']); - # ü ڰ Ͽÿ upload Ҽ + # 전체 관리자가 허락하였을시에만 upload 기능을 사용할수 있음 if ($upload['yesno'] && $cupload['yesno'] && !$agent['tx']) { $bfilename = date("YmdHis",$atc['date']); $upfile = file_upload("userfile",$bfilename); @@ -82,32 +83,29 @@ function article_post($table, $atc) { $upfile['name'] = ""; } } else { - # winchild 99/11/26 fileupload = "no" 쿡 ʱȭ ־ Ѵ. + # winchild 99/11/26 fileupload = "no" 일 경우에는 초기화를 시켜주어야 한다. $bfilename = ""; $upfile['size'] = 0; $upfile['name'] = ""; } - sql_escape ($c, $table); - sql_escape ($c, $atc); + sql_escape($table,$c); + sql_escape($atc,$c); - $result = sql_query("SELECT MAX(num) AS num, MAX(idx) AS idx FROM $table", $c); - $_rr = sql_fetch_array ($result); + $result = sql_query("SELECT MAX(num) AS num, MAX(idx) AS idx FROM $table",$c); + $atc['mxnum'] = sql_result($result, 0, 'num', $c) + 1; # 최고 번호 + $atc['mxidx'] = sql_result($result, 0, 'idx', $c) + 1; # 최고 인덱스 번호 + sql_free_result($result, $c); - $atc['mxnum'] = $_rr['num'] + 1; # ְ ȣ - $atc['mxidx'] = $_rr['idx'] + 1; # ְ ε ȣ + sql_query("INSERT INTO $table (no,num,idx,date,host,name,rname,passwd,email,url, + title,text,refer,reyn,reno,rede,reto,html,comm,bofile, + bcfile,bfsize) + VALUES ('','{$atc['mxnum']}','{$atc['mxidx']}',{$atc['date']},'{$atc['host']}', + '{$atc['name']}','{$atc['rname']}','{$atc['passwd']}','{$atc['email']}', + '{$atc['url']}','{$atc['title']}','{$atc['text']}',0,0,0,0,0,'{$atc['html']}', 0, + '{$upfile['name']}','{$bfilename}','{$upfile['size']}')", $c); - sql_free_result($result); - - sql_query("INSERT INTO $table (num,idx,date,host,name,rname,passwd,email,url, - title,text,refer,reyn,reno,rede,reto,html,comm,bofile, - bcfile,bfsize) - VALUES ('{$atc['mxnum']}','{$atc['mxidx']}',{$atc['date']},'{$atc['host']}', - '{$atc['name']}','{$atc['rname']}','{$atc['passwd']}','{$atc['email']}', - '{$atc['url']}','{$atc['title']}','{$atc['text']}',0,0,0,0,0,'{$atc['html']}', 0, - '{$upfile['name']}','{$bfilename}','{$upfile['size']}')", $c); - - # mail κ + # mail 보내는 부분 if ($rmail['uses']) { if ($rmail['admin'] || $rmail['user']) { $rmail['name'] = $atc['rtname']; @@ -118,8 +116,8 @@ function article_post($table, $atc) { $rmail['version'] = $board['ver']; $rmail['path'] = $board['path']; $rmail['table'] = $table; - $rmail['noquery'] = sql_query("SELECT MAX(no) AS no FROM $table", $c); - $rmail['no'] = sql_result($rmail['noquery'], 0, "no"); # ְ ȣ + $rmail['noquery'] = sql_query("SELECT MAX(no) AS no FROM $table",$c); + $rmail['no'] = sql_result($rmail['noquery'], 0, "no",$c); # 최고 번호 $rmail['reply_orig_email'] = $rmail['origmail']; $rmail['theme'] = $print['theme']; $rmail['html'] = $atc['html']; @@ -133,76 +131,76 @@ function article_post($table, $atc) { return $page; } - # Խù Լ - function article_reply($table, $atc) { - global $board,$upload,$cupload,$rmail,$_,$agent,$jsboard,$page; - global $print, $max_file_size, $c, $db, $referer; + # 게시물 답장 함수 + function article_reply(&$c, $table, $atc) { + global $board,$upload,$cupload,$rmail,$langs,$agent,$jsboard,$page; + global $print, $max_file_size, $o, $referer; - $atc['date'] = time(); # ð - $atc['host'] = get_hostname(0); # ۾ ּ + $atc['date'] = time(); # 현재 시각 + $atc['host'] = get_hostname(0); # 글쓴이 주소 - # Injection html Ѵ. - # phpbb bb tag ó + # Injection 등의 위험 요소 때문에 html 쓰기 지원을 포기한다. + # phpbb 의 bb tag 처럼 대안을 제시 $atc['html'] = 2; - # ȣȯ ÿ html header tag ϴ Ѵ. + # 글 등록 호환 모드시에 html header tag를 사용하는 것을 방지한다. delete_tag($atc); - # ۿ : и Ѵ. + # 댓글에서 : 때문에 글이 밀리는 것을 복구한다. $atc['text'] = preg_replace("/(^[:]+ [^\r\n]+)\r?\n([^:\r\n]+\r?\n)/mi","\\1 \\2",$atc['text']); - $atc = article_check($table, $atc); - if(preg_match("/^(0|4)$/",$board['mode']) || !session_is_registered($jsboard)) $atc['passwd'] = crypt($atc['passwd']); + $atc = article_check($c, $table, $atc); + if(preg_match("/^(0|4)$/",$board['mode']) || !isset($_SESSION[$jsboard])) $atc['passwd'] = crypt($atc['passwd']); - # 亯 file upload κ, ü ڰ ÿ + # 답변시 file upload 설정 부분, 전체 관리자가 허락시에만 가능 if ($upload['yesno'] && $cupload['yesno'] && !$agent['tx']) { $bfilename = date("YmdHis",$atc['date']); $upfile = file_upload("userfile",$bfilename); if(!trim($upfile['name'])) { $bfilename = ""; $upfile['size'] = 0; - $upfile['name'] = ""; + $upfile['name'] = ''; } } else { - # winchild 99/11/26 fileupload = "no" 쿡 ʱȭ ־ Ѵ. + # winchild 99/11/26 fileupload = "no" 일 경우에는 초기화를 시켜주어야 한다. $bfilename = ""; $upfile['size'] = 0; - $upfile['name'] = ""; + $upfile['name'] = ''; } - # referer ȣ θ ȣ ٸ ó + # referer 의 글 번호와 부모글의 번호가 다를 경우 스팸 처리 if ( $atc['reno'] != $referer['no'] ) - print_error($_('act_s'),250,150,1); + print_error($langs['act_s'],250,150,1); - # ۿ - table_lock ($c, $table, 1); - $reply = get_article($table, $atc['reno']); - $atc['rede'] = $reply['rede'] + 1; # - $atc['idx'] = $reply['idx']; # θ ε ȣ + sql_escape($table, $c); + sql_escape($atc, $c); - if($reply['reto']) $atc['reto'] = $reply['reto']; # ֻ θ ȣ - else $atc['reto'] = $reply['no']; # θ ȣ + # 답장글에 대한 정보를 가져옴 + sql_query("LOCK TABLES $table WRITE",$c); + $reply = get_article($table, $atc['reno']); + $atc['rede'] = $reply['rede'] + 1; # 답장글의 깊이 + $atc['idx'] = $reply['idx']; # 부모글의 인덱스 번호 상속 - sql_escape ($c, $table); - sql_escape ($c, $atc); + if($reply['reto']) $atc['reto'] = $reply['reto']; # 최상위 부모글 번호 + else $atc['reto'] = $reply['no']; # 부모글 번호 - # θ ̻ ε ȣ ۵ ε 1 + # 부모글 이상의 인덱스 번호를 가진 글들의 인덱스를 1씩 더함 sql_query("UPDATE $table SET idx = idx + 1 WHERE (idx + 0) >= '{$atc['idx']}'", $c); - sql_query("UPDATE $table SET reyn = 1 WHERE no = '{$atc['reno']}'", $c, $db['name']); - sql_query("INSERT INTO $table (num,idx,date,host,name,rname,passwd,email,url, - title,text,refer,reyn,reno,rede,reto,html,comm,bofile, - bcfile,bfsize) - VALUES (0,'{$atc['idx']}','{$atc['date']}','{$atc['host']}','{$atc['name']}','{$atc['rname']}', - '{$atc['passwd']}','{$atc['email']}','{$atc['url']}','{$atc['title']}','{$atc['text']}', - 0,0,'{$atc['reno']}','{$atc['rede']}','{$atc['reto']}','{$atc['html']}',0,'{$upfile['name']}', - '{$bfilename}','{$upfile['size']}')", $c); - table_lock ($c, $table, 0); - - # mail κ + sql_query("UPDATE $table SET reyn = 1 WHERE no = '{$atc['reno']}'", $c); + sql_query("INSERT INTO $table (no,num,idx,date,host,name,rname,passwd,email,url, + title,text,refer,reyn,reno,rede,reto,html,comm,bofile, + bcfile,bfsize) + VALUES ('',0,'{$atc['idx']}','{$atc['date']}','{$atc['host']}','{$atc['name']}','{$atc['rname']}', + '{$atc['passwd']}','{$atc['email']}','{$atc['url']}','{$atc['title']}','{$atc['text']}', + 0,0,'{$atc['reno']}','{$atc['rede']}','{$atc['reto']}','{$atc['html']}',0,'{$upfile['name']}', + '{$bfilename}','{$upfile['size']}')", $c); + sql_query('UNLOCK TABLES', $c); + + # mail 보내는 부분 if ($rmail['uses']) { if ($rmail['admin'] || $rmail['user']) { $result = sql_query("SELECT MAX(no) AS no FROM $table", $c); - $rmail['no'] = sql_result($result, 0, "no"); # ְ ȣ + $rmail['no'] = sql_result($result, 0, 'no', $c); # 최고 번호 $rmail['name'] = $atc['rtname']; $rmail['text'] = $atc['text']; $rmail['title'] = $atc['rtitle']; @@ -225,34 +223,35 @@ function article_reply($table, $atc) { return $gopage; } - # Խù Լ - function article_edit($table, $atc, $passwd) { - global $max_file_size, $jsboard, $board, $_, $agent, $rmail; - global $upload, $cupload, $c, $db; + # 게시물 수정 함수 + function article_edit(&$c, $table, $atc, $passwd) { + global $max_file_size, $jsboard, $board, $langs, $agent, $rmail; + global $upload, $cupload; - # 尡 ƴ н + # 어드민 모드가 아닐 경우 패스워드 인증 if($board['super'] != 1 && !$board['adm']) { - if(!check_passwd($table,$atc['no'],trim($passwd))) print_error($_('act_pw'), 250, 150, 1); + if(!check_passwd($table,$atc['no'],trim($passwd))) print_error($langs['act_pw'],250,150,1); } - $atc['date'] = time(); # ð - $atc['host'] = get_hostname(0); # ۾ ּ - $atc = article_check($table, $atc); + $atc['date'] = time(); # 현재 시각 + $atc['host'] = get_hostname(0); # 글쓴이 주소 + if(eregi($rmail['chars'],$atc['email'])) $atc['email'] = str_replace($rmail['chars'],"@",$atc['email']); + $atc = article_check($c, $table, $atc); - # ȣȯ ÿ html header tag ϴ Ѵ. + # 글 등록 호환 모드시에 html header tag를 사용하는 것을 방지한다. delete_tag($atc); - # ۿ : и Ѵ. + # 댓글에서 : 때문에 글이 밀리는 것을 복구한다. $atc['text'] = preg_replace("/(^[:]+ [^\r\n]+)\r?\n([^:\r\n]+\r?\n)/mi","\\1 \\2",$atc['text']); - sql_escape ($c, $table); - sql_escape ($c, $atc); + sql_escape($table, $c); + sql_escape($atc, $c); - # file ƾ + # file 삭제 루틴 if($atc['fdel']) { $fdelqy = sql_query("SELECT bcfile, bofile FROM {$table} WHERE no = '{$atc['no']}'", $c); - $fdelinfo = sql_fetch_array($fdelqy); - sql_free_result($fdelqy); + $fdelinfo = sql_fetch_array($fdelqy, $c); + sql_free_result($fdelqy, $c); sql_query("UPDATE $table SET bcfile='', bofile='', bfsize='' WHERE no = '{$atc['no']}'", $c); if(file_exists("data/$table/files/{$fdelinfo['bcfile']}/{$fdelinfo['bofile']}")) { @@ -261,16 +260,16 @@ function article_edit($table, $atc, $passwd) { } } - # file ƾ + # file 수정 루틴 if($upload['yesno'] && $cupload['yesno'] && !$agent['tx']) { - # file ƾ + # file 수정 루틴 $bfilename = date("YmdHis",$atc['date']); $upfile = file_upload("userfile",$bfilename); if (trim($upfile['name'])) { $fdelqy = sql_query("SELECT bcfile, bofile FROM {$table} WHERE no = '{$atc['no']}'", $c); - $fdelinfo = sql_fetch_array($fdelqy); - sql_free_result($fdelqy); + $fdelinfo = sql_fetch_array($fdelqy, $c); + sql_free_result($fdelqy, $c); if(file_exists("data/$table/files/{$fdelinfo['bcfile']}/{$fdelinfo['bofile']}") && trim($fdelinfo['bofile'])) { unlink("data/$table/files/{$fdelinfo['bcfile']}/{$fdelinfo['bofile']}"); rmdir("data/$table/files/{$fdelinfo['bcfile']}"); @@ -291,53 +290,53 @@ function article_edit($table, $atc, $passwd) { return $atc['no']; } - # Խù Լ - function article_delete($table, $no, $passwd) { - global $jsboard, $o, $_, $board, $page, $c, $db; + # 게시물 삭제 함수 + function article_delete(&$c, $table, $no, $passwd) { + global $jsboard, $o, $langs, $board, $page; global $delete_filename, $delete_dir, $upload, $agent; $atc = get_article($table, $no); - # 尡 ƴ н + # 어드민 모드가 아닐 경우 패스워드 인증 if($board['super'] != 1 && !$board['adm']) { $admchk = check_passwd($table,$atc['no'],trim($passwd)); - if(!$admchk) print_error($_('act_pwm'),250,150,1); + if(!$admchk) print_error($langs['act_pwm'],250,150,1); } - # 尡 ƴ ϸ ޼ + # 관리자 모드가 아닐 경우 댓글이 존재하면 에러메세지 if($atc['reyn'] && ($board['super'] != 1 && !$board['adm'] && $admchk != 2)) - print_error($_('act_c'),250,150,1); + print_error($langs['act_c'],250,150,1); - sql_escape ($c, $table); - sql_escape ($c, $atc); + sql_escape($table,$c); + sql_escape($atc,$c); - # θ ڽ ۿ θ reyn ʱȭ ( ) + # 부모글의 답장글이 자신 밖에 없을 때 부모글의 reyn을 초기화 (답장글 여부) if($atc['reno']) { - $result = sql_query("SELECT COUNT(*) AS cnt FROM $table WHERE reno = '{$atc['reno']}'", $c); - if( sql_result ($result, 0, 'cnt') == 1 ) - sql_query("UPDATE $table SET reyn = 0 WHERE no = '{$atc['reno']}'", $c); - sql_free_result($result); + $result = sql_query("SELECT COUNT(*) FROM $table WHERE reno = '{$atc['reno']}'",$c); + if(sql_result($result, 0, "COUNT(*)",$c) == 1) + sql_query("UPDATE $table SET reyn = 0 WHERE no = '{$atc['reno']}'",$c); + sql_free_result($result,$c); } - sql_query("DELETE FROM {$table}_comm WHERE reno = '{$atc['no']}'", $c, 1); - table_lock ($c, $table, 1); - sql_query("DELETE FROM $table WHERE no = '{$atc['no']}'", $c); - sql_query("UPDATE $table SET idx = idx - 1 WHERE (idx + 0) > '{$atc['idx']}'", $c); + sql_query("DELETE FROM {$table}_comm WHERE reno = '{$atc['no']}'",$c,true); + sql_query("LOCK TABLES $table WRITE",$c); + sql_query("DELETE FROM $table WHERE no = '{$atc['no']}'",$c); + sql_query("UPDATE $table SET idx = idx - 1 WHERE (idx + 0) > '{$atc['idx']}'",$c); if(!$atc['reyn']) { - # upload file + # upload file이 존재할 경우 삭제 if ($delete_filename && file_exists("$delete_filename")) { unlink("$delete_filename"); rmdir("$delete_dir"); } } - # ñ ñ ( ) + # 관련글이 있을 경우 관련글을 모두 삭제함 (관리자 모드) if($atc['reyn'] && ($board['super'] == 1 || $board['adm'] || $admchk == 2)) { - $result = sql_query("SELECT no,bofile,bcfile FROM $table WHERE reno = '{$atc['no']}'", $c); - while($list = sql_fetch_array($result)) { - table_lock ($c, $table, 0); + $result = sql_query("SELECT no,bofile,bcfile FROM $table WHERE reno = '{$atc['no']}'",$c); + while($list = sql_fetch_array($result,$c)) { + sql_query("UNLOCK TABLES",$c); article_delete($table, $list['no'], $passwd); - # upload file + # upload file이 존재할 경우 삭제 if ($list['bofile'] && file_exists("./data/$table/{$upload['dir']}/{$list['bcfile']}/{$list['bofile']}")) { unlink("./data/$table/{$upload['dir']}/{$list['bcfile']}/{$list['bofile']}"); rmdir("./data/$table/{$upload['dir']}/{$list['bcfile']}"); @@ -346,14 +345,13 @@ function article_delete($table, $no, $passwd) { } $page = !$page ? get_current_page($table, $atc['idx']) : $page; - table_lock ($c, $table, 0); + sql_query("UNLOCK TABLES",$c); return $page; } - function comment_post($table,$atc) { - global $jsboard, $board, $_, $ccompare, $compare; - global $c, $db; + function comment_post(&$c,$table,$atc) { + global $jsboard, $board, $langs, $ccompare, $compare; $host = get_hostname(0); $dates = time(); @@ -363,124 +361,118 @@ function comment_post($table,$atc) { $nameChk = array("name","text"); for($bc=0;$bc<2;$bc++) { if(!$atc[$nameChk[$bc]] || preg_match("/^$blankChk$/i",trim($atc[$nameChk[$bc]]))) { - $_lang['act_in'] = preg_replace("/,/i","",$_('act_in')); - print_error($_lang['act_in'],250,150,1); + $langs['act_in'] = preg_replace("/제목,/i","",$langs['act_in']); + print_error($langs['act_in'],250,150,1); } } if (!empty($compare['name']) && eregi($compare['name'],$atc['name'])) $cmp['name'] = 1; if (!empty($ccompare['name']) && eregi($ccompare['name'],$atc['name'])) $ccmp['name'] = 1; - # Ī üũ + # 관리자 사칭 체크 if((!$board['mode'] || $board['mode'] == 4) && $board['super'] != 1 && !$board['adm']) { - # ü н - $result = sql_query("SELECT passwd FROM userdb WHERE position = 1", $c); - $r['su'] = sql_result($result,0,"passwd"); - sql_free_result($result); + # 전체 관리자 패스워드 + $result = sql_query('SELECT passwd FROM userdb WHERE position = 1', $c); + $r['su'] = sql_result($result,0,'passwd',$c); + sql_free_result($result,$c); if($r['su'] != crypt($atc['passwd'],$r['su'])) $notsuper = 1; if ($cmp['name']) { - if($notsuper) print_error($_('act_ad'),250,150,1); + if($notsuper) print_error($langs['act_ad'],250,150,1); } if($ccmp['name'] && $notsuper) { $arrayadm = explode(";",$board['ad']); for($k=0;$k IE ÿ ѱ + # 이름, 제목의 HTML 코드 문자를 치환함 + # ugly_han() -> IE 사용시에 한글 깨지는 것을 복원함 $atc['name'] = ugly_han(htmlspecialchars($atc['name'])); $atc['title'] = ugly_han(htmlspecialchars($atc['title'])); - # ö (ߺ ˻) - $_limit = compatible_limit (0, 1); - $result = sql_query("SELECT * FROM $table ORDER BY no DESC {$_limit}", $c); - $list = sql_fetch_array($result); - sql_free_result($result); + # 마지막으로 올라온 글의 정보를 가져옴 (중복 투고 검사용) + $result = sql_query("SELECT * FROM $table ORDER BY no DESC LIMIT 0, 1",$c); + $list = sql_fetch_array($result,$c); + sql_free_result($result,$c); if ($list && $atc['name'] == $list['name'] && $atc['text'] == $list['text'] && @@ -558,7 +549,7 @@ function article_check($table, $atc) { $atc['url'] == $list['url'] && $atc['html'] == $list['html']) { - # , , ÷ ȭ . + # 수정 모드시, 수정된 사항은 없으나, 첨부파일의 변화가 있을 경우 수정 가능함. if ($o['at'] == 'edit') { if ($atc['fdel']) { $chkpass = 1; @@ -570,10 +561,10 @@ function article_check($table, $atc) { if (!$chkpass) { switch ($o['at']) { case 'write': - print_error($_('act_same'),250,150,1); + print_error($langs['act_same'],250,150,1); break; case 'edit': - print_error($_('act_dc'),250,150,1); + print_error($langs['act_dc'],250,150,1); break; } } @@ -582,7 +573,7 @@ function article_check($table, $atc) { return $atc; } - # Ű Լ + # 쿠키 설정 함수 function set_cookie($atc,$comment=0) { global $board,$agent; $month = 60 * 60 * 24 * $board['cookie']; @@ -597,35 +588,38 @@ function set_cookie($atc,$comment=0) { switch($o['at']) { case 'write': - $page = article_post($table, $atc); + $atc['text'] = $wpost; + $page = article_post($c, $table, $atc); if(!$page['m_err']) Header("Location: list.php?table=$table"); else move_page("list.php?table=$table"); break; case 'reply': - $gopage = article_reply($table, $atc); + $atc['text'] = $rpost; + $gopage = article_reply($c, $table, $atc); if(!$gopage['m_err']) Header("Location: list.php?table=$table&page={$gopage['no']}"); else move_page("list.php?table=$table&page={$gopage['no']}"); break; case 'edit': - $no = article_edit($table, $atc, $passwd); + $atc['text'] = $epost; + $no = article_edit($c, $table, $atc, $passwd); Header("Location: read.php?table=$table&no=$no"); break; case 'del': - $gopage = article_delete($table, $no, $passwd, $o['am']); + $gopage = article_delete($c, $table, $no, $passwd); Header("Location: list.php?table=$table&page=$gopage"); break; case 'c_write': - comment_post($table,$atc); + comment_post($c,$table,$atc); Header("Location: read.php?table=$table&no={$atc['no']}&page=$page"); break; case 'c_del': - comment_del($table,$atc['no'],$atc['cid'],$lp); + comment_del($c,$table,$atc['no'],$atc['cid'],$lp); Header("Location: read.php?table=$table&no={$atc['no']}&page=$page"); } } elseif ($o['at'] == "dn") { include "include/header.php"; - # ش meta character ϴ üũ + # 해당 변수에 meta character 가 존재하는지 체크 meta_char_check($dn['tb'],0,1); meta_char_check($dn['cd']); meta_char_check($upload['dir']); @@ -633,7 +627,7 @@ function set_cookie($atc,$comment=0) { $dn['path'] = "data/{$dn['tb']}/{$upload['dir']}/{$dn['cd']}/{$dn['name']}"; - if($dn['dl'] = readfile_r ($dn['path'])) { + if($dn['dl'] = file_operate($dn['path'],"r","Don't open {$dn['name']}")) { if(extension_loaded('fileinfo')) { $finfo = finfo_open(FILEINFO_MIME); if(is_resource($finfo)) { @@ -652,7 +646,7 @@ function set_cookie($atc,$comment=0) { $mimes = $mimes ? $mimes : 'file/unknown'; Header('Content-Description: PHP Generated Data'); } - Header('Content-type: '.$mimes); + header('Content-Type: '.$mimes); header('Content-Length: '.filesize("{$dn['path']}")); Header('Content-Disposition: attachment; '.$dn['encode']); Header('Pragma: no-cache'); @@ -660,8 +654,20 @@ function set_cookie($atc,$comment=0) { echo $dn['dl']; } +} elseif($o['at'] == "ma") { + if ( ! @file_exists("config/global.php") ) { + echo "\n"; + } else { include_once "config/global.php"; } + + if(preg_match("/{$rmail['chars']}/",$target)) { + $target = str_replace($rmail['chars'],"@",$target); + Header("Location: mailto:$target"); + } + echo ""; + exit; } else { - echo ""; + echo ""; exit; } ?> diff --git a/admin/act.php b/admin/act.php index f6ccc7d4..65b57cf6 100644 --- a/admin/act.php +++ b/admin/act.php @@ -1,165 +1,189 @@ A-Za-z0-9_ - if ( preg_match ('/[^a-z0-9_]/i', $new_table) ) - print_error ($_('tb_rule'), 250, 150, 1); +else if($mode == 'db_create') { + # 게시판 이름 규칙 -> A-Za-z0-9_- + if ( preg_match ('/[^a-z0-9_-]/i', $new_table) ) + print_error ($langs['tb_rule'], 250, 150, 1); - # θ ̸ üũ - table_name_check ($new_table); + # 새로만들 계정이름의 존재유무 체크 + table_name_check($new_table); - # ̸ Խ ִ Ȯ + # 동일한 이름의 게시판이 있는지 확인 if ( $new_table == 'userdb' || db_table_list ($c, $db['name'], '', $new_table) ) print_error ($_('a_acc'), 250, 150, 1); - $_sql['r'] = array ('b', 'c'); - $_sql['b'] = sql_parser ($db['type'], 'board', $new_table, 1); - $_sql['c'] = sql_parser ($db['type'], 'comment', $new_table, 1); - - # create table - foreach ( $_sql['r'] as $_o ) { - if ( is_array ($_sql[$_o]) ) { - foreach ( $_sql[$_o] as $_s ) { - sql_query ($_s, $c); - } - } - } - - /* - require_once "include/first_reg.php"; - $_dr['p'] = crypt($passwd_ext); - $_cr['b'] = "INSERT INTO test (num, idx, date, host, name, passwd, email, url, title," . - " text, refer, reyn, reno, rede, reto, html, comm, bofile," . - " bcfile, bfsize)" . - "VALUES (1, 1, '{$_dr['d']}', '127.0.0.1', '{$_dr['n']}', '{$_dr['p']}'," . - " '{$_dr['e']}', '{$_dr['u']}', '{$_dr['s']}', '{$_dr['b']}', 0, 0," . - " 0, 0, 0, 0, 0, '', '', '')"; - - sql_query ($_cr['b'], $c); - */ - sql_close ($c); - - # ο Խǿ ʿ Ϲ 丮 - mkdir("../data/{$new_table}",0770); - mkdir("../data/{$new_table}/{$upload['dir']}",0770); - chmod("../data/{$new_table}",0775); - chmod("../data/{$new_table}/{$upload['dir']}",0775); - - $_co = readfile_r ("../utils/sample/data/config.php"); - $_sr = array ('/@theme@/', '/@table@/', '/@wpath@/'); - $_dr = array ($print['theme'], $new_table, $board['path']); - $_co = preg_replace ($_sr, $_dr, $_co); - - writefile_r ("../data/{$new_table}/config.php", $_co); - chmod("../data/{$new_table}/config.php",0644); - - copy("../utils/sample/data/html_head.php","../data/$new_table/html_head.php"); - chmod("../data/{$new_table}/html_head.php",0644); - copy("../utils/sample/data/html_tail.php","../data/$new_table/html_tail.php"); - chmod("../data/{$new_table}/html_tail.php",0644); - copy("../utils/sample/data/stylesheet.php","../data/$new_table/stylesheet.php"); - chmod("../data/{$new_table}/stylesheet.php",0644); + #include "include/first_reg.php"; + $create_table = "CREATE TABLE $new_table ( + no int(6) NOT NULL auto_increment, + num int(6) DEFAULT '0' NOT NULL, + idx int(6) DEFAULT '0' NOT NULL, + date int(11) DEFAULT '0' NOT NULL, + host tinytext, + name tinytext, + rname tinytext, + passwd varchar(56), + email tinytext, + url tinytext, + title tinytext, + text mediumtext, + refer int(6) DEFAULT '0' NOT NULL, + reyn int(1) DEFAULT '0' NOT NULL, + reno int(6) DEFAULT '0' NOT NULL, + rede int(6) DEFAULT '0' NOT NULL, + reto int(6) DEFAULT '0' NOT NULL, + html int(1) DEFAULT '1' NOT NULL, + comm int(6) DEFAULT '0' NOT NULL, + bofile varchar(100), + bcfile varchar(100), + bfsize int(4), + KEY no (no), + KEY num (num), + KEY idx (idx), + KEY reno (reno), + KEY date (date), + KEY reto (reto), + KEY comm (comm), + PRIMARY KEY (no))"; + + $create_comm = "CREATE TABLE {$new_table}_comm ( + no int(6) NOT NULL auto_increment, + reno int(20) NOT NULL default '0', + rname tinytext, + name tinytext, + passwd varchar(56) default NULL, + text mediumtext, + host tinytext, + date int(11) NOT NULL default '0', + PRIMARY KEY (no), + KEY parent (reno))"; + + $passwd_ext = crypt($passwd_ext); + + $insert_data = "INSERT INTO $new_table (no,num,idx,date,host,name,passwd,email,url,title, + text,refer,reyn,reno,rede,reto,html,comm,bofile,bcfile,bfsize) + VALUES ('',1,1,$date,'$host_ext','$name_ext','$passwd_ext','$email_ext', + '$url_ext','$subj_msg','$text_msg',0,0,0,0,0,0,0,'','','')"; + + sql_query($create_table, $c); + #$result_insert = sql_query($insert_data, $c); + + sql_query($create_comm, $c); + + # 새로운 게시판에 필요한 파일및 디렉토리 생성 + mkdir("../data/$new_table",0700); + mkdir("../data/$new_table/{$upload['dir']}",0700); + chmod("../data/$new_table",0755); + chmod("../data/$new_table/{$upload['dir']}",0755); + copy("../INSTALLER/sample/data/config.php","../data/$new_table/config.php"); + chmod("../data/$new_table/config.php",0644); + copy("../INSTALLER/sample/data/html_head.php","../data/$new_table/html_head.php"); + chmod("../data/$new_table/html_head.php",0644); + copy("../INSTALLER/sample/data/html_tail.php","../data/$new_table/html_tail.php"); + chmod("../data/$new_table/html_tail.php",0644); + copy("../INSTALLER/sample/data/stylesheet.php","../data/$new_table/stylesheet.php"); + chmod("../data/$new_table/stylesheet.php",0644); + + sql_close($c); } -else if( $mode == 'global_chg' ) { - sql_close ($c); - # quot ȯ ڸ un quot Ѵ - - $vars = ""; - $spam = stripslashes ($glob['spam']); +else if($mode == "global_chg") { + sql_close($c); + # quot 변환된 문자를 un quot 한다 - writefile_r ('../config/global.php', $vars); - writefile_r ('../config/spam_list.txt', $spam); + $vars = ""; + $spam = stripslashes($glob['spam']); - $_lang['act_complete'] = str_replace ("\n", "\\n", $_('act_complete')); - $_lang['act_complete'] = str_replace ("'", "\'", $_lang['act_complete']); + file_operate("../config/global.php","w",0,$vars); + file_operate("../config/spam_list.txt","w",0,$spam); - echo "\n". ""; exit; @@ -168,4 +192,14 @@ Header("Location:admin.php$tslink"); + +/* + * Local variables: + * tab-width: 2 + * indent-tabs-mode: nil + * c-basic-offset: 2 + * show-paren-mode: t + * End: + * vim: filetype=php et ts=2 sw=2 + */ ?> diff --git a/admin/admin.php b/admin/admin.php index 1e11316c..2e7ab02a 100644 --- a/admin/admin.php +++ b/admin/admin.php @@ -1,257 +1,255 @@ \n". "Administration Center\n"; } else { - echo "\n". - "\n" . + "\n" . + "
\n\n". - "\n\n
\n". + echo "\n". + "\n" . + "\n
\n\n". + "\n\n
\n". "\n\n". - "\n". - "\n". + "\n". + "\n". "\n\n\n". - "\n". + "\n". "\n
\n". - "J SBoard\n". + "J SBoard
Administration CenterAdministration Center
\n". "
\n\n"; } -# db_name Ʒ մϴ. -exsit_dbname_check ($db['name']); +# db_name이 존재하지 않으면 아래를 출력합니다. +exsit_dbname_check($db['name']); -if( $db['name'] && ! $table ) { - echo "\n". - "\n"; +if($db['name'] && !$table) { + echo "
\n". + "\n"; - if ( $agent['tx'] ) { - echo '\n". - '\n". - '\n". - '\n"; + if($agent['tx']) { + echo "\n". + "\n". + "\n". + "\n"; } else { - echo "\n". - "\n". - "\n". + echo "\n". + "\n". + "\n". "\n\n". - "\n". - "\n". - "\n"; + "\n". + "\n". + "\n"; } echo ""; $table_name = db_table_list ($c, $db['name'], $ts); - $tbl_num = sizeof ($table_name); + $tbl_num = sizeof($table_name); - if ( ! $start && ! $page ) { $start = 0; $page = 1; } - else if ( $page == 1 ) $start = 0; - else if ( $page > 1 ) $start = $page * $sadmin['pern'] - $sadmin['pern']; + if(!$start && !$page) { $start = 0; $page = 1; } + else if($page == 1) $start = 0; + else if($page > 1) $start = $page*$sadmin['pern']-$sadmin['pern']; $nowpage = $page; - $until = $start + $sadmin['pern']; - $priv = $page - 1; - $next = $page + 1; + $until = $start+$sadmin['pern']; + $priv = $page-1; + $next = $page+1; - # ¥ data ¥ ϵ մϴ. - $current_time = curdate (); + # 오늘 날짜에 대한 data 값을 구해 오늘 날짜에 등록된 값을 구합니다. + $current_time = mktime (0, 0, 0, date('m, d, Y')); - # scale - if ( $tbl_num > 1 ) { - for ( $i=$start; $i<$until; $i++ ) { - if ( $i < $tbl_num && $table_name[$i] != "userdb" ) { - # jsboard ϴ Խ Ǵ - $chk = "SELECT idx FROM {$table_name[$i]} WHERE idx = 1;"; - $chk_result = sql_query ($chk, $c, 1); + # scale 별로 출력 + if($tbl_num > 0) { + for($i=$start; $i<$until; $i++) { + if($i < $tbl_num && $table_name[$i] != "userdb") { + # jsboard에서 사용하는 게시판인지를 판단 + $chk = "select idx from $table_name[$i] where idx = 1;"; + $chk_result = sql_query($chk,$c,true); - # table ϵ check մϴ. - $total = "SELECT COUNT(*) AS cnt FROM {$table_name[$i]}"; - $result = sql_query ($total, $c); + # 각 table에 등록된 글 수를 check 합니다. + $total = "select count(*) as cnt from $table_name[$i]"; + $result = sql_query($total,$c,true); - $total_count = sql_result ($result, 0, 'cnt'); + $total_count = sql_result($result,0,'cnt',$c); - # table ϵ ۵ մϴ. + # 각 table에 등록된 글들의 합을 구합니다. if ($chk_result) - $to = $to + $total_count; - $total = "SELECT COUNT(*) AS cnt FROM {$table_name[$i]} WHERE date > '$current_time'"; + $to += $total_count; + $total = "select count(*) as cnt from $table_name[$i] where date > '$current_time'"; - $result = sql_query ($total, $c, 1); - $total_today = sql_result ($result, 0, 'cnt'); - $total_today = ! $total_today ? 0 : $total_today; + if (($result = sql_query($total,$c,true)) !== false) + $total_today = @sql_result($result,0,'cnt',$c); + $total_today = !$total_today ? 0 : $total_today; - # ϵ ۵ մϴ. + # 오늘 등록된 글들의 합을 구합니다. if ($chk_result) $to_today = $to_today + $total_today; - echo "\n". - "\n". - "\n". - "\n"; - - if ( $chk_result && $table_name[$i] != "userdb" ) { - if ( $agent['tx'] ) { - echo "\n". + "\n". + "\n". + "\n"; + + if($chk_result && $table_name[$i] != "userdb") { + if($agent['tx']) { + echo "\n"; } else { - echo "\n"; + echo "\n"; } } else { - if( preg_match ('/_comm/', $table_name[$i]) ) { - $table_explain = str_replace ('_comm', '', $table_name[$i]); - $table_explain = "{$table_explain} Comment"; - } else - $table_explain = 'Not JSBoard table'; - - echo "\n"; + if(preg_match("/_comm/",$table_name[$i])) { + $table_explain = preg_replace("/_comm/","",$table_name[$i]); + $table_explain = "$table_explain Comment"; + } else $table_explain = "Not JSBoard table"; + + echo "\n"; } } } } else { - echo "\n". - "\n". + echo "\n". + "\n". ""; } - # ü ϵ Ȯ - for ( $t = 0; $t < $tbl_num; $t++ ) { - # jsboard ϴ Խ Ǵ + # 전체 등록된 글 수를 확인 + for($t = 0; $t < $tbl_num; $t++) { + # jsboard에서 사용하는 게시판인지를 판단 $chk = "select idx from $table_name[$t] where idx = 1;"; if (($chk_result = sql_query($chk,$c,true)) === false) { if (!preg_match('/_comm/', $table_name[$t])) continue; } - # table ϵ check մϴ. - $total_t = "SELECT COUNT(*) AS cnt FROM {$table_name[$t]}"; - $result_t = sql_query ($total_t, $c); - $total_count_t = sql_result ($result_t, 0, 'cnt'); + # 각 table에 등록된 글 수를 check 합니다. + $sql = "select count(*) as cnt from $table_name[$t]"; + $result = sql_query($sql,$c); + $sum = sql_result($result, 0, 'cnt',$c); - # table ϵ ۵ մϴ. - $to_t = $to_t + $total_count_t; + # 각 table에 등록된 글들의 합을 구합니다. + $to_t += $sum; - $total_t = "SELECT COUNT(*) AS cnt FROM {$table_name[$t]} WHERE date > '$current_time'"; - $result_t = sql_query ($total_t, $c, 1); - $total_today_t = sql_result ($result_t, 0, 'cnt'); + unset ($sum); + $sql = "select count(*) as cnt from $table_name[$t] where date > '$current_time'"; + if (($result = sql_query($sql,$c,true)) !== false) + $sum = sql_result($result, 0, 'cnt',$c); + $sum = isset($sum) ? $sum : 0; - # ϵ ۵ մϴ. - $to_today_t = $to_today_t + $total_today_t; + # 오늘 등록된 글들의 합을 구합니다. + $to_today_t += $sum; } - - sql_close ($c); - $to = !$to ? "0" : $to; $to_t = !$to_t ? "0" : $to_t; $to_today = !$to_today ? "0" : $to_today; $to_today_t = !$to_today_t ? "0" : $to_today_t; - # ܺ DB JSBoard ڿ user + # 외부 DB 를 사용할 경우 JSBoard 관리자에서 user 관리를 하지 않음 $userclick = $_SESSION[$jsboard]['external'] ? "window.alert('External user table Can\'t be Use')" : "document.location='./userlist.php?t=a'"; - echo "\n\n". - "\n". - "\n". - "\n". - "\n". + "\n". + "\n". + "\n". + "\n\n\n"; - - if ( $agent['tx'] ) { - echo "\n\n\n". + "\n". + "\n". + "\n". + "\n". "\n\n". - "\n". + "\n\n\n". - "\n". + "\n\n\n". + "\n". "\n\n\n". + "\n". + "\n\n". - "\n\n". + "\n\n\n". - "\n". + "\n\n\n". - "\n". - "\n\n\n". + "\n". + "\n". - "\n". "\n\n" . - "\n" . - "\n
' . $_('a_t1') . "' . $_('a_t3') . "' . $_('a_t4') . "' . $_('a_t5') . "{$langs['a_t1']}{$langs['a_t3']}{$langs['a_t4']}{$langs['a_t5']}" . $_('a_t1') . "" . $_('a_t2') . "" . $_('a_t5') . "{$langs['a_t1']}{$langs['a_t2']}{$langs['a_t5']}
" . $_('a_t3') . "" . $_('a_t4') . "
{$langs['a_t3']}{$langs['a_t4']}
   {$table_name[$i]}{$total_today}   {$total_count}   \n". - "" . $_('a_t7') . "\n". - "" . $_('a_t8') . "\n". - "" . $_('a_t17') . "\n". - "" . $_('a_t9') . "\n". + echo "
   {$table_name[$i]}$total_today   $total_count   \n". + "{$langs['a_t7']}\n". + "{$langs['a_t8']}\n". + "{$langs['a_t17']}\n". + "{$langs['a_t9']}\n". "
\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "
\n". + "\n". + "\n". + "\n". + "\n". + "\n". + "\n". + "\n". + "
\n". - "{$table_explain}\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "
\n". + "$table_explain\n"; + + if(preg_match('/_comm/',$table_name[$i])) + echo "\n"; + + echo "\n". + "\n". + "\n". + "\n". + "

" . - $_('n_acc') . "
 

{$langs['n_acc']}
 
{$_lang['a_t41']} [ " . $_('a_t16') . " ]{$to_today} [{$to_today_t}]{$to} [{$to_t}]\n"; + echo "\n
{$langs['a_t41']} [ {$langs['a_t16']} ]$to_today [$to_today_t]$to [$to_t]\n"; if($agent['tx']) { - $userclick = $_SESSION[$jsboard]['external'] ? "[ " . $_('a_t20') . " ]" : "[ " . $_('a_t20') . " ]"; + $userclick = $_SESSION[$jsboard]['external'] ? "[ {$langs['a_t20']} ]" : "[ {$langs['a_t20']} ]"; echo "$userclick\n". - "[ " . $_('a_t11') . " ]\n"; + "[ {$langs['a_t11']} ]\n"; } else { - echo "\n". - "\n"; + echo "\n". + "\n"; } - echo "
\n" . - "
\n". - "  " . $_('a_t12') . " :\n". - "\n". - "\n". + + if($agent['tx']) { + echo "
  {$langs['a_t12']} :\n". + "\n". + "\n". "\n". - "\n". - "
\n" . - "
\n" . - "  " . $_('a_t14') . " :\n". - "\n". - "\n". + "
  {$langs['a_t14']} :\n". + "\n". + "\n". "\n". "\n". - "
\n"; } else { - echo "
\n" . - "
\n". - "  " . $_('a_t12') . " :\n". - "\n". - "\n". + echo "
  {$langs['a_t12']} :\n". + "\n". + "\n". "\n". "\n". - "\n". - "". - "Powered By
JSBoard OPEN PROJECT
\n". + "
\n". + "". + "Powered By
JSBoard OPEN PROJECT
\n". "
\n". - "
\n". - "  " . $_('a_t14') . " :\n". - "\n". - "\n". + "
  {$langs['a_t14']} :\n". + "\n". + "\n". "\n". "\n". - "
\n"; + "
\n"; } $total = $tbl_num; @@ -292,8 +290,8 @@ if(!$page || $page == 1) { $page_num = 1; $scale_lastpage = $page_num+5; } - $foo = $page / 5; - $foo = explode (".", $foo); + $foo = $page/5; + $foo = explode(".",$foo); $pfoo = $foo[1]; $nfoo = $foo[0]; @@ -302,20 +300,16 @@ if($total == 0) echo " "; else { if($page < 2) echo " "; - else echo "\"""; + else echo "\"{$langs['a_act_fm']}\""; if($page >= $lastpage) echo " "; - else - echo "" . - "\"" "; + else echo "\"{$langs['a_act_lm']}\" "; for($i=$page_num; $i<$scale_lastpage; $i++) { if($i <= $lastpage) { $page_view = $i; - if ($i == $nowpage) echo "$page_view "; - else - echo "" . - "$page_view "; + if($i == $nowpage) echo "$page_view "; + else echo "$page_view "; } } @@ -327,50 +321,80 @@ if($page < 2) echo " "; else { if($page > 5 && $pfoo == 2) - echo ""; + echo ""; else - echo ""; + echo ""; } if($lastpage-$page <= 0) echo " "; else { if($page >= 5 && $pfoo == 0) - echo ""; + echo ""; else - echo ""; + echo ""; } } - if ( $ts ) - $_lang['ts'] = "" . $_('a_t18') . ""; - else - $_lang['ts'] = $_('a_t19'); + if($ts) { + $langs['ts'] = "{$langs['a_t18']}"; + $tsname = $ts."bold"; + ${$tsname} = " font-weight:bold;"; + } else $langs['ts'] = "{$langs['a_t19']}"; echo "\n"; + "\n"; - if ( $agent['tx'] ) echo "[ " . $_('a_t15') . " ]\n"; - else echo "
\n"; + if($agent['tx']) echo "[ {$langs['a_t15']} ]\n"; + else echo "
\n"; echo "
{$_lang['ts']}\n"; - - for ( $i = '97'; $i <= '122'; $i++ ) { - $_i = chr ($i); - $I = strtoupper ($_i); - $_class = ( $ts == $_i ) ? 'classlink_b' : 'classlink'; - echo "{$I}\n"; - } - echo "
\n\n"; + "
{$langs['ts']}\n" . + "A\n" . + "B\n" . + "C\n" . + "D\n" . + "E\n" . + "F\n" . + "G\n" . + "H\n" . + "I\n" . + "J\n" . + "K\n" . + "L\n" . + "M\n" . + "N\n" . + "O\n" . + "P\n" . + "Q\n" . + "R\n" . + "S\n" . + "T\n" . + "U\n" . + "V\n" . + "W\n" . + "X\n" . + "Y\n" . + "Z\n" . + "
\n\n"; } +sql_close($c); + echo "
"; echo "\n
\n"; - -if ( $agent['tx'] ) - echo "Powered By JSBoard Open Project\n"; +if($agent['tx']) echo "Powered By JSBoard Open Project\n"; htmltail(); + +/* + * Local variables: + * tab-width: 2 + * indent-tabs-mode: nil + * c-basic-offset: 2 + * show-paren-mode: t + * End: + * vim: filetype=php et ts=2 sw=2 + */ ?> diff --git a/admin/admin_info.php b/admin/admin_info.php index 06b88600..7eaebbb8 100644 --- a/admin/admin_info.php +++ b/admin/admin_info.php @@ -1,58 +1,98 @@ \n". + "\n". + "\n
\n". -# global -$global_con = readfile_r ($configfile); -$global_con = preg_replace ("/<\?|\?>/i","",$global_con); + "Admin Center Password Change\n". + "\n". + "\n". + "\n". + "\n". + "\n\n". -# spam list -if ( file_exists ($spamlistfile) ) $spamlist = readfile_r ($spamlistfile); -else $spamlist = "spam_list.txt is not found into jsboard/config"; + "\n". + "\n". + "\n". + "\n\n". -$global_con = trim ($global_con); -$spamlist = trim ($spamlist); -?> + "\n\n\n\n". + + "\n". + "\n\n
Passwd
Re Passwd
\n". + "\n". + "\n". + "
\n\n". + + "
\n\n"; + + copyright($copy); + + echo "\n\n
\n". + "\n"; +} elseif($mode == "global") { + + $configfile = "../config/global.php"; + $spamlistfile = "../config/spam_list.txt"; -
-
- - -
- - - - - - - - - -
Global Configuration
- -
SPAMER LIST
  -
-
-
- - - -
- -
-
- - + # global 설정 가져오기 + $global_con = file_operate($configfile,"r","Don't open $configfile"); + $global_con = preg_replace("/<\?(php)?|\?>/i","",$global_con); + + # spam list 가져오기 + if(file_exists($spamlistfile)) $spamlist = file_operate($spamlistfile,"r"); + else $spamlist = "jsboard/config 에 spam_list.txt 가 존재하지 않습니다"; + + $global_con = trim($global_con); + $spamlist = trim($spamlist); + + echo "
\n". + "
\n". + "\n". + "\n
\n\n". + "\n". + "\n". + "\n\n". + "\n". + "\n\n". + "\n
\n". + "Global Configuration\n". + "
\n". + "\n". + "
\n". + "SPAMER LIST\n". + "
 \n". + "
{$langs['spamer_m']}

". + "

\n
\n". + "\n". + "\n". + "\n". + "
\n\n". + "
\n
\n"; +} + +htmltail(); + +/* + * Local variables: + * tab-width: 2 + * indent-tabs-mode: nil + * c-basic-offset: 2 + * show-paren-mode: t + * End: + * vim: filetype=php et ts=2 sw=2 + */ +?> diff --git a/admin/include/admin_head.php b/admin/include/admin_head.php index 8710bfc5..d34ff127 100644 --- a/admin/include/admin_head.php +++ b/admin/include/admin_head.php @@ -1,6 +1,5 @@ alert('Don\'t exist Global configuration file')\n" . - "history.back()<\/script>"; +# table 이름을 체크한다. +if($path['type'] == "user_admin") table_name_check($table); + +if(!@file_exists("{$ipath}/config/global.php")) { + echo""; die; } else { include_once "{$ipath}/config/global.php"; } -if ( $db['type'] == 'sqlite' ) { - $db['server'] = '.' . $db['server']; - if ( $path['type'] == 'user_admin' ) - $db['server'] = '../' . $db['server']; -} - -require_once "{$ipath}/theme/{$print['theme']}/config.php"; -putenv ("JSLANG={$_code}"); -require_once ("{$dpath}/language/lang.php"); -require_once ("{$ipath}/database/db.php"); -require_once "$dpath/include/lib.php"; -table_name_check ($print['theme']); - -# session -sessionInit($ipath . '/' . $board['sessTmp']); -session_start (); -if( ! session_is_registered ($jsboard) ) - session_destroy(); +$sqlfunc = extension_loaded('mysqli') ? 'sqli' : 'sql'; +include_once "{$ipath}/include/{$sqlfunc}.php"; -# table ̸ üũѴ. -if ( $path['type'] == "user_admin" || $table ) - table_name_check ($table); +# session을 시작 +session_start(); -if ( $path['type'] == "user_admin" && $table ) { - if ( file_exists ("{$ipath}/data/{$table}/config.php") ) { - require_once "{$ipath}/data/{$table}/config.php"; - require_once "{$ipath}/theme/{$print['theme']}/config.php"; - putenv ("JSLANG={$_code}"); - require_once "{$ipath}/language/{$_code}.lang"; - } +if($path['type'] == "user_admin" && $table) { + if(file_exists("{$ipath}/data/{$table}/config.php")) + { include_once "{$ipath}/data/{$table}/config.php"; } } -# ܺ ȸ DB include -if ( file_exists ("{$ipath}/config/external.php") ) { - require_once "$ipath/config/external.php"; -} +# 외부 회원 DB 를 사용할 경우 설정 파일 include +if(file_exists("$ipath/config/external.php")) { include_once "{$ipath}/config/external.php"; } -table_name_check ($print['theme']); -require_once "{$ipath}/include/replicate.php"; -require_once "{$dpath}/include/print.php"; -require_once "$dpath/include/first_reg.php"; +# 이메일 주소 변형 체크 +$rmail['chars'] = !$rmail['chars'] ? "__at__" : $rmail['chars']; -# -if ( session_is_registered ($jsboard) ) { - if( $_SESSION[$jsboard]['pos'] == 1 ) - $board['super'] = 1; +table_name_check($print['theme']); +include_once "{$ipath}/theme/{$print['theme']}/config.php"; +include_once "{$ipath}/include/lang.php"; +include_once "{$ipath}/include/replicate.php"; +include_once "{$dpath}/include/print.php"; - if ( strstr ($board['ad'],";") ) { - if ( preg_match ("/{$_SESSION[$jsboard]['id']};|;{$_SESSION[$jsboard]['id']}/",$board['ad']) ) - $board['adm'] = 1; +# 관리자 정보 +if (isset($_SESSION[$jsboard])) { + if($_SESSION[$jsboard]['pos'] == 1) $board['super'] = 1; + if(strstr($board['ad'],";")) { + if(preg_match("/{$_SESSION[$jsboard]['id']};|;{$_SESSION[$jsboard]['id']}/",$board['ad'])) $board['adm'] = 1; } else { - if ( preg_match ("/^{$_SESSION[$jsboard]['id']}$/",$board['ad']) ) - $board['adm'] = 1; + if(preg_match("/^{$_SESSION[$jsboard]['id']}$/",$board['ad'])) $board['adm'] = 1; } } -$db = replication_mode ($db); +$db = replication_mode($db); + +/* + * Local variables: + * tab-width: 2 + * indent-tabs-mode: nil + * c-basic-offset: 2 + * show-paren-mode: t + * End: + * vim: filetype=php et ts=2 sw=2 + */ ?> diff --git a/admin/include/check.php b/admin/include/check.php new file mode 100644 index 00000000..17f190d0 --- /dev/null +++ b/admin/include/check.php @@ -0,0 +1,148 @@ +\n


{$langs['nodb']}


"; + exit; + } +} + +# 생성할 게시판 이름에 대한 존재및 적격 여부 검사 루틴 +# +function table_name_check($table,$ck=0) { + global $langs; + $table = trim($table); + + if(!$langs['n_t_n']) { + $langs['n_t_n'] = "Table Name Missing! You must select a table"; + $langs['n_db'] = "Board name must start with an alphabet"; + $langs['n_meta'] = "Can't use special characters except alphabat, numberlic, _, - charcters"; + $langs['n_promise'] = "Cat't use table name as "as""; + } + + if (!$ck && !$table) print_error($langs['n_t_n'],250,150,1); + if (!preg_match("/^[a-z]/i",$table)) print_error($langs['n_db'],250,150,1); + if (preg_match("/[^a-z0-9_\-]/i",$table)) print_error($langs['n_meta'],250,150,1); + if (preg_match("/^as$/i",$table)) print_error($langs['n_promise'],250,150,1); + + if ( preg_match ('!/.+|%00!', $table) ) + print_error ("Ugly access with table variable \"{$table}\"", 250, 150, 1); +} + +function check_userlist_type($t) { + if(is_hangul($t)) { + if($t == "가") $r['like'] = "나"; + if($t == "나") $r['like'] = "다"; + if($t == "다") $r['like'] = "라"; + if($t == "라") $r['like'] = "마"; + if($t == "마") $r['like'] = "바"; + if($t == "바") $r['like'] = "사"; + if($t == "사") $r['like'] = "아"; + if($t == "아") $r['like'] = "자"; + if($t == "자") $r['like'] = "차"; + if($t == "차") $r['like'] = "카"; + if($t == "카") $r['like'] = "타"; + if($t == "타") $r['like'] = "파"; + if($t == "파") $r['like'] = "하"; + if($t == "하") $r['like'] = chr(0xfe); + $r['like'] = "WHERE binary nid BETWEEN binary '$t' AND binary '{$r['like']}'"; + } else { + $r['like'] = "WHERE nid LIKE '$t%'"; + } + $r['links'] = "t=$t&"; + return $r; +} + +function check_admin($user) { + $p = opendir("./data"); + while($i = readdir($p)) { + if($i != "." && $i != ".." && is_dir("./data/$i")) { + if ( ! file_exists(($chkfile = "./data/$i/config.php")) ) + continue; + $c = fopen($chkfile,"rb"); + $chk = fread($c,500); + $chk = preg_replace("/.+board\[ad\][ ]*=[ ]*\"([^\"]*)\".+/i","\\1",$chk); + if(trim($chk) == trim($user)) { + closedir($p); + return 1; + break; + } + } + } + closedir($p); +} + +function check_invalid($str) { + $perment = "
[ SECURITY WARNING!! ] - jsboard don't permit"; + $target = array("/<(\?|%)/i","/(\?|%)>/i","/<(\/?embed[^>]*)>/i","/<(IMG[^>]*SRC=[^\.]+\.(ph|asp|htm|jsp|cgi|pl|sh)[^>]*)>/i"); + $remove = array("","","$perment <\\1>
","$perment <\\1>
"); + + if(preg_match("/ diff --git a/admin/include/first_reg.php b/admin/include/first_reg.php index 89949d8f..2ce513e5 100644 --- a/admin/include/first_reg.php +++ b/admin/include/first_reg.php @@ -1,12 +1,12 @@ diff --git a/admin/include/html_ahead.php b/admin/include/html_ahead.php index c18d86ea..54e94e4a 100644 --- a/admin/include/html_ahead.php +++ b/admin/include/html_ahead.php @@ -1,48 +1,45 @@ - - - - - -JSBoard Administration Center [ <?=$_title?> ] - + + + + +JSBoard Administration Center [ +<?php + if (!preg_match("/admin/i",$file_lo)) echo get_title(); + else echo "$sub_title"; +?> ] - - + +\n". + "\n". + ""; +} +?> + - +"; +?> diff --git a/admin/include/html_atail.php b/admin/include/html_atail.php index d682e486..e1de4d37 100644 --- a/admin/include/html_atail.php +++ b/admin/include/html_atail.php @@ -2,5 +2,5 @@ - - + + diff --git a/admin/include/lib.php b/admin/include/lib.php deleted file mode 100644 index 2b6d9012..00000000 --- a/admin/include/lib.php +++ /dev/null @@ -1,139 +0,0 @@ -\n\n" . - "

" . $_('nodb') . "


\n" . - ""; - } -} - -# Խ ̸ ˻ ƾ -# -function table_name_check($table,$ck=0) { - global $_; - $table = trim ($table); - - if ( ! $_('n_t_n') ) { - $_lang['n_t_n'] = 'Table Name Missing! You must select a table'; - $_lang['n_db'] = 'Board name must start with an alphabet'; - $_lang['n_meta'] = 'Can\'t use special characters except alphabat, numberlic, _, - charcters'; - $_lang['n_promise'] = 'Cat\'t use table name as "as"'; - } else { - $_lang['n_t_n'] = $_('n_t_n'); - $_lang['n_db'] = $_('n_db'); - $_lang['n_meta'] = $_('n_meta'); - $_lang['n_promise'] = $_('n_promise'); - } - - if ( ! $ck && ! $table ) print_error ($_lang['n_t_n'], 250, 150, 1); - if ( ! preg_match ('/^[a-z]/i', $table) ) print_error ($_lang['n_db'], 250, 150, 1); - if ( preg_match ('/[^a-z0-9_\-]/i', $table) ) print_error ($_lang['n_meta'], 250, 150, 1); - if ( preg_match ('/^as$/i', $table) ) print_error ($_lang['n_promise'], 250, 150, 1); - - if ( preg_match ('!/.+|%00!', $table) ) - print_error ("Ugly access with table variable \"{$table}\"", 250, 150, 1); -} - -function check_userlist_type ($t) { - if ( is_hangul ($t) ) - $r['like'] = korean_area ($t); - else - $r['like'] = "WHERE nid LIKE '$t%'"; - - $r['links'] = "t=$t&"; - return $r; -} - -function check_admin($user) { - $p = opendir("./data"); - while($i = readdir($p)) { - if($i != "." && $i != ".." && is_dir("./data/$i")) { - $c = fopen("./data/$i/config.php","rb"); - $chk = fread($c,500); - $chk = preg_replace("/.+board\[ad\][ ]*=[ ]*\"([^\"]*)\".+/i","\\1",$chk); - if(trim($chk) == trim($user)) { - closedir($p); - return 1; - break; - } - } - } - closedir($p); -} - -function check_invalid($str) { - $perment = "
[ SECURITY WARNING!! ] - jsboard don't permit"; - $target = array("/<(\?|%)/i","/(\?|%)>/i","/<(\/?embed[^>]*)>/i","/<(IMG[^>]*SRC=[^\.]+\.(ph|asp|htm|jsp|cgi|pl|sh)[^>]*)>/i"); - $remove = array("","","$perment <\\1>
","$perment <\\1>
"); - - if(preg_match("/ diff --git a/admin/include/print.php b/admin/include/print.php index 0b98f067..5bcb4459 100644 --- a/admin/include/print.php +++ b/admin/include/print.php @@ -1,70 +1,74 @@ \n" . + "\n"; } -# Admin Center Ϸ ޼ +# Admin Center 변경 완료 메세지 # function complete_adminpass() { - global $_; - $str = str_replace("\n", "\\n", $_('p_cp')); - echo ""; exit; } -# theme list ҷ Լ +# theme list를 불러오는 함수 # -# opendir() - 丮 ε带 -# readdir() - 丮 -# is_dir() - 丮 Ǵ -# sizeof() - 迭 +# opendir() - 디렉토리의 포인드를 열음 +# readdir() - 디렉토리 목록을 읽음 +# is_dir() - 디렉토리인지 판단 +# sizeof() - 배열의 갯수를 구함 # function get_theme_list($pt,$current="") { if(!$current) $current = "default"; - # ü Խ ο θ + # 전체 어드민인지 게시판 어드민에서 인지에 따라 경로를 구분 if($pt == "user_admin") $path = "../../theme"; else $path = "../theme"; - # theme directory theme 丮 ̸ + # theme directory 에서 각 theme 들의 디렉토리 이름을 받음 $p = opendir($path); while($i = readdir($p)) { if($i != "." && $i != ".." && is_dir("$path/$i")) { @@ -76,8 +80,9 @@ function get_theme_list($pt,$current="") { $num = sizeof($theme); for($i=0;$i<$num;$i++) { - $select = ($current == $theme[$i]) ? ' selected=selected' : ''; - echo "{$theme[$i]}\n"; + if($current == $theme[$i]) $select = " SELECTED"; + else $select = ""; + echo "
+ + + + + diff --git a/theme/EN-default/reply.template b/theme/EN-default/reply.template index 1abeec09..4425f44f 100644 --- a/theme/EN-default/reply.template +++ b/theme/EN-default/reply.template @@ -1,56 +1,152 @@ + + + + + + + + + + + +Jsboard <?php echo $board['ver']?> - <?php echo get_title()?> - - -
onsubmit="return registCheck();"> - - - - - - - - - - - - -
- ->> Write reply article -
- -Reply -
- - border=0 cellpadding=1 cellspacing=0> - - - - - - - + + + + + + + + + + + + + +
+> +


+ + + + + + + + + + + + +
>> Write reply article
+ + +
+ + + + + + + + + - - - - + + + + - - - -\n"; + echo << + + + +EOF; } ?> @@ -58,33 +154,38 @@ if($view['email']) { - - - -\n"; + echo << + + + +EOF; } ?> -\n". - "\n". - "\n". - "\n"; + echo << + + + +EOF; } elseif(!$upload['yesno'] && $cupload['yesno']) { - echo "\n". - "\n". - "\n". - "\n"; + echo << + + + +EOF; } ?> @@ -93,50 +194,52 @@ if ($upload['yesno'] && $cupload['yesno'] && $noup != 1) { - - - - + + + + - + -Password\n". - "\n"; + echo <<Password + +EOF; } ?> - + - - - -


Name maxlength=50 value="" tabindex="1">
Name tabindex="1">
Email
Email
Homepage
Homepage
\n". - "\n". - "\n". - "
File + + +
" . $_('upload') . "
File{$langs['upload']}
Subject maxlength=100 value="" tabindex="5">
Subject" tabindex="5">
\n". - "\n". - "{$pcaptcha}\n" . - " + +{$pcaptcha} +

+ +
+ + - - -
+ + +
- - +
+ + -
- + - + - + -
+
@@ -145,15 +248,34 @@ if(preg_match("/^[04]$/",$board['mode']) && !$board['super']) { - - -
- - - - - -
+ + +
+ + + + + +
-
+ + + + + + +
+ + + + + + diff --git a/theme/EN-default/write.template b/theme/EN-default/write.template index b8d52115..54ea8b69 100644 --- a/theme/EN-default/write.template +++ b/theme/EN-default/write.template @@ -1,62 +1,153 @@ + + + + + + + + + + + +<?php echo get_title()?> - Jsboard <?php echo $board['ver']?> + + + + + + + + - + +
+
> + + + + + - onsubmit="return registCheck();"> -
>> Write new article
- - - - - - - - - - - -
- ->> Write new article -
- -Write -
- - - - - - - - - + + + + + + + +


+ + +
+ + + + + + + + + - - - - + + + + - - - - -END; + + + + +EOF; } ?> @@ -64,85 +155,90 @@ END; - - - - -END; + + + + +EOF; } ?> -\n". - "\n". - "\n". - "\n"; + echo << + + + +EOF; } elseif(!$upload['yesno'] && $cupload['yesno']) { - echo "\n". - "\n". - "\n". - "\n"; + echo << + + + +EOF; } ?> - - - - + + + + - + -Password - + -END; + +EOF; } ?> - + - - - -


Name maxlength=50 value="" tabindex="1">
Name tabindex="1">
Email
Email
Homepage
Homepage
File\n". - "\n". - "\n". - "
File + + +
File" . $_('upload') . "
File{$langs['upload']}
Subject maxlength=100 tabindex="5">
Subject
- +Password + {$pcaptcha} -

+ +
+ + - - -
+ + +
- - +
+ + -
- + - - + + -
+
@@ -150,14 +246,34 @@ END; - - -
- - - - - -
-
+ + +
+ + + + + +
+ + + + + + + +
+ + + + + + diff --git a/theme/JP-default/config.php b/theme/JP-default/config.php index 597ad6ce..32d13bbc 100644 --- a/theme/JP-default/config.php +++ b/theme/JP-default/config.php @@ -1,62 +1,105 @@ - -$lines['height'] = "25"; -# Xg ̊Ԃ fUC 邽߂ R[h -# $lines['design'] ݒ ݒ ו. -# K COLSPAN=AA X čs n. ݒ Xg colspan -# 킹 ̂߂ list.php ϊ 悤 Ȃ -# p eXg \ -# $lines['comment'] comment rows g H -# n. COLSPAN=AA Kv Ȃ. -#$lines['design'] = "
"; -$lines['design'] = ""; -$lines['comment_design'] = "\n" . - "" . - "" . - ""; +# HTML default color configuration +$color['text'] = '#555555'; # TEXT +$color['n1_fg'] = '#999999'; # Can't Use + +# Color configuration +$color['nr_bg'] = '#D3DAC3'; # notice background +$color['nr_fg'] = '#000000'; # notice font +$color['l2_bg'] = '#F5FBE6'; # regular article background +$color['l2_fg'] = '#000000'; # regular article text +$color['l3_bg'] = '#D3DAC3'; # reply article background +$color['l3_fg'] = '#000000'; # reply article text +$color['l4_bg'] = '#ffffff'; # search form background +$color['l4_fg'] = '#555555'; # search form text +$color['l4_gu'] = '#555555'; # search form guide line +$color['l5_bg'] = $color['l2_bg']; # article body background +$color['l5_fg'] = $color['l2_fg']; # article body text + +# Color of search string +$board['hl'] = 'STR'; + +$color['ms_ov'] = '#E3F9AB'; # Mouse over +$color['td_co'] = '#d2691e'; # articles color of today +$color['cp_co'] = '#ffd700'; # present page color + +# Preview configuration +$color['p_gu'] = '#FFAE00'; # Preview guide line +$color['p_bg'] = '#FFFFFF'; # Preview background +$color['p_fg'] = '#555555'; # Preview text + +# admin page color configuration +$color['b_bg'] = '#FFFFFF'; # Background Color +$color['t_bg'] = '#FFAE00'; # Title Color +$color['t_fg'] = '#FFFFFF'; # Title Text +$color['m_bg'] = '#D3DAC3'; # Menu filed Bg +$color['m_fg'] = '#555555'; # Menu field Text +$color['d_bg'] = '#F5FBE6'; # Option filed Bg +$color['d_fg'] = '#555555'; # Option filed Text + +# height configuration of tr tag in list page +# It's height configured with image height. For example, +# +$lines['height'] = '25'; + +# 文 リスト 間に デザインを 入れるための コード 李設定は +# 設定で 成して 荷. には 必ず COLSPAN="AA" 街 入って行くと ハム. +# 李設定は リストの colspan を 合わせ のために list.php で 変換を +# するように なって あり 次の 例題を 利用して テスト 日 表示 風 +#$line_design = '
'; +$lines['design'] = ''; +$lines['comment_design'] = ''. + ''. + ''; ############################################################## # Width Configuration ############################################################## # list paget table ratio =================================== -$td_width['no'] = "5%"; # ԍ tB[h +$td_width['no'] = '5%'; # No field width -# tB[h -if ($upload['yesno'] && $cupload['yesno']) $td_width['title'] = "54%"; -else $td_width['title'] = "63%"; +# title filed width +if ($upload['yesno']) $td_width['title'] = '54%'; +else $td_width['title'] = '65%'; -$td_width['name'] = "14%"; # tB[h -$td_width['upload'] = "9%"; # t@C tB[h -$td_width['dates'] = "13%"; # t tB[h -$td_width['refer'] = "5%"; # CbNEX tB[h +$td_width['name'] = '14%'; # writer field width +$td_width['upload'] = '9%'; # upload file filed width +$td_width['dates'] = '13%'; # date field width +$td_width['refer'] = '5%'; # read field width ############################################################## # Field Array Configuration ############################################################## -# Xg tB[h 菇 `. -# n -> ԍ -# T -> -# N -> -# F -> Abv[h t@C -# D -> o^ t -# R -> ǂ +# Config field order in article lists +# n -> Number of Article +# T -> Subject of Article +# N -> Register of Article +# F -> Attached file +# D -> Date of Article Registration +# R -> Read of Article # -$td_array = "nTNFDR"; +$td_array = 'nTNFDR'; ?> diff --git a/theme/JP-default/default.css b/theme/JP-default/default.css deleted file mode 100644 index 16f7c53e..00000000 --- a/theme/JP-default/default.css +++ /dev/null @@ -1,491 +0,0 @@ -/* - * User Define CSS - * $Id: default.css,v 1.7 2009-11-16 21:52:47 oops Exp $ - */ - -body { - font-size: 12px; - font-family: ī, "Lucida Console", monospace; - color: #555555; - line-height: 120%; - background-color: #ffffff; - margin: 0px 0px; -} - -td { - font-size: 12px; - font-family: ī, "Lucida Console", monospace; - color: #555555; - line-height: 120%; -} - -a:link, a:visited, a:active { - text-decoration: none; - color: #555555; -} - -a:hover { - text-decoration: underline; - color: #555555; -} - -img { - border: 0; - padding: 0px; - margin: 0px; -} - -input { - font-size: 11px; - font-family: ī, tahoma, sans-serif; - color: #555555; - border-width: 1px; - border-style: solid; - border-color: #555555; - padding-left: 1px; - padding-right: 1px; - background-color: #ffffff; -} - -select { - font-size: 11px; - font-family: ī, tahoma, sans-serif; - color: #555555; - border-width: 1px; - border-style: solid; - border-color: #555555; - background-Color: #ffffff; -} - -textarea { - font-size: 11px; - font-family: ī, "Lucida Console", monospace; - color: #555555; - border-width: 1px; - border-style: solid; - border-color: #555555; - padding-left: 1px; - background-color: #ffffff; - width: 100%; - height: 150px; -} - -.cmtarea { height: 100px; } - -.resizable-textarea .grippie { - height: 14px; - background: #ECE9D6 url(img/grippie.png) no-repeat 100% 100%; - border: 1px solid #DFDBCA; - border-top-width: 0; - cursor: se-resize; -} - -.resizable-textarea { - width: 100% !important; - width: 98%; /* for IE */ -} - -form { display: inline; } - -/* admin td */ -.admin { - font-size: 11px; - font-family: ī, tahoma, sans-serif; - font-weight: bold; - color: #555555; - text-align: right; - vertical-align: bottom; -} - -/* copyright */ -.copy { - font-size: 12px; - font-family: ī, tahoma, sans-serif; - color: #555555; - overflow: hidden; - white-space: nowrap; - text-align: right; -} - -.copylnk { - color: #555555; - font-weight: bold; -} - -/* list table counter / read article number */ -.counter { - font-size: 11px; - font-family: ī, tahoma, sans-serif; - color: #555555; -} - -/* list ȭ title row */ -.ltitle { - color: #ffffff; - font-weight: bold; - text-align: center; - background-color: #a0dc10; -} - -/* read page article title */ -.rtitle { - color: #ffffff; - font-weight: bold; -} - -/* read item */ -.ritem { font-weight: bold; } - -.rbodybg { - background-color: #f5fbe6; - text-align: center; -} - -/* read article body text */ -.rbody { - color: #000000; - font-family: ī, "Lucida Console"; - text-align: left; -} - -/* password td in delete page */ -.delpassfd { - color: #ffffff; - font-weight: bold; -} - -/* Login page */ -/* login title */ -.logtitle { - font-size: 14px; - font-family: ī, tahoma, sans-serif; - color: #ffffff; - font-weight: bold; - background-color: #a0dc10; - text-align: center; -} - -/* login table background */ -.log_bg { - text-align: center; - background-color: #d3dac3; -} - -/* login td */ -.log_td { - overflow: hidden; - white-space: nowrap; - text-align: center; -} - -/* - * JSBoard Internal CSS - */ - -.versionprint { - font-size: 21px; - font-family: ī, tahoma, sans-serif; - font-weight: bold; - color: #a0dc10; - text-align: center; - vertical-align: middle; - font-variant: small-caps; -} - -/* rss link */ -.rss { - color: #999999; - font-weight: bold; -} - -/* Notice on list page */ -/* notice text */ -.notice { - color: #000000; - font-weight: bold; -} - -.noticebg { - background-color: #d3dac3; -} - -/* listkey number */ -.listkey { - color: red; - font-weight: bold; -} - -/* list row */ -.row0 { background-color: #f5fbe6; } -.rowbg0 { color: #f5fbe6; } -.row1 { background-color: #d3dac3; } -.rowbg1 { color: #d3dac3; } -.rowOn { background-color: #e3f9ab; } - -.rownum { - color: #000000; - text-align: right; - overflow: hidden; - white-space: nowrap; -} -.rowtitle { color: #000000; } -.rowcomment { - color: #000000; - font-size: 9px; - font-family: ī, tahoma, sans-serif; -} -.rowcommentbold { - color: #000000; - font-size: 9px; - font-family: ī, tahoma, sans-serif; - font-weight: bold; -} -.rowname { color: #000000; text-align: right; } -.rowdate { - color: #000000; - text-align: right; - overflow: hidden; - white-space: nowrap; -} -.rownewdate { color: #d2691e; } -.rowrefer { color: #000000; text-align: right; } -.rowupload { text-align: center; } - -/* article preview box sytle */ -div.preview { - position: absolute; - z-index: 50; - width: 260px; - visibility: hidden; -} -div.previewload { - padding: 5px 5px 5px 5px; - border: 1px #a0dc10 solid; - background-color: #ffffff; - color: #555555; - width: 360px; -} - -/* list ϴ page link */ -.fast { - font-size: 10px; - font-family: ī, tahoma, sans-serif; - color: #555555; -} - -/* list ϴ sql time */ -.sqltime { - font-size: 11px; - font-family: ī, tahoma, sans-serif; - color:#555555; -} - -.fastem { - color: #ffd700; - font-weight: bold; -} - -/* list / read menu */ -.menus { - color: #555555; -} -.menusdisable { - color: #999999; -} - -/* if admin / logout link is text */ -.admintext { color: #555555; } - -/* no search message */ -.narticle { - font-size: 22px; - font-family: ī, "Lucida Console", monospace; - font-weight: bold; - color: #000000; -} -.narticlebg { - background-color: #f5fbe6; - text-align: center; -} - -/* comment table */ -/* comment header message */ -.c_header { - font-size: 10px; - font-family: ī, tahoma, sans-serif; - font-weight: bold; -} - -/* comment td */ -.c_td { - overflow: hidden; - white-space: nowrap; -} - -/* comment context */ -.c_text { - white-space: pre; -} - -/* comment user name */ -.c_user { - font-weight: bold; -} - -/* comment date */ -.c_date { - font-size: 11px; - font-family: ī, tahoma, sans-serif; -} - -/* Comment input table */ -/* comment whole guide */ -.ci_table { - background-color: #d3dac3; -} - -/* Detail Search div */ -/* guide table */ -.ds_table { - background-color: #f5fbe6; - text-align: center; -} - -/* each td */ -.ds_td { - overflow: hidden; - white-space: nowrap; - text-align: left; -} - -/* search feild */ -.ds_field { - font-family: ī, tahoma, sans-serif; -} - -/* Conjunction article list in read page */ -.cn_seperate { - background-image: url(../../images/dotline.gif); - text-align: center; -} - -/* attach file name */ -.attachfn { - color: #000000; -} -/* missing attach file name */ -.attachfn_m { - color: red; - font-weight: bold; -} - -/* password input box */ -.passbox { - font-size: 10px; - font-family: ī, tahoma, sans-serif; -} - -/* register ip */ -.regip { - color: #000000; -} - -/* Whois CSS */ -.whois_tel { - color: #a0dc10; - font-weight: bold; -} - -.whois_addr { - color: #d3dac3; - font-weight: bold; -} - -.whois_net { - color: red; - font-weight: bold; -} - -/* Error popup window */ -.err_bg { - background-color: #d3dac3; -} -.err_fg { - background-color: #ffffff; - color: #555555; -} - -/* User Registration */ -.exttitle { - font-size: 15pt; - font-family: ī, tahoma, sans-serif; - font-weight: bold; - color: #a0dc10; -} - -.ext_comment { - background-color: #d3dac3; - color: #555555; -} - -.ext_field_nb { - background-color: #d3dac3; - color: #555555; - font-weight: bold; -} -.ext_field_ib { background-color: #f5fbe6; } - -/* Search word hilighting */ -.hilight { - color: #6d7bc9; - font-weight: bold; - text-decoration: underline; -} - -/* code block */ -.jsCodeBlock { - border: 1px dotted #a0dc10; - background-color: #dedede; - margin: 10px 10px; - padding: 10px 10px; -} - -/* Quote block */ -blockquote { - background: #ebebeb none 6px 8px no-repeat; - background-image: url("../../images/quote.gif"); - border: 1px solid #dbdbdb; - font-size: 1em; - margin: 0.5em 1px 0 25px; - overflow: hidden; - padding: 5px; -} - -blockquote blockquote { - /* Nested quotes */ - background-color: #bababa; - font-size: 1em; - margin: 0.5em 1px 0 15px; -} - -blockquote blockquote blockquote { - /* Nested quotes */ - background-color: #e4e4e4; -} - -blockquote cite { - /* Username/source of quoter */ - font-style: normal; - font-weight: bold; - margin-left: 20px; - display: block; - font-size: 0.95em; -} - -blockquote cite cite { - font-size: 1em; -} - -blockquote.uncited { - padding-top: 25px; -} diff --git a/theme/JP-default/delete.template b/theme/JP-default/delete.template index 0f37468b..ac171125 100644 --- a/theme/JP-default/delete.template +++ b/theme/JP-default/delete.template @@ -1,95 +1,189 @@ + + + + + + + + + + +<?php echo get_title()?> - Jsboard <?php echo $board['ver']?> + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +\n/i","\\0",$list['title']); ?> + + + + + + + +
+ +>> Delete article +
+No. + +
+ + + + + + + + + + + + + + + + + + +
+
+登録     +問い合わせ
+名前     +ファイル {$list['attach']}" ?>
+
+
+ + + +
+ + + + + + + + +
+
+ + + + + + +
+
+ + + + + + + + + +
+ +[ リスト | 以前 ] +
+ + +  + + +
+ + + + + - - - - - - - - - - -\n/i","\\0\"\"",$list['title']); ?> - - - - - - - -
>> Delete article
-No. - -
- - - - - - - - - - - - - - - - - - -
-
-o^     -ǂ
-O     -t@C {$list['attach']} -EOF; -?>
-
-
- - - -
- - - - - - - - -
-
- - - - - - -
-
- - - - - - - - - -
- -[ Xg | ȑO ] -
- -  - -
-
+ +
+ + + + + diff --git a/theme/JP-default/edit.template b/theme/JP-default/edit.template index 5e2471fd..2add3244 100644 --- a/theme/JP-default/edit.template +++ b/theme/JP-default/edit.template @@ -1,179 +1,275 @@ - + + + - - + + + + - + +<?php echo get_title()?> - Jsboard <?php echo $board['ver']?> -
onsubmit="return registCheck();"> - - - - - + + + + + + + - - + + + + - - - - +
+> +
>> Edit article
O tabindex="1">
+ + + + + + + + + + + + + +
>> Edit article
+ + +
+ + + + + + + + + - - + + - + + + + + + + + + - - - - + + + + EOF; } ?> - - + + - - - - - + + + + EOF; } ?> - + - - - - - + + + + EOF; } if ($upload['yesno'] && $cupload['yesno'] && $noup != 1) { echo << - - - - + + + + EOF; } ?> - - + + - - - - + + + + - + - - + + -pX[h - + + EOF; } ?> - + - - - -


名前 tabindex="1">
[
メール
z[y[W
ホームページ
t@C - -{$list['bofile']} -{$list['bofile']} - $hfsize     - t@C폜 -
ファイル + +{$list['bofile']} +{$list['bofile']} - $hfsize     + ファイル削除 +
t@CC - - -
ファイル修正 + + +
題目
+パスワード $passment - -

+ +
+ + - - -
+ + +
- - -
+ + +
- - + + - + - - + + + +
-
+ + + + + + + +
+ + + + + +
- - - + - - -
- - - - - -
-
+ + + + + + + + + diff --git a/theme/JP-default/ext.template b/theme/JP-default/ext.template new file mode 100644 index 00000000..a0e88b23 --- /dev/null +++ b/theme/JP-default/ext.template @@ -0,0 +1,96 @@ + + + + + + + +<?php echo $print['head']?> - Jsboard <?php echo $board['ver']?> + + + + + + + + + diff --git a/theme/JP-default/img/at.gif b/theme/JP-default/img/at.gif deleted file mode 100644 index 538f817f..00000000 Binary files a/theme/JP-default/img/at.gif and /dev/null differ diff --git a/theme/JP-default/img/bnw-shape.gif b/theme/JP-default/img/bnw-shape.gif deleted file mode 100644 index a1d25bcf..00000000 Binary files a/theme/JP-default/img/bnw-shape.gif and /dev/null differ diff --git a/theme/JP-default/img/bnw.gif b/theme/JP-default/img/bnw.gif deleted file mode 100644 index 63137aac..00000000 Binary files a/theme/JP-default/img/bnw.gif and /dev/null differ diff --git a/theme/JP-default/img/board_no.gif b/theme/JP-default/img/board_no.gif index 9ee4f105..9734f5a3 100644 Binary files a/theme/JP-default/img/board_no.gif and b/theme/JP-default/img/board_no.gif differ diff --git a/theme/JP-default/img/delete_title.gif b/theme/JP-default/img/delete_title.gif new file mode 100644 index 00000000..b4eb974b Binary files /dev/null and b/theme/JP-default/img/delete_title.gif differ diff --git a/theme/JP-default/img/dot.gif b/theme/JP-default/img/dot.gif deleted file mode 100644 index 34b97d93..00000000 Binary files a/theme/JP-default/img/dot.gif and /dev/null differ diff --git a/theme/JP-default/img/dotted_gray.gif b/theme/JP-default/img/dotted_gray.gif deleted file mode 100644 index 8342733e..00000000 Binary files a/theme/JP-default/img/dotted_gray.gif and /dev/null differ diff --git a/theme/JP-default/img/edit_title.gif b/theme/JP-default/img/edit_title.gif new file mode 100644 index 00000000..5bbaa70e Binary files /dev/null and b/theme/JP-default/img/edit_title.gif differ diff --git a/theme/JP-default/img/icon_over.gif b/theme/JP-default/img/icon_over.gif index ce9eef93..4e2f8080 100644 Binary files a/theme/JP-default/img/icon_over.gif and b/theme/JP-default/img/icon_over.gif differ diff --git a/theme/JP-default/img/login.gif b/theme/JP-default/img/login.gif deleted file mode 100644 index 858d9515..00000000 Binary files a/theme/JP-default/img/login.gif and /dev/null differ diff --git a/theme/JP-default/img/reply_title.gif b/theme/JP-default/img/reply_title.gif new file mode 100644 index 00000000..49118cf3 Binary files /dev/null and b/theme/JP-default/img/reply_title.gif differ diff --git a/theme/JP-default/img/write_title.gif b/theme/JP-default/img/write_title.gif new file mode 100644 index 00000000..40208df4 Binary files /dev/null and b/theme/JP-default/img/write_title.gif differ diff --git a/theme/JP-default/index.template b/theme/JP-default/index.template deleted file mode 100644 index 0057f548..00000000 --- a/theme/JP-default/index.template +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - -<?=get_title()?> - JSBoard <?=$board['ver']?> - - - - - - - -> -
- - - - - - - - - - - - - -
- - - - - - - - - - -
-Copyleft -1999- by - -JSBoard Open Project
-Theme Designed by -IDOO -All right reserved -
- - - -
- - - - - - - diff --git a/theme/JP-default/list.template b/theme/JP-default/list.template index 48178c3a..4b4d2e8a 100644 --- a/theme/JP-default/list.template +++ b/theme/JP-default/list.template @@ -1,150 +1,250 @@ + + + + + + + + + + +<?php echo get_title()?> - Jsboard <?php echo $board['ver']?> + + + + + + + + + + + + + + + + + + - - - + + + - + - - - - - - - + + + + + + + + + - - - - - - - +
+ +
>>  
+ + + + + + +
>>  
-
- - + + - - - - - - + +
No.O
+ + + + - - + + -t@C\n + EOF; + } ?> - - - + + + - + - -
No.題目名前 ファイルtǂ
日付読み
+ +
- + - - + + - - - + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - -
>> Fast Page Link : -
- -
- - - - - - -
- - - -
- -> -K\ -
- - - - -
- -
-
- -
- - - - -
- - -'> - -
- -
+ + + + + + + + + + + + + + + + + +
>> Fast Page Link : +
+ +
+ + + + + + +
+ + + +
+ + style="border:1px solid ;background-Color:"> +正規表現式 +
+ + + + +
+ +
+
+ +
+ + + + +
+ + + +' +> + + +
+ +
+ + + + + + + + + + + + diff --git a/theme/JP-default/login.template b/theme/JP-default/login.template index 795ad465..4ba0049a 100644 --- a/theme/JP-default/login.template +++ b/theme/JP-default/login.template @@ -1,96 +1,130 @@ - - - - - -JSBoard <?=$board['ver']?> Login page - - - - - - - - - -
- -
- - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - -
-Password - - -
-
User
Password
-Session Reset - -
-
- -
- - - - - - - - - -
- - -
- -
- - - - + + + + + +JSBoard <?php echo $board['ver']?> Login page + + + + + + + + + +
+ +
+ + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + +
+Password + + + +
+
User
Password
+Session Reset + +
+
+ +
+ + + + + + + + + +
+ + +
+ +
+ + + + diff --git a/theme/JP-default/mail.template b/theme/JP-default/mail.template index 077adc66..130eef43 100644 --- a/theme/JP-default/mail.template +++ b/theme/JP-default/mail.template @@ -1,21 +1,12 @@ - - - -JSBoard Reply Notice - - + - - 
-
- - +
+ + 
+
+ + +
- - -
-JSBoard Reply Notice -
+ + +
+ +JSBoard Reply Notice +
- - +
-
+
+
-
+

 
-$_('html_msg')
+{$langs['html_msg']}
 
 Server Name       : $servername$nofm
-
-
+
+
- - -
+ + +
- - -
-
+
+
-
+

 
-$_('u_name')              : {$rmail['name']}
+{$langs['u_name']}              : {$rmail['name']}
 $addressinfo
-$_('reg')              : $year $day $ampm $hms
-
-
- - - -
- - - +
-
-
+{$langs['a_t13']}              : $year $day $ampm $hms
+
+
+ + + +
+ + + -
+

 {$rmail['text']}
-
-
-
- - - -
- -Scripted by JSBoard Open Project - -
- -
- - -
-
-
- - + +
+ + + +
+ +Scripted by JSBoard Open Project + +
+ +
+
+ +
+
+
+ + diff --git a/theme/JP-default/read.template b/theme/JP-default/read.template index 7eb4a863..4f9bc2d5 100644 --- a/theme/JP-default/read.template +++ b/theme/JP-default/read.template @@ -1,190 +1,342 @@ + + + + + + + + + + +<?php echo get_title()?> - Jsboard <?php echo $board['ver']?> + + - - - - - - - - - - - - - - - - - - - - - - - - - - -\n/i", "\\0\"\"", $list['title']); ?> - - - - - - - -
>> Read article
-TITLE: - -
- - - - - - - - - - - - - - - - - -
-
-o^     -ǂ
-O     -t@C {$list['attach']}" : "" ?>
-
-
- - - -
- - - - - - - - - + + +
-
- - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +\n/i","\\0",$list['title']); ?> + + + + + + + +
>> Read article 
+TITLE: + +
+ + + + + + + + + + + + + + + + + +
+
+登録     +問い合わせ
+名前     +ファイル {$list['attach']}" ?>
+
+
+ + + +
+ + + + + + + + + -
+
+ + + + + +
- - - -
- - -
- - - - - -
-
->> - - - -
- - - - - - - - - - - - -
-
- - - - - - - - - - +
- -
- - - - - - -
- - - -
- -> -K\ -
- - - - + + + +
+ + +

+ + + + + +
+
+>> + + + +
+ + + + + + + + + + + + +
+ 
+ + + + + + + + + + - - -
+ + + + + + + + +
+ + + +
+ + style="border:1px solid ;background-Color:"> +正規表現式 +
+ + + + - -
- -Page Loading [ Sec ] -SQL Time [ Sec ]
-
- -
- - - - -
- - - - -
- -
+ +

+ +Page Loading [ Sec ] +SQL Time [ Sec ]
+
+ +
+ + + + +
+ + + +'> + + +
+ +
+ + + + + + + + + + + diff --git a/theme/JP-default/reply.template b/theme/JP-default/reply.template index 3b6e0c83..79b83d73 100644 --- a/theme/JP-default/reply.template +++ b/theme/JP-default/reply.template @@ -1,175 +1,271 @@ - + + + - - + + + + - + +<?php echo get_title()?> - Jsboard <?php echo $board['ver']?> + + + + + + + + -
onsubmit="return registCheck();"> - - - - - + + + + + + +
+> +
>> Write reply article
+ + + + - - - + + + - - - -
>> Write reply article
- -fbO -
+ + +
+ + + + - - - - - - - - +


+ + + + + + + - - + + - - - - + + + + - - + + - - - - - + + + + EOF; } ?> - - + + - - - - - + + + + EOF; } ?> - + - - - - - + + + + EOF; } elseif(!$upload['yesno'] && $cupload['yesno']) { echo << - - - - + + + + EOF; } ?> - - - + + + - - - - + + + + - + - - + + -pX[h - + + EOF; } ?> - + - - - -


O tabindex="1">
名前 tabindex="1">
[
メール
z[y[W
ホームページ
t@C - - -
ファイル + + +
t@C" . $_('upload') . "
ファイル{$langs['upload']}
" tabindex="5">
題目" tabindex="5">
- +パスワード + {$pcaptcha} -

+ +
+ + - - -
+ + +
- - +
+ + -
- + - + - + - + -
+
- - - - + + + + - - -
- - - - - -
+ + +
+ + + + + +
-
+ + + + + + + + + + + + + diff --git a/theme/JP-default/write.template b/theme/JP-default/write.template index ff04860c..44f4be0e 100644 --- a/theme/JP-default/write.template +++ b/theme/JP-default/write.template @@ -1,171 +1,269 @@ - + + + - - + + + + - + +<?php echo get_title()?> - Jsboard <?php echo $board['ver']?> + + + + + + + + - - + + + + +
+
> + + + + + - onsubmit="return registCheck();"> -
>> Write new article
- - - - - - - - + + + - - - -
>> Write new article
- - -
+ + +
+ + + + - - - - - - - - +


+ + + + + + + - - + + - - - - + + + + - - + + - - - - -END; + + + + +EOF; } ?> - - + + - - - - -END; + + + + +EOF; } ?> - + - - - - - + + + + EOF; } elseif(!$upload['yesno'] && $cupload['yesno']) { echo << - - - - + + + + EOF; } ?> - + - - - - + + + + - + - - + + -pX[h - + -END; + +EOF; } ?> - + - - - -


O tabindex="1">
名前 tabindex="1">
[
メール
z[y[W
ホームページ
t@C - - -
ファイル + + +
t@C" . $_('upload') . "
ファイル{$langs['upload']}
題目
- +パスワード + {$pcaptcha} -

+ +
+ + - - -
+ + +
- - +
+ + -
- + - + - - + + -
+
- - - + + + + + + +
+ + + + + +
+ + + - - -
- - - - - -
-
+ + + + +
+ + + + + diff --git a/theme/KO-default/config.php b/theme/KO-default/config.php index 56ccb834..1d12de6f 100644 --- a/theme/KO-default/config.php +++ b/theme/KO-default/config.php @@ -1,63 +1,106 @@ - + +# HTML 기본 색상 설정 +$color['text'] = '#555555'; # TEXT +$color['n1_fg'] = '#999999'; # 사용 불가능 + +# 색상 설정 +$color['nr_bg'] = '#D3DAC3'; # 공지글 배경 +$color['nr_fg'] = '#000000'; # 공지글 글자 +$color['l2_bg'] = '#F5FBE6'; # 보통글 배경 +$color['l2_fg'] = '#000000'; # 보통글 글자 +$color['l3_bg'] = '#D3DAC3'; # 답장글 배경 +$color['l3_fg'] = '#000000'; # 답장글 글자 +$color['l4_bg'] = '#ffffff'; # 검색창 배경 +$color['l4_fg'] = '#555555'; # 검색창 글자 +$color['l4_gu'] = '#555555'; # 검색창 라인 +$color['l5_bg'] = $color['l2_bg']; # 글본문 배경 +$color['l5_fg'] = $color['l2_fg']; # 글본문 글자 + +# 검색한 문자열 색상 +$board[hl] = 'STR'; + +$color['ms_ov'] = '#E3F9AB'; # 마우스 오버 +$color['td_co'] = '#d2691e'; # 오늘 올라온 글 표시 +$color['cp_co'] = '#ffd700'; # 현재 페이지 표시 + +# 미리보기 색상 설정 +$color['p_gu'] = '#FFAE00'; # 미리보기 가이드 라인 +$color['p_bg'] = '#FFFFFF'; # 미리보기 배경 +$color['p_fg'] = '#555555'; # 미리보기 글자 + +# admin page 색상 설정 +$color['b_bg'] = '#FFFFFF'; # 바탕 색상 +$color['t_bg'] = '#FFAE00'; # 제목줄 배경 +$color['t_fg'] = '#FFFFFF'; # 제목줄 글자 +$color['m_bg'] = '#D3DAC3'; # 메뉴칸 배경 +$color['m_fg'] = '#555555'; # 메뉴칸 배경 +$color['d_bg'] = '#F5FBE6'; # 설명칸 배경 +$color['d_fg'] = '#555555'; # 설명칸 배경 + +# 글 리스트 tr 의 높이 설정 +# list table 에서는 image 의 height 로 조정. 예를 들어 +# $lines['height'] = '25'; -# Ʈ ̿ ֱ ڵ -# $lines['design'] ̷ . -# COLSPAN=AA  . ̼ Ʈ colspan -# ߱ list.php ȯ ϰ Ǿ -# ̿Ͽ ׽Ʈ ٶ -# $lines['comment'] comment rows Ǹ -# . COLSPAN=AA ʿ . -#$lines['design'] = '
'; +# 글 리스트들 사이에 디자인을 넣기위한 코드 이설정은 +# 설정으로 이루어 짐. 에는 꼭 COLSPAN="AA" 가 들어가야 함. +# 이설정은 리스트의 colspan 을 맞추기 위해 list.php 에서 변환을 +# 하게 되어 있음 다음의 예제를 이용하여 테스트 해 보기 바람 +#$line_design = '
'; $lines['design'] = ''; -$lines['comment_design'] = '' . - '' . - '' . - ''; +$lines['comment_design'] = ''. + ''. + ''; ############################################################## # Width Configuration ############################################################## # list paget table ratio =================================== -$td_width['no'] = '5%'; # ȣ ʵ ʺ +$td_width['no'] = '5%'; # 번호 필드 너비 -# ʵ ʺ -if ($upload['yesno'] && $cupload['yesno']) $td_width['title'] = '54%'; -else $td_width['title'] = '63%'; +# 제목 필드 너비 +if ($upload['yesno']) $td_width['title'] = '54%'; +else $td_width['title'] = '65%'; -$td_width['name'] = '14%'; # ۾ ʵ ʺ -$td_width['upload'] = '9%'; # ʵ ʺ -$td_width['dates'] = '13%'; # ¥ ʵ ʺ -$td_width['refer'] = '5%'; # ʵ ʺ +$td_width['name'] = '14%'; # 글쓴이 필드 너비 +$td_width['upload'] = '9%'; # 파일 필드 너비 +$td_width['dates'] = '13%'; # 날짜 필드 너비 +$td_width['refer'] = '5%'; # 읽은수 필드 너비 ############################################################## # Field Array Configuration ############################################################## -# Ʈ ʵ Ѵ. -# n -> ۹ȣ -# T -> -# N -> ۾ -# F -> ε -# D -> ۵ ¥ -# R -> +# 글 리스트의 필드 순서를 정의한다. +# n -> 글번호 +# T -> 글제목 +# N -> 글쓴이 +# F -> 업로드 파일 +# D -> 글등록 날짜 +# R -> 읽은 수 # $td_array = 'nTNFDR'; ?> diff --git a/theme/KO-default/default.css b/theme/KO-default/default.css deleted file mode 100644 index 3c33ae9e..00000000 --- a/theme/KO-default/default.css +++ /dev/null @@ -1,491 +0,0 @@ -/* - * User Define CSS - * $Id: default.css,v 1.6 2009-11-16 21:52:47 oops Exp $ - */ - -body { - font-size: 12px; - font-family: ü, GulimChe, "Lucida Console", monospace; - color: #555555; - line-height: 120%; - background-color: #ffffff; - margin: 0px 0px; -} - -td { - font-size: 12px; - font-family: ü, GulimChe, "Lucida Console", monospace; - color: #555555; - line-height: 120%; -} - -a:link, a:visited, a:active { - text-decoration: none; - color: #555555; -} - -a:hover { - text-decoration: underline; - color: #555555; -} - -img { - border: 0; - padding: 0px; - margin: 0px; -} - -input { - font-size: 11px; - font-family: tahoma, sans-serif; - color: #555555; - border-width: 1px; - border-style: solid; - border-color: #555555; - padding-left: 1px; - padding-right: 1px; - background-color: #ffffff; -} - -select { - font-size: 11px; - font-family: tahoma, sans-serif; - color: #555555; - border-width: 1px; - border-style: solid; - border-color: #555555; - background-Color: #ffffff; -} - -textarea { - font-size: 11px; - font-family: ü, GulimChe, "Lucida Console", monospace; - color: #555555; - border-width: 1px; - border-style: solid; - border-color: #555555; - padding-left: 1px; - background-color: #ffffff; - width: 100%; - height: 150px; -} - -.cmtarea { height: 100px; } - -.resizable-textarea .grippie { - height: 14px; - background: #ECE9D6 url(img/grippie.png) no-repeat 100% 100%; - border: 1px solid #DFDBCA; - border-top-width: 0; - cursor: se-resize; -} - -.resizable-textarea { - width: 100% !important; - width: 98%; /* for IE */ -} - -form { display: inline; } - -/* admin td */ -.admin { - font-size: 11px; - font-family: tahoma, sans-serif; - font-weight: bold; - color: #555555; - text-align: right; - vertical-align: bottom; -} - -/* copyright */ -.copy { - font-size: 12px; - font-family: tahoma, sans-serif; - color: #555555; - overflow: hidden; - white-space: nowrap; - text-align: right; -} - -.copylnk { - color: #555555; - font-weight: bold; -} - -/* list table counter / read article number */ -.counter { - font-size: 11px; - font-family: tahoma, sans-serif; - color: #555555; -} - -/* list ȭ title row */ -.ltitle { - color: #ffffff; - font-weight: bold; - text-align: center; - background-color: #a0dc10; -} - -/* read page article title */ -.rtitle { - color: #ffffff; - font-weight: bold; -} - -/* read item */ -.ritem { font-weight: bold; } - -.rbodybg { - background-color: #f5fbe6; - text-align: center; -} - -/* read article body text */ -.rbody { - color: #000000; - font-family: ü, GulimChe, "Lucida Console"; - text-align: left; -} - -/* password td in delete page */ -.delpassfd { - color: #ffffff; - font-weight: bold; -} - -/* Login page */ -/* login title */ -.logtitle { - font-size: 14px; - font-family: tahoma, sans-serif; - color: #ffffff; - font-weight: bold; - background-color: #a0dc10; - text-align: center; -} - -/* login table background */ -.log_bg { - text-align: center; - background-color: #d3dac3; -} - -/* login td */ -.log_td { - overflow: hidden; - white-space: nowrap; - text-align: center; -} - -/* - * JSBoard Internal CSS - */ - -.versionprint { - font-size: 21px; - font-family: tahoma, sans-serif; - font-weight: bold; - color: #a0dc10; - text-align: center; - vertical-align: middle; - font-variant: small-caps; -} - -/* rss link */ -.rss { - color: #999999; - font-weight: bold; -} - -/* Notice on list page */ -/* notice text */ -.notice { - color: #000000; - font-weight: bold; -} - -.noticebg { - background-color: #d3dac3; -} - -/* listkey number */ -.listkey { - color: red; - font-weight: bold; -} - -/* list row */ -.row0 { background-color: #f5fbe6; } -.rowbg0 { color: #f5fbe6; } -.row1 { background-color: #d3dac3; } -.rowbg1 { color: #d3dac3; } -.rowOn { background-color: #e3f9ab; } - -.rownum { - color: #000000; - text-align: right; - overflow: hidden; - white-space: nowrap; -} -.rowtitle { color: #000000; } -.rowcomment { - color: #000000; - font-size: 9px; - font-family: tahoma, sans-serif; -} -.rowcommentbold { - color: #000000; - font-size: 9px; - font-family: tahoma, sans-serif; - font-weight: bold; -} -.rowname { color: #000000; text-align: right; } -.rowdate { - color: #000000; - text-align: right; - overflow: hidden; - white-space: nowrap; -} -.rownewdate { color: #d2691e; } -.rowrefer { color: #000000; text-align: right; } -.rowupload { text-align: center; } - -/* article preview box sytle */ -div.preview { - position: absolute; - z-index: 50; - width: 260px; - visibility: hidden; -} -div.previewload { - padding: 5px 5px 5px 5px; - border: 1px #a0dc10 solid; - background-color: #ffffff; - color: #555555; - width: 360px; -} - -/* list ϴ page link */ -.fast { - font-size: 10px; - font-family: tahoma, sans-serif; - color: #555555; -} - -/* list ϴ sql time */ -.sqltime { - font-size: 11px; - font-family: tahoma, sans-serif; - color:#555555; -} - -.fastem { - color: #ffd700; - font-weight: bold; -} - -/* list / read menu */ -.menus { - color: #555555; -} -.menusdisable { - color: #999999; -} - -/* if admin / logout link is text */ -.admintext { color: #555555; } - -/* no search message */ -.narticle { - font-size: 22px; - font-family: ü, GulimChe, "Lucida Console", monospace; - font-weight: bold; - color: #000000; -} -.narticlebg { - background-color: #f5fbe6; - text-align: center; -} - -/* comment table */ -/* comment header message */ -.c_header { - font-size: 10px; - font-family: tahoma, sans-serif; - font-weight: bold; -} - -/* comment td */ -.c_td { - overflow: hidden; - white-space: nowrap; -} - -/* comment context */ -.c_text { - white-space: pre; -} - -/* comment user name */ -.c_user { - font-weight: bold; -} - -/* comment date */ -.c_date { - font-size: 11px; - font-family: tahoma, sans-serif; -} - -/* Comment input table */ -/* comment whole guide */ -.ci_table { - background-color: #d3dac3; -} - -/* Detail Search div */ -/* guide table */ -.ds_table { - background-color: #f5fbe6; - text-align: center; -} - -/* each td */ -.ds_td { - overflow: hidden; - white-space: nowrap; - text-align: left; -} - -/* search feild */ -.ds_field { - font-family: tahoma, sans-serif; -} - -/* Conjunction article list in read page */ -.cn_seperate { - background-image: url(../../images/dotline.gif); - text-align: center; -} - -/* attach file name */ -.attachfn { - color: #000000; -} -/* missing attach file name */ -.attachfn_m { - color: red; - font-weight: bold; -} - -/* password input box */ -.passbox { - font-size: 10px; - font-family: tahoma, sans-serif; -} - -/* register ip */ -.regip { - color: #000000; -} - -/* Whois CSS */ -.whois_tel { - color: #a0dc10; - font-weight: bold; -} - -.whois_addr { - color: #d3dac3; - font-weight: bold; -} - -.whois_net { - color: red; - font-weight: bold; -} - -/* Error popup window */ -.err_bg { - background-color: #d3dac3; -} -.err_fg { - background-color: #ffffff; - color: #555555; -} - -/* User Registration */ -.exttitle { - font-size: 15pt; - font-family: tahoma, sans-serif; - font-weight: bold; - color: #a0dc10; -} - -.ext_comment { - background-color: #d3dac3; - color: #555555; -} - -.ext_field_nb { - background-color: #d3dac3; - color: #555555; - font-weight: bold; -} -.ext_field_ib { background-color: #f5fbe6; } - -/* Search word hilighting */ -.hilight { - color: #6d7bc9; - font-weight: bold; - text-decoration: underline; -} - -/* code block */ -.jsCodeBlock { - border: 1px dotted #a0dc10; - background-color: #dedede; - margin: 10px 10px; - padding: 10px 10px; -} - -/* Quote block */ -blockquote { - background: #ebebeb none 6px 8px no-repeat; - background-image: url("../../images/quote.gif"); - border: 1px solid #dbdbdb; - font-size: 1em; - margin: 0.5em 1px 0 25px; - overflow: hidden; - padding: 5px; -} - -blockquote blockquote { - /* Nested quotes */ - background-color: #bababa; - font-size: 1em; - margin: 0.5em 1px 0 15px; -} - -blockquote blockquote blockquote { - /* Nested quotes */ - background-color: #e4e4e4; -} - -blockquote cite { - /* Username/source of quoter */ - font-style: normal; - font-weight: bold; - margin-left: 20px; - display: block; - font-size: 0.95em; -} - -blockquote cite cite { - font-size: 1em; -} - -blockquote.uncited { - padding-top: 25px; -} diff --git a/theme/KO-default/delete.template b/theme/KO-default/delete.template index d0e4f771..cc7774ca 100644 --- a/theme/KO-default/delete.template +++ b/theme/KO-default/delete.template @@ -1,95 +1,192 @@ + + + + + + + + + + + +<?php echo get_title()?> - Jsboard <?php echo $board['ver']?> + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +\n/i","\\0",$list['title']); +?> + + + + + + + +
+ +>> Delete article +
+No. + +
+ + + + + + + + + + + + + + + + + + +
+
+등록     +조회
+이름     +파일 {$list['attach']}" ?>
+
+
+ + + +
+ + + + + + + + +
+
+ + + + + + +
+
+ + + + + + + + + +
+ +[ 목록 | 이전 ] +
+ + +  + + +
+ + + + + - - - - - - - - - - -\n/i","\\0\"\"",$list['title']); ?> - - - - - - - -
>> Delete article
-No. - -
- - - - - - - - - - - - - - - - - - -
-
-     -ȸ
-̸     - {$list['attach']} -EOF; -?>
-
-
- - - -
- - - - - - - - -
-
- - - - - - -
-
- - - - - - - - - -
- -[ | ] -
- -  - -
-
+ +
+ + + + + diff --git a/theme/KO-default/edit.template b/theme/KO-default/edit.template index d79b5378..85ddf72d 100644 --- a/theme/KO-default/edit.template +++ b/theme/KO-default/edit.template @@ -1,178 +1,276 @@ - + + + + - - + + + + - + +<?php echo get_title()?> - Jsboard <?php echo $board['ver']?> + + + + + + + + -
onsubmit="return registCheck();"> - - - - - + + + + + + +
+> +
>> Edit article
+ + + + + - - - + + + - - - -
>> Edit article
- - -
+ + +
+ + + + - - - - - - - - +


+ + + + + + + - - + + - - - - + + + + - - + + - - - - - + + + + EOF; } ?> - - + + - - - - - + + + + EOF; } ?> - + - - - - - + + + + EOF; } if ($upload['yesno'] && $cupload['yesno'] && $noup != 1) { echo << - - - - + + + + EOF; } ?> - - + + - - - - + + + + - + - - + + -н - + + EOF; } ?> - + - - - -


̸ tabindex="1">
이름 tabindex="1">
메일
Ȩ
홈페이지
- -{$list['bofile']} -{$list['bofile']} - $hfsize     - ϻ -
파일 + +{$list['bofile']} +{$list['bofile']} - $hfsize     + 파일삭제 +
ϼ - - -
파일수정 + + +
제목
+패스워드 $passment - -

+ +
+ + - - -
+ + +
- - +
+ + -
- - + + - + - - + + -
+
- - - + + + - - -
- - - - - -
-
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/theme/KO-default/ext.template b/theme/KO-default/ext.template new file mode 100644 index 00000000..0ac41916 --- /dev/null +++ b/theme/KO-default/ext.template @@ -0,0 +1,97 @@ + + + + + + + + +<?php echo $print['head']?> - Jsboard <?php echo $board['ver']?> + + + + + + + + + diff --git a/theme/KO-default/img/at.gif b/theme/KO-default/img/at.gif deleted file mode 100644 index 538f817f..00000000 Binary files a/theme/KO-default/img/at.gif and /dev/null differ diff --git a/theme/KO-default/img/bnw-shape.gif b/theme/KO-default/img/bnw-shape.gif deleted file mode 100644 index a1d25bcf..00000000 Binary files a/theme/KO-default/img/bnw-shape.gif and /dev/null differ diff --git a/theme/KO-default/img/bnw.gif b/theme/KO-default/img/bnw.gif deleted file mode 100644 index 63137aac..00000000 Binary files a/theme/KO-default/img/bnw.gif and /dev/null differ diff --git a/theme/KO-default/img/board_no.gif b/theme/KO-default/img/board_no.gif index 9ee4f105..9734f5a3 100644 Binary files a/theme/KO-default/img/board_no.gif and b/theme/KO-default/img/board_no.gif differ diff --git a/theme/KO-default/img/delete_title.gif b/theme/KO-default/img/delete_title.gif new file mode 100644 index 00000000..b4eb974b Binary files /dev/null and b/theme/KO-default/img/delete_title.gif differ diff --git a/theme/KO-default/img/dot.gif b/theme/KO-default/img/dot.gif deleted file mode 100644 index 34b97d93..00000000 Binary files a/theme/KO-default/img/dot.gif and /dev/null differ diff --git a/theme/KO-default/img/dotted_gray.gif b/theme/KO-default/img/dotted_gray.gif deleted file mode 100644 index 8342733e..00000000 Binary files a/theme/KO-default/img/dotted_gray.gif and /dev/null differ diff --git a/theme/KO-default/img/edit_title.gif b/theme/KO-default/img/edit_title.gif new file mode 100644 index 00000000..5bbaa70e Binary files /dev/null and b/theme/KO-default/img/edit_title.gif differ diff --git a/theme/KO-default/img/icon_over.gif b/theme/KO-default/img/icon_over.gif index ce9eef93..4e2f8080 100644 Binary files a/theme/KO-default/img/icon_over.gif and b/theme/KO-default/img/icon_over.gif differ diff --git a/theme/KO-default/img/login.gif b/theme/KO-default/img/login.gif deleted file mode 100644 index 858d9515..00000000 Binary files a/theme/KO-default/img/login.gif and /dev/null differ diff --git a/theme/KO-default/img/reply_title.gif b/theme/KO-default/img/reply_title.gif new file mode 100644 index 00000000..49118cf3 Binary files /dev/null and b/theme/KO-default/img/reply_title.gif differ diff --git a/theme/KO-default/img/write_title.gif b/theme/KO-default/img/write_title.gif new file mode 100644 index 00000000..40208df4 Binary files /dev/null and b/theme/KO-default/img/write_title.gif differ diff --git a/theme/KO-default/index.template b/theme/KO-default/index.template deleted file mode 100644 index 58b2b57e..00000000 --- a/theme/KO-default/index.template +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - -<?=get_title()?> - JSBoard <?=$board['ver']?> - - - - - - - -> -
- - - - - - - - - - - - - -
- - - - - - - - - - -
-Copyleft -1999- by - -JSBoard Open Project
-Theme Designed by -IDOO -All right reserved -
- - - -
- - - - - - - diff --git a/theme/KO-default/list.template b/theme/KO-default/list.template index 128fe2aa..18059239 100644 --- a/theme/KO-default/list.template +++ b/theme/KO-default/list.template @@ -1,149 +1,251 @@ + + + + + + + + + + + +<?php echo get_title()?> - Jsboard <?php echo $board['ver']?> + + + + + + + + + + + + + + + + + + - - - + + + - + - - - - - - - + + + + + + + + + - - - - - - - +
+ +
>>  
+ + + + + + +
>>  
-
- - + + - - - - - - + +
No.̸
+ + + + - - + + -\n + EOF; + } ?> - - - + + + - + - -
No.제목이름 파일¥ȸ
날짜조회
+ +
- + - - + + - - - + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - -
>> Fast Page Link : -
- -
- - - - - - -
- - - -
- -> -ǥ -
- - - - -
- -
-
- -
- - - - -
- - -'> - -
- -
+ + + + + + + + + + + + + + + + + +
>> Fast Page Link : +
+ +
+ + + + + + +
+ + + +
+ + style="border:1px solid ;background-Color:"> +정규표현식 +
+ + + + +
+ +
+
+ +
+ + + + +
+ + + +' +> + + +
+ +
+ + + + + + + + + + + + + diff --git a/theme/KO-default/login.template b/theme/KO-default/login.template index da9c07da..06d52138 100644 --- a/theme/KO-default/login.template +++ b/theme/KO-default/login.template @@ -1,96 +1,131 @@ - - - - -JSBoard <?=$board['ver']?> Login page - - - + + + + + +JSBoard <?php echo $board['ver']?> Login page + + + + - - - - -
+ + + +
-
- - - - + +
+ + + - - + - -
-
+
+
- - - - + + + +
+ + + + - - - - - - + + + +
+ + + + + + + - - - - + + + + - - - - -
Password - - -
-
User
User
Password
Password
-Session Reset - -
-
+
+Session Reset + +
+
-
- - - - - - - - +
+ + + + + + + + -
- - +
+ + -
+ + - - + diff --git a/theme/KO-default/mail.template b/theme/KO-default/mail.template index e7c0b16b..df37ae4b 100644 --- a/theme/KO-default/mail.template +++ b/theme/KO-default/mail.template @@ -1,21 +1,18 @@ - - - -JSBoard Reply Notice - + - + - - 
-
- - +
+ + 
+
+ + +
- - -
-JSBoard Reply Notice -
+ + +
+ +JSBoard Reply Notice +
- - +
-
+
+
-
+

 
-$_('html_msg')
+{$langs['html_msg']}
 
 Server Name       : $servername$nofm
-
-
+
+
- - -
+ + +
- - -
-
+
+
-
+

 
-$_('u_name')              : {$rmail['name']}
+{$langs['u_name']}              : {$rmail['name']}
 $addressinfo
-$_('reg')              : $year $day $ampm $hms
-
-
- - - -
- - - +
-
-
+{$langs['a_t13']}              : $year $day $ampm $hms
+
+
+ + + +
+ + + -
+

 {$rmail['text']}
-
-
-
- - - -
- -Scripted by JSBoard Open Project - -
- -
- - -
-
-
- - + +
+ + + +
+ +Scripted by JSBoard Open Project + +
+ +
+
+ +
+
+
+ + diff --git a/theme/KO-default/read.template b/theme/KO-default/read.template index 5aaeaae9..bce4e5ee 100644 --- a/theme/KO-default/read.template +++ b/theme/KO-default/read.template @@ -1,189 +1,343 @@ + + + + + + + + + + + +<?php echo get_title()?> - Jsboard <?php echo $board['ver']?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +\n/i","\\0",$list['title']); ?> + + + + + + + +
>> Read article 
+TITLE: + +
+ + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - -\n/i", "\\0\"\"", $list['title']); ?> - - - - - - - -
>> Read article
-TITLE: - -
- - - - - - - - - - - - - - - - - -
-
-     -ȸ
-̸     - {$list['attach']}" : "" ?>
-
-
- - - -
- - - - - - - - - + + +
-
- - - - - - + + + + + + + + +
+
+등록     +조회
+이름     +파일 {$list['attach']}" ?>
+
+
+ + + +
+ + + + + + + + + -
+
+ + + + + +
- - - -
- - -
- - - - - -
-
->> - - - -
- - - - - - - - - - - - -
-
- - - - - - - - - - +
- -
- - - - - - -
- - - -
- -> -ǥ -
- - - - + + + +
+ + +

+ + + + + +
+
+>> + + + +
+ + + + + + + + + + + + +
+ 
+ + + + + + + + + + - - -
+ + + + + + + + +
+ + + +
+ + style="border:1px solid ;background-Color:"> +정규표현식 +
+ + + + - -
- -Page Loading [ Sec ] -SQL Time [ Sec ]
-
- -
- - - - -
- - - - -
- -
+ +

+ +Page Loading [ Sec ] +SQL Time [ Sec ]
+
+ +
+ + + + +
+ + + +'> + + +
+ +
+ + + + + + +
+ + + + + diff --git a/theme/KO-default/reply.template b/theme/KO-default/reply.template index 593e0801..a754636b 100644 --- a/theme/KO-default/reply.template +++ b/theme/KO-default/reply.template @@ -1,175 +1,272 @@ - + + + + - - + + + + - + +<?php echo get_title()?> - Jsboard <?php echo $board['ver']?> + + + + + + + + -
onsubmit="return registCheck();"> - - - - - + + + + + + +
+> +
>> Write reply article
+ + + + - - - + + + - - - -
>> Write reply article
- - -
+ + +
+ + + + - - - - - - - - +


+ + + + + + + - - + + - - - - + + + + - - + + - - - - - + + + + EOF; } ?> - - + + - - - - - + + + + EOF; } ?> - + - - - - - + + + + EOF; } elseif(!$upload['yesno'] && $cupload['yesno']) { echo << - - - - + + + + EOF; } ?> - - - + + + - - - - + + + + - + - - + + -н - + + EOF; } ?> - + - - - -


̸ tabindex="1">
이름 tabindex="1">
메일
Ȩ
홈페이지
- - -
파일 + + +
" . $_('upload') . "
파일{$langs['upload']}
" tabindex="5">
제목" tabindex="5">
- +패스워드 + {$pcaptcha} -

+ +
+ + - - -
+ + +
- - +
+ + -
- + - + - + - + -
+
- - - - + + + + - - -
- - - - - -
+ + +
+ + + + + +
-
+ + + + + + + + + + + + + diff --git a/theme/KO-default/write.template b/theme/KO-default/write.template index bd2d704b..a592e387 100644 --- a/theme/KO-default/write.template +++ b/theme/KO-default/write.template @@ -1,171 +1,270 @@ - + + + + - - + + + + - + +<?php echo get_title()?> - Jsboard <?php echo $board['ver']?> + + + + + + + + - - + + + + +
+
> + + + + + - onsubmit="return registCheck();"> -
>> Write new article
- - - - - - - - + + + - - - -
>> Write new article
- - -
+ + +
+ + + + - - - - - - - - +


+ + + + + + + - - + + - - - - + + + + - - + + - - - - -END; + + + + +EOF; } ?> - - + + - - - - -END; + + + + +EOF; } ?> - + - - - - - + + + + EOF; } elseif(!$upload['yesno'] && $cupload['yesno']) { echo << - - - - + + + + EOF; } ?> - + - - - - + + + + - + - - + + -н - + -END; + +EOF; } ?> - + - - - -


̸ tabindex="1">
이름 tabindex="1">
메일
Ȩ
홈페이지
- - -
파일 + + +
" . $_('upload') . "
파일{$langs['upload']}
제목
- +패스워드 + {$pcaptcha} -

+ +
+ + - - -
+ + +
- - +
+ + -
- + - + - - + + -
+
- - - + + + + + + +
+ + + + + +
+ + + - - -
- - - - - -
-
+ + + + +
+ + + + + diff --git a/theme/common/lib.js b/theme/common/lib.js deleted file mode 100644 index bf92aa8e..00000000 --- a/theme/common/lib.js +++ /dev/null @@ -1,203 +0,0 @@ -/* - * $Id: lib.js,v 1.6 2009-11-16 21:52:47 oops Exp $ - */ - -function navInit () { - this.name = ''; - this.version = ''; - this.core = 'Mozilla'; -} - -function browserType() { - var navs = navigator.userAgent; - var navsver_t = ''; - var navsver = ''; - nav = new navInit; - - if ( navs.indexOf('MSIE') != -1 ) { - nav.name = 'MSIE'; - navsver_t = navs.search(/MSIE ([^;]+)/); - navsver = RegExp.$1; - nav.core = 'MSIE'; - } else if ( navs.indexOf('Firefox') != -1 ) { - nav.name = 'Firefox'; - navsver_t = navs.search(/([^\/]+)$/); - navsver = RegExp.$1; - nav.core = 'Mozilla'; - } else if ( navs.indexOf('Thunderbird') != -1 ) { - nav.name = 'Thunderbird'; - navsver_t = navs.search(/([^\/]+)$/); - navsver = RegExp.$1; - nav.core = 'Mozilla'; - } else if ( navs.indexOf('Safari') != -1 ) { - nav.name = 'Safari'; - navsver_t = navs.search(/([^\/]+)$/); - navsver = RegExp.$1; - } else if ( navs.indexOf('Opera') != -1 ) { - nav.name = 'Opera'; - navsver_t = navs.search(/Opera\/([0-9.]+)/); - navsver = RegExp.$1; - } else if ( navs.indexOf('Konqueror') != -1 ) { - nav.name = 'Konqueror'; - navsver_t = navs.search(/Konqueror\/([0-9.]+)/); - navsver = RegExp.$1; - } else if ( navs.indexOf('Mozilla') != -1 ) { - /* over Netscape 6 */ - if ( navs.indexOf('Netscape') != -1 ) { - nav.name = 'Netscape'; - navsver_t = navs.search(/([^\/]+)$/); - navsver = RegExp.$1; - /* Mozilla comportable browser */ - } else if ( navs.indexOf('Gecko') != -1 ) { - nav.name = 'Mozilla'; - if ( navs.match(/rv:/) ) { - navsver_t = navs.search(/rv:*([^)]+)\)/); - } else { - navsver_t = navs.search(/ (m[0-9]+)/); - } - navsver = RegExp.$1; - /* Nescape Browser */ - } else { - nav.name = 'Netscape'; - navsver_t = navs.search(/Mozilla\/([0-9.]+)/); - navsver = RegExp.$1; - nav.core = 'Netscape'; - } - } else { - nav.name = 'Netscape'; - nav.core = 'Netscape'; - } - - nav.version = navsver.replace(/[ ]+\([^)]+\)$/g,""); - return nav; -} -var nav = browserType(); - -function newwinInit() { - this.child = null; - this.count = 0; -} - -ns = new newwinInit; - -function new_windows(addr,tag,scroll,resize,wid,hei) { - if (self.screen) { - width = screen.width - height = screen.height - } else if (self.java) { - var def = java.awt.Toolkit.getDefaultToolkit(); - var scrsize = def.getScreenSize(); - width = scrsize.width; - height = scrsize.width; - } - - var chkwid = width - 10 - var chkhei = height - 20 - - if (chkwid < wid) { - wid = width - 5 - if(chkhei < hei) { hei = height - 60 } - scroll = 'yes' - } - - if (chkhei < hei) { - if(chkwid < wid) { wid = width - 5 } - hei = height - 60 - scroll = 'yes' - } - - var childname = 'JSBoard' + ns.count++; - // if child window is opend, close child window. - if(ns.child != null) { - if(!ns.child.closed) { ns.child.close(); } - } - ns.child = window.open(addr,tag,'left=0, top=0, toolbar=0,scrollbars=' + scroll + ',status=0,menubar=0,resizable=' + resize + ',width=' + wid + ',height=' + hei +''); - // if child window load, change window focus topest - ns.child.focus(); - return; -} - -function sendform (user, addr, name) { - var _nf; - var _nb; - - _nf = name ? name + " <" : ''; - _nb = name ? ">" : ''; - - location.href="mailto:" + _nf + user + "@" + addr + _nb; -} - -function onMouseColor(id,classname) { - document.getElementById(id).className = classname; -} - -function InputFocus(id) { - document.getElementById(id).focus(); -} - -function trim(_str) { - var result; - - if ( ! _str ) { - return(""); - } - - result = _str.replace(/^\s+/g, ''); - result = _str.replace(/\s+$/g, ''); - - return(result); -} - -function registCheck() { - doc = document; - - id = trim(doc.getElementById('name').value); - - if ( id.length < 1 ) { - alert('Please writer\'s name is required'); - return false; - } - - title = trim(doc.getElementById('title').value); - if ( title.length < 1 ) { - alert('Please subject of article is required'); - return false; - } - passwd = trim(doc.getElementById('passwd').value); - if ( passwd.length < 1 ) { - alert('Please password of article is required'); - return false - } - - return true; -} - -function location_ref(url) { - var fakeLink = document.createElement ("a"); - if (typeof(fakeLink.click) == 'undefined') { - location.href = url; // sends referrer in FF, not in IE - } else { - fakeLink.href = url; - document.body.appendChild(fakeLink); - fakeLink.click(); // click() method defined in IE only - } -} - -function browserSize (type) { - if (typeof(window.innerWidth) == 'number') { - //Non-IE - width = window.innerWidth; - height = window.innerHeight; - } else if (document.documentElement && - (document.documentElement.clientWidth || document.documentElement.clientHeight)) { - //IE 6+ in 'standards compliant mode' - width = document.documentElement.clientWidth; - height = document.documentElement.clientHeight; - } else if( document.body && (document.body.clientWidth || document.body.clientHeight)) { - //IE 4 compatible - width = document.body.clientWidth; - height = document.body.clientHeight; - } - - return (type == 'width') ? width : height; -} diff --git a/theme/common/preview.js b/theme/common/preview.js deleted file mode 100644 index 4ccaf053..00000000 --- a/theme/common/preview.js +++ /dev/null @@ -1,123 +0,0 @@ -/* - * $Id: preview.js,v 1.5 2009-11-16 21:52:47 oops Exp $ - */ - -function previewInit() { - this.x = 0; - this.y = 0; - this.snow = 0; - this.sw = 0; - this.cnt = 0; - this.dir = 1; - this.offsetx = 3; - this.offsety = 3; - this.width = 260; - this.height = 50; - - try { - if ( ! nav ) { nav = browserType (); } - } catch (e) { - nav = browserType (); - } -} - -pv = new previewInit; -if ( nav.core == 'Netscape' ) { - over = document.overDiv; -} else { - over = document.getElementById('overDiv'); -} -document.onmousemove = mouseMove; -if ( nav.core != 'MSIE' ) { - if (document.addEventListener) { - document.addEventListener("move", mouseMove, false); - } else { - document.captureEvents(Event.MOUSEMOVE); - } -} - -function drs(text, title) { dts(1,text); } - -function nd() { - if ( pv.cnt >= 1 ) { pv.sw = 0 }; - if ( pv.sw == 0 ) { - pv.snow = 0; - hideObject(over); - } else { pv.cnt++; } -} - -function dts(d,text) { - txt = "
" + - text + "<\/div>"; - layerWrite(txt); - pv.dir = d; - disp(); -} - -function disp() { - if (pv.snow == 0) { - if (pv.dir == 2) { moveTo(over,pv.x+pv.offsetx-(pv.width/2),pv.y+pv.offsety); } // Center - if (pv.dir == 1) { moveTo(over,pv.x+pv.offsetx,pv.y+pv.offsety); } // Right - if (pv.dir == 0) { moveTo(over,pv.x-pv.offsetx-pv.width,pv.y+pv.offsety); } // Left - showObject(over); - pv.snow = 1; - } -} - -function mouseMove(e) { - if ( nav.core == 'MSIE' ) { - pv.x = event.x + document.body.scrollLeft + 10 - pv.y = event.y + document.body.scrollTop - if ( pv.x + pv.width - document.body.scrollLeft > document.body.clientWidth ) pv.x = pv.x - pv.width - 25; - if ( pv.y + pv.height - document.body.scrollTop > document.body.clientHeight ) pv.y = pv.y - pv.height; - } else if ( nav.core == 'Mozilla' ) { - pv.x = ( (e.pageX)+pv.width-window.pageXOffset > window.innerWidth ) ? (e.pageX+10)-pv.width-10 : e.pageX+10; - pv.y = ( (e.pageY)+pv.height-self.pageYOffset > window.innerHeight ) ? (e.pageY)-pv.height+5 : e.pageY; - } else { - pv.x=e.pageX+10; - pv.y=e.pageY; - if (pv.x+pv.width-self.pageXOffset > window.innerWidth) pv.x=pv.x-pv.width-5; - if (pv.y+pv.height-self.pageYOffset > window.innerHeight) pv.y=pv.y-pv.height; - } - - if (pv.snow) { - if (pv.dir == 2) { moveTo(over,pv.x+pv.offsetx-(pv.width/2),pv.y+pv.offsety); } // Center - if (pv.dir == 1) { moveTo(over,pv.x+pv.offsetx,pv.y+pv.offsety); } // Right - if (pv.dir == 0) { moveTo(over,pv.x-pv.offsetx-pv.width,pv.y+pv.offsety); } // Left - } -} - -function cClick() { hideObject(over); pv.sw=0; } -function layerWrite(txt) { - if ( nav.core == 'Netscape' ) { - var lyr = document.overDiv.document; - lyr.write(txt); - lyr.close(); - } else { - over.innerHTML = txt; - } -} -function showObject(obj) { - if ( nav.core == 'Netscape' ) { - obj.visibility = "show" - } else { - obj.style.visibility = "visible"; - } -} -function hideObject(obj) { - if ( nav.core == 'Netscape' ) { - obj.visibility = "hide" - } else { - obj.style.visibility = "hidden"; - } -} -function moveTo(obj,xL,yL) { - if ( nav.core == 'Netscape' ) { - obj.left = xL; - obj.top = yL; - } else { - obj.style.left = xL; - obj.style.top = yL; - } -} - diff --git a/theme/common/textarea.js b/theme/common/textarea.js index 95861f65..e619879b 100644 --- a/theme/common/textarea.js +++ b/theme/common/textarea.js @@ -1,4 +1,4 @@ -// $Id: textarea.js,v 1.2 2008-12-12 19:40:14 oops Exp $ +// $Id: textarea.js,v 1.4 2008/12/23 21:16:49 oops Exp $ // $origId: textarea.js,v 1.9 2006/04/14 13:48:56 killes Exp $ // from drupal // many functions are imported from drupal.js to eliminate dependency @@ -12,6 +12,25 @@ if (document.jsEnabled == undefined) { !document.getElementById); } +function browserSize (type) { + if (typeof(window.innerWidth) == 'number') { + //Non-IE + width = window.innerWidth; + height = window.innerHeight; + } else if (document.documentElement && + (document.documentElement.clientWidth || document.documentElement.clientHeight)) { + //IE 6+ in 'standards compliant mode' + width = document.documentElement.clientWidth; + height = document.documentElement.clientHeight; + } else if( document.body && (document.body.clientWidth || document.body.clientHeight)) { + //IE 4 compatible + width = document.body.clientWidth; + height = document.body.clientHeight; + } + + return (type == 'width') ? width : height; +} + function textarea_cols(obj) { if ( /%/.test(obj.style.width) ) { if ( /%/.test(tarea_width) ) { width = browserSize('width'); } diff --git a/user.php b/user.php index 253c7595..306e9da1 100644 --- a/user.php +++ b/user.php @@ -1,129 +1,124 @@ window.close()"; + if(!$chg['check']) move_page($print['dpage'],0); + if($_SESSION[$jsboard]['pos'] == 1 && $chg['check']) { + echo ""; exit; } } -$board['headpath'] = @file_exists ("data/$table/html_head.php") ? "data/$table/html_head.php" : "html/nofile.php"; -$board['tailpath'] = @file_exists ("data/$table/html_tail.php") ? "data/$table/html_tail.php" : "html/nofile.php"; +$board['headpath'] = @file_exists("data/$table/html_head.php") ? "data/$table/html_head.php" : "html/nofile.php"; +$board['tailpath'] = @file_exists("data/$table/html_tail.php") ? "data/$table/html_tail.php" : "html/nofile.php"; $chjsboard = $_SESSION[$jsboard]['id']; $where = ($_SESSION[$jsboard]['pos'] == 1 && $check) ? "no = '$no'" : "nid = '$chjsboard'"; -$result = sql_query ("SELECT * FROM userdb WHERE $where", $c); -$row = sql_fetch_array($result); -sql_free_result($result); +$result = sql_query("SELECT * FROM userdb WHERE $where", $c); +$row = sql_fetch_array($result,$c); +sql_free_result($result,$c); sql_close($c); $a_time[] = microtime(); $sqltime = get_microtime($a_time[0], $a_time[1]); $print['id'] = strtoupper($row['nid']); -if ( $board['width'] == '100%' ) { $board['width'] = '90%'; } +if($board['width'] == "100%") { $board['width'] = "90%"; } -if ( $row['position'] == 1 ) $row['status'] = $_('u_le1') . " " . $_('u_le2'); -elseif ( check_admin ($row['nid']) ) $row['status'] = $_('u_le2'); -else $row['status'] = $_('u_le3'); +if($row['position'] == 1) $row['status'] = "{$langs['u_le1']} {$langs['u_le2']}"; +elseif(check_admin($row['nid'])) $row['status'] = $langs['u_le2']; +else $row['status'] = $langs['u_le3']; -$sform = form_size (10); -$lform = form_size (25); +$sform = form_size(10); +$lform = form_size(25); -if ( ! $check ) $backbutton = ""; -if ( $agent['tx'] ) $backbutton = ""; +if(!$check) $backbutton = ""; +if($agent['tx']) $backbutton = ""; $print['head'] = get_title(); $print['body'] = " -
-

-{$print['id']} User Administartion - -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - + +
" . $_('u_nid') . "{$row['nid']}" . $_('u_stat') . "{$row['status']}
" . $_('u_name') . "" . $_('u_pass') . "
" . $_('u_email') . "
" . $_('u_url') . "
+
+


+{$print['id']} User Administartion + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + - -
{$langs['u_nid']}{$row['nid']}{$langs['u_stat']}{$row['status']}
{$langs['u_name']}{$langs['u_pass']}
{$langs['u_email']}
{$langs['u_url']}
$backbutton - - - - - -
- + + + + + +

+ "; $p_time[] = microtime(); $print['pagetime'] = get_microtime($p_time[0],$b_time[1]); meta_char_check($print['theme'], 1, 1); -$bodyType = 'ext'; -include "theme/{$print['theme']}/index.template"; +include "theme/{$print['theme']}/ext.template"; ?> diff --git a/utils/installation b/utils/installation deleted file mode 100644 index f22bd208..00000000 --- a/utils/installation +++ /dev/null @@ -1,749 +0,0 @@ -#!/bin/sh -# $Id: installation,v 1.10 2009-11-18 14:45:48 oops Exp $ - -source ./lib/install-config -source ./lib/commonlib -queryReturn="./queryRet.$$" -sedTemp="./sedTmp.$$" -t= - -clear -echo -n $yellow -echo "###############################################################################" -echo "# JSBoard Installer v2.1 #" -echo "# Scripted By JSBoard Open Project #" -echo "###############################################################################" -echo -n $end -echo - -en="usascii" -ko="euc-kr" - -printStep "STEP 1. Language Check" -echo "----------------------" -echo -echo "Select your installation language : " -echo " 1. English" -echo " 2. Korean" -echo -n "Choise (Default : 1) : " -read language - -[ -z "${language}" ] && language=1 - -_lang= -while [ -z "${_lang}" ] -do - case "${language}" in - 1) _lang="en" ;; - 2) _lang="ko" ;; - esac - - if [ -z "${_lang}" ]; then - echo -n "Choise (Default : 1) : " - read language - fi -done - -# include language pack -echo $LANG | grep -i "utf[-]\?8" >& /dev/null -if [ $? -eq 0 ]; then - eval "c_lang=\$${_lang}" - if [ ! -f "./lib/lang/installation-${_lang}.conf.utf8" ]; then - cat ./lib/lang/installation-${_lang}.conf | iconv -f ${c_lang} -t utf-8 > \ - ./lib/lang/installation-${_lang}.conf.utf8 - fi - source ./lib/lang/installation-${_lang}.conf.utf8 -else - source ./lib/lang/installation-${_lang}.conf -fi - -me=$(whoami) - -if [ "${me}" != "root" ]; then - echo - printf "${S1_MSG_1}" $me - read priv - - case "${priv}" in - Y|y) priv=y;; - N|n) priv=n;; - *) priv=y - esac - - if [ "${priv}" = "y" ]; then - echo - echo "${S1_MSG_2}" - exit 0 - fi -fi -echo - - -# -# STEP 2. Directory Creating -# - - -printStep "${S2_MSG_1}" -printColor_n "${S2_LIN_1}" "white" -echo - -res=0 -echo -n "${S2_MSG_2}${mvcol}" -printDot 3 -[ -z "${t}" ] && createDir "../data" -res=$? -[ -n "${t}" ] && res=0 -[ $res -eq 0 ] && onsuccess || onfailure - -res=0 -echo -n "${S2_MSG_3}${mvcol}" -printDot 3 -[ -z "${t}" ] && createDir "../config" -res=$? -[ -n "${t}" ] && res=0 -[ $res -eq 0 ] && onsuccess || onfailure - -res=0 -echo -n "${S2_MSG_4}${mvcol}" -printDot 3 -[ -z "${t}" ] && createDir "../config/jsSessTMP" -res=$? -[ -n "${t}" ] && res=0 -[ $res -eq 0 ] && onsuccess || onfailure -echo - - -# -# STEP 3. Database Configuration -# -printStep "${S3_MSG_1}" -printColor_n "${S3_LIN_1}" "white" -echo - -echo "${S3_MSG_2}" -echo " 1. MySQL 3.2" -echo " 2. MySQL 4.0" -echo " 3. Over MySQL 4.1" -echo " 4. PostgreSQL 7/8" -echo " 5. SQLIte" -printf "${MSG_CHOISE}" "3" -read sdb - -[ -z "${sdb}" ] && sdb=3 - -while [ -z "${database_type}" ] -do - case "${sdb}" in - 1) - database_type="mysql3" - database_tname="MySQL" - database_troot="root" - database_client=${mysql_client} - ;; - 2) - database_type="mysql4" - database_tname="MySQL" - database_troot="root" - database_client=${mysql_client} - ;; - 3) - database_type="mysql41" - database_tname="MySQL" - database_troot="root" - database_client=${mysql_client} - ;; - 4) - database_type="pgsql" - database_tname="PostgreSQL" - database_troot="pgsql" - database_client=${pgsql_client} - ;; - 5) - database_type="sqlite" - database_tname="SQLite" - database_client=${sqlite_client} - ;; - esac - - if [ -z "${database_type}" ]; then - printf "${MSG_CHOISE}" "2" - read sdb - fi -done -echo - -if [ "${database_type}" = "pgsql" ]; then - for i in /tmp /var/lib/pgsql/data - do - if [ -S "${i}/.s.PGSQL.5432" ]; then - database_host=${i} - break - fi - done -elif [ "${database_type}" = "sqlite" ]; then - database_host="../config/jsboard.db" -else - [ -f "${mysql_config}" ] && __database_host=$(${mysql_config} --socket 2> /dev/null) - for i in ${__database_host} /tmp/mysql.sock /var/lib/mysql/mysql.sock - do - if [ -S "${i}" ]; then - database_host=":${i}" - break - fi - done -fi - -[ -z "${database_host}" ] && database_host="127.0.0.1" - -if [ "${database_type}" != "sqlite" ]; then - echo -n "${S3_MSG_12} " - printf "${MSG_CHOISE}" "${database_host}" - read _database_host - - if [ -n "${_database_host}" ] ;then - database_host=${_database_host} - fi - - _ss=$(echo ${database_host} | sed 's!^\(localhost\|127\.0\.0\.1\|:.*\|/.*\)!!g') - if [ -n "${_ss}" ]; then - database_opthost=" -h${_ss}" - fi - - echo -n "${S3_MSG_3} " - printf "${MSG_CHOISE}" "N" - read _dbroot - - [ -z "${_dbroot}" ] && _dbroot="n" - - while [ -z "${dbroot}" ] - do - case "${_dbroot}" in - Y|y) dbroot="y" ;; - N|n) dbroot="n" ;; - esac - - if [ -z "${dbroot}" ]; then - printf "${MSG_CHOISE}" "N" - read _dbroot - fi - done - - if [ "${dbroot}" = "y" ]; then - # - # database root name - # - echo -n "${database_tname} ${S3_MSG_4} " - printf "${MSG_CHOISE}" "${database_troot}" - read database_root - [ -z "${database_root}" ] && database_root="${database_troot}" - - if [ "${database_type}" != "pgsql" ]; then - # - # database root password - # - echo -n "${database_tname} ${S3_MSG_5} : " - read database_pass - fi - - echo -n "${S3_MSG_13} " - printf "${MSG_CHOISE}" "N" - read _already_database - [ -z "${_already_database}" ] && _already_database="N" - - while [ -z "${already_database}" ] - do - case "${_already_database}" in - Y|y) already_database="y" ;; - N|n) already_database="n" ;; - esac - - if [ -z "${already_database}" ]; then - printf "${MSG_CHOISE}" "N" - read _already_database - fi - done - else - already_database="n" - fi - - # database root user - echo -n "${S3_MSG_6} " - printf "${MSG_CHOISE}" "jsboard" - read jsboard_dbuser - [ -z "${jsboard_dbuser}" ] && jsboard_dbuser="jsboard" - - # database password - echo -n "${S3_MSG_7} : " - read jsboard_dbpass - - # database name - echo -n "${S3_MSG_8} " - printf "${MSG_CHOISE}" "jsboard" - read jsboard_dbname - [ -z "${jsboard_dbname}" ] && jsboard_dbname="jsboard" - - if [ "${dbroot}" = "y" -a ${already_database} = "n" ]; then - if [ "$database_type" = "pgsql" ]; then - _database_client="${database_client} -U ${database_root}${database_opthost} template1" - else - _database_client="${database_client} -u ${database_root} -p${database_pass}${database_opthost} mysql" - fi - - create_db="CREATE DATABASE ${jsboard_dbname};" - - # - # create database - # - echo - echo -n "${jsboard_dbname} ${S3_MSG_9}${mvcol}" - printDot 3 - - res=0 - if [ "${database_type}" = "pgsql" ]; then - [ -z "${t}" ] && ${_database_client} -c "${create_db}" 2> ${queryReturn} 1> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - if [ $res -eq 0 ]; then - ress= - [ -z "${t}" ] && ress=$(cat ${queryReturn}) - - [ -n "${ress}" ] && res=1 - fi - else - [ -z "${t}" ] && ${_database_client} -e "${create_db}" &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - fi - [ -f "${queryReturn}" ] && rm -f ${queryReturn} - - [ $res -eq 0 ] && onsuccess || onfailure - - # - # create user - # - if [ "${database_type}" = "pgsql" ]; then - create_user="CREATE USER ${jsboard_dbuser} PASSWORD '${jsboard_dbpass}';" - else - create_user="GRANT all privileges ON ${jsboard_dbname}.* TO ${jsboard_dbuser}@localhost IDENTIFIED by '${jsboard_dbpass}';" - #[ "${database_type}" = "mysql41" ] && \ - #create_user="${create_user}UPDATE user SET password = old_password('${jsboard_dbpass}') WHERE user = '${jsboard_dbuser}'; flush privileges;" - fi - - echo -n "${S3_MSG_10}${mvcol}" - printDot 3 - - res=0 - if [ "${database_type}" = "pgsql" ]; then - [ -z "${t}" ] && ${_database_client} -c "${create_user}" 2> ${queryReturn} 1> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - if [ $res -eq 0 ]; then - ress= - [ -z "${t}" ] && ress=$(cat ${queryReturn}) - - [ -n "${ress}" ] && ress=1 - fi - else - [ -z "${t}" ] && ${_database_client} -e "${create_user}" &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - fi - - [ -f "${queryReturn}" ] && rm -f ${queryReturn} - - [ $res -eq 0 ] && onsuccess || onfailure - fi - - # - # When dbuser is not root - # - if [ "$database_type" = "pgsql" ]; then - _database_client="${database_client} -U ${jsboard_dbuser}${database_opthost} ${jsboard_dbname}" - else - _database_client="${database_client} -u ${jsboard_dbuser}${database_opthost} -p${jsboard_dbpass} ${jsboard_dbname}" - fi - - echo -n "${S3_MSG_11}${mvcol}" - printDot 3 - - res=0 - if [ "${database_type}" = "pgsql" ]; then - [ -z "${t}" ] && ${_database_client} < ../SQL/pgsql/userdb.sql 2> ${queryReturn} 1> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - if [ $res -eq 0 ]; then - ress= - [ -z "${t}" ] && ress=$(cat ${queryReturn}) - [ -n "${ress}" ] && ress=1 - fi - else - [ -z "${t}" ] && ${_database_client} < ../SQL/${database_type}/userdb.sql &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - fi - [ -f "${queryReturn}" ] && rm -f ${queryReturn} - - # regist jsboard admin user - if [ $res -eq 0 ]; then - create_admin="INSERT INTO userdb (nid, name, email, url, passwd, position) VALUES ('admin', 'admin', '', '', '\$1\$1LrF.u6w\$FeGXSj2cPGiyPl5MbB74r.', 1)"; - - res=0 - if [ "${database_type}" = "pgsql" ]; then - [ -z "${t}" ] && ${_database_client} -c "${create_admin}" 2> ${queryReturn} 1> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - if [ $res -eq 0 ]; then - ress= - [ -z "${t}" ] && ress=$(cat ${queryReturn}) - [ -n "${ress}" ] && ress=1 - fi - else - [ -z "${t}" ] && ${_database_client} -e "${create_admin}" &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - fi - fi - - [ -f "${queryReturn}" ] && rm -f ${queryReturn} - [ $res -eq 0 ] && onsuccess || onfailure - -else - res=0 - echo -n "${S3_MSG_11}${mvcol}" - printDot 3 - [ -z "${t}" ] && ${sqlite_client} ${database_host} < ../SQL/${database_type}/userdb.sql &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - if [ $res -eq 0 ]; then - create_admin="INSERT INTO userdb (nid, name, email, url, passwd, position) VALUES ('admin', 'admin', '', '', '\$1\$1LrF.u6w\$FeGXSj2cPGiyPl5MbB74r.', 1);"; - - [ -z "${t}" ] && ${sqlite_client} ${database_host} < ${queryReturn} &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - [ -f "${queryReturn}" ] && rm -f ${queryReturn} - fi - - [ $res -eq 0 ] && onsuccess || onfailure -fi - - -# -# STEP 4. Install configuration file -# -printStep "${S4_MSG_1}" -printColor_n "${S4_LIN_1}" "white" -echo - -res=0 -echo -n "${S4_MSG_2}${mvcol}" -printDot 3 -[ -z "${t}" ] && cp ./sample/admin/global.php.orig ../config/global.php -res=$? -[ -n "${t}" ] && res=0 -[ $res -eq 0 ] && onsuccess || onfailure - -res=0 -echo -n "${S4_MSG_3}${mvcol}" -printDot 3 -[ -z "${t}" ] && cp ./sample/admin/spam_list.txt.orig ../config/spam_list.txt -res=$? -[ -n "${t}" ] && res=0 -[ $res -eq 0 ] && onsuccess || onfailure - - -# -# STEP 5. Permission setting -# -printStep "${S5_MSG_1}" -printColor_n "${S5_LIN_1}" "white" -echo - -apache_user=$(ps aux | grep -E "apache|httpd" | grep -v "\(^root\|grep\)" | awk '{print $1}'| uniq) -echo -n "${S5_MSG_2} " -printf "${MSG_CHOISE}" "${apache_user}" -read _auser - -[ -n "${_auser}" ] && apache_user="${_auser}" - -pwds=$(pwd | sed 's!/utils.*!!g') - -echo -if [ "${me}" = "root" ]; then - echo -n "${S5_MSG_3}${mvcol}" - printDot 3 - - [ -z "${t}" ] && chown ${apache_user} ../config &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - if [ $res -eq 0 ]; then - [ -z "${t}" ] && chmod 370 ../config &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - fi - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_4}${mvcol}" - printDot 3 - [ -z "${t}" ] && chown ${apache_user} ../data &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - if [ $res -eq 0 ]; then - [ -z "${t}" ] && chmod 370 ../data &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - fi - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_5}${mvcol}" - printDot 3 - [ -z "${t}" ] && chown ${apache_user} ../config/jsSessTMP &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - if [ $res -eq 0 ]; then - [ -z "${t}" ] && chmod 370 ../config/jsSessTMP &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - fi - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_6}${mvcol}" - printDot 3 - [ -z "${t}" ] && chown ${apache_user} ../config/global.php &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - if [ $res -eq 0 ]; then - [ -z "${t}" ] && chmod 660 ../config/global.php &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - fi - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_7}${mvcol}" - printDot 3 - [ -z "${t}" ] && chown ${apache_user} ../config/spam_list.txt &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - if [ $res -eq 0 ]; then - [ -z "${t}" ] && chmod 660 ../config/spam_list.txt &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - fi - [ $res -eq 0 ] && onsuccess || onfailure - - if [ "${database_type}" = "sqlite" ]; then - [ -z "${t}" ] && chown ${apache_user} ${database_host} &> /dev/null - [ -z "${t}" ] && chmod 660 ${database_host} &> /dev/null - fi -else - echo -n "${S5_MSG_3}${mvcol}" - printDot 3 - - [ -z "${t}" ] && chmod 707 ../config &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_4}${mvcol}" - printDot 3 - [ -z "${t}" ] && chmod 707 ../data &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_5}${mvcol}" - printDot 3 - [ -z "${t}" ] && chmod 707 ../config/jsSessTMP &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_6}${mvcol}" - printDot 3 - [ -z "${t}" ] && chmod 606 ../config/global.php &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_7}${mvcol}" - printDot 3 - [ -z "${t}" ] && chmod 606 ../config/spam_list.txt &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - [ $res -eq 0 ] && onsuccess || onfailure - - if [ "${database_type}" = "sqlite" ]; then - [ -z "${t}" ] && chmod 606 ${database_host} &> /dev/null - fi -fi - - -# -# STEP 6. Basic setup of global configuration file -# -printStep "${S6_MSG_1}" -printColor_n "${S6_LIN_1}" "white" -echo - -echo -n "${S6_MSG_2} : " -read jvar_httpd - -while [ -z "${jvar_httpd}" ] -do - echo -n "${S6_MSG_2} : " - read jvar_httpd -done - -jvar_webpath="${jvar_httpd}" -jvar_webpath=$(echo "${jvar_httpd}" | sed 's!/[ ]*$!!g') - -echo -n "${S6_MSG_3} " -printf "${MSG_CHOISE}" "login" -read jvar_login - -[ -z "${jvar_login}" ] && jvar_login="login" - -echo "${S6_MSG_4}" -echo " 1. ${S6_MSG_5}" -echo " 2. ${S6_MSG_6}" -echo " 3. ${S6_MSG_7}" -printf "${MSG_CHOISE}" "${language}" -read jvar_tname - -[ -z "${jvar_tname}" ] && jvar_tname=2 - -while [ -z "${jvar_theme}" ] -do - case "${jvar_tname}" in - 1) jvar_theme="EN-default" ;; - 2) jvar_theme="KO-default" ;; - 3) jvar_theme="JP-default" ;; - esac - - if [ -z "${_lang}" ]; then - printf "${MSG_CHOISE}" "${language}" - read jvar_tname - fi -done - -_config="../config/global.php" - -echo -n "${S6_MSG_8}${mvcol}" -printDot 3 - -if [ -z "${t}" -a ! -f "${_config}" ]; then - onfailure -fi - -if [ -z "${t}" ]; then - cat ${_config} | sed "s!@DBTYPE@!${database_type}!g" > ${sedTemp} - [ -f "${_config}" ] && rm -f ${_config} - [ -f "${sedTemp}" ] && mv ${sedTemp} ${_config} - - cat ${_config} | sed "s!@DBSERVER@!${database_host}!g" > ${sedTemp} - [ -f "${_config}" ] && rm -f ${_config} - [ -f "${sedTemp}" ] && mv ${sedTemp} ${_config} - - cat ${_config} | sed "s!@DBUSER@!${jsboard_dbuser}!g" > ${sedTemp} - [ -f "${_config}" ] && rm -f ${_config} - [ -f "${sedTemp}" ] && mv ${sedTemp} ${_config} - - cat ${_config} | sed "s!@DBPASS@!${jsboard_dbpass}!g" > ${sedTemp} - [ -f "${_config}" ] && rm -f ${_config} - [ -f "${sedTemp}" ] && mv ${sedTemp} ${_config} - - cat ${_config} | sed "s!@DBNAME@!${jsboard_dbname}!g" > ${sedTemp} - [ -f "${_config}" ] && rm -f ${_config} - [ -f "${sedTemp}" ] && mv ${sedTemp} ${_config} - - jsboard_dbcahr=0 - if [ "${database_type}" = 'pgsql' ]; then - database_dbchar=1 - ${database_client} -c "set client_encoding to uhc" 2> ${queryReturn} 1> /dev/null - ress= - ress=$(cat ${queryReturn}) - [ -n "${ress}" ] && database_dbchar=0 - [ -f "${queryReturn}" ] && rm -f ${queryReturn} - elif [ "${database_type}" = "mysql41" ]; then - jsboard_dbchar=1 - fi - - cat ${_config} | sed "s!@DBCHAR@!${jsboard_dbchar}!g" > ${sedTemp} - [ -f "${_config}" ] && rm -f ${_config} - [ -f "${sedTemp}" ] && mv ${sedTemp} ${_config} -fi - -onsuccess - - -echo -n "${S6_MSG_9}${mvcol}" -printDot 3 - -if [ -z "${t}" ]; then - cat ${_config} | sed "s!@LOGINNAME@!${jvar_login}!g" > ${sedTemp} - [ -f "${_config}" ] && rm -f ${_config} - [ -f "${sedTemp}" ] && mv ${sedTemp} ${_config} -fi - -onsuccess - - -echo -n "${S6_MSG_10}${mvcol}" -printDot 3 - -if [ -z "${t}" ]; then - cat ${_config} | sed "s!@WEBPATH@!${jvar_webpath}!g" > ${sedTemp} - [ -f "${_config}" ] && rm -f ${_config} - [ -f "${sedTemp}" ] && mv ${sedTemp} ${_config} -fi - -onsuccess - - -echo -n "${S6_MSG_12}${mvcol}" -printDot 3 - -if [ -z "${t}" ]; then - cat ${_config} | sed "s!@THEME@!${jvar_theme}!g" > ${sedTemp} - [ -f "${_config}" ] && rm -f ${_config} - [ -f "${sedTemp}" ] && mv ${sedTemp} ${_config} -fi - -onsuccess - -echo -n "${S6_MSG_13}${mvcol}" -printDot 3 - -if [ -z "${t}" ]; then - cat ${_config} | sed "s!@APATH@!${pwds}!g" > ${sedTemp} - [ -f "${_config}" ] && rm -f ${_config} - [ -f "${sedTemp}" ] && mv ${sedTemp} ${_config} -fi - -onsuccess - -if [ "${me}" = "root" ]; then - [ -z "${t}" ] && chown ${apache_user} ${_config} &> /dev/null - [ -z "${t}" ] && chmod 660 ${_config} &> /dev/null -else - [ -z "${t}" ] && chmod 606 ${_config} &> /dev/null -fi - -echo -printStep "Congratulations !!!" -echo -printf "${COMPLETE_MSG}" "${jvar_webpath}" -echo - -exit 0 diff --git a/utils/lib/commonlib b/utils/lib/commonlib deleted file mode 100644 index deddde4c..00000000 --- a/utils/lib/commonlib +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/sh -# $Id: commonlib,v 1.2 2009-11-16 21:52:48 oops Exp $ - -gray=""; -red=""; -green=""; -yellow=""; -blue=""; -magenta=""; -cyan=""; -white=""; -end=""; -mvcol=""; - - -printDot() { - _max=${1} - [ -z "${_max}" ] && _max=0 - - i=0 - while [ ${i} -lt ${_max} ] - do - echo -n "." - i=$[${i} + 1] - sleep 0.1 - done; -} - -printColor() { - str=$1 - _color=$2 - - _printColor 0 "$str" "$_color" -} - -printColor_n() { - str=$1 - _color=$2 - - _printColor 1 "$str" "$_color" -} - -_printColor() { - _type=$1 - _str=$2 - _color=$3 - - if [ -z "$_color" ]; then - _color=$blue - else - eval "_color=\${$_color}" - fi - - if [ $_type -eq 0 ]; then - printf "%s%s%s" "${_color}" "${_str}" "${end}" - else - printf "%s%s%s\n" "${_color}" "${_str}" "${end}" - fi -} - -printStep() { - echo - printColor_n "$1" "blue" -} - -onsuccess() { - printColor_n " [ O K ]" "green" -} - -onfailure() { - printColor_n " [ FAIL ]" "red" - echo - exit 1 -} - -createDir() { - dir=$1 - ret=0 - - mkdir -p "$dir" &> /dev/null - ret=$? - - return $ret -} diff --git a/utils/lib/install-config b/utils/lib/install-config deleted file mode 100644 index 9b8858ef..00000000 --- a/utils/lib/install-config +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# $Id: install-config,v 1.2 2009-11-16 21:52:48 oops Exp $ - -# -# database client configuration -# set the your database only. -# - -# PostgreSQL config -pgsql_client="/usr/bin/psql" - -# MySQL config -mysql_client="/usr/bin/mysql" -mysql_config="/usr/bin/mysql_config" - -# SQLIte config -sqlite_client="/usr/bin/sqlite" - diff --git a/utils/lib/lang/installation-en.conf b/utils/lib/lang/installation-en.conf deleted file mode 100644 index ff8c5750..00000000 --- a/utils/lib/lang/installation-en.conf +++ /dev/null @@ -1,83 +0,0 @@ -################################################################################ -# English installation pack -# $Id: installation-en.conf,v 1.6 2009-11-20 13:11:38 oops Exp $ -################################################################################ - -# Common -MSG_CHOISE="Chiose (Default: %s) : " - -# STEP 1 -S1_MSG_1="Attention !!!\n\ -Now, you are excuting this file as %s user privilege\n\ -If you have root privilege, shall execute this file as root privilege.\n\n\ -Do you want to continue with root user privilege?\n\ -If you can't login as root user, type N. [Y/N] (Defalut Y) :" - -S1_MSG_2="Please, reexecute this file after login as root." - -# STEP 2 -S2_MSG_1="STEP 2. Directory Creating" -S2_LIN_1="--------------------------" - -S2_MSG_2="Create data directory" -S2_MSG_3="Create global config directory" -S2_MSG_4="Create session temp directory" - -# STEP 3 -S3_MSG_1="STEP 3. Database Configuration" -S3_LIN_1="------------------------------" - -S3_MSG_2="Select database type" -S3_MSG_3="Do you have a database root privilege?" -S3_MSG_4="root name" -S3_MSG_5="root password" -S3_MSG_6="JSBoard database admin user" -S3_MSG_7="JSBoard database password" -S3_MSG_8="JSBoard database name" -S3_MSG_9="database created" -S3_MSG_10="Config database user and pivileges" -S3_MSG_11="Create JSBoard user table" -S3_MSG_12="Database Address" -S3_MSG_13="Is database setting already completely?" - -# STEP 4 -S4_MSG_1="STEP 4. Install configuration file" -S4_LIN_1="----------------------------------" - -S4_MSG_2="Install global configuration file" -S4_MSG_3="Install spam filter file" - -# STEP 5 -S5_MSG_1="STEP 5. Configuration permission" -S5_LIN_1="--------------------------------" - -S5_MSG_2="Web server operate user" -S5_MSG_3="Set global configuration directory permission" -S5_MSG_4="Set data directory permission" -S5_MSG_5="Set session temp directory permission" -S5_MSG_6="Set global configuration file permission" -S5_MSG_7="Set spam filter file permission" - -# STEP 6 -S6_MSG_1="STEP 6. Basic setup of global configuration file" -S6_LIN_1="--------------------------------------------------------" - -S6_MSG_2="JSBoard whole Web path (ex: http://domain.com/jsboard)" -S6_MSG_3="JSBoard login variable name" -S6_MSG_4="Select JSBoard administrator language" -S6_MSG_5="English" -S6_MSG_6="Korean" -S6_MSG_7="Japanese" - -S6_MSG_8="Setup database" -S6_MSG_9="Setup login variable name" -S6_MSG_10="Setup web path" -S6_MSG_12="Setup theme" -S6_MSG_13="Setup absolute path" - -# COMPLETE -COMPLETE_MSG="Complete jsboard setup\n\ -Access %s/login.php?type=admin, and setup detail configurations.\n\n\ -Default login information is follows\n\n\ - Admin ID : admin\n\ - Password : 0000\n\n" diff --git a/utils/lib/lang/installation-ko.conf b/utils/lib/lang/installation-ko.conf deleted file mode 100644 index 9c58d07f..00000000 --- a/utils/lib/lang/installation-ko.conf +++ /dev/null @@ -1,83 +0,0 @@ -################################################################################ -# ѱ -# $Id: installation-ko.conf,v 1.6 2009-11-20 13:11:38 oops Exp $ -################################################################################ - -# Common -MSG_CHOISE=" (⺻: %s) : " - -# STEP 1 -S1_MSG_1=" !!!\n\ - %s ġ Դϴ.\n\ - Ʈ ִٸ Ʈ Ͻʽÿ.\n\n\ -Ʈ ٽ ۾ ϰڽϱ?\n\ -Ʈ N Ͻʽÿ. [Y/N] (⺻ Y) :" - -S1_MSG_2="root α Ͻ Ŀ ٽ ּ" - -# STEP 2 -S2_MSG_1="2 ܰ. 丮 " -S2_LIN_1="---------------------" - -S2_MSG_2=" 丮 " -S2_MSG_3="ü 丮 " -S2_MSG_4=" 丮 " - -# STEP 3 -S3_MSG_1="3 ܰ. ͺ̽ " -S3_LIN_1="------------------------------" - -S3_MSG_2="ͺ̽ " -S3_MSG_3="ͺ̽ Ʈ ֽϱ?" -S3_MSG_4="Ʈ " -S3_MSG_5="Ʈ ȣ" -S3_MSG_6="JSBoard ͺ̽ " -S3_MSG_7="JSBoard ͺ̽ ȣ" -S3_MSG_8="JSBoard ͺ̽ ̸" -S3_MSG_9="ͺ̽ " -S3_MSG_10="̽ " -S3_MSG_11="JSBoard ̺ " -S3_MSG_12="ͺ̽ ּ" -S3_MSG_13="ͺ̽/ ̹ Ǿ ֽϱ?" - -# STEP 4 -S4_MSG_1="4 ܰ. ġ" -S4_LIN_1="----------------------" - -S4_MSG_2="ü ġ" -S4_MSG_3="spam ġ" - -# STEP 5 -S5_MSG_1="5 ܰ. " -S5_LIN_1="-----------------" - -S5_MSG_2=" " -S5_MSG_3="ü 丮 " -S5_MSG_4=" 丮 " -S5_MSG_5=" 丮 " -S5_MSG_6="ü " -S5_MSG_7="spam " - -# STEP 6 -S6_MSG_1="6 ܰ. ü ⺻ " -S6_LIN_1="--------------------------------" - -S6_MSG_2="JSBoard (: http://domain.com/jsboard)" -S6_MSG_3="JSBoard α ̸" -S6_MSG_4="JSBoard " -S6_MSG_5="" -S6_MSG_6="ѱ" -S6_MSG_7="Ϻ" - -S6_MSG_8="ͺ̽ " -S6_MSG_9="α ̸ " -S6_MSG_10=" " -S6_MSG_12="׸ " -S6_MSG_13=" " - -# COMPLETE -COMPLETE_MSG="ġ Ϸ Ǿϴ.\n\ -%s/login.php?type=admin α Ͽ ⺻ Ͻñ ٶϴ.\n\n\ -⺻ longin δ ϴ.\n\n\ - ID : admin\n\ - н : 0000\n\n" diff --git a/utils/permission b/utils/permission deleted file mode 100644 index 1d74a279..00000000 --- a/utils/permission +++ /dev/null @@ -1,255 +0,0 @@ -#!/bin/sh -# $Id: permission,v 1.5 2009-11-17 14:45:06 oops Exp $ - -source ./lib/install-config -source ./lib/commonlib -queryReturn="./queryRet.$$" -sedTemp="./sedTmp.$$" -t= - -en="usascii" -ko="euc-kr" - -clear -echo -n $yellow -echo "###############################################################################" -echo "# JSBoard Installer v2.1 #" -echo "# Scripted By JSBoard Open Project #" -echo "###############################################################################" -echo -n $end -echo - -printStep "STEP 1. Language Check" -echo "----------------------" -echo -echo "Select your installation language : " -echo " 1. English" -echo " 2. Korean" -echo -n "Choise (Default : 1) : " -read language - -[ -z "${language}" ] && language=1 - -_lang= -while [ -z "${_lang}" ] -do - case "${language}" in - 1) _lang="en" ;; - 2) _lang="ko" ;; - esac - - if [ -z "${_lang}" ]; then - echo -n "Choise (Default : 1) : " - read language - fi -done - -# include language pack -echo $LANG | grep -i "utf[-]\?8"; -if [ $? -eq 0 ]; then - eval "c_lang=\$${_lang}" - if [ ! -f "./lib/lang/installation-${_lang}.conf.utf8" ]; then - cat ./lib/lang/installation-${_lang}.conf | iconv -f ${c_lang} -t utf-8 > \ - ./lib/lang/installation-${_lang}.conf.utf8 - fi - source ./lib/lang/installation-${_lang}.conf.utf8 -else - source ./lib/lang/installation-${_lang}.conf -fi - -source ./lib/lang/installation-${_lang}.conf - -me=$(whoami) - -if [ "${me}" != "root" ]; then - echo - printf "${S1_MSG_1}" $me - read priv - - case "${priv}" in - Y|y) priv=y;; - N|n) priv=n;; - *) priv=y - esac - - if [ "${priv}" = "y" ]; then - echo - echo "${S1_MSG_2}" - exit 0 - fi -fi -echo - - -# -# STEP 2. Directory Creating -# - - -printStep "${S2_MSG_1}" -printColor_n "${S2_LIN_1}" "white" -echo - -res=0 -echo -n "${S2_MSG_2}${mvcol}" -printDot 3 -[ -z "${t}" ] && createDir "../data" -res=$? -[ -n "${t}" ] && res=0 -[ $res -eq 0 ] && onsuccess || onfailure - -res=0 -echo -n "${S2_MSG_3}${mvcol}" -printDot 3 -[ -z "${t}" ] && createDir "../config" -res=$? -[ -n "${t}" ] && res=0 -[ $res -eq 0 ] && onsuccess || onfailure - -res=0 -echo -n "${S2_MSG_4}${mvcol}" -printDot 3 -[ -z "${t}" ] && createDir "../config/jsSessTMP" -res=$? -[ -n "${t}" ] && res=0 -[ $res -eq 0 ] && onsuccess || onfailure -echo - - -# -# STEP 5. Permission setting -# -printStep "${S5_MSG_1}" -printColor_n "${S5_LIN_1}" "white" -echo - -apache_user=$(ps aux | grep -E "apache|httpd" | grep -v "\(^root\|grep\)" | awk '{print $1}'| uniq) -echo -n "${S5_MSG_2} " -printf "${MSG_CHOISE}" "${apache_user}" -read _auser - -[ -n "${_auser}" ] && apache_user="${_auser}" - -pwds=$(pwd | sed 's!/utils.*!!g') - -echo -if [ "${me}" = "root" ]; then - echo -n "${S5_MSG_3}${mvcol}" - printDot 3 - - [ -z "${t}" ] && chown ${apache_user} ../config &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - if [ $res -eq 0 ]; then - [ -z "${t}" ] && chmod 370 ../config &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - fi - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_4}${mvcol}" - printDot 3 - [ -z "${t}" ] && chown ${apache_user} ../data &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - if [ $res -eq 0 ]; then - [ -z "${t}" ] && chmod 370 ../data &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - fi - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_5}${mvcol}" - printDot 3 - [ -z "${t}" ] && chown ${apache_user} ../config/jsSessTMP &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - if [ $res -eq 0 ]; then - [ -z "${t}" ] && chmod 370 ../config/jsSessTMP &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - fi - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_6}${mvcol}" - printDot 3 - [ -z "${t}" ] && chown ${apache_user} ../config/global.php &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - if [ $res -eq 0 ]; then - [ -z "${t}" ] && chmod 660 ../config/global.php &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - fi - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_7}${mvcol}" - printDot 3 - [ -z "${t}" ] && chown ${apache_user} ../config/spam_list.txt &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - - if [ $res -eq 0 ]; then - [ -z "${t}" ] && chmod 660 ../config/spam_list.txt &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - fi - [ $res -eq 0 ] && onsuccess || onfailure - - if [ -f "../config/jsboard.db" ]; then - [ -z "${t}" ] && chown ${apache_user} ../config/jsboard.db &> /dev/null - [ -z "${t}" ] && chmod 660 ../config/jsboard.db &> /dev/null - fi -else - echo -n "${S5_MSG_3}${mvcol}" - printDot 3 - - [ -z "${t}" ] && chmod 707 ../config &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_4}${mvcol}" - printDot 3 - [ -z "${t}" ] && chmod 707 ../data &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_5}${mvcol}" - printDot 3 - [ -z "${t}" ] && chmod 707 ../config/jsSessTMP &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_6}${mvcol}" - printDot 3 - [ -z "${t}" ] && chmod 606 ../config/global.php &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - [ $res -eq 0 ] && onsuccess || onfailure - - echo -n "${S5_MSG_7}${mvcol}" - printDot 3 - [ -z "${t}" ] && chmod 606 ../config/spam_list.txt &> /dev/null - res=$? - [ -n "${t}" ] && res=0 - [ $res -eq 0 ] && onsuccess || onfailure - - if [ -f "../config/jsboard.db" ]; then - [ -z "${t}" ] && chmod 606 ../config/jsboard.db &> /dev/null - fi -fi - - -echo -printStep "Setup completly" -echo -echo - -exit 0 diff --git a/utils/sample/admin/external.php.orig b/utils/sample/admin/external.php.orig deleted file mode 100644 index 20a641c2..00000000 --- a/utils/sample/admin/external.php.orig +++ /dev/null @@ -1,39 +0,0 @@ - diff --git a/utils/sample/admin/spam_list.txt.orig b/utils/sample/admin/spam_list.txt.orig deleted file mode 100644 index de6a7307..00000000 --- a/utils/sample/admin/spam_list.txt.orig +++ /dev/null @@ -1,6 +0,0 @@ -# Filtering Configuration of Article registration -# enabled to use regular expression -# disregarded keyword is start hash charactor -# use over 3 byte -# $Id: spam_list.txt.orig,v 1.2 2009-11-16 21:52:48 oops Exp $ -# diff --git a/utils/sample/data/config.php b/utils/sample/data/config.php deleted file mode 100644 index 8c58e295..00000000 --- a/utils/sample/data/config.php +++ /dev/null @@ -1,188 +0,0 @@ - admin id -# mode -> board administration mode -# 0 -> no restriction -# 1 -> admin only write -# 2 -> only for members -# 3 -> only for members (admin only write) -# 4 -> open board (read, reply only) -# 5 -> only for members (read, reply only) -# 6 -> open board (reply only admin) -# 7 -> only for members (reply only admin) -############################################################################### -# -$board['ad'] = '@ADMIN@'; -$board['mode'] = 0; - -# When member only mode, whether print real name or nickname -# if this is not set, print nickname by default -$board['rnname'] = 0; - -# Go to this page after logout -$print['dopage'] = '@wpath@login.php?table=@table@'; - -############################################################################### -# Board function Configuration -############################################################################### -# -# Preview config -# -# Whether preview enable or disable -$enable['pre'] = 0; -# text length for preview -$enable['preren'] = 200; - -# Original article include when reply -# 0 - always include 1 - user choice -# -$enable['ore'] = 0; - -# Show related article list when read article -# 0 - disable 1 - enable -# -$enable['re_list'] = 1; - -# Whether using comment or not -# 0 - disable 1 - enable -$enable['comment'] = 0; - - -############################################################################### -# Board alignment -#
-############################################################################### -# -$board['align'] = 'center'; - - -############################################################################### -# Board general configuration -############################################################################### -# -$board['title'] = '@table@ BOARD'; # board title -$board['wrap'] = 1; # body wrapping -$board['wwrap'] = 120; # if above wrap doesn't work, force by this -$board['width'] = '550'; # width for board -$board['tit_l'] = 42; # max length for title -$board['nam_l'] = 8; # max length for writer -$board['perno'] = 10; # number of article per page -$board['plist'] = 2; # number of page link (x2+1) - -# cookie life time (day) -$board['cookie'] = 30; - - -############################################################################### -# FORM SIZE -############################################################################### -# -$size['name'] = 14; # size for name -$size['pass'] = 4; # size for submit button -$size['titl'] = 25; # size for title -$size['text'] = 32; # column for TEXTAREA -$size['uplo'] = 19; # size for UPLOAD - - -############################################################################### -# Show host information 0 - Failed, 1 - True -############################################################################### -# -$enable['dhost'] = 0; # Whether print IP address or not -$enable['dlook'] = 0; # Whether using DNS lookup or not -$enable['dwho'] = 0; # Whether using WHOIS or not - - -############################################################################### -# Theme Configuration -############################################################################### -# -$print['theme'] = '@theme@'; # Theme name - - -############################################################################### -# Configuration for file upload -# This will unavailable even if set these options, if super admin not allow -############################################################################### -# -$cupload['yesno'] = 0; # Whether using upload or not -$cupload['dnlink'] = 0; # Download link 0: by header 1: direct link - - -############################################################################### -# Configuration for url,email -############################################################################### -# -# Whether accept url, email or noot -$view['url'] = 1; -$view['email'] = 1; - - -############################################################################### -# Configuration for mail -# Need super admin's permission -############################################################################### -# -$rmail['admin'] = 0; -$rmail['user'] = 0; -# mail address for board admin -$rmail['toadmin'] = 'user@localhost'; - - -############################################################################### -# Require admin password when writing with below information -############################################################################### -# -$ccompare['name'] = 'admin'; -$ccompare['email'] = 'username@domain.com'; - - -############################################################################### -# Configuration IP Blocking -# use ';' for delimiter -# ex) 1.1.1.1;2.2.2.2;3.3.3.3 -############################################################################### -$enable['ipbl'] = ''; - - -############################################################################### -# dhyper : 0 -> Allow from ip -# 1 -> Deny from ip -# It won't work when plink contains nothing -# plink : ip address for dhyper work. use ';' for delimiter -# ex) 1.1.1.1;2.2.2.2;3.3.3.3 -############################################################################### -# -$enable['dhyper'] = 0; -$enable['plink'] = ''; - -############################################################################### -# Notice configuration -# -# use array for more than 1 -# $notice['subject'] -> Title for notice -# $notice['contents'] -> Content for notice -# If content is empty, print notice without link -############################################################################### -# -$notice['subject'] = ''; -$notice['contents'] = ''; - -############################################################################### -# Configuration for RSS -# -# $rss['use'] -> Whether using rss or not -# $rss['channel'] -> Channel name for rss reader -# $rss['is_des'] -> Whether print explain of artile or not -# $rss['align'] -> Alignment of rss link ( left/right ) -# $rss['color'] -> Color for rss link -############################################################################### -# -$rss['use'] = 0; -$rss['is_des'] = 0; -$rss['channel'] = 'JSBoard'; -$rss['align'] = 1; -$rss['color'] = '#999999'; -?> diff --git a/utils/sample/data/html_head.php b/utils/sample/data/html_head.php deleted file mode 100644 index d1395fa9..00000000 --- a/utils/sample/data/html_head.php +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/utils/sample/data/html_tail.php b/utils/sample/data/html_tail.php deleted file mode 100644 index 62b9a2e6..00000000 --- a/utils/sample/data/html_tail.php +++ /dev/null @@ -1,7 +0,0 @@ - -" . $_('u_print') . "
"; -} -?> - diff --git a/utils/sample/data/stylesheet.php b/utils/sample/data/stylesheet.php deleted file mode 100644 index 135de3f6..00000000 --- a/utils/sample/data/stylesheet.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/whois.php b/whois.php index 1f8d520d..321431d4 100644 --- a/whois.php +++ b/whois.php @@ -1,18 +1,18 @@ \n" . + echo "\n"; + "\n"; exit; } @@ -44,25 +44,28 @@ if(file_exists("data/$table/config.php")) { include "data/$table/config.php"; } if(file_exists("theme/{$print['theme']}/config.php")) { include "theme/{$print['theme']}/config.php"; } else { include "theme/KO-default/config.php"; } +include "include/lang.php"; -putenv ("JSLANG={$_code}"); -include "language/lang.php"; - -$ohost= $host; -$host = gethostbyname ($host); ?> - - - -<? echo $host ?> WHOIS Information - - + + + + +<?php echo $host ?> WHOIS 정보 + + + +\n
";
 
-
-
- 11) {
-      if ( $count > 0 ) {
-        $list = preg_replace("/^((Phone|ȭ[ ]*ȣ)[\s]*:[ ]*)(.*)/mi", "\\1\\3", $list);
-        $list = preg_replace("/((Service Name|Name|񽺸|̸).*:)(.*)/mi", "\\1\\3", $list);
-        $list = preg_replace("/((Org Name|[ ]*[ ]*).*:)(.*)/mi", "\\1\\3", $list);
-        echo $list;
+      $list = fgets($fp, 1024);
+      if($count > 11) {
+        $list = preg_replace("/((Phone|전화 번호).*:)(.*)/i", "\\1\\3", $list);
+        $list = preg_replace("/((IP Address|IP 주소).*:)(.*)/i", "\\1\\3", $list);
+        $list = preg_replace("/((Network Name|네트워크 이름).*:)(.*)/i", "\\1\\3", $list);
+        echo "$list";
       }
       $count++;
   }
   fclose($fp);
-} else echo "$errno $errstr whois.krnic.net ῡ  ߽ϴ.";
+} else echo "$errno $errstr whois.krnic.net의 연결에 실패 했습니다.";
 ?>
 
-
+
- - + + diff --git a/write.php b/write.php index 4a85211a..cbd3a0fe 100644 --- a/write.php +++ b/write.php @@ -1,8 +1,8 @@ \n". - "\n"; +$print['passform'] = "\n". + "\n"; -$pre_regist['rname'] = !$pre_regist['rname'] ? "" : "\n"; +$pre_regist['rname'] = !$pre_regist['rname'] ? "" : "\n"; if(!$nodisable) { - $print['passform'] .= "". + $print['passform'] .= "". "{$pre_regist['rname']}". - "\n". - "\n\n"; + "\n". + "\n\n"; } elseif($_SESSION[$jsboard]['pos'] == 1) { $print['passform'] .= "{$pre_regist['rname']}\n"; } @@ -70,7 +66,6 @@ EOF; meta_char_check($print['theme'], 1, 1); -$bodyType = 'write'; require_once 'captcha/captchacommon.php'; -require_once "theme/{$print['theme']}/index.template"; +include "theme/{$print['theme']}/write.template"; ?>