From 89bf352e82c9a40fefb3217de433df49233f892d Mon Sep 17 00:00:00 2001 From: JoungKyun Kim Date: Mon, 6 Jun 2016 17:51:22 +0000 Subject: [PATCH] cleanup after svn migration --- COPYING | 667 +++++----- COPYING.en | 343 +++++ COPYING.ko | 317 ----- CREDIT | 93 ++ Changelog | 911 +++++++++++++ INSTALL | 604 +++++++++ Installer/MySQL.txt | 62 + Installer/SQL/mysql_freebsd.sql | 33 + Installer/SQL/mysql_linux.sql | 33 + Installer/SQL/sql.txt | 28 + Installer/act.php | 110 ++ .../ad_sample/FreeBSD/allow_browser.txt.orig | 5 + Installer/ad_sample/FreeBSD/config.ph.orig | 4 + Installer/ad_sample/FreeBSD/global.ph.orig | 237 ++++ .../ad_sample/FreeBSD/security_data.ph.orig | 5 + .../ad_sample/FreeBSD/spam_list.txt.orig | 0 .../ad_sample/Linux/allow_browser.txt.orig | 5 + Installer/ad_sample/Linux/config.ph.orig | 4 + Installer/ad_sample/Linux/global.ph.orig | 236 ++++ .../ad_sample/Linux/security_data.ph.orig | 5 + Installer/ad_sample/Linux/spam_list.txt.orig | 0 Installer/ad_sample/Others/README | 18 + .../ad_sample/Others/allow_browser.txt.orig | 4 + Installer/ad_sample/Others/config.ph.orig | 4 + Installer/ad_sample/Others/global.ph.orig | 235 ++++ .../ad_sample/Others/security_data.ph.orig | 5 + Installer/ad_sample/Others/spam_list.txt.orig | 0 Installer/auth.php | 236 ++++ Installer/include/check.ph | 50 + Installer/include/passwd.ph | 29 + Installer/index.php | 1 + Installer/install.php | 62 + Installer/sample/FreeBSD/config.ph | 199 +++ Installer/sample/FreeBSD/html_head.ph | 3 + Installer/sample/FreeBSD/html_tail.ph | 3 + Installer/sample/Linux/config.ph | 199 +++ Installer/sample/Linux/html_head.ph | 3 + Installer/sample/Linux/html_tail.ph | 3 + Installer/sample/Others/config.ph | 199 +++ Installer/sample/Others/html_head.ph | 3 + Installer/sample/Others/html_tail.ph | 3 + Installer/script/account.sh | 74 ++ Installer/script/account_p.sh | 31 + Installer/script/root.sh | 97 ++ Installer/script/root_p.sh | 64 + Installer/session.php | 24 + KnownBug | 34 + QUICK_INSTALL | 549 ++++++++ README | 61 +- README.OTHERS.OS | 11 + SQL/mysql/board.sql | 37 - SQL/mysql/comment.sql | 18 - SQL/mysql/userdb.sql | 20 - SQL/mysql3/board.sql | 37 - SQL/mysql3/comment.sql | 18 - SQL/mysql3/userdb.sql | 20 - SQL/mysql4/board.sql | 37 - SQL/mysql4/comment.sql | 18 - SQL/mysql4/userdb.sql | 20 - SQL/mysql41/board.sql | 37 - SQL/mysql41/comment.sql | 18 - SQL/mysql41/userdb.sql | 20 - SQL/pgsql/board.sql | 38 - SQL/pgsql/comment.sql | 19 - SQL/pgsql/userdb.sql | 21 - SQL/sqlite/board.sql | 30 - SQL/sqlite/comment.sql | 11 - SQL/sqlite/userdb.sql | 13 - act.php | 839 +++++------- admin/License | 51 + admin/act.php | 264 ++-- admin/admin.php | 430 +++--- admin/admin_info.php | 139 +- admin/auth.php | 43 + admin/include/admin_head.ph | 28 + admin/include/admin_head.php | 97 -- admin/include/check.ph | 72 + admin/include/first_reg.ph | 11 + admin/include/first_reg.php | 12 - admin/include/get.ph | 81 ++ admin/include/html_ahead.ph | 45 + admin/include/html_ahead.php | 48 - admin/include/html_atail.ph | 6 + admin/include/html_atail.php | 6 - admin/include/lib.php | 139 -- admin/include/print.ph | 167 +++ admin/include/print.php | 128 -- admin/index.php | 2 +- admin/language/conv.txt | 1 - admin/language/en.lang | 230 ---- admin/language/ja.lang | 228 ---- admin/language/ko.lang | 230 ---- admin/language/lang.php | 34 - admin/session.php | 23 + admin/skin/admin.js | 30 - admin/skin/en-admin.css | 234 ---- admin/skin/footer.template | 5 - admin/skin/header.template | 14 - admin/skin/ja-admin.css | 230 ---- admin/skin/ko-admin.css | 234 ---- admin/stat.php | 358 ++--- admin/user_admin/act.php | 762 ++++++----- admin/user_admin/auth.php | 91 ++ admin/user_admin/uadmin.php | 1180 +++++++++-------- admin/userlist.php | 209 --- auth_ext.php | 57 + captcha/captcha.php | 169 --- captcha/captchacommon.php | 48 - captcha/captchaimg.php | 21 - captcha/font/AcidDreamer.ttf | Bin 203688 -> 0 bytes captcha/font/font-url.txt | 2 - captcha/make_key.php | 33 - config/README.THEME | 17 + config/themes/basic.themes | 45 + database/charset.php | 16 - database/db.php | 35 - database/mysql.php | 288 ---- database/mysqli.php | 307 ----- database/pgsql.php | 282 ---- database/regist.php | 8 - database/sqlite.php | 231 ---- delete.php | 256 ++-- doc/en/Changelog | 228 ---- doc/en/README.CAPTCHA | 22 - doc/ko/Changelog | 232 ---- doc/ko/README.CAPTCHA | 22 - doc/ko/todo | 8 - edit.php | 241 +++- emoticon/icon1.gif | Bin 656 -> 0 bytes emoticon/icon10.gif | Bin 349 -> 0 bytes emoticon/icon11.gif | Bin 590 -> 0 bytes emoticon/icon12.gif | Bin 377 -> 0 bytes emoticon/icon13.gif | Bin 192 -> 0 bytes emoticon/icon14.gif | Bin 583 -> 0 bytes emoticon/icon2.gif | Bin 956 -> 0 bytes emoticon/icon3.gif | Bin 110 -> 0 bytes emoticon/icon4.gif | Bin 376 -> 0 bytes emoticon/icon5.gif | Bin 374 -> 0 bytes emoticon/icon6.gif | Bin 1264 -> 0 bytes emoticon/icon7.gif | Bin 359 -> 0 bytes emoticon/icon8.gif | Bin 376 -> 0 bytes emoticon/icon9.gif | Bin 136 -> 0 bytes error.php | 73 +- form.php | 158 ++- html/head.ph | 68 + html/head.php | 2 - html/head2.ph | 4 + html/nofile.php | 1 - html/tail.ph | 9 + html/tail.php | 2 - html/tail2.ph | 4 + image.php | 76 -- images/back.gif | Bin 0 -> 305 bytes images/basic/back.gif | Bin 0 -> 305 bytes images/basic/conjunct.gif | Bin 0 -> 286 bytes images/basic/delete.gif | Bin 0 -> 301 bytes images/basic/delete_b.gif | Bin 0 -> 297 bytes images/basic/down.gif | Bin 0 -> 258 bytes images/basic/edit.gif | Bin 0 -> 293 bytes images/basic/edit_b.gif | Bin 0 -> 289 bytes images/basic/list.gif | Bin 0 -> 292 bytes images/basic/reply.gif | Bin 0 -> 300 bytes images/basic/reply_b.gif | Bin 0 -> 296 bytes images/basic/today.gif | Bin 0 -> 288 bytes images/basic/up.gif | Bin 0 -> 259 bytes images/basic/write.gif | Bin 0 -> 321 bytes images/basic/write_b.gif | Bin 0 -> 316 bytes images/conjunct.gif | Bin 0 -> 286 bytes images/delete_b.gif | Bin 0 -> 297 bytes images/dotline.gif | Bin 56 -> 0 bytes images/edit_b.gif | Bin 0 -> 289 bytes images/form_back.gif | Bin 0 -> 134 bytes images/form_height.gif | Bin 0 -> 173 bytes images/form_width.gif | Bin 0 -> 169 bytes images/interwiki/acronym-16.png | Bin 1087 -> 0 bytes images/interwiki/aladdin-16.png | Bin 268 -> 0 bytes images/interwiki/amazon-16.png | Bin 451 -> 0 bytes images/interwiki/andstuff-16.png | Bin 1090 -> 0 bytes images/interwiki/br-16.png | Bin 541 -> 0 bytes images/interwiki/brights-16.png | Bin 271 -> 0 bytes images/interwiki/bsdkorea-16.png | Bin 1201 -> 0 bytes images/interwiki/bugzilla-16.png | Bin 1125 -> 0 bytes images/interwiki/da-16.png | Bin 440 -> 0 bytes images/interwiki/de-16.png | Bin 419 -> 0 bytes images/interwiki/delicious-16.png | Bin 115 -> 0 bytes images/interwiki/empas-16.png | Bin 217 -> 0 bytes images/interwiki/en-16.png | Bin 565 -> 0 bytes images/interwiki/es-16.png | Bin 412 -> 0 bytes images/interwiki/fi-16.png | Bin 399 -> 0 bytes images/interwiki/flickr-16.png | Bin 249 -> 0 bytes images/interwiki/foaf-16.png | Bin 903 -> 0 bytes images/interwiki/foldoc-16.png | Bin 900 -> 0 bytes images/interwiki/foxwiki-16.png | Bin 1084 -> 0 bytes images/interwiki/fr-16.png | Bin 400 -> 0 bytes images/interwiki/freefeel-16.png | Bin 1105 -> 0 bytes images/interwiki/freshmeat-16.png | Bin 1046 -> 0 bytes images/interwiki/gentookorea-16.png | Bin 1217 -> 0 bytes images/interwiki/gnome-16.png | Bin 650 -> 0 bytes images/interwiki/gnome2-16.png | Bin 867 -> 0 bytes images/interwiki/gnomekorea-16.png | Bin 1097 -> 0 bytes images/interwiki/gnu-16.png | Bin 1070 -> 0 bytes images/interwiki/google-16.png | Bin 736 -> 0 bytes images/interwiki/gr-16.png | Bin 429 -> 0 bytes images/interwiki/gtkref-16.png | Bin 1277 -> 0 bytes images/interwiki/il-16.png | Bin 437 -> 0 bytes images/interwiki/imdb-16.png | Bin 964 -> 0 bytes images/interwiki/inter.png | Bin 214 -> 0 bytes images/interwiki/isbn-16.png | Bin 451 -> 0 bytes images/interwiki/it-16.png | Bin 430 -> 0 bytes images/interwiki/ja-16.png | Bin 366 -> 0 bytes images/interwiki/jangnan-16.png | Bin 243 -> 0 bytes images/interwiki/jargonfile-16.png | Bin 305 -> 0 bytes images/interwiki/joiwiki-16.png | Bin 1108 -> 0 bytes images/interwiki/kde-16.png | Bin 843 -> 0 bytes images/interwiki/kdekorea-16.png | Bin 1134 -> 0 bytes images/interwiki/kldpwiki-16.png | Bin 1058 -> 0 bytes images/interwiki/kle-16.png | Bin 1153 -> 0 bytes images/interwiki/ko-16.png | Bin 559 -> 0 bytes images/interwiki/ktug-16.png | Bin 1132 -> 0 bytes images/interwiki/lovolnet-16.png | Bin 1129 -> 0 bytes images/interwiki/mailing-16.png | Bin 1154 -> 0 bytes images/interwiki/mathworld-16.png | Bin 551 -> 0 bytes images/interwiki/meatball-16.png | Bin 1067 -> 0 bytes images/interwiki/moinmoin-16.png | Bin 155 -> 0 bytes images/interwiki/moniwiki-16.png | Bin 1026 -> 0 bytes images/interwiki/mozilla-16.png | Bin 580 -> 0 bytes images/interwiki/nl-16.png | Bin 405 -> 0 bytes images/interwiki/nosmoke-16.png | Bin 241 -> 0 bytes images/interwiki/nsmk-16.png | Bin 468 -> 0 bytes images/interwiki/openwiki-16.png | Bin 1102 -> 0 bytes images/interwiki/php-16.png | Bin 177 -> 0 bytes images/interwiki/pt-16.png | Bin 477 -> 0 bytes images/interwiki/python-16.png | Bin 1239 -> 0 bytes images/interwiki/rdfweb-16.png | Bin 522 -> 0 bytes images/interwiki/ru-16.png | Bin 384 -> 0 bytes images/interwiki/self-16.png | Bin 1026 -> 0 bytes images/interwiki/sfreaders-16.png | Bin 569 -> 0 bytes images/interwiki/sourceforge-16.png | Bin 329 -> 0 bytes images/interwiki/sv-16.png | Bin 508 -> 0 bytes images/interwiki/technorati-16.png | Bin 504 -> 0 bytes images/interwiki/twiki-16.png | Bin 1279 -> 0 bytes images/interwiki/twinpages-16.png | Bin 208 -> 0 bytes images/interwiki/uploads-16.png | Bin 967 -> 0 bytes images/interwiki/us-16.png | Bin 389 -> 0 bytes images/interwiki/usemod-16.png | Bin 1051 -> 0 bytes images/interwiki/user-16.png | Bin 975 -> 0 bytes images/interwiki/wiki-16.png | Bin 1222 -> 0 bytes images/interwiki/wikipedia-16.png | Bin 528 -> 0 bytes images/interwiki/xper-16.png | Bin 1110 -> 0 bytes images/interwiki/xxx-16.png | Bin 1058 -> 0 bytes images/interwiki/yahoo-16.png | Bin 138 -> 0 bytes images/interwiki/zh-16.png | Bin 506 -> 0 bytes images/interwiki/zwiki-16.png | Bin 1047 -> 0 bytes images/list.gif | Bin 0 -> 292 bytes images/quote.gif | Bin 153 -> 0 bytes images/reply.gif | Bin 0 -> 300 bytes images/reply_b.gif | Bin 0 -> 296 bytes images/today.gif | Bin 0 -> 288 bytes images/write.gif | Bin 0 -> 321 bytes images/write_b.gif | Bin 0 -> 316 bytes include/LANG/en.ph | 378 ++++++ include/LANG/ko.ph | 382 ++++++ include/README.LANG | 15 + include/auth.ph | 32 + include/check.ph | 252 ++++ include/check.php | 607 --------- include/error.ph | 107 ++ include/error.php | 121 -- include/exec.ph | 9 + include/exec.php | 74 -- include/get.ph | 435 ++++++ include/get.php | 603 --------- include/header.ph | 32 + include/header.php | 147 -- include/lang.ph | 14 + include/list.ph | 146 ++ include/list.php | 304 ----- include/ostype.ph | 15 + include/ostype.php | 17 - include/parse.ph | 349 +++++ include/parse.php | 796 ----------- include/prelist.ph | 91 ++ include/prelist.php | 124 -- include/print.ph | 677 ++++++++++ include/print.php | 777 ----------- include/replicate.php | 28 - include/sURI.php | 84 -- include/security.ph | 43 + include/sendmail.ph | 200 +++ include/sendmail.php | 357 ----- include/spam_check.ph | 21 + include/spam_check.php | 24 - include/sql.ph | 95 ++ include/tableratio.ph | 30 + include/variable.php | 87 -- include/version.ph | 3 + include/version.php | 6 - include/wikify.php | 234 ---- index.php | 3 +- language/en.lang | 176 --- language/ja.lang | 179 --- language/ko.lang | 180 --- language/lang.php | 36 - list.php | 252 ++-- locate.php | 15 +- login.php | 41 - read.php | 401 +++--- regist.php | 176 --- reply.php | 280 ++-- rss.php | 147 -- security.php | 75 ++ session.php | 109 -- theme/Changelog.theme | 55 - theme/EN-default/config.php | 64 - theme/EN-default/default.css | 491 ------- theme/EN-default/delete.template | 92 -- theme/EN-default/edit.template | 161 --- theme/EN-default/img/admin.gif | Bin 97 -> 0 bytes theme/EN-default/img/at.gif | Bin 850 -> 0 bytes theme/EN-default/img/bnw-shape.gif | Bin 44 -> 0 bytes theme/EN-default/img/bnw.gif | Bin 810 -> 0 bytes theme/EN-default/img/board_no.gif | Bin 1496 -> 0 bytes theme/EN-default/img/dot.gif | Bin 48 -> 0 bytes theme/EN-default/img/dotted_gray.gif | Bin 44 -> 0 bytes theme/EN-default/img/grippie.png | Bin 151 -> 0 bytes theme/EN-default/img/icon_over.gif | Bin 1086 -> 0 bytes theme/EN-default/img/login.gif | Bin 95 -> 0 bytes theme/EN-default/img/logout.gif | Bin 99 -> 0 bytes theme/EN-default/img/notice.gif | Bin 94 -> 0 bytes theme/EN-default/index.template | 90 -- theme/EN-default/list.template | 145 -- theme/EN-default/login.template | 96 -- theme/EN-default/mail.template | 102 -- theme/EN-default/read.template | 202 --- theme/EN-default/reply.template | 159 --- theme/EN-default/write.template | 163 --- theme/JP-default/config.php | 62 - theme/JP-default/default.css | 491 ------- theme/JP-default/delete.template | 95 -- theme/JP-default/edit.template | 179 --- theme/JP-default/img/admin.gif | Bin 97 -> 0 bytes theme/JP-default/img/at.gif | Bin 850 -> 0 bytes theme/JP-default/img/bnw-shape.gif | Bin 44 -> 0 bytes theme/JP-default/img/bnw.gif | Bin 810 -> 0 bytes theme/JP-default/img/board_no.gif | Bin 1496 -> 0 bytes theme/JP-default/img/dot.gif | Bin 48 -> 0 bytes theme/JP-default/img/dotted_gray.gif | Bin 44 -> 0 bytes theme/JP-default/img/grippie.png | Bin 151 -> 0 bytes theme/JP-default/img/icon_over.gif | Bin 1086 -> 0 bytes theme/JP-default/img/login.gif | Bin 95 -> 0 bytes theme/JP-default/img/logout.gif | Bin 99 -> 0 bytes theme/JP-default/img/notice.gif | Bin 94 -> 0 bytes theme/JP-default/index.template | 91 -- theme/JP-default/list.template | 150 --- theme/JP-default/login.template | 96 -- theme/JP-default/mail.template | 102 -- theme/JP-default/read.template | 190 --- theme/JP-default/reply.template | 175 --- theme/JP-default/write.template | 171 --- theme/KO-default/config.php | 63 - theme/KO-default/default.css | 491 ------- theme/KO-default/delete.template | 95 -- theme/KO-default/edit.template | 178 --- theme/KO-default/img/admin.gif | Bin 97 -> 0 bytes theme/KO-default/img/at.gif | Bin 850 -> 0 bytes theme/KO-default/img/bnw-shape.gif | Bin 44 -> 0 bytes theme/KO-default/img/bnw.gif | Bin 810 -> 0 bytes theme/KO-default/img/board_no.gif | Bin 1496 -> 0 bytes theme/KO-default/img/dot.gif | Bin 48 -> 0 bytes theme/KO-default/img/dotted_gray.gif | Bin 44 -> 0 bytes theme/KO-default/img/grippie.png | Bin 151 -> 0 bytes theme/KO-default/img/icon_over.gif | Bin 1086 -> 0 bytes theme/KO-default/img/login.gif | Bin 95 -> 0 bytes theme/KO-default/img/logout.gif | Bin 99 -> 0 bytes theme/KO-default/img/notice.gif | Bin 94 -> 0 bytes theme/KO-default/index.template | 91 -- theme/KO-default/list.template | 149 --- theme/KO-default/login.template | 96 -- theme/KO-default/mail.template | 102 -- theme/KO-default/read.template | 189 --- theme/KO-default/reply.template | 175 --- theme/KO-default/write.template | 171 --- theme/common/lib.js | 203 --- theme/common/preview.js | 123 -- theme/common/textarea.js | 271 ---- theme/player/LICENSE | 7 - theme/player/dewplayer-vol.swf | Bin 5214 -> 0 bytes user.php | 129 -- utility/Cwb2JSB-0.2/README.CWB2JSB | 119 ++ utility/Cwb2JSB-0.2/cwb2jsb.php | 186 +++ utility/Cwb2JSB-0.2/split.php | 146 ++ utils/installation | 749 ----------- utils/lib/commonlib | 84 -- utils/lib/install-config | 18 - utils/lib/lang/installation-en.conf | 83 -- utils/lib/lang/installation-ko.conf | 83 -- utils/permission | 255 ---- utils/sample/admin/external.php.orig | 39 - utils/sample/admin/global.php.orig | 121 -- utils/sample/admin/intermap.txt | 43 - utils/sample/admin/spam_list.txt.orig | 6 - utils/sample/data/config.php | 188 --- utils/sample/data/html_head.php | 3 - utils/sample/data/html_tail.php | 7 - utils/sample/data/stylesheet.php | 3 - whois.php | 78 +- write.php | 222 +++- 407 files changed, 13097 insertions(+), 21281 deletions(-) create mode 100644 COPYING.en delete mode 100644 COPYING.ko create mode 100644 CREDIT create mode 100644 Changelog create mode 100644 INSTALL create mode 100644 Installer/MySQL.txt create mode 100644 Installer/SQL/mysql_freebsd.sql create mode 100644 Installer/SQL/mysql_linux.sql create mode 100644 Installer/SQL/sql.txt create mode 100644 Installer/act.php create mode 100644 Installer/ad_sample/FreeBSD/allow_browser.txt.orig create mode 100644 Installer/ad_sample/FreeBSD/config.ph.orig create mode 100644 Installer/ad_sample/FreeBSD/global.ph.orig create mode 100644 Installer/ad_sample/FreeBSD/security_data.ph.orig create mode 100644 Installer/ad_sample/FreeBSD/spam_list.txt.orig create mode 100644 Installer/ad_sample/Linux/allow_browser.txt.orig create mode 100644 Installer/ad_sample/Linux/config.ph.orig create mode 100644 Installer/ad_sample/Linux/global.ph.orig create mode 100644 Installer/ad_sample/Linux/security_data.ph.orig create mode 100644 Installer/ad_sample/Linux/spam_list.txt.orig create mode 100644 Installer/ad_sample/Others/README create mode 100644 Installer/ad_sample/Others/allow_browser.txt.orig create mode 100644 Installer/ad_sample/Others/config.ph.orig create mode 100644 Installer/ad_sample/Others/global.ph.orig create mode 100644 Installer/ad_sample/Others/security_data.ph.orig create mode 100644 Installer/ad_sample/Others/spam_list.txt.orig create mode 100644 Installer/auth.php create mode 100644 Installer/include/check.ph create mode 100644 Installer/include/passwd.ph create mode 100644 Installer/index.php create mode 100644 Installer/install.php create mode 100644 Installer/sample/FreeBSD/config.ph create mode 100644 Installer/sample/FreeBSD/html_head.ph create mode 100644 Installer/sample/FreeBSD/html_tail.ph create mode 100644 Installer/sample/Linux/config.ph create mode 100644 Installer/sample/Linux/html_head.ph create mode 100644 Installer/sample/Linux/html_tail.ph create mode 100644 Installer/sample/Others/config.ph create mode 100644 Installer/sample/Others/html_head.ph create mode 100644 Installer/sample/Others/html_tail.ph create mode 100755 Installer/script/account.sh create mode 100755 Installer/script/account_p.sh create mode 100755 Installer/script/root.sh create mode 100755 Installer/script/root_p.sh create mode 100644 Installer/session.php create mode 100644 KnownBug create mode 100644 QUICK_INSTALL create mode 100644 README.OTHERS.OS delete mode 100644 SQL/mysql/board.sql delete mode 100644 SQL/mysql/comment.sql delete mode 100644 SQL/mysql/userdb.sql delete mode 100644 SQL/mysql3/board.sql delete mode 100644 SQL/mysql3/comment.sql delete mode 100644 SQL/mysql3/userdb.sql delete mode 100644 SQL/mysql4/board.sql delete mode 100644 SQL/mysql4/comment.sql delete mode 100644 SQL/mysql4/userdb.sql delete mode 100644 SQL/mysql41/board.sql delete mode 100644 SQL/mysql41/comment.sql delete mode 100644 SQL/mysql41/userdb.sql delete mode 100644 SQL/pgsql/board.sql delete mode 100644 SQL/pgsql/comment.sql delete mode 100644 SQL/pgsql/userdb.sql delete mode 100644 SQL/sqlite/board.sql delete mode 100644 SQL/sqlite/comment.sql delete mode 100644 SQL/sqlite/userdb.sql create mode 100644 admin/License create mode 100644 admin/auth.php create mode 100644 admin/include/admin_head.ph delete mode 100644 admin/include/admin_head.php create mode 100644 admin/include/check.ph create mode 100644 admin/include/first_reg.ph delete mode 100644 admin/include/first_reg.php create mode 100644 admin/include/get.ph create mode 100644 admin/include/html_ahead.ph delete mode 100644 admin/include/html_ahead.php create mode 100644 admin/include/html_atail.ph delete mode 100644 admin/include/html_atail.php delete mode 100644 admin/include/lib.php create mode 100644 admin/include/print.ph delete mode 100644 admin/include/print.php delete mode 100644 admin/language/conv.txt delete mode 100644 admin/language/en.lang delete mode 100644 admin/language/ja.lang delete mode 100644 admin/language/ko.lang delete mode 100644 admin/language/lang.php create mode 100644 admin/session.php delete mode 100644 admin/skin/admin.js delete mode 100644 admin/skin/en-admin.css delete mode 100644 admin/skin/footer.template delete mode 100644 admin/skin/header.template delete mode 100644 admin/skin/ja-admin.css delete mode 100644 admin/skin/ko-admin.css create mode 100644 admin/user_admin/auth.php delete mode 100644 admin/userlist.php create mode 100644 auth_ext.php delete mode 100644 captcha/captcha.php delete mode 100644 captcha/captchacommon.php delete mode 100644 captcha/captchaimg.php delete mode 100644 captcha/font/AcidDreamer.ttf delete mode 100644 captcha/font/font-url.txt delete mode 100644 captcha/make_key.php create mode 100644 config/README.THEME create mode 100644 config/themes/basic.themes delete mode 100644 database/charset.php delete mode 100644 database/db.php delete mode 100644 database/mysql.php delete mode 100644 database/mysqli.php delete mode 100644 database/pgsql.php delete mode 100644 database/regist.php delete mode 100644 database/sqlite.php delete mode 100644 doc/en/Changelog delete mode 100644 doc/en/README.CAPTCHA delete mode 100644 doc/ko/Changelog delete mode 100644 doc/ko/README.CAPTCHA delete mode 100644 doc/ko/todo delete mode 100644 emoticon/icon1.gif delete mode 100644 emoticon/icon10.gif delete mode 100644 emoticon/icon11.gif delete mode 100644 emoticon/icon12.gif delete mode 100644 emoticon/icon13.gif delete mode 100644 emoticon/icon14.gif delete mode 100644 emoticon/icon2.gif delete mode 100644 emoticon/icon3.gif delete mode 100644 emoticon/icon4.gif delete mode 100644 emoticon/icon5.gif delete mode 100644 emoticon/icon6.gif delete mode 100644 emoticon/icon7.gif delete mode 100644 emoticon/icon8.gif delete mode 100644 emoticon/icon9.gif create mode 100644 html/head.ph delete mode 100644 html/head.php create mode 100644 html/head2.ph delete mode 100644 html/nofile.php create mode 100644 html/tail.ph delete mode 100644 html/tail.php create mode 100644 html/tail2.ph delete mode 100644 image.php create mode 100644 images/back.gif create mode 100644 images/basic/back.gif create mode 100644 images/basic/conjunct.gif create mode 100644 images/basic/delete.gif create mode 100644 images/basic/delete_b.gif create mode 100644 images/basic/down.gif create mode 100644 images/basic/edit.gif create mode 100644 images/basic/edit_b.gif create mode 100644 images/basic/list.gif create mode 100644 images/basic/reply.gif create mode 100644 images/basic/reply_b.gif create mode 100644 images/basic/today.gif create mode 100644 images/basic/up.gif create mode 100644 images/basic/write.gif create mode 100644 images/basic/write_b.gif create mode 100644 images/conjunct.gif create mode 100644 images/delete_b.gif delete mode 100644 images/dotline.gif create mode 100644 images/edit_b.gif create mode 100644 images/form_back.gif create mode 100644 images/form_height.gif create mode 100644 images/form_width.gif delete mode 100644 images/interwiki/acronym-16.png delete mode 100644 images/interwiki/aladdin-16.png delete mode 100644 images/interwiki/amazon-16.png delete mode 100644 images/interwiki/andstuff-16.png delete mode 100644 images/interwiki/br-16.png delete mode 100644 images/interwiki/brights-16.png delete mode 100644 images/interwiki/bsdkorea-16.png delete mode 100644 images/interwiki/bugzilla-16.png delete mode 100644 images/interwiki/da-16.png delete mode 100644 images/interwiki/de-16.png delete mode 100644 images/interwiki/delicious-16.png delete mode 100644 images/interwiki/empas-16.png delete mode 100644 images/interwiki/en-16.png delete mode 100644 images/interwiki/es-16.png delete mode 100644 images/interwiki/fi-16.png delete mode 100644 images/interwiki/flickr-16.png delete mode 100644 images/interwiki/foaf-16.png delete mode 100644 images/interwiki/foldoc-16.png delete mode 100644 images/interwiki/foxwiki-16.png delete mode 100644 images/interwiki/fr-16.png delete mode 100644 images/interwiki/freefeel-16.png delete mode 100644 images/interwiki/freshmeat-16.png delete mode 100644 images/interwiki/gentookorea-16.png delete mode 100644 images/interwiki/gnome-16.png delete mode 100644 images/interwiki/gnome2-16.png delete mode 100644 images/interwiki/gnomekorea-16.png delete mode 100644 images/interwiki/gnu-16.png delete mode 100644 images/interwiki/google-16.png delete mode 100644 images/interwiki/gr-16.png delete mode 100644 images/interwiki/gtkref-16.png delete mode 100644 images/interwiki/il-16.png delete mode 100644 images/interwiki/imdb-16.png delete mode 100644 images/interwiki/inter.png delete mode 100644 images/interwiki/isbn-16.png delete mode 100644 images/interwiki/it-16.png delete mode 100644 images/interwiki/ja-16.png delete mode 100644 images/interwiki/jangnan-16.png delete mode 100644 images/interwiki/jargonfile-16.png delete mode 100644 images/interwiki/joiwiki-16.png delete mode 100644 images/interwiki/kde-16.png delete mode 100644 images/interwiki/kdekorea-16.png delete mode 100644 images/interwiki/kldpwiki-16.png delete mode 100644 images/interwiki/kle-16.png delete mode 100644 images/interwiki/ko-16.png delete mode 100644 images/interwiki/ktug-16.png delete mode 100644 images/interwiki/lovolnet-16.png delete mode 100644 images/interwiki/mailing-16.png delete mode 100644 images/interwiki/mathworld-16.png delete mode 100644 images/interwiki/meatball-16.png delete mode 100644 images/interwiki/moinmoin-16.png delete mode 100644 images/interwiki/moniwiki-16.png delete mode 100644 images/interwiki/mozilla-16.png delete mode 100644 images/interwiki/nl-16.png delete mode 100644 images/interwiki/nosmoke-16.png delete mode 100644 images/interwiki/nsmk-16.png delete mode 100644 images/interwiki/openwiki-16.png delete mode 100644 images/interwiki/php-16.png delete mode 100644 images/interwiki/pt-16.png delete mode 100644 images/interwiki/python-16.png delete mode 100644 images/interwiki/rdfweb-16.png delete mode 100644 images/interwiki/ru-16.png delete mode 100644 images/interwiki/self-16.png delete mode 100644 images/interwiki/sfreaders-16.png delete mode 100644 images/interwiki/sourceforge-16.png delete mode 100644 images/interwiki/sv-16.png delete mode 100644 images/interwiki/technorati-16.png delete mode 100644 images/interwiki/twiki-16.png delete mode 100644 images/interwiki/twinpages-16.png delete mode 100644 images/interwiki/uploads-16.png delete mode 100644 images/interwiki/us-16.png delete mode 100644 images/interwiki/usemod-16.png delete mode 100644 images/interwiki/user-16.png delete mode 100644 images/interwiki/wiki-16.png delete mode 100644 images/interwiki/wikipedia-16.png delete mode 100644 images/interwiki/xper-16.png delete mode 100644 images/interwiki/xxx-16.png delete mode 100644 images/interwiki/yahoo-16.png delete mode 100644 images/interwiki/zh-16.png delete mode 100644 images/interwiki/zwiki-16.png create mode 100644 images/list.gif delete mode 100644 images/quote.gif create mode 100644 images/reply.gif create mode 100644 images/reply_b.gif create mode 100644 images/today.gif create mode 100644 images/write.gif create mode 100644 images/write_b.gif create mode 100644 include/LANG/en.ph create mode 100644 include/LANG/ko.ph create mode 100644 include/README.LANG create mode 100644 include/auth.ph create mode 100644 include/check.ph delete mode 100644 include/check.php create mode 100644 include/error.ph delete mode 100644 include/error.php create mode 100644 include/exec.ph delete mode 100644 include/exec.php create mode 100644 include/get.ph delete mode 100644 include/get.php create mode 100644 include/header.ph delete mode 100644 include/header.php create mode 100644 include/lang.ph create mode 100644 include/list.ph delete mode 100644 include/list.php create mode 100644 include/ostype.ph delete mode 100644 include/ostype.php create mode 100644 include/parse.ph delete mode 100644 include/parse.php create mode 100644 include/prelist.ph delete mode 100644 include/prelist.php create mode 100644 include/print.ph delete mode 100644 include/print.php delete mode 100644 include/replicate.php delete mode 100644 include/sURI.php create mode 100644 include/security.ph create mode 100644 include/sendmail.ph delete mode 100644 include/sendmail.php create mode 100644 include/spam_check.ph delete mode 100644 include/spam_check.php create mode 100644 include/sql.ph create mode 100644 include/tableratio.ph delete mode 100644 include/variable.php create mode 100644 include/version.ph delete mode 100644 include/version.php delete mode 100644 include/wikify.php delete mode 100644 language/en.lang delete mode 100644 language/ja.lang delete mode 100644 language/ko.lang delete mode 100644 language/lang.php delete mode 100644 login.php delete mode 100644 regist.php delete mode 100644 rss.php create mode 100644 security.php delete mode 100644 session.php delete mode 100644 theme/Changelog.theme delete mode 100644 theme/EN-default/config.php delete mode 100644 theme/EN-default/default.css delete mode 100644 theme/EN-default/delete.template delete mode 100644 theme/EN-default/edit.template delete mode 100644 theme/EN-default/img/admin.gif delete mode 100644 theme/EN-default/img/at.gif delete mode 100644 theme/EN-default/img/bnw-shape.gif delete mode 100644 theme/EN-default/img/bnw.gif delete mode 100644 theme/EN-default/img/board_no.gif delete mode 100644 theme/EN-default/img/dot.gif delete mode 100644 theme/EN-default/img/dotted_gray.gif delete mode 100644 theme/EN-default/img/grippie.png delete mode 100644 theme/EN-default/img/icon_over.gif delete mode 100644 theme/EN-default/img/login.gif delete mode 100644 theme/EN-default/img/logout.gif delete mode 100644 theme/EN-default/img/notice.gif delete mode 100644 theme/EN-default/index.template delete mode 100644 theme/EN-default/list.template delete mode 100644 theme/EN-default/login.template delete mode 100644 theme/EN-default/mail.template delete mode 100644 theme/EN-default/read.template delete mode 100644 theme/EN-default/reply.template delete mode 100644 theme/EN-default/write.template delete mode 100644 theme/JP-default/config.php delete mode 100644 theme/JP-default/default.css delete mode 100644 theme/JP-default/delete.template delete mode 100644 theme/JP-default/edit.template delete mode 100644 theme/JP-default/img/admin.gif delete mode 100644 theme/JP-default/img/at.gif delete mode 100644 theme/JP-default/img/bnw-shape.gif delete mode 100644 theme/JP-default/img/bnw.gif delete mode 100644 theme/JP-default/img/board_no.gif delete mode 100644 theme/JP-default/img/dot.gif delete mode 100644 theme/JP-default/img/dotted_gray.gif delete mode 100644 theme/JP-default/img/grippie.png delete mode 100644 theme/JP-default/img/icon_over.gif delete mode 100644 theme/JP-default/img/login.gif delete mode 100644 theme/JP-default/img/logout.gif delete mode 100644 theme/JP-default/img/notice.gif delete mode 100644 theme/JP-default/index.template delete mode 100644 theme/JP-default/list.template delete mode 100644 theme/JP-default/login.template delete mode 100644 theme/JP-default/mail.template delete mode 100644 theme/JP-default/read.template delete mode 100644 theme/JP-default/reply.template delete mode 100644 theme/JP-default/write.template delete mode 100644 theme/KO-default/config.php delete mode 100644 theme/KO-default/default.css delete mode 100644 theme/KO-default/delete.template delete mode 100644 theme/KO-default/edit.template delete mode 100644 theme/KO-default/img/admin.gif delete mode 100644 theme/KO-default/img/at.gif delete mode 100644 theme/KO-default/img/bnw-shape.gif delete mode 100644 theme/KO-default/img/bnw.gif delete mode 100644 theme/KO-default/img/board_no.gif delete mode 100644 theme/KO-default/img/dot.gif delete mode 100644 theme/KO-default/img/dotted_gray.gif delete mode 100644 theme/KO-default/img/grippie.png delete mode 100644 theme/KO-default/img/icon_over.gif delete mode 100644 theme/KO-default/img/login.gif delete mode 100644 theme/KO-default/img/logout.gif delete mode 100644 theme/KO-default/img/notice.gif delete mode 100644 theme/KO-default/index.template delete mode 100644 theme/KO-default/list.template delete mode 100644 theme/KO-default/login.template delete mode 100644 theme/KO-default/mail.template delete mode 100644 theme/KO-default/read.template delete mode 100644 theme/KO-default/reply.template delete mode 100644 theme/KO-default/write.template delete mode 100644 theme/common/lib.js delete mode 100644 theme/common/preview.js delete mode 100644 theme/common/textarea.js delete mode 100644 theme/player/LICENSE delete mode 100644 theme/player/dewplayer-vol.swf delete mode 100644 user.php create mode 100644 utility/Cwb2JSB-0.2/README.CWB2JSB create mode 100755 utility/Cwb2JSB-0.2/cwb2jsb.php create mode 100755 utility/Cwb2JSB-0.2/split.php delete mode 100644 utils/installation delete mode 100644 utils/lib/commonlib delete mode 100644 utils/lib/install-config delete mode 100644 utils/lib/lang/installation-en.conf delete mode 100644 utils/lib/lang/installation-ko.conf delete mode 100644 utils/permission delete mode 100644 utils/sample/admin/external.php.orig delete mode 100644 utils/sample/admin/global.php.orig delete mode 100644 utils/sample/admin/intermap.txt delete mode 100644 utils/sample/admin/spam_list.txt.orig delete mode 100644 utils/sample/data/config.php delete mode 100644 utils/sample/data/html_head.php delete mode 100644 utils/sample/data/html_tail.php delete mode 100644 utils/sample/data/stylesheet.php diff --git a/COPYING b/COPYING index 3a807a52..30dc9978 100644 --- a/COPYING +++ b/COPYING @@ -1,342 +1,325 @@ -$Id: COPYING,v 1.3 2009-11-16 21:52:45 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 - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. + +GPL ѱ ˾ƵѰ. + +1. ѱ ش ϴ ȿ ٴ + ѰͿ Ѵ. + . + +2. Ǵ http://jsboard.kldp.org ϱ⸦ ٶ. + +3. OOPS administration center jsboardʹ License + . admin/License Ͽ Ҷ ϴ. + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + +۱ǰ 㰡 õǴ ,  ü + 糪 鵵 ȴ. , ÷ + ʴ´. + + ( ) + +Ʈ κ ̼ ش Ʈ + Ϸ Ѵ. ׷ GNU General Public License +(, "GPL"̶ Ѵ) Ʈ ȣ + ϱ ؼ Ǿ. Ʈ ϴ κ +Ʈ 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 330, Boston, MA 02111-1307, USA) + + +, α׷ ڿ Ǵ ؼ ִ +ؾ Ѵ. + +, α׷ ɾ Է Ŀ ȭ ϰ ִٸ +α׷ ȭ Ǵ ʱ ¿ +Ǿ Ѵ. + + Gnomovision version 69, Copyright (C) 19yy α׷ ̸ + + Gnomovision ǰ  ʴ´. + ڼ 'show w' ɾ ̿ؼ ִ. + α׷ Ʈ̸ Ư Ű Ͽ + ִ. ش 'show c' ɾ ؼ + ִ. + +'show w' 'show c' GPL ش κ ϱ ɾ̴. + ɾ 콺 ϰų ޴ ϴ α׷ + · ̴. + +, α׷ ڰ б ü Ǿ ִٸ +α׷ ο ؼ ֳ ش α׷ +۱ Ѵٴ Ǹ Ѵ. , +ִ. + + James Hacker ؼ ۼ 'Gnomovision' α׷ + ۱ Ѵ. + + 1989 4 1 + Yoyodye, Inc., λ: Ty Coon + : Ty Coon + + ̼ Ʈ α׷ Ʈ Բ +ϴ ʴ´. , ۼ α׷ ̺귯 ƾ +α׷ 쿡 ̸ Ʈ α׷ Բ +ν ȿ Ȱ ִٰ ̴. ̷ + ̼ ſ GNU Library General Public License ν +ұ ų ̴. diff --git a/COPYING.en b/COPYING.en new file mode 100644 index 00000000..45c5f0b9 --- /dev/null +++ b/COPYING.en @@ -0,0 +1,343 @@ +Attention : OOPS administration Center is not GPL. + See also admin/License ! + + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/COPYING.ko b/COPYING.ko deleted file mode 100644 index 1a7056ae..00000000 --- a/COPYING.ko +++ /dev/null @@ -1,317 +0,0 @@ -$Id: COPYING.ko,v 1.3 2009-11-16 21:52:45 oops Exp $ - -GPL ȿ 켱 ˴ϴ. ѱ -ϱ Ǹ 켱 մϴ. - -------------------------------------------------------------------------------- - - 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 - -۱ǰ 㰡 Ǵ ,  ü -糪 鵵 ȴ. , ÷ ʴ´. - - ( ) - -Ʈ κ ̼ ش Ʈ - Ϸ Ѵ. ׷ 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 - 330, Boston, MA 02111-1307, USA) - - -, α׷ ڿ Ǵ ؼ ִ -ؾ Ѵ. - -, α׷ ɾ Է Ŀ ȭ ϰ ִٸ α׷ - ȭ Ǵ ʱ ¿ Ǿ -. - - Gnomovision version 69, Copyright (C) 19yy α׷ ̸ - - Gnomovision ǰ  ʴ´. ڼ - 'show w' ɾ ̿ؼ ִ. α׷ Ʈ - ̸ Ư Ű Ͽ ִ. ش - 'show c' ɾ ؼ ִ. - -'show w' 'show c' GPL ش κ ϱ ɾ̴. - ɾ 콺 ϰų ޴ ϴ α׷ - · ̴. - -, α׷ ڰ б ü Ǿ ִٸ α - ο ؼ ֳ ش α׷ ۱ - Ѵٴ Ǹ Ѵ. , ִ. - - James Hacker ؼ ۼ 'Gnomovision' α׷ - Ѵ. - - 1989 4 1 - Yoyodye, Inc., λ: Ty Coon - : Ty Coon - - ̼ Ʈ α׷ Ʈ Բ - ʴ´. , ۼ α׷ ̺귯 ƾ -׷ 쿡 ̸ Ʈ α׷ Բ ν - ȿ Ȱ ִٰ ̴. ̷ - ſ GNU Library General Public License ν ұ -ų ̴. diff --git a/CREDIT b/CREDIT new file mode 100644 index 00000000..6bddbf76 --- /dev/null +++ b/CREDIT @@ -0,0 +1,93 @@ +***** JSBOARD + OOPS administration Center ********************************* + +Original Developer : 躴 + +JSBoard ¸ ֽ ̴. ѱ ڵ鿡Դ + г ˷ alzza linux packaging + application ѱ patch ֽ ̴. + +http://linux.sarang.net + + +Source Distribute : + +JSBoard v0.6 ڵ þ , JSBoard α׷ +OOPS administration Center JSBoard +ڵ ð ִ. + + Ȩ Daemon ¹ rpm package ϰ +ProFTPd korean user gruop ϰ ִ. + +Windog Version Distribute : ֱ + +profile 𸣰. ּҸ ˰ ϰ ִ. + +http://www.oops.org + +CVS Server : 迵 + +JSBoard v0.5 ϼ JSBoard Open Project CVS +ֽŴ. + +http://network.uos.ac.kr + +Special Thanks : + +jsboard ׸ ֽð patch +÷ ֽŴ. patch ظϸ patch +Ϸ ϳ ȵǴ 찡 . + +http://kltp.kldp.org + +Special Thanks : Ǽ + +JSBoard ߰ ġ ֽø, JSBoard homepage + Ҽֵ ֽð ִ. + +Special Thanks : 湬 + +FreeBSD system JSBoard ۵Ҽ ֵ System ֽð +ִ. + +http://www.dimanche.net + +Special Thanks : â + +躴 Խ JSBoard ̸ open project +Ҽ ֵ Ѵ븦 Ž ̸ JSBoard v0.3 ϼ̴. Qmail + ѱ Ȩ ϰ Ŵ. + +http://kldp.org/~winchild + +Special Thansks : rOra + +rOra() Ǵ Ksecurity Ʈ ϸ JSBoard + exploit reporting ֽð Ŵ. + +http://ksecurity.iland.co.kr + +Special Thanks : mat + +hacksware Ʈ ϸ JSBoard ׹ exploit +reporting ֽð Ŵ. + +http://hacksware.com + + + +ֱ v1.3 +湬 v0.6, v0.7 + v0.6, v0.7, v0.8, v1.0 v1.1 + v1.2 v1.3 +迵 v0.5 + v0.4 +â v0.3, v0.5 + v0.2 +躴 v0.1, v0.8 + +* 0.9 version پ. + +׿ JSBoard ϰ ϰ reporting ֽô + ֽð Ŵ. + +****************************************************************************** diff --git a/Changelog b/Changelog new file mode 100644 index 00000000..80f295cd --- /dev/null +++ b/Changelog @@ -0,0 +1,911 @@ +***** JSBOARD + OOPS administartion Center ********************************* + +Original Developer : Byung Chan Kim +Source Disturibute : Joung Kyun Kim +Windog Version : Ki Soo Choi + +## Warning ## + +This package turned out to work in Redhat Debian FreeBSD Windows systems. +Any one who wants install this package on any other platform must revise +it as needed for himeself/herself and must read jsboard/README.OTHERS.OS +file. + +If you wnat to see windog's change log, see also + http://jsboard.kldp.org/download/Changelogwin.txt + +Attention : OOPS administration Center is not GPL. + See also admin/License ! + +****************************************************************************** + + +ۼ : (admin@oops.org) +ۼ : 2001 7 16 + : jsboard-1.3.2 + +* +1. sendmail.ph ۼ +2. euc_kr ƴҰ ư ϱ image ü +3. .ppt .xls ٿε ʰ +4. qmail socket ߼۵ ʴ +5. Ÿ OS ȣȯ fopen Լ ڿ b ߰ +6. file_operate() Լ ߰ (get_file() Լ ϰ fopen óϴ + ƾ file_operate() Լ +7. ̸⿡ ؽƮ ɶ 1000 ڿ ѱ ߸° + +8. Ҷ https 밡ϰ +9. auto_link() Լ +10. upload file ̸⿡ Orizinal ǥǴ Ÿ +11. ÷ ʴ +12. IE 5.5 ٿε header ߰ +13. IE 5.5 ̻ Cookie +14. Installer Ÿ + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2001 6 3 + : jsboard-1.3.1 + +* +1. get_date() Լ +2. ѽ ٽ ϰ Ǵ° +3. act.php include ߸ϴ +4. NS  ū ѱ ̹ upload ̸⿡ ߻ ϴ + +5. email 㰡 ̸ ڹ ũƮ ߻ + ϴ +6. ip  mail ߼ ۵ ȵǴ +7. email link subject ũ +8. admin center н 0000 ʾ ޼ + ʴ +9. Installer/include/passwd.ph Ÿ(netsatat -> netstat) +10. sendmail.ph Ÿ +11. Ͻ mail server Ʈ ƿ + ° +12. Linux NS form size 1.8 + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2001 5 10 + : jsboard-1.3.0 + +* +1. PHP4-4.0.3 ̻ . +2. utility directory ߰. (CWB -> jsboard convert program ) +3. ÷ ߰ +4. Է½ ȣƮ ip addressθ insert +5. IP address ľϴ ȣƮ ũƮ +6. board wrap radio button +7. IP address θ Ҽ ְ +8. DNS lookup ߰ +9. IP address ȸ 뿩 ߰ +10. ۾â ߰ (IE,NS6,Mozila) +11. ó θ html 뿩θ ̾ް +12. ްų Ұ idx ̴ + ϱ LOCK TABLES $table WRITE +13. global.ph ϴ version numbering version.ph +14. file_upload() Լ +15. upload file ̸ ⿡ html file 1000 charactor +16. WRAP=hard ʴ NS ۵Ͻ Խ + þ ϱ ½ wordwrap . +17. ѱ file upload ϰ +18. html ̿Ͽ ۾⸦ Ҷ 뿡 <--no-autolink> + Ǿ auto_link ȵǰ . (ѱ ũ 밡) +19. global.ph $upload[dir] admin ο + ߰ $upload[dir] files Ǿ Ǵ° +20. ü ǰ н尡  ȣȭ + Ǿ ڿ  +21. include/sendamil.ph get_send_info() Լ $db[host] Լ ߸ + Ǿ ִ ($db[server] ) +22. act.php Ͽ Խǿ ۿø +23. file download fopen fclose ʾ ҽ Ǵ +24. ̸ Java Script +25. ѱ Ͽ Ÿ (include/LANG/ko.ph) +26. html/head.ph â ڹ ũƮ +27. ظ exec Լ . admin Խ + Խ 丮 +28. 1.2 Ʈ wordwrap + ȵ ⺻ +29. mail link formmail mailto +30. image size java script +31. admin center +32. Installer ȯ üũ DirectoryIndex տ 鹮ڰ + üũ ȵǴ +33. Խ Ÿ +34. Խ θ Ҽ password check + ѹ ϸ ǵ (۾ н ڵ н + ) +35. admin center α ٸ +36. Ȼ ֱ include/exec.ph Ǿ ִ shell + η +37. admin center alphabat Խ ֵ +38. write.php Ʈ ȵǴ +39. ˸ ߰ +40. admin link Ⱥ̰ Ҽ ֵ ɼ +41. ˻ Ʈ ũ ˻ Ʈ ϴ +42. html ÿ form, input, textarea tag +43. base tag ϰ +44. Installer urlencode Ǿ ذ +45. ko.ph Ÿ +46. ̸⿡ \ ڰ java script + error ߻ ϴ +47. auto_link Լ ѱ ũ ó +48. auto_link Լ hard wrap html link + Ǿ ũ 3ٱ ġ ϴ ڵ κ +49. a href=javascript:function() · java script ϴ + +50. ̸⿡ < ° fix +51. reply html tag ó ʴ +52. ۾ â IE 5.01SP1 ̻ ʱȭ + Ǵ ϱ OS windowg 쿡 alert â + (5.01SP1 ̻ window.open() Լ ۵ + history.back() ص ʱȭ Ǵ ) +53. auto_link applet 밡ϰ . +54. a link ܿ embed img link link ° + +55. auto link a href tag Ͽ ũ κ óҶ ũ + \2 +56. reply edit ó +57. Exchange Server smtp ϼ Data Format + Error ߻ϸ return Ǵ . (mail Լ socket + ) +58. parse.ph ǥĵ +59. NOBR ʴ NOWRAP ߰ +60. file_upload() Լ Ÿ +61. auto_link .com file üũ ɷ target ʴ +62. html ۿ wordwrap ȵǴ +63. mail server global.ph Ҽ ֵ + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2001 3 4 + : jsboard-1.2.3 + +* +1. & & ȯ Ǿ ߸ ǥǴ° . +2. user admin security hole fix. +3. Installer ȯ üũ DirectoryIndex տ 鹮ڰ + üũ ȵǴ +4. ο  meta character üũ +5. ġ Ȱ ߰ +6. NS6 + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 12 20 + : jsboard-1.2.2 + +* +1. filename . ̿ Ȧ ġ +2. file upload Ȯ ˻翡 .ph .inc ߰ + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 11 30 + : jsboard-1.2.1 + +* +1. menu ̳ Ʒ single quote(') java + script error ° +2. file upload Ȧ ((jglee@netisus.co.kr) report) + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 11 25 + : jsboard-1.2.0 + +* +1. ֽű (INSTALL ϴ ) +2. image Ͻ size table widthŬ ̺ þ + ʰ Ų ҵ image ̷ link +3.  ڸ ̿Ͽ · ° +4. б տ Ҷ ùٸ ʴ° +5. php3 Ȯڸ php +6. color themes ߰ +7. get_hostname Լ +8. basic themes +9. auto_link() Լ ftp linkÿ link httpd ɸ +10. user_admin html header κ ̻ϰ ° +11. auto_link() Լ ũ ų taget ȵǰ +12. sql time ӵ Ȯϰ ϱ +13. Lynx ۾ ȵǴ° +14. < Ư ڰ < ٲ ° +15. theme ҽ ȭ +16. embed link NS ȭ µ ʴ +17. listȭ鿡 2ٷ µǴ° +18. ó ũ ѱȯ Ư̹Ƿ ȯ + << >> +19. mid, wav, mp3 file upload б⿡ ٷ 뷡 µǰ +20. Ʈ CSS line-height=120% +21. mpeg, mpg, avi, asf, mov, swf file ̸ ߰ +22. ɿ Խ Ļ ߰ +23. tag +24. ۾ html ҽ html tag script tag + +25. HTML ȿ ϱ text_nl2br(), delete_tag() + Լ ϰ delete_tdbr() Լ +26. auto_link() Լ . (tag option κ ũ ó ӵ ) +27. 񿡼 & &amp; ȯǴ +28. file uploadÿ Ǵ 丮 ġ +29. Installer mysql ġ ϵ +30. ߼ ɿ ̸κп Ư ڰ + HTML charactor ǥ Ǵ +31. text_nl2br() Լ html ҽ ugly ѱ ߸Ȱ +32. htmlspecialchars Լ ߰ +33. preview title javascript +34. ϵ ǥø ֱ 12ð +35. BG color font color Ҽ ֵ +36. theme file ߰(form ) +37. cut_string() Լ ۼ (̴ ۼ - parse.ph) +38. admin/include/sample +39. form_wrap() Լ - Խǿ TEXTAREA WRAP + Ҽֵ +40. ̸ ɿ theme +41. ۼ 亯⿡ <! ڵ尡  NS ° +42. langauge mesage file +43. file uploadÿ ۵ źεǾ ε Ǵ +44. board width % Ǿ form mail â ʴ° +45. admin center as Խ ° +46. ȭ鿡 н Էâ cursor focus +47. ÷ Ǿ ִ ÷ ° +48. image icon ҽÿ edit, replay, write, delete ȭ鿡 + image icon Ҷ table size Ǵ° + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 11 3 + : jsboard-1.1.3 + +* +1. Install DirectoryIndex üũ DirectoryIndex ٷ + üũ ϴ +2. reply Խ ΰ ߸ +3. SPAM +4. auto_link Լ urlڿ dot ̸ ϴ + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 10 4 + : jsboard-1.1.2 + +* +1. cut_string() Լ +2. ۾ ּҰ JSBoard message + Ÿ +3. "' ڿ escape(\) ٴ +4. Ϻ ڵ Lang/ko.ph +5. vb script file upload Ȯ ȯ (vbs virus ) +6. email link id . Ҷ ũ ° +7. url̳ email link . ̸ ϴ° +8. embed link NS ȭ µ ʴ +9. file uploadÿ Ǵ 丮 ġ +10. &lt; Ư ڰ < ٲ ° + +* OOPS administration center update + +1. 迡 Syntax error + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 9 17 + : jsboard-1.1.1 + +* +1. auto_link() Լ flash link +2. html ٿ ص ʴ° +3. Ʈ back ȵǴ +4. ۾ html ϰ <pre> tag ũ 2ĭ Ư + ȯϴ <pre> tag θ Ŵ +5. Install script syntax error +6. &nbsp;ڸ ̿Ͽ · ° +7. б տ Ҷ ùٸ ʴ° +8. account.sh +9. move_page() Լ 鹮 밡ϰ + +* OOPS administration center update + +1. 迡 ְ ȸ ũ +2. 迡 0 ߻ϴ + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 9 5 + : jsboard-1.1.0 + +* + +1. download header ̿ security hole +2. fget() Լ fread() Լ ü +3. ÷ link ̸ ⿡ ޼ +4. if̳ ǹ include() Լ Ҷ +5. ۵Ͻ н尡 ־ ϵǴ ̸ email üũ + ϴ word 񱳿 ش纯 Ե parse 񱳷 +6. ۵Ͻ browser ǺϿ 㰡 θ ϰ +7. б⿡ text file ÷ Ǿ ̸ ɿ 1000 + ؼ ְ patch +8. Ϸ Ʈ java script ment undecode ó +9. б ۾ ٽ ȸ ø ʰ +10. θ ϵ + Ҽ ְ +11. б ñ ñ Ʈ ߰ +12. ۹̼ script (Debian, FreeBSD ) +13. tdbr() delete_tag() text_nl2nr() Լ (in parse.ph) +14. Permission check script Debian checked. (nobody www-data ) +15. Installer Debian checkϰ ϸ, httpd.conf file + ϰ (Installer/include/passwd.ph) +16. FreeBSD н ȣȭÿ $ڰ \$ Ŵ +17. QUICK_INSTALL Ÿ +18. ڵ table os н ʵ üũ (include/ostype.ph) +19. ޼ +20. BGimage ÿ table bgcolor ° +21. global.ph upload directory files ٸ ̸ Ͽ + ʴ +22. email ϵǾ mailto ũ Ǿ ִ form mail + ̿Ͽ óϵ +23. formmail Լ +24. html table tagտ <br> tag Ͽ Ʒ и + ° +25. install.php3 white.themes + +* OOPS administration center update + +1. jsboard ʴ table DB ޼ + ٷ Ǵ° fix. (jsboard ʴ table ư + "Not JSBoard table" message ) + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 8 14 + : jsboard-1.0.3 + +* + +1. download head ̿ security hole patch +2. б ۾ ٽ ȸ ø ʰ +3. ο Խ ׸ ʴ +4. white.themes ã +5. Install script permission script + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 7 17 + : jsboard-1.0.2 + +* + +1. admin ɿ ޼ Ǵ +2. auto_link() Լ comma üũǰ +3. Ϻ system - link ʴ +4. include/get.ph gethostbyaddr() Լ ޼ ½ ̸ + @ +5. fget() Լ fread() Լ +6. ο Խ Խ ̸ - ϰ + (MySQL table dash ) +7. browser ϵ鸸 header download ϰԲ . + Ȯ ܿ 50K ̸ ϵ header downloadǸ + 50K ̻ file direct link Ŵ +8. act.php3 article_check() Լ +9. CREDIT file email + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 7 3 + : jsboard-1.0.1 + +* + +1. list ȭ鿡 ÷ Ͽ file size ǥ +2. list ȭ鿡 ¥ +3. list name filed double quote ̸ ߸° fix +4. download ÿ file type ٿεǰ +5. image icon table width % table 迭 ̻ + ° fix +6. zip file icon unknown type ° +7. replyÿ θ ߼۵ ʴ +8. php +9. image menuÿ ʿ ִ ȭ ׷ ȭ鰣 + table  Ʋ +10. spam ˻ ȵǴ +11. url ˻ link κ +12. admin/include/config.ph ۹̼ (664) +13. Document ׹ Ÿ +14. KnownBug document ߰ +15. Խ ڸ Ҽ ִ ɿ . +16. Խ ɰ ü ڸ ɿ Ʈ +17. CREDIT ߰ + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 6 16 + : jsboard-1.0.0 + +1. ο ˰ (DB table ) +2. Image Theme ߰ +3, ߰ (txt, jpg, gif, php б⿡ ٷ ) +4. Agent з form Լ Win 2000 ߰ +5. table tag table tag(table,tr,td) nl2br() 鿩 + ʰ +6. ÿ tag ϴ . <html> <div> + <head> <meta> . <table> tag 밡. +7. autolink ǥ +8. php, phtml, cgi, pl file uploadÿ phps, cgis, pls file name Ŵ +9. Խ data include/data_name data/data_name +10. ̸ ̸Ͽ Ű ̸̳ ּҸ ϳ Ҽ ְ. +11. administration update (v1.6) +12. ɿ Spam, theme . (config/README.THEME ) +13. global 켱 (upload , mail . 㰡ǵ) +14. ǥ ˻ ߰ +15. ٷ ߰ +16. ٸ system porting ϰ ϱ Ͽ exec() Լ κ и + (jsbaord/include/exec.ph) +17. , script ߰ +18. Quick Install ߰ +19. read page command bar java script error +20. added remove_tbbr() function in parse.ph +21. GPL ѱ ߰ +22. MySQL query ߰ +23. admin center н ϸ ޼ µǰ +24. language file charactor set +25. COPYING, COPYING.en, CREDIT, Changelog, README ߰ + ( README, LICENSE file ) +26. textarea WRAP 뿩 Ҽ ְ. +27. upload file ̸ ɿ Ȯڰ 빮 + ̸ ۵ ʴ fix +28. modified get_hostname function in get.ph +29. $lang -> $langs +30. Խ ý ƮŸ Arial fix +31. IE Ͻ "c, " ugly ѱ fix +32. Installer JSBoard ϱ ȯ ׽Ʈ ߰ +33. include/tableratio.ph ߰. - table width input size и +34. write, reply, edit, delete page ϴ list link list ư + Դ list page Ŵ +35. table width % Ҽ ְ fix +36. NS upload file ڰ ã ϴ bug fix +37. script κ . +38. upload file ̸ Ư ($,#,%)  ź +39. ˻ AND ˻ ϰ (%% and ˻ ) +40. ˻ "' Ұϰ +41. whois ߰ +42. Խ ߰ +43. ۾ cookie double quote ҽ տ \\ ٴ° +44. auto_link() function ǥ +45. double quote &quot; ö ϳ cut + ϴ patch +46. upload file size ϱ Ѱ byte, kbyte, mbyte ǥ +47. jsboard cookie session +48. Source + + +----------------------------------------------------------------------------- +ۼ : (eunjea@kldp.org) (admin@oops.org) +ۼ : 2000 6 2 + : jsboard-0.7.9 + +1. ˻ ڿ ? (: ?) Ǵ ...  ڿ ° + ˻ , ǥ ѷ ˻ ׼. +2. ˻ ,̸, ˻Ҷ شϴ ( + ˻ô ) Ϻ б ڷ +3. ׸ ε Խù б⿡ ̹ , alt html + tag ߰ +4. INSTALL.txt Ÿ + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 5 27 + : jsboard-0.7.8 + +1. ˻ [ "  +2. " 徵 © +3. "  ˻ ˻ ã ϴ° +4. file name . +5. script upload file Ȯڸ filename_Ȯ.phps +6. reply 11° Re:^ ȣ ° +7. "  б ȭ鿡 ޴ ° +8. act.php3 Ÿ < dconnect($db_sever, ..); -> dconnect($db_server, ..); > + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 4 27 + : jsboard-0.7.7 + +1. preview ۳뿡 double quote list page + fix +2. preview IE ۵ϵ fix +3. Խ admin preview mode radio box +4. Խ admin preview õ hint ߰ +5. dos format ִ file unix format ȯ + +----------------------------------------------------------------------------- +ۼ : 湬 (dimanche@dimanche.co.kr) +ۼ : 2000 4 26 + : jsboard-0.7.6 + +1. Խù Ʈ Խù 콺 Ŀ ø + ش Խù ̸ ִ ߰ (IE ) + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 4 22 + : jsboard-0.7.5 + +1. б⿡ YN̶ ڰ fix +2. c, ʴ öڹ ǥ fix +3. Ʈ Ưڰ ѿ ɸ ڵ尪 ©ä + Ǵ° fix +4. Ư ڷ ˻ ߻ϴ fix + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 4 13 + : jsboard-0.7.4 + +1. first_regist.ph file ϴ charactor +2. PHP4 name resolving error patch + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 3 19 + : jsboard-0.7.3 + +1. read.php3 ǽ or ǥ ߸Ȱ +2. get_hostname() Լ (ip address resolving hostname + ǥǰ . +3. upload file .phtml Ȯ phps ȯϿ uploadǰ. +4. upload file ̸ ɿ Ȯڰ 빮 + ̸ ۵ ʴ fix + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 3 4 + : jsboard-0.7.2 + +1. cgi, sh, pl file uploadÿ file name ڿ file ̸ + Ǵ +2. read.php3 menu bar ߺ query ó +3. ڸ ǥǴ ǥø ڸ . +4. 2000 Y2K ǥ Ǵ ٽ 2000 +5. pn_listname() Լ + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 2 23 + : jsboard-0.7.1 + +1. script file uploadÿ Ҽ Ȯڸ Ŵ. + (php3,php -> phps , cgi -> cgis, pl -> pls, sh -> shs) + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 1 31 + : jsboard-0.7.0 + +1. Install/SQL/mysql.sql table ߸Ȱ ϳ¥ +2. INSTALL.txt ۼ +3. Խ (, ѱ ) +4. DB . (config.ph, info.php3) + info.php3 Ǿ, config.ph ޴ 鸸 . + + table : BoardInformation + : jsboard/Install/SQL/manager.sql + +5. ټ ϵ鿡 db ҷ κ ÷. +6. delete.php3 table +7. ޼ и. (ڸ κ) +8. ñ ǥ (Re^3 -> ° ñ) +9. SQL time ǥ +10. ̸, , ۿ space ־ ϵǴ ġ +11. ۾⿡ ũƮ ǥ +12. sendmail() Լ ñ 涧 ڿ + ʰ ñ Է ġ +13. a_gent() Լ nt ߰ (misc.ph) +14. read.php3 delete.php3 upload file ش ʵ +15. delete.php3 autolink() Լ ȣ. (ũ ̺ + ) +16. include mail.ph, cmd_var.ph, check.ph ߰ (misc.ph ʹ + ɺ и) +17. ޴ θ admin page Ҽ ֵ . + ÿ user ip address +18. ⸦ ڸ Ҽ ֵ Ҽ ְԲ (admin mode ) +19. remote ip address ߺ +20. mail.ph Խ ۾ adminԸ ÿ + reply path üũ ϴ + + +----------------------------------------------------------------------------- +ۼ : (湬) (dimanche@dimanche.co.kr) +ۼ : 2000 1 28 + : jsboard-0.6.20 + +* + +1. Խ ̾ƿ (Netscape Series ׽Ʈ X) +2. Խ ̸/ ( ) +3. ȣ ˻ ߰ +4. Ӹ ̿ ߰ +5. (RE:) RE: [ñ]: +6. Խ ϴܿ . (publicity.ph ) + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 1 25 + : jsboard-0.6.10 + +1. file uploadÿ ϱɿ jpg, gif file ̸ ⸦ Ҷ + ̸ blank ũ ġ. +2. read.php3 miss code Ͽ error ߻ϴ° ġ +3. ǥ κ +4. Խ ο ° + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 1 22 + : jsboard-0.6.9 + +1. misc.ph auto_link() Լ ǥĿ system regex + php regex κ + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 1 20 + : jsboard-0.6.8 + +1. list name subject ڿ(ѱ ó) ڸ κ + ġ +2. html enable ÿ tag ϴ + <html> <div> <head> <meta> + <table> tag 밡. +3. table tag table tag(table,tr,td) nl2br() 鿩 + ʰ +4. auto_link() Լ ǥ . +5. read.php3 command bar double quote ϳ 徲 + κп +6. command bar ϰ . (â ġ ) +7. list field width +8. delete.php3 autolink() Լ ȣ ߰. + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 1 16 + : jsboard-0.6.7 + +1. ̸, , ۿ space ־ ϵǴ ġ +2. ۾⿡ ũƮ ǥ +3. sendmail() Լ ñ 涧 ڿ + ʰ ñ Է ġ +4. a_gent() Լ nt ߰ (misc.ph) +5. ۾, , ñ textarea size (30->34) + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 1 12 + : jsboard-0.6.6 + +1. Auto Link ǥ +2. Install/SQL/mysql.sql . + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 1 6 + : jsboard-0.6.5 + +1. Auto Link ǥ ( ξ + Ǿ) + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 1 5 + : jsboard-0.6.4 + +1. Email, URL link Ҷ ̻ϰ Ǵ κ +2. Table color + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 1 4 + : jsboard-0.6.3 + +1. Ʈ 2000 00 ǥ Ǵ + Y2K ǥ ǰ . - east egg :-) +2. misc.ph get_page Լ SQL query + Count(no) -> Count(*) +3. user_admin page html bug (׽ + ̺ Ƽ ʰ Ŭ ) + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 1 2 + : jsboard-0.6.2 + +1. permission script . Install/Config account.sh + root.ph + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 2000 1 1 + : jsboard-0.6.1 + +1. cookie (act.php3) + + +----------------------------------------------------------------------------- +ۼ : (admin@oops.org) +ۼ : 1999 12 27 + : jsboard-0.6.0 + +* + +1. Installation 󿡼 Ҽ ְԲ ߰. + (߰ DB user, , table ٷ . test table ) +2. Խ 󿡼 ų ֵ + ο. +3. Խ Ҽ ִ admin page ߰ + (CrazyWWWBoard admin center ) +4. db table + date field Ű ε ߰. +5. Խ ڿ ü н Ҽ ְԲ + jsborad-version/act.php3 del, edit κ . +6. jsborad-version/include/db.ph admin . + Խ ڿ ߺǹǷ . +7. jsborad-version/include/$table/menu.ph 뿩θ Խ adminɿ + ϰų Ҽ ְԲ . +8. jsborad-version/include/$table/head.html . desc.ph ߺ. + html header κ desc.ph ó . (Խ adminɿ html + header κ) +9. jsboard-version/list.php3 ϴܿ tail.ph include. + tail.ph include/$table/tail.ph . Խ ɿ tail.ph + 󿡼 +10. н crypt() ȣȭ Ͽ Ͽ. +11. replyÿ ۾ tab Դ° . (reply.php3) +12. misc.ph send_mail() function + Դٴ ޼ ƴ϶ . + act.php3 send_mail(....) + config.ph $webboard_version Լ ( ) +13. reply.php3 write.php3, edit.php3 delete.php3 + file_upload no ϶ file_upload ̴ κ +14. $use_url, $use_email (config.ph) + reply.php3 write.php3, edit.php3 . +15. delete.php3 ׿ ͽ÷η ̺  + Ǵ (blank.gif ̿Ͽ ) +16. INSTALL.txt db ϴ ġ ߰ +17. ۾⿡ html 뿩 Ʈ +18. list.php3 searchκ form . + ׷ ̰ </form> ʾƼ tailκп form + ǻ ߻. patch +19. read.ph space &nbsp ȯ +20. reply.php3 file_upload no file_upload κ ߴ + +21. delete.php3 font colorÿ "="  ȭ ȵǴ κ + +22. admin page DB DB ʰ Ҷ include + ϵ Ǵ +23. 0 byte file uploadҶ ߻ϴ 0 byte file upload Ҽ + . +24. Admin center ڷθ ̸ Խ DB table + ʴ . ''θ Խ̸ Ҽ +25. ε带 ϰ + ʴ +26. admin center α н ޼ Ÿ +27. menu allow ÿ list.php3 ̿ܿ ȵǴ +28. file_upload Ǿ ִ file type icon size . +29. upload file mime type ˻Ͽ gif, jgp, txt ϰ쿡 + ÷Ͽ . (̶ file_upload yes ̵ no + ̵ ʰ ÷file ˻Ͽ ) +30. Searchÿ admin link ȵǴ +31. ".." searchÿ Ʈ ѱ "\.", "\.." + ˻Ǵ +32. windog netscape input size ̴ . ׿ + netcape Ҷ ѱ ϴ Ŵ. +33. misc.ph mail() Լ $from κ . +34. INSTALL.txt . + - ó ġϴ ġ + - ġ ϴ ġ + - ڵ ġ + Ͽ . + + +----------------------------------------------------------------------------- +ۼ : 迵 (blhole@hotmail.com) +ۼ : 1999 12 10 + : jsboard-0.5 + +1. Ե ﶧ ׸ ħ +2. Ե ۿ X ǥð Ǵ κ +3. ּҸ ֵ +4. , ڿ +5. , +6. , ̸ textarea ԽŴ + ԵǾ ־ ̸ ߰ +7. file ε ȭ̸ ־ ε .. + + +----------------------------------------------------------------------------- +ۼ : () jinoos@hanmail.net +ۼ : 19991130 + : jsboard-0.4 + +1. ϵ ߰ +2. ε ̵Ͻ "Ȧ" "X" ü +3. list.ph Լ߿ ִ ũȵǾ include ذ(global ) +4. read.php3 ǥ ( ƴ, ǥ + ̺귯 ) +5. ȸ IP / . ؼ + db.php3 ġ +6. ε ƾ filesystem function ü +7. ۼ file κ ÷ + + +----------------------------------------------------------------------------- +ۼ: â (ܿ) winchild@kldp.org +ۼ: 19991126 +: jsboard-0.3 + +1. test.sql include ̺ ٸϴ. + include 丮 ؿ study Ͽϴ. +2. desc.ph header.phtml menu.phtml о̴µ include + phtml Ȯڰ ϴ. header.ph menu.ph + ־ϴ. +3. desc.ph header.ph о̴µ ̹ list.php3 о鿴 + redeclation ߻մϴ. desc.ph header.ph (header.phtml) + Ͽϴ. +4. desc.ph $DOCUMENT_ROOT ̿Ͽ include ϴµ htdocs Ͽ + ٷ ġ ش ã ٴ ޼ ɴϴ. ̰ + $DOCUMENT_ROOT  α׷ ۽ÿ list.php3?table=<table> + Խǿ ̿ <޴>.php3 ̿Ͽ + ϵ Ͽ մϴ. + + + + <? + Header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 + Header("Location: list.php3?table=hn_faq"); + ?> + + test.sql ǵ manual.php3  ̰ + ҷָ directory н Ǿ $DOCUMENT_ROOT + ذ Ҽ ֽϴ. +5. ϵ ϵ κп act.php3 ϴ ϸ ϻ + ʱȭ ʾƼ DB Ͻÿ ߻ ֽϴ. (࿡ + 0 NULL õǸ ߻ .) ̺κ ʱȭ ׽ϴ. + + +----------------------------------------------------------------------------- + +ۼ : <taejun@taejun.pe.kr> +ۼ : 1999.11.17 +: jsboard-0.2 + + +1. ε ߰ +2. board/include/table̸/config.ph ε ȭ ų ʵ + + +----------------------------------------------------------------------------- + +ۼ : 躴 <redhands@linux.sarang.net> +ۼ: +: jsboard-0.1 + +----------------------------------------------------------------------------- diff --git a/INSTALL b/INSTALL new file mode 100644 index 00000000..a1541898 --- /dev/null +++ b/INSTALL @@ -0,0 +1,604 @@ +##### JSBOARD + OOPS administartion Center ################################ +# +# Original Developer : 躴 <redhands@linux.sarang.net> +# Source Disturibute : <admin@oops.org> +# Windog Version : ֱ <choiks@nuri.net> +# +# CVS Server : 迵 <blhole@hotmail.com> +# Homepage : Ǽ <http://www.kldp.org> +# Special Thanks : <eunjea@kldp.org> +# : 湬 <dimanche@dimanche.co.kr> +# : â <winchild@kldp.org> +# +########################################################################### +# +# Installation in JSBoard 1.3 v0.8 +# +########################################################################### + +ۼ : <admin@oops.org> +Ͻ : 2001.03.19 + + JSBoard 1.3 version ġ Ѵ. +س JSBoard ؿ ؼ ƹ å +ϰ Ǵ ϰ ġ õϵ ϱ⸦ ٶ. + + + ## ڼ ⸦ ϰų Installer ƴ ## + ## ġ ϸ QUICK_INSTALL ϶ ## + + +******* ǻ *********************************************************# + +ϳ. +JSBoard 1.2 ʹ Ȯڰ .php3 .php ȴ. + +ϳ. +JSBoard v1.3 PHP4 v4.0.3 ̻ ۵ ϸ, compile Ҷ +configure ÿ --disable-session ɼ ȵȴ. + + +ϳ. + 0.7 upgrade ϴ +ʴ´. http://jsboard.kldp.org/bbs/read.php?table=bbs_download&no=30 +Ͽ ϰ upgrade ϱ⸦ ٶ. + +ϳ. +0.7 DB ü SQL query ǾǷ + ٶ. + +ϳ. +!!!!!!!!!!!!! +Linux, FreeBSD ̿ OS ġÿ jsboard/README.OTHERS.OS +о ġ ؾ Ѵ. + +*************************************************************************** + + +**** **** + + 1. ȯ + 1-1. exec() Լ test + 1-2. MySQL Լ test + 1-3. MySQL mysql database db table Ȯ + 1-4. web server + 2. JSBoard ġ + 3. JSBoard  + 4. JSBoard + 5. UPGRADE + 6. ֽű ϱ + 6-1. ֽű + 6-2. ֽű + 7. Bug report + +*************** + +1. ȯ + + apache 1.3.x ̻ + MySQL 3.22.30 ̻ (RPM ġ - ftp://ftp.oops.org) + PHP-4.0.3 ̻(RPM ġ - ftp://ftp.oops.org) + + * üũ * + + php exec() Լ MySQL Լ Ǵ ȮѴ. + + 1-1. exec() Լ test + + ϴ ϳ . test.php Īϰڴ. + + <?php + echo "## exec() Լ ׽Ʈ ##<p><br>\n\n"; + exec("echo \"exec()Լ ۵ մϴ\"", $test); + + echo $test[0]; + ?> + + 󿡼 ȣ + + ------------------------------------------------- + ## exec() Լ ׽Ʈ ## + + exec()Լ ۵ մϴ + ------------------------------------------------- + + Ǿ Ѵ. + + 1-2. MySQL Լ test + + info.php Ʒ Ѵ. + + <?php + phpinfo(); + ?> + + ׸ 󿡼 ȣ MySQL ִ ȮѴ. + Ұ MySQL ִ php ġÿ mysql θ + ذͰ MySQL ΰ Ʋ 쿡 ߻Ҽ ִ. + ǥ 찡 PHP rpm ġ ϰ MySQL source compile + ̴. PHP rpm ġ Ұ쿡 κ + /usr/lib/mysql ġϴ ̱ ̴. + + 1-3. MySQL mysql database db table Ȯ + + MySQL ó ġغ Quick_INSTALL MySQL κ + Ѵ. ߿ Installer ϱ ؼ DB ü ̸ + ȵȴ. root password ϱ⸦ ٶ. + + ϴ MySQL root login mysql database db table + Ʒ Ȯ Ѵ. + + mysql> use mysql; + mysql> desc db; + + +-----------------+---------------+------+-----+---------+-------+ + | Field | Type | Null | Key | Default | Extra | + +-----------------+---------------+------+-----+---------+-------+ + | Host | char(60) | | PRI | | | + | Db | char(32) | | PRI | | | + | User | char(16) | | PRI | | | + | Select_priv | enum('N','Y') | | | N | | + | Insert_priv | enum('N','Y') | | | N | | + | Update_priv | enum('N','Y') | | | N | | + | Delete_priv | enum('N','Y') | | | N | | + | Create_priv | enum('N','Y') | | | N | | + | Drop_priv | enum('N','Y') | | | N | | + | Grant_priv | enum('N','Y') | | | N | | + | References_priv | enum('N','Y') | | | N | | + | Index_priv | enum('N','Y') | | | N | | + | Alter_priv | enum('N','Y') | | | N | | + +-----------------+---------------+------+-----+---------+-------+ + 13 rows in set (0.00 sec) + + mysql> + + ʴ´ٸ ( column Ȯ + ) jsboard/Installer/act.php 37° query ÷ + Ѵ. + + 1-4. web server + + jsboard index file index.php ̴ ׷Ƿ httpd.conf + DirectoryIndex ڿ index.php ߰ ֵ Ѵ. .ph file + ؼ httpd.conf + + AddType application/x-httpd-php .php .php3 + + .ph ߰ ֵ Ѵ. + +2. JSBoard ġ + + ******* ǻ ******************************************************** + + ( ġ Ϸ ) Installer ʴ + . QUICK_INSTALL ϱ ٶ. Root ִ 鵵 + Installer ġ ÿ QUICK_INSTALL Ͽ ġ + غ ϱ ٶ. + + ⼭ Root ִ 鸸 شѴٴ !! + + ************************************************************************* + + + ϴ ϵ ġ Ű ϵ ۹̼ ϵ Ѵ. + jsboard/Installer/script Ʒ Ѵ. + ۹̼ 755 ϱ ٶ. + + ٽ ѹ Ǹ ִµ, QUICK_INSTALL ؾ Ѵ! + + $ ./root.sh + =================================================== + Scripted By JoungKyun Kim <admin@oops.org> + JSBoard Permission Configurations v1.0 + =================================================== + + ## Operating System : Redhat + ## Httpd Group : nobody + + Is right follow information? [Y/N](default Y) : y <--Enter + + DONE!!!! + $ + + root.sh ϸ ȴ. HTTPD ׷ nobody + ƴ϶ (debian www-data Ǿ ִ) nǴ N ְ ׷ + ٽ ϸ ȴ. Ʒ ð̴. + + Input Ur httpd group : + + ׸ ٽ jsboard/Installer/include/passwd.ph Ѵ. + + <?php + ###################################################### + # Specify MySQL Root Password + # mysql root password + + $passwd = ""; + + # apache (httpd.conf) θ + # redhat rpm package /etc/httpd/conf/httpd.conf + # debian package /etc/apache/httpd.conf + # ġ /usr/local/apache/etc/httpd.conf + # ġϴ 찡 . + + $apache_config_file = "/etc/httpd/conf/httpd.conf"; + + # MySQL socket file ġ . socket file + # 𸣰 localhost 127.0.0.1 + # . DB ܺο 쿡 ش DB ip + # address domain name ֵ ϸ, 쿡 + # DB mysql Ͽ + # Ѵ. + # + # socket file ġ ˰ ʹٸ + # netsatat -an | grep mysql + # ˼ ִ. + # + $mysql_sock = ":/var/lib/mysql/mysql.sock"; + ###################################################### + ?> + + passwd.ph ̸, "MySQL_ROOT_PASSWORD" κп MySQL root + password ־ ش. + + ׸ Ʒ apache web server httpd.conf ִ + ֵ Ѵ. DirectoryIndex ڸ srm.conf + srm.conf ġ ϱ ٶ. + + mysql sockfile θ ش. ̰ + + netstat -an | grep mysql + + ִ. 𸣰ڴ 127.0.0.1̳ localhost + ֵ Ѵ. tcp/ip ϴ ͺ unix socket ̿ϴ + ӵ sock file θ ˼ ִٸ ̸ ִ + . + + Ұ unix socket 쿡 socket file + տ : پ Ѵ. ( - :/var/lib/mysql/mysql.sock) + + http://domain.com/jsboard/Installer/ Ѵ. + + ------------------------------------------------------------------------- + JSBoard Installer + ------------------------------------------------------------------------- + + [ ] Korean [ ] English + + ------------------------------------------------------------------------- + [submit] + ------------------------------------------------------------------------- + + ȭ ̴. ⼭  ϵ Ѵ. + Ѵ. ϰ [submit] click ϵ Ѵ. + + + ------------------------------------------------------------------------- + JSBoard License + ------------------------------------------------------------------------- + + ........................................... + ........................................... + ........................................... + + ------------------------------------------------------------------------- + [AGREE] + ------------------------------------------------------------------------- + +  ϰ JSBoard ϱ License ´. о + Ǹ ϸ [AGREE] click Ѵ. + + + ------------------------------------------------------------------------- + JSBoard Installer + ------------------------------------------------------------------------- + + [ ] First Installation [ ] Upgrade + + ------------------------------------------------------------------------- + [submit] + ------------------------------------------------------------------------- + + ó ġ ϴ ׷̵带 ϴ ܿ츦 Ѵ. ٸ + Installer Upgrade ʴ´. QUICK_INSTALL + ϶ ޼ ̴. ׷ First Installation ϵ + . + + + ------------------------------------------------------------------------- + JSBoard Environment Check + ------------------------------------------------------------------------- + + Jsboard ϱ ȯ ˻ϰ ֽϴ + 5 Ŀ Ǽ ֽϴ + + Linux Browser ϽŴٸ + ڵ Ѿ ֽϴ. + ̶ QUICK_INSTALL ϼż ġ Ͻʽÿ + + ------------------------------------------------------------------------- + [ 5ʰ ٷ ּ ] + ------------------------------------------------------------------------- + + ߰ κ̴. κп Ư Ұ; 5ʰ ٸ⸸ + ȴ. κп OS Type, MySQL üũ, db table column üũ, + exec() Լ 뿩, httpd.conf index file , jsbaord + ϱ θ üũ Ѵ. + + * Ұ κ meta tag üũĿ Ѿ Ǿ + ִµ Linux Netscape Meta tag ۵ ϴ 찡 + . ̷ 쿡 windog install program ٽ ϴ Ǵ + QUICK_INSTALL ؼ ġ ϱ ٶ. + + ------------------------------------------------------------------------- + JSBoard Enviornment Check Reuslt + ------------------------------------------------------------------------- + + OS Type : Debian + MySQL check : Failed + + MySQL login и ߽ϴ. jsboard/Installer/include/passwd.ph + MySQL root password Ȯ Ȯ ֽð PHP ġÿ + --with-mysql ɼ  Ȯ ֽʽÿ + DB server Ǿ ִٸ QuickInstall Ͽ ġ Ͻ + ٶϴ + + exec() function check : OK + index file check : OK + + κп Ǿ 쿡 Ѹ 찡 + Ѵ. ̷ httpd.conf DirectoryIndex տ + ڰ ִ ڰ ̸ ָ ȴ. + + Fermission check : OK + + + ------------------------------------------------------------------------- + + ------------------------------------------------------------------------- + + ȭ ȯüũ ش. ϳ + ִµ OK̸ ȭ Ѿ + ߻ϸ ٽ ó ȭ ȴ. ߻ 쿡 Ͱ + ׵ ش. + + Ȥ MySQL login failed error ߻ϸ php file + ׽Ʈ ٶ. + + <?php + $c = mysql_connect(":socket file ġ","user name","password"); + if ($c) echo "OK"; + else echo "Failed"; + ?> + + Ͱ  OK ȴ. Ƹ Installer + failed ´ٸ ̰ failed ɰ̴. + + + ------------------------------------------------------------------------- + JSBoard Installer + ------------------------------------------------------------------------- + + MySQL password + [ ] + + Password ʱȭ [reset] + + ------------------------------------------------------------------------- + + ------------------------------------------------------------------------- + + ȭ鿡 MySQL root password ְ ͸ . Ʒ Password + ʱȭ [reset] Ŭϸ session ִ password + Ѵ. + + + ------------------------------------------------------------------------- + JSBoard Installer + ------------------------------------------------------------------------- + + DB name [ ] + DB user [ ] + DB pass [ ] + + [ E N T E R ] + ------------------------------------------------------------------------- + DB name DB user MySQL Ǿ ϼž մϴ. + ------------------------------------------------------------------------- + + JSBoard DB ԷѴ. Ʒ ҵ + MySQL ʴ ο DB naem, DB user ؾ Ѵ. + + ׸ Enter clickϸ, ٸ ٸ â + ̴. + + + Ϸ Ǿϴ. + Admin Page ̵ մϴ. + Admin Page ʱ Password + 0000 Դϴ. + + +3. JSBoard  + + ġ ÷ Ǿٸ Ѵ. 켱 ü + Ѵ. + + http://domain.com/jsboard/admin + + ϵ Ѵ. ׷ login â ̴. JSBoard ⺻ н + ʱⰪδ "0000" Ǿ н ϵ + Ѵ. (JSBoard ġ JSBoard 䱸ϴ н + "0000" ⺻ Ǿ ִ) + + +4. JSBoard + + CGI upload Ͽ ȹ ߻ ϰ ִ. + ܼ CGI ڵ常 Ͽ ȹ Ѵٴ + Ǿ apache file õ ε file ؼ + ʵ ϴ Ҵ. kldp + server Ǿ Ư ȣü + ϴ 쿡 JSBoard Ҽ ֱ + Ѵ. + + Ҽ ִ. + + <DirectoryMatch "^/.*/jsboard/data"> + AddType application/x-httpd-php3-source .phps .php .ph .php3 .cgi .sh .pl .html .htm .shtml .vbs .ins + AddType application/x-httpd-php-source .phps .php .ph .php3 .cgi .sh .pl .html .htm .shtml .vbs .ins + + ErrorDocument 403 http://jsboard.kldp.org/ErrorMSG/error_msg.php?l=ko&c=403 + + <Files ~ ".*\.ph$"> + Order allow,deny + Deny from all + </Files> + </DirectoryMatch> + + ǹ̴ jsboard/data 丮 Ʒ ִ  data + ̸ 丮 .phps .php .ph .php3 .cgi .vbs .ins .sh .pl .htm + .html .shtml Ȯڸ source ϶ ǹ̸ + Ұ ⿡ н  ִ source ÷ ȵȴ + ؾ Ѵ. δ Խ 丮 ̸  ϴĿ + Ѵ. + + data ̸ 丮 Ʒ .ph 쿡 + http://jsboard.kldp.org/ErrorMSG/error_msg.php?l=ko&c=403 + ϶ ǹ̴. + + root Ѹ ִ + ̶ ص ڿ ޶ ϴ° + . ؼ ϳ ״ Ƹ ̴. + + ؿ  DZ⸦ ٶ鼭.. ׷.. + + +5. UPGRADE + + # QUICK_ISTALL ϵ Ѵ. + + jsboard-1.2 ū ȭ Ȯ ȭ̴. 1.1.x .php3 + Ȯڸ jsbaord-1.2 ʹ .php ̸ + Ǿ. ׷ ҽ ϸ ȵȴ. + + jsboard-1.2.x ڵ ׳ ҽ ص ȴ. + + ϴ 丮 jsabord-1.3 version Ǯ Ѵ. + Insatller/script/ ̵ Ͽ root.sh ϵ Ѵ. ׸ + data/ ִ 丮 1.3/data copy ϵ ϰ, + admin/include/config.ph 1.3/admin/include īǸ Ѵ. + + īǸ Ŀ ٽ Installer/script ̵ Ŀ root_p.sh + Ѵ. ( root.sh root_p.sh ƴ account_p.sh + account.sh ̿ؾ Ѵ.) + + config/global.ph 缳 ش. κ DB + κи ϰ 缳 ϵ Ѵ. ׸ Խ + ڷ Ͽ ѹ 缳 ֵ Ѵ. + + JSBoard 1.3 ʹ Խ admin link ⺻ ʰ Ǿ ִ. + ̰ ̰ ְ ʹٸ + + http://domain.com/jsboard/admin/user_admin/auth.php?table=Խ̸ + + Ͽ ̵ Ѵ. + +6. ֽű ϱ + + 6-1. ֽű + + JSBoard ֽű ϴ ̴. include/prelist.ph + Ǹ Ͽ Ͽ Ҽ ִ.( php + ɼ ִ ̾ Ѵ) + + 6-2. ֽű + + ϴ jsboard/include/prelist.ph $prlist[path] $prlist[wpath] + ؾ Ѵ. $prlist[path] JSBoard ġ Ǿ ִ + θ ָ, $prlist[wpath] JSBoard µǴ θ + Ѵ. Ұ / ʵ Ѵ. + + ) + $prlist[path] = "/home/httpd/html/PHP/jsboard"; + $prlist[wpath] = "http://domain.com/PHP/jsboard"; + + ϴ ڸ 켱 ֽű ܿ + ڵ带 Ѵ. (߿ ų php + ɼ ִ ̾ Ѵ. Ȯڰ .php3 php νҼ + 쿡 .php3 file ִ. + ̶ Ʈ κ ̸ ȴ.) + + <? + include "/prelist.ph"; + ?> + + Ʈ ϴ κп Լ ֵ Ѵ. + + <? prelist("a","b","c","d","e","f","g","h","i"); ?> + + prelist() Լ 鿡 ؼ Ʒ ϶. + + a ̺ ̸(Խ ̸) + b include file ( 1 - 0 - Ծ ) + κ ؾ Ѵ. ϳ ԽǸ ҷ + 1 Ѵ. Խ ҷ + ֹ° Լ ʹ 0 Ǿ Ѵ. + c Ʈ + d ±ڼ + e ̸ ( 1 - 0 - ) + f ( 1 - 0 - ) + g ̸ ( 1 - 0 - ) + h ȸ ( 1 - 0 - ) + i ũ ɼ (: target onClick ) + + + Խ ϰ ʹٸ ڵ + Ѽ ָ ȴ. + + ) + + test Խ 3 ̸<br> + <? prelist("test",1,3,30,1,1,1,1,""); ?> + + <p> + test1 Խ 5 ̸<br> + <? prelist("test1",0,5,30,1,1,1,1,""); ?> + + ⼭ Ұ ι° Խ ѷ ٶ ι° ʵ 0 ȴ + Ѵ. ù° Խ ѷ ٶ 1 Ǿ ϰ, ι° + Խǿ 0 Ѵ. + + ϴ, ϸ μ ƹ ξ پ ѷְ + ȴ. ϴ ϰ ʹٸ jsboard/include/prelist.ph ߾ + ִ print_prlist() Լ echo ϸ ȴ. + + table tag 쿡 ؾ ִ.  + ̴. + + > + + <table> + <? prelist(......) ?> + </table> + + ؾ ϸ prelist.ph print_prlist() Լ Ʒ + Ǿ Ѵ. + + function print_prlist($p) { + echo "<tr> + <td>$p[link]</td> + <td>$p[name]</td> + <td>$p[date]</td> + <td>$p[count]</td> + </tr>\n"; + } + + ̺ ϳ ϳ tr DZ for + print_prlist() Լ ݺ Ǿ DZ + Ǿ ϴ ̴. ˾Ƽ ϱ ٶ. + +7. Bug report + + ׸ ߰ http://jsboard.kldp.org/bbs/list.php?table=bbs_upgrade + ָ ϰڴ diff --git a/Installer/MySQL.txt b/Installer/MySQL.txt new file mode 100644 index 00000000..3eb02575 --- /dev/null +++ b/Installer/MySQL.txt @@ -0,0 +1,62 @@ + MySQL Queries + + SQLʺڵ JSBoard ġԿ ־ +MySQL ̴ query ҰѴ. +[] ѷ ׿ ִ ͵ ̴. + + +* MySQL login ϱ + + shell> mysql -u DB_user -p [DB_name] + +* DB ϱ + MySQL α Ҷ DB_name ʾ + 쿡 ϰų ٸ DB ۾ ű涧 + + mysql> use DB_name + +* DB + + mysql> create database DB_name; + mysql> drop database DB_name; + +* table + table mysql ڼ Ѵ. + + mysql> create table Table_name (field0,fiedl1,field2....); + mysql> drop table Table_name; + +* DB Table list + + mysql> show databases; + mysql> show tables; + +* Table Ӽ + + mysql> desc Table_name; + +* User ϱ + Ʒ value ִ DB_USER DB_PASS ش. + db ܺο ϰ Ϸ localhost ſ "%" + Ѵ. Ǵ 뿪 Ҽ ִ. + + mysql> insert into user (Host,User,Password) values('localhost','DB_USER',password('DB_PASS')); + +* DB ϱ + ߿ colum ڰ Ʋ desc db; colum + Ȯϰ Ѵ. + + mysql> insert into db values('localhost','DB_NAME','DB_USER','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); + +* MySQL user password ϱ + + mysql> use mysql + mysql> update from user set password('NEW_PASSWORD') where user = 'USER_NAME'; + +* MySQL reload ϱ + н带 ϰų ο ,DB ϰ reload + Ѵ. reload ΰ ִ. ϳ MySQL ϴ ̰ + ϳ shell󿡼 ϴ ̴. + + mysql> flush privileges; + shell> mysqladmin -u root --password=MySQL_PASSWORD reload diff --git a/Installer/SQL/mysql_freebsd.sql b/Installer/SQL/mysql_freebsd.sql new file mode 100644 index 00000000..94070516 --- /dev/null +++ b/Installer/SQL/mysql_freebsd.sql @@ -0,0 +1,33 @@ +# +# Table structure for table 'test' +# +CREATE TABLE test ( + no int(6) DEFAULT '0' 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, + 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, + moder int(1) 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), + PRIMARY KEY (no) +); diff --git a/Installer/SQL/mysql_linux.sql b/Installer/SQL/mysql_linux.sql new file mode 100644 index 00000000..5618ce49 --- /dev/null +++ b/Installer/SQL/mysql_linux.sql @@ -0,0 +1,33 @@ +# +# Table structure for table 'test' +# +CREATE TABLE test ( + no int(6) DEFAULT '0' 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, + passwd varchar(13), + 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, + moder int(1) 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), + PRIMARY KEY (no) +); diff --git a/Installer/SQL/sql.txt b/Installer/SQL/sql.txt new file mode 100644 index 00000000..45c0430f --- /dev/null +++ b/Installer/SQL/sql.txt @@ -0,0 +1,28 @@ ++--------+--------------+------+-----+---------+----------------+ +| Field | Type | Null | Key | Default | Extra | ++--------+--------------+------+-----+---------+----------------+ +| no | int(6) | | PRI | 0 | auto_increment | ȣ +| num | int(6) | | MUL | 0 | | Խ ȣ +| idx | int(6) | | MUL | 0 | | index ȣ +| date | int(11) | | MUL | 0 | | ¥ +| host | tinytext | YES | | NULL | | ۾ ּ +| name | tinytext | YES | | NULL | | ۾ ̸ +| passwd | varchar(13) | YES | | NULL | | ۾ ȣ +| email | tinytext | YES | | NULL | | ۾ +| url | tinytext | YES | | NULL | | ۾ Ȩ +| title | tinytext | YES | | NULL | | +| text | mediumtext | YES | | NULL | | +| refer | int(6) | | | 0 | | ȸ +| reyn | int(1) | | | 0 | | +| reno | int(6) | | MUL | 0 | | θ ȣ +| rede | int(6) | | | 0 | | +| reto | int(6) | | MUL | 0 | | ֻ θ +| html | int(1) | | | 1 | | HTML tag 뿩 +| moder | int(1) | | | 0 | | ? +| bofile | varchar(100) | YES | | NULL | | ε ̸ +| bcfile | varchar(100) | YES | | NULL | | ε 丮 +| bfsize | int(4) | YES | | NULL | | ++--------+--------------+------+-----+---------+----------------+ + +moder column ǹ̴ <redhand@linux.sarang.net> +ʽÿ ^^; \ No newline at end of file diff --git a/Installer/act.php b/Installer/act.php new file mode 100644 index 00000000..dc5b789b --- /dev/null +++ b/Installer/act.php @@ -0,0 +1,110 @@ +<?php +session_start(); // session Ѵ. +$path[type] = "Install"; + +if ($langss == "ko") $langs[code] = "ko"; +else $langs[code] = "en"; + +include "../include/ostype.ph"; +include "../include/lang.ph"; +include "../include/get.ph"; +include "../include/error.ph"; +include "./include/passwd.ph"; +include "./include/check.ph"; + +# Password Checkk +inst_pwcheck($passwd,$mysqlpass,$langs[act_pw]); + +# MySQL login +$connect = mysql_connect("localhost","root",$passwd) or die("$langs[inst_sql_err]"); +$indb[lists] = mysql_list_dbs($connect); +$indb[num] = mysql_num_rows($indb[lists]); +mysql_select_db("mysql", $connect); + +# install.php Ѿ üũ +$indb[check] = inst_check(); + +# DB chek MySQL +if ($indb[check]) { + # MySQL DB + $create[dbname] = "create database $dbinst[name]"; + $result[dbname] = mysql_query($create[dbname],$connect); + + # User user table + $create[dbuser] = "insert into user (Host,User,Password) values('localhost','$dbinst[user]',password('$dbinst[pass]')) "; + $result[dbuser] = mysql_query($create[dbuser], $connect ); + + # DB User db table + $create[dbreg] = "insert into db values('localhost','$dbinst[name]','$dbinst[user]','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y') "; + $result[dbreg] = mysql_query($create[dbreg], $connect ); + + # test Խ + mysql_select_db($dbinst[name],$connect); + + $create[table] = "CREATE TABLE test ( + no int(6) DEFAULT '0' 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, + passwd varchar($ostypes[pfield]), + 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, + moder int(1) 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), + PRIMARY KEY (no))"; + + require("../admin/include/first_reg.ph"); + $passwd_ext = crypt($passwd_ext); + + $create[data] = "insert into test 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,'','','')"; + + $result[table] = mysql_query($create[table], $connect ); + $result[data] = mysql_query($create[data], $connect ); + + # ϵ user MySQL reload + $create[reload] = "flush privileges"; + $result[reload] = mysql_query($create[reload], $connect ); + + # Ͽ DB Է + $create[gfile] = "../config/global.ph"; + $create[str] = file_operate($create[gfile],"r","Can't open $create[gfile]"); + + $create[str] = ereg_replace("DBname",$dbinst[name],$create[str]); + $create[str] = ereg_replace("DBpass",$dbinst[pass],$create[str]); + $create[str] = ereg_replace("DBuser",$dbinst[user],$create[str]); + + file_operate($create[gfile],"w","Can't update $create[gfile]",$create[str]); + + # ʱȭ + $dbinst[name] = ""; + $dbinst[user] = ""; + $dbinst[pass] = ""; + +} else print_error("$langs[inst_error]"); + +mysql_close(); + +echo "<script>\n" . + " document.location='session.php?mode=first&langss=$langss'\n" . + "</script>"; + +?> diff --git a/Installer/ad_sample/FreeBSD/allow_browser.txt.orig b/Installer/ad_sample/FreeBSD/allow_browser.txt.orig new file mode 100644 index 00000000..515fe799 --- /dev/null +++ b/Installer/ad_sample/FreeBSD/allow_browser.txt.orig @@ -0,0 +1,5 @@ +Mozilla +Lynx +Gulliver +HotJava +w3m diff --git a/Installer/ad_sample/FreeBSD/config.ph.orig b/Installer/ad_sample/FreeBSD/config.ph.orig new file mode 100644 index 00000000..b4e89ff4 --- /dev/null +++ b/Installer/ad_sample/FreeBSD/config.ph.orig @@ -0,0 +1,4 @@ +<? +$sadmin[pern] = 10; # ü table +$sadmin[passwd] = "\$1\$Cx\$.2OyfWZCiPTc4sSw0vswc/"; # ü password +?> diff --git a/Installer/ad_sample/FreeBSD/global.ph.orig b/Installer/ad_sample/FreeBSD/global.ph.orig new file mode 100644 index 00000000..c025645f --- /dev/null +++ b/Installer/ad_sample/FreeBSD/global.ph.orig @@ -0,0 +1,237 @@ +<? + +############################################################################## +# Խ 㰡 , 0 - ڸ 㰡 +# 1 - 㰡 +# +# Ұ ⼭ 㸦 ϸ Խ ڵ ѵ 㰡 +############################################################################## +$enable[write] = 1; # ۾ 㰡 +$enable[reply] = 1; # 㰡 +$enable[edit] = 1; # 㰡 +$enable[delete] = 1; # 㰡 + + +############################################################################## +# û +############################################################################## +$enable[ore] = 0; # 0 - 1 - û + + +############################################################################## +# Ÿ̽ +############################################################################## +$db[server] = ":/var/local/mysql/mysql.sock"; # ּ +$db[user] = "DBuser"; # +$db[pass] = "DBpass"; # н +$db[name] = "DBname"; # ̸ + + +############################################################################### +# ˸ +############################################################################### +$enable[security] = "test"; # Խ ̸ . none + + +############################################################################## +# Խ ⺻ +############################################################################## +$board[title] = "Խ"; # Խ +$board[width] = 550; # Խ ʺ +$board[tit_l] = 42; # ʵ ִ +$board[nam_l] = 8; # ۾ ʵ ִ +$board[perno] = 10; # Խù +$board[plist] = 2; # (x2+1) + +$board[moder] = 0; # Ƽ Խ +$board[date_fmt] = "Y.m.d"; # ¥ ǥ +$board[img] = "yes"; # Image ޴ +$board[cmd] = "no"; # +$board[uconf] = "yes"; # ϴ° 㰡 + +# Ѵܾ ̺ þ° . װ Ƿ +# . ׳ INSTALL.txt bug +$board[wrap] = 0; + +# $board[wrap] ʴ ؼ ½ÿ +# <br> ų ġ ڼ . ⼭ ⺻ ϸ +# Խ ڿ . +$board[wwrap] = 120; + +# Ű Ⱓ () +$board[cookie] = 30; + +# ˻ ڿ ̶Ʈ (STR ˻ ڿ ġȯ) +$board[hl] = "<FONT COLOR=#000000><B><U>STR</U></B></FONT>"; + +# ڿ style sheel +$board[css] = "style=\"line-height=120%\""; + +# Խ ̺ align. ʾ +# ⺻ align +$board[align] = "center"; + + +############################################################################## +# Խ ⺻ (Theme Ҷ ) +############################################################################## + +# Theme 뿩 +$color[theme] = 1; # "1" : 밡 "0" : + +# Background Image +$color[image] = ""; + +# HTML ⺻ +$color[bgcol] = "#000000"; # BGCOLOR +$color[text] = "#ffffff"; # TEXT +$color[link] = "#555555"; # LINK +$color[vlink] = "#555555"; # VLINK +$color[alink] = "#555555"; # ALINK + +# +# +# ++======+====================+========+======+========++ <-- ׵θ --+ +# || ȣ | | ۾ | ¥ | || <-- --|--+ +# |+------+--------------------+--------+------+--------+| | | +# || | | | | || <-- | | +# |+------+--------------------+--------+------+--------+| | | +# || > | RE: | | | || <-- | | +# |+------+--------------------+--------+------+--+-----+| | | +# || | | | | <--------- ö | | +# |+------+--------------------+--------+------+--+-----+| ǥ | | +# || > | RE: | | | | || | | +# ++------+--------------------+--------+------+--+-----++ | | +# | ??? , ??? ֽϴ. | <- () -|--+ +# +------------------------------------------------------+ | +# | < 1 2 3 4 > | <-+ | +# | | | | +# | ______________________ ˻ <---|---|----------+ +# +------------------------------------------------------+ | +# | | ۾ | | +-- +# ǥ +$color[n0_fg] = "#999999"; # Ϲ +$color[n0_bg] = "#ffffff"; # Ϲ +$color[n1_fg] = "#666666"; # Ұ +$color[n2_bg] = "#FFFFFF"; # +$color[n2_fg] = "#555555"; # + +# +$color[l0_bg] = "#333333"; # ׵θ +$color[l0_fg] = "#ffffff"; # ׵θ +$color[l1_bg] = "#666666"; # +$color[l1_fg] = "#ffffff"; # +$color[l2_bg] = "#efefef"; # +$color[l2_fg] = "#000000"; # +$color[l3_bg] = "#dfdfdf"; # +$color[l3_fg] = "#000000"; # + +$color[td_co] = "#888888"; # ö ǥ +$color[cp_co] = "#ffaa00"; # ǥ + +# +# +# ++================+=================+=================++ <-- ׵θ --+ +# || .... : || | +# |+----------------+-----------------+-----------------+| | +# || ۾ | ۾ | || <-- | +# |+----------------+-----------------+-----------------+| | +# || || | +# |+----------------+-----------------+-----------------+| | +# || || | +# || || | +# || || | +# || ۳ || | +# || || | +# || || | +# || || | +# |+----------------------------------------------------+| | +# | | | +# | ______________________ ˻ <---|--------------+ +# +------------------------------------------------------+ +# | Ϻ | | | ۾ | + +# +$color[r0_bg] = "#333333"; # ׵θ +$color[r0_fg] = "#ffffff"; # ׵θ +$color[r1_bg] = "#666666"; # +$color[r1_fg] = "#ffffff"; # +$color[r2_bg] = "#dfdfdf"; # +$color[r2_fg] = "#000000"; # +$color[r3_bg] = "#efefef"; # ۳ +$color[r3_fg] = "#000000"; # ۳ +$color[r4_bg] = "#cacaca"; # +$color[r4_fg] = "#000000"; # + +############################################################################## +# file upload . Խ ü 㰡 Ѵ. ⼭ no +# ϸ Խ ü file upload Ѵ. +############################################################################## +$upload[yesno] = "yes"; # upload +$upload[dir] = "files"; # upload file ġҰ +$upload[maxsize]= "2000000"; # upload max size + + +############################################################################## +# url,email +############################################################################## +$view[url] = "yes"; +$view[email] = "yes"; + + +############################################################################## +# mail ߼ +############################################################################## +$rmail[uses] = "yes"; +# MTA type +# 1 - socket type ߼ (sendmail only) +# 0 - php mail() Լ (sendmail Ǵ sendmail ̿ mta ) +$rmail[mta] = 1; +# ߼ +$rmail[smtp] = "127.0.0.1"; +# jsboard ġǾ ִ +$rmail[bbshome] = "http://url.com/jsboard/"; + + +############################################################################## +# ( : en , : ko ) +############################################################################## +$langs[code] = "ko"; + + +############################################################################## +# ۳ ̸ +############################################################################## +$list[pre] = 0; # ̸ +$list[preren] = 100; # ̸ 㰡 + + +############################################################################## +# Ʒ Ͽ Ͻ superuser password 䱸 +############################################################################## +$compare[name] = ""; +$compare[email] = "user@localhost.com"; + + +############################################################################## +# ǵ Ѵ!!!!! +############################################################################## +if(file_exists("config/default.themes") && $color[theme]) + { include("config/default.themes"); } + +if(trim($table)) { + if (eregi("[^a-z0-9_\-]",$table)) { + echo "<SCRIPT>\n". + "alert('Can\'t use special characters except\\nalphabat, numberlic , _, - charcters')\n". + "history.back()\n". + "</SCRIPT>\n"; + exit; + } + + if(@file_exists("data/$table/config.ph") && $board[uconf] == "yes") + { @include("data/$table/config.ph"); } + if(@file_exists("data/$table/default.themes") && $color[theme]) + { @include("data/$table/default.themes"); } +} + +?> diff --git a/Installer/ad_sample/FreeBSD/security_data.ph.orig b/Installer/ad_sample/FreeBSD/security_data.ph.orig new file mode 100644 index 00000000..80ac8878 --- /dev/null +++ b/Installer/ad_sample/FreeBSD/security_data.ph.orig @@ -0,0 +1,5 @@ +<? +$security[stamp] = 1; +$security[serial] = 1; +$security[prints] = 0; +?> diff --git a/Installer/ad_sample/FreeBSD/spam_list.txt.orig b/Installer/ad_sample/FreeBSD/spam_list.txt.orig new file mode 100644 index 00000000..e69de29b diff --git a/Installer/ad_sample/Linux/allow_browser.txt.orig b/Installer/ad_sample/Linux/allow_browser.txt.orig new file mode 100644 index 00000000..515fe799 --- /dev/null +++ b/Installer/ad_sample/Linux/allow_browser.txt.orig @@ -0,0 +1,5 @@ +Mozilla +Lynx +Gulliver +HotJava +w3m diff --git a/Installer/ad_sample/Linux/config.ph.orig b/Installer/ad_sample/Linux/config.ph.orig new file mode 100644 index 00000000..bfdaa7fc --- /dev/null +++ b/Installer/ad_sample/Linux/config.ph.orig @@ -0,0 +1,4 @@ +<? +$sadmin[pern] = 10; # ü table +$sadmin[passwd] = "lHJTjGW8VhHc."; # ü password +?> diff --git a/Installer/ad_sample/Linux/global.ph.orig b/Installer/ad_sample/Linux/global.ph.orig new file mode 100644 index 00000000..13004551 --- /dev/null +++ b/Installer/ad_sample/Linux/global.ph.orig @@ -0,0 +1,236 @@ +<? + +############################################################################## +# Խ 㰡 , 0 - ڸ 㰡 +# 1 - 㰡 +# +# Ұ ⼭ 㸦 ϸ Խ ڵ ѵ 㰡 +############################################################################## +$enable[write] = 1; # ۾ 㰡 +$enable[reply] = 1; # 㰡 +$enable[edit] = 1; # 㰡 +$enable[delete] = 1; # 㰡 + + +############################################################################## +# û +############################################################################## +$enable[ore] = 0; # 0 - 1 - û + + +############################################################################## +# Ÿ̽ +############################################################################## +# 쿡 $db[server] :/var/run/mysqld/mysqld.sock Ұ +$db[server] = ":/var/lib/mysql/mysql.sock"; # ּ +$db[user] = "DBuser"; # +$db[pass] = "DBpass"; # н +$db[name] = "DBname"; # ̸ + + +############################################################################### +# ˸ +############################################################################### +$enable[security] = "test"; # Խ ̸ . none + + +############################################################################## +# Խ ⺻ +############################################################################## +$board[title] = "Խ"; # Խ +$board[width] = 550; # Խ ʺ +$board[tit_l] = 42; # ʵ ִ +$board[nam_l] = 8; # ۾ ʵ ִ +$board[perno] = 10; # Խù +$board[plist] = 2; # (x2+1) + +$board[moder] = 0; # Ƽ Խ +$board[date_fmt] = "Y.m.d"; # ¥ ǥ +$board[img] = "yes"; # Image ޴ +$board[cmd] = "no"; # +$board[uconf] = "yes"; # ϴ° 㰡 + +# Ѵܾ ̺ þ° . װ Ƿ +# . ׳ INSTALL.txt bug +$board[wrap] = 0; + +# $board[wrap] ʴ ؼ ½ÿ +# <br> ų ġ ڼ . ⼭ ⺻ ϸ +# Խ ڿ . +$board[wwrap] = 120; + +# Ű Ⱓ () +$board[cookie] = 30; + +# ˻ ڿ ̶Ʈ (STR ˻ ڿ ġȯ) +$board[hl] = "<FONT COLOR=#000000><B><U>STR</U></B></FONT>"; + +# ڿ style sheel +$board[css] = "style=\"line-height=120%\""; + +# Խ ̺ align. ʾ +# ⺻ align +$board[align] = "center"; + +############################################################################## +# Խ ⺻ (Theme Ҷ ) +############################################################################## + +# Theme 뿩 +$color[theme] = 1; # "1" : 밡 "0" : + +# Background Image +$color[image] = ""; + +# HTML ⺻ +$color[bgcol] = "#000000"; # BGCOLOR +$color[text] = "#ffffff"; # TEXT +$color[link] = "#555555"; # LINK +$color[vlink] = "#555555"; # VLINK +$color[alink] = "#555555"; # ALINK + +# +# +# ++======+====================+========+======+========++ <-- ׵θ --+ +# || ȣ | | ۾ | ¥ | || <-- --|--+ +# |+------+--------------------+--------+------+--------+| | | +# || | | | | || <-- | | +# |+------+--------------------+--------+------+--------+| | | +# || > | RE: | | | || <-- | | +# |+------+--------------------+--------+------+--+-----+| | | +# || | | | | <--------- ö | | +# |+------+--------------------+--------+------+--+-----+| ǥ | | +# || > | RE: | | | | || | | +# ++------+--------------------+--------+------+--+-----++ | | +# | ??? , ??? ֽϴ. | <- () -|--+ +# +------------------------------------------------------+ | +# | < 1 2 3 4 > | <-+ | +# | | | | +# | ______________________ ˻ <---|---|----------+ +# +------------------------------------------------------+ | +# | | ۾ | | +-- +# ǥ +$color[n0_fg] = "#999999"; # Ϲ +$color[n0_bg] = "#ffffff"; # Ϲ +$color[n1_fg] = "#666666"; # Ұ +$color[n2_bg] = "#FFFFFF"; # +$color[n2_fg] = "#555555"; # + +# +$color[l0_bg] = "#333333"; # ׵θ +$color[l0_fg] = "#ffffff"; # ׵θ +$color[l1_bg] = "#666666"; # +$color[l1_fg] = "#ffffff"; # +$color[l2_bg] = "#efefef"; # +$color[l2_fg] = "#000000"; # +$color[l3_bg] = "#dfdfdf"; # +$color[l3_fg] = "#000000"; # + +$color[td_co] = "#888888"; # ö ǥ +$color[cp_co] = "#ffaa00"; # ǥ + +# +# +# ++================+=================+=================++ <-- ׵θ --+ +# || .... : || | +# |+----------------+-----------------+-----------------+| | +# || ۾ | ۾ | || <-- | +# |+----------------+-----------------+-----------------+| | +# || || | +# |+----------------+-----------------+-----------------+| | +# || || | +# || || | +# || || | +# || ۳ || | +# || || | +# || || | +# || || | +# |+----------------------------------------------------+| | +# | | | +# | ______________________ ˻ <---|--------------+ +# +------------------------------------------------------+ +# | Ϻ | | | ۾ | + +# +$color[r0_bg] = "#333333"; # ׵θ +$color[r0_fg] = "#ffffff"; # ׵θ +$color[r1_bg] = "#666666"; # +$color[r1_fg] = "#ffffff"; # +$color[r2_bg] = "#dfdfdf"; # +$color[r2_fg] = "#000000"; # +$color[r3_bg] = "#efefef"; # ۳ +$color[r3_fg] = "#000000"; # ۳ +$color[r4_bg] = "#cacaca"; # +$color[r4_fg] = "#000000"; # + +############################################################################## +# file upload . Խ ü 㰡 Ѵ. ⼭ no +# ϸ Խ ü file upload Ѵ. +############################################################################## +$upload[yesno] = "yes"; # upload +$upload[dir] = "files"; # upload file ġҰ +$upload[maxsize]= "2000000"; # upload max size + + +############################################################################## +# url,email +############################################################################## +$view[url] = "yes"; +$view[email] = "yes"; + + +############################################################################## +# mail ߼ +############################################################################## +$rmail[uses] = "yes"; +# MTA type +# 1 - socket type ߼ (sendmail only) +# 0 - php mail() Լ (sendmail Ǵ sendmail ̿ mta ) +$rmail[mta] = 1; +# ߼ +$rmail[smtp] = "127.0.0.1"; +# jsboard ġǾ ִ +$rmail[bbshome] = "http://url.com/jsboard/"; + + +############################################################################## +# ( : en , : ko ) +############################################################################## +$langs[code] = "ko"; + + +############################################################################## +# ۳ ̸ +############################################################################## +$list[pre] = 0; # ̸ +$list[preren] = 100; # ̸ 㰡 + + +############################################################################## +# Ʒ Ͽ Ͻ superuser password 䱸 +############################################################################## +$compare[name] = ""; +$compare[email] = "user@localhost.com"; + + +############################################################################## +# ǵ Ѵ!!!!! +############################################################################## +if(@file_exists("config/default.themes") && $color[theme]) + { include("config/default.themes"); } + +if(trim($table)) { + if (eregi("[^a-z0-9_\-]",$table)) { + echo "<SCRIPT>\n". + "alert('Can\'t use special characters except\\nalphabat, numberlic , _, - charcters')\n". + "history.back()\n". + "</SCRIPT>\n"; + exit; + } + + if(@file_exists("data/$table/config.ph") && $board[uconf] == "yes") + { @include("data/$table/config.ph"); } + if(@file_exists("data/$table/default.themes") && $color[theme]) + { @include("data/$table/default.themes"); } +} +?> diff --git a/Installer/ad_sample/Linux/security_data.ph.orig b/Installer/ad_sample/Linux/security_data.ph.orig new file mode 100644 index 00000000..80ac8878 --- /dev/null +++ b/Installer/ad_sample/Linux/security_data.ph.orig @@ -0,0 +1,5 @@ +<? +$security[stamp] = 1; +$security[serial] = 1; +$security[prints] = 0; +?> diff --git a/Installer/ad_sample/Linux/spam_list.txt.orig b/Installer/ad_sample/Linux/spam_list.txt.orig new file mode 100644 index 00000000..e69de29b diff --git a/Installer/ad_sample/Others/README b/Installer/ad_sample/Others/README new file mode 100644 index 00000000..62f798c9 --- /dev/null +++ b/Installer/ad_sample/Others/README @@ -0,0 +1,18 @@ +Linux, FreeBSD ýۿ crypt ȣ +׽Ʈ Ͽ config.ph.orig ּž մϴ. + +ϴ test.php ϰ + +<? +$a = crypt("0000"); +echo "+$a+"; +?> + + ְ test.php ȣϸ ++¼¼+ ϰ ˴ϴ. ׷ + ȣ +̿ ִ κ config.ph.orig $sadmin[pssswd] + ־ ֽø ˴ϴ. Ͻ +$ Ư ȣ \ڸ Ͽ ڿ ó + ּž մϴ. + + diff --git a/Installer/ad_sample/Others/allow_browser.txt.orig b/Installer/ad_sample/Others/allow_browser.txt.orig new file mode 100644 index 00000000..14992886 --- /dev/null +++ b/Installer/ad_sample/Others/allow_browser.txt.orig @@ -0,0 +1,4 @@ +Mozilla +Lynx +Gulliver +HotJava \ No newline at end of file diff --git a/Installer/ad_sample/Others/config.ph.orig b/Installer/ad_sample/Others/config.ph.orig new file mode 100644 index 00000000..bfdaa7fc --- /dev/null +++ b/Installer/ad_sample/Others/config.ph.orig @@ -0,0 +1,4 @@ +<? +$sadmin[pern] = 10; # ü table +$sadmin[passwd] = "lHJTjGW8VhHc."; # ü password +?> diff --git a/Installer/ad_sample/Others/global.ph.orig b/Installer/ad_sample/Others/global.ph.orig new file mode 100644 index 00000000..e3d84311 --- /dev/null +++ b/Installer/ad_sample/Others/global.ph.orig @@ -0,0 +1,235 @@ +<? + +############################################################################## +# Խ 㰡 , 0 - ڸ 㰡 +# 1 - 㰡 +# +# Ұ ⼭ 㸦 ϸ Խ ڵ ѵ 㰡 +############################################################################## +$enable[write] = 1; # ۾ 㰡 +$enable[reply] = 1; # 㰡 +$enable[edit] = 1; # 㰡 +$enable[delete] = 1; # 㰡 + + +############################################################################## +# û +############################################################################## +$enable[ore] = 0; # 0 - 1 - û + + +############################################################################## +# Ÿ̽ +############################################################################## +$db[server] = ":/var/lib/mysql/mysql.sock"; # ּ +$db[user] = "DBuser"; # +$db[pass] = "DBpass"; # н +$db[name] = "DBname"; # ̸ + + +############################################################################### +# ˸ +############################################################################### +$enable[security] = "test"; # Խ ̸ . none + + +############################################################################## +# Խ ⺻ +############################################################################## +$board[title] = "Խ"; # Խ +$board[width] = 550; # Խ ʺ +$board[tit_l] = 42; # ʵ ִ +$board[nam_l] = 8; # ۾ ʵ ִ +$board[perno] = 10; # Խù +$board[plist] = 2; # (x2+1) + +$board[moder] = 0; # Ƽ Խ +$board[date_fmt] = "Y.m.d"; # ¥ ǥ +$board[img] = "yes"; # Image ޴ +$board[cmd] = "no"; # +$board[uconf] = "yes"; # ϴ° 㰡 + +# Ѵܾ ̺ þ° . װ Ƿ +# . ׳ INSTALL.txt bug +$board[wrap] = 0; + +# $board[wrap] ʴ ؼ ½ÿ +# <br> ų ġ ڼ . ⼭ ⺻ ϸ +# Խ ڿ . +$board[wwrap] = 120; + +# Ű Ⱓ () +$board[cookie] = 30; + +# ˻ ڿ ̶Ʈ (STR ˻ ڿ ġȯ) +$board[hl] = "<FONT COLOR=#000000><B><U>STR</U></B></FONT>"; + +# ڿ style sheel +$board[css] = "style=\"line-height=120%\""; + +# Խ ̺ align. ʾ +# ⺻ align +$board[align] = "center"; + +############################################################################## +# Խ ⺻ (Theme Ҷ ) +############################################################################## + +# Theme 뿩 +$color[theme] = 1; # "1" : 밡 "0" : + +# Background Image +$color[image] = ""; + +# HTML ⺻ +$color[bgcol] = "#000000"; # BGCOLOR +$color[text] = "#ffffff"; # TEXT +$color[link] = "#555555"; # LINK +$color[vlink] = "#555555"; # VLINK +$color[alink] = "#555555"; # ALINK + +# +# +# ++======+====================+========+======+========++ <-- ׵θ --+ +# || ȣ | | ۾ | ¥ | || <-- --|--+ +# |+------+--------------------+--------+------+--------+| | | +# || | | | | || <-- | | +# |+------+--------------------+--------+------+--------+| | | +# || > | RE: | | | || <-- | | +# |+------+--------------------+--------+------+--+-----+| | | +# || | | | | <--------- ö | | +# |+------+--------------------+--------+------+--+-----+| ǥ | | +# || > | RE: | | | | || | | +# ++------+--------------------+--------+------+--+-----++ | | +# | ??? , ??? ֽϴ. | <- () -|--+ +# +------------------------------------------------------+ | +# | < 1 2 3 4 > | <-+ | +# | | | | +# | ______________________ ˻ <---|---|----------+ +# +------------------------------------------------------+ | +# | | ۾ | | +-- +# ǥ +$color[n0_fg] = "#999999"; # Ϲ +$color[n0_bg] = "#ffffff"; # Ϲ +$color[n1_fg] = "#666666"; # Ұ +$color[n2_bg] = "#FFFFFF"; # +$color[n2_fg] = "#555555"; # + +# +$color[l0_bg] = "#333333"; # ׵θ +$color[l0_fg] = "#ffffff"; # ׵θ +$color[l1_bg] = "#666666"; # +$color[l1_fg] = "#ffffff"; # +$color[l2_bg] = "#efefef"; # +$color[l2_fg] = "#000000"; # +$color[l3_bg] = "#dfdfdf"; # +$color[l3_fg] = "#000000"; # + +$color[td_co] = "#888888"; # ö ǥ +$color[cp_co] = "#ffaa00"; # ǥ + +# +# +# ++================+=================+=================++ <-- ׵θ --+ +# || .... : || | +# |+----------------+-----------------+-----------------+| | +# || ۾ | ۾ | || <-- | +# |+----------------+-----------------+-----------------+| | +# || || | +# |+----------------+-----------------+-----------------+| | +# || || | +# || || | +# || || | +# || ۳ || | +# || || | +# || || | +# || || | +# |+----------------------------------------------------+| | +# | | | +# | ______________________ ˻ <---|--------------+ +# +------------------------------------------------------+ +# | Ϻ | | | ۾ | + +# +$color[r0_bg] = "#333333"; # ׵θ +$color[r0_fg] = "#ffffff"; # ׵θ +$color[r1_bg] = "#666666"; # +$color[r1_fg] = "#ffffff"; # +$color[r2_bg] = "#dfdfdf"; # +$color[r2_fg] = "#000000"; # +$color[r3_bg] = "#efefef"; # ۳ +$color[r3_fg] = "#000000"; # ۳ +$color[r4_bg] = "#cacaca"; # +$color[r4_fg] = "#000000"; # + +############################################################################## +# file upload . Խ ü 㰡 Ѵ. ⼭ no ϸ +# Խ ü file upload Ѵ. +############################################################################## +$upload[yesno] = "yes"; # upload +$upload[dir] = "files"; # upload file ġҰ +$upload[maxsize]= "2000000"; # upload max size + + +############################################################################## +# url,email +############################################################################## +$view[url] = "yes"; +$view[email] = "yes"; + + +############################################################################## +# mail ߼ +############################################################################## +$rmail[uses] = "yes"; +# MTA type +# 1 - socket type ߼ (sendmail only) +# 0 - php mail() Լ (sendmail Ǵ sendmail ̿ mta ) +$rmail[mta] = 1; +# ߼ +$rmail[smtp] = "127.0.0.1"; +#jsboard ġǾ ִ +$rmail[bbshome] = "http://url.com/jsboard/"; + + +############################################################################## +# ( : en , : ko ) +############################################################################## +$langs[code] = "ko"; + + +############################################################################## +# ۳ ̸ +############################################################################## +$list[pre] = 0; # ̸ +$list[preren] = 100; # ̸ 㰡 + + +############################################################################## +# Ʒ Ͽ Ͻ superuser password 䱸 +############################################################################## +$compare[name] = ""; +$compare[email] = "user@localhost.com"; + + +############################################################################## +# ǵ Ѵ!!!!! +############################################################################## +if(file_exists("config/default.themes") && $color[theme]) + { include("config/default.themes"); } + +if(trim($table)) { + if (eregi("[^a-z0-9_\-]",$table)) { + echo "<SCRIPT>\n". + "alert('Can\'t use special characters except\\nalphabat, numberlic , _, - charcters')\n". + "history.back()\n". + "</SCRIPT>\n"; + exit; + } + + if(@file_exists("data/$table/config.ph") && $board[uconf] == "yes") + { @include("data/$table/config.ph"); } + if(@file_exists("data/$table/default.themes") && $color[theme]) + { @include("data/$table/default.themes"); } +} +?> diff --git a/Installer/ad_sample/Others/security_data.ph.orig b/Installer/ad_sample/Others/security_data.ph.orig new file mode 100644 index 00000000..80ac8878 --- /dev/null +++ b/Installer/ad_sample/Others/security_data.ph.orig @@ -0,0 +1,5 @@ +<? +$security[stamp] = 1; +$security[serial] = 1; +$security[prints] = 0; +?> diff --git a/Installer/ad_sample/Others/spam_list.txt.orig b/Installer/ad_sample/Others/spam_list.txt.orig new file mode 100644 index 00000000..e69de29b diff --git a/Installer/auth.php b/Installer/auth.php new file mode 100644 index 00000000..aeac935e --- /dev/null +++ b/Installer/auth.php @@ -0,0 +1,236 @@ +<?php + +$path[type] = "Install"; +$copydate = time(); +$copydate = date("Y",$copydate); + +require("../config/themes/basic.themes"); +require("./include/passwd.ph"); + +if ($langss == "ko") $langs[code] = "ko"; +else $langs[code] = "en"; + +include "../include/lang.ph"; +include "../include/get.ph"; +include "../include/print.ph"; +include "../html/head.ph"; + +$agent = get_agent(); + +echo "<table border=0 width=100% height=100%>\n" . + "<tr><td align=center valign=center>\n\n"; + +if (!$mode) { + echo "<form method=POST action=$PHP_SELF>\n\n" . + "<table width=400 border=0 cellpadding=5>\n" . + "<tr><td bgcolor=$color[l0_bg] align=center>\n" . + "<font color=$color[l0_fg]>JSBoard Installer</font>\n" . + "</td></tr>\n<tr><td align=center>\n" . + "<font color=$color[text]>\n&nbsp;<br>\n" . + "<input type=radio name=langss checked value=\"ko\" id=radio>Korean\n" . + "<input type=radio name=langss value=\"en\" id=radio>English<br>\n" . + "<br>&nbsp;\n</font>\n</td></tr>\n" . + "<tr><td bgcolor=$color[l0_bg] align=center>\n" . + "<input type=hidden name=mode value=license>\n" . + "<input type=submit value=submit>\n" . + "</td></tr>\n</table>\n</form>\n"; +} elseif ($mode == "license") { + if ($langs[code] == "ko") $agreefile = "../COPYING"; + else $agreefile = "../COPYING.en"; + + $agree_ment = eregi_replace("(http://jsboard.kldp.org)","<a href=\\1 target=_blank>\\1</a>",$agree_ment); + + echo "<form name=auth method=POST action=auth.php>\n" . + "<table width=500 border=0 cellpadding=5>\n" . + "<tr><td bgcolor=$color[l0_bg] align=center>\n" . + "<font color=$color[l0_fg]>JSBoard License</font>\n" . + "</td></tr>\n<tr><td>\n"; + + if ($agent[br] == "MSIE") { + echo "<iframe src=\"$agreefile\" width=600 height=200 frameborder=1>\n" . + "</iframe>\n"; + } else { + $agree_ment = file_operate($agreefile,"r"); + + if ($langs[code] == "en") $colsize = form_size(40); + else $colsize = form_size(35); + + echo "<textarea cols=$colsize rows=15 wrap=hard>$agree_ment</textarea>\n"; + } + + echo "</td></tr>\n" . + "<tr><td bgcolor=$color[l0_bg] align=center>\n" . + "<input type=hidden name=mode value=check_exec>\n" . + "<input type=hidden name=langss value=$langs[code]>\n" . + "<input type=submit value='AGREE'>\n" . + "</td></tr>\n</table>\n" . + "</form>\n"; +} elseif ($mode == "check_exec") { + echo "<table width=500 border=0 cellpadding=5>\n" . + "<tr><td bgcolor=$color[l0_bg] align=center>\n" . + "<font color=$color[l0_fg]>JSBoard Environment Check</font>\n" . + "</td></tr>\n<tr><td align=center>\n<font color=white>\n"; + + $mcheck = @mysql_connect($mysql_sock, "root", "$passwd"); + + if ($mcheck) { + mysql_select_db("mysql"); + $query = "select * from db"; + $result = mysql_query($query,$mcheck); + $column = mysql_fetch_array($result); + $cnum = sizeof($column)/2; + $mcheck = 1; + } else { + $mcheck = 0; + $cnum = 0; + } + + if (exec("echo hello")) { + $echeck = 1; + exec("cat $apache_config_file | grep DirectoryIndex",$array); + + for($i=0;$i<sizeof($array);$i++) { + $array[$i] = trim($array[$i]); + if(eregi("^Directory",$array[$i]) && eregi("index.(php |php$)",$array[$i])) $cindex = 1; + } + } else { + $echeck = 0; + $cindex = 0; + $cconf = 0; + } + + if(@touch("../data/aaa.test")) { + $p1 = 1; + @unlink("../data/aaa.test"); + } + + if(@touch("../config/aaa.test")) { + $p2 = 1; + @unlink("../config/aaa.test"); + } + + if ($p1 && $p2) $pcheck = 1; + else $pcheck = 0; + + echo "</font>\n$langs[waitm]\n" . + "<meta http-equiv=\"refresh\" content=\"5;URL=$PHP_SELF?mode=check_conform&mcheck=$mcheck&cnum=$cnum&echeck=$echeck&cindex=$cindex&cconf=$cconf&pcheck=$pcheck&langss=$langs[code]\">" . + "</td></tr>\n" . + "<tr><td bgcolor=$color[l0_bg] align=center>\n" . + "<font color=$color[l0_fg]>$langs[wait]</font>\n" . + "</td></tr>\n</table>\n"; +} elseif ($mode == "check_conform") { + + if ($mcheck) { + $m = "OK"; + if ($cnum == "13") $mc = "OK"; + else $mc = "Error"; + } else $m = "Failed"; + + if ($echeck) { + $e = "OK"; + if ($cindex) $ci = "OK"; + else $ci = "Failed"; + } else $e = "Failed"; + + if ($pcheck) $p = "OK"; + else $p = "Error"; + + if (!$mcheck || $cnum != "13" || !$echeck || !$cindex || $cconf || !$pcheck) $actlink = ""; + else $actlink = "choise"; + + if (eregi("linux",$OSTYPE)) { + if (file_exists("/etc/redhat-release")) $os_type = "Redhat"; + elseif (file_exists("/etc/debian_version")) $os_type = "Debian"; + } else $os_type = $OSTYPE; + + echo "<form method=POST action=$PHP_SELF>\n\n" . + "<table width=400 border=0 cellpadding=5>\n" . + "<tr><td bgcolor=$color[l0_bg] align=center>\n" . + "<font color=$color[l0_fg]>JSBoard Enviornment Check Reuslt</font>\n" . + "</td></tr>\n<tr><td align=center>\n" . + "<font color=$color[text]>\n&nbsp;<br>\n\n" . + "<table>\n<tr>\n<td>OS Type</td>\n<td>:</td>\n<td>$os_type</td>\n</tr>\n\n"; + + if (!eregi("linux",$OSTYPE)) + echo "<tr>\n<td colspan=3>\n<font color=red>$langs[os_check]</font>\n</td>\n</tr>\n\n"; + + echo "<tr>\n<td>MySQL check</td>\n<td>:</td>\n<td>$m</td>\n</tr>\n\n"; + + if (!$mcheck) + echo "<tr>\n<td colspan=3>\n<font color=red>$langs[mcheck]</font>\n</td>\n</tr>\n\n"; + if ($mcheck) + echo "<tr>\n<td>DB table column check</td>\n<td>:</td>\n<td>$mc</td>\n</tr>\n\n"; + if ($mc == "Error") + echo "<tr>\n<td colspan=3>\n<font color=red>$langs[ccheck]</font>\n</td>\n</tr>\n\n"; + + echo "<tr>\n<td>exec() function check</td>\n<td>:</td>\n<td>$e</td>\n</tr>\n\n"; + + if ($e == "Failed") + echo "<tr>\n<td colspan=3>\n<font color=red>$langs[echeck]</font>\n</td>\n</tr>\n\n"; + + if ($echeck) { + echo "<tr>\n<td>index file check</td>\n<td>:</td>\n<td>$ci</td>\n</tr>\n\n"; + if ($ci == "Failed") echo "<tr>\n<td colspan=3>\n<font color=red>$langs[icheck]</font>\n</td>\n</tr>\n\n"; + } + + echo "<tr>\n<td>Permission check</td>\n<td>:</td>\n<td>$p</td>\n</tr>\n\n"; + + if ($p == "Error") { + echo "<tr>\n<td colspan=3>\n<font color=red>$langs[pcheck]</font>\n</td>\n</tr>\n\n"; + } + + echo "</table>" . + "<br>&nbsp;\n</font>\n</td></tr>\n" . + "<tr><td bgcolor=$color[l0_bg] align=center>\n" . + "<input type=hidden name=mode value=$actlink>\n" . + "<input type=hidden name=langss value=$langs[code]>\n" . + "<input type=submit value=submit>\n" . + "</td></tr>\n</table>\n</form>\n"; +} elseif ($mode == "choise") { + echo "<form method=POST action=$PHP_SELF>\n\n" . + "<table width=400 border=0 cellpadding=5>\n" . + "<tr><td bgcolor=$color[l0_bg] align=center>\n" . + "<font color=$color[l0_fg]>JSBoard Installer</font>\n" . + "</td></tr>\n<tr><td align=center>\n" . + "<font color=$color[text]>\n&nbsp;<br>\n" . + "<input type=radio name=mode checked value=\"first\" id=radio>First Installation\n" . + "<input type=radio name=mode value=\"upgrade\" id=radio>Upgrade<br>\n" . + "<br>&nbsp;\n</font>\n</td></tr>\n" . + "<tr><td bgcolor=$color[l0_bg] align=center>\n" . + "<input type=hidden name=langss value=$langs[code]>\n" . + "<input type=submit value=submit>\n" . + "</td></tr>\n</table>\n</form>\n"; +} elseif ($mode == "first") { + if ($agent[br] == "MOZL") $fsize = form_size(7); + else $fsize = form_size(9); + + echo "<form name=auth method=POST action=session.php>\n" . + "<table width=400 border=0 cellpadding=5>\n" . + "<tr><td bgcolor=$color[l0_bg] align=center>\n" . + "<font color=$color[l0_fg]>JSBoard Installer</font>\n" . + "</td></tr>\n<tr><td align=center>\n" . + "<font color=$color[text]>\nMySQL password<br>\n" . + "<input type=password name=mysqlpass size=$fsize>\n" . + "<input type=hidden name=mode value=login>\n" . + "<input type=hidden name=langss value=$langs[code]>\n" . + "</form>\n\n" . + "<form name=reset method=POST action=session.php>\n" . + "<input type=hidden name=mode value=logout>\n" . + "<input type=hidden name=langss value=$langs[code]>\n" . + "Password $langs[inst_r] <input type=submit name=reset value=reset>\n" . + "</font>\n</td></tr>\n" . + "<tr><td bgcolor=$color[l0_bg] align=center>\n" . + "<font color=$color[l0_fg]>$langs[auser]</font>\n" . + "</td></tr>\n</table>\n" . + "</form>\n"; +} elseif ($mode == "upgrade") + echo "<font size=+4><b> Comming Soon </b></font>\n\n"; +else + echo "<font size=+4><b> ^0^ </b></font>\n\n"; + +echo "\n<p>\nCopyleft 1999-$copydate by " . + "<a href=http://jsboard.kldp.org target=_blank>JSBoard Open Project<a/>\n" . + "\n</td></tr>\n</table>\n"; + +require("../html/tail.ph"); +?> diff --git a/Installer/include/check.ph b/Installer/include/check.ph new file mode 100644 index 00000000..85cb3f5f --- /dev/null +++ b/Installer/include/check.ph @@ -0,0 +1,50 @@ +<?php +# Password üũ κ +function inst_pwcheck($pass,$mypass,$msg) { + global $langs; + if ($pass != $mypass) { + echo "<script>\n" . + "alert('$msg')\n" . + "document.location='./session.php?mode=logout&langss=$langs[code]'\n" . + "</script>"; + exit; + } +} + +# DB üũ +function inst_chk_var($db,$msg) { + if (!$db) print_error($msg); +} + +function inst_chk_numberic($name,$msg) { + if (eregi("^[0-9]",$name)) print_error($msg); +} + +function inst_chk_dbname($name,$msg) { + global $indb; + for ($i=0; $i<$indb[num]; $i++) { + $dbname = mysql_dbname($indb[lists],$i); + if ($name == $dbname) print_error($msg); + } +} + +function inst_chk_dbuser($name,$msg) { + global $connect, $langs; + $check = "select user from user where user = '$name'"; + $result = mysql_query($check, $connect ); + $row = mysql_fetch_array($result); + if ($row) print_error($msg); +} + +function inst_check() { + 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]); + 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; +} +?> diff --git a/Installer/include/passwd.ph b/Installer/include/passwd.ph new file mode 100644 index 00000000..08542a47 --- /dev/null +++ b/Installer/include/passwd.ph @@ -0,0 +1,29 @@ +<?php +/****************************************************/ +# Specify MySQL Root Password +# mysql root password +# +$passwd = ""; + +# apache (httpd.conf) θ +# redhat rpm package /etc/httpd/conf/httpd.conf +# debian package /etc/apache/httpd.conf +# ġ /usr/local/apache/conf/httpd.conf +# ġϴ 찡 . +# +$apache_config_file = "/etc/httpd/conf/httpd.conf"; + +# MySQL socket file ġ . socket file +# 𸣰 localhost 127.0.0.1 +# . DB ܺο 쿡 ش DB ip +# address domain name ֵ ϸ, 쿡 +# DB mysql Ͽ +# Ѵ. +# +# socket file ġ ˰ ʹٸ +# netstat -an | grep mysql +# ˼ ִ. +# +$mysql_sock = ":/var/lib/mysql/mysql.sock"; +/****************************************************/ +?> diff --git a/Installer/index.php b/Installer/index.php new file mode 100644 index 00000000..b037b8e9 --- /dev/null +++ b/Installer/index.php @@ -0,0 +1 @@ +<? header("location:auth.php"); ?> diff --git a/Installer/install.php b/Installer/install.php new file mode 100644 index 00000000..a18464e4 --- /dev/null +++ b/Installer/install.php @@ -0,0 +1,62 @@ +<?php +session_start(); // session Ѵ. +$path[type] = "Install"; + +if ($langss == "ko") $langs[code] = "ko"; +else $langs[code] = "en"; + +#require("./ad_sample/global.ph.orig"); +require("../config/themes/basic.themes"); +require("../include/lang.ph"); +require("../include/get.ph"); +require("../html/head.ph"); +require("./include/passwd.ph"); +require("./include/check.ph"); + +# Password Check +inst_pwcheck($passwd,$mysqlpass,$langs[act_pw]); + +$dbname = "JSBoard-$version"; +$dbname = eregi_replace("(\-|\.|[ ]*)","",$dbname); +?> + +<table border=0 width=100% height=100%> +<tr><td align=center valign=center> + +<hr size=1 width='500' noshade> +Mysql User Registration Page +<hr size=1 width='500' noshade> + +<table border=0> +<form method='post' action='act.php'> +<tr><td colspan=2><br></td></tr> +<tr> +<td><B>&nbsp; DB name &nbsp;</B></td> +<td align=left><input type='text' name='dbinst[name]' size=20 value="<? echo $dbname ?>"></td> +</tr> + +<tr> +<td><B>&nbsp; DB user &nbsp;</B></td> +<td align=left><input type='text' name='dbinst[user]' size=20></td> +</tr> + +<tr> +<td><B>&nbsp; DB pass &nbsp;</B></td> +<td align=left><input type='password' name='dbinst[pass]' size=20></td> +</tr> + +<tr> +<td align=center colspan=2>&nbsp;</td> +</tr> +<tr><td colspan=2 align=center><input type='submit' value='E N T E R'></td></tr> +<input type=hidden name=langss value=<? echo $langs[code] ?>> +</form> +</table> + +<hr size=1 width='500' noshade> +<? echo $langs[regi_ment] ?> +<hr size=1 width='500' noshade> +</td></tr> +</table> + +<? require("../html/tail.ph") ?> diff --git a/Installer/sample/FreeBSD/config.ph b/Installer/sample/FreeBSD/config.ph new file mode 100644 index 00000000..f4d1de0f --- /dev/null +++ b/Installer/sample/FreeBSD/config.ph @@ -0,0 +1,199 @@ +<? +############################################################################### +# Խ н +############################################################################### +$admin[passwd] = "\$1\$Cx\$.2OyfWZCiPTc4sSw0vswc/"; # password + + +############################################################################### +# Խ 㰡 , 0 - ڸ 㰡 +# 1 - 㰡 +############################################################################### +$cenable[write] = 1; # ۾ 㰡 +$cenable[reply] = 1; # 㰡 +$cenable[edit] = 1; # 㰡 +$cenable[delete] = 1; # 㰡 +$enable[pre] = 0; # ̸ 㰡 +$enable[preren] = 50; # ̸ 㰡 + + +############################################################################### +# Admin link ǥ +############################################################################### +$enable[amark] = 1; # 0 - ǥ 1 - ǥ + + +############################################################################### +# û +############################################################################### +$enable[ore] = 0; # 0 - 1 - û + + +############################################################################### +# б⿡ ñ ñ Ʈ +############################################################################### +$enable[re_list] = 0; # 0 - 1 - + + +############################################################################### +# Խ ¸ +############################################################################### +$board[align] = "center"; # <DIV align=\"$board[align]\"> + + +############################################################################### +# Խ ⺻ +############################################################################### +$board[title] = "Test Խ"; # Խ +$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[img] = "yes"; # Image ޴ +$board[cmd] = "no"; # + +# Ű Ⱓ () +$board[cookie] = 30; + +############################################################################### +# ũ ɼ +############################################################################### +$board[mchk] = 0; # Mail link Form Mail(1) Ǵ mailto(0) + +############################################################################### +# Խ ⺻ (Theme Ҷ ) +############################################################################### + +# Theme 뿩 +$color[theme] = 1; # "1" : 밡 "0" : + +# Back Ground Image +$color[image] = ""; + +# HTML ⺻ +$color[bgcol] = "#000000"; # BGCOLOR +$color[text] = "#ffffff"; # TEXT +$color[link] = "#555555"; # LINK +$color[vlink] = "#555555"; # VLINK +$color[alink] = "#555555"; # ALINK + +$color[n0_fg] = "#999999"; # Ϲ +$color[n0_bg] = "#ffffff"; # Ϲ +$color[n1_fg] = "#666666"; # Ұ +$color[n2_bg] = "#FFFFFF"; # +$color[n2_fg] = "#555555"; # + +# ˻ ڿ ̶Ʈ (STR ˻ ڿ ġȯ) +$board[hl] = "<FONT COLOR=#000000><B><U>STR</U></B></FONT>"; + + +# +# +# ++======+====================+========+======+========++ <-- ׵θ --+ +# || ȣ | | ۾ | ¥ | || <-- --|--+ +# |+------+--------------------+--------+------+--------+| | | +# || | | | | || <-- | | +# |+------+--------------------+--------+------+--------+| | | +# || > | RE: | | | || <-- | | +# |+------+--------------------+--------+------+--+-----+| | | +# || | | | | <--------- ö | | +# |+------+--------------------+--------+------+--+-----+| ǥ | | +# || > | RE: | | | | || | | +# ++------+--------------------+--------+------+--+-----++ | | +# | ??? , ??? ֽϴ. | <- () -|--+ +# +------------------------------------------------------+ | +# | < 1 2 3 4 > | <-+ | +# | | | | +# | ______________________ ˻ <---|---|----------+ +# +------------------------------------------------------+ | +# | | ۾ | | +-- +# ǥ +# +$color[l0_bg] = "#333333"; # ׵θ +$color[l0_fg] = "#ffffff"; # ׵θ +$color[l1_bg] = "#666666"; # +$color[l1_fg] = "#ffffff"; # +$color[l2_bg] = "#efefef"; # +$color[l2_fg] = "#000000"; # +$color[l3_bg] = "#dfdfdf"; # +$color[l3_fg] = "#000000"; # + +$color[td_co] = "#888888"; # ö ǥ +$color[cp_co] = "#ffaa00"; # ǥ + +# +# +# ++================+=================+=================++ <-- ׵θ --+ +# || .... : || | +# |+----------------+-----------------+-----------------+| | +# || ۾ | ۾ | || <-- | +# |+----------------+-----------------+-----------------+| | +# || || | +# |+----------------+-----------------+-----------------+| | +# || || | +# || || | +# || || | +# || ۳ || | +# || || | +# || || | +# || || | +# |+----------------------------------------------------+| | +# | | | +# | ______________________ ˻ <---|--------------+ +# +------------------------------------------------------+ +# | Ϻ | | | ۾ | + +# +$color[r0_bg] = "#333333"; # ׵θ +$color[r0_fg] = "#ffffff"; # ׵θ +$color[r1_bg] = "#666666"; # +$color[r1_fg] = "#ffffff"; # +$color[r2_bg] = "#dfdfdf"; # +$color[r2_fg] = "#000000"; # +$color[r3_bg] = "#efefef"; # ۳ +$color[r3_fg] = "#000000"; # ۳ +$color[r4_bg] = "#cacaca"; # +$color[r4_fg] = "#000000"; # + + +############################################################################### +# file upload +# +# ü ڰ ⼭ yes ؼ Ҽ . +############################################################################### +$cupload[yesno] = "no"; # upload + + +############################################################################### +# url,email +############################################################################### +$view[url] = "no"; +$view[email] = "no"; + + +############################################################################### +# mail ߼ +# +# ü on Ҽ ִ +############################################################################### +$rmail[admin] = "no"; +$rmail[user] = "no"; +$rmail[toadmin] = "user@localhost"; # Խ ּ + + +############################################################################### +# ( : en , : ko ) +############################################################################### +$langs[code] = "ko"; + + +############################################################################### +# Ʒ Ͽ Ͻ password 䱸 +############################################################################### +$ccompare[name] = "峪"; +$ccompare[email] = "cuser@localhost.com"; + +?> diff --git a/Installer/sample/FreeBSD/html_head.ph b/Installer/sample/FreeBSD/html_head.ph new file mode 100644 index 00000000..ce8678e4 --- /dev/null +++ b/Installer/sample/FreeBSD/html_head.ph @@ -0,0 +1,3 @@ +<!-- ======================= A foreword ======================= --> + +<!-- ======================= A foreword ======================= --> diff --git a/Installer/sample/FreeBSD/html_tail.ph b/Installer/sample/FreeBSD/html_tail.ph new file mode 100644 index 00000000..52b256d9 --- /dev/null +++ b/Installer/sample/FreeBSD/html_tail.ph @@ -0,0 +1,3 @@ +<!-- ========================= Tail ========================= --> + +<!-- ========================= Tail ========================= --> diff --git a/Installer/sample/Linux/config.ph b/Installer/sample/Linux/config.ph new file mode 100644 index 00000000..e3c4487c --- /dev/null +++ b/Installer/sample/Linux/config.ph @@ -0,0 +1,199 @@ +<? +############################################################################### +# Խ н +############################################################################### +$admin[passwd] = "67ZU8N0MN/rr."; # password + + +############################################################################### +# Խ 㰡 , 0 - ڸ 㰡 +# 1 - 㰡 +############################################################################### +$cenable[write] = 1; # ۾ 㰡 +$cenable[reply] = 1; # 㰡 +$cenable[edit] = 1; # 㰡 +$cenable[delete] = 1; # 㰡 +$enable[pre] = 0; # ̸ 㰡 +$enable[preren] = 50; # ̸ 㰡 + + +############################################################################### +# Admin link ǥ +############################################################################### +$enable[amark] = 1; # 0 - ǥ 1 - ǥ + + +############################################################################### +# û +############################################################################### +$enable[ore] = 0; # 0 - 1 - û + + +############################################################################### +# б⿡ ñ ñ Ʈ +############################################################################### +$enable[re_list] = 0; # 0 - 1 - + + +############################################################################### +# Խ ¸ +############################################################################### +$board[align] = "center"; # <DIV align=\"$board[align]\"> + + +############################################################################### +# Խ ⺻ +############################################################################### +$board[title] = "Test Խ"; # Խ +$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[img] = "yes"; # Image ޴ +$board[cmd] = "no"; # + +# Ű Ⱓ () +$board[cookie] = 30; + +############################################################################### +# ũ ɼ +############################################################################### +$board[mchk] = 0; # Mail link Form Mail(1) Ǵ mailto(0) + +############################################################################### +# Խ ⺻ (Theme Ҷ ) +############################################################################### + +# Theme 뿩 +$color[theme] = 1; # "1" : 밡 "0" : + +# Back Ground Image +$color[image] = ""; + +# HTML ⺻ +$color[bgcol] = "#000000"; # BGCOLOR +$color[text] = "#ffffff"; # TEXT +$color[link] = "#555555"; # LINK +$color[vlink] = "#555555"; # VLINK +$color[alink] = "#555555"; # ALINK + +$color[n0_fg] = "#999999"; # Ϲ +$color[n0_bg] = "#ffffff"; # Ϲ +$color[n1_fg] = "#666666"; # Ұ +$color[n2_bg] = "#FFFFFF"; # +$color[n2_fg] = "#555555"; # + +# ˻ ڿ ̶Ʈ (STR ˻ ڿ ġȯ) +$board[hl] = "<FONT COLOR=#000000><B><U>STR</U></B></FONT>"; + + +# +# +# ++======+====================+========+======+========++ <-- ׵θ --+ +# || ȣ | | ۾ | ¥ | || <-- --|--+ +# |+------+--------------------+--------+------+--------+| | | +# || | | | | || <-- | | +# |+------+--------------------+--------+------+--------+| | | +# || > | RE: | | | || <-- | | +# |+------+--------------------+--------+------+--+-----+| | | +# || | | | | <--------- ö | | +# |+------+--------------------+--------+------+--+-----+| ǥ | | +# || > | RE: | | | | || | | +# ++------+--------------------+--------+------+--+-----++ | | +# | ??? , ??? ֽϴ. | <- () -|--+ +# +------------------------------------------------------+ | +# | < 1 2 3 4 > | <-+ | +# | | | | +# | ______________________ ˻ <---|---|----------+ +# +------------------------------------------------------+ | +# | | ۾ | | +-- +# ǥ +# +$color[l0_bg] = "#333333"; # ׵θ +$color[l0_fg] = "#ffffff"; # ׵θ +$color[l1_bg] = "#666666"; # +$color[l1_fg] = "#ffffff"; # +$color[l2_bg] = "#efefef"; # +$color[l2_fg] = "#000000"; # +$color[l3_bg] = "#dfdfdf"; # +$color[l3_fg] = "#000000"; # + +$color[td_co] = "#888888"; # ö ǥ +$color[cp_co] = "#ffaa00"; # ǥ + +# +# +# ++================+=================+=================++ <-- ׵θ --+ +# || .... : || | +# |+----------------+-----------------+-----------------+| | +# || ۾ | ۾ | || <-- | +# |+----------------+-----------------+-----------------+| | +# || || | +# |+----------------+-----------------+-----------------+| | +# || || | +# || || | +# || || | +# || ۳ || | +# || || | +# || || | +# || || | +# |+----------------------------------------------------+| | +# | | | +# | ______________________ ˻ <---|--------------+ +# +------------------------------------------------------+ +# | Ϻ | | | ۾ | + +# +$color[r0_bg] = "#333333"; # ׵θ +$color[r0_fg] = "#ffffff"; # ׵θ +$color[r1_bg] = "#666666"; # +$color[r1_fg] = "#ffffff"; # +$color[r2_bg] = "#dfdfdf"; # +$color[r2_fg] = "#000000"; # +$color[r3_bg] = "#efefef"; # ۳ +$color[r3_fg] = "#000000"; # ۳ +$color[r4_bg] = "#cacaca"; # +$color[r4_fg] = "#000000"; # + + +############################################################################### +# file upload +# +# ü ڰ ⼭ yes ؼ Ҽ . +############################################################################### +$cupload[yesno] = "no"; # upload + + +############################################################################### +# url,email +############################################################################### +$view[url] = "no"; +$view[email] = "no"; + + +############################################################################### +# mail ߼ +# +# ü on Ҽ ִ +############################################################################### +$rmail[admin] = "no"; +$rmail[user] = "no"; +$rmail[toadmin] = "user@localhost"; # Խ ּ + + +############################################################################### +# ( : en , : ko ) +############################################################################### +$langs[code] = "ko"; + + +############################################################################### +# Ʒ Ͽ Ͻ password 䱸 +############################################################################### +$ccompare[name] = "峪"; +$ccompare[email] = "cuser@localhost.com"; + +?> diff --git a/Installer/sample/Linux/html_head.ph b/Installer/sample/Linux/html_head.ph new file mode 100644 index 00000000..ce8678e4 --- /dev/null +++ b/Installer/sample/Linux/html_head.ph @@ -0,0 +1,3 @@ +<!-- ======================= A foreword ======================= --> + +<!-- ======================= A foreword ======================= --> diff --git a/Installer/sample/Linux/html_tail.ph b/Installer/sample/Linux/html_tail.ph new file mode 100644 index 00000000..52b256d9 --- /dev/null +++ b/Installer/sample/Linux/html_tail.ph @@ -0,0 +1,3 @@ +<!-- ========================= Tail ========================= --> + +<!-- ========================= Tail ========================= --> diff --git a/Installer/sample/Others/config.ph b/Installer/sample/Others/config.ph new file mode 100644 index 00000000..e3c4487c --- /dev/null +++ b/Installer/sample/Others/config.ph @@ -0,0 +1,199 @@ +<? +############################################################################### +# Խ н +############################################################################### +$admin[passwd] = "67ZU8N0MN/rr."; # password + + +############################################################################### +# Խ 㰡 , 0 - ڸ 㰡 +# 1 - 㰡 +############################################################################### +$cenable[write] = 1; # ۾ 㰡 +$cenable[reply] = 1; # 㰡 +$cenable[edit] = 1; # 㰡 +$cenable[delete] = 1; # 㰡 +$enable[pre] = 0; # ̸ 㰡 +$enable[preren] = 50; # ̸ 㰡 + + +############################################################################### +# Admin link ǥ +############################################################################### +$enable[amark] = 1; # 0 - ǥ 1 - ǥ + + +############################################################################### +# û +############################################################################### +$enable[ore] = 0; # 0 - 1 - û + + +############################################################################### +# б⿡ ñ ñ Ʈ +############################################################################### +$enable[re_list] = 0; # 0 - 1 - + + +############################################################################### +# Խ ¸ +############################################################################### +$board[align] = "center"; # <DIV align=\"$board[align]\"> + + +############################################################################### +# Խ ⺻ +############################################################################### +$board[title] = "Test Խ"; # Խ +$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[img] = "yes"; # Image ޴ +$board[cmd] = "no"; # + +# Ű Ⱓ () +$board[cookie] = 30; + +############################################################################### +# ũ ɼ +############################################################################### +$board[mchk] = 0; # Mail link Form Mail(1) Ǵ mailto(0) + +############################################################################### +# Խ ⺻ (Theme Ҷ ) +############################################################################### + +# Theme 뿩 +$color[theme] = 1; # "1" : 밡 "0" : + +# Back Ground Image +$color[image] = ""; + +# HTML ⺻ +$color[bgcol] = "#000000"; # BGCOLOR +$color[text] = "#ffffff"; # TEXT +$color[link] = "#555555"; # LINK +$color[vlink] = "#555555"; # VLINK +$color[alink] = "#555555"; # ALINK + +$color[n0_fg] = "#999999"; # Ϲ +$color[n0_bg] = "#ffffff"; # Ϲ +$color[n1_fg] = "#666666"; # Ұ +$color[n2_bg] = "#FFFFFF"; # +$color[n2_fg] = "#555555"; # + +# ˻ ڿ ̶Ʈ (STR ˻ ڿ ġȯ) +$board[hl] = "<FONT COLOR=#000000><B><U>STR</U></B></FONT>"; + + +# +# +# ++======+====================+========+======+========++ <-- ׵θ --+ +# || ȣ | | ۾ | ¥ | || <-- --|--+ +# |+------+--------------------+--------+------+--------+| | | +# || | | | | || <-- | | +# |+------+--------------------+--------+------+--------+| | | +# || > | RE: | | | || <-- | | +# |+------+--------------------+--------+------+--+-----+| | | +# || | | | | <--------- ö | | +# |+------+--------------------+--------+------+--+-----+| ǥ | | +# || > | RE: | | | | || | | +# ++------+--------------------+--------+------+--+-----++ | | +# | ??? , ??? ֽϴ. | <- () -|--+ +# +------------------------------------------------------+ | +# | < 1 2 3 4 > | <-+ | +# | | | | +# | ______________________ ˻ <---|---|----------+ +# +------------------------------------------------------+ | +# | | ۾ | | +-- +# ǥ +# +$color[l0_bg] = "#333333"; # ׵θ +$color[l0_fg] = "#ffffff"; # ׵θ +$color[l1_bg] = "#666666"; # +$color[l1_fg] = "#ffffff"; # +$color[l2_bg] = "#efefef"; # +$color[l2_fg] = "#000000"; # +$color[l3_bg] = "#dfdfdf"; # +$color[l3_fg] = "#000000"; # + +$color[td_co] = "#888888"; # ö ǥ +$color[cp_co] = "#ffaa00"; # ǥ + +# +# +# ++================+=================+=================++ <-- ׵θ --+ +# || .... : || | +# |+----------------+-----------------+-----------------+| | +# || ۾ | ۾ | || <-- | +# |+----------------+-----------------+-----------------+| | +# || || | +# |+----------------+-----------------+-----------------+| | +# || || | +# || || | +# || || | +# || ۳ || | +# || || | +# || || | +# || || | +# |+----------------------------------------------------+| | +# | | | +# | ______________________ ˻ <---|--------------+ +# +------------------------------------------------------+ +# | Ϻ | | | ۾ | + +# +$color[r0_bg] = "#333333"; # ׵θ +$color[r0_fg] = "#ffffff"; # ׵θ +$color[r1_bg] = "#666666"; # +$color[r1_fg] = "#ffffff"; # +$color[r2_bg] = "#dfdfdf"; # +$color[r2_fg] = "#000000"; # +$color[r3_bg] = "#efefef"; # ۳ +$color[r3_fg] = "#000000"; # ۳ +$color[r4_bg] = "#cacaca"; # +$color[r4_fg] = "#000000"; # + + +############################################################################### +# file upload +# +# ü ڰ ⼭ yes ؼ Ҽ . +############################################################################### +$cupload[yesno] = "no"; # upload + + +############################################################################### +# url,email +############################################################################### +$view[url] = "no"; +$view[email] = "no"; + + +############################################################################### +# mail ߼ +# +# ü on Ҽ ִ +############################################################################### +$rmail[admin] = "no"; +$rmail[user] = "no"; +$rmail[toadmin] = "user@localhost"; # Խ ּ + + +############################################################################### +# ( : en , : ko ) +############################################################################### +$langs[code] = "ko"; + + +############################################################################### +# Ʒ Ͽ Ͻ password 䱸 +############################################################################### +$ccompare[name] = "峪"; +$ccompare[email] = "cuser@localhost.com"; + +?> diff --git a/Installer/sample/Others/html_head.ph b/Installer/sample/Others/html_head.ph new file mode 100644 index 00000000..ce8678e4 --- /dev/null +++ b/Installer/sample/Others/html_head.ph @@ -0,0 +1,3 @@ +<!-- ======================= A foreword ======================= --> + +<!-- ======================= A foreword ======================= --> diff --git a/Installer/sample/Others/html_tail.ph b/Installer/sample/Others/html_tail.ph new file mode 100644 index 00000000..52b256d9 --- /dev/null +++ b/Installer/sample/Others/html_tail.ph @@ -0,0 +1,3 @@ +<!-- ========================= Tail ========================= --> + +<!-- ========================= Tail ========================= --> diff --git a/Installer/script/account.sh b/Installer/script/account.sh new file mode 100755 index 00000000..b9ba2607 --- /dev/null +++ b/Installer/script/account.sh @@ -0,0 +1,74 @@ +#!/bin/sh +echo "===================================================" +echo " Scripted By JoungKyun Kim <admin@oops.org>" +echo " JSBoard Permission Configurations v1.0" +echo "===================================================" +echo + +OS=`uname` + +if [ "$OS" = "Linux" ]; then + AD="Linux" +else + if [ "$OS" = "FreeBSD" ]; then + AD="FreeBSD" + else + AD="Others" + fi +fi + +if [ "$OS" = "Linux" ]; then + cp -af ../ad_sample/$AD/global.ph.orig ../../config/global.ph + cp -af ../ad_sample/$AD/security_data.ph.orig ../../config/security_data.ph + cp -af ../ad_sample/$AD/spam_list.txt.orig ../../config/spam_list.txt + cp -af ../ad_sample/$AD/allow_browser.txt.orig ../../config/allow_browser.txt + cp -af ../ad_sample/$AD/config.ph.orig ../../admin/include/config.ph + if [ -d "../../data/test" ]; then + cp -a ../sample/$AD/* ../../data/test/ + else + cp -a ../sample/$AD ../../data/test + fi +else + cp -Rp ../ad_sample/$AD/global.ph.orig ../../config/global.ph + cp -Rp ../ad_sample/$AD/security_data.ph.orig ../../config/security_data.ph + cp -Rp ../ad_sample/$AD/spam_list.txt.orig ../../config/spam_list.txt + cp -Rp ../ad_sample/$AD/allow_browser.txt.orig ../../config/allow_browser.txt + cp -Rp ../ad_sample/$AD/config.ph.orig ../../admin/include/config.ph + if [ -d "../../data/test" ]; then + cp -Rp ../sample/$AD/* ../../data/test/ + else + cp -Rp ../sample/$AD ../../data/test + fi +fi + +if [ ! -f ../../config/default.themes ]; then + ln -s ./themes/basic.themes ../../config/default.themes +fi + +# permission configuration +chmod 707 ../../config +chmod 707 ../../data +chmod 707 ../../data/test +chmod 707 ../../data/test/files +chmod 660 ../../config/global.ph +chmod 606 ../../config/security_data.ph +chmod 660 ../../config/spam_list.txt +chmod 606 ../../config/allow_browser.txt +chmod 660 ../../admin/include/config.ph +chmod 606 ../../data/test/config.ph +chmod 606 ../../data/test/html_head.ph +chmod 606 ../../data/test/html_tail.ph + +if [ "$LANG" = "ko" ]; then + echo "config/global.ph config/spam_list.txt admin/include/config.ph" + echo "file group nobody ־ մϴ. " + echo "ϵ ׷ Ҽ ٸ permission 606 " + echo "ֽʽÿ" +else + echo "Group Owner of \"config/global.ph config/spam_list.txt" + echo "admin/include/config.ph\" will set nobody that is operation" + echo "group of Web Server. If don't set nobody, you will set the" + echo "permission 606." +fi + +exit 0 diff --git a/Installer/script/account_p.sh b/Installer/script/account_p.sh new file mode 100755 index 00000000..71d042fc --- /dev/null +++ b/Installer/script/account_p.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +# permission configuration +chmod 707 ../../config +chmod 707 ../../data +chmod 707 ../../data/test +chmod 707 ../../data/test/files +chmod 660 ../../config/global.ph +chmod 606 ../../config/security_data.ph +chmod 660 ../../config/spam_list.txt +chmod 606 ../../config/allow_browser.txt +chmod 660 ../../admin/include/config.ph +if [ -d "../../data/test" ]; then + chmod 606 ../../data/test/config.ph + chmod 606 ../../data/test/html_head.ph + chmod 606 ../../data/test/html_tail.ph +fi + +if [ "$LANG" = "ko" ]; then + echo "config/global.ph config/spam_list.txt admin/include/config.ph" + echo "file group nobody ־ մϴ. " + echo "ϵ ׷ Ҽ ٸ permission 606 " + echo "ֽʽÿ" +else + echo "Group Owner of \"config/global.ph config/spam_list.txt" + echo "admin/include/config.ph\" will set nobody that is operation" + echo "group of Web Server. If don't set nobody, you will set the" + echo "permission 606." +fi + +exit 0 diff --git a/Installer/script/root.sh b/Installer/script/root.sh new file mode 100755 index 00000000..5212e288 --- /dev/null +++ b/Installer/script/root.sh @@ -0,0 +1,97 @@ +#!/bin/sh + +echo "===================================================" +echo " Scripted By JoungKyun Kim <admin@oops.org>" +echo " JSBoard Permission Configurations v1.0" +echo "===================================================" +echo + +OS=`uname` + +if [ "$OS" = "Linux" ]; then + if [ -f /etc/debian_version ]; then + DIST="Debian" + UGROUPS="www-data" + AD="Linux" + elif [ -f /etc/redhat-release ]; then + DIST="Redhat" + UGROUPS="nobody" + AD="Linux" + else + DIST="Unknown" + UGROUPS="nobody" + AD="Linux" + fi +else + DIST=$OS + UGROUPS="nobody" + if [ "$OS" = "FreeBSD" ]; then + AD="FreeBSD" + else + AD="Others" + fi +fi + +echo "## Operating System : ${DIST}" +echo -e "## Httpd Group : ${UGROUPS}\n\n" +echo -n "Is right follow information? [Y/N](default Y) : " +read INFO + +if [ "$INFO" = "N" ] || [ "$INFO" = "n" ]; then + echo -n "Input Ur httpd group : " + read UGROUPS +fi + +if [ "$OS" = "Linux" ]; then + cp -af ../ad_sample/$AD/global.ph.orig ../../config/global.ph + cp -af ../ad_sample/$AD/security_data.ph.orig ../../config/security_data.ph + cp -af ../ad_sample/$AD/spam_list.txt.orig ../../config/spam_list.txt + cp -af ../ad_sample/$AD/allow_browser.txt.orig ../../config/allow_browser.txt + cp -af ../ad_sample/$AD/config.ph.orig ../../admin/include/config.ph + if [ -d "../../data/test" ]; then + cp -af ../sample/$AD/* ../../data/test/ + else + cp -af ../sample/$AD ../../data/test + fi +else + cp -Rp ../ad_sample/$AD/global.ph.orig ../../config/global.ph + cp -Rp ../ad_sample/$AD/security_data.ph.orig ../../config/security_data.ph + cp -Rp ../ad_sample/$AD/spam_list.txt.orig ../../config/spam_list.txt + cp -Rp ../ad_sample/$AD/allow_browser.txt.orig ../../config/allow_browser.txt + cp -Rp ../ad_sample/$AD/config.ph.orig ../../admin/include/config.ph + if [ -d "../../data/test" ]; then + cp -Rp ../sample/$AD/* ../../data/test/ + else + cp -Rp ../sample/$AD ../../data/test + fi +fi + +if [ ! -f "../../config/default.themes" ] ; then + ln -sf ./themes/basic.themes ../../config/default.themes +fi + +# owner configuration +chgrp $UGROUPS ../../config +chgrp -R $UGROUPS ../../data/ +chgrp $UGROUPS ../../config/global.ph +chgrp $UGROUPS ../../config/security_data.ph +chgrp $UGROUPS ../../config/spam_list.txt +chgrp $UGROUPS ../../config/allow_browser.txt +chgrp $UGROUPS ../../admin/include/config.ph + +# permission configuration +chmod 731 ../../config +chmod 775 ../../data +chmod 775 ../../data/test +chmod 775 ../../data/test/files +chmod 664 ../../config/spam_list.txt +chmod 664 ../../config/allow_browser.txt +chmod 660 ../../config/global.ph +chmod 660 ../../config/security_data.ph +chmod 664 ../../admin/include/config.ph +chmod 664 ../../data/test/config.ph +chmod 664 ../../data/test/html_head.ph +chmod 664 ../../data/test/html_tail.ph + +echo -e "\nDONE!!!!" +exit 0 diff --git a/Installer/script/root_p.sh b/Installer/script/root_p.sh new file mode 100755 index 00000000..e6a08090 --- /dev/null +++ b/Installer/script/root_p.sh @@ -0,0 +1,64 @@ +#!/bin/sh + +echo "===================================================" +echo " Scripted By JoungKyun Kim <admin@oops.org>" +echo " JSBoard Permission Configurations v1.0" +echo "===================================================" +echo + +OS=`uname` + +if [ "$OS" = "Linux" ]; then + if [ -f /etc/debian_version ]; then + DIST="Debian" + UGROUPS="www-data" + elif [ -f /etc/redhat-release ]; then + DIST="Redhat" + UGROUPS="nobody" + else + DIST="Unknown" + UGROUPS="nobody" + fi +else + DIST=$OS + UGROUPS="nobody" +fi + +echo "## Operating System : ${DIST}" +echo -e "## Httpd Group : ${UGROUPS}\n\n" +echo -n "Is right follow information? [Y/N](default Y) : " +read INFO + +if [ "$INFO" = "N" ] || [ "$INFO" = "n" ]; then + echo -n "Input Ur httpd group : " + read UGROUPS +fi + +# owner configuration +chgrp $UGROUPS ../../config +chgrp -R $UGROUPS ../../data/ +chgrp $UGROUPS ../../config/global.ph +chgrp $UGROUPS ../../config/security_data.ph +chgrp $UGROUPS ../../config/spam_list.txt +chgrp $UGROUPS ../../config/allow_browser.txt +chgrp $UGROUPS ../../admin/include/config.ph + +# permission configuration +chmod 731 ../../config +chmod 775 ../../data +chmod 664 ../../config/spam_list.txt +chmod 664 ../../config/allow_browser.txt +chmod 660 ../../config/global.ph +chmod 660 ../../config/security_data.ph +chmod 664 ../../admin/include/config.ph +if [ -d "../../data/test" ]; then + chmod 775 ../../data/test + chmod 775 ../../data/test/files + chmod 664 ../../data/test/config.ph + chmod 664 ../../data/test/html_head.ph + chmod 664 ../../data/test/html_tail.ph +fi + +echo -e "\nDONE!!!!" + +exit 0 diff --git a/Installer/session.php b/Installer/session.php new file mode 100644 index 00000000..c2b3976a --- /dev/null +++ b/Installer/session.php @@ -0,0 +1,24 @@ +<? +session_start(); // session Ѵ. +if ($mode == "login") { + session_register("mysqlpass"); // Ѵ. + header("Location: install.php?langss=$langss"); +} elseif ($mode == "logout") { + session_destroy("mysqlpass"); // Ѵ + header("Location: auth.php?mode=first&langss=$langss"); +} elseif ($mode == "first") { + session_destroy("mysqlpass"); // Ѵ + + if ($langss == "ko") $langs[code] = "ko"; + else $langs[code] = "en"; + + $path[type] = "Install"; + include "../include/lang.ph"; + $str = str_replace("\n","\\n",$langs[first_acc]); + echo "<script>\n" . + " alert('$str')\n" . + " document.location='../admin/index.php'\n" . + "</script> "; + exit; +} +?> diff --git a/KnownBug b/KnownBug new file mode 100644 index 00000000..8a5cc533 --- /dev/null +++ b/KnownBug @@ -0,0 +1,34 @@ +˷ + +ۼ 2001. 6.22 + +1. ۾⿡ ' "  SQL error 쿡 php.ini + (PHP3 php3.ini) ġ ʾƼ ߻ϴ 쿡 + ߻Ҽ , Ǵ php.ini + + magic_quotes_gpc = On + + on ־ ʴ´. + +2. url ˻ Ұ link ũ ϳ hilighting + ʴ װ ִ. + +3. form mail local ݴ ִ. ڰ + ϴٸ act.php elseif ($o[at] == "sm") κ sm + ܾ ϱ ٶ. ̷ ϸ form mail + Ѵ. + +4. " ˸ ȵǾ ֽϴ." ޼ Ǵ + config/global.ph ˸ ȵǾ ̴. + κ 1.2.x upgrade Լ Ÿ + ̴. + + global.ph $enable[security] ֵ Ǵ + $snable[security] ʴ´ٸ config/global.ph + κ ־ ֵ Ѵ. + + ############################################################################### + # ˸ + ############################################################################### + $enable[security] = "test"; # Խ ̸ . none + diff --git a/QUICK_INSTALL b/QUICK_INSTALL new file mode 100644 index 00000000..3f2cda58 --- /dev/null +++ b/QUICK_INSTALL @@ -0,0 +1,549 @@ +##### JSBOARD + OOPS administartion Center ##################################### +# +# Original Developer : 躴 <redhands@linux.sarang.net> +# Source Disturibute : <admin@oops.org> +# Windog Version : ֱ <choiks@nuri.net> +# +# CVS Server : 迵 <blhole@hotmail.com> +# Homepage : Ǽ <http://www.kldp.org> +# Special Thanks : <eunjea@kldp.org> +# : 湬 <dimanche@dimanche.co.kr> +# : â <winchild@kldp.org> +# +################################################################################# +# +# Quick Installation in JSBoard 1.3 v1.1 +# +################################################################################# + + +ۼ : <admin@oops.org> +Ͻ : 2001.03.19 + + JSBoard 1.3 version ġ Ѵ. +س JSBoard ؿ ؼ ƹ å ϰ + ϰ ġ õϵ ϱ⸦ ٶ. + +=================================== =================================== + +JSBoard 1.2 ʹ Ȯڰ .php3 .php ȴ. + +JSBoard 1.3 PHP4-4.0.3 ̻ Ѵ. + +0.7 DB ü SQL query ǾǷ + ٶ ʴ´. upgrade ÿ +http://jsboard.kldp.org/bbs/read.php?table=bbs_download&no=30 Ͽ + upgrade ϱ ٶ. + +!!!!!!!!!!!!! +Redhat, Debian, FreeBSD ̿ OS ġÿ jsboard/README.OTHERS.OS + о ġ ؾ Ѵ. Windog win32 QUICK_INSTALL.win + ϵ Ѵ. +================================================================================ + +**** **** + + 1. ȯ + 1-1. exec() Լ test + 1-2. MySQL Լ test + 1-3. web server + 2. JSBoard ġ + 2-1. MySQL setting + 2-2. file ϱ + 3. JSBoard  + 4. JSBoard + 5. UPGRADE + 6. ֽű ϱ + 6-1. ֽű + 6-2. ֽű + 7. Bug report + +*************** + + +1. ȯ + + Linux(Redhat, Debian) Ǵ FreeBSD ġǾ ִ Server (ٸ NOS + ߻ ˼ . DIY ٶ) Linux + Redhat Linux Debian Linux ĪѴ. + + apache 1.3.x ̻ + + MySQL 3.22.30 ̻ (RPM ġ - ftp://mirror.oops.org) + PHP-4.0.3 ̻(RPM ġ - ftp://mirror.oops.org) + JSBoard 1.3 PHP4-4.0.3 ̻ ۵ ϸ, compile ÿ Session + ȵȴ. + + * üũ * + + php exec() Լ MySQL Լ Ǵ ȮѴ. + + 1-1. exec() Լ test + + ϴ file ϳ . test.php Īϰڴ. + linux 󿡼 Ȯ ۵ Ѵ. ٸ Platform ˾Ƽ ۵ + ϴ Ȯ ٶ. + + <?php + echo "## exec() Լ ׽Ʈ ##<p><br>\n\n"; + exec("echo \"exec()Լ ۵ մϴ\"", $test); + + echo $test[0]; + ?> + + file 󿡼 file ȣ + + ------------------------------------------------- + ## exec() Լ ׽Ʈ ## + + exec()Լ ۵ մϴ + ------------------------------------------------- + + Ǿ Ѵ. + + 1-2. MySQL Լ test + + info.php file Ʒ Ѵ. + + <?php + phpinfo(); + ?> + + ׸ 󿡼 ȣ MySQL ִ ȮѴ. + Ұ MySQL ִ php ġÿ mysql θ ذͰ + MySQL ΰ Ʋ 쿡 ߻Ҽ ִ. ǥ + 찡 PHP rpm ġ ϰ MySQL source compile ̴. PHP + rpm ġ Ұ쿡 κ /usr/lib/mysql ġϴ ̱ + ̴. + + 縦 ϴµ ұϰ ߻Ѵٸ ϴ Ʒ + Ͽ mysql socket file ġ ˾Ƴ. + + [oops@oops include]$ netstat -an | grep mysql + unix 0 [ ACC ] STREAM LISTENING 589 /var/lib/mysql/mysql.sock + [oops@oops include]$ + + file θ ̿Ͽ file . + + <? + $mcheck = mysql_connect(":/var/lib/mysql/mysql.sock","root","$passwd"); + + if ($mcheck) echo "MySQL ӿ ߽ϴ."; + else echo "MySQL ӿ и ߽ϴ."; + ?> + + code  󿡼 mysql Ͽ ޼ + Ȯ Ѵ. + + 1-3. web server + + jsboard index file index.php ̴. php3 Ȯڸ ϱ⸦ Ѵٸ + DirectoryIndex ڿ index.php3 ߰ ֵ Ѵ. .ph file + ؼ httpd.conf + + AddType application/x-httpd-php .php .php3 .ph + + .ph ߰ ֵ Ѵ. + +2. JSBoard ġ + + JSBoard 󿡼 ϵ Ǿ ֱ ۵ϴ nobody + ־߸ Ѵٴ ؾ Ѵ. permission + Ǹ ؾ Ѵٴ ̴! + + 2-1 MySQL setting + + MySQL ó ϴ Ѵ. ̹ Ǿ ִ + ڽ ̹ Ǿ ִ κ پ ѵ Ѵ. + + ڵ 쿡 ϸ, ڿ MySQL + Database ޶ û ϸȴ. DB username,DB name,DB password + ˷ ޶ ؾ Ѵ. + + + . ϴ MySQL ġ ϵ Ѵ. MySQL RPM Űε Ҽ ִ. + + ftp://mirror.opos.org/pub/Linux/Redhat/RPMS + ftp://linux.sarang.net/pub/MySQL + + linux ϴ php RPM ϴ 쿡 php rpm + packagingҶ mysql ΰ ߴ³Ŀ ޶ Ƿ + ɼ A+P+M Ű¡ Ѱ . + + source compile 쿡 Ѵ. + + . ġ root н带 Ѵ. + + [root@home /public_html]# mysql mysql + + Reading table information for completion of table and column names You can + turn off this feature to get a quicker startup with -A + + Welcome to the MySQL monitor. Commands end with; or \g. + Your MySQL connection id is 1961 to server version: 3.22.32-log + + Type 'help' for help. + mysql> use mysql; + mysql> update user set password = password('Ʈн') + > where user = 'root'; + Query OK, 1 row affected (0.00 sec) + + mysql> flush privileges; + Query OK, 0 rows affected (0.00 sec) + + root password Ŀ JSBoard database + ϵ Ѵ. Ϸ + + USER̸ "", + DB̸ "", + н带 "н" + + Ѵ. . ߿ ̰͵ ѱ۷ + . ⸦ Ѵٸ ѱ۷ ص . ⼭ + ϱ ؼ ѱ۷ ϴ ̴. + + mysql> CREATE database ; + Query OK, 0 rows affected (0.00 sec) + + mysql> insert into user (Host,User,Password) + > values('localhost','',password('н')); + Query OK, 0 rows affected (0.00 sec) + + mysql> insert into db values + > ('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); + Query OK, 0 rows affected (0.00 sec) + + ߻Ѵٸ db table ÷ Ʒ ٶ + . + + mysql> desc db; + +-----------------+---------------+------+-----+---------+-------+ + | Field | Type | Null | Key | Default | Extra | + +-----------------+---------------+------+-----+---------+-------+ + | Host | char(60) | | PRI | | | + | Db | char(32) | | PRI | | | + | User | char(16) | | PRI | | | + | Select_priv | enum('N','Y') | | | N | | + | Insert_priv | enum('N','Y') | | | N | | + | Update_priv | enum('N','Y') | | | N | | + | Delete_priv | enum('N','Y') | | | N | | + | Create_priv | enum('N','Y') | | | N | | + | Drop_priv | enum('N','Y') | | | N | | + | Grant_priv | enum('N','Y') | | | N | | + | References_priv | enum('N','Y') | | | N | | + | Index_priv | enum('N','Y') | | | N | | + | Alter_priv | enum('N','Y') | | | N | | + +-----------------+---------------+------+-----+---------+-------+ + 13 rows in set (0.00 sec) + + Įrow 13 ƴ϶ Host, Db, User Į + mysql query Y Ѵ. δ MySQL 3.23.x alpha + version 3.22.25 Ʋ ̴. + + mysql> quit + Bye + + ̹ Ǿ ִ ܰ ׳ dz ٸ ȴ. + + 2-2 file ϱ + + ٿε file ġ ϴ 丮 Ǯ + . + + $ tar xvfpz jsboard-version.tar.gz + + Ǯ jsboard-version ̶ 丮 ȴ. + + jsboard/Installer/SQL ̵ Ͽ Ͽ jsboard + table ü 鵵 Ѵ. MySQL ˾ƾ + . + + $ cd jsboard-version/Installer/SQL + $ mysql -u -p < mysql_ostype.sql + Enter password: н + + Linux ڵ mysql_linux.sql ̿Ͽ FreeBSD + mysql_freebsd.sql ̿ϵ Ѵ. FreeBSD 3.5 ׽Ʈ Ǿ + . + + table ü , file ġ Ű file ۹ + ϵ Ѵ. jsboard/Installer/script root + ġ Ҽ ִٸ + + $ ./root.sh + =================================================== + Scripted By JoungKyun Kim <admin@oops.org> + JSBoard Permission Configurations v1.0 + =================================================== + + ## Operating System : Redhat + ## Httpd Group : nobody + + Is right follow information? [Y/N](default Y) : y <--Enter + + DONE!!!! + $ + + root.sh ϸ ȴ. HTTPD ׷ nobody + ƴ϶ (debian www-data Ǿ ִ) n Ǵ N ְ ׷ ̸ + ϸ ȴ. Ʒ ð̴. + + Input Ur httpd group : + + FreeBSD nobody ̸ Debian www-data, RedHat7 apache + 찡 . + + Ȥ ڶ + + $ ./account.sh + + ϵ Ѵ. account user ġ Ϸ + ִ. db password ִ file ȣؾ Ѵ. ̸ + root ڿ ϴ Ź ؾ ִ. ٷ + + jsbaord/config/global.ph, + jsboard/config/spma_list.ph, + jsboard/admin/include/config.ph + + group nobody ޶ ؾ Ѵ (Debian + www-data ؾ Ұ̰ ٸ OS 𸣰ڴ. httpd.conf Group ڿ + Ǿ ִ Ȯ ؼ ޶ Ѵ) + + $ chgrp nobody jsboard/config/global.ph (root ؾ ϴ ) + $ chgrp nobody jsboard/config/spam_list.txt (root ؾ ϴ ) + $ chgrp nobody jsboard/admin/include/config.ph (root ؾ ϴ ) + + ޶ ؾ Ѵ. ̸ ϸ Ʒ + . ̰ account.sh Ŀ ϵ̴. (Debian 쿡 nobody + ƴ϶ www-data Ǿ Ѵ) + + -rx-rx---- accountname nobody config/global.ph + -rx-rx---- accountname nobody config/spam_list.txt + -rx-rx---- accountname nobody admin/include/config.ph + + root ̸ ʰų Ǵ Ҽ root + + $ chmod 606 config/global.ph + $ chmod 606 config/spam_list.txt + $ chmod 606 admin/include/config.ph + + ϰ, ۹̼ ȴ. + + -rx----rx- accountname accountname config/global.ph + -rx----rx- accountname accountname config/spam_list.txt + -rx----rx- accountname accountname admin/include/config.ph + + ̷  ϳ Ȼ ʴ. + + ׸ Ұ account user ġ ÿ + ɼ home directory 711 ؾѴ. + + script file ϰ mv, chown, chmod shell ɾ ̷ + file   ǰ + file ġؾ ϴ ľҼ ̴. + + ϸ file ġ ڸ ȴ. + + jsboard/config/ ̵ Ͽ global.ph DB Ѵ. + + ############################################################################ + # Ÿ̽ + ############################################################################ + $db[server] = ":/var/lib/mysql/mysql.sock"; # ּ + $db[user] = ""; # + $db[pass] = ""; # н + $db[name] = ""; # ̸ + + κ ϰ ָ ȴ. DB ܺο 縦 쿡 + ":/var/lib/mysql/mysql.sock" κ DB ip address ü ϸ ɰ + ̴. ׸ mysql source compile 鵵 mysql.sock file θ + ָ ȴ. + + socket file δ "netstat -an | grep mysql" ˼ ִ. + +3. JSBoard  + + JSBoard 縦 Ѵ. JSBoard ʹ ڵμ + admin/License о 쿡 ϴ. + + ġ Ϸ Ǿٸ Ѵ. 켱 ü + Ѵ. + + http://domain.com/jsboard/admin/ + + ϵ Ѵ. ׷ login â ̴. JSBoard ⺻ н + ʱⰪδ "0000" Ǿ н ϵ Ѵ. + + OOPS Administration Center v1.7 ޶ ϴ JSBoard + ϴ DB JSboard ʴ table ޼ + ־ 1.7 ̻ JSBoard ʴ table + ư "Not JSBoard table" ̶ ޽ ϰԲ + ִ. + +4. JSBoard + + CGI upload Ͽ ȹ ߻ ϰ ִ. + ܼ CGI ڵ常 Ͽ Ѵٴ + apache file õ ε file ؼ ʵ + ϴ Ҵ. kldp server + Ư ȣü ϴ 쿡 JSBoard + Ҽ ֱ Ѵ. + + Ҽ ִ. + + <DirectoryMatch "^/.*/jsboard/data"> + AddType application/x-httpd-php3-source .phps .php .ph .php3 .cgi .sh .pl .html .htm .shtml .vbs .ins + AddType application/x-httpd-php-source .phps .php .ph .php3 .cgi .sh .pl .html .htm .shtml .vbs .ins + + ErrorDocument 403 http://jsboard.kldp.org/ErrorMSG/error_msg.php?l=ko&c=403 + + <Files ~ ".*\.ph$"> + Order allow,deny + Deny from all + </Files> + </DirectoryMatch> + + ǹ̴ jsboard/data 丮 Ʒ ִ  data + ̸ 丮 .phps .php .ph .php3 .cgi .sh .pl .html .htm .shtml .vbs + .ins Ȯڸ source ϶ ǹ̸ Ұ ⿡ + н  ִ source ÷ ȵȴٴ ؾ Ѵ. + δ Խ 丮 ̸  ϴĿ Ѵ. + + data ̸ 丮 Ʒ .ph 쿡 + http://jsboard.kldp.org/ErrorMSG/error_msg.php?l=ko&c=403 ϶ + ǹ̴. + + root Ѹ ִ + ̶ ص ڿ ޶ ϴ° . + ؼ ϳ ״ Ƹ ̴. :-) + + ؿ  DZ⸦ ٶ鼭.. ׷.. + +5. UPGRADE + + jsboard-1.2 ū ȭ Ȯ ȭ̴. 1.1.x .php3 + Ȯڸ jsbaord-1.2 ʹ .php ̸ + . ׷ source ϸ ȵȴ. + + jsboard-1.2 ڵ source ϸ ȴ. + + ϴ 丮 jsabord-1.3 source Ǯ Ѵ. + Insatller/script/ ̵ Ͽ root.sh accoutn.sh + ϵ Ѵ. ׸ data/ ִ 丮 1.3/data copy + ϰ, admin/include/config.ph 1.3/admin/include 縦 Ѵ. + + 縦 Ŀ ٽ Installer/script ̵ Ŀ root_p.sh ϵ + Ѵ. ( root.sh root_p.sh ƴ account.sh account_p.sh + ̿ؾ Ѵ.) + + config/global.ph 缳 ش. κ DB κ + ϰ 缳 ϵ Ѵ. ׸ Խ ڷ + Ͽ ѹ 缳 ֵ Ѵ. + + JSBoard 1.3 ʹ Խ admin link ⺻ ʰ Ǿ ִ. + ̰ ̰ ְ ʹٸ + + http://domain.com/jsboard/admin/user_admin/auth.php?table=Խ̸ + + Ͽ ̵ Ѵ. + +6. ֽű ϱ + + 6-1. ֽű + + JSBoard ֽű ϴ ̴. include/prelist.ph + Ǹ file Ͽ Ҽ ִ. + + 6-2. ֽű + + ϴ jsboard/include/prelist.ph $prlist[path] $prlist[wpath] + ؾ Ѵ. $prlist[path] JSBoard ġ Ǿ ִ θ + ָ, $prlist[wpath] JSBoard µǴ θ Ѵ. + Ұ / ʵ Ѵ. + + ) + $prlist[path] = "/home/httpd/html/PHP/jsboard"; + $prlist[wpath] = "http://domain.com/PHP/jsboard"; + + ϴ ڸ 켱 ֽű page ܿ + ڵ带 Ѵ. (߿ ų file php ɼ + ִ file̾ Ѵ. Ȯڰ .php3 php νҼ 쿡 .php3 + file Ҽ ִ. ̶ Ʈ + κ ̸ ȴ.) + + <? + include "/prelist.ph"; + ?> + + Ʈ ϴ κп Լ ֵ Ѵ. + + <? prelist("a","b","c","d","e","f","g","h","i"); ?> + + prelist() Լ 鿡 ؼ Ʒ ϶. + + a ̺ ̸(Խ ̸) + b include file ( 1 - 0 - Ծ ) + κ ؾ Ѵ. ϳ ԽǸ ҷ + 1 Ѵ. Խ ҷ 쿡 ֹ° + Լ ʹ 0 Ǿ Ѵ. + c Ʈ + d ±ڼ + e ̸ ( 1 - 0 - ) + f ( 1 - 0 - ) + g ̸ ( 1 - 0 - ) + h ȸ ( 1 - 0 - ) + i ũ ɼ (: target onClick ) + + + Խ ϰ ʹٸ ڵ + Ѽ ָ ȴ. + + ) + + test Խ 3 ̸<br> + <? prelist("test",1,3,30,1,1,1,1,""); ?> + + <p> + test1 Խ 5 ̸<br> + <? prelist("test1",0,5,30,1,1,1,1,""); ?> + + ⼭ Ұ ι° Խ ѷ ٶ ι° ʵ 0 ȴٴ + Ѵ. ù° Խ Ҷ 1 Ǿ ϰ, ι° Խ + ǿ 0 Ѵ. + + ϴ, ϸ μ ƹ پ ѷ ְ + . ϴ ϰ ʹٸ jsboard/include/prelist.ph ߾ӿ ִ + print_prlist() Լ echo ϸ ȴ. + + table tag 쿡 ؾ ִ. ° + ̴. + + > + + <table> + <? prelist(......) ?> + </table> + + ؾ ϸ prelist.ph print_prlist() Լ Ʒ + Ǿ Ѵ. + + function print_prlist($p) { + echo "<tr> + <td>$p[link]</td> + <td>$p[name]</td> + <td>$p[date]</td> + <td>$p[count]</td> + </tr>\n"; + } + + , ̺ ϳ ϳ tr DZ for Ͽ + print_prlist() Լ ݺ Ǿ DZ Ǿ + ϴ ̴. ˾Ƽ ϱ ٶ. + + +7. Bug report + + ׸ ߰ 쿡 http://jsboard.kldp.org/bbs/list.php?table=bbs_upgrade + ָ ϰڴ + + diff --git a/README b/README index 28f61e9f..858f9be0 100644 --- a/README +++ b/README @@ -1,7 +1,58 @@ -$Id: README,v 1.3 2009-11-16 21:52:45 oops Exp $ +JSBoard 1.x README +------------------ -ENGLISH message -goto doc/en +Ұ -KOREAN message -goto doc/ko +JSBoard 躴<redhands@linux.sarang.net> Խ + Ͽ ڵ ڽŸ ߰ Ƽ ο + ߰ 󿡼 Ҽ ִ Խ̴. + +JSBoard ϱ ؼ Redhat, Devian, FreeBSD 3.5, Windog 2K, +Windog NT box apache, mysql, php4 䱸Ǹ ý +͵ ư Ҽ ִ. + +Platform + +RedHat, Debian, FreeBSD 3.5, Windog NT, Windog 2000 ġǾ +ִ . OSܿ test Ǿ . + ڵ Ҽִ ȯ OSۿ +ٸ OS ù Ҽ ִ ȯ ƴϴ. +̴ ٸ ü Ŀ ̴ Ұ + Ǿ. + + Apache PHP4, MySQL ġǾ ִ ణ +  ϸ Ǿ. κ + ڵ ¿ ޷ ִٰ ȴ. ( ٸ OS +ÿ ּ ϰ ִ) + + + +JSBoard v1.x PHP3 Ͽ Installer admin center +Ҽ . ̴ Installer admin center cookie PHP4 + ϴ session ٲ ̴. + + Win32 version ȴ. +http://jsboard.kdlp.org/download.php win32 ٿ +޾ƾ Ѵ. + +ġ + +Root ִ ڵ鿡Դ Installer ϰ ִ. + Installer ġ ڵ Ͽ +Quick_INSTALL ϰ ִ. ڽ ȯ濡 ˸ Install + ٶ. + + ǹ + +ڴ ġ ־ ʿ κ ϱ ϳ ̴ ǹ +ʴ´. ׷ ڸ ٶ. :-) + +̼ + +JSBoard code(OOPS Administration ) GPL . ڵ带 +Ͽ ȭ ÿ ȭ Ǵ ǰ ڵ ؾ Ѵ. +OOPS Administration code 쿡 Ҽ ְ +ص ȭ Ѵ. ( Ұ JSBoard  ִ +OOPS Administration code߿ Ϻ JSBoard code ) + +2000 12 01 <admin@oops.org> diff --git a/README.OTHERS.OS b/README.OTHERS.OS new file mode 100644 index 00000000..ad87c79b --- /dev/null +++ b/README.OTHERS.OS @@ -0,0 +1,11 @@ +$ Redhat, Debian, FreeBSD, Windog 2K or NT ̿ OS ġ + +Do It Yourself!!!!! ^.^ + +üũ + +1. include/exec.ph ش ɵ ɼ ش OS + Ǵ +2. Installer/ad_sample/Others ִ README file о + . +3. Ƹ Installer ۵ . 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..a9427116 100644 --- a/act.php +++ b/act.php @@ -1,438 +1,299 @@ -<?php -# $Id: act.php,v 1.25 2014-01-01 09:30:38 oops Exp $ -include_once "include/variable.php"; -include_once "include/print.php"; -# GET/POST -parse_query_str(); - -if ($o['at'] != "dn" && $o['at'] != "sm" && $o['at'] != "ma") { - include "include/header.php"; - - $c = sql_connect ($db['rhost'], $db['user'], $db['pass'], $db['name'], $db['rmode']); - - if($board['mode'] && session_is_registered("$jsboard")) { - # α α ȭ, н - if($board['mode'] != 1 && !session_is_registered("$jsboard")) print_error($_('login_err')); - else compare_pass($_SESSION[$jsboard]); - $atc['passwd'] = $_SESSION[$jsboard]['pass']; - } - - $atc['goaway'] = $_POST['goaway']; - $atc['table'] = $table; - $atc['agent'] = $agent; - - # admin mode admin mode üũ - if($board['mode'] == 1 || $board['mode'] == 3) - if(!$board['adm'] && $board['super'] != 1) print_error($_('login_err')); - - # captcha authenication - function check_captcha ($atc) { - global $board, $_, $o; - - if ( $board['super'] || $board['adm'] ) - return; - - $pattern = ( $o['at'] == 'reply' ) ? '/^[25-7]/' : '/^[2457]/'; - if ( preg_match ($pattern, $board['mode']) ) - return; - - if ( ! $board['captcha'] || ! file_exists ('captcha/' . $board['captcha']) ) - return; +<? +if ($o[at] != "dn" && $o[at] != "sm" && $o[at] != "se") { + include "include/header.ph"; + include "./admin/include/config.ph"; - require_once ('captcha/captcha.php'); - $capt = new Captcha ($board['captcha']); - if ( $capt->disable === true ) - return; + $agent = get_agent(); - if ( ! $atc['ckey'] || ! $atc['ckeyv'] ) - print_error ($_('captnokey'),250,150,1); - - if ( $capt->check ($atc['ckey'], $atc['ckeyv']) === false ) - print_error ($_('captinvalid'),250,150,1); - } + sql_connect($db[server], $db[user], $db[pass]); + sql_select_db($db[name]); # Խù ۼ Լ function article_post($table, $atc) { - global $jsboard, $board, $upload, $cupload, $rmail, $_, $agent; - global $print, $max_file_size, $c, $db, $o; - - if($board['mode'] == 4 && $board['super'] != 1 && !$board['adm']) print_error($_('login_err')); - - $atc['date'] = time(); # ð - $atc['host'] = get_hostname(0); # ۾ ּ - - # Injection html Ѵ. - # phpbb bb tag ó - $atc['html'] = 2; + global $board, $upload, $cupload, $rmail, $langs, $adminsession, $pcheck; + global $userfile, $userfile_name, $userfile_size, $max_file_size, $agent; + + $atc[date] = time(); # ð + $atc[host] = get_hostname(0); # ۾ ּ + + if($atc[passwd]) { # н ȣȭ + $atc[repasswd] = $atc[passwd]; + $atc[passwd] = crypt($atc[passwd]); + } elseif($pcheck != "") { + $atc[repasswd] = $pcheck; + $atc[passwd] = crypt($pcheck); + } elseif($adminsession) { + $atc[repasswd] = $adminsession; + $atc[passwd] = $adminsession; + } - # ȣȯ ÿ html header tag ϴ Ѵ. - delete_tag($atc); + # Ͻÿ html header tag ϴ Ѵ. + if($atc[html]) $atc[text] = delete_tag($atc[text]); $atc = article_check($table, $atc); - if(preg_match("/^0|4|6$/",$board['mode'])) $atc['passwd'] = crypt($atc['passwd']); # ü ڰ Ͽÿ 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'] = ""; - } + if ($upload[yesno] =='yes' && $cupload[yesno] == 'yes' && $agent[br] != "LYNX") { + $bfilename = date("YmdHis",$atc[date]); + file_upload($bfilename); } else { # winchild 99/11/26 fileupload = "no" 쿡 ʱȭ ־ Ѵ. $bfilename = ""; - $upfile['size'] = 0; - $upfile['name'] = ""; + $userfile_size = 0; + $userfile_name = ""; } - sql_escape ($c, $table); - sql_escape ($c, $atc); - - $result = sql_query("SELECT MAX(num) AS num, MAX(idx) AS idx FROM $table", $c); - $_rr = sql_fetch_array ($result); - - $atc['mxnum'] = $_rr['num'] + 1; # ְ ȣ - $atc['mxidx'] = $_rr['idx'] + 1; # ְ ε ȣ - + $result = sql_query("SELECT MAX(num) AS num, MAX(idx) AS idx, MAX(no) AS no FROM $table"); + $atc[no] = sql_result($result, 0, "no") + 1; # ְ ȣ + $atc[mxnum] = sql_result($result, 0, "num") + 1; # ְ ȣ + $atc[mxidx] = sql_result($result, 0, "idx") + 1; # ְ ε ȣ 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); + sql_query(" + INSERT INTO $table VALUES ('', $atc[mxnum], $atc[mxidx], + $atc[date], '$atc[host]', '$atc[name]', '$atc[passwd]', + '$atc[email]', '$atc[url]', '$atc[title]', '$atc[text]', + 0, 0, 0, 0, 0, $atc[html], $board[moder],'$userfile_name','$bfilename','$userfile_size')"); # mail κ - if ($rmail['uses']) { - if ($rmail['admin'] || $rmail['user']) { - $rmail['name'] = $atc['rtname']; - $rmail['text'] = $atc['text']; - $rmail['title'] = $atc['rtitle']; - $rmail['url'] = $atc['url']; - $rmail['email'] = $atc['email']; - $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['reply_orig_email'] = $rmail['origmail']; - $rmail['theme'] = $print['theme']; - $rmail['html'] = $atc['html']; - - if(sendmail($rmail)) $page['m_err'] = 0; - else $page['m_err'] = 1; + if ($rmail[uses] == 'yes') { + if ($rmail[admin] == "yes" || $rmail[user] == "yes") { + $rmail[name] = "$atc[rname]"; + $rmail[text] = "$atc[text]"; + $rmail[title] = "$atc[rtitle]"; + $rmail[url] = "$atc[url]"; + $rmail[email] = "$atc[email]"; + $rmail[version] = "$board[ver]"; + $rmail[table] = "$table"; + $rmail[no] = $atc[no]; + $rmail[reply_orig_email] = "$rmail[origmail]"; + + if(sendmail($rmail)) $page[m_err] = 0; + else $page[m_err] = 1; } } - set_cookie($atc); return $page; } # Խù Լ function article_reply($table, $atc) { - global $board,$upload,$cupload,$rmail,$_,$agent,$jsboard,$page; - global $print, $max_file_size, $c, $db, $referer; - - $atc['date'] = time(); # ð - $atc['host'] = get_hostname(0); # ۾ ּ - - # Injection html Ѵ. - # phpbb bb tag ó - $atc['html'] = 2; - - # ȣȯ ÿ html header tag ϴ Ѵ. - delete_tag($atc); + global $board, $upload, $cupload, $rmail, $langs, $adminsession, $pcheck; + global $userfile, $userfile_name, $userfile_size, $max_file_size, $agent; + + $atc[date] = time(); # ð + $atc[host] = get_hostname(0); # ۾ ּ + + if($atc[passwd]) { # н ȣȭ + $atc[repasswd] = $atc[passwd]; + $atc[passwd] = crypt($atc[passwd]); + } elseif($pcheck != "") { + $atc[repasswd] = $pcheck; + $atc[passwd] = crypt($pcheck); + } elseif($adminsession) { + $atc[repasswd] = $adminsession; + $atc[passwd] = $adminsession; + } - # ۿ : и Ѵ. - $atc['text'] = preg_replace("/(^[:]+ [^\r\n]+)\r?\n([^:\r\n]+\r?\n)/mi","\\1 \\2",$atc['text']); + # Ͻÿ html header tag ϴ Ѵ. + if($atc[html]) $atc[text] = delete_tag($atc[text]); $atc = article_check($table, $atc); - if(preg_match("/^(0|4)$/",$board['mode']) || !session_is_registered($jsboard)) $atc['passwd'] = crypt($atc['passwd']); # 亯 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'] = ""; - } + if ($upload[yesno] =='yes' && $cupload[yesno] == 'yes' && $agent[br] != "LYNX") { + $bfilename = date("YmdHis",$atc[date]); + file_upload($bfilename); } else { # winchild 99/11/26 fileupload = "no" 쿡 ʱȭ ־ Ѵ. $bfilename = ""; - $upfile['size'] = 0; - $upfile['name'] = ""; + $userfile_size = 0; + $userfile_name = ""; } - # referer ȣ θ ȣ ٸ ó - if ( $atc['reno'] != $referer['no'] ) - print_error($_('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']; # θ ε ȣ - - if($reply['reto']) $atc['reto'] = $reply['reto']; # ֻ θ ȣ - else $atc['reto'] = $reply['no']; # θ ȣ + sql_query("LOCK TABLES $table WRITE"); + $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 - 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); + sql_query("UPDATE $table SET idx = idx + 1 WHERE (idx + 0) >= $atc[idx]"); + sql_query("UPDATE $table SET reyn = 1 WHERE no = $atc[reno]"); + sql_query(" + INSERT INTO $table VALUES ('', 0, $atc[idx], $atc[date], + '$atc[host]', '$atc[name]', '$atc[passwd]', '$atc[email]', + '$atc[url]', '$atc[title]', '$atc[text]', 0, 0, $atc[reno], + $atc[rede], $atc[reto], $atc[html], $board[moder],'$userfile_name','$bfilename','$userfile_size')"); + sql_query("UNLOCK TABLES"); # 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['name'] = $atc['rtname']; - $rmail['text'] = $atc['text']; - $rmail['title'] = $atc['rtitle']; - $rmail['url'] = $atc['url']; - $rmail['email'] = $atc['email']; - $rmail['version'] = $board['ver']; - $rmail['path'] = $board['path']; - $rmail['table'] = $table; - $rmail['reply_orig_email'] = $rmail['origmail']; - $rmail['theme'] = $print['theme']; - $rmail['html'] = $atc['html']; - - if(sendmail($rmail)) $gopage['m_err'] = 0; - else $gopage['m_err'] = 1; + if ($rmail[uses] == 'yes') { + if ($rmail[admin] == "yes" || $rmail[user] == "yes") { + $result = sql_query("SELECT MAX(no) no FROM $table"); + $rmail[no] = sql_result($result, 0, "no"); # ְ ȣ + $rmail[name] = "$atc[rname]"; + $rmail[text] = "$atc[text]"; + $rmail[title] = "$atc[rtitle]"; + $rmail[url] = "$atc[url]"; + $rmail[email] = "$atc[email]"; + $rmail[version] = "$board[ver]"; + $rmail[table] = "$table"; + $rmail[reply_orig_email] = "$rmail[origmail]"; + + if(sendmail($rmail)) $page[m_err] = 0; + else $page[m_err] = 1; } } set_cookie($atc); - $gopage['no'] = !$page ? get_current_page($table, $atc['idx']) : $page; - return $gopage; + $page[no] = get_current_page($table, $atc[idx]); + return $page; } # Խù Լ function article_edit($table, $atc, $passwd) { - global $max_file_size, $jsboard, $board, $_, $agent, $rmail; - global $upload, $cupload, $c, $db; + global $userfile, $userfile_name, $userfile_size, $max_file_size, $agent; + global $enable, $cenable, $board, $adminsession; + global $sadmin, $admin, $langs; - # 尡 ƴ н - if($board['super'] != 1 && !$board['adm']) { - if(!check_passwd($table,$atc['no'],trim($passwd))) print_error($_('act_pw'), 250, 150, 1); + if($adminsession) { + $passwd = $adminsession; + $spasswd = $adminsession; + } else { + $spasswd = crypt($passwd,$sadmin[passwd]); + $upasswd = crypt($passwd,$admin[passwd]); } - $atc['date'] = time(); # ð - $atc['host'] = get_hostname(0); # ۾ ּ - $atc = article_check($table, $atc); - - # ȣȯ ÿ html header tag ϴ Ѵ. - delete_tag($atc); + if ($enable[edit] && $cenable[edit]) { + if($adminsession) { + if($sadmin[passwd] != $spasswd) + print_error("$langs[act_pww]"); + } else { + if(!check_passwd($table, $atc[no], $passwd)) + print_error("$langs[act_pw]"); + } + } else if (!$enable[edit]) { + if ($sadmin[passwd] != $spasswd) + print_error("$langs[act_pww]"); + } else { + if ($sadmin[passwd] != $spasswd && $admin[passwd] != $upasswd) + print_error("$langs[act_pwa]"); + } - # ۿ : и Ѵ. - $atc['text'] = preg_replace("/(^[:]+ [^\r\n]+)\r?\n([^:\r\n]+\r?\n)/mi","\\1 \\2",$atc['text']); + $atc[date] = time(); # ð + $atc[host] = get_hostname(0); # ۾ ּ + $atc[repasswd] = $passwd; + $atc = article_check($table, $atc); - sql_escape ($c, $table); - sql_escape ($c, $atc); + # Ͻÿ html header tag ϴ Ѵ. + if($atc[html]) $atc[text] = delete_tag($atc[text]); # 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); - - sql_query("UPDATE $table SET bcfile='', bofile='', bfsize='' WHERE no = '{$atc['no']}'", $c); - if(file_exists("data/$table/files/{$fdelinfo['bcfile']}/{$fdelinfo['bofile']}")) { - unlink("data/$table/files/{$fdelinfo['bcfile']}/{$fdelinfo['bofile']}"); - rmdir("data/$table/files/{$fdelinfo['bcfile']}"); - } + if($atc[fdel]) { + sql_query("UPDATE $table SET bcfile='', bofile='', bfsize='' WHERE no = $atc[no]"); + unlink("data/$table/files/$atc[fdeldir]/$atc[fdelname]"); + rmdir("data/$table/files/$atc[fdeldir]"); } # file ƾ - if($upload['yesno'] && $cupload['yesno'] && !$agent['tx']) { - # 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); - 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']}"); - } + $bfilename = date("YmdHis",$atc[date]); + $atc[fup] = file_upload($bfilename); - $upquery = ",\n bofile = '{$upfile['name']}', bcfile = '{$bfilename}', bfsize = '{$upfile['size']}'\n"; + if($atc[fup]) { + if(file_exists("data/$table/files/$atc[fdeldir]/$atc[fdelname]") && $atc[fdelname]) { + unlink("data/$table/files/$atc[fdeldir]/$atc[fdelname]"); + rmdir("data/$table/files/$atc[fdeldir]"); } - } - sql_query(" - UPDATE $table SET date = '{$atc['date']}', host = '{$atc['host']}', - name = '{$atc['name']}', email = '{$atc['email']}', url = '{$atc['url']}', - title = '{$atc['title']}', text = '{$atc['text']}', html = '{$atc['html']}'$upquery - WHERE no = '{$atc['no']}'", $c); + sql_query(" + UPDATE $table SET date = $atc[date], host = '$atc[host]', + name = '$atc[name]', email = '$atc[email]', url = '$atc[url]', + title = '$atc[title]', text = '$atc[text]', html = $atc[html], + bofile = '$userfile_name', bcfile = '$bfilename', bfsize = '$userfile_size' + WHERE no = $atc[no]"); + } else { + sql_query(" + UPDATE $table SET date = $atc[date], host = '$atc[host]', + name = '$atc[name]', email = '$atc[email]', url = '$atc[url]', + title = '$atc[title]', text = '$atc[text]', html = $atc[html] + WHERE no = $atc[no]"); + } set_cookie($atc); - return $atc['no']; + return $atc[no]; } # Խù Լ - function article_delete($table, $no, $passwd) { - global $jsboard, $o, $_, $board, $page, $c, $db; - global $delete_filename, $delete_dir, $upload, $agent; + function article_delete($table, $no, $passwd, $adm = 0) { + global $sadmin, $admin, $o, $langs, $adminsession; + global $delete_filename, $delete_dir, $sadm, $upload; + + $adm = $o[am]; $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); - } + $spasswd = crypt($passwd,$sadmin[passwd]); + $upasswd = crypt($passwd,$admin[passwd]); - # 尡 ƴ ϸ ޼ - if($atc['reyn'] && ($board['super'] != 1 && !$board['adm'] && $admchk != 2)) - print_error($_('act_c'),250,150,1); + if($adminsession) { + if($sadmin[passwd] != $adminsession) + print_error("$langs[act_pww]"); + else $adm = "sadmin"; + } else { + if(!check_passwd($table, $atc[no], $passwd) && !$adm) + print_error("$langs[act_pw]"); + else if ($sadmin[passwd] != $spasswd && $adm == "sadmin") + print_error("$langs[act_pww]"); + else if ($sadmin[passwd] != $spasswd && $admin[passwd] != $upasswd && $adm == "admin") + print_error("$langs[act_pwa]"); + } - sql_escape ($c, $table); - sql_escape ($c, $atc); + if($atc[reyn] && !$adm) # ñ Բ + print_error("$langs[act_c]"); # θ ڽ ۿ θ 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); + if($atc[reno]) { + $result = sql_query("SELECT COUNT(*) FROM $table WHERE reno = $atc[reno]"); + if(sql_result($result, 0, "COUNT(*)") == 1) + sql_query("UPDATE $table SET reyn = 0 WHERE no = $atc[reno]"); sql_free_result($result); } - 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("LOCK TABLES $table WRITE"); + sql_query("DELETE FROM $table WHERE no = $atc[no]"); + sql_query("UPDATE $table SET idx = idx - 1 WHERE (idx + 0) > $atc[idx]"); - if(!$atc['reyn']) { + if(!$atc[reyn]) { # upload file - if ($delete_filename && file_exists("$delete_filename")) { + if ($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); + if($atc[reyn] && $adm) { + $result = sql_query("SELECT no,bofile,bcfile FROM $table WHERE reno = $atc[no]"); while($list = sql_fetch_array($result)) { - table_lock ($c, $table, 0); - article_delete($table, $list['no'], $passwd); + article_delete($table, $list[no], $passwd, $adm); # 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']}"); + if ($list[bofile]) { + unlink("./data/$table/$upload[dir]/$list[bcfile]/$list[bofile]"); + rmdir("./data/$table/$upload[dir]/$list[bcfile]"); } } } - $page = !$page ? get_current_page($table, $atc['idx']) : $page; - table_lock ($c, $table, 0); + $page = get_current_page($table, $atc[idx]); + sql_query("UNLOCK TABLES"); return $page; } - function comment_post($table,$atc) { - global $jsboard, $board, $_, $ccompare, $compare; - global $c, $db; - - $host = get_hostname(0); - $dates = time(); - - # blank check - $blankChk = "(\xA1A1|\s|&nbsp;)+"; - $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); - } - } - - 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); - - if($r['su'] != crypt($atc['passwd'],$r['su'])) $notsuper = 1; - - if ($cmp['name']) { - if($notsuper) print_error($_('act_ad'),250,150,1); - } - - if($ccmp['name'] && $notsuper) { - $arrayadm = explode(";",$board['ad']); - - for($k=0;$k<sizeof($arrayadm);$k++) { - # Խ н - $result = sql_query("SELECT passwd FROM userdb WHERE nid = '$arrayadm[$k]'", $c); - $r['ad'] = sql_result($result,0,"passwd"); - sql_free_result($result); - - if($r['ad'] == crypt($atc['passwd'],$r['ad'])) { - $notadm = 0; - break; - } else $notadm = 1; - } - if ($notadm) print_error($_('act_d'),250,150,1); - } - } - - if(preg_replace("/\s/i","",$atc['passwd'])) $atc['passwd'] = crypt($atc['passwd']); - if($agent['co'] == "mozilla") $atc['text'] = wordwrap($atc['text'],60,"\n",1); - - sql_escape ($c, $table); - sql_escape ($c, $atc); - - $sql = "INSERT INTO {$table}_comm (reno,rname,name,passwd,text,host,date) ". - "VALUES ('{$atc['no']}','{$atc['rname']}','{$atc['name']}','{$atc['passwd']}','{$atc['text']}','$host','$dates')"; - sql_query($sql, $c); - $sql = "UPDATE {$table} SET comm = comm + 1 WHERE no = '{$atc['no']}'"; - sql_query($sql, $c); - set_cookie($atc,1); - } - - function comment_del($table,$no,$cid,$pass) { - global $jsboard, $_, $board, $c, $db; - - # 尡 ƴ н - if($board['super'] != 1 && !$board['adm']) { - $admchk = check_passwd($table,$cid,trim($pass)); - if(!$admchk) print_error($_('act_pw'),250,150,1); - } - - sql_escape ($c, $table); - - sql_query("DELETE FROM {$table}_comm WHERE no = '$cid'", $c); - $sql = "UPDATE {$table} SET comm = comm - 1 WHERE no = '{$no}'"; - sql_query($sql, $c); - } - # Խù ˻ Լ # # trim - ڿ ڸ @@ -441,141 +302,73 @@ function comment_del($table,$no,$cid,$pass) { # http://www.php.net/manual/function.chop.php function article_check($table, $atc) { # ˻ (CGI ) - global $jsboard, $compare, $o, $ccompare, $_, $rmail; - global $board, $passwd, $agent, $c, $db; - - # spam ϱ üũ - check_spamer($atc); + global $sadmin, $admin, $compare, $o, $ccompare, $langs, $adminsession, $ramil; # location check - check_location(1); + if($rmail[uses] == "yes") check_location(1); # ̸, , - $atc['name'] = trim($atc['name']); - $atc['title'] = trim($atc['title']); - $atc['text'] = chop($atc['text']); - - if(preg_match("/[^\xA1-\xFEa-z\. ]/i", $name)) - print_error ($_('reg_format_n'), 250, 150, 1); - - if(($o['at'] == "write" || $o['at'] == "reply") && preg_match("/^(0|4|6)$/",$board['mode']) && !$board['adm'] && $board['super'] != 1) { - if(!trim($atc['passwd']) && !trim($passwd)) print_error($_('act_pwm'),250,150,1); - } + $atc[name] = trim($atc[name]); + $atc[title] = trim($atc[title]); + $atc[text] = chop($atc[text]); - # blank check - if ( ! $atc['name'] || ! $atc['title'] || ! trim ($atc['text']) ) - print_error($_('act_in'),250,150,1); + if(!$atc[name] || !$atc[title] || !$atc[text]) print_error($langs[act_in]); + if($atc[url]) $atc[url] = check_url($atc[url]); + if($atc[email]) $atc[email] = check_email($atc[email]); - $blankChk = "(\xA1A1|\s|&nbsp;)+"; - $nameChk = array("name","title","text"); - for($bc=0;$bc<3;$bc++) { - if(!$atc[$nameChk[$bc]] || preg_match("/^$blankChk$/i",$atc[$nameChk[$bc]])) - print_error($_('act_in'),250,150,1); - } - - if($atc['url']) $atc['url'] = check_url($atc['url']); - if ( $atc['email'] ) { - # windows php has not checkdnsrr() function - $offset = check_windows () ? 0 : 1; - $atc['email'] = check_email ($atc['email'], $offset); - } + if (!$compare[email]) $compare[email] = "mail check"; + if (!$ccompare[email]) $ccompare[email] = "mail check"; - # , 忡 html table tag ˻ - if(($o['at'] == "write" || $o['at'] == "reply" || $o['at'] == "edit") && $atc['html'] == 1) { - check_htmltable($atc['text']); - check_iframe($atc['text']); - $denysrc = array("!<((iframe|script|img)[^>]*)>!i","!<(/(iframe|script|img))>!i"); - $editsrc = array("&lt;\\1&gt;","&lt;\\1&gt;"); - $atc['text'] = preg_replace($denysrc,$editsrc,$atc['text']); + if(!$adminsession) { + $spasswd = crypt($atc[repasswd],$sadmin[passwd]); + $upasswd = crypt($atc[repasswd],$admin[passwd]); + } else { + $spasswd = $atc[repasswd]; } - $compare['email'] = trim($compare['email']) ? $compare['email'] : "mail check"; - $ccompare['email'] = trim($ccompare['email']) ? $ccompare['email'] : "mail check"; - $compare['name'] = trim($compare['name']) ? $compare['name'] : "name check"; - $ccompare['name'] = trim($ccompare['name']) ? $ccompare['name'] : "name check"; + if (eregi($compare[name],$atc[name])) $cmp[name] = 1; + if (eregi($compare[email],$atc[email])) $cmp[email] = 1; + if (eregi($ccompare[name],$atc[name])) $ccmp[name] = 1; + if (eregi($ccompare[email],$atc[email])) $ccmp[email] = 1; - if (eregi($compare['name'],$atc['name'])) $cmp['name'] = 1; - if (eregi($compare['email'],$atc['email'])) $cmp['email'] = 1; - if (eregi($ccompare['name'],$atc['name'])) $ccmp['name'] = 1; - if (eregi($ccompare['email'],$atc['email'])) $ccmp['email'] = 1; - - # Ī üũ - if((!$board['mode'] || $board['mode'] == 4) && $board['super'] != 1 && !$board['adm']) { - if($o['at'] == "edit") $atc['passwd'] = $passwd; - - # ü н - $result = sql_query("SELECT passwd FROM userdb WHERE position = 1", $c); - $r['su'] = sql_result($result,0,"passwd"); - sql_free_result($result); - - if ($r['su'] != crypt($atc['passwd'],$r['su'])) $notsuper = 1; - - if ($cmp['name'] || $cmp['email']) { - if($notsuper) print_error($_('act_ad'),250,150,1); - } - - if (($ccmp['name'] || $ccmp['email']) && $notsuper) { - $arrayadm = explode(";",$board['ad']); - for($k=0;$k<sizeof($arrayadm);$k++) { - # Խ н - $result = sql_query("SELECT passwd FROM userdb WHERE nid = '{$arrayadm[$k]}'", $c); - $r['ad'] = sql_result($result,0,"passwd"); - sql_free_result($result); - - if($r['ad'] == crypt($atc['passwd'],$r['ad'])) { - $notadm = 0; - break; - } else $notadm = 1; - } - if ($notadm) print_error($_('act_d'),250,150,1); - } + if ($cmp[name] || $cmp[email]) { + if($sadmin[passwd] != $spasswd) print_error($langs[act_ad]); + } else if ($ccmp[name] || $ccmp[email]) { + if($admin[passwd] != $upasswd && $sadmin[passwd] != $spasswd) print_error($langs[act_d]); } # üũ - if($o['at'] == "write" || $o['at'] == "reply") check_captcha ($atc); - if(check_spam($atc['text'])) print_error($_('act_s') . $GLOBALS['spamstr'],250,150,1); - if(check_spam($atc['title'])) print_error($_('act_s') . $GLOBALS['spamstr'],250,150,1); + if(check_spam($atc[text])) print_error($langs[act_s]); + + # browser check + if(!chk_spam_browser()) print_error($langs[act_sb]); # Ϸ - $atc['rtname'] = $atc['name']; - $atc['rtitle'] = $atc['title']; + $atc[rname] = $atc[name]; + $atc[rtitle] = $atc[title]; # ̸, HTML ڵ ڸ ġȯ # ugly_han() -> IE ÿ ѱ - $atc['name'] = ugly_han(htmlspecialchars($atc['name'])); - $atc['title'] = ugly_han(htmlspecialchars($atc['title'])); + $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); + $result = sql_query("SELECT * FROM $table ORDER BY no DESC LIMIT 0, 1"); $list = sql_fetch_array($result); sql_free_result($result); - if ($list && $atc['name'] == $list['name'] && - $atc['text'] == $list['text'] && - $atc['title'] == $list['title'] && - $atc['email'] == $list['email'] && - $atc['url'] == $list['url'] && - $atc['html'] == $list['html']) { - - # , , ÷ ȭ . - if ($o['at'] == 'edit') { - if ($atc['fdel']) { - $chkpass = 1; - } elseif (is_uploaded_file($_FILES['userfile']['tmp_name']) && $_FILES['userfile']['size'] > 0) { - $chkpass = 1; - } else $chkpass = 0; - } else $chkpass = 0; - - if (!$chkpass) { - switch ($o['at']) { - case 'write': - print_error($_('act_same'),250,150,1); - break; - case 'edit': - print_error($_('act_dc'),250,150,1); - break; - } + if ($list && $atc[name] == $list[name] && + $atc[text] == $list[text] && + $atc[title] == $list[title] && + $atc[html] == $list[html]) { + + switch ($o[at]) { + case 'p': + print_error("$langs[act_same]"); + break; + case 'e': + print_error("$langs[act_dc]"); + break; } } @@ -583,85 +376,111 @@ function article_check($table, $atc) { } # Ű Լ - function set_cookie($atc,$comment=0) { - global $board,$agent; - $month = 60 * 60 * 24 * $board['cookie']; - $cookietime = time() + $month; - - setcookie("board_cookie[name]", $atc['name'], $cookietime); - if(!$comment) { - setcookie("board_cookie[email]", $atc['email'], $cookietime); - setcookie("board_cookie[url]", $atc['url'], $cookietime); - } + function set_cookie($atc) { + global $board; # Խ ⺻ (config/global.ph) + $month = 60 * 60 * 24 * $board[cookie]; + + setcookie("board_cookie[name]", $atc[name], time() + $month); + setcookie("board_cookie[email]", $atc[email], time() + $month); + setcookie("board_cookie[url]", $atc[url], time() + $month); } - switch($o['at']) { - case 'write': + switch($o[at]) { + case 'p': + $atc[text] = $wpost; $page = article_post($table, $atc); - if(!$page['m_err']) Header("Location: list.php?table=$table"); + SetCookie("pcheck","",0); + 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); - if(!$gopage['m_err']) Header("Location: list.php?table=$table&page={$gopage['no']}"); - else move_page("list.php?table=$table&page={$gopage['no']}"); + case 'r': + $atc[text] = $rpost; + $page = article_reply($table, $atc); + SetCookie("pcheck","",0); + if(!$page[m_err]) Header("Location: list.php?table=$table&page=$page[no]"); + else move_page("list.php?table=$table&page=$page[no]"); break; - case 'edit': + case 'e': + $atc[text] = $epost; $no = article_edit($table, $atc, $passwd); Header("Location: read.php?table=$table&no=$no"); break; - case 'del': - $gopage = article_delete($table, $no, $passwd, $o['am']); - Header("Location: list.php?table=$table&page=$gopage"); + case 'd': + $page = article_delete($table, $no, $passwd, $o[am]); + Header("Location: list.php?table=$table&page=$page"); break; - case 'c_write': - comment_post($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); - Header("Location: read.php?table=$table&no={$atc['no']}&page=$page"); } -} elseif ($o['at'] == "dn") { - include "include/header.php"; +} elseif ($o[at] == "dn") { + include "config/global.ph"; + include "include/error.ph"; + include "include/check.ph"; + include "include/get.ph"; # ش meta character ϴ üũ - meta_char_check($dn['tb'],0,1); - meta_char_check($dn['cd']); - meta_char_check($upload['dir']); - upload_name_chk($dn['name']); - - $dn['path'] = "data/{$dn['tb']}/{$upload['dir']}/{$dn['cd']}/{$dn['name']}"; - - if($dn['dl'] = readfile_r ($dn['path'])) { - if(extension_loaded('fileinfo')) { - $finfo = finfo_open(FILEINFO_MIME); - if(is_resource($finfo)) { - $mimes = finfo_file($finfo, $dn['path']); - $mimes = preg_replace('!^([^/]+/[a-z0-9+.-]+).*!i', '\\1', $mimes); - finfo_close($finfo); - } + meta_char_check($dn[tb],0,1); + meta_char_check($dn[cd]); + meta_char_check($upload[dir]); + upload_name_chk($dn[name]); + + $dn[path] = "data/$dn[tb]/$upload[dir]/$dn[cd]/$dn[name]"; + + if($dn[dl] = file_operate($dn[path],"r","Don't open $dn[name]")) { + if($agent[br] == "MSIE5.5") { + header("Content-Type: doesn/matter"); + header("Content-Disposition: filename=".$dn[name]); + header("Content-Transfer-Encoding: binary"); + } else { + Header("Content-type: file/unknown"); + Header("Content-Disposition: attachment; filename=".$dn[name]); + Header("Content-Description: PHP Generated Data"); } + echo $dn[dl]; + } +} elseif ($o[at] == "sm") { + include "include/version.ph"; + include "config/global.ph"; + include "include/error.ph"; + include "include/check.ph"; + include "include/sendmail.ph"; + include "include/lang.ph"; + + if($rmail[uses] == "yes") { + # browser check + if(!chk_spam_browser()) print_error($langs[act_sb]); - $dn['encode'] = content_disposition($dn['name']); + check_location(1); - if($agent['br'] == "MSIE" && $agent['vr'] == 5.5) { - $mimes = $mimes ? $mimes : 'doesn/matter'; - header('Content-Transfer-Encoding: binary'); - } else { - $mimes = $mimes ? $mimes : 'file/unknown'; - Header('Content-Description: PHP Generated Data'); - } - Header('Content-type: '.$mimes); - header('Content-Length: '.filesize("{$dn['path']}")); - Header('Content-Disposition: attachment; '.$dn['encode']); - Header('Pragma: no-cache'); - Header('Expires: 0'); + $rmail[name] = "$atc[name]"; + $rmail[text] = "$atc[text]"; + $rmail[title] = "$atc[title]"; + $rmail[email] = "$atc[email]"; + $rmail[version] = "$board[ver]"; + $rmail[reply_orig_email] = "$atc[to]"; + + sendmail($rmail,1); + } - echo $dn['dl']; + echo "<script>window.close()</script>"; +} elseif ($o[at] == "se") { + if ($o[se] == "login") { + if($pcheck != "") SetCookie("pcheck","","0"); + # Cookie Ѵ. + if($agent[br] = "MSIE") $CookieTime = strftime("%A, %d-%b-%Y %H:%M:%S MST", time()+900); + else $CookieTime = "time()+900"; + SetCookie("pcheck",$pcheck,$CookieTime); + if(!$page) $page = 1; + header("Location: $kind.php?table=$table&no=$no&page=$page"); + } else if ($o[se] == "logout") { + SetCookie("pcheck","","0"); + header("Location: auth_ext.php?table=$table&kind=$kind&no=$no"); + } else if ($o[se] == "back") { + header("Location:list.php?tabel=$table"); + } else { + echo "<SCRIPT>alert('Problem in Session');history.back();</SCRIPT>"; + exit; } } else { - echo "<script type=\"text/javascript\">alert('It\'s Bad Access');history.back();</script>"; + echo "<SCRIPT>alert('It\'s Bad Access');history.back();</SCRIPT>"; exit; } ?> diff --git a/admin/License b/admin/License new file mode 100644 index 00000000..d19deeb5 --- /dev/null +++ b/admin/License @@ -0,0 +1,51 @@ +OOPS Administration Center - PHP programingÿ Ǵ MySQL DB + + α׷ JSBoardʹ α׷μ +Ʈ . + +OOPS License v0.1 + +Copyright 1999-2001 (JoungKyun Kim) +E-mail : admin@oops.org +Home : http://www.oops.org + +[English Message] + +ATTENTION!! +All problems of law is based follow Korean Message. + +This software is restricted freeware without purpose of commerce +that use whole or some parts of this software. If U want to use +to business, must permited to me! + +Purpose of Commerce is resticted active that seils whole source +or some parts of source. + +If you use this software or some parts of this software, you +must see clear upper qualifications and copyright of first dev- +eloper(ME ^^). Modifyer or redistributer is recorded redistrib- +uter. + +Used of this software is without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +You should have received a copy of This License along with this +program; if not, write to me. + +[Korean Message] + + Ʈ Ǿ絵ڴ  쿡 +ÿ ҽ Ǵ ҽ Ϻθ Ҽ + 뵵 Ǿ 쿡 㰡 ־ Ѵ. + + 뵵 ҽ Ǵ ҽ Ϻθ ҽ Ǹ ϴ + Ѵ. + + Ʈ Ǵ Ϻθ ̿ҽ copyright +ϸ, copyright ǥؾ߸ ϸ, + ڴ ⸦ ϵ Ѵ. + + Ʈ Կ ־ ؿ ؼ å +Ʈ ϴ ο ϱ ٶ. + + Ǿ ִٸ ο Ǹ ٶ. diff --git a/admin/act.php b/admin/act.php index f6ccc7d4..7ede931b 100644 --- a/admin/act.php +++ b/admin/act.php @@ -1,171 +1,153 @@ <?php -# $Id: act.php,v 1.4 2009-11-17 17:40:16 oops Exp $ -$path['type'] = "admin"; -require_once './include/admin_head.php'; -require_once '../include/ostype.php'; -require_once '../include/parse.php'; - -if ( ! session_is_registered ($jsboard) || $_SESSION[$jsboard]['pos'] != 1 ) - print_error ($_('login_err')); - -if ( $mode == 'global_chg' ) { - $db['rhost'] = $db['server']; - $db['rmode'] = ""; -} - -if ($db['rmode'] == 'r' ) - print_error ("System Checking NOW !! \n\nSorry, Read only enable.", 250, 130, 1); +include "./include/admin_head.ph"; +include "../include/ostype.ph"; -########################################### -# DB -########################################### +# password Լ - admin/include/auth.ph +compare_pass($sadmin,$login); -$c = sql_connect($db['rhost'], $db['user'], $db['pass'], $db['name']); - -# password Լ - admin/include/auth.php -compare_pass ($_SESSION[$jsboard]); +$connect=mysql_connect($db[server],$db[user] ,$db[pass]) or + die("$langs[sql_na]" ); # db_name Ʒ մϴ. -exsit_dbname_check ($db['name']); - -# ĺ е Ѿ -# ǵ -$tslink = $ts ? "?ts=$ts" : ''; +exsit_dbname_check($db[name]); -if ( $mode == 'csync' ) { - table_name_check ($table_name); +mysql_select_db($db[name],$connect); - if ( ! preg_match ("/_comm$/", $table_name) ) { - print_error ("$table_name is not comment table", 250, 150, 1); - } +if( $mode != "manager_config") { - $mother_name = preg_replace ('/_comm$/', '', $table_name); + # ĺ е Ѿ + # ǵ + if($ts) $tslink = "?ts=$ts"; - # ̸ Խ ִ Ȯ - $chk = db_table_list ($c, $db['name'], '', $table_name); + ########################################### + # DB + ########################################### - if ( $chk ) { - if ( ! field_exist_check ($c, $db['name'], $mother_name, "comm") ) { - # comm field ߰ - sql_query ('ALTER TABLE ' . $mother_name . ' add comm int(6) DEFAULT 0', $c); - # comm field key ߰ - sql_query ('ALTER TABLE ' . $mother_name . ' add key (comm)', $c); - } + if($mode=='db_del') { + table_name_check($table_name); - sync_comment ($table_name, $mother_name); + # table delete + $table_del = "drop table $table_name"; + $result = mysql_query($table_del,$connect); - sql_close ($c); - } else { - sql_close ($c); - print_error ("$table_name is not found", 250, 150, 1); + # Խ Ǵ file + exec("$exec[rm] ../data/$table_name"); + mysql_close(); } -} -else if ( $mode == 'db_del' ) { - table_name_check ($table_name); + if($mode == 'db_create') { + $tbl_list = mysql_list_tables($db[name]); + + # θ ̸ üũ + table_name_check($new_table); + # table list üũ + table_list_check($db[name]); + # ̸ Խ ִ Ȯ + same_db_check($tbl_list,$new_table); + + $create_table = "CREATE TABLE $new_table ( + no int(6) DEFAULT '0' 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, + passwd varchar($ostypes[pfield]), + 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, + moder int(1) 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), + PRIMARY KEY (no))"; + + $passwd_ext = crypt($passwd_ext); + + $insert_data = "insert into $new_table 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,'','','')"; + + $result = mysql_query($create_table, $connect); + $result_insert = mysql_query($insert_data, $connect); + + # ο Խǿ ʿ Ϲ 丮 + 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/$ostypes[name]/config.ph","../data/$new_table/config.ph"); + chmod("../data/$new_table/config.ph",0644); + copy("../Installer/sample/$ostypes[name]/html_head.ph","../data/$new_table/html_head.ph"); + chmod("../data/$new_table/html_head.ph",0644); + copy("../Installer/sample/$ostypes[name]/html_tail.ph","../data/$new_table/html_tail.ph"); + chmod("../data/$new_table/html_tail.ph",0644); + + # 丮 + chdir("../data/$new_table"); + if(file_exists("default.themes")) unlink("default.themes"); + symlink("../../config/themes/basic.themes","default.themes"); + chdir("../../admin"); + + mysql_close(); + } - # ̸ Խ ִ Ȯ - $chk = db_table_list ($c, $db['name'], '', $table_name); + if($mode == "global_chg") { - if ( $chk ) { - # table delete - $table_del = "drop table $table_name"; - sql_query ($table_del, $c); + # quot ȯ ڸ un quot Ѵ + $vars = stripslashes($glob[vars]); + $spam = stripslashes($glob[spam]); + $br = stripslashes($glob[brlist]); - if ( ! preg_match ('/_comm$/', $table_name) ) { - $comm_del = "drop table {$table_name}_comm"; - sql_query($comm_del,$c, 1); + file_operate("../config/global.ph","w",0,$vars); + file_operate("../config/spam_list.txt","w",0,$vars); + file_operate("../config/allow_browser.txt","w",0,$vars); - # Խ Ǵ file - unlink_r ("../data/{$table_name}"); - } - } + # 丮 + chdir("../config"); + if(file_exists("default.themes")) unlink("default.themes"); + symlink("themes/$glob[theme].themes","default.themes"); - sql_close ($c); -} + $langs[act_complete] = str_replace("\n","\\n",$langs[act_complete]); + $langs[act_complete] = str_replace("'","\'",$langs[act_complete]); + echo "<script>\n" . + "alert('$langs[act_complete]')\n" . + "window.close()\n</script>"; + exit; -else if ( $mode == 'db_create' ) { - # Խ ̸ Ģ -> A-Za-z0-9_ - if ( preg_match ('/[^a-z0-9_]/i', $new_table) ) - print_error ($_('tb_rule'), 250, 150, 1); - - # θ ̸ üũ - 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); -} - -else if( $mode == 'global_chg' ) { - sql_close ($c); - # quot ȯ ڸ un quot Ѵ + Header("Location:admin.php$tslink"); - $vars = "<?\n" . stripslashes ($glob['vars']) . "\n?>"; - $spam = stripslashes ($glob['spam']); +} else { + if($admincenter_pass && $readmincenter_pass) { + if($admincenter_pass == $readmincenter_pass) { - writefile_r ('../config/global.php', $vars); - writefile_r ('../config/spam_list.txt', $spam); + # Է н带 crypt ȣȭ + $ad_pass = crypt($admincenter_pass); + $ad_pass = str_replace("\$","\\\$",$ad_pass); - $_lang['act_complete'] = str_replace ("\n", "\\n", $_('act_complete')); - $_lang['act_complete'] = str_replace ("'", "\'", $_lang['act_complete']); + $configfile = "./include/config.ph"; + $admininfo = file_operate($configfile,"r","Don't open $configfile"); + $admininfo = eregi_replace("sadmin\[passwd\] = (\"[a-z0-9\.\/\$]*\")","sadmin[passwd] = \"$ad_pass\"",$admininfo); - echo "<script type=\"text/javascript\">\n" . - "alert('{$_lang['act_complete']}')\n" . - "window.close()\n</script>\n". - "<NOSCRIPT>Complete this Job. Click <A HREF=./admin.php>here go to admin page!</A></NOSCRIPT>"; - exit; + file_operate($configfile,"w","Can't update $configfile",$admininfo); + complete_adminpass(); + } else admin_pass_error(); + } else print_error($langs[a_act_cp]); } -Header("Location:admin.php$tslink"); - ?> diff --git a/admin/admin.php b/admin/admin.php index 1e11316c..68b41741 100644 --- a/admin/admin.php +++ b/admin/admin.php @@ -1,268 +1,185 @@ <?php -# $Id: admin.php,v 1.4 2014-02-28 19:30:02 oops Exp $ -$path['type'] = 'admin'; -require_once "./include/admin_head.php"; +include "./include/admin_head.ph"; # ĺ з ũ -if ( $ts ) { +if($ts) { $tslink = "?ts=$ts"; $tslinks = "&ts=$ts"; } -if ( ! session_is_registered ($jsboard) || $_SESSION[$jsboard]['pos'] != 1 ) - print_error($_('login_err')); +# password Լ - admin/include/check.ph +compare_pass($sadmin,$login); -# н尡 ⺻ ʾ - admin/include/print.php -print_chgpass ($_SESSION[$jsboard]['pass']); +# н尡 ⺻ ʾ - admin/include/print.ph +print_chgpass($login[pass]); -htmlhead (); +htmlhead(); +java_scr(); # input size browser ߱ -$size = form_size (9); -$_lang['a_t41'] = ( $_('code') == 'en' ) ? strtoupper($_('a_t4')) : $_('a_t4'); -$_lang['a_t61'] = ( $_('code') == 'en' ) ? strtolower($_('a_t6')) : $_('a_t6'); +$size = form_size(9); +$langs[a_t41] = strtoupper($langs[a_t4]); +$langs[a_t61] = strtolower($langs[a_t6]); # MySQL Ѵ -$c = sql_connect($db['server'], $db['user'], $db['pass'], $db['name']); - -if ( $agent['tx'] ) { - echo "JSBoard<BR>\n". - "Administration Center\n"; -} else { - echo "<table border=0 width=\"100%\" cellpadding=0 cellspacing=0 style=\"height: 100%\">\n". - "<tr><td align=\"center\" valign=\"middle\">\n\n". - "<table width=\"{$board['width']}\" border=0 cellpadding=0 cellspacing=0>\n<tr><td>\n". - "<table border=0 cellpadding=0 cellspacing=0>\n<tr>\n". - "<td rowspan=2 valign=\"middle\">\n". - "<span class=\"bigtitle\">J</span></td>\n". - "<td valign=\"bottom\"><span class=\"smalltitle\"> SBoard</span></td>\n". - "</tr>\n\n<tr>\n". - "<td valign=\"top\"><span class=\"smalltitle\">Administration Center</span></td>\n". - "</tr>\n</table>\n". - "</td></tr>\n</table>\n\n"; -} +$connect=@mysql_connect("$db[server]","$db[user]","$db[pass]") or + die("$langs[sql_na]"); + +echo "<table border=0 width=100% height=100% cellpadding=0 cellspacing=0>\n". + "<tr><td align=center valign=center>\n\n". + "<table border=0 cellpadding=0 cellspacing=0 border=0>\n<tr>\n". + "<td rowspan=2 valign=center><font size=+2 color=$color[text]><b>OOPS&nbsp;</b></font></td>\n". + "<td valign=bottom> for JS Board</td>\n". + "</tr>\n\n<tr>\n". + "<td valign=top>Administration Center v$copy[version]</td>\n". + "</tr>\n</table>\n<p>\n"; # db_name Ʒ մϴ. -exsit_dbname_check ($db['name']); +exsit_dbname_check($db[name]); -if( $db['name'] && ! $table ) { - echo "<table border=0 cellpadding=1 cellspacing=1 width=\"{$board['width']}\" align=\"center\">\n". - "<tr>\n"; +if($db[name] && !$table) { + echo "<table border=0 cellpadding=1 cellspacing=1 width=$board[width] align=center>\n". + "<tr align=center bgcolor=$color[l1_bg]>\n". + "<td rowspan=2><font color=$color[l1_fg]><b>$langs[a_t1]</b></font></td>\n". + "<td colspan=2><font color=$color[l1_fg]><b>$langs[a_t2]</b></font></td>\n". + "<td rowspan=2><font color=$color[l1_fg]><b>$langs[a_t5]</b></font></td>\n". + "<td rowspan=2><font color=$color[l1_fg]><b>$langs[a_t6]</b></font></td>\n". + "</tr>\n\n". + "<tr align=center bgcolor=$color[l1_bg]>\n". + "<td><font color=$color[l1_fg]>$langs[a_t3]</font></td>\n". + "<td><font color=$color[l1_fg]>$langs[a_t4]</font></td>\n". + "</tr>"; - if ( $agent['tx'] ) { - echo '<td><b>' . $_('a_t1') . "</b></td>\n". - '<td>' . $_('a_t3') . "</td>\n". - '<td>' . $_('a_t4') . "</td>\n". - '<td><b>' . $_('a_t5') . "</b></td>\n"; - } else { - echo "<td rowspan=2 class=\"fieldtitle\">" . $_('a_t1') . "</td>\n". - "<td colspan=2 class=\"fieldtitle\">" . $_('a_t2') . "</td>\n". - "<td rowspan=2 class=\"fieldtitle\">" . $_('a_t5') . "</td>\n". - "</tr>\n\n". - "<tr>\n". - "<td class=\"fieldtitle\">" . $_('a_t3') . "</td>\n". - "<td class=\"fieldtitle\">" . $_('a_t4') . "</td>\n"; - } - echo "</tr>"; + $table_name = get_tblist($db[name],"$ts"); + $tbl_num = sizeof($table_name); - $table_name = db_table_list ($c, $db['name'], $ts); - $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 = "SELECT UNIX_TIMESTAMP(CURDATE()) as curdate"; + $result = mysql_query($current,$connect); + $current_time = mysql_result($result,0,"curdate"); # 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); + if($tbl_num > "0") { + for($i=$start; $i<$until; $i++) { + if($i < $tbl_num) { + # jsboard ϴ Խ Ǵ + $chk = "select idx from $table_name[$i]"; + $chk_result = mysql_query($chk,$connect); # table ϵ check մϴ. - $total = "SELECT COUNT(*) AS cnt FROM {$table_name[$i]}"; - $result = sql_query ($total, $c); + $total = "select count(*) from $table_name[$i]"; + $result = mysql_query($total,$connect); - $total_count = sql_result ($result, 0, 'cnt'); + $total_count = mysql_result($result,0,"COUNT(*)"); # table ϵ ۵ մϴ. - if ($chk_result) - $to = $to + $total_count; - $total = "SELECT COUNT(*) AS cnt FROM {$table_name[$i]} WHERE date > '$current_time'"; + $to = $to + $total_count; + $total = "select count(*) 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; + $result = mysql_query($total,$connect ); + $total_today = @mysql_result($result,0,"COUNT(*)"); + $total_today = !$total_today ? 0 : $total_today; # ϵ ۵ մϴ. - if ($chk_result) - $to_today = $to_today + $total_today; - - echo "<tr align=\"center\">\n". - "<td align=\"left\" width=\"30%\" class=\"rowtype1\">&nbsp;&nbsp;&nbsp;{$table_name[$i]}</td>\n". - "<td align=\"right\" width=\"15%\" class=\"rowtype1\">{$total_today} &nbsp;&nbsp;</td>\n". - "<td align=\"right\" width=\"15%\" class=\"rowtype1\">{$total_count} &nbsp;&nbsp;</td>\n"; - - if ( $chk_result && $table_name[$i] != "userdb" ) { - if ( $agent['tx'] ) { - echo "<td width=\"40%\">\n". - "<a href=\"../list.php?table={$table_name[$i]}&amp;nd=1\">" . $_('a_t7') . "</A>\n". - "<a href=\"./user_admin/uadmin.php?table={$table_name[$i]}&amp;nd=1\">" . $_('a_t8') . "</A>\n". - "<a href=\"./stat.php?table={$table_name[$i]}\">" . $_('a_t17') . "</A>\n". - "<a href=\"./act.php?mode=db_del&amp;table_name={$table_name[$i]}&amp;ts=$ts\">" . $_('a_t9') . "</A>\n". - "</td>\n</tr>"; - } else { - echo "<td width=\"40%\" class=\"rowtype1\"><form name=\"delete_db{$i}\" method=\"post\" action=\"act.php\">\n". - "<input type=\"button\" value=\"" . $_('a_t7') . "\" onClick=\"fork('popup','../list.php?table={$table_name[$i]}&amp;nd=1')\">\n". - "<input type=\"button\" value=\"" . $_('a_t8') . "\" onClick=\"fork('popup','./user_admin/uadmin.php?table={$table_name[$i]}&amp;nd=1')\">\n". - "<input type=\"button\" value=\"" . $_('a_t17') . "\" onClick=\"fork('popup','./stat.php?table={$table_name[$i]}')\">\n". - "<input type=\"submit\" value=\"" . $_('a_t9') . "\" onClick=\"return confirm('" . $_('a_del_cm') . "')\">\n". - "<input type=\"hidden\" name=\"table_name\" value=\"{$table_name[$i]}\">\n". - "<input type=\"hidden\" name=\"mode\" value=\"db_del\">\n". - "<input type=\"hidden\" name=\"ts\" value=\"$ts\">\n". - "</form></td>\n</tr>"; - } + $to_today = $to_today + $total_today; + + echo "<tr align=center bgcolor=$color[l0_bg]>\n". + "<td align=left width=30%><font color=$color[l0_fg]>&nbsp;&nbsp;&nbsp;$table_name[$i]</font></td>\n". + "<td align=right width=15%><font color=$color[l0_fg]>$total_today &nbsp;&nbsp;</font></td>\n". + "<td align=right width=15%><font color=$color[l0_fg]>$total_count &nbsp;&nbsp;</font></td>\n"; + + if($chk_result) { + echo "<form method='POST'><td width=30%>\n". + "<input type=button value=$langs[a_t7] onClick=fork('popup','../list.php?table=$table_name[$i]')>\n". + "<input type=button value=$langs[a_t8] onClick=fork('popup','./user_admin/uadmin.php?table=$table_name[$i]')>\n". + "<input type=button value=$langs[a_t17] onClick=fork('popup','./stat.php?table=$table_name[$i]')>\n". + "</td></form>\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 "<td width=\"40%\" class=\"rowtype1\"><form name=\"delete_db{$i}\" method=\"post\" action=\"act.php\">\n". - "{$table_explain}\n". - "<input type=\"button\" value=\"" . $_('a_t21') . "\" " . - "onClick=\"document.location='./act.php?mode=csync&amp;table_name={$table_name[$i]}&amp;ts={$ts}'\">\n". - "<input type=\"submit\" value=\"" . $_('a_t9') . "\" onClick=\"return confirm('" . $_('a_del_cm') . "')\">\n". - "<input type=\"hidden\" name=\"table_name\" value=\"{$table_name[$i]}\">\n". - "<input type=\"hidden\" name=\"mode\" value=\"db_del\">\n". - "<input type=\"hidden\" name=\"ts\" value=\"{$ts}\">\n". - "</form></td>\n</tr>"; + echo "<td width=30%>\n". + "<font color=$color[l0_fg]>Not JSBoard table</font>\n". + "</td>\n"; } + + echo "<form name='delete_db' method='post' action='act.php'>\n". + "<td width=10%>\n". + "<input type='hidden' name='table_name' value='$table_name[$i]'>\n". + "<input type='hidden' name='mode' value='db_del'>\n". + "<input type='hidden' name='ts' value='$ts'>\n". + "<input type=submit value=$langs[a_t9] onClick=\"return confirm('$langs[a_del_cm]')\">\n". + "</td></form>\n</tr>"; } } } else { - echo "<tr align=\"center\">\n". - "<td colspan=4 class=\"noaccount\"><br>" . - $_('n_acc') . "<br>&nbsp;</td>\n". + echo "<tr align=center bgcolor=$color[l0_bg]>\n". + "<td colspan=5 align=center><font size=+2 color=$color[l0_fg]><b><br>$langs[n_acc]<br>&nbsp;</b></font></td>\n". "</tr>"; } # ü ϵ Ȯ - 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'); + for($t = 0; $t < $tbl_num; $t++) { + # table ϵ check մϴ. + $total_t = "select count(*) from $table_name[$t]"; + $result_t = mysql_query($total_t,$connect ); + $total_count_t = mysql_result($result_t, 0, "COUNT(*)"); - # table ϵ ۵ մϴ. - $to_t = $to_t + $total_count_t; + # table ϵ ۵ մϴ. + $to_t = $to_t + $total_count_t; - $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'); + $total_t = "select count(*) from $table_name[$t] where date > '$current_time'"; + $result_t = mysql_query($total_t,$connect ); + $total_today_t = @mysql_result($result_t, 0, "COUNT(*)"); - # ϵ ۵ մϴ. - $to_today_t = $to_today_t + $total_today_t; + # ϵ ۵ մϴ. + $to_today_t = $to_today_t + $total_today_t; } - 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 - $userclick = $_SESSION[$jsboard]['external'] ? "window.alert('External user table Can\'t be Use')" : - "document.location='./userlist.php?t=a'"; - - echo "\n<tr>\n". - "<td class=\"rowtype2\"><span style=\"font-weight: bold;\">{$_lang['a_t41']} [ " . $_('a_t16') . " ]</span></td>\n". - "<td class=\"rowtype2\">{$to_today} [{$to_today_t}]</td>\n". - "<td class=\"rowtype2\" style=\"white-space: nowrap\">{$to} [{$to_t}]</td>\n". - "<td class=\"rowtype1\" align=\"center\">\n"; - if($agent['tx']) { - $userclick = $_SESSION[$jsboard]['external'] ? "[ " . $_('a_t20') . " ]" : "<a href=\"./userlist.php?t=a\">[ " . $_('a_t20') . " ]</a>"; - echo "$userclick\n". - "<a href=\"../session.php?m=logout\">[ " . $_('a_t11') . " ]</A>\n"; - } else { - echo "<input type=\"button\" value=\"" . $_('a_t20') . "\" onClick=\"$userclick\">\n". - "<input type=\"button\" value=\"" . $_('a_t11') . "\" onClick=\"logout()\">\n"; - } - echo "</td>\n</tr>\n\n"; - - if ( $agent['tx'] ) { - echo "<tr><td colspan=4>\n" . - "<form name='create_db' method='post' action='act.php'>\n". - "&nbsp;&nbsp;" . $_('a_t12') . " :\n". - "<input type=\"text\" name='new_table' size=\"$size\">\n". - "<input type='submit' name='submit' value='" . $_('a_t13') . "'>\n". - "<input type='hidden' name='mode' value='db_create'>\n". - "<input type='hidden' name='ts' value='{$ts}'>\n". - "</form></td>\n". - "</tr>\n\n". - "<tr><td colspan=4>\n" . - "<form name='del_db' method='post' action='act.php'>\n" . - "&nbsp;&nbsp;" . $_('a_t14') . " :\n". - "<input type=\"text\" name='table_name' size=$size>\n". - "<input type='submit' name='submit' value='{$_lang['a_t61']}'>\n". - "<input type='hidden' name='mode' value='db_del'>\n". - "<input type='hidden' name='ts' value='$ts'>\n". - "</form></td>\n</tr>\n\n". - "<tr>\n". - "<td colspan=3>\n"; - } else { - echo "<tr><td colspan=3 class=\"rowtype1\">\n" . - "<form name='create_db' method='post' action='act.php'>\n". - "&nbsp;&nbsp;" . $_('a_t12') . " :\n". - "<input type=\"text\" name='new_table' size=$size>\n". - "<input type='submit' name='submit' value='" . $_('a_t13') . "'>\n". - "<input type='hidden' name='mode' value='db_create'>\n". - "<input type='hidden' name='ts' value='$ts'>\n". - "</form></td>\n\n". - "<td rowspan=2 class=\"copy\">\n". - "<a href=\"http://jsboard.kldp.net\" TARGET=\"_blank\"><span class=\"copy\">". - "Powered By<br>JSBoard OPEN PROJECT</span></a>\n". - "</td>\n</tr>\n\n". - "<tr><td colspan=3 class=\"rowtype1\">\n". - "<form name='del_db' method='post' action='act.php'>\n". - "&nbsp;&nbsp;" . $_('a_t14') . " :\n". - "<input type=\"text\" name='table_name' size=$size>\n". - "<input type='submit' name='submit' value='{$_lang['a_t61']}' onClick=\"return confirm('" . $_('a_del_cm') . "')\">\n". - "<input type='hidden' name='mode' value='db_del'>\n". - "<input type='hidden' name='ts' value='$ts'>\n". - "</form></td>\n</tr>\n\n". - "<tr>\n". - "<td colspan=3 class=\"rowtype2\">\n"; - } + echo "\n<tr align=center bgcolor=$color[l1_bg]>\n". + "<td><font color=$color[l1_fg]><b>$langs[a_t41] [ $langs[a_t16] ]</b></font></td>\n". + "<td align=center><font color=$color[l1_fg]>$to_today [$to_today_t]</font></td>\n". + "<td align=center><font color=$color[l1_fg]>$to [$to_t]</font></td>\n". + "<td colspan=2 bgcolor=$color[l0_bg]>\n". + "<form><input type=button value=\"$langs[a_t10]\" onClick=fork('popup1','admin_info.php')>\n". + "<input type=button value=\"$langs[a_t11]\" onClick=logout()>\n". + "</td></form>\n</tr>\n\n". + "<tr bgcolor=$color[l0_bg]><form name='create_db' method='post' action='act.php'>\n". + "<td colspan=3>&nbsp;&nbsp;<font color=$color[l0_fg]>$langs[a_t12] :</font>\n". + "<input type=text name='new_table' size=$size>\n". + "<input type='submit' name='submit' value='$langs[a_t13]'>\n". + "<input type='hidden' name='mode' value='db_create'>\n". + "<input type='hidden' name='ts' value='$ts'>\n". + "</td></form>\n\n". + "<td colspan=2 rowspan=2 align=center><font color=white>\n". + "<a href=$copy[url]><font color=$color[l0_fg]>OOPS Developoment<br>Organization</font></a>\n". + "</td>\n</tr>\n\n". + "<tr bgcolor=$color[l0_bg]><form name='del_db' method='post' action='act.php'>\n". + "<td colspan=3>&nbsp;&nbsp;<font color=$color[l0_fg]>$langs[a_t14] :</font>\n". + "<input type=text name='table_name' size=$size>\n". + "<input type='submit' name='submit' value='$langs[a_t61]' onClick=\"return confirm('$langs[a_del_cm]')\">\n". + "<input type='hidden' name='mode' value='db_del'>\n". + "<input type='hidden' name='ts' value='$ts'>\n". + "</td></form>\n</tr>\n\n". + "<tr bgcolor=$color[l1_bg]>\n". + "<td colspan=3 align=center>\n"; $total = $tbl_num; - $lastpage_check = $total%$sadmin['pern']; + $lastpage_check = $total%$sadmin[pern]; if(!$lastpage_check) { - $lastpage = $total/$sadmin['pern']; + $lastpage = $total/$sadmin[pern]; $lastpage = explode(".",$lastpage); $lastpage = $lastpage[0]; } else { - $lastpage = $total/$sadmin['pern']+1; + $lastpage = $total/$sadmin[pern]+1; $lastpage = explode(".",$lastpage); $lastpage = $lastpage[0]; } @@ -292,8 +209,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 +219,16 @@ if($total == 0) echo "&nbsp;"; else { if($page < 2) echo "&nbsp;"; - else echo "<a href=\"{$_pself}$tslink\"><img src=\"./img/first.gif\" border=0 alt=\"" . $_('a_act_fm') . "\"></a>"; + else echo "<a href=$PHP_SELF$tslink><img src=./img/first.gif border=0 alt=\"$langs[a_act_fm]\"></a>"; if($page >= $lastpage) echo "&nbsp;"; - else - echo "<a href=\"{$_pself}?page={$lastpage}&amp;page_num={$last_page_num}&amp;scale_lastpage={$last_scale_lastpage}{$tslinks}\">" . - "<img src=\"./img/last.gif\" border=0 alt=\"" . $_('a_act_lm') . "\"> </a>"; + else echo "<a href=$PHP_SELF?page=$lastpage&page_num=$last_page_num&scale_lastpage=$last_scale_lastpage$tslinks><img src=./img/last.gif border=0 alt=\"$langs[a_act_lm]\"> </a>"; for($i=$page_num; $i<$scale_lastpage; $i++) { if($i <= $lastpage) { - $page_view = $i; - if ($i == $nowpage) echo "<span class=\"pageview_c\">$page_view</span> "; - else - echo "<a href=\"{$_pself}?page=$i&amp;page_num=$page_num&amp;scale_lastpage=$scale_lastpage$tslinks\">" . - "<span class=\"rowtype2\">$page_view</span></a> "; + $page_view = $i; + if($i == $nowpage) echo "<font color=red>$page_view</font> "; + else echo "<a href=$PHP_SELF?page=$i&page_num=$page_num&scale_lastpage=$scale_lastpage$tslinks><font color=$color[l0_bg]>$page_view</font></a> "; } } @@ -327,50 +240,61 @@ if($page < 2) echo "&nbsp;"; else { if($page > 5 && $pfoo == 2) - echo "<a href=\"{$_pself}?page={$priv}&page_num={$p_page_num}&scale_lastpage={$p_scale_lastpage}{$tslinks}\" title=\"" . $_('a_act_pm') . "\"><span class=\"rowtype2\"><b></b></span></a>"; + echo "<a href=$PHP_SELF?page=$priv&page_num=$p_page_num&scale_lastpage=$p_scale_lastpage$tslinks title=\"$langs[a_act_pm]\"><font color=$color[l0_fg]><b></b></font></a>"; else - echo "<a href=\"{$_pself}?page={$priv}&page_num={$page_num}&scale_lastpage={$scale_lastpage}{$tslinks}\" title=\"" . $_('a_act_pm') . "\"><span class=\"rowtype2\"><b></b></span></a>"; + echo "<a href=$PHP_SELF?page=$priv&page_num=$page_num&scale_lastpage=$scale_lastpage$tslinks title=\"$langs[a_act_pm]\"><font color=$color[l0_fg]><b></b></font></a>"; } if($lastpage-$page <= 0) echo "&nbsp;"; else { if($page >= 5 && $pfoo == 0) - echo "<a href=\"{$_pself}?page={$next}&page_num={$n_page_num}&scale_lastpage={$n_scale_lastpage}{$tslinks}\" title=\"" . $_('a_act_nm') . "\"><span class=\"rowtype2\"><b></b></span></a>"; + echo "<a href=$PHP_SELF?page=$next&page_num=$n_page_num&scale_lastpage=$n_scale_lastpage$tslinks title=\"$langs[a_act_nm]\"><font color=$color[l0_fg]><b></b></font></a>"; else - echo "<a href=\"{$_pself}?page={$next}&page_num={$page_num}&scale_lastpage={$scale_lastpage}{$tslinks}\" title=\"" . $_('a_act_nm') . "\"><span class=\"rowtype2\"><b></b></span></a>"; + echo "<a href=$PHP_SELF?page=$next&page_num=$page_num&scale_lastpage=$scale_lastpage$tslinks title=\"$langs[a_act_nm]\"><font color=$color[l0_fg]><b></b></font></a>"; } } - if ( $ts ) - $_lang['ts'] = "<a href=\"{$_pself}\"><span class=\"rowtype1\">" . $_('a_t18') . "</span></a>"; - else - $_lang['ts'] = $_('a_t19'); + if($ts) $langs[ts] = "<a href=$PHP_SELF><font color=$color[l0_fg]>$langs[a_t18]</font></a>"; + else $langs[ts] = "<font color=$color[l0_fg]>$langs[a_t19]</font>"; - echo "</td>\n". - "<td class=\"rowtype2\">\n"; - - if ( $agent['tx'] ) echo "<a href=\"./admin_info.php?mode=global\">[ " . $_('a_t15') . " ]</A>\n"; - else echo "<input type=\"button\" value=\"" . $_('a_t15') . "\" onClick=\"fork('popup','admin_info.php?mode=global')\"><br>\n"; - - echo "</td>\n". + echo "</td><form>\n". + "<td colspan=2 align=center><font color=white>\n". + "<input type=button value=\"$langs[a_t15]\" onClick=fork('popup','admin_info.php?mode=global')><br>\n". + "</td></form>\n". "</tr>\n<tr>\n" . - "<td align=\"center\" class=\"rowtype1\">{$_lang['ts']}</td>\n" . - "<td colspan=3 class=\"rowtype2\">\n"; - - for ( $i = '97'; $i <= '122'; $i++ ) { - $_i = chr ($i); - $I = strtoupper ($_i); - $_class = ( $ts == $_i ) ? 'classlink_b' : 'classlink'; - echo "<a href=\"{$_pself}?ts={$_i}\"><span class=\"{$_class}\">{$I}</span></a>\n"; - } - echo "<td></tr>\n</table>\n\n"; + "<td bgcolor=$color[l0_bg] align=center>$langs[ts]</td>\n" . + "<td colspan=4 bgcolor=$color[l1_bg] align=center>\n" . + "<a href=$PHP_SELF?ts=a><font color=$color[l1_fg]>A</font></A>\n" . + "<a href=$PHP_SELF?ts=b><font color=$color[l1_fg]>B</font></A>\n" . + "<a href=$PHP_SELF?ts=c><font color=$color[l1_fg]>C</font></A>\n" . + "<a href=$PHP_SELF?ts=d><font color=$color[l1_fg]>D</font></A>\n" . + "<a href=$PHP_SELF?ts=e><font color=$color[l1_fg]>E</font></A>\n" . + "<a href=$PHP_SELF?ts=f><font color=$color[l1_fg]>F</font></A>\n" . + "<a href=$PHP_SELF?ts=g><font color=$color[l1_fg]>G</font></A>\n" . + "<a href=$PHP_SELF?ts=h><font color=$color[l1_fg]>H</font></A>\n" . + "<a href=$PHP_SELF?ts=i><font color=$color[l1_fg]>I</font></A>\n" . + "<a href=$PHP_SELF?ts=j><font color=$color[l1_fg]>J</font></A>\n" . + "<a href=$PHP_SELF?ts=k><font color=$color[l1_fg]>K</font></A>\n" . + "<a href=$PHP_SELF?ts=l><font color=$color[l1_fg]>L</font></A>\n" . + "<a href=$PHP_SELF?ts=m><font color=$color[l1_fg]>M</font></A>\n" . + "<a href=$PHP_SELF?ts=n><font color=$color[l1_fg]>N</font></A>\n" . + "<a href=$PHP_SELF?ts=o><font color=$color[l1_fg]>O</font></A>\n" . + "<a href=$PHP_SELF?ts=p><font color=$color[l1_fg]>P</font></A>\n" . + "<a href=$PHP_SELF?ts=q><font color=$color[l1_fg]>Q</font></A>\n" . + "<a href=$PHP_SELF?ts=r><font color=$color[l1_fg]>R</font></A>\n" . + "<a href=$PHP_SELF?ts=s><font color=$color[l1_fg]>S</font></A>\n" . + "<a href=$PHP_SELF?ts=t><font color=$color[l1_fg]>T</font></A>\n" . + "<a href=$PHP_SELF?ts=u><font color=$color[l1_fg]>U</font></A>\n" . + "<a href=$PHP_SELF?ts=v><font color=$color[l1_fg]>V</font></A>\n" . + "<a href=$PHP_SELF?ts=w><font color=$color[l1_fg]>W</font></A>\n" . + "<a href=$PHP_SELF?ts=x><font color=$color[l1_fg]>X</font></A>\n" . + "<a href=$PHP_SELF?ts=y><font color=$color[l1_fg]>Y</font></A>\n" . + "<a href=$PHP_SELF?ts=z><font color=$color[l1_fg]>Z</font></A>\n" . + "<td></tr>\n</table>\n\n"; } -echo "<br>"; -echo "\n</td></tr>\n</table>\n"; - -if ( $agent['tx'] ) - echo "Powered By <a href=\"http://jsboard.kldp.net/\">JSBoard Open Project</a>\n"; +mysql_close(); +echo "<br>".copyright($copy)."\n</td></tr>\n</table>\n"; htmltail(); ?> diff --git a/admin/admin_info.php b/admin/admin_info.php index 06b88600..11421a52 100644 --- a/admin/admin_info.php +++ b/admin/admin_info.php @@ -1,58 +1,95 @@ -<?php -# $Id: admin_info.php,v 1.2 2009-11-16 21:52:46 oops Exp $ -$path['type'] = "admin"; -require_once "./include/admin_head.php"; - -htmlhead (); -# session ϵǾ α ȭ. -if ( ! session_is_registered ($jsboard) || $_SESSION[$jsboard]['pos'] != 1 ) - print_error ($_('login_err')); +<? +include "./include/admin_head.ph"; +htmlhead(); +# password Լ - admin/include/check.ph +compare_pass($sadmin,$login); # input size browser ߱ -$size = form_size (9); -$textsize = form_size (40); +$size = form_size(9); +$textsize = form_size(36); -$configfile = "../config/global.php"; -$spamlistfile = "../config/spam_list.txt"; +if(!$mode) { + echo "<!--------------------------- Upper is HTML_HEAD --------------------------->\n". + "<table width=100% height=100% border=0 cellpadding=0 cellspacing=0>\n". + "<tr><td align=center>\n". -# global -$global_con = readfile_r ($configfile); -$global_con = preg_replace ("/<\?|\?>/i","",$global_con); + "<font color=$color[l0_bg]><b>Admin Center Password Change</b></font>\n". + "<table width=240 border=0 cellpadding=2>\n". + "<tr bgcolor=$color[l0_bg]><form method=POST action=\"act.php\">\n". + "<td><font color=$color[l0_fg]>Passwd</font></td>\n". + "<td align=center><input type=password name=admincenter_pass size=$size></td>\n". + "</tr>\n\n". -# spam list -if ( file_exists ($spamlistfile) ) $spamlist = readfile_r ($spamlistfile); -else $spamlist = "spam_list.txt is not found into jsboard/config"; + "<tr bgcolor=$color[l0_bg]>\n". + "<td><font color=$color[l0_fg]>Re Passwd</font></td>\n". + "<td align=center><input type=password name=readmincenter_pass size=$size></td>\n". + "</tr>\n\n". -$global_con = trim ($global_con); -$spamlist = trim ($spamlist); -?> + "<tr>\n<td colspan=2 align=center>\n". + "<input type=submit value=$langs[b_sm]>\n". + "<input type=reset value=$langs[b_reset]>\n". + "</td>\n</tr>\n\n". + + "<input type=hidden name=mode value=manager_config>\n". + "</form>\n\n</table>\n\n". + + "<br>\n<font color=#999999 size=-1>\n"; + + copyright($copy); + + echo "</font>\n\n</td></tr>\n</table>\n". + "<!----------------- Follow is HTML_TAIL ---------------------->\n"; +} elseif($mode == "global") { + + $configfile = "../config/global.ph"; + $spamlistfile = "../config/spam_list.txt"; + $allow_brfile = "../config/allow_browser.txt"; + + # global + $global_con = file_operate($configfile,"r","Don't open $configfile"); -<br> -<form name="global_chg" method="post" action="act.php"> -<table border=0 cellpadding=2 cellspacing=1 width="100%"> -<tr><td class="gbtitle"> - -<table border=0 cellpadding=1 cellspacing=1 width="100%"> -<tr><td class="gbtitle">Global Configuration</td></tr> -<tr><td class="gbbackground"> -<textarea name="glob[vars]" rows=25 cols="<?=$textsize?>"><?=$global_con?></textarea> -</td></tr> - -<tr><td class="gbtitle">SPAMER LIST</td></tr> -<tr><td class="gbbackground">&nbsp; -<div class="spamcomment"><?=$_('spamer_m')?></div> -<center><textarea name="glob[spam]" rows=10 cols="<?=$textsize?>"><?=$spamlist?></textarea></center> -</td></tr> - -<tr><td align="center"> -<input type="submit" value="<?=$_('b_sm')?>"> -<input type="reset" value="<?=$_('b_reset')?>"> -<input type="hidden" name="mode" value="global_chg"> -</td></tr> -</table> - -</td></tr> -</table> -</form> - -<? htmltail (); ?> + # spam list + if(file_exists($spamlistfile)) $spamlist = file_operate($spamlistfile,"r"); + else $spamlist = "jsboard/config spam_list.txt ʽϴ"; + + # + if(file_exists($allow_brfile)) $allow_br = file_operate($allow_brfile,"r"); + else $allow_br = "jsboard/config allow_browser.txt ʽϴ"; + + $global_con = trim($global_con); + $spamlist = trim($spamlist); + $allow_br = trim($allow_br); + + echo "<form name='global_chg' method='post' action='act.php'>\n". + "<table border=0 cellpadding=2 cellspacing=1 width=100%>\n". + "<tr><td bgcolor=$color[l0_bg] align=center>\n\n". + "<table border=0 cellpadding=1 cellspacing=1 width=100%>\n". + "<tr><td align=center><font color=$color[l0_fg]><b>Global Configuration</b></font></td></tr>\n". + "<tr><td bgcolor=white align=center>&nbsp;\n". + "<textarea name=glob[vars] rows=25 cols=\"$textsize\">$global_con</textarea>\n". + "</td></tr>\n\n<tr><td align=center><font color=$color[l0_fg]><b>Theme Configuration</b></font></td></tr>\n". + "\n<tr><td bgcolor=$color[bgcol] align=center>\n"; + + # theme list + get_theme_list("glob[theme]",6); + + echo "</td></tr>\n\n". + "<tr><td align=center><font color=$color[l0_fg]><b>SPAMER LIST</b></font></td></tr>\n". + "<tr><td bgcolor=white>&nbsp;\n". + "<br><font color=$color[l0_bg]>$langs[spmaer_m]</font><p>". + "<center><textarea name=glob[spam] rows=10 cols=\"$textsize\">$spamlist</textarea></center>\n</td></tr>\n\n". + "<tr><td align=center><font color=$color[l0_fg]><b>Allow Browser LIST</b></font></td></tr>\n". + "<tr><td bgcolor=white>&nbsp;\n". + "<br><font color=$color[l0_bg]>$langs[brlist_m]</font><p>". + "<center><textarea name=glob[brlist] rows=5 cols=\"$textsize\">$allow_br</textarea></center>\n". + "</td></tr>\n\n<tr><td align=center>\n". + "<input type=submit value=$langs[b_sm]>\n". + "<input type=reset value=$langs[b_reset]>\n". + "<input type=hidden name=mode value=global_chg>\n". + "</td></tr>\n</table>\n\n". + "</td></tr>\n</table>\n</form>\n"; +} + +htmltail(); + +?> diff --git a/admin/auth.php b/admin/auth.php new file mode 100644 index 00000000..e4b18dd1 --- /dev/null +++ b/admin/auth.php @@ -0,0 +1,43 @@ +<?php +include "./include/admin_head.ph"; + +htmlhead(); + +# input size browser ߱ +$size = form_size(9); + +echo " +<table width=100% height=100%> +<tr><td align=center valign=center> + +<table width=80% border=0> +<tr align=center><td bgcolor=$color[l1_bg]><font id=title>JSBoard Admin Login</font></td></tr> + +<tr align=center><td><p><br><br> +<form name=auth method=POST action=session.php> +$langs[ua_ment]<br> +<input type=password name=logins size=$size> +<input type=hidden name=mode value=login> +</form> + +<form name=reset method=POST action=session.php> +<input type=hidden name=mode value=logout> +$langs[a_reset] <input type=submit name=reset value=reset> +<br><br><br> +</td></tr> + +<tr align=center><td bgcolor=$color[l1_bg]> +<font color=$color[l1_fg]> +Scripted by <a href=$copy[url] target=_blank>JoungKyun Kim</a><br> +and all right reserved +</font> +</td></tr> +</table> + +</td></tr> +</table> + +</form>\n"; + +htmltail(); +?> diff --git a/admin/include/admin_head.ph b/admin/include/admin_head.ph new file mode 100644 index 00000000..d811b0f7 --- /dev/null +++ b/admin/include/admin_head.ph @@ -0,0 +1,28 @@ +<? +# session +session_start(); + +# Copyright +$copy[name] = "JoungKyun Kim"; +$copy[email] = ""; +$copy[url] = "http://www.oops.org"; +$copy[version] = "3.0"; + +include "./include/config.ph"; +include "../config/global.ph"; + +$path[type] = "admin"; + +include "../include/error.ph"; +include "../include/lang.ph"; +include "../include/exec.ph"; +include "../include/get.ph"; +include "./include/print.ph"; +include "./include/check.ph"; +include "./include/get.ph"; +include "./include/first_reg.ph"; + +# ⺻ ׸ б +if(file_exists("../config/default.themes") && $color[theme]) + { include "../config/default.themes"; } +?> diff --git a/admin/include/admin_head.php b/admin/include/admin_head.php deleted file mode 100644 index 8710bfc5..00000000 --- a/admin/include/admin_head.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php -# $Id: admin_head.php,v 1.10 2009-11-16 21:52:46 oops Exp $ -$_pself = $_SERVER['PHP_SELF']; -$sadmin['pern'] = 10; -if($path['type'] == "user_admin") { - $dpath = ".."; - $ipath = "../.."; -} else { - $dpath = "."; - $ipath = ".."; -} - -set_magic_quotes_runtime(0); -ini_set('magic_quotes_gpc', 1); -ini_set('magic_quotes_sybase', 0); -ini_set ('track_errors', 1); - -$_ = '_lang'; - -include_once "$ipath/include/variable.php"; -include_once "$ipath/include/error.php"; -include_once "$ipath/include/check.php"; -include_once "$ipath/include/get.php"; -include_once "$ipath/include/print.php"; -if ( ! check_windows () ) { - include_once "$ipath/include/exec.php"; -} - -# GET/POST -parse_query_str(); - -$agent = get_agent(); - -if ( ! @file_exists ("{$ipath}/config/global.php") ) { - echo "<script type=\"text/javascript\">alert('Don\'t exist Global configuration file')\n" . - "history.back()<\/script>"; - 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(); - -# table ̸ üũѴ. -if ( $path['type'] == "user_admin" || $table ) - table_name_check ($table); - -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"; - } -} - -# ܺ ȸ DB include -if ( file_exists ("{$ipath}/config/external.php") ) { - require_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"; - -# -if ( session_is_registered ($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; - } -} - -$db = replication_mode ($db); -?> diff --git a/admin/include/check.ph b/admin/include/check.ph new file mode 100644 index 00000000..648ac720 --- /dev/null +++ b/admin/include/check.ph @@ -0,0 +1,72 @@ +<? + +# Խ ڿ Ǵ Password Լ +# crypt() - crypt ȣȭ Ѵ. +# +function compare_pass($pass,$l,$ck=0) { + global $langs; + if(!$ck) { + if (!session_is_registered("login")) print_pwerror($langs[ua_pw_n]); + if ($l[pass] != $pass[passwd]) print_pwerror($langs[ua_pw_c]); + } else { + $check = crypt($l,$pass[passwd]); + return $check; + } +} + +# Խǿ DB Ǿ ˻ +# +function exsit_dbname_check($db) { + global $langs; + if(!$db) { + echo "<table width=100% height=100%>\n<tr>\n" . + "<td align=center><b><br><br>$langs[nodb]<br><br><br></b></td>\n" . + "</tr></table>"; + 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 &quot;as&quot;"; + } + + if (!$ck && !$table) print_error($langs[n_t_n]); + if (!eregi("^[a-zA-Z]",$table)) print_error($langs[n_db]); + if (eregi("[^a-z0-9_\-]",$table)) print_error($langs[n_meta]); + if (eregi("^as$",$table)) print_error($langs[n_promise]); +} + +# table list üũ +# +function table_list_check($db) { + global $langs; + if(!mysql_list_tables($db)) { + echo "<table width=100% height=100%>\n<tr>\n" . + "<td align=center><b><br><br>$langs[n_acc]<br><br><br></b></td>\n" . + "</tr>\n</table> "; + exit; + } else return $tbl_list; +} + +# Խ ̸ Խ ̹ ϴ +# +function same_db_check($list, $table) { + global $langs; + $tbl_num=mysql_num_rows($list); + for($k=0;$k<$tbl_num;$k++) { + # table list ҷ ɴϴ. + $table_name = mysql_tablename($list,$k); + if ($table == $table_name) print_error($langs[a_acc]); + } +} + +?> diff --git a/admin/include/first_reg.ph b/admin/include/first_reg.ph new file mode 100644 index 00000000..ffd0b6dc --- /dev/null +++ b/admin/include/first_reg.ph @@ -0,0 +1,11 @@ +<? +# ο Խ ÿ 1۷ ϵ +$date = time(); +$host_ext = "127.0.0.1"; +$name_ext = "$langs[first1]"; +$passwd_ext = "lHJTjGW8VhHc."; +$email_ext = ""; +$url_ext = "http://www.oops.org"; +$subj_msg = "$langs[first2]"; +$text_msg = "$langs[first3]"; +?> diff --git a/admin/include/first_reg.php b/admin/include/first_reg.php deleted file mode 100644 index 89949d8f..00000000 --- a/admin/include/first_reg.php +++ /dev/null @@ -1,12 +0,0 @@ -<?php -# $Id: first_reg.php,v 1.2 2009-11-16 21:52:46 oops Exp $ -# ο Խ ÿ 1۷ ϵ -$_dr['d'] = time(); -$_dr['h'] = '127.0.0.1'; -$_dr['n'] = _lang ('first1', $_code); -$_dr['p'] = $ostype['dpass']; -$_dr['e'] = ''; -$_dr['u'] = 'http://jsboard.kldp.net'; -$_dr['s'] = _lang ('first2', $_code); -$_dr['b'] = _lang ('first3', $_code); -?> diff --git a/admin/include/get.ph b/admin/include/get.ph new file mode 100644 index 00000000..c9e2fc46 --- /dev/null +++ b/admin/include/get.ph @@ -0,0 +1,81 @@ +<? +# ݽ ͽ FORM Էâ ũ ̸ ϱ +# intval - ȯ +# http://www.php.net/manual/function.intval.php +function form_size($size, $print = 0) { + global $langs; + + # Ŭ̾Ʈ Լ (include/get_info.ph) + $agent = get_agent(); + + # ׽ + if($agent[br] == "MOZL") { + if($agent[os] == "NT") { + if($agent[ln] == "KO") $size *= 1.1; # ѱ + else { + if ($langs[code] == "ko") $size *= 2.6; + else $size *= 1.4; + } + } else if($agent[os] == "WIN") { + if($agent[ln] == "KO") $size *= 1.1; # ѱ + else $size *= 1.3; + } elseif($agent[os] == "LINUX") $size *= 1.0; + } + + # ׽ 6 + if($agent[br] == "MOZL6") { + if($agent[os] == "NT") { + if($agent[ln] == "KO") $size *= 1.1; # ѱ + else { + if ($langs[code] == "ko") $size *= 2.3; + else $size *= 1.4; + } + } else $size *= 1.3; + } + + # ͳ ͽ÷η + if($agent[br] == "MSIE") { + if ($agent[os] == "NT") + if ($langs[code] == "ko") $size *= 2.3; + else $size *= 2.6; + else $size *= 2.3; + } + + if($agent[br] == "LYNX") $size *= 2; + + $size = intval($size); + if($print) echo $size; + + return $size; +} + +# table list Ѵ. +function get_tblist($db,$t="") { + $list = mysql_list_tables($db); + + # table list üũ + table_list_check($db); + + # table + $list_num = mysql_num_rows($list); + if(!$j) $j = 0; + + for ($i=0;$i<$list_num;$i++) { + # table ̸ Ͽ 迭 + $l[$i] = mysql_tablename($list,$i); + + # 迭 ̸ ĺ Ʈ + # ̸ ٽ 迭 + if($t) { + if(eregi("^$t",$l[$i])) { + $ll[$j] = $l[$i]; + $j++; + } + } + } + + if($t) return $ll; + else return $l; +} + +?> diff --git a/admin/include/html_ahead.ph b/admin/include/html_ahead.ph new file mode 100644 index 00000000..8f8df208 --- /dev/null +++ b/admin/include/html_ahead.ph @@ -0,0 +1,45 @@ +<!-- =============================== A foreword =============================== --> +<HTML> +<HEAD> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=<? echo $langs[charset] ?>"> +<TITLE>OOPS Administration Center <? echo $copy[version] ?> [ +<? + if (!eregi("admin",$file_lo)) echo get_title(); + else echo "$sub_title"; +?> ]</TITLE> +<STYLE TYPE="text/css"> +<!-- +A:link, A:visited, A:active { TEXT-DECORATION: none; } +A:hover { TEXT-DECORATION: underline; } +TD { FONT: 10pt <? echo $langs[font] ?>; } +INPUT {font: 9pt <? echo $langs[font] ?>; BACKGROUND-COLOR:<? echo $color[n2_bg] ?>; COLOR:<? echo $color[n2_fg] ?>; BORDER:2x solid <? echo $color[l1_bg] ?>} +TEXTAREA {font: 10pt <? echo $langs[font] ?>; BACKGROUND-COLOR:<? echo $color[n2_bg] ?>; COLOR:<? echo $color[n2_fg] ?>; BORDER:2x solid <? echo $color[l1_bg] ?>} + #radio {font: 9pt <? echo $langs[font] ?>; BACKGROUND-COLOR:<? echo $color[bgcol] ?>; COLOR:<? echo $color[l0_bg] ?>; BORDER:1x solid <? echo $color[bgcol] ?>} + #title {font:20pt <? echo $langs[font] ?>; color:<? echo $color[n0_bg] ?>} +--> +</STYLE> +<? +if(eregi("auth.php",$PHP_SELF)) { + $onload = " onLoad=InputFocus()"; + echo "<SCRIPT language=JavaScript>\n". + "<!--\n function InputFocus() {\n". + " document.auth.logins.focus();\n". + " return;\n". + "}\n//-->\n". + "</SCRIPT>"; +} +?> +</HEAD> + +<? +echo "<BODY BACKGROUND=\"$color[image]\" BGCOLOR=\"$color[bgcol]\" TEXT=\"$color[text]\" LINK=\"$color[link]\" VLINK=\"$color[vlink]\" ALINK=\"$color[alink]\"$onload>"; +?> + +<BR> +<? +if($table) { + table_name_check($table); + if(file_exists("data/$table/html_head.ph")) { include "data/$table/html_head.ph"; } +} +?> +<!-- =============================== A foreword =============================== --> diff --git a/admin/include/html_ahead.php b/admin/include/html_ahead.php deleted file mode 100644 index c18d86ea..00000000 --- a/admin/include/html_ahead.php +++ /dev/null @@ -1,48 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<!-- =============================== A foreword =============================== --> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=<?=$_('charset')?>"> -<? -switch ($path['type']) { - case 'user_admin' : - $csspath = '../..'; - break; - case 'admin' : - $csspath = '..'; - break; - default : - $csspath = '.'; -} - - if ( ! preg_match ('/admin/i', $file_lo) ) $_title = get_title(); - else $_title = $sub_title; -?> -<title>JSBoard Administration Center [ <?=$_title?> ]</title> -<link rel="stylesheet" type="text/css" href="<?=$csspath?>/theme/<?=$print['theme']?>/default.css"> -<STYLE TYPE="text/css"> -<!-- -a:link, a:visited, a:active { text-decoration: none; color:<?=$color['text']?> } -a:hover { text-decoration: underline; color:<?=$color['text']?> } -body, td { font: 12px <?=$_('font')?>; color:<?=$color['text']?>; } -input {font: 9pt <?=$_('font')?>; background-color:<?=$color['b_bg']?>; color:<?=$color['text']?>; border:1x solid <?=$color['n1_fg']?>} -textarea {font: 10pt <?=$_('font')?>; background-color:<?=$color['l4_bg']?>; color:<?=$color['l4_fg']?>; border:1x solid <?=$color['l4_gu'] ?>} -form { display: inline; } - #radio {font: 9pt <?=$_('font')?>; background-color:<?=$color['bgcol']?>; color:<?=$color['l0_bg']?>; border:1x solid <?=$color['bgcol'] ?>} - #title {font:20pt <?=$_('font')?>; color:<?=$color['n0_bg']?>} ---> -</style> -<!-- $Id: html_ahead.php,v 1.2 2009-11-16 21:52:46 oops Exp $ --> -</head> - -<body bgcolor="<?=$color['b_bg']?>"> - -<?php -if($table) { - table_name_check ($table); - if ( file_exists ("data/{$table}/html_head.php") ) { - require_once "data/{$table}/html_head.php"; - } -} -?> -<!-- =============================== A foreword =============================== --> diff --git a/admin/include/html_atail.ph b/admin/include/html_atail.ph new file mode 100644 index 00000000..48c3e978 --- /dev/null +++ b/admin/include/html_atail.ph @@ -0,0 +1,6 @@ +<!-- =============================== Tail =============================== --> + +<? if(file_exists("data/$table/html_tail.ph")) { include "data/$table/html_tail.ph"; } ?> + +</BODY> +</HTML> diff --git a/admin/include/html_atail.php b/admin/include/html_atail.php deleted file mode 100644 index d682e486..00000000 --- a/admin/include/html_atail.php +++ /dev/null @@ -1,6 +0,0 @@ -<!-- =============================== Tail =============================== --> - -<?php if(file_exists("data/$table/html_tail.php")) { include "data/$table/html_tail.php"; } ?> - -</body> -</html> 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 @@ -<?php -# $Id: lib.php,v 1.2 2009-11-16 21:52:46 oops Exp $ - -# Խǿ DB Ǿ ˻ -# -function exsit_dbname_check ( $dbname ) { - global $_, $db; - - if ( $db['type'] == 'sqlite' ) { - $db['name'] = 'sqlite'; - return 0; - } - - if ( !$dbname ) { - echo "<table width=\"100%\" style=\"height: 80%;\">\n<tr>\n" . - "<td align=\"center\"><b><br><br>" . $_('nodb') . "<br><br><br></b></td>\n" . - "</tr></table>"; - } -} - -# Խ ̸ ˻ ƾ -# -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 &quot;as&quot;'; - } 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 = "<BR>[ SECURITY WARNING!! ] - jsboard don't permit"; - $target = array("/<(\?|%)/i","/(\?|%)>/i","/<(\/?embed[^>]*)>/i","/<(IMG[^>]*SRC=[^\.]+\.(ph|asp|htm|jsp|cgi|pl|sh)[^>]*)>/i"); - $remove = array("<xmp>","","$perment <\\1>
","$perment <\\1>
"); - - if(preg_match("/ diff --git a/admin/include/print.ph b/admin/include/print.ph new file mode 100644 index 00000000..6dec78ff --- /dev/null +++ b/admin/include/print.ph @@ -0,0 +1,167 @@ +\n" . + "\n"; +} + +# Copyright +# +function copyright($copy) { + global $langs; + echo "Scripted by $copy[name]
\n" . + "and all right reserved\n"; +} + + +# Admin Center н ΰ н尡 Ʋ +# +function admin_pass_error() { + global $langs; + print_error($langs[p_dp]); +} + +# Admin Center Ϸ ޼ +# +function complete_adminpass() { + global $langs; + $str = str_replace("\n","\\n",$langs[p_cp]); + echo ""; + exit; +} + +# theme list ҷ Լ for global ȭ +# +# explode() - ù° ڸ ڷ 迭 +# eregi_replace() - ִ ù° ڸ ι° ڷ +# strtoupper() - ڿ ҹڸ 빮ڷ +function get_theme_list($name,$num, $path = "../config") { + global $table, $color, $PHP_SELF, $langs; + + # link ´. + if (!eregi("uadmin.php",$PHP_SELF)) { + if (file_exists("$path/default.themes")) { $dtheme = readlink("$path/default.themes"); } + } else { + if (file_exists("../../data/$table/default.themes")) { $dtheme = readlink("../../data/$table/default.themes"); } + } + + # Theme ̸ ´. + $dtheme = eregi_replace("(themes|config|\/|\.)","",$dtheme); + + # Theme list ޾ƿ´. + + $p = opendir("$path/themes"); + while($i = readdir($p)) { + if($i != "." && $i != ".." && $i != "default.themes") $theme[] = $i; + } + closedir($p); + + $until = sizeof($theme); + + for ($i=0; $i < $until; $i++) { + $nt[$i] = eregi_replace("(themes|\.)","",$theme[$i]); + if ($nt[$i] == $dtheme) { + $checked = " checked"; + $fc = ""; + $fc_e = ""; + } else { + $checked = ""; + $fc = ""; + $fc_e = ""; + } + $themeS = strtoupper($nt[$i]); + + $br = $i+1; + $br = $br/$num; + $bt = explode(".",$br); + + if (!$bt[1]) $brtag = "
"; + else $brtag = ""; + + if (eregi("uadmin.php",$PHP_SELF)) $radio_c = "radio1"; + else $radio_c = "radio"; + + if ($themeS && $themeS != "DEFAULT") + echo "$fc$themeS$fc_e $brtag\n"; + } + if (!$dtheme) echo "$lnags[p_nd]"; + +} + +function err_msg($str = "Ocourrenct unknown error",$mode = 0) { + $str = str_replace("\n","\\n",$str); + $str = str_replace("'","\'",$str); + echo "\n"; + if (!$mode) die; +} + +# ϴ ̵Ű Լ +function move_page($path,$time = 0) { + echo ""; +} + +# Ʈ ϴ Լ +function get_lang_list($code) { + $p = opendir("../../include/LANG"); + while($i = readdir($p)) { + if(eregi("[a-z]{2}\.ph$",$i)) $langslist[] = $i; + } + closedir($p); + + $until = sizeof($langslist); + + for($i=0; $i < $until; $i++) { + $file = explode(".",$langslist[$i]); + + if ($file[0] == $code) $checks = "checked"; + else $checks = ""; + echo "$file[0]"; + } +} + +# н ϸ ϰԲ ޽ Ѹ :-) +function print_chgpass($pass) { + global $langs; + if ($pass == crypt("0000",$pass)) print_notice($langs[p_chm],250,35); +} + +?> diff --git a/admin/include/print.php b/admin/include/print.php deleted file mode 100644 index 0b98f067..00000000 --- a/admin/include/print.php +++ /dev/null @@ -1,128 +0,0 @@ -\nalert('$str')\n" . - "window.close()\n"; - exit; -} - -# theme list ҷ Լ -# -# 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 丮 ̸ - $p = opendir($path); - while($i = readdir($p)) { - if($i != "." && $i != ".." && is_dir("$path/$i")) { - if(preg_match("/^[A-Z]{2}-/",$i)) $theme[] = $i; - } - } - - sort($theme); - $num = sizeof($theme); - - for($i=0;$i<$num;$i++) { - $select = ($current == $theme[$i]) ? ' selected=selected' : ''; - echo "{$theme[$i]}\n"; - } - -} - -function err_msg($str = "Ocourrenct unknown error",$mode = 0) { - $str = str_replace("\n","\\n",$str); - $str = str_replace("'","\'",$str); - echo "\n"; - if (!$mode) die; -} - -# н ϸ ϰԲ ޽ Ѹ :-) -function print_chgpass($pass) { - global $_; - if ($pass == crypt("0000",$pass)) print_notice($_('p_chm'), 250, 35); -} - -function userlist_sortlink($t,$c='') { - global $_pself; - - if ( ! $c ) { - for ( $i=a; $i<=z; $i++) { - if ( strlen ($i) == 2 ) break; - if ( $t != $i ) $index .= "".strtoupper($i)."\n"; - else $index .= "".strtoupper($i)."\n"; - } - if ( $t ) $index .= "ALL\n"; - else $index .= "ALL\n"; - } else { - $p = array("1" => "", "2" => "", "3" => "", "4" => "", - "5" => "", "6" => "", "7" => "", "8" => "", - "9" => "", "10" => "", "11" => "ī", "12" => "Ÿ", - "13" => "", "14" => ""); - - for ( $i=1; $i<=14; $i++) { - if ( $t != $p[$i] ) { - $_p = urlencode ($p[$i]); - $index .= "" . - "{$p[$i]}\n"; - } else - $index .= "{$p[$i]}\n"; - } - } - return $index; -} -?> diff --git a/admin/index.php b/admin/index.php index 4d7f0e63..133ec713 100644 --- a/admin/index.php +++ b/admin/index.php @@ -1 +1 @@ - + diff --git a/admin/language/conv.txt b/admin/language/conv.txt deleted file mode 100644 index d89d1a71..00000000 --- a/admin/language/conv.txt +++ /dev/null @@ -1 +0,0 @@ -%s/{\$langs\['\([^']\+\)'\]}/" . $_('\1') . "/g diff --git a/admin/language/en.lang b/admin/language/en.lang deleted file mode 100644 index dad7cd32..00000000 --- a/admin/language/en.lang +++ /dev/null @@ -1,230 +0,0 @@ -No blank line or space at the end of file!"; -$en['spamer_m'] = "List words that you want to restrict line by line in SPAMMER " . - "LIST. To use this feature, spam_list.txt file should exist " . - "under jsboard/config and it should have write permission for " . - "nobody.

No blank line or space at the end of that file!"; - -# ADMIN -$en['a_reset'] = "Reset password"; - -$en['a_t1'] = "Board Name"; -$en['a_t2'] = "Articles"; -$en['a_t3'] = "Today"; -$en['a_t4'] = "Total"; -$en['a_t5'] = "Options"; -$en['a_t6'] = "Remove"; -$en['a_t7'] = "View"; -$en['a_t8'] = "Conf"; -$en['a_t9'] = "Del"; -$en['a_t10'] = "Admin info"; -$en['a_t11'] = "logout"; -$en['a_t12'] = "Create DB"; -$en['a_t13'] = "Regist"; -$en['a_t14'] = "Delete DB"; -$en['a_t15'] = "Global Config"; -$en['a_t16'] = "Whole"; -$en['a_t17'] = "Stat"; -$en['a_t18'] = "WHOLE"; -$en['a_t19'] = "Per alphabat"; -$en['a_t20'] = "User administration"; -$en['a_t21'] = "Sync"; - -$en['a_del_cm'] = "Are you sure?"; -$en['a_act_fm'] = "Go to first page"; -$en['a_act_lm'] = "Go to last page"; -$en['a_act_pm'] = "Go to privious page"; -$en['a_act_nm'] = "Go to next page"; -$en['a_act_cp'] = "Specify new Password"; - -# stat.php -$en['st_ar_no'] = "Numbuer of articles"; -$en['st_pub'] = "Public"; -$en['st_rep'] = "Reply"; -$en['st_per'] = "Per'"; -$en['st_tot'] = "Total"; -$en['st_a_ar_no'] = "Average articles"; -$en['st_ea'] = "ea"; -$en['st_year'] = "Y"; -$en['st_mon'] = "M"; -$en['st_day'] = "D"; -$en['st_hour'] = "H"; -$en['st_read'] = "Read"; -$en['st_max'] = "Max"; -$en['st_no'] = "Article"; -$en['st_ever'] = "Average"; -$en['st_read_no'] = "Read"; -$en['st_read_no_ar'] = "art'"; -$en['st_lweek'] = "W E E K"; -$en['st_lmonth'] = "M O N T H"; -$en['st_lhalfyear'] = "S E M I A N A L"; -$en['st_lyear'] = "A N N U A L"; -$en['st_ltot'] = "A L L"; - -# userlist.php -$en['u_nid'] = "ID"; -$en['u_name'] = "Name"; -$en['u_email'] = "Email"; -$en['u_url'] = "Homepage"; -$en['u_no'] = "No such user."; - -$en['sqlmsg'] = "Error in the SQL system."; -$en['login_err'] = "Please login first"; - -$en['nomatch_theme'] = "Theme version conflicts. Check the version information\n". - "at doc/en/README.THEME"; - -$en['b_sm'] = "Submit"; -$en['b_reset'] = "Reset"; -$en['er_msg'] = "Warning"; -$en['er_msgs'] = "Error"; -$en['cmd_edit'] = "Edit"; -$en['cmd_del'] = "Delete"; -$en['act_complete'] = "Updated successfully"; -?> diff --git a/admin/language/ja.lang b/admin/language/ja.lang deleted file mode 100644 index 8d0533bb..00000000 --- a/admin/language/ja.lang +++ /dev/null @@ -1,228 +0,0 @@ - I B " . - "⍂т ߂ł."; - -# ADMIN -$ja['a_reset'] = "pX[h "; - -$ja['a_t1'] = "f O"; -$ja['a_t2'] = "f o^"; -$ja['a_t3'] = ""; -$ja['a_t4'] = "v"; -$ja['a_t5'] = "IvV"; -$ja['a_t6'] = ""; -$ja['a_t7'] = "\"; -$ja['a_t8'] = "ݒ"; -$ja['a_t9'] = "폜"; -$ja['a_t10'] = "pX[h"; -$ja['a_t11'] = "OAEg"; -$ja['a_t12'] = "f "; -$ja['a_t13'] = "o^"; -$ja['a_t14'] = "f 폜"; -$ja['a_t15'] = "Sϐ ݒ"; -$ja['a_t16'] = "S"; -$ja['a_t17'] = "v"; -$ja['a_t18'] = "S̕\"; -$ja['a_t19'] = "At@xbg"; -$ja['a_t20'] = "[U[ "; -$ja['a_t21'] = ""; - -$ja['a_del_cm'] = "폜 Ȃ܂?"; -$ja['a_act_fm'] = "n߂ y[W ړ"; -$ja['a_act_lm'] = "I y[W ړ"; -$ja['a_act_pm'] = "ȑO y[W ړ"; -$ja['a_act_nm'] = " y[W ړ"; -$ja['a_act_cp'] = "ύX pX[h w肵Ă"; - -# stat.php -$ja['st_ar_no'] = " "; -$ja['st_pub'] = ""; -$ja['st_rep'] = "Ԏ"; -$ja['st_per'] = ""; -$ja['st_tot'] = "v"; -$ja['st_a_ar_no'] = " "; -$ja['st_ea'] = ""; -$ja['st_year'] = "N"; -$ja['st_mon'] = ""; -$ja['st_day'] = ""; -$ja['st_hour'] = ""; -$ja['st_read'] = "qbg"; -$ja['st_max'] = "ō"; -$ja['st_no'] = "ԍ"; -$ja['st_ever'] = ""; -$ja['st_read_no'] = "()"; -$ja['st_read_no_ar'] = "() "; -$ja['st_lweek'] = " 悻 Ă "; -$ja['st_lmonth'] = " 悻 Ă "; -$ja['st_lhalfyear'] = " 悻 N"; -$ja['st_lyear'] = " 悻 N"; -$ja['st_ltot'] = " H"; - -# user.php -$ja['u_nid'] = "ID"; -$ja['u_name'] = "O"; -$ja['u_email'] = "dq["; -$ja['u_url'] = "z[y[W"; -$ja['u_no'] = "o^ꂽ [U[ Ȃł."; - -$ja['sqlmsg'] = "SQL VXe 肪 ܂."; -$ja['login_err'] = "OC "; - -$ja['nomatch_theme'] = "e[} o[W Ȃł. doc/ko/README.THEME\n". - "t@C o[W ւ Q Ă"; - -$ja['b_sm'] = "mF"; -$ja['b_reset'] = "Ă"; -$ja['er_msg'] = "x"; -$ja['er_msgs'] = "ԈႢ"; -$ja['cmd_edit'] = "C"; -$ja['cmd_del'] = "폜"; -$ja['act_complete'] = "ύX ܂"; -?> diff --git a/admin/language/ko.lang b/admin/language/ko.lang deleted file mode 100644 index 1839181a..00000000 --- a/admin/language/ko.lang +++ /dev/null @@ -1,230 +0,0 @@ - " . - "̳ ڰ ȵ˴ϴ."; - -# ADMIN -$ko['a_reset'] = "н ʱȭ"; - -$ko['a_t1'] = "Խ ̸"; -$ko['a_t2'] = "Խù ϼ"; -$ko['a_t3'] = ""; -$ko['a_t4'] = "հ"; -$ko['a_t5'] = "ɼ"; -$ko['a_t6'] = ""; -$ko['a_t7'] = ""; -$ko['a_t8'] = ""; -$ko['a_t9'] = ""; -$ko['a_t10'] = "н"; -$ko['a_t11'] = "α׾ƿ"; -$ko['a_t12'] = "Խ "; -$ko['a_t13'] = ""; -$ko['a_t14'] = "Խ "; -$ko['a_t15'] = " "; -$ko['a_t16'] = "ü"; -$ko['a_t17'] = ""; -$ko['a_t18'] = "ü"; -$ko['a_t19'] = "ĺ"; -$ko['a_t20'] = " "; -$ko['a_t21'] = "ȭ"; - -$ko['a_del_cm'] = " Ͻðڽϱ?"; -$ko['a_act_fm'] = "ù ̵"; -$ko['a_act_lm'] = " ̵"; -$ko['a_act_pm'] = " ̵"; -$ko['a_act_nm'] = " ̵"; -$ko['a_act_cp'] = " н带 Ͻʽÿ"; - -# stat.php -$ko['st_ar_no'] = " "; -$ko['st_pub'] = ""; -$ko['st_rep'] = ""; -$ko['st_per'] = ""; -$ko['st_tot'] = "հ"; -$ko['st_a_ar_no'] = " "; -$ko['st_ea'] = ""; -$ko['st_year'] = "Ҵ"; -$ko['st_mon'] = ""; -$ko['st_day'] = ""; -$ko['st_hour'] = ""; -$ko['st_read'] = "ȸ"; -$ko['st_max'] = "ְ"; -$ko['st_no'] = "۹ȣ"; -$ko['st_ever'] = ""; -$ko['st_read_no'] = ""; -$ko['st_read_no_ar'] = " "; -$ko['st_lweek'] = " "; -$ko['st_lmonth'] = " "; -$ko['st_lhalfyear'] = " "; -$ko['st_lyear'] = " "; -$ko['st_ltot'] = " ü"; - -# user.php -$ko['u_nid'] = "ID"; -$ko['u_name'] = "̸"; -$ko['u_email'] = "̸"; -$ko['u_url'] = "Ȩ"; -$ko['u_no'] = "ϵ ϴ."; - -$ko['sqlmsg'] = "SQL ýۿ ֽϴ."; -$ko['login_err'] = "α ֽʽÿ"; - -$ko['nomatch_theme'] = "׸ ʽϴ. doc/ko/README.THEME\n". - "Ͽ κ Ͻʽÿ"; - -$ko['b_sm'] = "Ȯ"; -$ko['b_reset'] = "ٽ"; -$ko['er_msg'] = ""; -$ko['er_msgs'] = ""; -$ko['cmd_edit'] = ""; -$ko['cmd_del'] = ""; -$ko['act_complete'] = " ϷǾϴ"; -?> diff --git a/admin/language/lang.php b/admin/language/lang.php deleted file mode 100644 index 7f10d77e..00000000 --- a/admin/language/lang.php +++ /dev/null @@ -1,34 +0,0 @@ - diff --git a/admin/session.php b/admin/session.php new file mode 100644 index 00000000..11f652fc --- /dev/null +++ b/admin/session.php @@ -0,0 +1,23 @@ + diff --git a/admin/skin/admin.js b/admin/skin/admin.js deleted file mode 100644 index 1fb756a6..00000000 --- a/admin/skin/admin.js +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/admin/skin/en-admin.css b/admin/skin/en-admin.css deleted file mode 100644 index f08268c2..00000000 --- a/admin/skin/en-admin.css +++ /dev/null @@ -1,234 +0,0 @@ -/* - * $Id: en-admin.css,v 1.2 2009-11-16 21:52:46 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; -} - -form { display: inline; } - -.bigtitle { - font-size: 40px; - font-family: tahoma, sans-serif; - font-weight: bold; - color: #555555; -} - -.smalltitle { - font-size: 12px; - font-family: tahoma, sans-serif; - font-weight: bold; - color: #555555; -} - -.copy { - font-size: 12px; - font-family: tahoma, sans-serif; - color: #555555; - font-variant: small-caps; - background-color: #d3dac3; - text-align: center; -} - -.classlink { - font-size: 12px; - font-family: tahoma, sans-serif; - color: #555555; -} - -.classlink_b { - font-size: 12px; - font-family: tahoma, sans-serif; - color: #555555; - font-weight: bold; -} - -.fieldtitle { - background-color: #a0dc10; - color: #ffffff; - font-weight: bold; - text-align: center; -} - -.rowtype1 { - background-color: #d3dac3; - color: #555555; -} - -.rowtype2 { - background-color: #f5fbe6; - color: #555555; - text-align: center; -} - -.noaccount { - background-color: #d3dac3; - color: #555555; - font-weight: bold; - font-size: 24px; - text-align: center; -} - -.pageview_c { - color: red; -} - -/* userlist */ -.u_row1 { - background-color: #f5fbe6; - color: #555555; -} - -.u_row2 { - background-color: #d3dac3; - color: #555555; -} - -.sortlink { color: #555555; } -.sortlink_c { color: #ffae00; font-weight: bold; } - -/* global variables setting - admin_info.php */ -.gbtitle { - background-color: #a0dc10; - font-size: 20px; - font-family: tahoma, sans-serif; - font-weight: bold; - text-align: center; - color: #ffffff; -} - -.spamcomment { - color: #555555; - text-align: left; - padding: 10px 10px 10px 10px; -} - -.gbbackground { - background-color: #ffffff; - text-align: center; - color: red; -} - -/* statics */ -.st_tableguide { - background-color: #d3dac3; -} -.st_td_title { - background-color: #d3dac3; - color: #555555; - text-align: right; - white-space: nowrap; -} -.st_td_value { - background-color: #f5fbe6; - color: #555555; - text-align: right; - white-space: nowrap; -} - -/* user admin */ -.usertitle { - font-size: 20px; - font-family: tahoma, sans-serif; - font-weight: bold; - text-align: center; - font-variant: small-caps; -} - -.bg { - font-size: 12px; - font-family: "Lucida Console", monospace; - color: #ffffff; - background-color: #ffffff; -} -.tcolor { - background-color: #a0dc10; - font-size: 12px; - font-family: tahoma, sans-serif; - color: #ffffff; - font-weight: bold; -} -.mcolor { - background-color: #d3dac3; - font-size: 12px; - font-family: "Lucida Console", monospace; - color: #555555; -} - -.tarea { - background-color: #ffffff; - font-size: 12px; - font-family: "Lucida Console", monospace; - color: #555555; - text-align: right; -} - -.dcolor { - background-color: #f5fbe6; - font-size: 12px; - font-family: "Lucida Console", monospace; - color: #555555; - text-align: center; -} diff --git a/admin/skin/footer.template b/admin/skin/footer.template deleted file mode 100644 index e7b1eeaa..00000000 --- a/admin/skin/footer.template +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/admin/skin/header.template b/admin/skin/header.template deleted file mode 100644 index 97675907..00000000 --- a/admin/skin/header.template +++ /dev/null @@ -1,14 +0,0 @@ - - - - -JSBoard Administration Center [ <?=$_title?> ] - - - - - - - - - diff --git a/admin/skin/ja-admin.css b/admin/skin/ja-admin.css deleted file mode 100644 index 645bf231..00000000 --- a/admin/skin/ja-admin.css +++ /dev/null @@ -1,230 +0,0 @@ -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: ī, 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: ī, 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; -} - -form { display: inline; } - -.bigtitle { - font-size: 40px; - font-family: ī, sans-serif; - font-weight: bold; - color: #555555; -} - -.smalltitle { - font-size: 12px; - font-family: ī, sans-serif; - font-weight: bold; - color: #555555; -} - -.copy { - font-size: 12px; - font-family: ī, sans-serif; - color: #555555; - font-variant: small-caps; - background-color: #d3dac3; - text-align: center; -} - -.classlink { - font-size: 12px; - font-family: ī, sans-serif; - color: #555555; -} - -.classlink_b { - font-size: 12px; - font-family: ī, sans-serif; - color: #555555; - font-weight: bold; -} - -.fieldtitle { - background-color: #a0dc10; - color: #ffffff; - font-weight: bold; - text-align: center; -} - -.rowtype1 { - background-color: #d3dac3; - color: #555555; -} - -.rowtype2 { - background-color: #f5fbe6; - color: #555555; - text-align: center; -} - -.noaccount { - background-color: #d3dac3; - color: #555555; - font-weight: bold; - font-size: 24px; - text-align: center; -} - -.pageview_c { - color: red; -} - -/* userlist */ -.u_row1 { - background-color: #f5fbe6; - color: #555555; -} - -.u_row2 { - background-color: #d3dac3; - color: #555555; -} - -.sortlink { color: #555555; } -.sortlink_c { color: #ffae00; font-weight: bold; } - -/* global variables setting - admin_info.php */ -.gbtitle { - background-color: #a0dc10; - font-size: 20px; - font-family: ī, sans-serif; - font-weight: bold; - text-align: center; - color: #ffffff; -} - -.spamcomment { - color: #555555; - text-align: left; - padding: 10px 10px 10px 10px; -} - -.gbbackground { - background-color: #ffffff; - text-align: center; - color: red; -} - -/* statics */ -.st_tableguide { - background-color: #d3dac3; -} -.st_td_title { - background-color: #d3dac3; - color: #555555; - text-align: right; - white-space: nowrap; -} -.st_td_value { - background-color: #f5fbe6; - color: #555555; - text-align: right; - white-space: nowrap; -} - -/* user admin */ -.usertitle { - font-size: 20px; - font-family: ī, sans-serif; - font-weight: bold; - text-align: center; - font-variant: small-caps; -} - -.bg { - font-size: 12px; - font-family: ī, "Lucida Console", monospace; - color: #ffffff; - background-color: #ffffff; -} -.tcolor { - background-color: #a0dc10; - font-size: 12px; - font-family: ī, sans-serif; - color: #ffffff; - font-weight: bold; -} -.mcolor { - background-color: #d3dac3; - font-size: 12px; - font-family: ī, "Lucida Console", monospace; - color: #555555; -} - -.tarea { - background-color: #ffffff; - font-size: 12px; - font-family: ī, "Lucida Console", monospace; - color: #555555; - text-align: right; -} - -.dcolor { - background-color: #f5fbe6; - font-size: 12px; - font-family: ī, "Lucida Console", monospace; - color: #555555; - text-align: center; -} diff --git a/admin/skin/ko-admin.css b/admin/skin/ko-admin.css deleted file mode 100644 index 3e46d3c9..00000000 --- a/admin/skin/ko-admin.css +++ /dev/null @@ -1,234 +0,0 @@ -/* - * $Id: ko-admin.css,v 1.2 2009-11-16 21:52:46 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; -} - -form { display: inline; } - -.bigtitle { - font-size: 40px; - font-family: tahoma, sans-serif; - font-weight: bold; - color: #555555; -} - -.smalltitle { - font-size: 12px; - font-family: tahoma, sans-serif; - font-weight: bold; - color: #555555; -} - -.copy { - font-size: 12px; - font-family: tahoma, sans-serif; - color: #555555; - font-variant: small-caps; - background-color: #d3dac3; - text-align: center; -} - -.classlink { - font-size: 12px; - font-family: tahoma, sans-serif; - color: #555555; -} - -.classlink_b { - font-size: 12px; - font-family: tahoma, sans-serif; - color: #555555; - font-weight: bold; -} - -.fieldtitle { - background-color: #a0dc10; - color: #ffffff; - font-weight: bold; - text-align: center; -} - -.rowtype1 { - background-color: #d3dac3; - color: #555555; -} - -.rowtype2 { - background-color: #f5fbe6; - color: #555555; - text-align: center; -} - -.noaccount { - background-color: #d3dac3; - color: #555555; - font-weight: bold; - font-size: 24px; - text-align: center; -} - -.pageview_c { - color: red; -} - -/* userlist */ -.u_row1 { - background-color: #f5fbe6; - color: #555555; -} - -.u_row2 { - background-color: #d3dac3; - color: #555555; -} - -.sortlink { color: #555555; } -.sortlink_c { color: #ffae00; font-weight: bold; } - -/* global variables setting - admin_info.php */ -.gbtitle { - background-color: #a0dc10; - font-size: 20px; - font-family: tahoma, sans-serif; - font-weight: bold; - text-align: center; - color: #ffffff; -} - -.spamcomment { - color: #555555; - text-align: left; - padding: 10px 10px 10px 10px; -} - -.gbbackground { - background-color: #ffffff; - text-align: center; - color: red; -} - -/* statics */ -.st_tableguide { - background-color: #d3dac3; -} -.st_td_title { - background-color: #d3dac3; - color: #555555; - text-align: right; - white-space: nowrap; -} -.st_td_value { - background-color: #f5fbe6; - color: #555555; - text-align: right; - white-space: nowrap; -} - -/* user admin */ -.usertitle { - font-size: 20px; - font-family: tahoma, sans-serif; - font-weight: bold; - text-align: center; - font-variant: small-caps; -} - -.bg { - font-size: 12px; - font-family: ü, GulimChe, "Lucida Console", monospace; - color: #ffffff; - background-color: #ffffff; -} -.tcolor { - background-color: #a0dc10; - font-size: 12px; - font-family: tahoma, sans-serif; - color: #ffffff; - font-weight: bold; -} -.mcolor { - background-color: #d3dac3; - font-size: 12px; - font-family: ü, GulimChe, "Lucida Console", monospace; - color: #555555; -} - -.tarea { - background-color: #ffffff; - font-size: 12px; - font-family: ü, GulimChe, "Lucida Console", monospace; - color: #555555; - text-align: right; -} - -.dcolor { - background-color: #f5fbe6; - font-size: 12px; - font-family: ü, GulimChe, "Lucida Console", monospace; - color: #555555; - text-align: center; -} diff --git a/admin/stat.php b/admin/stat.php index 4ac6f73a..fd17afe5 100644 --- a/admin/stat.php +++ b/admin/stat.php @@ -1,229 +1,243 @@ - - - - - -\n
-JSBoard [ DB ] Statistics -
- - -
- \nalert('Don\'t exist global\\nconfiguration file');\n" . + "history.back();\nexit;\n\n"; +} else { include "../config/global.ph"; } +if ($color[theme]) { include "../config/default.themes"; } + +include "../include/lang.ph"; +include "../include/check.ph"; +include "../include/error.ph"; +include "../include/get.ph"; +include "../include/sql.ph"; +include "include/check.ph"; +include "include/config.ph"; + +# password Լ - admin/include/check.ph +compare_pass($sadmin,$login); + +# table üũѴ. +table_name_check($table); + +include "../data/$table/config.ph"; +if ($color[theme]) { include "../data/$table/default.themes"; } + +require "include/html_ahead.ph"; + +echo "\n". + "\n\n". + "\n\n". - "\n
JSBoard [ $table DB ] Statistics
\n". + "\n\n


"; + +sql_connect($db[server],$db[user],$db[pass]); +sql_select_db($db[name]); + +function get_stat($table, $interval) { + global $debug; $debug = 1; - $intv = ( $interval == 0) ? 0 : time () - $interval; + if($interval == 0) $intv = 0; + else $intv = time() - $interval; # ü - $result = sql_query ("SELECT COUNT(*) as co FROM $table WHERE date > '$intv'", $c); - $count['all'] = sql_result ($result, 0, 'co'); - sql_free_result ($result); + $result = sql_query("SELECT COUNT(*) FROM $table WHERE date > $intv"); + $count[all] = sql_result($result,0,"COUNT(*)"); + sql_free_result($result); # - $result = sql_query ("SELECT COUNT(*) as co FROM $table WHERE date > '$intv' AND reno != 0", $c); - $count['rep'] = sql_result ($result, 0, 'co'); - sql_free_result ($result); + $result = sql_query("SELECT COUNT(*) FROM $table WHERE date > $intv AND reno != 0"); + $count[rep] = sql_result($result,0,"COUNT(*)"); + sql_free_result($result); # - $count['nor'] = $count['all'] - $count['rep']; + $count[nor] = $count[all] - $count[rep]; # ó - $result = sql_query ("SELECT * FROM $table WHERE date > '$intv' ORDER BY no LIMIT 1", $c); - $article['min'] = sql_fetch_array ($result); - sql_free_result ($result); + $result = sql_query("SELECT * FROM $table WHERE date > $intv ORDER BY no LIMIT 0, 1"); + $article[min] = sql_fetch_array($result); + sql_free_result($result); # - $result = sql_query ("SELECT * FROM $table WHERE date > '$intv' ORDER BY no DESC LIMIT 1", $c); - $article['max'] = sql_fetch_array ($result); - sql_free_result ($result); + $result = sql_query("SELECT * FROM $table WHERE date > $intv ORDER BY no DESC LIMIT 0, 1"); + $article[max] = sql_fetch_array($result); + sql_free_result($result); - if($interval) $article['time'] = $interval; - else $article['time'] = $article['max']['date'] - $article['min']['date']; + if($interval) $article[time] = $interval; + else $article[time] = $article[max][date] - $article[min][date]; # ְ ȸ - $result = sql_query ("SELECT MAX(refer) as maxref FROM $table WHERE date > '$intv'", $c); - $refer['max'] = sql_result ($result, 0, 'maxref'); - sql_free_result ($result); + $result = sql_query("SELECT MAX(refer) FROM $table WHERE date > $intv"); + $refer[max] = sql_result($result,0,"MAX(refer)"); + sql_free_result($result); # ְ ȸ ȣ - if ( $refer['max'] ) { - $result = sql_query ("SELECT no FROM $table WHERE refer = '{$refer['max']}' AND date > '$intv'", $c); - $refer['mno'] = sql_result ($result, 0, 'no'); - sql_free_result ($result); + if($refer[max]) { + $result = sql_query("SELECT no FROM $table WHERE refer = $refer[max] AND date > $intv"); + $refer[mno] = sql_result($result,0,"no"); + sql_free_result($result); } # ȸ - $result = sql_query("SELECT MIN(refer) as min FROM $table WHERE date > '$intv'", $c); - $refer['min'] = sql_result($result, 0, 'min'); + $result = sql_query("SELECT MIN(refer) FROM $table WHERE date > $intv"); + $refer[min] = sql_fetch_array($result,0,"MIN(refer)"); sql_free_result($result); # ȸ հ - $result = sql_query("SELECT SUM(refer) as sum FROM $table WHERE date > '$intv'", $c); - $refer['total'] = sql_result($result, 0, 'sum'); + $result = sql_query("SELECT SUM(refer) FROM $table WHERE date > $intv"); + $refer[total] = sql_result($result,0,"SUM(refer)"); sql_free_result($result); # ȸ - if($count['all']) $refer['avg'] = intval($refer['total'] / $count['all']); + if($count[all]) $refer[avg] = intval($refer[total] / $count[all]); - $stat['count'] = $count; - $stat['refer'] = $refer; - $stat['artic'] = $article; - $stat['name'] = $name; + $stat[count] = $count; + $stat[refer] = $refer; + $stat[artic] = $article; + $stat[name] = $name; return $stat; } -function display_stat ($stat, $title) { - global $table, $_; +function display_stat($stat, $title) { + global $table, $color; - $count = $stat['count']; - $refer = $stat['refer']; - $article = $stat['artic']; - $name = $stat['name']; + $count = $stat[count]; + $refer = $stat[refer]; + $article = $stat[artic]; + $name = $stat[name]; - if($count['all'] == 0) { - $per['nor'] = 0; - $per['rep'] = 0; - $per['avg'] = 0; + if($count[all] == 0) { + $per[nor] = 0; + $per[rep] = 0; + $per[avg] = 0; } else { - $per['nor'] = 100 * ($count['nor'] / $count['all']); - $per['rep'] = 100 * ($count['rep'] / $count['all']); - $per['avg'] = $refer['total'] / $count['all']; + $per[nor] = 100 * ($count[nor] / $count[all]); + $per[rep] = 100 * ($count[rep] / $count[all]); + $per[avg] = $refer[total] / $count[all]; } - $per['per'] = ( $count['nor'] == 0) ? $per['rep'] * $count['rep'] : 100 * ($count['rep'] / $count['nor']); - - $str['count'] = sprintf (" -
- - - - - - - - - - - - - - - - - - -
" . $_('st_ar_no') . "
" . $_('st_pub') . "%d " . $_('st_ea') . "%0.2f%%
" . $_('st_rep') . "%d " . $_('st_ea') . "%0.2f%%
" . $_('st_rep') . $_('st_per') . "%0.2f%%
" . $_('st_tot') . "%d " . $_('st_ea') . "
-
\n", - $count['nor'], $per['nor'], $count['rep'], $per['rep'], $per['per'], $count['all']); - - if ( ! $count['all'] || !$article['time'] ) { - $for['year'] = 0; - $for['month'] = 0; - $for['day'] = 0; - $for['hour'] = 0; + if($count[nor] == 0) $per[per] = $per[rep] * $count[rep]; + else $per[per] = 100 * ($count[rep] / $count[nor]); + + $str[count] = sprintf(" +
+ + + + + + + + + + + + + + + + + + + +
%d %0.2f%%
%d %0.2f%%
%0.2f%%
հ%d
+
\n", + $count[nor],$per[nor],$count[rep],$per[rep],$per[per],$count[all]); + + if (!$count[all] || !$article[time]) { + $for[year] = 0; + $for[month] = 0; + $for[day] = 0; + $for[hour] = 0; } else { - $for['year'] = $count['all'] / ($article['time'] / ((60*60*24*30*12) + (60*60*24*5))); - $for['month'] = $count['all'] / ($article['time'] / (60*60*24*30)); - $for['day'] = $count['all'] / ($article['time'] / (60*60*24)); - $for['hour'] = $count['all'] / ($article['time'] / (60*60)); + $for[year] = $count[all] / ($article[time] / ((60*60*24*30*12) + (60*60*24*5))); + $for[month] = $count[all] / ($article[time] / (60*60*24*30)); + $for[day] = $count[all] / ($article[time] / (60*60*24)); + $for[hour] = $count[all] / ($article[time] / (60*60)); } - $str['avg'] = sprintf (" -
- - - - - - - - - - - - - - - - -
" . $_('st_a_ar_no') . "
" . $_('st_year') . "%0.2f " . $_('st_ea') . "
" . $_('st_mon') . "%0.2f " . $_('st_ea') . "
" . $_('st_day') . "%0.2f " . $_('st_ea') . "
" . $_('st_hour') . "%0.2f " . $_('st_ea') . "
-
\n", - $for['year'], $for['month'], $for['day'], $for['hour']); - - $str['refer'] = sprintf (" -
- - - - - - - - - - - - - - - - -
" . $_('st_read') . "
" . $_('st_max') . "%d " . $_('st_read_no') . "
" . $_('st_no') . "%d " . $_('st_read_no_ar') . "
" . $_('st_ever') . "%0.2f " . $_('st_read_no') . "
" . $_('st_tot') . "%d " . $_('st_read_no') . "
-
\n", - $refer['max'], $table, $refer['mno'], $refer['mno'], $per['avg'], $refer['total']); + $str[avg] = sprintf(" +
+ + + + + + + + + + + + + + + + +
Ҵ%0.2f
%0.2f
%0.2f
%0.2f
+
\n", + $for[year],$for[month],$for[day],$for[hour]); + + $str[refer] = sprintf(" +
+ + + + + + + + + + + + + + + + +
ȸ
ְ%d
۹ȣ%d
%0.2f
հ%d
+
\n", + $refer[max],$table,$refer[mno],$refer[mno],$per[avg],$refer[total]); printf(" - - - - - - - -
{$title}%s%s%s
\n", $str['count'], $str['refer'], $str['avg']); + + + + + + + +
$title%s%s%s
\n",$str[count],$str[refer],$str[avg]); } # ֺ -$stat = get_stat ($table, 60*60*24*7); -display_stat ($stat, $_('st_lweek')); +$stat = get_stat($table, 60*60*24*7); +display_stat($stat," "); # -$stat = get_stat ($table, 60*60*24*30); -display_stat ($stat, $_('st_lmonth')); +$stat = get_stat($table, 60*60*24*30); +display_stat($stat," "); # ݳ⺰ -$stat = get_stat ($table, 60*60*24*30*6); -display_stat ($stat, $_('st_lhalfyear')); +$stat = get_stat($table, 60*60*24*30*6); +display_stat($stat," "); # ⺰ -$stat = get_stat ($table, (60*60*24*30*12) + (60*60*24*5)); -display_stat ($stat, $_('st_lyear')); +$stat = get_stat($table, (60*60*24*30*12) + (60*60*24*5)); +display_stat($stat," "); # ü -$stat = get_stat ($table, 0); -display_stat ($stat, $_('st_ltot')); +$stat = get_stat($table, 0); +display_stat($stat," ü"); echo "\n
\n

\n". - "Copyright by JSBoard Open Project
\n". - "and all right reserved\n
\n"; + "
\n\n". + "Copyright by JSBoard Open Project
\n". + "and all right reserved\n
\n
\n"; -htmltail(); +require("include/html_atail.ph"); ?> diff --git a/admin/user_admin/act.php b/admin/user_admin/act.php index 4d4cab66..4dbf93f3 100644 --- a/admin/user_admin/act.php +++ b/admin/user_admin/act.php @@ -1,418 +1,550 @@ alert('Don\'t exist Global configuration file')\n" . + "history.back()"; + die; +} else { include "../../config/global.ph"; } +include "../include/config.ph"; + +if(@file_exists("../../data/$table/config.ph")) + { include "../../data/$table/config.ph"; } + +include "../../include/lang.ph"; +include "../include/print.ph"; + +if($login[pass] != $sadmin[passwd]) { + if(!$passwd) err_msg("$langs[ua_pw_n]"); + else { + $loginpass = crypt($passwd,$admin[passwd]); + $sloginpass = crypt($passwd,$sadmin[passwd]); + } -$c = sql_connect($db['rhost'], $db['user'], $db['pass'], $db['name']); + if($loginpass != $admin[passwd] && $sloginpass != $sadmin[passwd]) + err_msg("$langs[ua_pw_c]"); +} else { + if(!session_is_registered("login")) print_pwerror($langs[ua_pw_n]); +} -# password Լ - admin/include/auth.php -compare_pass ($_SESSION[$jsboard]); +# password ƾ +if($ua[passwd] && $ua[passwd] == $ua[repasswd]) { + $passwd = crypt($ua[passwd],$admin[passwd]); + $passwd = str_replace("\$","\\\$",$passwd); + if($passwd != $admin[passwd]) $chg[passwd] = "$passwd"; + else $chg[passwd] = "$admin[passwd]"; +} else { + $chg[passwd] = "$admin[passwd]"; + if($ua[passwd]) err_msg("$pang[ua_pw_comp]",1); +} -## checking @@ -if( $ua['comment'] ) { - require_once '../../include/parse.php'; +# +if($ua[code] != $langs[code]) $chg[code] = "$ua[code]"; +else $chg[code] = "$langs[code]"; - if ( ! db_table_list ($c, $db['name'], '', $table.'_comm') ) { - $cret_comm = sql_parser ($db['type'], 'comment', $table, 2); - foreach ( $cret_comm as $_sql ) - sql_query ($_sql, $c); - } +# Permission Check +if($ua[write]) $chg[write] = 1; +else $chg[write] = 0; - if ( ! field_exist_check ($c, $db['name'], $table, 'comm')) { - # comm field ߰ - sql_query ('ALTER TABLE ' . $table . ' add comm int(6) DEFAULT 0', $c); - # comm field key ߰ - sql_query ('ALTER TABLE ' . $table . ' add key (comm)', $c); - } +if($ua[edit]) $chg[edit] = 1; +else $chg[edit] = 0; - sync_comment ($table."_comm", $table); -} +if($ua[reply]) $chg[reply] = 1; +else $chg[reply] = 0; -sql_close($c); +if($ua[delete]) $chg[delete] = 1; +else $chg[delete] = 0; -# auth value check -$ua['ad'] = !trim($ua['ad']) ? "admin" : $ua['ad']; -$ua['rnname'] = !trim($ua['rnname']) ? 0 : $ua['rnname']; -$ua['dopage'] = trim($ua['dopage']) ? $ua['dopage'] : "{$board['path']}login.php?table=$table"; +if($ua[pre]) $chg[pre] = 1; +else $chg[pre] = 0; -# Permission Check -if($ua['pre']) $chg['pre'] = 1; -else $chg['pre'] = 0; - -if($ua['pren'] && $ua['pren'] != $enable['pren']) $chg['pren'] = $ua['pren']; +if($ua[pren] && $ua[pren] != $enable[pren]) $chg[pren] = $ua[pren]; else { - if($enable['pren']) $chg['pren'] = $enable['pren']; - else $chg['pren'] = 50; + if($enable[pren]) $chg[pren] = $enable[pren]; + else $chg[pren] = 50; } +# Function of Admin Link Mark +if($ua[amark]) $chg[amark] = 1; +else $chg[amark] = 0; + # Option of include original message in reply -$chg['ore'] = $ua['ore'] ? 1 : 0; +if($ua[ore]) $chg[ore] = 1; +else $chg[ore] = 0; # Option of print conjunct list when reply -$chg['re_list'] = $ua['re_list'] ? 1 : 0; +if($ua[re_list]) $chg[re_list] = 1; +else $chg[re_list] = 0; + +# Board Basic Configuration +if($ua[title] && $ua[title] != $board[title]) + $chg[title] = "$ua[title]"; +else $chg[title] = "$board[title]"; -# Option of print comment function -$chg['comment'] = $ua['comment'] ? 1 : 0; +if($ua[cmd] != $board[cmd]) $chg[cmd] = "$ua[cmd]"; +else $chg[cmd] = "$board[cmd]"; -# Option of print emoticon function -$chg['emoticon'] = $ua['emoticon'] ? 1 : 0; +if($ua[img] != $board[img]) $chg[img] = "$ua[img]"; +else $chg[img] = "$board[img]"; -if ( ! trim ($ua['tag']) ) - $ua['tag'] = 'b,i,u,ul,ol,li,span,font,table,tr,td'; -else - $ua['tag'] = preg_replace ('/[<\s\/>]/', '', $ua['tag']); +if($ua[width] && $ua[width] != $board[width]) + $chg[width] = "$ua[width]"; +else $chg[width] = "$board[width]"; -# Board Basic Configuration -if($ua['title'] && $ua['title'] != $board['title']) - $chg['title'] = "{$ua['title']}"; -else $chg['title'] = "{$board['title']}"; +if($ua[tit_l] && $ua[tit_l] != $board[tit_l]) + $chg[tit_l] = "$ua[tit_l]"; +else $chg[tit_l] = "$board[tit_l]"; + +if($ua[nam_l] && $ua[nam_l] != $board[nam_l]) + $chg[nam_l] = "$ua[nam_l]"; +else $chg[nam_l] = "$board[nam_l]"; + +if($ua[perno] && $ua[perno] != $board[perno]) + $chg[perno] = "$ua[perno]"; +else $chg[perno] = "$board[perno]"; + +if($ua[plist] && $ua[plist] != $board[plist]) + $chg[plist] = "$ua[plist]"; +else $chg[plist] = "$board[plist]"; + +if($ua[cookie] && $ua[cookie] != $board[cookie]) + $chg[cookie] = "$ua[cookie]"; +else $chg[cookie] = "$board[cookie]"; + +$ua[wwrap] = !$ua[wwrap] ? "120" : trim($ua[wwrap]); + +# Board Basic Color Configuration +if($ua[bgimage] != $color[image]) + $chg[bgimage] = "$ua[bgimage]"; +else $chg[bgimage] = "$color[image]"; + +if($ua[theme] != $color[theme]) + $chg[theme] = "$ua[theme]"; +else $chg[theme] = "$color[theme]"; + +if($ua[bgcol] && $ua[bgcol] != $color[bgcol] && !$ua[theme]) + $chg[bgcol] = "$ua[bgcol]"; +else $chg[bgcol] = "$color[bgcol]"; + +if($ua[text] && $ua[text] != $color[text] && !$ua[theme]) + $chg[text] = "$ua[text]"; +else $chg[text] = "$color[text]"; + +if($ua[link] && $ua[link] != $color[link] && !$ua[theme]) + $chg[link] = "$ua[link]"; +else $chg[link] = "$color[link]"; + +if($ua[vlink] && $ua[vlink] != $color[vlink] && !$ua[theme]) + $chg[vlink] = "$ua[vlink]"; +else $chg[vlink] = "$color[vlink]"; + +if($ua[alink] && $ua[alink] != $color[alink] && !$ua[theme]) + $chg[alink] = "$ua[alink]"; +else $chg[alink] = "$color[alink]"; + +if($ua[n0_fg] && $ua[n0_fg] != $color[n0_fg] && !$ua[theme]) + $chg[n0_fg] = "$ua[n0_fg]"; +else $chg[n0_fg] = "$color[n0_fg]"; + +if($ua[n0_bg] && $ua[n0_bg] != $color[n0_bg] && !$ua[theme]) + $chg[n0_bg] = "$ua[n0_bg]"; +else $chg[n0_bg] = "$color[n0_bg]"; + +if($ua[n1_fg] && $ua[n1_fg] != $color[n1_fg] && !$ua[theme]) + $chg[n1_fg] = "$ua[n1_fg]"; +else $chg[n1_fg] = "$color[n1_fg]"; + +if($ua[n2_bg] && $ua[n2_bg] != $color[n2_bg] && !$ua[theme]) + $chg[n2_bg] = "$ua[n2_bg]"; +else $chg[n2_bg] = "$color[n2_bg]"; + +if($ua[n2_fg] && $ua[n2_fg] != $color[n2_fg] && !$ua[theme]) + $chg[n2_fg] = "$ua[n2_fg]"; +else $chg[n2_fg] = "$color[n2_fg]"; + +$board[hls] = eregi_replace("STR","",$board[hls]); + +if($ua[hls] && $ua[hls] != $board[hls] && !$ua[theme]) + $chg[hls] = "$ua[hls]"; +else $chg[hls] = "$board[hls]"; + + +# List Page Color Configuration +if($ua[l0_bg] && $ua[l0_bg] != $color[l0_bg] && !$ua[theme]) + $chg[l0_bg] = "$ua[l0_bg]"; +else $chg[l0_bg] = "$color[l0_bg]"; + +if($ua[l0_fg] && $ua[l0_fg] != $color[l0_fg] && !$ua[theme]) + $chg[l0_fg] = "$ua[l0_fg]"; +else $chg[l0_fg] = "$color[l0_fg]"; + +if($ua[l1_bg] && $ua[l1_bg] != $color[l1_bg] && !$ua[theme]) + $chg[l1_bg] = "$ua[l1_bg]"; +else $chg[l1_bg] = "$color[l1_bg]"; + +if($ua[l1_fg] && $ua[l1_fg] != $color[l1_fg] && !$ua[theme]) + $chg[l1_fg] = "$ua[l1_fg]"; +else $chg[l1_fg] = "$color[l1_fg]"; + +if($ua[l2_bg] && $ua[l2_bg] != $color[l2_bg] && !$ua[theme]) + $chg[l2_bg] = "$ua[l2_bg]"; +else $chg[l2_bg] = "$color[l2_bg]"; + +if($ua[l2_fg] && $ua[l2_fg] != $color[l2_fg] && !$ua[theme]) + $chg[l2_fg] = "$ua[l2_fg]"; +else $chg[l2_fg] = "$color[l2_fg]"; + +if($ua[l3_bg] && $ua[l3_bg] != $color[l3_bg] && !$ua[theme]) + $chg[l3_bg] = "$ua[l3_bg]"; +else $chg[l3_bg] = "$color[l3_bg]"; + +if($ua[l3_fg] && $ua[l3_fg] != $color[l3_fg] && !$ua[theme]) + $chg[l3_fg] = "$ua[l3_fg]"; +else $chg[l3_fg] = "$color[l3_fg]"; + +if($ua[l4_bg] && $ua[l4_bg] != $color[l4_bg] && !$ua[theme]) + $chg[l4_bg] = "$ua[l4_bg]"; +else $chg[l4_bg] = "$color[l4_bg]"; -if($ua['width'] && $ua['width'] != $board['width']) - $chg['width'] = "{$ua['width']}"; -else $chg['width'] = "{$board['width']}"; +if($ua[l4_fg] && $ua[l4_fg] != $color[l4_fg] && !$ua[theme]) + $chg[l4_fg] = "$ua[l4_fg]"; +else $chg[l4_fg] = "$color[l4_fg]"; -if($ua['tit_l'] && $ua['tit_l'] != $board['tit_l']) - $chg['tit_l'] = "{$ua['tit_l']}"; -else $chg['tit_l'] = "{$board['tit_l']}"; +if($ua[td_co] && $ua[td_co] != $color[td_co] && !$ua[theme]) + $chg[td_co] = "$ua[td_co]"; +else $chg[td_co] = "$color[td_co]"; -if($ua['nam_l'] && $ua['nam_l'] != $board['nam_l']) - $chg['nam_l'] = "{$ua['nam_l']}"; -else $chg['nam_l'] = "{$board['nam_l']}"; +if($ua[cp_co] && $ua[cp_co] != $color[cp_co] && !$ua[theme]) + $chg[cp_co] = "$ua[cp_co]"; +else $chg[cp_co] = "$color[cp_co]"; -if($ua['perno'] && $ua['perno'] != $board['perno']) - $chg['perno'] = "{$ua['perno']}"; -else $chg['perno'] = "{$board['perno']}"; -if($ua['plist'] && $ua['plist'] != $board['plist']) - $chg['plist'] = "{$ua['plist']}"; -else $chg['plist'] = "{$board['plist']}"; +# Read Page Color Configuration +if($ua[r0_bg] && $ua[r0_bg] != $color[r0_bg] && !$ua[theme]) + $chg[r0_bg] = "$ua[r0_bg]"; +else $chg[r0_bg] = "$color[r0_bg]"; -if($ua['cookie'] && $ua['cookie'] != $board['cookie']) - $chg['cookie'] = "{$ua['cookie']}"; -else $chg['cookie'] = "{$board['cookie']}"; +if($ua[r0_fg] && $ua[r0_fg] != $color[r0_fg] && !$ua[theme]) + $chg[r0_fg] = "$ua[r0_fg]"; +else $chg[r0_fg] = "$color[r0_fg]"; + +if($ua[r1_bg] && $ua[r1_bg] != $color[r1_bg] && !$ua[theme]) + $chg[r1_bg] = "$ua[r1_bg]"; +else $chg[r1_bg] = "$color[r1_bg]"; + +if($ua[r1_fg] && $ua[r1_fg] != $color[r1_fg] && !$ua[theme]) + $chg[r1_fg] = "$ua[r1_fg]"; +else $chg[r1_fg] = "$color[r1_fg]"; + +if($ua[r2_bg] && $ua[r2_bg] != $color[r2_bg] && !$ua[theme]) + $chg[r2_bg] = "$ua[r2_bg]"; +else $chg[r2_bg] = "$color[r2_bg]"; + +if($ua[r2_fg] && $ua[r2_fg] != $color[r2_fg] && !$ua[theme]) + $chg[r2_fg] = "$ua[r2_fg]"; +else $chg[r2_fg] = "$color[r2_fg]"; + +if($ua[r3_bg] && $ua[r3_bg] != $color[r3_bg] && !$ua[theme]) + $chg[r3_bg] = "$ua[r3_bg]"; +else $chg[r3_bg] = "$color[r3_bg]"; + +if($ua[r3_fg] && $ua[r3_fg] != $color[r3_fg] && !$ua[theme]) + $chg[r3_fg] = "$ua[r3_fg]"; +else $chg[r3_fg] = "$color[r3_fg]"; + +if($ua[r4_bg] && $ua[r4_bg] != $color[r4_bg] && !$ua[theme]) + $chg[r4_bg] = "$ua[r4_bg]"; +else $chg[r4_bg] = "$color[r4_bg]"; + +if($ua[r4_fg] && $ua[r4_fg] != $color[r4_fg] && !$ua[theme]) + $chg[r4_fg] = "$ua[r4_fg]"; +else $chg[r4_fg] = "$color[r4_fg]"; + +if($ua[r5_bg] && $ua[r5_bg] != $color[r5_bg] && !$ua[theme]) + $chg[r5_bg] = "$ua[r5_bg]"; +else $chg[r5_bg] = "$color[r5_bg]"; + +if($ua[r5_fg] && $ua[r5_fg] != $color[r5_fg] && !$ua[theme]) + $chg[r5_fg] = "$ua[r5_fg]"; +else $chg[r5_fg] = "$color[r5_fg]"; -$ua['wwrap'] = !$ua['wwrap'] ? "86" : trim($ua['wwrap']); # File Upload Configuration -$chg['upload'] = $ua['upload'] ? 1 : 0; -$chg['uplink'] = $ua['uplink'] ? 1 : 0; +if($ua[upload] != $cupload[yesno]) $chg[upload] = "$ua[upload]"; +else $chg[upload] = "$cupload[yesno]"; + # Mail Configuration -if($ua['admin'] != $rmail['admin']) $chg['admin'] = "{$ua['admin']}"; -else $chg['admin'] = "{$rmail['admin']}"; +if($ua[admin] != $rmail[admin]) $chg[admin] = "$ua[admin]"; +else $chg[admin] = "$rmail[admin]"; -if($ua['user'] != $rmail['user']) $chg['user'] = "{$ua['user']}"; -else $chg['user'] = "{$rmail['user']}"; +if($ua[user] != $rmail[user]) $chg[user] = "$ua[user]"; +else $chg[user] = "$rmail[user]"; -if($ua['toadmin'] && $ua['toadmin'] != $rmail['toadmin']) - $chg['toadmin'] = "{$ua['toadmin']}"; -else $chg['toadmin'] = "{$rmail['toadmin']}"; +if($ua[toadmin] && $ua[toadmin] != $rmail[toadmin]) + $chg[toadmin] = "$ua[toadmin]"; +else $chg[toadmin] = "$rmail[toadmin]"; -# RSS Configuration -$chg['rss_use'] = !$ua['rss_use'] ? 0 : 1; -$chg['rss_is_des'] = !$ua['rs_is_des'] ? 0 : 1; -$chg['rss_align'] = !$ua['rss_align'] ? 0 : 1; -$chg['rss_channel'] = !trim($ua['rss_channel']) ? "JSBoard {$table} Board" : $ua['rss_channel']; # ETC Configuration -if($ua['url'] != $view['url']) $chg['url'] = "{$ua['url']}"; -else $chg['url'] = "{$view['url']}"; - -if($ua['email'] != $view['email']) $chg['email'] = "{$ua['email']}"; -else $chg['email'] = "{$view['email']}"; - -if($ua['d_name'] && $ua['d_name'] != $ccompare['name']) - $chg['d_name'] = "{$ua['d_name']}"; -else $chg['d_name'] = "{$ccompare['name']}"; - -if($ua['d_email'] && $ua['d_email'] != $ccompare['email']) - $chg['d_email'] = "{$ua['d_email']}"; -else $chg['d_email'] = "{$ccompare['email']}"; - -$chg['dhyper'] = $ua['dhyper'] ? 1 : 0; -$chg['plink'] = parse_ipvalue($denylink); - -$chg['ipbl'] = parse_ipvalue($ipbl); - -# FORM size Configuration -$ua['s_name'] = !$ua['s_name'] ? "14" : $ua['s_name']; -$ua['s_pass'] = !$ua['s_pass'] ? "4" : $ua['s_pass']; -$ua['s_titl'] = !$ua['s_titl'] ? "25" : $ua['s_titl']; -$ua['s_text'] = !$ua['s_text'] ? "30" : $ua['s_text']; -$ua['s_uplo'] = !$ua['s_uplo'] ? "19" : $ua['s_uplo']; - -# Notice check -$chg['notice_s'] = trim($ua['notices']) ? trim($ua['notices']) : ""; -$chg['notice_c'] = trim($noti) ? trim(stripslashes($noti)) : ""; - -$chg['notice_c'] = preg_replace("/<([\/]?FONT[^>]*)>/i","#FONT-TAG-OPEN#\\1#FONT-TAG-CLOSE#",$chg['notice_c']); -$chg['notice_c'] = htmlspecialchars($chg['notice_c']); - -$src[] = "/"/i"; -$tar[] = "\\\\\""; -$src[] = "/\r?\n/i"; -$tar[] = "\\n\".\n"; -$src[] = "/^/m"; -$tar[] = " \""; -$src[] = "/$/"; -$tar[] = "\""; -$chg['notice_c'] = trim(preg_replace($src,$tar,$chg['notice_c'])); -$chg['notice_c'] = str_replace("#FONT-TAG-OPEN#","<",$chg['notice_c']); -$chg['notice_c'] = str_replace("#FONT-TAG-CLOSE#",">",$chg['notice_c']); +if($ua[url] != $view[url]) $chg[url] = "$ua[url]"; +else $chg[url] = "$view[url]"; + +if($ua[email] != $view[email]) $chg[email] = "$ua[email]"; +else $chg[email] = "$view[email]"; + +if($ua[d_name] && $ua[d_name] != $ccompare[name]) + $chg[d_name] = "$ua[d_name]"; +else $chg[d_name] = "$ccompare[name]"; + +if($ua[d_email] && $ua[d_email] != $ccompare[email]) + $chg[d_email] = "$ua[d_email]"; +else $chg[d_email] = "$ccompare[email]"; + $chg_conf = " Խ 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'] = '{$ua['ad']}'; -\$board['mode'] = {$ua['mode']}; +\$admin[passwd] = \"$chg[passwd]\"; -# α ÿ ̸ Ǹ Nickname -# ȵǾ Nickname -\$board['rnname'] = {$ua['rnname']}; - -# α׾ƿ Ŀ ̵ -\$print['dopage'] = '{$ua['dopage']}'; ############################################################################### -# Խ 㰡 +# Խ 㰡 , 0 - ڸ 㰡 +# 1 - 㰡 ############################################################################### -# -# ̸ 㰡 -\$enable['pre'] = {$chg['pre']}; -# ̸ 㰡 -\$enable['preren'] = {$chg['pren']}; +\$cenable[write] = $chg[write]; # ۾ 㰡 +\$cenable[reply] = $chg[reply]; # 㰡 +\$cenable[edit] = $chg[edit]; # 㰡 +\$cenable[delete] = $chg[delete]; # 㰡 +\$enable[pre] = $chg[pre]; # ̸ 㰡 +\$enable[preren] = $chg[pren]; # ̸ 㰡 -# û -# 0 - 1 - û -# -\$enable['ore'] = {$chg['ore']}; -# б⿡ ñ ñ Ʈ -# 0 - 1 - -# -\$enable['re_list'] = {$chg['re_list']}; +############################################################################### +# Admin link ǥ +############################################################################### +\$enable[amark] = $chg[amark]; # 0 - ǥ 1 - ǥ -# ĿƮ 뿩 -# 0 - 1 - -# -\$enable['comment'] = {$chg['comment']}; -# ̸Ƽ 뿩 -# 0 - 1 - -# -\$enable['emoticon'] = {$chg['emoticon']}; +############################################################################### +# û +############################################################################### +\$enable[ore] = $chg[ore]; # 0 - 1 - û ############################################################################### -# 㰡 HTML tag +# б⿡ ñ ñ Ʈ ############################################################################### -# -\$enable['tag'] = '{$ua['tag']}'; +\$enable[re_list] = $chg[re_list]; # 0 - 1 - ############################################################################### # Խ ¸ -#

############################################################################### -# -\$board['align'] = '{$ua['align']}'; +\$board[align] = $ua[align]; #
############################################################################### # Խ ⺻ ############################################################################### -# -# Խ -\$board['title'] = '{$chg['title']}'; -# б ÿ ٴ ǥ -\$board['wwrap'] = {$ua['wwrap']}; -# Խ ʺ -\$board['width'] = '{$chg['width']}'; -# ʵ ִ -\$board['tit_l'] = {$chg['tit_l']}; -# ۾ ʵ ִ -\$board['nam_l'] = {$chg['nam_l']}; -# Խù -\$board['perno'] = {$chg['perno']}; -# (x2) -\$board['plist'] = {$chg['plist']}; +\$board[title] = \"$chg[title]\"; # Խ +\$board[wrap] = \"$ua[wrap]\"; # þ° +\$board[wwrap] = \"$ua[wwrap]\"; # \$board[wrap] ȵɽ +\$board[width] = \"$chg[width]\"; # Խ ʺ +\$board[tit_l] = $chg[tit_l]; # ʵ ִ +\$board[nam_l] = $chg[nam_l]; # ۾ ʵ ִ +\$board[perno] = $chg[perno]; # Խù +\$board[plist] = $chg[plist]; # (x2) +\$board[img] = \"$chg[img]\"; # image menu bar +\$board[cmd] = \"$chg[cmd]\"; # # Ű Ⱓ () -\$board['cookie'] = {$chg['cookie']}; +\$board[cookie] = $chg[cookie]; ############################################################################### -# FORM SIZE +# ũ ɼ ############################################################################### -# -\$size['name'] = {$ua['s_name']}; # ̸ -\$size['pass'] = {$ua['s_pass']}; # submit button -\$size['titl'] = {$ua['s_titl']}; # -\$size['text'] = {$ua['s_text']}; # TEXTAREA -\$size['uplo'] = {$ua['s_uplo']}; # UPLOAD +\$board[mchk] = $ua[mchk]; # Mail link Form Mail(1) Ǵ mailto(0) ############################################################################### # ȣƮ 0 - Failed, 1 - True ############################################################################### -# -# IP address ( ޴ ҽ) -\$enable['dhost'] = {$ua['dhost']}; -# DNS lookup -\$enable['dlook'] = {$ua['dlook']}; -# WHOIS ˻ -\$enable['dwho'] = {$ua['dwho']}; - - -############################################################################### -# Theme Configuration -############################################################################### -# -# Theme Name -\$print['theme'] = '{$ua['theme_c']}'; +\$enable[dhost] = $ua[dhost]; # IP address ( ޴ ҽ) +\$enable[dlook] = $ua[dlook]; # DNS lookup +\$enable[dwho] = $ua[dwho]; # WHOIS ˻ + +############################################################################### +# Խ ⺻ (Theme Ҷ ) +############################################################################### + +# Theme 뿩 +\$color[theme] = $chg[theme]; # \"1\" : 밡 \"0\" : + +# Back Ground Image +\$color[image] = \"$chg[bgimage]\"; + +# HTML ⺻ +\$color[bgcol] = \"$chg[bgcol]\"; # BGCOLOR +\$color[text] = \"$chg[text]\"; # TEXT +\$color[link] = \"$chg[link]\"; # LINK +\$color[vlink] = \"$chg[vlink]\"; # VLINK +\$color[alink] = \"$chg[alink]\"; # ALINK + +\$color[n0_fg] = \"$chg[n0_fg]\"; # Ϲ +\$color[n0_bg] = \"$chg[n0_bg]\"; # Ϲ +\$color[n1_fg] = \"$chg[n1_fg]\"; # Ұ +\$color[n2_bg] = \"$chg[n2_bg]\"; # +\$color[n2_fg] = \"$chg[n2_fg]\"; # + +# ˻ ڿ ̶Ʈ (STR ˻ ڿ ġȯ) +\$board[hl] = \"STR\"; + + +# +# +# ++======+====================+========+======+========++ <-- ׵θ --+ +# || ȣ | | ۾ | ¥ | || <-- --|--+ +# |+------+--------------------+--------+------+--------+| | | +# || | | | | || <-- | | +# |+------+--------------------+--------+------+--------+| | | +# || > | RE: | | | || <-- | | +# |+------+--------------------+--------+------+--+-----+| | | +# || | | | | <--------- ö | | +# |+------+--------------------+--------+------+--+-----+| ǥ | | +# || > | RE: | | | | || | | +# ++------+--------------------+--------+------+--+-----++ | | +# | ??? , ??? ֽϴ. | <- () -|--+ +# +------------------------------------------------------+ | +# | ˻ < 1 2 3 4 > | <-+ | +# | | | | +# | ______________________ ˻ <---|---|----------+ +# +------------------------------------------------------+ | +# | | ۾ | | +-- +# ǥ +# +\$color[l0_bg] = \"$chg[l0_bg]\"; # ׵θ +\$color[l0_fg] = \"$chg[l0_fg]\"; # ׵θ +\$color[l1_bg] = \"$chg[l1_bg]\"; # +\$color[l1_fg] = \"$chg[l1_fg]\"; # +\$color[l2_bg] = \"$chg[l2_bg]\"; # +\$color[l2_fg] = \"$chg[l2_fg]\"; # +\$color[l3_bg] = \"$chg[l3_bg]\"; # +\$color[l3_fg] = \"$chg[l3_fg]\"; # +\$color[l4_bg] = \"$chg[l4_bg]\"; # ˻â +\$color[l4_fg] = \"$chg[l4_fg]\"; # ˻â + +\$color[td_co] = \"$chg[td_co]\"; # ö ǥ +\$color[cp_co] = \"$chg[cp_co]\"; # ǥ + +# +# +# ++================+=================+=================++ <-- ׵θ --+ +# || .... : || | +# |+----------------+-----------------+-----------------+| | +# || ۾ | ۾ | || <-- | +# |+----------------+-----------------+-----------------+| | +# || || | +# |+----------------+-----------------+-----------------+| | +# || || | +# || || | +# || || | +# || ۳ || | +# || || | +# || || | +# || || | +# |+----------------------------------------------------+| | +# | ˻ | | +# | ______________________ ˻ <---|--------------+ +# +------------------------------------------------------+ +# | Ϻ | | | ۾ | + +# +\$color[r0_bg] = \"$chg[r0_bg]\"; # ׵θ +\$color[r0_fg] = \"$chg[r0_fg]\"; # ׵θ +\$color[r1_bg] = \"$chg[r1_bg]\"; # +\$color[r1_fg] = \"$chg[r1_fg]\"; # +\$color[r2_bg] = \"$chg[r2_bg]\"; # +\$color[r2_fg] = \"$chg[r2_fg]\"; # +\$color[r3_bg] = \"$chg[r3_bg]\"; # ۳ +\$color[r3_fg] = \"$chg[r3_fg]\"; # ۳ +\$color[r4_bg] = \"$chg[r4_bg]\"; # +\$color[r4_fg] = \"$chg[r4_fg]\"; # +\$color[r5_bg] = \"$chg[r5_bg]\"; # ˻ +\$color[r5_fg] = \"$chg[r5_fg]\"; # ˻ ############################################################################### # file upload -# ü ڰ ⼭ yes ص ̱ Ҽ +# ü ڰ ⼭ yes ؼ Ҽ ############################################################################### -# -\$cupload['yesno'] = {$chg['upload']}; # upload -\$cupload['dnlink'] = {$chg['uplink']}; # 0: 1: ̷Ʈ ũ +\$cupload[yesno] = \"$chg[upload]\"; # upload ############################################################################### # url,email ############################################################################### -# -\$view['url'] = {$chg['url']}; -\$view['email'] = {$chg['email']}; +\$view[url] = \"$chg[url]\"; +\$view[email] = \"$chg[email]\"; ############################################################################### # mail ߼ # ü on Ҽ ִ ############################################################################### -# -\$rmail['admin'] = {$chg['admin']}; -\$rmail['user'] = {$chg['user']}; -# Խ ּ -\$rmail['toadmin'] = '{$chg['toadmin']}'; - - -############################################################################### -# Ʒ Ͽ Ͻ password 䱸 -############################################################################### -# -\$ccompare['name'] = '{$chg['d_name']}'; -\$ccompare['email'] = '{$chg['d_email']}'; +\$rmail[admin] = \"$chg[admin]\"; +\$rmail[user] = \"$chg[user]\"; +\$rmail[toadmin]= \"$chg[toadmin]\"; # Խ ּ ############################################################################### -# IP Blocking -# ڴ ';' Ѵ. -# ) 1.1.1.1;2.2.2.2;3.3.3.3 +# ( : en , : ko ) ############################################################################### -\$enable['ipbl'] = '{$chg['ipbl']}'; +\$langs[code] = \"$chg[code]\"; ############################################################################### -# ۸ũ -# dhyper : 0 -> ϵ -# 1 -> ϵ -# plink 쿡 ۵ -# plink : dhyper ۵ ip ּ. ';' ڷ -# ) 1.1.1.1;2.2.2.2;3.3.3.3 -############################################################################### -# -\$enable['dhyper'] = {$chg['dhyper']}; -\$enable['plink'] = '{$chg['plink']}'; - -############################################################################### -# Խ -# -# 迭 Ͽ -# \$notice['subject'] -> -# \$notice['body'] -> -# 쿡 ũ ȵǰ +# Ʒ Ͽ Ͻ password 䱸 ############################################################################### -# -\$notice['subject'] = '{$chg['notice_s']}'; -\$notice['contents'] = {$chg['notice_c']}; +\$ccompare[name] = \"$chg[d_name]\"; +\$ccompare[email] = \"$chg[d_email]\"; -############################################################################### -# Խ RSS -# -# \$rss['use'] -> rss 뿩 -# \$rss['channel'] -> rss äθ ̸ -# \$rss['is_des'] -> -# \$rss['align'] -> rss link ġ ( 0: left / 1: right ) -# \$rss['color'] -> rss link color -############################################################################### -# -\$rss['use'] = {$chg['rss_use']}; -\$rss['is_des'] = {$chg['rss_is_des']}; -\$rss['align'] = {$chg['rss_align']}; -\$rss['channel'] = '{$chg['rss_channel']}'; ?>"; -# config.php . -$wfile = "../../data/$table/config.php"; -writefile_r ($wfile, $chg_conf); +# config.ph . +$wfile = "../../data/$table/config.ph"; +file_operate("$wfile","w","Can't update $wfile",$chg_conf); # quot ȯ ڸ un quot Ѵ -$head = $ua['header']; -$tail = $ua['tail']; - -if($_SESSION[$jsboard]['pos'] != 1) { - $head = check_invalid(stripslashes("$head")); - $tail = check_invalid(stripslashes("$tail")); -} else { - $head = stripslashes("$head"); - $tail = stripslashes("$tail"); -} - -$wfile = "../../data/$table/html_head.php"; -writefile_r ($wfile, $head); - -$wfile = "../../data/$table/html_tail.php"; -writefile_r ($wfile, $tail); - -# style sheet file -$ua['style'] = eregi_replace("\\\\\"|\"","",$ua['style']); -$ua['style'] = check_invalid($ua['style']); -$wstyle = ""; - -$wfile = "../../data/$table/stylesheet.php"; -writefile_r ($wfile, $wstyle); - -$_lang['act_complete'] = str_replace("\n","\\n",$_('act_complete')); -$_lang['act_complete'] = str_replace("'","\'",$_lang['act_complete']); - -header ('Content-Type: text/html;charset=' . $_('charset')); -echo ""; -move_page ("../../list.php?table=$table"); +move_page("../../list.php?table=$table"); ?> diff --git a/admin/user_admin/auth.php b/admin/user_admin/auth.php new file mode 100644 index 00000000..ac4cb0fa --- /dev/null +++ b/admin/user_admin/auth.php @@ -0,0 +1,91 @@ + + + +OOPS administration center v.1.4 [ User ADMIN page ] + + + + + + + + + + +
+ + + + + + + +
JSBoard User Config Login



+

+$langs[ua_ment]
+ + +
+
+
+ +Scripted by JoungKyun Kim
+and all right reserved +
+
+ +
+ +\n\n +\n"; +?> diff --git a/admin/user_admin/uadmin.php b/admin/user_admin/uadmin.php index ef835afa..cdba969c 100644 --- a/admin/user_admin/uadmin.php +++ b/admin/user_admin/uadmin.php @@ -1,802 +1,822 @@ alert('Don\'t exist Global configuration file')\n" . + "history.back()"; + die; +} else { include "../../config/global.ph"; } +include "../include/config.ph"; + +if(file_exists("../../data/$table/config.ph")) + { include "../../data/$table/config.ph"; } + +if($color[theme]) { + include "../../config/default.themes"; + if(file_exists("../../data/$table/default.themes")) + { include "../../data/$table/default.themes"; } +} -$dsize = form_size (7); -$lsize = form_size (24); +include "../../include/lang.ph"; +include "../include/print.ph"; +include "../include/get.ph"; -if($_code == 'ko') $tsize = form_size (36); -else $tsize = form_size (38); +# üڷ α̸ ٷ ȭ +if($login[pass] != $sadmin[passwd]) { + if(!$passwd) err_msg("$langs[ua_pw_n]"); + else { + $loginpass = crypt($passwd,$admin[passwd]); + $sloginpass = crypt($passwd,$sadmin[passwd]); + } -$ssize = form_size (3); -$user = strtoupper ($table); + if($loginpass != $admin[passwd] && $sloginpass != $sadmin[passwd]) + err_msg("$langs[ua_pw_c]"); +} else { + if(!session_is_registered("login")) print_pwerror($langs[ua_pw_n]); +} -if ( $board['super'] == 1 ) - $board['adput'] = ""; -else - $board['adput'] = "{$board['ad']}\n"; +$size = form_size(7); +$lsize = form_size(24); -# SELECT check з -if ( ! $board['mode'] ) $smode0 = ' selected="selected"'; -else if ( $board['mode'] == 1 ) $smode1 = ' selected="selected"'; -else if ( $board['mode'] == 2 ) $smode2 = ' selected="selected"'; -else if ( $board['mode'] == 3 ) $smode3 = ' selected="selected"'; -else if ( $board['mode'] == 4 ) $smode4 = ' selected="selected"'; -else if ( $board['mode'] == 5 ) $smode5 = ' selected="selected"'; -else if ( $board['mode'] == 6 ) $smode6 = ' selected="selected"'; -else if ( $board['mode'] == 7 ) $smode7 = ' selected="selected"'; +if($langs[code] == "ko") $tsize = form_size(30); +else $tsize = form_size(33); -# check of logout page -$print['dopage'] = trim ($print['dopage']) ? $print['dopage'] : "{$board['path']}list.php?table=$table"; +$ssize = form_size(3); +$user = strtoupper($table); # Radio Box check з -$ore_no = $ore_ok = ''; -if ( $enable['ore'] ) $ore_no = 'checked="checked"'; -else $ore_ok = 'checked="checked"'; +if($cenable[write]) $wen_ok = "checked"; +else $wen_no = "checked"; -$re_list_ok = $re_list_no = ''; -if ( $enable['re_list'] ) $re_list_ok = 'checked="checked"'; -else $re_list_no = 'checked="checked"'; +if($cenable[reply]) $ren_ok = "checked"; +else $ren_no = "checked"; -$comment_ok = $comment_no = ''; -if ( $enable['comment'] ) $comment_ok = 'checked="checked"'; -else $comment_no = 'checked="checked"'; +if($cenable[edit]) $een_ok = "checked"; +else $een_no = "checked"; -$emoticon_ok = $emoticon_no = ''; -if ( $enable['emoticon'] ) $emoticon_ok = 'checked="checked"'; -else $emoticon_no = 'checked="checked"'; +if($cenable[delete]) $den_ok = "checked"; +else $den_no = "checked"; -if ( ! trim ($enable['tag']) ) - $htmltag = 'b,i,u,ul,ol,li,span,font,table,tr,td'; -else - $htmltag = $enable['tag']; +if($enable[amark]) $amark_ok = "checked"; +else $amark_no = "checked"; -$pview_ok = $pview_no = ''; -if ( $enable['pre'] ) $pview_ok = 'checked="checked"'; -else $pview_no = 'checked="checked"'; +if($enable[ore]) $ore_no = "checked"; +else $ore_ok = "checked"; -$dhost_ok = $dhost_no = ''; -if( $enable['dhost'] ) $dhost_ok = 'checked="checked"'; -else $dhost_no = 'checked="checked"'; +if($enable[re_list]) $re_list_ok = "checked"; +else $re_list_no = "checked"; -$dlook_ok = $dlook_no = ''; -if( $enable['dlook'] ) $dlook_ok = 'checked="checked"'; -else $dlook_no = 'checked="checked"'; +if($enable[pre]) $pview_ok = "checked"; +else $pview_no = "checked"; -$dwho_ok = $dwho_no = ''; -if( $enable['dwho'] ) $dwho_ok = 'checked="checked"'; -else $dwho_no = 'checked="checked"'; +if($board[wrap]) $bwrap_ok = "checked"; +else $bwrap_no = "checked"; -$upload_disable = ''; -if( ! $upload['yesno'] ) $upload_disable = " disabled"; +if($board[cmd] == "yes") $bar_ok = "checked"; +else $bar_no = "checked"; -$up_ok = $up_no = ''; -if( $cupload['yesno'] ) $up_ok = 'checked="checked"'; -else $up_no = 'checked="checked"'; +if($board[img] == "yes") $img_ok = "checked"; +else $img_no = "checked"; -$uplink_ok = $uplink_no = ''; -if ( $cupload['dnlink'] ) $uplink_ok = 'checked="checked"'; -else $uplink_no = 'checked="checked"'; +if($board[mchk]) $mchk_ok = "checked"; +else $mchk_no = "checked"; -$amail_ok = $amail_no = ''; -if( $rmail['admin'] ) $amail_ok = 'checked="checked"'; -else $amail_no = 'checked="checked"'; +if($enable[dhost]) $dhost_ok = "checked"; +else $dhost_no = "checked"; -$rss_use_ok = $rss['use'] ? 'checked' : ''; -$rss_use_no = ! $rss['use'] ? 'checked' : ''; +if($enable[dlook]) $dlook_ok = "checked"; +else $dlook_no = "checked"; -$rss_des_ok = $rss['is_des'] ? 'checked' : ''; -$rss_des_no = ! $rss['is_des'] ? 'checked' : ''; +if($enable[dwho]) $dwho_ok = "checked"; +else $dwho_no = "checked"; -$rss_align_ok = $rss['align'] ? 'checked' : ''; -$rss_align_no = ! $rss['align'] ? 'checked' : ''; +if($color[theme]) $theme_ok = "checked"; +else $theme_no = "checked"; -$umail_ok = $umail_no = ''; -if ( $rmail['user'] ) $umail_ok = 'checked="checked"'; -else $umail_no = 'checked="checked"'; +if($cupload[yesno] == "yes") $up_ok = "checked"; +else $up_no = "checked"; -$url_ok = $url_no = ''; -if ( $view['url'] ) $url_ok = 'checked="checked"'; -else $url_no = 'checked="checked"'; +if($rmail[admin] == "yes") $amail_ok = "checked"; +else $amail_no = "checked"; -$vmail_ok = $vmail_no = ''; -if ( $view['email'] ) $vmail_ok = 'checked="checked"'; -else $vmail_no = 'checked="checked"'; +if($rmail[user] == "yes") $umail_ok = "checked"; +else $umail_no = "checked"; -$dhyper_no = $dhyper_ok = ''; -if ( $enable['dhyper'] ) $dhyper_no = 'checked="checked"'; -else $dhyper_ok = 'checked="checked"'; +if($view[url] == "yes") $url_ok = "checked"; +else $url_no = "checked"; -$align_l = $align_r = $align_c = ''; -if ( $board['align'] == "left" ) $align_l = 'checked="checked"'; -elseif ( $board['align'] == "right" ) $align_r = 'checked="checked"'; -else $align_c = 'checked="checked"'; +if($view[email] == "yes") $vmail_ok = "checked"; +else $vmail_no = "checked"; -$nameck_r = $nameck_n = ''; -if ( $board['rnname'] ) $nameck_r = 'checked="checked"'; -else $nameck_n = 'checked="checked"'; +if($board[align] == "left") $align_l = "checked"; +elseif($board[align] == "right") $align_r = "checked"; +else $align_c = "checked"; -$ipbl = trim ($enable['ipbl']) ? parse_ipvalue ($enable['ipbl'], 1) : $_('ua_dhyper3'); -if ( ! $board['useipbl'] ) { - $ipbl = "Prevent this function by super user!\n". - "If you want to this function, config \"\$board['useipbl'] = 1;\" in global.php"; - $ipbllinkro = " disabled"; -} +if(!$color[l4_bg]) $color[l4_bg] = "$color[l0_bg]"; +if(!$color[l4_fg]) $color[l4_fg] = "$color[l0_fg]"; +if(!$color[r5_bg]) $color[r5_bg] = "$color[r0_bg]"; +if(!$color[r5_fg]) $color[r5_fg] = "$color[r0_fg]"; -$denylink = trim ($enable['plink']) ? parse_ipvalue ($enable['plink'], 1) : $_('ua_dhyper3'); -if(!$board['usedhyper']) { - $denylink = "Prevent this function by super user!\n". - "If you want to this function, config \"\$board['usedhyer'] = 1;\" in global.php"; - $denylinkro = " disabled"; -} -$board['hls'] = preg_replace ('/STR<\/U><\/B><\/FONT>/i', '', $board['hls']); +$board[hls] = eregi_replace("STR","",$board[hls]); # html header ´ -$top_head = readfile_r ("../../html/head.php"); - -$top_head = htmlspecialchars ($top_head); -$top_head = str_replace ("<? echo ","",$top_head); -$top_head = preg_replace ("/ \?>(;|\}|<|"| -)/i","\\1",$top_head); -$top_head = str_replace ("\$table",$table,$top_head); -$top_head = str_replace ("\$version",$version,$top_head); -$top_head = str_replace ("\$_('charset')", $_('charset'), $top_head); -$top_head = str_replace (" ", "  ", $top_head); -$top_head = nl2br ($top_head); -$top_head = trim ($top_head); - -$html_head = readfile_r ("../../data/$table/html_head.php"); +$top_head = file_operate("../../html/head.ph","r"); + +$top_head = htmlspecialchars($top_head); +$top_head = str_replace("<? echo ","",$top_head); +$top_head = eregi_replace(" \?>(;|\}|<|"| -)","\\1",$top_head); +$top_head = str_replace("\$table",$table,$top_head); +$top_head = str_replace("\$version",$version,$top_head); +$top_head = str_replace("\$langs[charset]",$langs[charset],$top_head); +$top_head = str_replace("\$langs[font]",$langs[font],$top_head); +$top_head = str_replace("\$color[bgcol]",$color[bgcol],$top_head); +$top_head = str_replace("\$color[text]",$color[text],$top_head); +$top_head = str_replace("\$color[l1_bg]",$color[l1_bg],$top_head); +$top_head = str_replace("\$color[n0_bg]",$color[n0_bg],$top_head); +$top_head = str_replace("\$color[n2_bg]",$color[n2_bg],$top_head); +$top_head = str_replace("\$color[n2_fg]",$color[n2_fg],$top_head); +$top_head = str_replace("\$color[image]",$color[image],$top_head); +$top_head = str_replace("\$color[link]",$color[link],$top_head); +$top_head = str_replace("\$color[vlink]",$color[vlink],$top_head); +$top_head = str_replace("\$color[alink]",$color[alink],$top_head); +$top_head = str_replace(" ","  ",$top_head); +$top_head = nl2br($top_head); +$top_head = trim($top_head); + +$html_head = file_operate("../../data/$table/html_head.ph","r"); # html tail ´ -$html_tail = readfile_r ("../../data/$table/html_tail.php"); +$html_tail = file_operate("../../data/$table/html_tail.ph","r"); +$bottom_tail = file_operate("../../html/tail.ph","r"); +$bottom_tail = eregi_replace("<\?(.*)\?>","",$bottom_tail); +$bottom_tail = trim($bottom_tail); +$bottom_tail = htmlspecialchars($bottom_tail); +$bottom_tail = nl2br($bottom_tail); + +if(strtolower($color[bgcol]) == strtolower($color[l0_bg])) $color[cform] = $color[text]; +else $color[cform] = $color[l1_bg]; + +echo " + + +OOPS administration center v.$copy[version] [ User ADMIN page ] + + + + + + + + +"; -} - -# make index link -$al_index = userlist_sortlink ($t); -if ( $_code == 'ko' ) - $han_index = userlist_sortlink ($t, 1); -else - $han_index = "\"\""; - -if($agent['tx']) $registLink = "../regist.php?check=1"; -else $registLink = "javascript:fork('popup','../regist.php?check=1')"; - -htmlhead (); -?> -
+ +

$user User Configuration
+ + + +

+ + -if($agent['tx']) { - $html_head = str_replace('<', '<', $html_head); - $html_head = str_replace('>', '>', $html_head); - $html_tail = str_replace('<', '<', $html_tail); - $html_tail = str_replace('>', '>', $html_tail); -} + + + + + + + + -$bottom_tail = readfile_r ('../../html/tail.php'); -$bottom_tail = preg_replace("/<\?(.*)\?>/i", '', $bottom_tail); -$bottom_tail = trim ($bottom_tail); -$bottom_tail = htmlspecialchars ($bottom_tail); -$bottom_tail = nl2br ($bottom_tail); + -# styel sheet -if ( file_exists ("../../data/$table/stylesheet.php") ) { - include "../../data/$table/stylesheet.php"; -} + -if($agent['tx']) { - $ipbl_button = $dlin_button = $styl_button = $head_button = $tail_button = $noti_button = " "; -} else { - $ipbl_button = "". - "". - ""; - $dlin_button = "". - "". - ""; - $styl_button = "". - "". - ""; - $head_button = "". - "". - ""; - $tail_button = "". - "". - ""; - $noti_button = "". - "". - ""; -} + + +\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n\n"; - $i++; - } - - sql_free_result ($result); - - # - # ceil -> ø ִ Լ - $result = sql_query ("SELECT COUNT(*) AS total FROM userdb {$lin['like']}", $c); - $total = sql_result ($result, 0, 'total'); - sql_free_result ($result); - $last = ceil ($total / 20); - - # ϼ - if ( $lin['like'] ) { - $result = sql_query ("SELECT COUNT(*) AS total FROM userdb", $c); - $atotal = sql_result ($result, 0, 'total'); - sql_free_result ($result); - } - - sql_close($c); - - # PAGE ũ - $sno = $page - 2; - $eno = $page + 2; - - if ( $page < 3 ) { - $sno = 1; - $eno = 5; - } else if ( $last - $page < 2 ) { - if ( $last - $page == 0 ) $sno = $page-4; - else $sno = $page-3; - } - - if ( $sno < 1 ) $sno = 1; - if ( $eno > $last ) $eno = $last; - - if ( $page != 1 ) $pagelink = "\"\"\n"; - for ( $i=$sno; $i<=$eno; $i++ ) { - if($i == $page) $pagelink .= "$i\n"; - else $pagelink .= "$i\n"; - } - - if($page != $last) $pagelink .= "\"\"\n"; - - $sec_status = "
Password Information +
New Re pass 
  +
Language Check +
$langs[lang_c]$langs[lang_m1] ["; -htmlhead (); -?> +# ڵ带 ȣ +get_lang_list($langs[code]); - - - -
- -

-
User Configuration
- - - -
- - - - - - - - - - + + + + + - - + + + + - + - - + + + + - + - + - + - - - + + + + + + + - + + + - + - - - - - + - + + + + + - - + - + - - - - - - - - + - - - - - - - - + - - - - - - + + + + + + - + - + - - - - - - + + + - - - - - - + + + - - - - - - + + + - - - - - - + - + - - + - + - - - + + + + + + - - - + + + + + + - - - - - + + + + + + + + - - + + + +if($rmail[uses] == "yes") { + echo " $langs[ua_m2]\n". + " $langs[ua_m3]"; +} else { + echo "( ) $langs[ua_m2]\n". + " $langs[ua_m3]"; +} - - - - - - - + - + - + - - + - + - - + - + - - + - + - + - + - - - - - + - - - + + + - + - + - - + - - - + + + + + + + + + + + + - - + + + + + + + - - + + + + + + -"; -else echo "
" . $_('ua_while_wn') . "
"; -?> + + + + + + + + - - + + + + + + + - + - + - - - - - - + + + + + + - - - - - - + + + + + + - - + + + + + + - value=""> + + + + + + + + - - + + + + + + + + + + + + + + + + - + - + - - - - - - + + + + + + - - - - - - + + + + + + - + + + + + + + + - + + + + + + + + - + + + + + + + - + + + + + + + + - + - + - + - + + + - - + + + +if ($rmail[uses] == "yes") { + echo "$langs[ua_mail_p]\n". + "$langs[ua_mail_n]\n"; +} else { + echo "( )$langs[ua_mail_p]\n". + "$langs[ua_mail_n]\n"; +} - - - - +echo " + + + + - - + + +if ($rmail[uses] == "yes") echo ""; +else echo "
$langs[ua_while_wn]
"; - +echo " + + - + - - + - - - + + + + + - + + + + + + + + - - - + - - - + - - + - + - -
Administartion Information
 Permission - +echo "] $langs[lang_m2]   
  +
Permission Check +
- - value="1"> - value="0"> - +$langs[ua_w] +$langs[ua_p] +$langs[ua_n] + $langs[ua_r] +$langs[ua_p] +$langs[ua_n]   
Logout Page - +$langs[ua_e] +$langs[ua_p] +$langs[ua_n] + $langs[ua_d] +$langs[ua_p] +$langs[ua_n]   
 
 
Board Basic Configuration
Function of Admin link mark +
value=""> $langs[ua_amark] +$langs[ua_amark_y] +$langs[ua_amark_n] + 
 
Option whether include parent article text when reply +
Theme$langs[ua_ore] -$langs[ua_ore_y] +$langs[ua_ore_n] + 
  +
 
Option whether print related list when reply +
$langs[ua_re_list] - value="center"> - value="left"> - value="right"> +$langs[ua_re_list_y] +$langs[ua_re_list_n]   
  +
Webboard Align +
- value=""> +$langs[ua_align] +$langs[ua_align_c] +$langs[ua_align_l] +$langs[ua_align_r]   
value=""> value="">
  +
value=""> value="">
Article Preview Check +
value="">*2+1 value="">$langs[ua_pr] +$langs[ua_p] +$langs[ua_n] + $langs[ua_pren] + +$langs[ua_b8]
 
  +
Width Of Form Size
Board Basic Configuration +
NAME value=""> SUBMIT value=""> $langs[ua_b1] 
TITLE value=""> TEXT value=""> $langs[ua_b19]$langs[ua_b20] [ + yes + no ] + 
UPLOAD value="">    $langs[ua_b21]$langs[ua_b22] + + 
 
Print Option
- value="0"> - value="1"> +$langs[ua_b17]$langs[ua_b18] [ +$langs[ua_b15] +$langs[ua_b16] +]   
- value="1"> - value="0"> +$langs[ua_b2]$langs[ua_b3] [ +$langs[ua_b15] +$langs[ua_b16] +] $langs[ua_b4]   
- value="1"> - value="0"> - $langs[ua_b5]$langs[ua_b6]$langs[ua_b7]$langs[ua_b8]
- value="1"> - value="0"> - $langs[ua_b9]$langs[ua_b8]$langs[ua_b10]$langs[ua_b11]
 
Allow HTML Code
- +$langs[ua_b12]*2+1$langs[ua_b11]$langs[ua_b13]$langs[ua_b14]
 
- +
Mail Link Option
 
$langs[ua_m1] [ "; -
Article Preview Check
- value="1"> - value="0"> -  - value=""> +echo " ]  
 
  +
Host Address Configuration
Host Address Configuration +
[ - value=1> - value=0> ] +$langs[ua_ha1] $langs[ua_ha2] [ + $langs[ua_ha3] + $langs[ua_ha4] ]   
[ - value=1> - value=0> +$langs[ua_ha5]$langs[ua_ha6] [ + $langs[ua_ha7] + $langs[ua_ha8] ]   
[ - value=1> yes - value=0> no +$langs[ua_ha9]$langs[ua_ha10] [ + yes + no ]   
 
  +
File Upload Configuration
Theme Configuration +
- name="ua[upload]" value=1> - name="ua[upload]" value=0> - 
\n"; + +get_theme_list("ua[theme_c]",8,"../../config"); + +echo " +
- name="ua[uplink]" value=1> - name="ua[uplink]" value=0> - BG Image 
 
  +
Mail Configuration
Board Basic Color Configuration +
Admin - -" . $_('ua_mail_p') . "\n". - "" . $_('ua_mail_n') . "\n"; -} else { - echo "( )" . $_('ua_mail_p') . "\n". - "" . $_('ua_mail_n') . "\n"; -} -?> - +$langs[ua_bc1] +Yes +No  User - -" . $_('ua_mail_p') . "\n". - "" . $_('ua_mail_n') . "\n"; -} else { - echo "( )" . $_('ua_mail_p') . "\n". - "" . $_('ua_mail_n') . "\n"; -} -?> + BGCOLOR
TEXTLINK
 
VLINKALINK
E-mail +$langs[ua_bc2]$langs[ua_bc3]
$langs[ua_bc4]$langs[ua_bc5]
 
$langs[ua_bc6]$langs[ua_bc7]
 
  +
RSS Configuration
List Page Color Configuration +
- value=1> - value=0> -  - value=1> - value=0> - $langs[ua_lp1]$langs[ua_lp2]
- value=0> - value=1> -    $langs[ua_lp3]$langs[ua_lp4]
+$langs[ua_lp5]$langs[ua_lp6]
$langs[ua_lp7]$langs[ua_lp8]
 
$langs[ua_lp9]$langs[ua_lp10]
$langs[ua_lp11]$langs[ua_lp12]
 
  +
Etc Configuration
Read Page Color Configuration +
- value=1>yes - value=0>no -  - value=1>yes - value=0>no - $langs[ua_lp1]$langs[ua_lp2]
value="">  value=""> $langs[ua_lp3]$langs[ua_lp4]
 
$langs[ua_rp1]$langs[ua_rp2]
Blocking IP Address
$langs[ua_rp3]$langs[ua_rp4]
-TEXTAREA SIZE OPERATION - -
$langs[ua_rp5]$langs[ua_rp6]
- -
$langs[ua_rp7]$langs[ua_rp8]
 
  +
Deny Invalid Hyper Link
File Upload Configuration +
- - value="0"> - value="1"> +$langs[ua_fp] +$langs[ua_p] +$langs[ua_n] -TEXTAREA SIZE OPERATION - + 
 
- +
Mail Configuration
 
Admin\n"; -
Board Notice
Subject - -  User\n"; + +if ($rmail[uses] == "yes") { + echo "$langs[ua_mail_p]\n". + "$langs[ua_mail_n]\n"; +} else { + echo "( )$langs[ua_mail_p]\n". + "$langs[ua_mail_n]\n"; +} + + +echo " 
Contents -TEXTAREA SIZE OPERATION - -
E-mail"; -
- -
 
 
HTML Header/Tail
  +
-<HTML>
-<HEAD>
-<TITLE> JSBoard blar blah blah.. :-) </TITLE>
-<STYLE>
-<!-- ======================= User define stylesheet ======================= -->
+
Etc Configuration
-[ USER DEFINED STYLESHEET ] +$langs[ua_etc1] +yes +no -TEXTAREA SIZE OPERATION - -
- -
 $langs[ua_etc2] +yes +no + 
-<!-- ======================= User define stylesheet ======================= -->
-</STYLE>
-</HEAD>
-<BODY> +
$langs[ua_etc3] $langs[ua_etc4] 
 
-TEXTAREA SIZE OPERATION - +
HTML Header/Tail
- -
$top_head
- -


-[ ] -


- +
+
-TEXTAREA SIZE OPERATION - -



[ $langs[ua_etc5] ]



- +
+
-

-</BODY>
-</HTML>
-
$bottom_tail
 
  +
- - - - +
+ + + + +
-Scripted by JSBoard Open Project
-and all rights follow GPL2 License +
+Scripted by JoungKyun Kim
+and all right reserved
- - + +
- - +"; ?> diff --git a/admin/userlist.php b/admin/userlist.php deleted file mode 100644 index 63c7fc3b..00000000 --- a/admin/userlist.php +++ /dev/null @@ -1,209 +0,0 @@ -". - "[ DELETE ]". - ""; - } else $del_link = " "; - - if($agent['tx']) $editLink = "../user.php?no={$row['no']}"; - else $editLink = "javascript:fork('popup','../user.php?no={$row['no']}&check=1')"; - - $_email = $row['email'] ? "{$row['email']}" : ' '; - $_url = $row['url'] ? "{$row['url']}" : ' '; - - $ulist .= "
". - "[ EDIT ]". - "{$row['nid']} {$row['name']} {$_email}{$_url}{$del_link}
\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "
\n". - "$t SECTION User Information\n". - "
All user registration$atotal people
$t section user registration$total people
total page number$last
Current page number$page
\n"; - -} else { - $ulist = "
\n". - "

" . $_('u_no') . "


\n". - "
- -
- - - -
- - - - - - - - -
JSBoard User
Administration Center
-
- - - -
- - -
- - - - - - - - - -
-[ MAIN ]  -
-[ REGIST ]  -
- - - - - - - - - - - - - -
- - - -
- -
- -
- -
- - diff --git a/auth_ext.php b/auth_ext.php new file mode 100644 index 00000000..c6f94a0f --- /dev/null +++ b/auth_ext.php @@ -0,0 +1,57 @@ + + + + + + + + + +
$kinds Check



+

+$langs[au_ment]
+ + + + + + + +
+ +[ $langs[au_ments] ] + +
+
+ +Copyleft 1999-$lyear Jsboard Open Project
+http://jsboard.kldp.org +
+
+ + + + +\n"; + +require("./html/tail.ph"); +?> diff --git a/captcha/captcha.php b/captcha/captcha.php deleted file mode 100644 index d0824dbc..00000000 --- a/captcha/captcha.php +++ /dev/null @@ -1,169 +0,0 @@ -disable = true; - return; - } - - $this->data_r = unserialize ($data); - if ( ! is_array ($this->data_r) || ! count ($this->data_r) ) - $this->disable = true; - } - - /* - * PHP 4 object constructor - */ - function Captcha ($datafile) { - $this->__construct ($datafile); - } - - function captchakey() { - return rand (0, $this->keysize); - } - - function captchadata ($key = 0) { - if ( $key == "" ) - return '00000'; - - if ( $key > 999 || $key < 0 ) - return '00000'; - - return $this->data_r[$key]; - } - - function check ($key, $value = '00000') { - if ( $value == '00000' ) - return FALSE; - - $value = strtoupper ($value); - $confirm = $this->captchadata ($key); - - if ( $confirm == '00000' ) - return FALSE; - - if ( $confirm != $value ) - return FALSE; - - return TRUE; - } - - function __destruct() { - unset ($this->data_r); - } -} - -# http://sam.zoy.org/pwntcha/ -Class Captchaimg { - public $img = array ( - 'type' => 'png', - 'width' => 88, - 'height' => 30, - 'bg' => array (255, 255, 255), - 'border' => array (0, 0, 0) - ); - public $str = array ( - 'size' => 8, - 'color' => array (0, 0, 0), - 'bgcolor' => array (101, 101, 101) - ); - #public $font = 'font/A.D.MONO.ttf'; - #public $font = 'font/Abbey-Medium.ttf'; - #public $font = 'font/Abscissa.ttf'; - #public $font = 'font/Accidental.Presidency.ttf'; - #public $font = 'font/Acid.Reflux.BRK.ttf'; - public $font = 'font/AcidDreamer.ttf'; - - function print_img_header () { - header ('Content-type: image/' . $this->img['type']); - } - - function create_noise ($im, $count = 1) { - if ( ! is_resource ($im) ) - return; - - while ( $count-- ) { - $cx = rand (10, 40); - $cy = rand (0, 20); - $he = rand (-30, 30); - $bg = imageColorAllocate ($im, rand (1,255), rand (1,255), rand (1,255)); - $start = rand (25, 50); - imageArc ($im, $cx, $cy, 100, $he, $start, 155, $bg); - } - } - - function create_cercle ($im, $count = 1) { - if ( ! is_resource ($im) ) - return; - - while ( $count-- ) { - if ( ($count % 2) == 1 ) { - $x = rand (-20, 30); - $y = rand (-30, 40); - } else { - $x = rand (20, 60); - $y = rand (30, 70); - } - $bg = imageColorAllocate ($im, rand (15, 200), rand (40,220), rand (150, 255)); - imagefilledellipse ($im, $x, $y, 100, 100, $bg); - } - } - - function create_captcha ($str = '00000') { - $im = imagecreatetruecolor ($this->img['width'], $this->img['height']); - $border = imageColorAllocate ($im, $this->img['border'][0], $this->img['border'][1], $this->img['border'][2]); - $bg = imageColorAllocate ($im, $this->img['bg'][0], $this->img['bg'][1], $this->img['bg'][2]); - $fg = imageColorAllocate ($im, $this->str['color'][0], $this->str['color'][1], $this->str['color'][2]); - $fbg = imageColorAllocate ($im, $this->str['bgcolor'][0], $this->str['bgcolor'][1], $this->str['bgcolor'][2]); - - imageFilledRectangle ($im, 0, 0, $this->img['width'] - 1, $this->img['height'] - 1, $bg); - imageRectangle ($im, 0, 0, $this->img['width'] - 1, $this->img['height'] - 1, $border); - - $this->create_cercle ($im, 2); - $this->create_noise ($im, 4); - - $_x = array (rand (3, 8), rand (15, 22), rand (35, 44), rand (49, 56), rand (63, 75)); - $_y = array (rand (15, 30), rand (15, 30), rand (14, 30), rand (15, 30), rand (14, 30)); - - for ( $x=0; $xfont, $str[$x]); - imagettftext ($im, 12, $angle, $_x[$x], $_y[$x], $fg, $this->font, $str[$x]); - #imageString ($im, 5, $_x[$x] + 2, $_y[$x] + 3, $str[$x], $fbg); - #imageString ($im, 5, $_x[$x], $_y[$x], $str[$x], $fg); - endfor; - - #imageString ($im, 5, 19, 9, $str, $fbg); - #imageString ($im, 5, 17, 7, $str, $fg); - - switch ($this->img['type']) : - case 'jpg' : - imageJpeg ($im); - break; - case 'png' : - imagePng ($im); - break; - default : - imageGif ($im); - endswitch; - imageDestroy ($im); - } - - function __destruct() { - unset ($this->img); - unset ($this->str); - } -} -?> diff --git a/captcha/captchacommon.php b/captcha/captchacommon.php deleted file mode 100644 index e8dab7a6..00000000 --- a/captcha/captchacommon.php +++ /dev/null @@ -1,48 +0,0 @@ -disable === true ) { - $pcaptcharcolspan = ' colspan=3'; - return; - } - - if ( $board['super'] || $board['adm'] ) { - $pcaptcharcolspan = ' colspan=3'; - $capt->disable = true; - return; - } - - if ( preg_match ('/reply\.php$/', $_SERVER['PHP_SELF']) ) - $pattern = '/^[25-7]$/'; - else - $pattern = '/^[2457]$/'; - - if ( preg_match ($pattern, $board['mode']) ) { - $pcaptcharcolspan = ' colspan=3'; - $capt->disable = true; - return; - } - - $pcaptcharcolspan = ' style="width: 80px;"'; - $ckey = $capt->captchakey (); - $captsize = $size['pass'] * 2; - - $pcaptcha = << - - -Input {$capt->captchadata($ckey)} - -{$_('captstr')}
- - -EOF; -} -?> diff --git a/captcha/captchaimg.php b/captcha/captchaimg.php deleted file mode 100644 index 26f73360..00000000 --- a/captcha/captchaimg.php +++ /dev/null @@ -1,21 +0,0 @@ -captchakey (); - -if ( $_SERVER['argv'][0] ) - $key = $_SERVER['argv'][0]; -else if ( is_numeric ($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] < 1000 ) { - $key = $_SERVER['QUERY_STRING']; -} else - $key = $capt->captchakey (); - -$capt->print_img_header (); -$capt->create_captcha ($capt->captchadata ($key)); -?> diff --git a/captcha/font/AcidDreamer.ttf b/captcha/font/AcidDreamer.ttf deleted file mode 100644 index c5e888e66be0f8cfe92a603a9b7a557e6e9bcece..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203688 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 diff --git a/config/README.THEME b/config/README.THEME new file mode 100644 index 00000000..51e4c8a7 --- /dev/null +++ b/config/README.THEME @@ -0,0 +1,17 @@ +Theme ߰ϱ + +theme ߰ϴ ϴ. ϴ themes directory +ƹ theme file ϴ̸.themes copy Ѵ ׵ + ָ ȴ. + +׸ Admin center global ߰ theme +ִ ̴. + +߿ default.themes ̸ ؼ ȵȴ! + + 1.0.x ̻ image menu theme Ҽ +ִ. ̴ ϰ jsbaord/images/THEME_NAME ̶ 丮 + Ŀ ʿ image ־ ָ ȴ + +. +2000.11.22 diff --git a/config/themes/basic.themes b/config/themes/basic.themes new file mode 100644 index 00000000..cd107d52 --- /dev/null +++ b/config/themes/basic.themes @@ -0,0 +1,45 @@ + diff --git a/database/charset.php b/database/charset.php deleted file mode 100644 index e528e4ea..00000000 --- a/database/charset.php +++ /dev/null @@ -1,16 +0,0 @@ - 'ascii', - 'ko' => 'euckr', - 'ja' => 'sjis' -); - -$_char['pgsql'] = array ( - 'en' => 'sql_ascii', - 'ko' => 'uhc', - 'ja' => 'sjis' -); -?> diff --git a/database/db.php b/database/db.php deleted file mode 100644 index 38201951..00000000 --- a/database/db.php +++ /dev/null @@ -1,35 +0,0 @@ - diff --git a/database/mysql.php b/database/mysql.php deleted file mode 100644 index 79df58a1..00000000 --- a/database/mysql.php +++ /dev/null @@ -1,288 +0,0 @@ - $val) { - if ( is_array ($val) ) { - sql_escape ($c, $v[$key]); - continue; - } - - if ( ! is_numeric ($val) ) - $v[$key] = mysql_real_escape_string ($val, $c); - } - - return; - } - - if ( ! is_numeric ($v) ) - $v = mysql_real_escape_string ($v, $c); -} - -function sql_error ($errno, $error) { - global $_code, $_; - - if ( $errno ) { - $error = sprintf ("%s\n\n%s\n", $_('sqlmsg'), $error); - print_error ($error, 280, 150, 1); - } -} - - -# -# SQL Usefull mapping function -# - -function exists_database ($c, $db) { - $_r = sql_list_dbs ($c); - - while ( $r = sql_fetch_object ($_r) ) { - if ( $r->Database == $db ) - return 1; - } - - return 0; -} - -function exists_dbuser ($c, $user ) { - $_r = sql_query ("SELECT user FROM user WHERE user = '{$user}'", $c, 'mysql'); - - if ( sql_num_rows ($_r) > 0 ) - return 1; - - return 0; -} - -function db_table_list ($c, $dbname, $t = '', $chk = '') { - $list = mysql_list_tables ($dbname); - - # total table number - $list_num = mysql_num_rows ($list); - $j = ! $j ? '0' : $j; - - for ( $i=0; $i<$list_num; $i++ ) { - if ( ! $chk ) { - # table ̸ Ͽ 迭 - $l[$i] = mysql_tablename ($list, $i); - - # 迭 ̸ ĺ Ʈ - # ̸ ٽ 迭 - if ( $t ) { - if ( preg_match ("/^$t/i", $l[$i]) ) { - $ll[$j] = $l[$i]; - $j++; - } - } - } else { - $t = ''; - if ( $chk == mysql_tablename ($list, $i) ) { - $l = 1; - break; - } else $l = 0; - } - } - - return $t ? $ll : $l; -} - -function field_exist_check ($c, $dbname, $t, $compare) { - $field = @mysql_list_fields ($dbname, $t); - sql_error (mysql_errno (), mysql_error ()); - - $num = @mysql_num_fields ($field); - sql_error (mysql_errno (), mysql_error ()); - - for ($i = 0; $i < $num; $i++) { - if ( mysql_field_name ($field, $i) == $compare ) { - return 1; - } - } - - return 0; -} - -function compatible_limit ($offset, $num) { - if ( ! $offset ) $offset = 0; - return "LIMIT {$offset},{$num}"; -} - -function get_counter ($c, $table, $period, $sql = '') { - $query = "SELECT COUNT(1/(date > '{$period}')) as T, COUNT(*) as A FROM {$table} {$sql}"; - $_r = sql_query ($query, $c); - $r = sql_fetch_array ($_r); - - return $r; -} - -function table_lock ($c, $table = '', $offset = 0) { - if ( $offset ) - sql_query ("LOCK TABLES {$table} WRITE", $c); - else - sql_query ('UNLOCK TABLES', $c); -} - -function get_like ($o = '', $str = '') { - $r = $o ? 'REGEXP' : 'LIKE'; - if ( $str ) { - $r .= $o ? " '{$str}'" : " '%{$str}%'"; - } - - return $r; -} - -function korean_area ($t) { - $h = '0x' . bin2hex ($t[0]) . bin2hex($t[1]); - - if ( $h == '0xb0a1' ) $r['like'] = chr(0xb3).chr(0xaa); # Ga - Na - if ( $h == '0xb3aa' ) $r['like'] = chr(0xb4).chr(0xd9); # Na - Da - if ( $h == '0xb4d9' ) $r['like'] = chr(0xb6).chr(0xf3); # Da - La - if ( $h == '0xb6f3' ) $r['like'] = chr(0xb6).chr(0xb6); # La - Ma - if ( $h == '0xb8b6' ) $r['like'] = chr(0xb9).chr(0xd9); # Ma - Ba - if ( $h == '0xb9d9' ) $r['like'] = chr(0xbb).chr(0xe7); # Ba - Sa - if ( $h == '0xbbe7' ) $r['like'] = chr(0xbe).chr(0xc6); # Sa - Aa - if ( $h == '0xbec6' ) $r['like'] = chr(0xc0).chr(0xda); # Aa - Ja - if ( $h == '0xc0da' ) $r['like'] = chr(0xc2).chr(0xf7); # Ja - Cha - if ( $h == '0xc2f7' ) $r['like'] = chr(0xc4).chr(0xab); # Cha - Ka - if ( $h == '0xc4ab' ) $r['like'] = chr(0xc5).chr(0xb8); # Ka - Ta - if ( $h == '0xc5b8' ) $r['like'] = chr(0xc6).chr(0xc4); # Ta - Pa - if ( $h == '0xc6c4' ) $r['like'] = chr(0xc7).chr(0xcf); # Pa - Ha - if ( $h == '0xc7cf' ) $r['like'] = chr(0xc9).chr(0xfe); # Ha - hih - - $r = "WHERE binary nid BETWEEN binary '$t' AND binary '{$r['like']}'"; - - return $r; -} -?> diff --git a/database/mysqli.php b/database/mysqli.php deleted file mode 100644 index f6380857..00000000 --- a/database/mysqli.php +++ /dev/null @@ -1,307 +0,0 @@ - $val) { - if ( is_array ($val) ) { - sql_escape ($c, $v[$key]); - continue; - } - - if ( ! is_numeric ($val) ) - $v[$key] = mysqli_real_escape_string ($c, $val); - } - - return; - } - - if ( ! is_numeric ($v) ) - $v = mysqli_real_escape_string ($c, $v); -} - -function sql_error ($errno, $error) { - global $_code, $_; - - if ( $errno ) { - $error = sprintf ("%s\n\n%s\n", $_('sqlmsg'), $error); - print_error ($error, 280, 150, 1); - } -} - - -# -# SQL Usefull mapping function -# - -function exists_database ($c, $db) { - $sql = 'SHOW DATABASES'; - $_r = sql_query ($sql, $c); - - while ( $r = sql_fetch_row ($_r) ) { - if ( $r[0] == $db ) - return 1; - } - - return 0; -} - -function exists_dbuser ($c, $user ) { - $_r = sql_query ("SELECT user FROM user WHERE user = '{$user}'", $c); - - if ( sql_num_rows ($_r) > 0 ) - return 1; - - return 0; -} - -function db_table_list ($c, $dbname = '', $t = '', $chk = '') { - $sql = "SHOW TABLES"; - $r = sql_query ($sql, $c); - - $i = 0; - $j = ! $j ? 0 : $j; - - while ( $row = sql_fetch_row ($r) ) { - if ( ! $chk ) { - $l[$i] = $row[0]; - - if ( $t ) { - if ( preg_match ("/^$t/i", $row[0]) ) { - $ll[$j] = $row[0]; - $j++; - } - } - - $i++; - } else { - $t = ''; - if ( $chk == $row[0] ) { - $l = 1; - break; - } else $l = 0; - } - } - - return $t ? $ll : $l; -} - -function field_exist_check ($c, $dbname, $t, $compare) { - $_r = sql_query ("DESC {$t}", $c); - - while ( $r = sql_fetch_array ($_r) ) { - if ( $r['Field'] == $compare ) - return 1; - } - - return 0; -} - -function compatible_limit ($offset, $num) { - if ( ! $offset ) $offset = 0; - return "LIMIT {$offset},{$num}"; -} - -function get_counter ($c, $table, $period, $sql = '') { - $query = "SELECT COUNT(1/(date > '{$period}')) as T, COUNT(*) as A FROM {$table} {$sql}"; - $_r = sql_query ($query, $c); - $r = sql_fetch_array ($_r); - - return $r; -} - -function table_lock ($c, $table = '', $offset = 0) { - if ( $offset ) - sql_query ("LOCK TABLES {$table} WRITE", $c); - else - sql_query ('UNLOCK TABLES', $c); -} - -function get_like ($o = '', $str = '') { - $r = $o ? 'REGEXP' : 'LIKE'; - if ( $str ) { - $r .= $o ? " '{$str}'" : " '%{$str}%'"; - } - - return $r; -} - -function korean_area ($t) { - $h = '0x' . bin2hex ($t[0]) . bin2hex($t[1]); - - if ( $h == '0xb0a1' ) $r['like'] = chr(0xb3).chr(0xaa); # Ga - Na - if ( $h == '0xb3aa' ) $r['like'] = chr(0xb4).chr(0xd9); # Na - Da - if ( $h == '0xb4d9' ) $r['like'] = chr(0xb6).chr(0xf3); # Da - La - if ( $h == '0xb6f3' ) $r['like'] = chr(0xb6).chr(0xb6); # La - Ma - if ( $h == '0xb8b6' ) $r['like'] = chr(0xb9).chr(0xd9); # Ma - Ba - if ( $h == '0xb9d9' ) $r['like'] = chr(0xbb).chr(0xe7); # Ba - Sa - if ( $h == '0xbbe7' ) $r['like'] = chr(0xbe).chr(0xc6); # Sa - Aa - if ( $h == '0xbec6' ) $r['like'] = chr(0xc0).chr(0xda); # Aa - Ja - if ( $h == '0xc0da' ) $r['like'] = chr(0xc2).chr(0xf7); # Ja - Cha - if ( $h == '0xc2f7' ) $r['like'] = chr(0xc4).chr(0xab); # Cha - Ka - if ( $h == '0xc4ab' ) $r['like'] = chr(0xc5).chr(0xb8); # Ka - Ta - if ( $h == '0xc5b8' ) $r['like'] = chr(0xc6).chr(0xc4); # Ta - Pa - if ( $h == '0xc6c4' ) $r['like'] = chr(0xc7).chr(0xcf); # Pa - Ha - if ( $h == '0xc7cf' ) $r['like'] = chr(0xc9).chr(0xfe); # Ha - hih - - $r = "WHERE binary nid BETWEEN binary '$t' AND binary '{$r['like']}'"; - - return $r; -} -?> diff --git a/database/pgsql.php b/database/pgsql.php deleted file mode 100644 index 5b4cc4c6..00000000 --- a/database/pgsql.php +++ /dev/null @@ -1,282 +0,0 @@ - $val) { - if ( is_array ($val) ) { - sql_escape ($c, $v[$key]); - continue; - } - - if ( ! is_numeric ($val) ) - $v[$key] = $func ($c, $val); - } - - return; - } - - if ( ! is_numeric ($v) ) - $v = $func ($c, $v); -} - -function sql_error ($error) { - global $_; - - if ( $error ) { - $error = sprintf("%s\n\n%s\n", $_('sqlmsg'), $error); - print_error ($error, 280, 150, 1); - } -} - -# -# SQL Usefull mapping function -# - -function exists_database ($c, $db) { - $sql = "SELECT datname FROM pg_database WHERE datname = '{$db}'"; - $_r = sql_query ($sql, $c); - - if ( sql_num_rows ($_r) > 0 ) - return 1; - - return 0; -} - -function exists_dbuser ($c, $user) { - $_r = sql_query ("SELECT usename FROM pg_user WHERE usename = '{$user}'", $c); - - if ( sql_num_rows ($_r) > 0 ) - return 1; - - return 0; -} - -function db_table_list ($c, $dbname, $t = '', $chk = '') { - global $db; - - $sql = "SELECT tablename FROM pg_tables WHERE tableowner = '{$db['user']}'"; - $list = sql_query ($sql, $c); - - # total table number - $list_num = sql_num_rows ($list); - $j = ! $j ? '0' : $j; - - for ( $i=0; $i<$list_num; $i++ ) { - if ( ! $chk ) { - # table ̸ Ͽ 迭 - list ($l[$i]) = pg_fetch_row ($list, $i); - - # 迭 ̸ ĺ Ʈ - # ̸ ٽ 迭 - if ( $t ) { - if ( preg_match ("/^$t/i", $l[$i]) ) { - $ll[$j] = $l[$i]; - $j++; - } - } - } else { - $t = ''; - list ($testtablename) = pg_fetch_row ($list, $i); - if ( $chk == $testtablename ) { - $l = 1; - break; - } else $l = 0; - } - } - - return $t ? $ll : $l; -} - -function field_exist_check ($c, $dbname, $t, $compare) { - $sql = "SELECT a.attname FROM pg_attribute a, pg_class b" . - " WHERE b.relname = '{$t}' AND a.attrelid = b.oid" . - " AND a.attname = '{$compare}'"; - - return sql_num_rows (sql_query ($sql, $c)); -} - -function compatible_limit ($offset, $num) { - if ( ! $offset ) - return "LIMIT $num"; - - return "OFFSET $offset LIMIT $num"; -} - -function get_counter ($c, $table, $period, $sql = '') { - $query = "SELECT count(*) as A FROM {$table} {$sql}"; - $_r = sql_query ($query, $c); - $r['A'] = sql_result ($_r, 0, 'A'); - sql_free_result ($_r); - - $_sql = $sql ? "$sql AND " : 'WHERE '; - $_sql .= "date > '{$period}'"; - $query = "SELECT count(*) as A FROM {$table} {$_sql}"; - - $_r = sql_query ($query, $c); - $r['T'] = sql_result ($_r, 0, 'T'); - sql_free_result ($_r); - - return $r; -} - -function table_lock ($c, $table, $offset = 0) { - return 0; -} - -function get_like ($o = '', $str = '') { - $r = '~*'; - if ( $str ) { - $r .= " '{$str}'"; - } - - return $r; -} - -function korean_area ($t) { - $h = '0x' . bin2hex ($t[0]) . bin2hex($t[1]); - - if ( $h == '0xb0a1' ) $r['like'] = chr(0xb3).chr(0xaa); # Ga - Na - if ( $h == '0xb3aa' ) $r['like'] = chr(0xb4).chr(0xd9); # Na - Da - if ( $h == '0xb4d9' ) $r['like'] = chr(0xb6).chr(0xf3); # Da - La - if ( $h == '0xb6f3' ) $r['like'] = chr(0xb6).chr(0xb6); # La - Ma - if ( $h == '0xb8b6' ) $r['like'] = chr(0xb9).chr(0xd9); # Ma - Ba - if ( $h == '0xb9d9' ) $r['like'] = chr(0xbb).chr(0xe7); # Ba - Sa - if ( $h == '0xbbe7' ) $r['like'] = chr(0xbe).chr(0xc6); # Sa - Aa - if ( $h == '0xbec6' ) $r['like'] = chr(0xc0).chr(0xda); # Aa - Ja - if ( $h == '0xc0da' ) $r['like'] = chr(0xc2).chr(0xf7); # Ja - Cha - if ( $h == '0xc2f7' ) $r['like'] = chr(0xc4).chr(0xab); # Cha - Ka - if ( $h == '0xc4ab' ) $r['like'] = chr(0xc5).chr(0xb8); # Ka - Ta - if ( $h == '0xc5b8' ) $r['like'] = chr(0xc6).chr(0xc4); # Ta - Pa - if ( $h == '0xc6c4' ) $r['like'] = chr(0xc7).chr(0xcf); # Pa - Ha - if ( $h == '0xc7cf' ) $r['like'] = chr(0xc9).chr(0xfe); # Ha - hih - - $r = "WHERE nid BETWEEN '$t' AND '{$r['like']}'"; - - return $r; -} -?> diff --git a/database/regist.php b/database/regist.php deleted file mode 100644 index 8a06a17c..00000000 --- a/database/regist.php +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/database/sqlite.php b/database/sqlite.php deleted file mode 100644 index d6a6184a..00000000 --- a/database/sqlite.php +++ /dev/null @@ -1,231 +0,0 @@ - $val) { - if ( is_array ($val) ) { - sql_escape ($c, $v[$key]); - continue; - } - - if ( ! is_numeric ($val) ) - $v[$key] = sqlite_escape_string ($val); - } - - return; - } - - if ( ! is_numeric ($v) ) - $v = sqlite_escape_string ($v); -} - -function sql_error ($errno) { - global $_; - - if ( $errno ) { - if ( is_numeric ($errno) ) - $error = sprintf ("%s\n\n%s\n", $_('sqlmsg'), sqlite_error_string ($errno)); - else - $error = $errno; - print_error ($error, 280, 150, 1); - } -} - -# -# SQL Usefull mapping function -# - -function exists_database ($c, $db) { - return 0; -} - -function exists_dbuser ($c, $user = '') { - return 0; -} - -function db_table_list ($c, $dbname = '', $t = '', $chk = '') { - $sql = "SELECT name FROM sqlite_master WHERE type = 'table'"; - $list = sql_query ($sql, $c); - - # total table number - $list_num = sql_num_rows ($list); - $j = ! $j ? '0' : $j; - - for ( $i=0; $i<$list_num; $i++ ) { - if ( ! $chk ) { - # table ̸ Ͽ 迭 - $l[$i] = sqlite_fetch_single ($list); - - # 迭 ̸ ĺ Ʈ - # ̸ ٽ 迭 - if ( $t ) { - if ( preg_match ("/^$t/i", $l[$i]) ) { - $ll[$j] = $l[$i]; - $j++; - } - } - } else { - $t = ''; - $testtablename = sqlite_fetch_single ($list); - if ( $chk == $testtablename ) { - $l = 1; - break; - } else $l = 0; - } - } - - return $t ? $ll : $l; -} - -## checking ## -function field_exist_check ($c, $dbname, $t, $compare) { - return 1; -} - -function compatible_limit ($offset, $num) { - if ( ! $offset ) $offset = 0; - return "LIMIT {$offset},{$num}"; -} - -function get_counter ($c, $table, $period, $sql = '') { - $query = "SELECT COUNT(1/(date > '{$period}')) as T, COUNT(*) as A FROM {$table} {$sql}"; - $_r = sql_query ($query, $c); - $r = sql_fetch_array ($_r); - - return $r; -} - -function table_lock ($c, $table, $offset = 0) { - return 0; -} - -## checking ## -function get_like ($o = '', $str = '') { - $r = 'LIKE'; - if ( $str ) { - $r .= " %{$str}%"; - } - return $r; -} - -function korean_area ($t) { - $h = '0x' . bin2hex ($t[0]) . bin2hex($t[1]); - - if ( $h == '0xb0a1' ) $r['like'] = chr(0xb3).chr(0xaa); # Ga - Na - if ( $h == '0xb3aa' ) $r['like'] = chr(0xb4).chr(0xd9); # Na - Da - if ( $h == '0xb4d9' ) $r['like'] = chr(0xb6).chr(0xf3); # Da - La - if ( $h == '0xb6f3' ) $r['like'] = chr(0xb6).chr(0xb6); # La - Ma - if ( $h == '0xb8b6' ) $r['like'] = chr(0xb9).chr(0xd9); # Ma - Ba - if ( $h == '0xb9d9' ) $r['like'] = chr(0xbb).chr(0xe7); # Ba - Sa - if ( $h == '0xbbe7' ) $r['like'] = chr(0xbe).chr(0xc6); # Sa - Aa - if ( $h == '0xbec6' ) $r['like'] = chr(0xc0).chr(0xda); # Aa - Ja - if ( $h == '0xc0da' ) $r['like'] = chr(0xc2).chr(0xf7); # Ja - Cha - if ( $h == '0xc2f7' ) $r['like'] = chr(0xc4).chr(0xab); # Cha - Ka - if ( $h == '0xc4ab' ) $r['like'] = chr(0xc5).chr(0xb8); # Ka - Ta - if ( $h == '0xc5b8' ) $r['like'] = chr(0xc6).chr(0xc4); # Ta - Pa - if ( $h == '0xc6c4' ) $r['like'] = chr(0xc7).chr(0xcf); # Pa - Ha - if ( $h == '0xc7cf' ) $r['like'] = chr(0xc9).chr(0xfe); # Ha - hih - - $r = "WHERE nid BETWEEN '$t' AND '{$r['like']}'"; - - return $r; -} -?> diff --git a/delete.php b/delete.php index 106033ee..3b600115 100644 --- a/delete.php +++ b/delete.php @@ -1,109 +1,175 @@ - "; +} else { + $warning = " "; + $langs[w_pass] = ""; +} -$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[wwrap] = "" ? 120 : $board[wwrap]; -$c = sql_connect($db['server'], $db['user'], $db['pass'], $db['name']); -$list = get_article($table, $no); +$list[date] = date("Y-m-d H:i:s", $list[date]); +$list[text] = text_nl2br($list[text], $list[html]); +$list[text] = $list[html] ? $list[text] : wordwrap($list[text],$board[wwrap]); +$list[num] = print_reply($table, $list); -if(preg_match("/^(2|3|5|7)$/",$board['mode']) && $board['super'] != 1) - if($list['name'] != $_SESSION[$jsboard]['id']) print_error($_('perm_err'),250,150,1); +if($list[bofile]) { + $deldir = "./data/$table/$upload[dir]/$list[bcfile]"; + $delfile = "./data/$table/$upload[dir]/$list[bcfile]/$list[bofile]"; +} -$size = form_size(4); +# image menu ҽÿ wirte ȭ list,read ȭ +if ($board[img] == "yes" && !eregi("%",$board[width])) + $board[width] = $board[width]-$icons[size]*2; + +if($enable[dhost]) { + $list[dhost] = get_hostname($enable[dlook],$list[host]); + if($enable[dwho]) $list[dhost] = "$list[dhost]"; + else $list[dhost] = "$list[dhost]"; +} else $list[dhost] = ""; + +echo " +
+ +
+ + + + + + + + + + + + \n"; + +if ($list[email]) { + echo "\n" . + " \n" . + " \n"; +} -# 左 ȵǾ ⺻ -$board['wwrap'] = !$board['wwrap'] ? 120 : $board['wwrap']; - -$list['date'] = date("Y-m-d H:i:s", $list['date']); -text_nl2br($list['text'], $list['html']); -#$list['text'] = $list['html'] ? $list['text'] : wordwrap($list['text'],$board['wwrap']); -new_reply_read_format ($list['text'], $list['html']); -macro_interwiki(); -wikify($list['text']); -$list['num'] = print_reply($table, $list); - -# ̺ ũ⿡ ٷ ѱ -$_width = preg_match ('/%/', $board['width']) ? '550' : $board['width']; -$title_width = $_width / 8; -settype($title_width,"integer"); -$list['title'] = wordwrap($list['title'],$title_width,"
\n",1); - -if($list['bofile']) { - $deldir = "./data/$table/{$upload['dir']}/{$list['bcfile']}"; - $delfile = "./data/$table/{$upload['dir']}/{$list['bcfile']}/{$list['bofile']}"; - - $hfsize = human_fsize($list['bfsize']); - $tail = check_filetype($list['bofile']); - $fileicon = icon_check($tail,$list['bofile']); - $down_link = check_dnlink($table,$list); - $list['attach'] = "". - "\"{$list['bofile']}\"". - " {$list['bofile']} - $hfsize"; +if ($list[url]) { + echo "\n" . + " \n" . + " \n"; +} - $tail = check_filetype($list['bofile']); - $preview = viewfile($tail); +if($list[bofile]) { + $hfsize = human_fsize($list[bfsize]); + $tail = check_filetype($list[bofile]); + $icon = icon_check($tail,$list[bofile]); + $down_link = check_dnlink($table,$list); + + echo "\n" . + " \n" . + " "; } -if($enable['dhost']) { - $list['dhost'] = get_hostname($enable['dlook'],$list['host']); - if($enable['dwho']) { - $list['dhost'] = "". - "{$list['dhost']}"; - } else $list['dhost'] = "{$list['dhost']}"; -} else $list['dhost'] = ""; - -if($board['rnname'] && preg_match("/^(2|3|5|7)/",$board['mode'])) - $list['ename'] = $list['rname'] ? $list['rname'] : $list['name']; -else $list['ename'] = $list['name']; - -if($list['email']) $list['uname'] = url_link($list['email'], $list['ename']); -else $list['uname'] = $list['ename']; -if($list['url']) { - if(preg_match("/^http:\/\//", $list['url'])) $list['uname'] .= " [" . url_link($list['url'], $_('ln_url')) . "]"; - else $list['uname'] .= " [" . url_link("http://{$list['url']}", $_('ln_url')) . "]"; +echo " + + + + + + + + +
$langs[d_no]$list[num]$langs[date]$list[date]
$langs[name]$list[name]$langs[d_ad]$list[dhost]
$langs[w_mail]$list[email]
$langs[ln_url]$list[url]
$langs[file]\n" . + " \n" . + " \"$bofile\"\n" . + " $list[bofile]\n" . + " \n" . + " - $hfsize\n
$langs[titl]$list[title]
+ + + + + +
+ + +$list[text] + + +
+ +
+ + $warning + +
+ +
+ + + + + +
+ + + + + + + + $langs[w_pass] +   + + +
+ +
\n + + +\n
+ +\n"; + +if ($board[img] == "yes") { + if ($color[theme]) $themes[img] = get_theme_img($table); + else $themes[img] = "images"; + echo ""; +} else { + echo " + + + + + \n"; } -if($board['super'] != 1 && $_SESSION[$jsboard]['id'] != $list['name']) { - if(!$board['mode']) { - $warning = $_('d_wa'); - # н尡 Խù ħ - if(!$list['passwd'] || $list['reyn']) $warning = $_('d_waa'); - $print['passform'] = $_('w_pass') . ":  \n"; - } else $warning = " "; -} else $warning = " "; - -# Page ش ̵ -$page = $page ? $page : 1; - -# н -$print['passform'] = "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "{$print['passform']}"; - -# Page ش ̵ -$page = $page ? "&page=$page" : "1"; - -sql_close($c); - -# Template file ȣ -meta_char_check($print['theme'], 1, 1); -$bodyType = 'delete'; - -$_focus = " onLoad=\"InputFocus('passwd')\""; -include "theme/{$print['theme']}/index.template"; +echo "\n
" . + "\"$langs[cmd_list]\"" . + "\"$langs[cmd_priv]\"" . + "\"|\"$langs[cmd_list]\"|\"$langs[cmd_priv]\"|\"
\n
\n
"; + +include "html/tail.ph"; ?> diff --git a/doc/en/Changelog b/doc/en/Changelog deleted file mode 100644 index 31a34091..00000000 --- a/doc/en/Changelog +++ /dev/null @@ -1,228 +0,0 @@ -** JSBoard 2.1 Changelog -** -** Maintainer : JoungKyun.Kim -** -** $Id: Changelog,v 1.65 2014-01-01 09:30:38 oops Exp $ - -------------------------------------------------------------------------------- -Version 2.1.0 - -Wed, Jan, 01 2013 -by JoungKyun.Kim - - fixed registed article with blank name, subject, context - -Wed, Oct, 24 2012 -by JoungKyun.Kim - - [#318355] fixed article posting on PHP 5.4 or magic_quotes_runtime = OFF - -Fri, Oct, 12 2012 -by JoungKyun.Kim - - [#318316] fixed load captcha image with wrong data - -Wed, Oct, 3 2012 -by JoungKyun.Kim - - [#301263] fixed unsupport checkdnsrr function before 5.3 on windows - -Wed, Jan, 25 2012 -by JoungKyun.Kim - - fixed miss check object url parameter on variable.php - -Sun, Nov, 22 2009 -by JoungKyun.Kim - - fixed missing captcha on board mode 6 - -Tue, Nov, 17 2009 -by JoungKyun.Kim - - fixed external XSS attack - http://oops.org/SERVICE/jsboard/read.php?table=jsboard_oopsQnA&no=52055 - -Sat, Nov, 14 2009 -by JoungKyun.Kim - - defenced xss attack on error popup windows - -Thu, Sep, 3 2009 -by JoungKyun.Kim - - fixed miss checked spam bot on SSL connection - -Mon, Aug, 24 2009 -by JoungKyun.Kim - - fixed wordwrap_js parse bug - -Tue, Aug, 18 2009 -by JoungKyun.Kim - - Implement wordwrap_js parsing - -Fri, Jul, 3 2009 -by JoungKyun.Kim - - fixed form size on Linux Firefox - -Thu, Apr, 16 2009 -by JoungKyun.Kim - - fixed missing string that start < and end > on feed - -Wed, Apr, 9 2009 -by JoungKyun.Kim - - RSS feed validator - - change print charset to utf-8 from local charset when support iconv - -Fri, Mar, 20 2009 -by JoungKyun.Kim - - fixed java script error on prelist - -Sun, Feb, 1 2009 -by JoungKyun.Kim - - fixed twice parsing problem when block start 0 on block_Devided function - - fixed lost last 1byte of first block on block_devided function - -Mon, Jan, 19 2009 -by JoungKyun.Kim - - fixed wrong old html format - -Wed, Dec, 30 2008 -by JoungKyun.Kim - - fixed lost input form contents when failed add or edit article - -Wed, Dec, 24 2008 -by JoungKyun.Kim - - use getElementById instead of document.all on print_keymenu - - change captureEvent to addEventListener preview java script - -Tue, Dec, 23 2008 -by JoungKyun.Kim - - changed reply format - - move previous page with b key on write/repay/edit page - -by WonKyu Park - - add jsboard wikify patch from http://ktug.kldp.org - -Sat, Dec, 13 2008 -by JoungKyun.Kim - - remove wrap property of textarea - force line breaking per one line on read page - - remove html write option - support html write basicaly. - must setting allow html tag. (use [] instead of <> like bb code) - [b]Bold[/b] - - support code block - no force line breaking on [code] ~ [/code] block - enable control with jsCodeBlock id on CSS for UI - -Thu, Dec 4 2008 -by JoungKyun.Kim - - fix no referer problem on document.location of IE - - prevent access without referer on write/reply page - - if case board['width'] has '%', fixed broken title on delete page - -Tue, Dec 2 2008 -by JoungKyun.Kim - - changed resize function of textarea - - support captcha. See also doc/en/README.CAPTCHA - -Tue, Aug 26 2008 -by JoungKyun.Kim - - block replay when article number of referer and number of parent - article is different. - -Sun, Jul 27 2008 -by JoungKyun.Kim - - support auto play attached mp3 file on Firefox - -Tue, Mar 4 2008 -by JoungKyun.Kim - - fixed rss wrong operation with ansi code or escape character - -Thu, Jul 19 2007 -by JoungKyun.Kim - - fixed rss print on IE7 - -Tue, Feb 27 2007 -by JoungKyun.Kim - - changed spam check algorithm - - changed text broswer rutine - -Mon, Feb 5 2007 -by JoungKyun.Kim - - support guid tag in rss feed - -Fri, Jul 14 2006 -By JoungKyun.Kim - - add Opera browser information - - support attach file encoding with RFC2311, RFC2047, RAW per browser - - encoding inline filename - -Thu, Jul 13 2006 -By JoungKyun.Kim - - added check mimetype of download file with fileinfo extensoin - - fixed download attach file that file name include white space - -Tue, Jul 4 2006 -By JoungKyun.Kim - - fixed write error that jaboard is recognized spamer - - fixed unit error of javascript - -Sun, Apr 30 2006 -By JoungKyun.Kim - - fixed XSS attack security problems on login.php with $table variables - thanks Alexander - -Wed, Apr 18 2006 -By JoungKyun.Kim - - fixed print bug with only forcing jpeg format on image.php - -Mon, Feb 27 2006 -By JoungKyun.Kim - - fixed regular expression delimiter bug - -Wed, Oct 26 2005 -By JoungKyun.Kim - - fixed wrong value of session limit for keep in POST data - -Wed, Oct 12 2005 -By JoungKyun.Kim - - check null nor not null in name/subject/passwd of article - when regist article - - mouse focus is defaultly located in password field -Wed, Oct 5 2005 -By JoungKyun.Kim - - added notify filtered string by spam check - -Mon, Aug 29 2005 -By JoungKyun.Kim - - update line design parser of theme config - -Thu, Aug 18 2005 -By Jang Hyun Sung - - Add sessionInit function (check.php) - - fix parse error in admin_head.php - - fix parse error in mkdir_p function - -Sun, Aug 14 2005 -By Jang Hyun Sung - - delete comment count bold function - -Sat, Aug 13 2005 -By JoungKyun.Kim - - changed form of changelog - - fixed don't incresed comment regist number - - add print_p function on exec.php - -Sat, Aug 13 2005 -By Jang Hyun Sung - - Move session temp directory for jsboard (config/jsSessTMP) - - Html tag typo fix in user.php - - Fixed miss parsing after logout url in sample config.php file - on util/sample/data/config.php - - Fixed image link error in write.theme - - Add default value check for theme select in installer - - Use bold charactor for comment count in list.php if article has comments - that posted in last 12 hours - - Created doc directory for documentation - -Fri, Jun 24 2005 -By JoungKyun.Kim - - start jsboard 2.1 tree - - changed language pack architecture - - changed theme architecture - - support sqlite / pgsql / mysql / mysqli - - removed web interface installer - - added shell script installer diff --git a/doc/en/README.CAPTCHA b/doc/en/README.CAPTCHA deleted file mode 100644 index 2685f2ec..00000000 --- a/doc/en/README.CAPTCHA +++ /dev/null @@ -1,22 +0,0 @@ -$Id: README.CAPTCHA,v 1.2 2009-11-16 21:52:47 oops Exp $ - -JSBoard captcha Configuration - -1. create captcha database - - move captcha, and execute make_key.php with php cli binary. - shell> php make_key.php - - if you don't have php cli binary, use follows method with web access. - shell> chmod 777 captcha - shell> chmod 644 captcha/make_key.php - browser> http://domain/jsboard/captcha/make_key.php - After access with web, confirm whether create or don't create captcha-number.db. - If captcha-number.db file is created, go next with follows. - shell> chmod 600 captcha/make_key.php - shell> chmod 755 captcha/ - -2. add $board['captcha'] variable on config/global.php. Value of $board['captcha'] - is created file name (captcha-number.db) except file path. - -On login mode, captcha don't print! diff --git a/doc/ko/Changelog b/doc/ko/Changelog deleted file mode 100644 index 14967962..00000000 --- a/doc/ko/Changelog +++ /dev/null @@ -1,232 +0,0 @@ -** JSBoard 2.1 Changelog -** -** Maintainer : -** -** $Id: Changelog,v 1.64 2014-01-01 09:30:38 oops Exp $ - - -------------------------------------------------------------------------------- - 2.1.0 - -2014.01.01 -by - - ̸, , ڷ ϰ - -2012.10.24 -by - - [#318355] PHP 5.4 magic_quotes_runtime = OFF ۵ ذ - -2012.10.03 -by - - [#318316] captcha image ߸ Ǵ - -2012.10.03 -by - - [#301263] windows 5.3 checkdnsrr Լ ϴ - ذ - -2012.01.25 -by - - variable.php URL parameter üũÿ object parameter ɼ - - -2009.11.22 -by - - Խ 6 Ͻ captcha ۵ ʴ - -2009.11.17 -by - - ܺο JSBoard link XSS - http://oops.org/SERVICE/jsboard/read.php?table=jsboard_oopsQnA&no=52055 - -2009.11.14 -by - - ޽ popupâ XSS ɼ - -2009.09.03 -by - - SSL ٽÿ ϱ ǴܵǴ - -2009.08.24 -by - - wrodwrap_js parsing - -2009.08.18 -by - - wrodwrap_js parsing ǰ - -2009.07.03 -by - - Linux Firefox form size - -2009.04.16 -By - - Feed <> ׿ ڿ ȵǴ ذ - -2009.04.09 -By - - RSS feed validator - - iconv ɽÿ RSS utf8 ϵ - -2009.03.20 -By - - prelist javascript - -2009.02.01 -By - - block_devided function ش 0 2 Ľ Ǵ - - block_devided function ù° 1byte ߸ - -2009.01.19 -By - - old html format ߸ µǴ - -2008.12.31 -By - - ۼ/ ÿ Ե ó ߰ - -2008.12.24 -By - - print_keymenu document.all docuemtn.getElementById 켱 - ϵ - - captureEvent addEventListener - -2008.12.23 -By - - reply format - - write/edit/reply page b key ̿ؼ ̵ - -by ڿ - - jsboard wikify patch (from http://ktug.kldp.org) - -2008.12.13 -By - - textarea wrap ɼ - Ͻÿ breaking ϴ view page ϵ - - html ɼ - ⺻ html ֵ - 㰡 HTML tag . (BB code ó <> [] ) - [b] ۾[/b] - - code block - [code] ~ [/code] - CSS jsCodeBlock id design - -2008.12.04 -By - - IE document.location referer ʴ - - write/reply referer - - board['width'] % ŸƲ - - -2008.12.02 -By - - textarea ũ - - captcha . doc/ko/README.CAPTCHA - -2008.08.26 -By - - ۼÿ referer ۹ȣ θ ȣ ٸ ó - -2008.07.27 -By - - IE mp3 ÷ ڵ - -2008.03.04 -By - - RSS Ƚ ڳ ESCAPE ASCII ڵ ½ÿ Ľ̾ȵǴ - -2007.07.19 -By - - IE7 RSS - -2007.02.27 -By - - spam üũ ˰ - - textBrowser ó - -2007.02.05 -By - - RSS feed guid tag - -2006.07.14 -By - - Opera ߰ - - ÷ Ʈֽ encoding (RFC2231,RFC2047,RAW) - - ÷ inline link encoding - -2006.07.13 -By - - php stream ̿ ٿε, fileinfo extension ̿Ͽ mime type - - ÷ ٿε Ͽ 鹮ڰ - -2006.07.04 -By - - Ͻ ϱ óǴ - - ڹٽũƮ - -2006.04.30 -By - - login.php $table ȭ XSS attack ɼ - -2006.04.18 -By - - image.php JPEG µǴ ׼ - -2006.02.27 -By - - regular expression delimiter - -2005.10.26 -By - - ϱ session limiter ߸ - -2005.10.12 -By - - ۾ ÿ, ̸//ȣ ʵ null üũ javascript - - ȣ ʵ忡 ⺻ 콺 Ŀ ġ - -2005.10.05 -By - - ͸ ڿ ˷ְ - -2005.08.29 -By - - ׸ config ļ - -2005.08.15 -By - - sessionInit Լ ߰ (check.php) - - admin_head.php parse - - mkdir_p Լ parse - -2005.08.14 -By - - ֱ 12ð ڸƮ ó - -2005.08.13 -By - - changelog - - comment Ͻÿ comment count ö ʴ - - print_p Լ ߰ - -2005.08.11 -By - - 丮 php 丮 JSboard - 丮 - - user.php html ũ - - Խ sample config α׾ƿ ̵ ũ Ľ̿ - - theme ۾ ̹ ũ - - installer ׸ κ default - - ڸƮ ÿ ֱ 12ð ޸ ڸƮ ڸƮ īƮ - ó - - ȭ doc 丮 - -2005.07.24 -By - - jsboard 2.1 Ʈ - -  - - ׸ - - sqlite / pgsql / mysql / mysqli - - web ġ - - ġ ũƮ - diff --git a/doc/ko/README.CAPTCHA b/doc/ko/README.CAPTCHA deleted file mode 100644 index 99615abe..00000000 --- a/doc/ko/README.CAPTCHA +++ /dev/null @@ -1,22 +0,0 @@ -$Id: README.CAPTCHA,v 1.2 2009-11-16 21:52:47 oops Exp $ - -JSBoard captcha - -1. captcha database - - captcha directory ̵Ͽ php cli ̿Ͽ database Ѵ. - shell> php make_key.php - - php cli 쿡 ̿Ѵ. - shell> chmod 777 captcha - shell> chmod 644 captcha/make_key.php - browser> http://domain/jsboard/captcha/make_key.php - captcha 丮 captcha-number.db Ǿ Ȯ Ѵ. - Ǿ Ѵ. - shell> chmod 600 captcha/make_key.php - shell> chmod 755 captcha/ - -2. config/global.php $board['captcha'] Ѵ. δ - ϰ ̸ Ѵ. - -α 忡 captcha µ ʴ´. diff --git a/doc/ko/todo b/doc/ko/todo deleted file mode 100644 index 4e3a2ddd..00000000 --- a/doc/ko/todo +++ /dev/null @@ -1,8 +0,0 @@ -$Id: todo,v 1.2 2009-11-16 21:52:47 oops Exp $ - -JSBoard 2.1 todo list - -1. ݾƮ ȯ -2. upgrade db convert -3. installer mysql 4.1 charset ߰ -4. gallery mode (ұ ..) diff --git a/edit.php b/edit.php index a6379242..367a095e 100644 --- a/edit.php +++ b/edit.php @@ -1,82 +1,199 @@ - "; -else $passment = ""; +# н尡 Խù̳ ġ н带 ؾ +if(!$list[passwd] || !$enable[edit] || !$cenable[edit]) { + if (!$enable[edit]) $passment = "$langs[e_wpw]"; + else $passment = "$langs[b_apw]"; +} -if($board['notice']) print_notice($board['notice']); +if(!$adminsession || $cenable[edit]) + $passment = "$passment:  "; +else $passment = ""; -if($list['html']) $html_chk_ok = " CHECKED"; -else $html_chk_no = " CHECKED"; +if($board[notice]) print_notice($board[notice]); + +$wrap = form_wrap(); + +if($list[html]) $html[1] = " CHECKED"; +else $html[0] = " CHECKED"; + +# Browser Lynx϶ multim form +$agent = get_agent(); +if($agent[br] == "LYNX") $board[formtype] = ""; +else $board[formtype] = " ENCTYPE=\"multipart/form-data\""; + +# image menu ҽÿ wirte ȭ list,read ȭ +if ($board[img] == "yes" && !eregi("%",$board[width])) + $board[width] = $board[width]-$icons[size]*2; +else $size[text] += 4; + +echo " +
+ +
+ + + + + + "; + +if ($view[email] == "yes" || $list[email]) { + echo "\n" . + "\n" . + "\n" . + "\n"; +} -# Browser text browser ϶ multim form -if($noup == 1) $board['formtype'] = ""; -else $board['formtype'] = " enctype=\"multipart/form-data\""; +if ($view[url] == "yes" || $list[url]) { + echo "\n" . + "\n" . + "\n" . + "\n"; +} -if($list['bofile']) { - $hfsize = human_fsize($list['bfsize']); - $tail = check_filetype($list['bofile']); - $icon = icon_check($tail,$list['bofile']); +echo " + + + + "; + +if($list[bofile]) { + $hfsize = human_fsize($list[bfsize]); + $tail = check_filetype($list[bofile]); + $icon = icon_check($tail,$list[bofile]); $down_link = check_dnlink($table,$list); + + echo "\n" . + " \n" . + " \n". + " \n"; } -if ($agent['br'] == "MSIE" || $agent['nco'] == 'moz') - $orig_option = " onClick=fresize(0)"; +if($upload[yesno] == "yes" && $cupload[yesno] == "yes" && $agent[br] != "LYNX") { + echo "\n". + " \n". + " \n"; +} + +echo " + + + "; -# Page ش ̵ -$page = $page ? "&page=$page" : ""; - -$print['passform'] = "\n". - "\n". - "\n". - "\n"; - -if($disable) { - $list['rname'] = !$list['rname'] ? "" : "\n"; - $print['passform'] .= "\n". - "{$list['rname']}". - "\n". - "\n\n". - "\n\n"; +if ($agent[br] == "MSIE" || $agent[br] == "MOZL6") { + $orig_option = " onClick=fresize(0)"; + echo " + + + "; +} -sql_close($c); +echo " + + + + + +
$langs[w_name]$langs[w_name_m]
$langs[w_mail]$langs[w_mail_m]
$langs[ln_url]$langs[w_url_m]
HTML + + $langs[u_html] + $langs[un_html] + + $langs[w_html_m]
$langs[file]\n" . + " \n" . + " \"$list[bofile]\"\n" . + " $list[bofile]\n" . + " \n" . + " - $hfsize\n$langs[fdel]\n". + " \n". + " \n". + "
$langs[fmod]\n". + " \n". + "
$langs[titl]
Textarea size config + +\n"; -# html tag 츦 -$list['text'] = htmlspecialchars($list['text']); + # ڵ忡 ư text ó Ұ ̹ ó + form_size_button($langs[code]); + + echo "
+ + + +
+ + $wrap[ment] + +
+ +
+ + + + + +
+ + + + + $passment +   +   + + +
+ +
\n + + +\n
+ +\n"; + +if ($board[img] == "yes") { + if ($color[theme]) $themes[img] = get_theme_img($table); + else $themes[img] = "images"; + echo ""; +} else { + echo " + + + + + \n"; +} -$print['preview_script'] = << - var tarea_width = '{$board['width']}'; - var tarea_cols = '{$size['text']}'; - -EOF; +echo "\n
" . + "\"$langs[cmd_list]\"" . + "\"$langs[cmd_priv]\"" . + "\"|\"$langs[cmd_list]\"|\"$langs[cmd_priv]\"|\"
\n
\n
"; -# Template file ȣ -meta_char_check($print['theme'], 1, 1); -$bodyType = 'edit'; -include "theme/{$print['theme']}/index.template"; +include "html/tail.ph"; ?> diff --git a/emoticon/icon1.gif b/emoticon/icon1.gif deleted file mode 100644 index b5e71539aeee1878c43d849b40887935b43fbce9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmZ?wbhEHbfB2*-kigN+>8A~6RJFtTv43o=+d14GfG7Yz!Vu9SnwPjr|;2W_vgmsxmMd z@m`5Ju%WSeBJ0F|HVi>8yyh@4aTuH^eaJK;YPT5AslddB4KXX_G_u3A8E4w_Zcv>O z$`HgPD6I8lmVpAoiOdYl4BSBT892;A4n1(-U~{9e8js5ah6ZK^0R@JDjE09zP5equ g9SIK_Tze$tMOJhq9CT&Z;OC3kIf=2kfq}sq0MUGFe*gdg diff --git a/emoticon/icon10.gif b/emoticon/icon10.gif deleted file mode 100644 index b54cd0f9469ae025d7b709f03432eebc30a615b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmZ?wbhEHbF%wyNW~cLKD&UCI$nR5;ND%vI-Wd-jWyk3?)cs#h5SaRcb z<630Vh0DdO*DN@3I&r+j;lO6cW@FxpbsnpgxjD=hEEddWW@nk6=9vkT38N9c9$|_n zI&?ZFCKw-QY^+@Uul_%ySKX`8rtZ=3vVfYiz`ZPQ(hp6MMvN`1fzL+c#5p7&s znUD}kNM$>vs;p`uQbWbmgs5aH+4;_w@B7RhnXh3RpYt`T1&l- H3}f&YWhH>| diff --git a/emoticon/icon13.gif b/emoticon/icon13.gif deleted file mode 100644 index 167a08b9b1cbd4873e2018e5d68e4bed0d8dd719..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmZ?wbhEHb&C0EZuovNFZYOtE}Hdy(j6)=D!|7vS6C;2+SezoClpeGqY*L2TLT6IBO?qCGc-i* zIP*C7|3dvASpn!#=e6>mQ0RW6|EDg*s7WvCs>rFSG&U&fzx3&z@%#w2s%fBL(BQ9)DVkro2Q&b5ahz4sKQ)6o=v9<6zpKaN6?+o_gxB+WXBGr-;a>34Y)M-r)(-a0j<=4VQ2M z=a2#kPT>TO;SdfW3Hz`IyRZY>umx)nhgDdD7(^ig3lIPw%zy`6;Dj+4g%NOo9c<7C z^-v31P=S&>`2zn?pz&KM026IFSMCYqE4byFuf(`CD|c%&Z_>F;B~$&@Noy&gRNdmO zew$49mMb*v@|wybYp`CwsIPGph9lYD;da}Nu6RD%J#dwYZUp^R2A}c1Cp8%FYMwSe zI}1a8pCMz|5cn;)CQJnC$PQwC&VkT$rJM>-MC3 zre}V5@=eo>3d?&{xYgr&)cTgr= zX6MfT?c4shZ~x!4?tk5?|24}&2&kZB?*F3M|C8DtCAB?BXt@*Dcq^{yR$SvvznqVOE4pBUJtIy3}SXp6ObI0$aN zm=oasgjZF=mrZyQlhvFguI*imi?kDVc=>H)o_x^Cb*m7ok*Mruw~Hc8_soQqUDZw1 zUG;^fU8RKh1b9r$OnC(O1SMS?9J`lWfXIiY8AtZ6%0$3GAv!nuxK&E;>8RL7cnec$S`>d!;~ouZS4&0 z?F^Iv#h)yUApJTZ0^}zKw#g0+0VlM?+C3Z!QGn7(<)<&>+x+lC zj$X{7jNld>71zEM)>~7$c$gQ@*ys?cF2X0o!_vkh#4D=isv<1G&DzGo#w8)F;;JUA zBgj6PkzYqv-IZBUM}d=rm4j1GM=`)lNmECTpGi<&N2Az9OMIK#-i+7-N{X`5vWn5i S<8*vf)#^Pjx_LS>SOWkE4sT}w diff --git a/emoticon/icon6.gif b/emoticon/icon6.gif deleted file mode 100644 index 43cf2125e64d3d306fd2a60fb425c2e4b8cda9cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1264 zcmZ?wbhEHb79a*vAp;NmU zYmJCOg2UlSa?W`^JB1dXnkE@4HD$)eWUrZ``Bgp^LMey3*s}R}II!6ehSvtGEgA`l z?yY=`3>_X0OI-U|*mx9Heo}GomyIvlqamnvwoNi!YRyW)#7^eZPYQ$kx z3@)n{HMH{S3Mo_wGBk9s*ffRQxcJz8vb=s1i$TJHlhZT}+j=yOlAU|B@}uUQD1PiW z)!uy470E417iV)8rujr%TyUY0krA8U;;>lAqEjL<@xXyD28M(y8WR;7dnE0fY$61f zcur<><&$72Np#^Jj+l9~eG-V0izY;muoy zw{IDqzhHR!l;QpZh8s5-Zr)_Laf9LNb%yij8IBxdIDCZR@L`7Cdl+`?V%WZeVaE=J z?b{i)ZDZK9nPJl=hDD1R7A<0!Gml~3JcbFA7$!|(m@t8X5}^2#g%PA*2SkAU#K6|# z&=7D!ORU|)!O&EyC&*nz`{_a-72z%hs}w=ISv<>{PG&fjZ8=G2z-^SsiIEb~X;qDp{>89R*b#89p9fX&p8B jtbB2`Ts83+7i|SuMkz*FdF>6c!M^^1o?bbgjttfSo3d+7 diff --git a/emoticon/icon8.gif b/emoticon/icon8.gif deleted file mode 100644 index d8d5ae7ce517d38a25dfb3ae326313e9a6d92a7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 376 zcmaivJ4-?V07gGUO{shMi7Z09L7}$p%5;ExCkH+0C^5S36g}*55FI7H(W0K%is^4 z)`>J7b)LWs8c%E+W0JEaqkZ7;iEiHYy?5>FWIU%$zOo?os+2d|^OEtw%mf(xI3_6o5=1Wfv6EZ;$o5f(Udj)d6wO_;$^7?o} tj!0p15+feNFrjg*DGBwEQl;M8+?vv?6LN(nyXw~K^pkeWvd1!q**_XSb%+1} diff --git a/emoticon/icon9.gif b/emoticon/icon9.gif deleted file mode 100644 index 44cd75a8f3e82532c679c9f9030cb0acae007a26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmZ?wbhEHbZMJXVzSckb^&u zI;d9#Tl6ug&QRQ)b@$m!?b@!QIp-^SZks5ad92Kv?sWAn>!zzls@`0}j11NQS42f# diff --git a/error.php b/error.php index 72ff35c9..b20315f6 100644 --- a/error.php +++ b/error.php @@ -1,37 +1,50 @@ - - - - - -JSboard <?=$version?> - <?=$title?> - - +if($notice) { + $title = "$langs[er_msg]"; + $image = "images/t.gif"; +} else { + $title = "$langs[er_msgs]"; + $image = "images/e.gif"; +} + +echo " + + + + +JSboard $version - $title + + - + - 
-
- - - - - - -
- -

-
-
-
-
+ + + + + + +
+ $str +
+ +
- - + +\n"; +?> diff --git a/form.php b/form.php index 4615f524..15cd1b33 100644 --- a/form.php +++ b/form.php @@ -1,37 +1,129 @@ -". - "\"\"". - "\n"; -} elseif ( $mode == 'version' ) { - $print['head'] = "Version Numbering"; - $print['body'] = "\n". - "\n". - "
-= [ JSBoard v{$board['ver']} ] =-
\n"; -} + +\nalert('Don\'t exist global\\nconfiguration file');\n" . + "history.back();\nexit;\n\n"; +} else { include "config/global.ph"; } + +if(!$mode) { + include "include/lang.ph"; + include "include/get.ph"; + include "include/print.ph"; + include "include/error.ph"; + include "include/sql.ph"; + include "include/sendmail.ph"; + include "include/tableratio.ph"; + + $kind = "formmail"; + if($board[notice]) print_notice($board[notice]); + + $wrap = form_wrap(); + + # image menu ҽÿ wirte ȭ list,read ȭ + if ($board[img] && !eregi("%",$board[width])) + $board[width] = $board[width]-$icons[size]*2; + + if(trim($table) && trim($no)) $sinfo = get_send_info($table,$no); + else print_error("Some problem in \$table or \$no value"); + + echo " + +Jsboard $version - [Form Mail] + + -if ( $mode ) { - if ( ! $print['theme'] ) - $print['theme'] = "EN-default"; + - meta_char_check ($print['theme'], 1, 1); - $bodyType = 'ext'; - include "theme/{$print['theme']}/index.template"; +
  • JSBoard FormMail Service +

    + + + +
    + + + + + + + + + + + + + + + + + + + +
    To$sinfo[email]
    From
    $langs[name]
    $langs[titl]
    + +
    + Scripted by JoungKyun Kim +
    + +
    + + + + + +
    + + + +   +   + + +
    + +
    \n"; +} else { + if($mode == "photo") { + include "include/lang.ph"; + include "include/get.ph"; + include "include/error.ph"; + include "include/check.ph"; + + meta_char_check($table,0,1); + meta_char_check($f[c]); + meta_char_check($upload[dir]); + upload_name_chk($f[n]); + + $pr[head] = "VIEW ORIGINAL IMAGE"; + $pr[body] = "". + "". + "\n"; + } elseif($mode == "version") { + include "include/version.ph"; + $pr[head] = "Version Numbering"; + $pr[body] = "JSBoard v$board[ver]"; + } + + echo "\n". + "\n". + "JSBoard - $pr[head]\n". + "\n". + "\n". + "$pr[body]"; } ?> + + + diff --git a/html/head.ph b/html/head.ph new file mode 100644 index 00000000..f236678c --- /dev/null +++ b/html/head.ph @@ -0,0 +1,68 @@ + + + +Jsboard <? echo $version ?> - <? echo get_title() ?> + + + +\n"; +} +?> + + +\n"; + +if (eregi("[^a-z0-9_\-]",$table)) + print_error("Can't use special characters except alphabat, numberlic , _, - charcters"); + +if(file_exists("data/$table/html_head.ph")) { + @include "data/$table/html_head.ph"; +} else if(file_exists("html/head2.ph")) { + @include "html/head2.ph"; +} +?> diff --git a/html/head.php b/html/head.php deleted file mode 100644 index a0d5f87b..00000000 --- a/html/head.php +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/html/head2.ph b/html/head2.ph new file mode 100644 index 00000000..d0e1dc5e --- /dev/null +++ b/html/head2.ph @@ -0,0 +1,4 @@ + + + + diff --git a/html/nofile.php b/html/nofile.php deleted file mode 100644 index 34f85534..00000000 --- a/html/nofile.php +++ /dev/null @@ -1 +0,0 @@ - diff --git a/html/tail.ph b/html/tail.ph new file mode 100644 index 00000000..9b6b9b26 --- /dev/null +++ b/html/tail.ph @@ -0,0 +1,9 @@ + + + + diff --git a/html/tail.php b/html/tail.php deleted file mode 100644 index e60ae825..00000000 --- a/html/tail.php +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/html/tail2.ph b/html/tail2.ph new file mode 100644 index 00000000..703773c9 --- /dev/null +++ b/html/tail2.ph @@ -0,0 +1,4 @@ + +

    +Copyleft 1999-2000 by + diff --git a/image.php b/image.php deleted file mode 100644 index 7b82f0b3..00000000 --- a/image.php +++ /dev/null @@ -1,76 +0,0 @@ - diff --git a/images/back.gif b/images/back.gif new file mode 100644 index 0000000000000000000000000000000000000000..c466369fad49fc2053587ce7c3b7c8f5e0d574c3 GIT binary patch literal 305 zcmZ?wbhEHb6k!lyIKsd%YgXODh3!k0bT3=hw|sg3+O^ZSZe6%%&&orGHk~}V>*B>D z*RP+sd-uwdCwJexdH(+W>rbEF|NQy=`}eOufByLX{oDWl{~7QC9gr-@E(X?Z38sN5 zne(oMxHcQ?DUjJMsA?0m?)`7&3C$j<79}Q9E=t@Ql5S$hA0NCB!K2FjY=a;N!@heC zhXM~~Y4bKSCKO2U#j_sqku=ffGIcoUae$E{HL|okGn>7ZB`3VOESfDbn}e&UDLpeG zn}LPhsiaSoXBOKcj`+s;t&6$p;#mb(I`go`hp^1z+KK4s8Qs-4QPOy%s-?(a4FJL}bi4on literal 0 HcmV?d00001 diff --git a/images/basic/back.gif b/images/basic/back.gif new file mode 100644 index 0000000000000000000000000000000000000000..c466369fad49fc2053587ce7c3b7c8f5e0d574c3 GIT binary patch literal 305 zcmZ?wbhEHb6k!lyIKsd%YgXODh3!k0bT3=hw|sg3+O^ZSZe6%%&&orGHk~}V>*B>D z*RP+sd-uwdCwJexdH(+W>rbEF|NQy=`}eOufByLX{oDWl{~7QC9gr-@E(X?Z38sN5 zne(oMxHcQ?DUjJMsA?0m?)`7&3C$j<79}Q9E=t@Ql5S$hA0NCB!K2FjY=a;N!@heC zhXM~~Y4bKSCKO2U#j_sqku=ffGIcoUae$E{HL|okGn>7ZB`3VOESfDbn}e&UDLpeG zn}LPhsiaSoXBOKcj`+s;t&6$p;#mb(I`go`hp^1z+KK4s8Qs-4QPOy%s-?(a4FJL}bi4on literal 0 HcmV?d00001 diff --git a/images/basic/conjunct.gif b/images/basic/conjunct.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3ea292450b2b4e3439a08312b49ecc6b1d6a29e GIT binary patch literal 286 zcmZ?wbhEHb6k!lyIKsd%YgXODh3!k0bT3=hw|sg3+O^ZSZe6%%&&orGHk~}V>*B>D z*RP+sd-uwdCwJexdH(+W>rbEF|NQy=`}eOufByLX{oDWl{~7QC9gr-@E(X@c38sN5 zne(oMxHcQ?DUjJMsA?0m?)`7&3C$j<9y(%?4xSe;uCNdZa0@o_5K`uJV-&DpV3@#l z)hb3~8^clIg9722%&9jUekf^mHW%%jjc*Z6 zoZQLI7SG9>mOI-yfTgUVxwqDvdwCPvto#ml-T+RnmUgEeKR)+-bDP6fb|N}@MyK>m Nlr+w(YAG^U0{{*9Z%qII literal 0 HcmV?d00001 diff --git a/images/basic/delete.gif b/images/basic/delete.gif new file mode 100644 index 0000000000000000000000000000000000000000..0e14e5b61f0c6329e46f39be8762e57ef292c787 GIT binary patch literal 301 zcmZ?wbhEHb6k!lyIKsd%YgXODh3!k0bT3=hw|sg3+O^ZSZe6%%&&orGHk~}V>*B>D z*RP+sd-uwdCwJexdH(+W>rbEF|NQy=`}eOufByLX{oDWl{~7QC9gr-@E(X?338sN5 zne(oMxHcQ?DUjJMsA?0m?)`7&3C$j<9y(%?4krx`Wmrh^ur4v2!ZYbG8{>heVj_I5 zN4wUVh{Spz(7|!JIqOMp5KGx{GHL2Vi7#KMOctY3Ki6*w@3-WRc?00Z- cJL|pH+~$&%orsQ}(M^35C5?NkT8a$T0L1!l;{X5v literal 0 HcmV?d00001 diff --git a/images/basic/delete_b.gif b/images/basic/delete_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..2ecc68996144506750361356ef8df30124ca4a2a GIT binary patch literal 297 zcmZ?wbhEHb6k!lyIKsfNfB&96dv=~YdF<%XLr0DrJbd`Tp+ox*9N2sN_RZ_puU@)z z;oP}12M+A}{{7qAw{PCOdHwqJtCufdJb(V|$&<$q9^C)`|NrmbzkmJu_4Vu5PoF+9 zU;rJE2*@r5)^!P~u_>AJrmG6EJ=|vyBcQCX@JFlYlaC<>76fD{eo=7nK60?fMT3|9 zL((3Z38Kdp4m{=3ko0P;VzJV=+vXtP;o^36b>+pSE&?&uH@kW-Ff)sAWHj(q7m140 zb9c2c3bsdZbqjLVGm1=f=!)UyED9IF^w>ni+I5vidlUFc! njYDE{z8Ie{?><|5=hL2{W|kV(nmUG8^^LWZFKB2fGFSru<(`46 literal 0 HcmV?d00001 diff --git a/images/basic/down.gif b/images/basic/down.gif new file mode 100644 index 0000000000000000000000000000000000000000..32fe9f6bca9297acc52f39c10f8b4f36aa4ea7a5 GIT binary patch literal 258 zcmZ?wbhEHb6k!lyIKsd%YgXODh3!k0bT3=hw|sg3+O^ZSZe6%%&&rc0cU`=AvWtPWT|w11C3D_n z7sqCUJq0qmFQ`}qu6w^*c>*&>s)vqPUMji!@i(X#MXC)4GK7O_EC(H46mJmj#vf4}+o)9kAa#xNZHn(0E0Y*mtNp1Bm i+-Wl%T729*%q(n{TiOZh=ozikH&N2qtg5BRU=0A~$Y$&S literal 0 HcmV?d00001 diff --git a/images/basic/edit.gif b/images/basic/edit.gif new file mode 100644 index 0000000000000000000000000000000000000000..269fb95292ebc2094092137d67075c86292c6b50 GIT binary patch literal 293 zcmZ?wbhEHb6k!lyIKsd%YgXODh3!k0bT3=hw|sg3+O^ZSZe6%%&&orGHk~}V>*B>D z*RP+sd-uwdCwJexdH(+W>rbEF|NQy=`}eOufByLX{oDWl{~7QC9gr-@E(X?B38sN5 zne(oMxHcQ?DUjJMsA?0m?)`7&3C$j<9y(%?4xE9B9wt%~6qf`}{zbly;X}ly16;I*b`RO@J7eRux^@B!?%2ezhK^sg>FZ+lgw>S WS=ou`=owwqH&N2KrmCgLU=08gXm+gt literal 0 HcmV?d00001 diff --git a/images/basic/edit_b.gif b/images/basic/edit_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..e129a017e650207f82506f36d61467a3de165d8c GIT binary patch literal 289 zcmZ?wbhEHb6k!lyIKsfNfB&96dv=~YdF<%XLr0DrJbd`Tp+ox*9N2sN_RZ_puU@)z z;oP}12M+A}{{7qAw{PCOdHwqJtCufdJb(V|$&<$q9^C)`|NrmbzkmJu_4Vu5PoF+9 zU;rJE2*@r5)@2E)u_>AJrmG6EJ=|vyBcQCX@JFlYlaC<>76fD{eo=5d#q_Yiq=DD{ zY0@5<365;a2cD`aU4CVHBSL4##FHwYmdG^=8&99KQlTMFdz+Kw9A;r&$>zj-2R_F7 z*o4+9M?s$Y96phXq-s8H=3+rft={DJE|DcYl?z2@#tL(Ya3w6C5gi-Dv|+lV*B>D z*RP+sd-uwdCwJexdH(+W>rbEF|NQy=`}eOufByLX{oDWl{~7QC9gr-@E(X?>38sN5 zne(oMxHcQ?DUjJMsA?0m?)`7&3C$j<9RU*3d>kn|q!?6vSQ{7^Bt&?Z9r2WOXb)N` zy83C=Ozs8?N4dQDXWDkHib%QpEPrXBfc)tKXFdkb683V@{Mahduu%5g&PtzNwoo>9 zzJ_j}=4r{iJhQseor_pQSvlDmxhFM>CWUTh@Lp2o7QyQ=Wr>rs_c9*0b-pU*HYcs@ UM0E6wF6f&mX*B>D z*RP+sd-uwdCwJexdH(+W>rbEF|NQy=`}eOufByLX{oDWl{~7QC9gr-@E(X?(38sN5 zne(oMxHcQ?DUjJMsA?0m?)`7&3C$j<9y(%?4krZ?Gn7PljxAE0!ZYcxs{+G|B3>?+ zqg`uFW;HM=2fold7JkYhGH}5`cIR+L{o7yJ(sLOEYKuzJt611s7#M5Xie0K=`}(j12=M@m-<`Up@-t6Rd c+S$X*!seo-orsQ}(G7hQC5^kPT8a$T0Id^t2LJ#7 literal 0 HcmV?d00001 diff --git a/images/basic/reply_b.gif b/images/basic/reply_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..c391970fc9b11a3bd2d0bfa86076f24cc78a8523 GIT binary patch literal 296 zcmZ?wbhEHb6k!lyIKsfNfB&96dv=~YdF<%XLr0DrJbd`Tp+ox*9N2sN_RZ_puU@)z z;oP}12M+A}{{7qAw{PCOdHwqJtCufdJb(V|$&<$q9^C)`|NrmbzkmJu_4Vu5PoF+9 zU;rJE2*@r5*0l+#u_>AJrmG6EJ=|vyBcQCX@JFlYlaC<>76fD{eo;7ZBx&XX7bW5L zS4n$hCQRjQ7JN}8KErF*|YM{p-m@G?z(vK$o1=I z?%uufNh0Re*J7FC?qci#@ MN*WhcwG*B>D z*RP+sd-uwdCwJexdH(+W>rbEFfBg9F=g;rozkmJt^T+q^-~Rvq&wv}~fTTcnF|c+l za1Bk#oF|&<*=(?jH+b}B{0%$dj7r*C4jE#rPelT7rnd{O7@WX`&1Mgg%VG2Yg6w$9=tA(q~B p?xvQhZGsa^y~8HP&3E%Kv#?oVX(y_qXS815L`h?ds+J;yH2^`}YZL$g literal 0 HcmV?d00001 diff --git a/images/basic/write.gif b/images/basic/write.gif new file mode 100644 index 0000000000000000000000000000000000000000..aad4caabc518dfbb1b675d9d4901c052f72d6790 GIT binary patch literal 321 zcmZ?wbhEHb6k!lyIKsd%YgXODh3!k0bT3=hw|sg3+O^ZSZe6%%&&orGHk~}V>*B>D z*RP+sd-uwdCwJexdH(+W>rbEFfBg9F=g;rozkmJt^T+q^-~Rvq&wv}~fTTcnF|Zz6 z;2N5eIZrgzv)N!zfz0k8Rh!^-?|&;#VD3!y&=HF~&^b{<$B*r#Yx2f`2#Fxh#}fiv z7EC?p63D76wM1W(GE{e7?FQzU(x%w6r$X zo`fV`uF}b=1q@ugy}|rew~Wt}4X#aGybpfU?5EA5%r2d<;3TARt5Wi^AarUKNIM zd=om8jTVL|1$nzPE=ZUY(4`>Y5uwq{;_A%FGwXOu)0_^46L-s){lWY@X5yL1Jz*B>D z*RP+sd-uwdCwJexdH(+W>rbEF|NQy=`}eOufByLX{oDWl{~7QC9gr-@E(X@c38sN5 zne(oMxHcQ?DUjJMsA?0m?)`7&3C$j<9y(%?4xSe;uCNdZa0@o_5K`uJV-&DpV3@#l z)hb3~8^clIg9722%&9jUekf^mHW%%jjc*Z6 zoZQLI7SG9>mOI-yfTgUVxwqDvdwCPvto#ml-T+RnmUgEeKR)+-bDP6fb|N}@MyK>m Nlr+w(YAG^U0{{*9Z%qII literal 0 HcmV?d00001 diff --git a/images/delete_b.gif b/images/delete_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..2ecc68996144506750361356ef8df30124ca4a2a GIT binary patch literal 297 zcmZ?wbhEHb6k!lyIKsfNfB&96dv=~YdF<%XLr0DrJbd`Tp+ox*9N2sN_RZ_puU@)z z;oP}12M+A}{{7qAw{PCOdHwqJtCufdJb(V|$&<$q9^C)`|NrmbzkmJu_4Vu5PoF+9 zU;rJE2*@r5)^!P~u_>AJrmG6EJ=|vyBcQCX@JFlYlaC<>76fD{eo=7nK60?fMT3|9 zL((3Z38Kdp4m{=3ko0P;VzJV=+vXtP;o^36b>+pSE&?&uH@kW-Ff)sAWHj(q7m140 zb9c2c3bsdZbqjLVGm1=f=!)UyED9IF^w>ni+I5vidlUFc! njYDE{z8Ie{?><|5=hL2{W|kV(nmUG8^^LWZFKB2fGFSru<(`46 literal 0 HcmV?d00001 diff --git a/images/dotline.gif b/images/dotline.gif deleted file mode 100644 index 8606e753724bd7c636df3e7ea8343d8b7543e31f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 zcmZ?wbhEHblwe?GXkcVWOH2Fz|G(l-7DfgJMg|=QAOOiQF!A^FuRPtGkTAjI*2_)z JmNPI|0|2DM5XArh diff --git a/images/edit_b.gif b/images/edit_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..e129a017e650207f82506f36d61467a3de165d8c GIT binary patch literal 289 zcmZ?wbhEHb6k!lyIKsfNfB&96dv=~YdF<%XLr0DrJbd`Tp+ox*9N2sN_RZ_puU@)z z;oP}12M+A}{{7qAw{PCOdHwqJtCufdJb(V|$&<$q9^C)`|NrmbzkmJu_4Vu5PoF+9 zU;rJE2*@r5)@2E)u_>AJrmG6EJ=|vyBcQCX@JFlYlaC<>76fD{eo=5d#q_Yiq=DD{ zY0@5<365;a2cD`aU4CVHBSL4##FHwYmdG^=8&99KQlTMFdz+Kw9A;r&$>zj-2R_F7 z*o4+9M?s$Y96phXq-s8H=3+rft={DJE|DcYl?z2@#tL(Ya3w6C5gi-Dv|+lV5?M#%&XKBgP@c;k- literal 0 HcmV?d00001 diff --git a/images/form_height.gif b/images/form_height.gif new file mode 100644 index 0000000000000000000000000000000000000000..ae08d84f8875f23fdbcd6ce6a60abc48bdafe111 GIT binary patch literal 173 zcmZ?wbhEHb6k!l!*!-X2z<~n~9y~aF`0$DqD>^$n3kwTlV`II&z0J+dH8nMbg@qYV zf#OdVMv#aOhyaV@()Hfb4{U%4_Dc>-Ap_X8MJZvO1A|JGmWq1uUa#Y`JU#U MlZW2BGcZ^K0K>OFC;$Ke literal 0 HcmV?d00001 diff --git a/images/form_width.gif b/images/form_width.gif new file mode 100644 index 0000000000000000000000000000000000000000..98ca42467769e3a9cdbcf72d004eb13c96eb0da3 GIT binary patch literal 169 zcmZ?wbhEHb6k!l!*!-X2z<~n~9y~aF`0$DqD>^$n3kwTlV`II&z0J+dWn^T8g@qYV zf#OdVMv#aOhya0V)t)un9PJKzwP)xg z$vrSJm#aPWc{}GbE~(_S0B%FZg9jL+_I%^;oS@yHFe9Mr!%wdi#(;O%O#jV0uKS~g Hg~1vCbGkd7 literal 0 HcmV?d00001 diff --git a/images/interwiki/acronym-16.png b/images/interwiki/acronym-16.png deleted file mode 100644 index 05cbdaf99c2ce7ab9d9cab525103f00802856ce1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1087 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Xo+h?iE~kEVo7Fxo?NMQt{@>!W~nuo^}hmzI14-?iy0XB4ude`@%$Aj3=GT+0X`wF z44TCZhEo_UmvT5Qm592g8MW84_@3o|2CwRS*_zeWirFoS$t{Z6JrY4Zipf(94d+M% z&GGVDDqy)(Q**6^(^?6ywU(A^v$MBKIBnI`-0J1EH7IDWfacz)sAEf)o?~D*C!l$5 z>(*-miq`}*uSsa$V_>+KoqX@uv3uvvJ!fEeE+O$;QSrH#*Yo7$=Pf)I|IXa0fFycUf-jlz9%PtU%K@B-o4-7zyHs`@ZZqzzop^- zo}T|}*Zx0u?*H@W|G$6#KMF=efVdEtQyOy;m_ay7g8YJ^IvDOX?~MeC&GmF~45_%4 zoZ!yPBf%t-qtP(6(bb8O#l`iYh`ca!_oTgxH@EI>YHHrRdGl6|hyy2m*)gowKP;ITWA<8W z?5#y9H8!1d*c*G&o6XKM0Px;Zycm$dn!pIvAX@tIQzRg2pH8Two*=_i4C=*F;7M@+lYz5pdm5?;^y+p9We!iKIYZfj;KT zwuky#A`>75Y<5o}-dzi1HWdE_A7Haf_x tr;$&>&hER`(f=Iw^8ItsODN_AzW|R;liLDJE*}5@002ovPDHLkV1keoz$pL# diff --git a/images/interwiki/andstuff-16.png b/images/interwiki/andstuff-16.png deleted file mode 100644 index 1c7681885c47034c85f1e66e8e79e8d082441c94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1090 zcmeHG!E4iS6n)mHWnFT9fKKLU4w?u?y&YCli)#vGW`t{qqRz4 zPO1zEQlttB1%+lhG03K2A{crK>L7F;!YX1x1{G0y5$mrf5B>@IKHm4>dx!762X9v3 z4|RCEy#UY=8;itorJ6|+n0NJWOyJTs9Xk?jTiMX#*+wq*5NlZSOpPTGfcI-NU2JhE z2S9*ucsvRq0!RS3D+4G1HGn!miD#(aIITQ-XG;Psgkv3@B zq!}j9SPUD|IL_uYE^fqAY(AAzQo1CHmMA)+DoT4j0UVrm8y2>YAn-x?xym3YiF*s%mPQY1$UYS(;{9b`un3 z<8W+;Bpr%!5ON%+icl4EwOYfTwOYMiZ{W4C<^T96FYxZh!V-QE|8$&B{B;2MxV-Gg z-RH5${_*o4M9SAnoZC$Hm!NXz#FkunCX<_VT{?cCS4b%BrKi^)J&ZB4+uh~WWLI)R zaF^#=e{L$5SG$tAH^!@$UwpdKxx46l%^h6&y!F1%+EW>&iaQ@jZui-Mk3V*A-gUeC z!pn>AzkFl!`$n%k85|MCk)!GKX?|efT84>aX4-eGtrPyYD=PkI?*yDW^L@yE*6CTe r^(i3yXnE0B3ao3?@a4H-cb|~yg_Ae;-ko|(4B{0a7Ud)J?Bvzo*<9yz diff --git a/images/interwiki/br-16.png b/images/interwiki/br-16.png deleted file mode 100644 index b2f47139f355fa468b4b106d558f18b7d72f4c5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 541 zcmV+&0^JV#W4kjSJa2GjA0OmA2VTn)GVDRH*_a*R5a~7MVl_%dpV3h;#i8m&`0L zZ=L3hbCk(JogG^Y?1YVN+8u<%MnKwVuRV|nxp%^0U~LamH^+JP@f4G@V|*`;@_KX| za=Eub4(mrK<7tg<>%4(+pGGDEnM{^Ro*<05rk|^}u6#NikQ3s|W9M zzP^>>;t(f~eB_QhvBSnlESLdhfiPd1Co79gnwH9YCzhd#0Q=ikNuSROM*3zr00000NkvXXu0mjf0MPMk diff --git a/images/interwiki/brights-16.png b/images/interwiki/brights-16.png deleted file mode 100644 index 63820b495e62874e1ebf534804133ec4ee4e0221..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF2U9>A$N~a? zVKq;nIA2MSUocnzMliS@xN`z16XEIN7*cU7_uNL_1_vHyhj5YmDXd2dc)mRi&-tQV z!I<(!yhJ0Y#B~l!aLbb0Yh!{K^d_wO<+%4jYs({kuPJN+_hRB&+up{kG;`CR&)rwr hz4$#>+OxmMn03>G*L7My4FKA~;OXk;vd$@?2>>1ZWk3J` diff --git a/images/interwiki/bsdkorea-16.png b/images/interwiki/bsdkorea-16.png deleted file mode 100644 index d3c86a1e2280dd91a08b8177e5c5a4a4898fcadd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1201 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Xo+h?iE~kEVo7FxoF1BEyXJR*x37`TN%nDNrxx<3pI%nSiOA+9ER zdY1b7*82K3`ueu|`o_k_rlzK5W@hH*<{o2BCTe5&DJ!hKAv$rV-|r z>AHsL`bGsh=H;4(W%|aIddBs-Mh=dl0ZvZAPELW&EeM#w)-vkRH0sqd?lZHUs$n!;%XEf@@k|Zl83tC9 zY@BD9JM4C`-s@rC8XY&m(S4Sq=gf$>hJ?h%y1FUVHOt-nmqaBlD6d*oT)rc-@K~Vh zu@KLbflem^T~0*!9!`pFY;0_4X=!U~>uhiD?d|RB>+A3DpEhmU%$YN1PhYWY#@sFQ z=I@#@cj3Z?ix)3my>8vQ)gWTe_U(K3?%jO!`Gt$7JZSh(o?iq+SbEx)~M?~%hN z&m1{&{lLMC=gwWZdj0O@%QtV{ymjl=h1(yl-23?8)al1pu0FYQ_u2F3ub)4E^W@3v z7cXAFdiC!0ySH!Oeth`g=`S|h6moHzxe*OOa`;TwmetrA)`}gl3 zKmYvx^XK2cfB*l3qIwjN6ari`n?3+Fn3V+i1p@<+bilB%-_HF!$p&*7 zS?)f)?0Dshq_K~rLyz0}Gy&7aE7FhgOgJEt|8k4M{xv6!yZ$ON@$%W_t(#*rYbj$> zZbD<{!M~!$dyeSNbxEx{$RwK@T5IgIW@km@X2qyWs#njZv2+<`Jvqm~ZL%|>b4iFb zm+{Lp4IEo;d4ITRb^GJyBaWGH3g&$*Nf%#e3U_`EaISYaowImdKI;Vst0D-x)2mk;8 diff --git a/images/interwiki/bugzilla-16.png b/images/interwiki/bugzilla-16.png deleted file mode 100644 index b5dba82b54d7c155e1a09c5baa9c470d6d0667fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1125 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Xo+h?iE~kEVo7Fxo>!13p^r=85p=efH0%e8j~3e49pAxJ|V6W z5)z7vikh05hK7cgmX=OVPF`MKK|w)LQBlds$=TW2#l^+d)zvL6Ej>LwQ>ILrGiT1y zrAybYUHkw4|E*iM?%lih*s){h&Yinaz^*f{hM!6@_*i5_-MdlZEutE^PepC1uIR6D^mjA8);!8s)UYW3A5PUyLh)Igf;Q S|4RpYfx*+&&t;ucLK6UTyk^?~ diff --git a/images/interwiki/da-16.png b/images/interwiki/da-16.png deleted file mode 100644 index de53484d9adcd12dd153bde806d2cd8ad6ec7fcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmV;p0Z0CcP);jd}CZA+HT!=MZh67m`{B$F%zw!w@Yumi^4 zM~2w~3y1>}MsDnOx!sjP*`S1s!YoI+sw-8UtMgYCA5@0;0k0Os%S*D1cAMKY+ z%2Hgft+7Fl#bn}OwSv$14l!O`#dv-mERg7KL7oX5w6a(1TPY*bAn+nU>h0Y^s( z?fxFZ>m|nJGHt|2zi;#Wtg0$?UF-IGIz^ENXPN1A>eF}(U+^s@xW4A@j+YnBbSjKS z>TSkWzt3pIV8CLL@ZKRT7L=u?X@n32w6aXm?aB`i>G#u_`8-upcpDG`O{2yt1UZUc zPkwTe%rR1y$sEFOpP>amCldh`JUr<3dfLNbdX@E>r>8Vvx%3#{|GW5)b+Jp3;p>*E i*s=Z5|4o(uL%#saA+K?}%8{7>0000~r6|ji<#Gv-0h|G7t(i>2Zg7ipjC>{b;OSkV$;xtz;<|<2|+p@Bd@Ml_C0rBWp`+BEhW6a zLsfybgaPgbSQ`VEmmnp1T_4Tl3;^$8u>fm{A>al$1?2fTlqKXjv@NXH-xYY?z@sI` zh;!f^NGV9Oj6`057(u^*zJWypHzx{=9E>8JgIxcAhcz2{A0bXBc zI0xHdYFU<}lmRs0fz{BU$HlQYVd-t zmpYRbtd=t_J&+)D*oW1?Ik>TSk#)yGli&iSBQ;^>Y(Ue)whJmV)!EJj+QZ=K>gTe~ HDWM4fQ?8;x1e)$=pqFXLbq-~6cQ923O9r-I<;YB=C%=-jkALQ zm&beGKd?b)fNWrwCID4&c`@zsbaWom)Cq@8ZhChR$KkTN4wL|4@RUjCy?rEKF9UP~ z?=?Uw4{sAnbyG}rap*vfAW&qBy>NYA)0j=sM29 zUaCOs*<)g6Ghw3{EfQg&P$1FQzxqKFKz;N+YHSR#EW~l}eV-cO1K#ODR6LH?+KLv7 zQMK*$Db#Z_1lCXReF9IhTy?Qe4iE)e-ek}<4J{Hz&{?o7cJ`kE=mTEq0K>P!SjjHf zvX%0Y<9zV96Vo&d!yvzHFQLx;coTQ|k*lzKAlf)yZxB&#Rh*GwnYwsG;HAL06iri{ zWKudhvXV|`W&T%1YLgk6KCd-Q>;cdLzF*qRwNFP$KiC1}F$|YNJdPEOqSS8|7r&57 zJZB`|f_vrdx<<)APEVtW+DfK%AhJf=TK+fG_&@Lm7`^1X1k(@J{qYuBQ{bBrIwIl%q`rmEL%78S96KiA z8fFc~E3sPr6G)3O5aEojntD@H^Lk!)4^Kpd;R(GG7%nb|BGQ!Qa;$AjQ5c#=gAOtF zn~l?|g4g(%j9d}d*E9{Y8GX;)9lM>n@0Caq(p0rxv)#h{=LFu(I6tMjXXwUS<(jrv zH6#%s#NuT}lX1C)@Idf(Ila;19=W#d9LiB>m_^d?9Iv<;xCAvk8~sS|72lBSx=vM% zNM9|;{g}(39_2^*;B*_WZSWL~|kG;Q0xZ3ln(D%K%qwYxJNSM#X zCoc#qx;<6SZGI%E9|%6wyzjNBrntg#AwD}}wPG0fQn1S@>qin2_`KPuahMM0i-k1H z#z>oHjI<~yOSi+H|8Drlb$*;6!kbA`IBNTC|2G``ANT>&$CLllgv0Lu0000Jo9HfAKt_R&DitV~;ds0ccN17FU@(9nfGC35EMqpa zfWz~A%4I{P0=^H2!|zRMfO;LORTzz+-*+?`3AI{^)&}3#6pLUCq$zAR&}`nna5dpV zr;`aBrQP036h)GzsXVe?ujOie?P-b5rGP~#^=fG^(EvdZkR%CVc)D8Wv)dJ37HqfM trS+k*2<*J2g&Ylmx%l~yc{Z#hR6kD^3dHKGCgoFvghm^XHwsH5@8yOf_ zWEa`Jn4-L9Vba^(zT*1~4Ge7l|Ja`N*4l@+Cu52TLzdiw7&fw|l=d#Wzp$Pzq_h<$H diff --git a/images/interwiki/foaf-16.png b/images/interwiki/foaf-16.png deleted file mode 100644 index e0aff8938960b18a63bfa5f33007d0dd300e6223..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 903 zcmV;219<$2P)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00004XF*Lt006O$eEU(800001 zb5ch_0Itp)=>Px#24YJ`L;(K){{a7>y{D4^00Q$#L_t(|+ND!lNRwe0e*V)ocWVDO z=Qd|b(^*YB=*o4V63QZ?prm2kOIMNFRM046)Z!q-&YE$oXUn*f=L|d?7$U|2lzaIycr6t z-dU`XZ!SDWKjg@2^_4bK!eQ&!eCC{8?6eZ#Xc=}{`?1y)R`7| z7*#9-fBQ>}21g(-Fk`_|D@cMz)ak;>*Z>5n1)4ckS#rk)vudy_yiJ51RFQS-VFUYx z^0c>sAD;jh{Q`ZN6XCcTnp_j|OUw|o#aZWjr~1H63Oc_hN|{XcYeQZzDl1pQ zZeIi?YeAfo{gYVy9c)TB^ zYB~yR3)5byB3G_6y=yvTFHhG%sbgBBfn3*;hQ{nG-UtVSB7~PikKtHbh`{Gp;!40! zu;iD4AUw);fd;WFI5al#dzcBHhJQ>CrB;Tv8*S)*){U{SFRhD5x$n)pyPR2q>rIYt z>-W!I^S69MK_1ICEyKJO^B`B5An*ci9{V_)nB>p@G0H6$jt`A=t~@l*8BV0CJEM|K zEBT}ZflpFU^ej-s%;@c-JtMKv#6`Ee=FA@iDap^TC*rYWagK`VAt_>99A^y)mW+p4 zUsp>k@b=-?U_8d}al2Pt{5?uK12~R8P19VBuQzhd+Y_;;YAOCsPTYIMPurqaQ%_&C dSI4KO`4f7&3|YMxCzJpH002ovPDHLkV1heVk_Z3* diff --git a/images/interwiki/foldoc-16.png b/images/interwiki/foldoc-16.png deleted file mode 100644 index b8694cf196f02861a7dec6da112b57578c13f65f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 900 zcmV-~1AF|5P)?nST?fNxI6)Ut+LQ4x36;KJaz*4CdORIKZWJZi^ z`~@%|282WvF%%GmNDNR}fn-RPRtbbOag_Mtm&EmJE{^S-?-(laGV}QZzIv8NEG_ly z$4^W=UW4O-BW}MFqgI0l4+OSW#Hm^teK1VRYpM=N}QF z`~nl>LA;?H#_%zB-iAWi$6WRqwk_iwa?&kTu=$7F+zQcNSmb`lN9o5Rb01qc95u92 z8Lv-6QYGYR7YLia7(gKNZ*m}hfbVjW8<}k!Tn- zY$8eG@9M>KUVKlT%-0~hsWaAgBZ)elwF>%9kxy55`1<>W=L;r+A#P6Zvc2a;WP4n? zq;USc#NE3AI_Mk@h6o0nTze~uZ8s?#Xo$W>Xf#5$0stJiV{3Y((n&7}F;S&|)Xv&T2IC&ARu!vh#Q5zM!=^$6GqZ)2q9Bi zFCZkDR?9>ZDj*p0cp3H$Bl}}6loz7p^KSH-a4Ht( afBOsiH9n8$Du5;c0000%y{W;-5&-9W`+Qt5Lbq+UOkG6Qxp~FXll+eG+e5wxfDoRTCUa9Tx)2! z7RYdN+G=RH)zWe+km2REH7IDWrR82Hr@dZYdxL_GIXNBk@;U}&L`5CT&OTOLd@d;H zTvXJ#C)$G*FN96 z_4(et@7Jz~Covyk-KEFE0K(K!G%v=VcGj<+xPZlz3?-72iXz*BX*ZPFZ z4-zA~Li=7{v~;lPaVpiddZ4`hg7KBsK$GT6$Fdsg!WU@vtYoT_V0*3OtFg&+@&~Eb z3|5Y!T|Z?ONbWA*Mou7P^c!rjZFfWBeyboFyt=akR{0Q)&6q5uE@ diff --git a/images/interwiki/fr-16.png b/images/interwiki/fr-16.png deleted file mode 100644 index 5fbe0392d2ef79b4a3895c55b17ba8b8d7a927a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmV;B0dM|^P)os~d!)T4`_hGjKXaO`JL4!d$W4yyfQQ(|INr{mX z+3P{CS3jFugia^f4*@Qh^cq6IT8j_@qZGQ^h0zGA+sgdSfl{#F!{GqdLRpqL=ZG<4 zjKQ?qFdU}FJb&0^BUy#b2F_E-ua_5y(IKV0!?n)m1bhDwK>^I?+v`A!wQxAJ&|2TSwp%zJA4kMKq1Zo zkH}&M25un`X1sK_?hgY4Gedw+h%3YM?+ow1GkpKfvGzU3-tQdW-wRxOF0u8V#NK-n z-|s1Yzoz;9oaXmyhTqRwR`0d^zSrsdR;TZKgWj)=`o1*k|I+0DbF$~OWdEO1{J*FA zdrQld?3Vx4JyWuK{ufU;s1Xi z8U>>vK(!EXJGpowFoRf?1o;J%Z775Jf&ZW^InUF@F{I*FZ2xP%CIg<sfiCl z_V}nNE@CVcNPPc4p^QiP;S%55>+P$!c)wj?;B$E}#g^$C`?Ogl%cs3ndML=jb3tbB z^p$!F`Hm;EcQ;&Y^NO8qAoRfJv(ogHL7885LN>Ce+uW9W@>L^s(vgo`4evIsxfJ%i z^JC-dyesC{q?{Am%%2{&a-ILHAnwvzz6J8TI=a1|{dai3^WpFKg>jMwWzr63fi7k6 MboFyt=akR{0NLYOZvX%Q diff --git a/images/interwiki/freshmeat-16.png b/images/interwiki/freshmeat-16.png deleted file mode 100644 index 72ec2671d936e288126bab77e90aa971ea7a9e09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1046 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJdx@v7EBhr5aSndT=9+6)fI^%F z9+AZi4BSE>%y{W;-5&-9W`+Qt5Lbr({}mM(G&LCv4S`6}(vrc;3y3s>f*68=6oZ0- zqJlW0q8Os0IFgeYl9MH}vlX+m4U3Bfii^F9i;JtP8LF!Vs;jG8S{PbdoO*gRr%Yj( zGR1Jpl%P3t80O5;oHGZ=n6h*!!_uV!YnOVhUCXd`t>W6X$!phUuU%Wbc5Tnrt;t)r zwrt(Hb?@H2$M!NDI~H{8*xqBuj-5NlaPHi(YuB#byT@?v-o59~8J<7i`~5r6y&xz5 z|8Mz!6pV%d#Ub$gmsTS%gD{o^`2{mLJiCzw*^WPLceJU zxM@l=>ar|KIQ;*=m}Ed)Rs5Rb6xHkV!e{(eJpJvu{d&=tD_-_*UvGYMjm+^cI*jWX zJZ4GMc^qP?;NYATl~rhT+901T=zO1;wYHfbPw_(YGjFmAw=`J?n)Y)Yy7GMCe5I4K zex|ie+8B6X#*$-4#UdBHc5QwUU8=*=RW(Jv_}$j%r~lS|_`pA7zNE>HOXapecQSao L`njxgN@xNAt6l;% diff --git a/images/interwiki/gentookorea-16.png b/images/interwiki/gentookorea-16.png deleted file mode 100644 index f69e067cbd8b46afa31b8f1df9a5ff361e1a10d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1217 zcmeH``%4v35XUzyG#~khB#bCaLm>^#AG#8XH=nl@T@7p@U+a5|w3U>OP{g4ZTV$Q0 z$4RnSN^>QMttdAAAvR3eKy-iT=5`ZtMT*TxFC=(6{tx{UG<@be!!QiYz+5UR&JPcX z4Ph82ys#jLr7?2Vg9E81CP$Rf5Y%2+lp8c2yeWEZP+ZpMQd(NyT5v>Un9!(IUvs9e zs+(Z~nUX{0xvnJMl_a=R1-DD^xJ1?kS(n7R5a-66Tjo6q?@@Uc3LaJPXacJWELC0L zpulM&tBb55a=OSFBCm>qB#Ibt2H;Gjt*5MT&ZC~1;tNWF%<_VT2TfXrd#mVPIou zW29rO%h;A>ieJH|f^7vm3e6Q;QK%AXs!UYHQdLJ)iKf|_=4cwxHAkna6N6&-4TG2z z({Gx@w1{O8%OsXXY>G`BibMPqKOvO=_HSOGrt0VfeGs;tEiU`(8!$?8SR0+bRG5=p z-uWqEta)!>cI4TwyP{He#@8wQ-B$;uGpFBPzUbW{eS7v|K3U zW3T5ja-VECb{}tb{0+Y&H&z6k*rz=o?~V)WPHmi8Uia{pd#JZ>bPv4%Q z;wdb z{t5^R{TC7z`G4ljnL3zyCUgUsSXkC5D=Y676cprVWoKt_a&nSqVPy?uWoKt%WoKuI zi;H70Ha6aeVY9THLZG~|YOtiN{93=jp#NL8ZL>+w%6{_c)2Av)S@}jOS^582xq1J; zef!pmtd9l8U}j|t5f>K^EX>cfP*ji?*tlie)sLUP#)^#A|=rwj}XoD2*M3}3!|XGloPe50+US&!jm7~{;b z!#DW_1?|)Gil#HMuqH6GvT-uAvN0fGk>J39N}L8TFfcI8U$!#qF9V|}6Du17I<~X5 zWrzq3K8bDs3o?h1h0Oq60UIkTLuy>qzm(XhMotcnnRpFgU}n9|z`$Sx<7#WDGBlMJ zUC>rnP1CS(yN9kB!wdgeSmyp`VP*Kw!pgwT&CM{kzjNuVWosPO?L1ffXJUR6mR_(B zuK~9X@7&GF%`@*m6Dz~_-~Soh;<8?CKXfAEKNG9ce4$uQ~t!{~s=%8t(tEEG^ETk&$r=UIQ2y7#RNl|IfT-|Ixf_cOPVNva_q`Yp7he kGc~AWWMtfkO+7^b02Skx#B+*xzW@LL07*qoM6N<$g3pyB_W%F@ diff --git a/images/interwiki/gnome2-16.png b/images/interwiki/gnome2-16.png deleted file mode 100644 index bd34e1bb535282c917b2a67bb7574a1f5eb02de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 867 zcmV-p1DyPcP)z*7fE5sdC=dieL_k0glu|4%F0%abHG+9=0RjZL2!>QA!@Xm7U zw_owzGC4U(+-RV+Mr#dw1gW*8X$pWbhUs#dn?K&<>PJ`k^Zpja;y%utIgPU;m3xMc z2_7}K$!2o|LBNR<&vW^mOKfax@c7KsW_af5XGi|XZYn?|0uLWPU^{M*%NMwF=lB1C z=Z?&A{JG=kB*8g{b8gpYh@2O+?jv3>#?b3_#=u-I$17*gvaql~r_;k2gE0nY9nOuE zr~pAH37xK{{co4)@?j1fI0(Q?OG{L%RX$l>=KA$-84iaSW3bj@oC821g6<{sdOf<` z9!Zk$>bY|ii$!kK>#VJPL#x$dc6OFDO-F0&IJL02ukhjg(W9f*8B1ym*=&|$3&+NW zoqXXW`}a@K@AomOVVI`$jp3ia{~{6utu;{;5r!e{cAFpw$Ye59DpkCAoOQ%;j5QV& zWf-IelR89%NCk>SCxlTrCTO)clVRsk6A^G;F)%63<~Gw)PZHdJuqEd&oagrKTPPLo tee>=O9xILDWz<6NJ#$B9S@~jx{{TCAxs3sY)64(>002ovPDHLkV1lgEfx`d* diff --git a/images/interwiki/gnomekorea-16.png b/images/interwiki/gnomekorea-16.png deleted file mode 100644 index cd6ff4ba7aa20c7177831124d1af86cf1af45b78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1097 zcmeH`-%Av66ve-yuT7+RDmN?gfm9wNU>34__gR9F*P3>9?y?o)q6eYodbIB)mB9cquX z6nV-#2%(~IYcNW-H!F88@!GA$9b~y;;k_Z(%lte~dG&<>d5uK*CtD8)2zkC_l|$ca z7(pl(wYPPK5Q7n8qNsydGJrThJRkv(2uK11j+-&u9JmE=%iv`+FYyF;lTga)rMy+a zVShB~=h6Y1rx>0ROez6X5@=SUIfdp`S~M6|h{{$}1C|rmBygh2NgA&@ybgkt5E57v zB~ezTq%J8~(m|FJvZBihmeY_RD0 ziRZ(?-JLyeLYH5Ao-`MRLf0>yeH>q%NZGSXGdpYX*!EXrjW3{Y=-RfC!7F0wZB1ZP z@YK|-tJpSh@09JN%K|oU?I7?3UN+ZpXF^elohBE%Yu*-@NCZ51hGs z{HSk7m-vW!@V)A3Q$=a#vAMQ*&8TmEe(`1|(=mGMM1RZu$>}|Q|I}O)DvyP)G9Q+I zy_-a-I;G*@>EFZS8}`Rbq~ZAa@k~wOjRGH9C|R$p$9+H@>CgM&s(;_Se5ZQXLvj!b Lha$lV`q021Th%6T diff --git a/images/interwiki/gnu-16.png b/images/interwiki/gnu-16.png deleted file mode 100644 index 9e1e19f0343e7b7a498bd7548a96d210fa2d0239..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1070 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJdx@v7EBhr*78Yyej-D$fKq1Zo zkH}&M2Cfev%;>bnWCjBRGedw+h$~Q%;o3D04h{hU0SO5SMMXtTO-(~XLrY6bCnqN_ zFR!4Wps1**Fd71bI0QO(Zt4eS0j825zu^B2Pq!O*0ePD}T^vIy zZrPrDy{^eXfaL+}s%c3J!>jY3|D7N7q~ebKu6(JsTx603!; zn2!1>;)31skn9kIsI&bM{-c9X98V`5CV+>^3`fsMBVv_2v_m zAHRk@dd0qQH;=WO`-Q8FEJw0}nu`p7)HGg9?3og>dVap2!#gqEMe>iiIqeqhSn#oR z;;wa`GC$=f9PTcE{gHXgvhbV#6Lv9$#&XZN=e9yjA~|e2D=0&Iy85}Sb4q9e02pyX AZ~y=R diff --git a/images/interwiki/google-16.png b/images/interwiki/google-16.png deleted file mode 100644 index 9bca674906d5d600bc13329d62a09cda64218ab1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 736 zcmV<60w4W}P)HzWob? zemy&hu_5giPpoqb#S;e46?=P3%oX_`v{>Q&nmdTi0C7-@zZr`=7yU(w$lWorR zSQwqmE0zNC|K zVj=rgB_mRD-G};h;W@@))m4F}H0dDGvI#N?prv#L1(6^D*=HD{mT?GS)cR1T2z$|1 zG~KqTAVEEZjYLpa=`;uyLwi_QNh1a1`g@jNuY`JpZYyj#-MVmXRG=Og%d=HEU%|{m zT3J0!eNI@y7FgT&g@nHO%B}gj2t@{n(FOm_tbJzk*|%T*eDv^d)6+$&jH3-<<1wG) z`+%c6A7}gSOuwX0sYrHej2TKkf5*X%7w`QzqgZ-2FeIY%GT{zbOMm`8F*LAt?DlMXv`(M{soo zaSTBKvl(QWfDG`IN)_(z3~z4-04Kmx0Quo!0nWkeEA;!&>Et%nI_C2^VHgrcRfa=L zyA428RFF1Xj7D&M4c=!+bD&HZ)@U?B;`p7%$2Pz@@BpCENV>n5o}Z=TW9jBb%Cbyp znkr3GS!?y9@p!CnZl?tUV<1iQ8ZR$!apAeVw7`l=C8A!h(rQ7i29wD)O|8p&FJp|7 zB#|*j%jI(8eJ#ORkzg=@+gn(zR)9ltl*<88RHfOhP_Kiv`L85NVeGaNSZkFeiKf%3 zoO9ZxoeT~SKQP82Edbcti`d@}iR0X1GRfVo1@Aw%8T@jJ1f_2v4ydkmTiQK$!8;-MT*v z49pAxJ|V8`%}(=jqU<~p9K2loYJ3uAd{SltvUWTg{Cq}2`h3DR!eWB*&O-8z z!b)yp8bRV3Vd9$MQrcm1*3nW1$#UjJ@|GorcG0@V$$}0dBJL8R0peo85)z@(5;4+p zuF6swvNE{}a`}qN*;-n8I*NG)ilr(lC0dHLD%uWtT9H{sUUg<=rP0c&nb!7Ysu~rB zrkVOqp1z@up)PSLmGOniIoa8{dD-~|d1ZNdH90xu1-V7#mE~1cDy}VB{qSC6S(x#!+p{F@RTXUg~)*>D4gaIV+3Bp4<0VI@OHR($ zT%8|yxIgpsdg<-?&fEKgkJl$(pD%tsU;TVLdV42NnLcgGv`N#~tXw>Q#lqDqmaSR6 zbipSp1Q;=?g(X3L!N8!PD`3#{Igkpp{H>>p zV@SoVWQ_<`7VR{jQ}HZGYxEK#c$YkrK8T2}a#cNcO4XN7# z;E#BK{Gpc?fQbC~oO2js z$nzXy3~8D+1NH$Fz}Xqx-$Pk~*5Dk>W{_pzoW;2hJkLjKO&FSHK(JV0J{O!@YI}Nu z(Fg{EIlH?bv|25KU<0Lmk|begXB*%cxK;p4RgD)H@cs@D4{&f$a(P)0h90w-=IY8v zsY+puZ3=0~GLh3$k(ZZJvMiI=*EflxLhkMsUt}_wNNxOJ;X%W22)&*oiY)zp$@8;j zYfBNw(C;sm*642@IOnj|^7v@Dxlx>)1nlj#@jQ?^>=h3Vfm;P|ehzUAA|)aQ&ug=} zsTq&kgkja3rd29=zUGjUB*9usQ501^L4fc3Yp-WIozm@gzbfc-I=?<;RjW9vW6>+| ftk&x&_#b=%(Qn0Do8SI100000NkvXXu0mjfMMT5} diff --git a/images/interwiki/imdb-16.png b/images/interwiki/imdb-16.png deleted file mode 100644 index decdfcc550c37f05b1dd8e24a7077658e9e4efe4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 964 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJdx@v7EBj@3K~6p4rpeLUfI^%F z9+AZi4BSE>%y{W;-5&-9W`+Qt5LcjN_W$hv=NSHwb?FL>zo~NgaV@SoVUjJw=21gE~um95Ha^#NG^@=TdVz998K=;E&iE9nq zV(h6N5oeCP>qvH++v|Og!+P5Gn_HJ1*`d2l?~Le^2?DzAdfN0+uensgH_f8$O-jy zaSW-rl`PQ0#Fo;=z|1`3AOlN}Lz_c2C$o0P!N7wX6c~;qgowKP;ITWA<8W z?5#y9H8!1d*c*G&o6XKM0Px;Zycm$dn!pIvAX@tIQzRg2pH8Two*=_i4C=*F;7M@+lYz5pdm5?;^y+p9We!iKIYZfj;KT zwuky#A`>75Y<5o}-dzi1HWdE_A7Haf_x tr;$&>&hER`(f=Iw^8ItsODN_AzW|R;liLDJE*}5@002ovPDHLkV1keoz$pL# diff --git a/images/interwiki/it-16.png b/images/interwiki/it-16.png deleted file mode 100644 index a6d0d35f362eb07cceedf191aba65dc4880f156a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmV;f0a5;mP))CN`9^a_10R$E>Ib|SfRmqRC^f<=%eUEAPCp+H zUA0!?534MxB-+#gkW#`qhf)eL2D`rx zhlfyylZ9aeqYMw>56k!$mwR%~c<(8tAR@?k46_*+1AYJMk_I4_$gNw@=9XLvAp}xN zhzQ0QXc`!gq3fV+cM-bWu}UjSDU`S#V2nXT&{~7FYxC37I^H6L94J&MP+~@Fy)|#N zTCL3?>>|v6{{WXEfU}O}a*4He+qGE0<0JGv_jUL0>OaQ!%?1iMdSQ|c+nfA7IsOkl Y1MF9O zsxf*1{j5h8ixVYHQ>}A*yWSv4Aj@#hA%F*>ARt<=?lgTaZ z^$E^7{a!BhqubT5AkeDaR-MmPox6KNcy3u$6*8S-HXEYt7Bd(?r}MB3A;5mW$68BS zmcRegZ1U3YgZHr8T?n!)yEcg9_|H`i>q@=@whqRgg=8OSOa2Fb045B#HjY`YVDRu#QetwbGF(}2z3<8ADM7*61~tX30#QEirOGl` zCulXRggJ#@uiqB9S$tZHipvwm6PEg$wLMff@1DB(O8yqV`l7kKVNrLIUG>v5XZ)@D zSrs~cbB%;s-*=JL9ml)s;>(k-*#|Q&uv~0E(fq$`Xz+b%4(9rP20ucZjJ#g+a&=(Azu6{1-oD!M<5W8Ws diff --git a/images/interwiki/jargonfile-16.png b/images/interwiki/jargonfile-16.png deleted file mode 100644 index 67cfa3c8e62bdc25436accd5d14a3eb446997915..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|>?NMQuI!h2goG4j9xUo;0}62# zctjR6FmMZjFyp1Wb$@_@7d%}YLn>~qov@L&*+9gFIV2?DkeKA5E0Rr#5)G^pjnh0A z9F;a;P&qH7pyJ)>@UykF{QvyF=MP%+^?SD_-prnto^ic2i*Z56@rK=Z&5so7Fdr~) z`8PXr7MF_Wqw={A_fB83EOTBqXPB7svj>YB_~J{fh| z(s%NTh9k*mB&W1-zuLvNC3iI^qs!U?<1g&5biQwyCO%~&&~FT$u6{1-oD!M?NMQu3#Z4ey>`+=|CaQ0*}aI1_o{+5N5n|x9$%E12aQ_Pl#*s z*6-O{pJ(s=U%d5s@!tQ{d%ss7``>cxf6vmrJ;%QHocljz?cOQp{?7q|bKjQ&!L|Qu zf#BNztw3<^|6U-t_x~6W+Kll9qH6VEZ{~i#$|Nk5azW;v@1mFLU zg3%BdR3R|u-05e)3?f|;~?o_{UWq#(fhAUP`~k&Cmf zL*wA@{YlwYchB`7eq+A*j85B^$&4XYev3^sUwJS)w!AAiR(kA5+oa`Um)S0|%*dZ{ zz@YrW{HcMLvZLlM;<+u~Q_OHRWWkIw4z^g0)hBN7WyZGqylp(7eXRB9%5#0wb=HeI zmWrC~*5Brmcb99g@VmdKI;Vst0Ol=jYybcN diff --git a/images/interwiki/kde-16.png b/images/interwiki/kde-16.png deleted file mode 100644 index e9a353870d071d090ddb6e9717149f03e7c565e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 843 zcmV-R1GM~!P)WdH}#2?`SsGtc}Oj{pDw2XskIMF-Le3KJG0CKr5*00009a7bBm000XT z000XT0n*)m`~Uy~$w@>(RCwA|QcFw|Q53!JGi|5SQs|&KTFOWK0fOKMm9Q|9D8$5# zF)lO)H?E9s+?f~?6NxU|xG)+QChEfILXC<6zlnrj4K<*mVhmbKOPNxb($<+b&o_P+ zp1jSw@15Lx&bh!jw{6?9tnP6=e8W6HTu2(`!9MHiThn4pJn{d5Ow$~Q-IFviiS)QMo1hx>Gy3=|9{iLPgNS*=C;EMX;S~Jj zL|i(;bkDg{gh~@S>6!N$Wq_L@{s>*2@NN$0mIfuK1Cwn%57vTc0992LjjKZ28fp%; zg)g?ITk=U8gR31Lqylxfyq6-D@PNEKdM1$|+(f{^MWjQuu5fvIP$1x|<9eT=OqWP} z5wbtf$4LKyrU0HvXVBfVu7TTx@&TiGFs)EZWm#5Lbxq}puEM-M2cS3#_g7`J^J%=U z_hHeu38kh+tp^LCW6|Jn+|fq}@%eo1r5-8HdD1cTC2yK75HvLMMo-UOa5qG0F!dgQ zp<-&EZnTcn62BXNN#*N%T=_H>b+CC$a1rUcZWu;yoE=YA7;&M53o#;)G8b=Dxshl6 z2?|0xE8r*HYg#)IW6ZSdt|%W_B$JbfM_=HDdDh$s$T9H`SsXO;r6u*SYezK}kSJ+T zM553tPgPD2;cuhT=V#dG#Dso~lehP=S>S5b=Iz_+!zJ|hg7B^-hBT9@_J1OWH(ZHW z&o{Ml6Kn&#nOLBB8Cy>DSq6w|n(7e5k`(!reU;g4HY^O?xzzp2oxzuH;zf1q+OmwK zDfwi3XtGVUJ)W|^1dqp~X`0X@Lf9>5$FJQPn;x%SS>CbQrYZ~7{`yJrCH5}YqQ!~ZO+x!#j@6YQDJo|iOiLiZA@3K^~No0xmIn}Dw{Jh zGrLI&nMztA;xZ^HOhh3-(x;i?(bV|C#oid3;`thSwB>MWP`@2lmBm2_R-K|8$w`_g9fUOc&wU7gi zW5zDIT&+-O`ufyL<)E@(-P@~EDu-1429;`fKsBr$)T-5pMuQ?oy-sV==}bdP*I#}EW@cu1An| z_8sz_oa+42a%tgm_D1%ruPfJFZ1Aki;@6Exz+)ez~ z&7FIeWOCArwVsUr-iDswlyT3cH?J3G6(J9~ROXU?2DfBx*bbLY;V zKeu7(@>#2QE?Ts3#flYc*RI{LVco`!>-X*3d+^}FLx&C?K79D-(WA$X9X);e^x3m# z&Ye4V{`~n17cN}6a`D==OINR6y?*`5&70S5-MV%6?%n(M?>=~N|G|R?j~+dG{P^+H zr%#_fd-nYK^OrAQzJ2@p-MhCRKD__<@#CjYAHRJ0^6lHV@87@u`t|eIuV24^|Nip_ zi2nTj3q*ha{rmU-|9@aGjDpb+KnsBxQ+|2?g#=52{DOgr1O+gtuAP|#l$_z|;uunK zD_OvSoyUfQLHJ`Uqp{eEj#>MbF69^4v1-?52NxZgoH@07_U?^&Qdt?Hu&Zawma`@{ zwsX$3M$SB-WEXbq+O%cw^7_7&Z4)r%o8_gJ^@>ZYjjd{zfS_cih{E9m%5M*{H`T}q zoM8}RH2nEPK}ha}Qh=#|S_qTIq4OO)5)qOWB1=_{9CdMZb#-BBRoJ#!fq4N3gY5x@ U6SHLY{sQ^Q)78&qol`;+0Ibyu9smFU diff --git a/images/interwiki/kle-16.png b/images/interwiki/kle-16.png deleted file mode 100644 index 18d22560422590277d7b257cf827f28dfa1fece4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1153 zcmeH{|4S2L9LFD7ZHW^1!+GXQFN5bb@R`N-n`z==gaf?=>yO6$mzIf zOwCLM02pmnGo?o)VQA3LQ@QEodN>fUTn$`ksH_N7*VP_%Ro|%u$$?)5J6yoz)ggn?3ly>N#G<&+I8%9iU1S|D2j5s-CjHJQn=6O z^Had@2DFY>2hv`grs<#$1cO1w2N<7;@k54TSU+I>D9f@O4LFYDg9OjoLktuWAOedB zf)HkrFo%XYLSzt;g(8oOJR$OSiG>meB_2uwDM_NtLs@_^9>&5*T!is>TnR%(go=bI z5~WC9MfNL-qDm%JM%5Uj#yM40H6^SmqNYfiDr;&?`>%g{1J=SB{RJ2Tl%rhJz~X|j zL@zgN<`UPvueqJA`P0t*?UB$@>D;KT_H(pxYJOy-1B*Hz&vdWlO$Ue8TeQn-fj=um zWRp|dEY@$uq21o;eePm&X%eh2I?{8<^DceQt<~ms_~j|h8LUYedCZ&K<8bK-vYjPn z&%Tffu8)eavEcUM&SUk@x@wzx2FB*_sm?*iz|E@O%`)`&iL9w|$N8#A_h8#>%KER5 z%fn~tUY{E;dR6hgZ{tdJ*Xg-tg;{;u|C4^+xAJmjBJ?A3(mn3FTQf1)GVducYUiS@+ZNd$7zi0^1_XJ`Vn7tcg(5l%iiIMn zLHgcPPxoF>id^L!IQP7FALo1D_nmtsBEljevHTDM`!Vmu5?@B65e9<+n$4!D^Rn0L ziP~JsVCWpOHCX*osM1OAo z(m!>Xsz*EY~7Mx*Z}2nJkxrBZ>{ z>jk5Rv*QD7Z9ZW<9wTu01%*NZs;VNJ%_0~KPT3kW57>C9R;y7Wkq|YX&r_$<5&P3j zrBc-I_lZsEy$7sG%-C+Xqt$9bmSwTW=}smSNRkAb&4yyJh(@FF#sdMs>3uY0ek7C0 xV053Au5kW`)##sOW002ovPDHLkV1hfY^t}K8 diff --git a/images/interwiki/ktug-16.png b/images/interwiki/ktug-16.png deleted file mode 100644 index 29e298e67b26d4552ceaf31492f2d0cbe665218f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1132 zcmeHG>rc`F6#Wqk1$CO5%RXeRVd~_AQ(4P&OJ#}*nOf7iOf#nBw1-Sn8yqE$+2 zFVVT?gTN(PmM#$z5K|OOC4oS}*CbKH$J%Z`{WDr;=ialO-7ojt-HJp;j0@o)0YMNK zT5NO@s%|^wh()^}*)-m@X4S5ZX`7Ny_g15JXB92JJX>Y&NA+G4`;&yjG?dhrEyn=gt z;0d5s2z4TO(GGkuG`)v6-O$tAtkb+nSALP&{c`fPZ_oI|HNKwifWwNFL zd9z&6qENIcl>(JYs8WfBhETSTjEL3hE{*2X#DqkrSLyXb2E$i_VYq(;q-v0+z9)kfo}$uwrMOj;~cbMrqI7Ie$YGghnFI0xoMFfYOU zGAylt)dtp8u-O*vcH73r>dG3d+rhpG8(XlsxxT% zB=4Md7s$Jzz!B6{(4tSKT-Rp*Oo+m~bY|t25kpTXRT7EhNCY{AJQjMKON`Us{ZdX( z(}r_(r<3UZ<;1w>L4ow)^wDtc8J%|%snR>wIkk*Bb?&TJb7V#a#*e@FtgoSQAJJ#8 z=gLJ_-rA#_3q=H;=`l?vrjUI}6beZZam<%AV4&dqGMPC7X7-?uVCm?r%E8@nJUB>= z_he|you@o-ESg71uxG3n!(*oMHsQemR^^_$k6xxkOnza!&h1d14#D3ns1L!he_@d+ VWlUIdfIs^F2tuPWqJ@!}oWDu9Zhim& diff --git a/images/interwiki/lovolnet-16.png b/images/interwiki/lovolnet-16.png deleted file mode 100644 index 50581b6bfd83c5c13d388b064f95b5b2565327d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1129 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJdx@v7EBhsGQEoHF!s_!@Kq1Zo zkH}&M25un`X1sK_?hgY4Gedw+h^wKYVNj4$P>@$pP*7BqVN_I9c2rPya#VJ9c5!iW zb#hR3F++86c6BvJb#--%mu5?LR7(pGwe<89_w@8ksV<%}C1}c&DRYXG=S+#3Gbee@ zoH0?mf1b;TVuScI@1_bJxxtyLRo` zJpqP$hKl#@UAuSh-t*_r-#@?i{{8#!@1K7MlHY;o`~U9@|AFKv7!3hxhk*OV<@L>*ch4iM%HOY6 zG%dC^Xk2r*Mrz%Jvs&p()!nY1mt+#qoipLxESqLNvj-n%`d?TbqM&$O;=`iv6K{$y zIB~1K)_<|F3A1(3u>z>9`)y~E(?>gTe~DWM4fTFqea diff --git a/images/interwiki/mailing-16.png b/images/interwiki/mailing-16.png deleted file mode 100644 index a11e872a71cd232f51c1ae5f9b966c72bce9bf34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1154 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRt!3-oH7vA{>q(nF5B3I14-?i-EK{2s3JNPV{GBU}gyL331i@ z|NY+DrO)R~c|K>(^QB9luU-3m>(=LcfoSjhIdk66S^9qI()VlEzF)ib{noYbw*tw% z?}1Xsj=ev2?)|xA@6Q3rYwxdJdw=iT`+Gq0-uvgzzt36veeK%sTY+fn_pN)s?**b` z-;eG6ehf&S`+n}&_j5q<+V^YczFz~9_rBk|_Wd4^eE$9Uz3)KnK=2=k{{KIB?*FxG z|L@)V{~U;(|9}4e|NH0v-vddY{CkiRkRlKs1*0KAUI@$$w6X+d3dWKkzhDN3XE)M- zoade{jv*DdcqasAA2twZUY|XwR5@~%cdYr@!*1am(iYY?dmJwx+xP$f^0Y4sEb<(k z8m_JD7!?z~PSjvoulVc%kGZ(mq~lffC$4-_>AvIR85(@`cG`Dlg<^)v1AfOJ+T8kC z@^4#P!-uihnQCd$_v3-yI&n1RWxPt43|<$yLRZN zdh6alkoEqAE+x|)`e6)p2@a)n2w5!dm4XcF(4j*i&`}+(EIZhycao0uK6=lqb3E3c zdPCj&U!ev_-+Tt(veYC(67NA)fg1EzbjyHxe>)|4E1^1s*^s#B9z1$-hu=RQVyYq8 zOruUztL?PnXDQ^8m_ss#9KYP9W4o9M{Q7eZ;WZD!U5@@j3=B?G4S2T}1|(+}mTWRa z0#~++0oa2NU(UI*U5;;`;{%@9x{*P>zn!*)=LeE#sV~!BX^vhj?hF%{BPQc0qZ#z4iGd50WlK&6}UeaJ2(J45-RX3sK>9D068QLBoofA znLyM7zo)Un0#H=IPGd`?O8_7iU`m%TNV1W}dKQp`b-3uXavz{{w;h193q=w%;!y(( zARJHmm{0LuZ4nak>8IuKy(#`vNi@?fzys>b+=-%tCP=^+5`!ijhZr=Bpa`IN*QbB# z{^ER)NPzdbBEba-P@su~#FQFxMHINa^oCt%=V9JXBqWp?P?$Ug6a*=Q)5R#ST_y*b py8%ea0#Hu4ahX;?YtG91{{R+;q4xlqZzcc$002ovPDHLkV1lpz>;3=$ diff --git a/images/interwiki/meatball-16.png b/images/interwiki/meatball-16.png deleted file mode 100644 index c71fcac349c8cb389b1a4754a5143854d652b0e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1067 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstPBiHe*=6% zT<`T1-|MMxcK>;p67F>JYNb#bDpnV`aV1P{haFeb6Vc-UHg9T*7wJNXz%-D z$KGE%_dPl4``VW8Tc>0|6@!4A3OH{+}i)=&i%i(_5ZcK|E~cV*Z$wz`~Tj# z|M%|we}3)%`+NVtzyJUJ`~UwyGzvyTfXX58Ba(ABFk>(#dAqwXbg;^L06Clm9+AZi z3|#L)n6b933na*1;_2(keu+bx%~W0ePx}_2&=OA<$B>FSv3)oBnhXS7wKqw$P7qX4 zIHlyhkX1y=LXYKp#fZjjV;u>a}3`}Hzzt`9Lv1yi;$ znaGt@SMZumP~E}&Wv^($(f+m#PM#6w?&p*izsWW;>)DXT^1Dc>Dput0osCz8crsjmi_7Cs>AiAKc3G_Rl%{kjCY#Oi_-PJsag~89j=%PcqdR RF9N!k!PC{xWt~$(697`FJR<-A diff --git a/images/interwiki/moinmoin-16.png b/images/interwiki/moinmoin-16.png deleted file mode 100644 index e731a7518b498a6cad99137ad7ac986b5e41d563..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx*Bp9q_EZ7UAn3BBRT^Rni_n+Ahgnp|vd$@?2>_4Y BHZ=eM diff --git a/images/interwiki/moniwiki-16.png b/images/interwiki/moniwiki-16.png deleted file mode 100644 index 8c9451ff2a89db1252c96843373c0be817edd596..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1026 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Xo+h?iE~kEVo7Fxo?NMQu0SC^4mI)0|AH@pLYxI2k;M!QTpvJ~(P@pz3ILr0|ray%vlNs zYnQGCf~`OV0(*hr*xqC3j-5Mq?%K6$_wL<${`~p(@8AEAg3%BdWFe4PG>-$AK?F*I z{DRS(#_&KnRuU)|;pyTSQgJJ_-%;p*0tfSF=6pHXTTlMy>v*IuF^NkNW;K{KVO7KB zAB?lqLQb*<%Bdc@6jfMQus@+~@#Gg$e!2E1Hy@nZ8qT@N-*ZXiKZS}k*ZXYybFC{F YJ__?4`BR_u3up&}r>mdKI;Vst0NPzCQ2+n{ diff --git a/images/interwiki/mozilla-16.png b/images/interwiki/mozilla-16.png deleted file mode 100644 index 769c636340e11f9d2a0b7eb6a84d574dd9563f0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ*P)?@9gaSt*os4-<6T^zln*-e<1(Y>eZ{a-@A8D7MlS80mJ}u z0SKQtbH>fs*!aH-1H=C_K)ecw?*efe5W7I}s#U9Y!PLVrKmdV>nKNfT1{(H16si$K zmjm&CV+al6D=8`c7X*o+82}JK4A3z64>JJB_`e(E3S)?2X{|^lf1sei(+1UtAY{Ww#jt?wfcn3@ zy!=0d5|Evi_8%aC7~Z{m#}1AKK|~<_M{=g1px}QcP=ErR57Iaj7$e5OumVLr$n^jL z1djz!sJcLHd57c@W2lWFi_p^m2m=HVoB>kgf@C|$pqa*ykjAAMgaHBwo)>`0c=vmt z+g3yQpuk*x7A(#H^u|wInF%0(FiZq_r2`t3pnwGh6fWCA7$ATcDb3CR0R{jJCzQv) SYsoAC00008$lEV;LpssXRttnS)g1b?2=6m!X3C08(#xunUgp+ z8f2`@kHjLRiWlgKd=qhS~{ZJYGVQV4-Ow_L4!xW0zZ_?j$SUA;(Wzu)WH zRvZRpSqeq*>+$sT#ov?H(Z(3{eQy{BAq07z|7#23c?-9<+}$NIy>aYiS*|RD%gfC9 zIbFwgo3cHie-@}~)@vBhAv2o=XJ?rhQ>G6OY&I#X-;u*&@%;J${{W+BBZF*`s00000NkvXXu0mjf*!{7g diff --git a/images/interwiki/nosmoke-16.png b/images/interwiki/nosmoke-16.png deleted file mode 100644 index 4fc8c0ef830583b9d36997de80860e1217b83f55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF8d@ zBeIx*fm;ZK886+f`vVj-2=EDU1=0-vCH@l)!hb(F4b;L^666>BpW*3t11})Y&C|s( zq~ca=-$ua$20ToT!X3ON_v%kHJYHg8qOT!P!V>N4tiLMlaKhe%TnUEqq;B<(Kbub- pa8NFK+B!u;KjeU?)}!jjjK}IY`|B&N%mtdr;OXk;vd$@?2>>!*Xh#45 diff --git a/images/interwiki/nsmk-16.png b/images/interwiki/nsmk-16.png deleted file mode 100644 index 60980f7dbf448858554a8e70071d79bfa972882b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 468 zcmV;_0W1EAP)WdH}#2o@43F%ST5_y7O^2XskIMF-Le1PUxR>P(qK00009a7bBm000W` z000W`0Ya=am;e9)Qb|NXRCwB@Qz37IP!Q%VHOM9ika!GrSn4W^BvmyeNK%Cw;TMoC zSu)(z1Y$FIWJQZ2nARfr0aeTG9q?YEgNpT%k9Xwm9rt~A5C9M!u_xv%mrGC-1@`;> zM?WFUvKK-KAVw=-2fN+wm7Z|9TwuH1qAM`8DXr01+>bSJe3+)mlT=k5V7*@RSXXRN zV1}QNWtn$$KA-=m0UG5wip63vSzy+GnfkgYiqkD155`m1^@gYCd7Lw)2d?W5G^p#^ z>F%@zR;v}<8cw9|BP2-zHkqO*V6)k@O8UP4c{m*4o?!t^)1EQkaU9+e9|yKXH5k2I zRTUfOfU;p2z^9NT2}#rRiz$!7A<(yNyUDRE3lQ`9{3`D0bn;OodVcp8q%6xfCf=0c z0t#UmHvGD6{IkLspRy>5j!kkL$B^gw`)z@H2!i1FL-WX^zw<9UY``HB@Wwl diff --git a/images/interwiki/openwiki-16.png b/images/interwiki/openwiki-16.png deleted file mode 100644 index a7b6c340e4a2c55ee35f2753f3f5f026f08cf42b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1102 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Xo+h?iE~kEVo7FxoB|m zLR>jGI0OU)G&MC14Gk?VEuEa4yu7@Ef`X!=qLP!7v$L~{i;JtPtC>!1ZE0!g>FJp= zWy+j6bCxb$x_0f_ty{P5-MjbLv18}Xox67J+P!=C9zJ~d=+UFcj~_pO{`~dp*Kgmx zegFRbr%#_gfByXK+qduEzyJF6>;M1%Ko^aI(GVC6A#lRreiP6gd?i7C!N8P>01U1N z?wkP1Ec0}645_%4+Us3*$UuPQHb?K;{*5~4CFUpuG|l)eFBqY!vh~IHRc5^(o$EiE zK3bDs$~7>`Yd4DyDNO%?2T(D z+pL!QWVveo!ulWbDVG-2EjqE8<7nGexr0aMExsLozALN!L7D1?*Di;RH7>GcDMnQ0 w9{&DuNoBU>=AyGZ7w(xKV-S~bU$wu7|K3}PDc>aOZ-K(p)78&qol`;+08z}*Pyhe` diff --git a/images/interwiki/php-16.png b/images/interwiki/php-16.png deleted file mode 100644 index 187f737a216f0365d8ec351bb074c08bda74d9ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VW1=13d>cwSSA3S{j_wV2T z|NpP$_U;CXGA4PuyRiPqe|a3p@%40Z45_%)dgdVK0RtXp2lhP;ioz@AEqKe&xA<@R zs(VWVY>zB#=dmyoVZQW#g3o)E9M)trG+_awF2&RiaDt;G}I0=FRpN{&Er?BWL2f5#RATAy4?aE4o@pI zem07}eVQdEMpZlYm`a5-rPV45`hCCh)Bi62$5|b35a8~iQ+e!m;{CVm`#F6mOy$z0@okK3$<{qO1acp7Mf}*sR@FSRazBk^+5~quK$9Mp7TAQ z17E&R2hLmDdmmlZd`B|?U{zsTPGuX_2R3B9d-H95*;-S|KUI2UtoUqcc>fD`_79H~ zLE|jMt2b;I|E8@q3pADrJ^6nv+8!*exR_Z@quX{`09xAXbIa_)p_>3SfbHG=c|ZW< z5DI_@KoTMaFou|5tPwU4*C64L7)TtV8qhMPF`_AAlrV-E!;BHe36qp5$~?>rWQH(@ zSsAkmW)WdAW+`S>#A<|d#Cb-_Ipg(`Tu?3nmxyb~eay?0S16AWuR>l$e2xf#h2SC! z8Y+A$LMkF8;!IQ|NK~`EbFj!#5!%Au|BXqbPhO|5jlsQ z4_xN>#Fde&Sf3K#qrMM)pZKAza2j|z2wWHjVH`$r5Y-vQaXHSIMoE$>PLd?8RMIr6 zR@22KSzKJK)iTv;zhzxp{@>S3-*{8@Aflvt`~LGWK(3?yuHf%NZcG2cd2h5-dioeT zhTBhny}A{@@@@B#p3Up7tRdfb?iv~V^u33~XWq=*{XKmbi}#K1yq5pk0<{+x9)+Sw+k&F+}k>E{=?C+sZ(cf{l5XpIBHtvbMg#$M?X{@Tr5tbwGecpGSu zfx#Uyv0I{I4=pX9n3+BH@OTy(`P|p%o}}c*88g1@+Uv6aJQb`Z*X%zG%)^mS#w%*ZRCBYQD*qBl@zs;7%%NW~oA^X@{240u=r zF5Ax#J5a*0_xnAk_22gk6p00H`SCctf5}Dxzsfy!_TDT_iU*z+xG)8l@q`q%cdA^x zuw2B~Gd(2iq>N^~#=FWa@4qeQ9L5;5))-?@N_7Tz2ZNtv ztwn2%a}FT{#+Yst|7uXzHO3gEltfX45aRPV0+0aHDa_}P=TH=|*+A3m@O}#fgki*R z*kdw*ruhhWFi;8>3s|k7ETL%{zyOXQh{>`D@4*;Yua8rPZB$q;yJfdG-vJSWfn+p- zB!Q}G)14ta>qnl-7o2lgz~YgCAdX|?cubI9?NMQu0SC^4mI)0|AH@pLYxI2k;M!QTpvJ~(P@pz3ILr0|ray%vlNs zYnQGCf~`OV0(*hr*xqC3j-5Mq?%K6$_wL<${`~p(@8AEAg3%BdWFe4PG>-$AK?F*I z{DRS(#_&KnRuU)|;pyTSQgJJ_-%;p*0tfSF=6pHXTTlMy>v*IuF^NkNW;K{KVO7KB zAB?lqLQb*<%Bdc@6jfMQus@+~@#Gg$e!2E1Hy@nZ8qT@N-*ZXiKZS}k*ZXYybFC{F YJ__?4`BR_u3up&}r>mdKI;Vst0NPzCQ2+n{ diff --git a/images/interwiki/sfreaders-16.png b/images/interwiki/sfreaders-16.png deleted file mode 100644 index a055cfa9f02d9bb6d557956ab8131d6f8af8bb2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 569 zcmV-90>=G`P)LkHw>^N=pF|fY1F8#~&-zS~hd*!M(eCh1@!+ zM5}?3GptrWg|u~D*JrMBEi4EGV0Qi;snhNCExVAM$3w)Jq>8;|$* zivU{9b~0rIJYWG2EZeqi`}Lc*>2%Ua8WNLEKG$otlXCg#(NU$*XacY-OV{;Y&t$IW z5|JcIrrCe-^3{)@ox{WDcZ#=FQc@|yG)(}Ob(u;Tkw_$;+hvR~Qk1Q&>sm+?C9zVi z0XTSg|8ePnb6zSv@;r}-0v`C>2O!E!j>V&y%&w}c;f+wz*a0wbh5$5812A6~5fPCn zF-cXaSS;jn835afM4^z6Z0elGvv-4K_3_#Mj8H-0}k(L09v*S1b7-O^0fRKlLh7QsaQqmqq9u;W*00001bW%=J z06^y0W&i*H0b)x>L>~nW5WN5Z0E$UOK~#9!ZI59Sf*=e)*#<&M6qpL4_W%E7o7!1- zy>IWa-43Px0)RxPYQq3F_VaAq#W@XRuSaP8&HEP6hPyaww+FJ}A%XT40~AyDj>So0QC7$P$#@hz-lVqRUY`+!nY7HT~Pm?Fkn&hM1+ bqu;y%hTaIBW64(z00000NkvXXu0mjfpl6LK diff --git a/images/interwiki/sv-16.png b/images/interwiki/sv-16.png deleted file mode 100644 index 3056886828f1359b4980e798c28cab23f0ae5ea8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmVFr z+37#9&kyjUurQ6p(nf-0Nh3%IXdx&hfq+@UF4u?{#MY}~<$2QScg2qV_EzEC}X1aKYrs3uk)z8+wu zLB|oR3vWPryx3a6I}6T27!hm3*(9JlzQ6#409r-NwhTIs5br_yAOpMzh=VXBiWBlo zlc&i9A($2ccEz4m%MnJCh9hE{rxYB1#C*r1+1vDtqN{kPx_ zK?+2KvIZw$bbvNFs5uA?KMs$%aC;YE5!h4!@Al?7*t?8#7ZDLw<~ulnSKn@8OpDay zByon5ilc59*gc7`{{1S?I?H(PL4{Hl5)PCF{5Le28zlus4TVk6JbyQYn$6pRv;FDevuN}99<8wHS|U`MOibl yLNhA(7{uYQ4_dcIlf4}|qrxV}*eCA}~Rpqk? zRIF6uHDO?2U`#$J`svqe1_p*|!<~9Ut_%zeCtk0ad?n`3zhB6%U}0j*)mdU88o~ro z&A`B*$ZG^)EWcfarka6);m^Nc%WqdPFfcHoN&No*^V{E#SiSn~@5kT&ej75CD{CWG}%Y}dc|H3`sCX<=0K9zxi zfiZM9y0;+Q&%fW^`+VlZuNQ)BQi{ArysW|yafAklo_4cSa@=~jV(j3Hg)C@60S}+g zzu$7O@USwn|Nj5;%kQ_B-tFH1Z2tB4hfp-IFtLepD8B#oY~GFBOYe3Iut~5obNv4M z)yM5<QK$!8;-MT*v49pAxJ|V6Q z9AF^8!65(v5&{w+pr{B$ii(;LV5n)Rsc8rSmWGywhL#ZEWa(sS=>!2@PF_w1>JVR&$#SIuZz)b>uxXXiMlI+kWR z+~9uEmH_5}up$bRlS8EG#>fo3y!y85}Sb4q9e0C@jN AUjP6A diff --git a/images/interwiki/uploads-16.png b/images/interwiki/uploads-16.png deleted file mode 100644 index 8f7fe9ad5b519493ac270ce16cee592ddd23b526..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 967 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJdx@v7EBj>*HZf+Q-YDHtpb%$) zM`SSr1J?%-W^`I(GJ}DEnIXU@#1$yX%P%Mul%$wZ8yFZUpWCd_x1|t5SD3<8?nmd=Zrpg9r;qU_`zof(XV@~%uWJ@yc)@w& b?B89CC1M-}Upgmo?bd=!)6x;!7 zgajQe5)?>KP;h}nQAAikD0scbYYMWvgbhL>9V1zuVmyER|Az%3fUv+@B*5Om;ao*; zdy^0XNs{2bM=8a4Jf_iT0IUGlG8bRo+!MdN&KPvhdKJ@$)aO(e34X%T$sNWRgb--0 z5kl}j8bPxOpnf%oHy#3U61b#z4(Mbztcgb;)faKj2x|p0;Zezm$RBTQ2^`H jv8a4J-}pQv{11Epbn}uK-QSEb00000NkvXXu0mjfe-WW2 diff --git a/images/interwiki/usemod-16.png b/images/interwiki/usemod-16.png deleted file mode 100644 index f5bf7336a00d7561f54d1ff08c7b6db89f9d2b25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1051 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJdx@v7EBj?O8E$Dt`Kf2UfkK=G z9+AZi4BSE>%y{W;-5&-9W`+Qt5LX5c2E%LrEwBCey7xcm-v6k3|C8_i&wl>D`1$|p z=l@%t|L=MJe+m%2|3Byb|E2H$uYLc2>-+zEf$01HW8eRu`~LqP5dHuE{Qv*=|Nnpg z|Nnn>^8aEW%Kl$n{J#Z=s{i)@QOo}+J^$xS`M-3||Fuj1Z(aL;>(>8!xBfr2_y4hD z|F50pd&GKDf`>Snc=%=q~~e)2ZyC-+js)XR-q9>jCZ zOn2Em?Yr>C`Qaa=1gx!BykGpgi`1FVfkK=G z9+AZi4BSE>%y{W;-5&-9W`+Qt5Lbrh?ief`WpgqJol>le4pd zD7&YpWlFW-oNB|RJ(g>ycx|0xxpnQ7y-S_;u1(&%cki*aLC3acAKO}e?%cU+$CB@z zn{w~oz3=a*e1CuL|Nr;@|9}5K3PwX<5QjjN-5*|H24O4-@(X5gcy=QV$O-jyaSW-r zwf4NFSc3u&OTZ%K9gn+?ux|P#)6O52XA1JEcTq%!6(YF{q|R<4uf5J zM#W4!&)>SN@}N2`Se$Xm?itckuOvx_?I~xt`dnXb^+jfX)z9<#fEF-#y85}Sb4q9e E0GA;XPyhe` diff --git a/images/interwiki/wiki-16.png b/images/interwiki/wiki-16.png deleted file mode 100644 index 328621c95e85207906325091c87b568d8920399a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1222 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Xo+h?iE~kEVo7FxoK^@rlzK+r)OkjWM*b&Wo6~&=H}()6%-T{7Z;b5 zl$4c~Ra8_|RaI42SJ%|k)YjJ4)z#J4*Kbl~X=rF@YHDg}X=!h7@9600?Ck97>gw+9 z?&<02?d|RB>+A3DpEz;iT;{ z`~?dZEL^y7(V|6*7cXA2WXZB+%a$)+zGB6Sl`B`STD5BR>eXx3tXaQ){e}%2Hf`Fp zdGqG2Teoi8wr$6b9XogK+_h`h?%lih?%lg@-@g6(_a8WL;LxE%hYueuy?XW9wQDzT-n@0|*6rK3 z@7%d__wL>M_wPS=@Ziy-M~@#re)8nW)2C0LJ$v^2`STYqUc7qs>hcEPLYlK|SxgEdN7BuPo`R_Ij+YjeQC*O1N$!si}Y>{H;eD#;q#l`<7DM!Bl?kLXw z^7Z|wKLu*1CLIuS4B@(e)3;hNVxjj=zUbD1FJ0cXD^wje?{BJkt7f4HH)t!xdu9C>XKka+z(VhvpSrUnrYzKuWZjaMb@8?MUJyXcpa!2~E z^=G4;!+Lc$ZRNJH`SkLQYtLsXtMWUin`Sk5?UQ=5>2c?~v@3ffE;CxF~$M+7(n{F?hQAxvX<3JS0Un>+5q$#OU9rG*y&V=M?lx7&3bhbPJB^WiY$ufuQ{{fRKfZ`xWY z6!h=9Wm=P)zSlPl0{|{BE>}OUzW3o!Jw$6rqgvnxmTBca<(8M0DWw1~@CQ}7%4IXh zt>XzZ4#(z=`Sj~)<-^LhygeF^&Q8x#sZTi!S4Y#0U=Z>l>ngKZkNmD z7ZHou>qRPrR0y}3#jJVI%x1H%1&MdlY8Xa(KE1KI!He`F4B!i9 SM*a diff --git a/images/interwiki/xper-16.png b/images/interwiki/xper-16.png deleted file mode 100644 index fed39f81ef4255f076139e04c7a13f5801b8413e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1110 zcmeHG-%Aux6uzsGxAoV}q%K<2JXCJ>YsIL6UK(9;$J%67%%MWq)L?s%#v&N#A?BeU zgQZOga;aV>h1iIVNeCA9rPW#*RA_>rAq$#_V1$zUBHXV21wHoAf$#h7Ih^m_!-aFR zBXPVkTo(oaRL0v{lU&g%U@7N@ebt>@%7)`7V`U5FC8&D+(OthyUfM9!)~f;ru1nISt0HF+F5{eM25CMoFe}gkZB0?I*(7+PFGQ=tt zkSbs#U`tRVf{w(fDvF_E$PffWh?-b7qo%1krs10gGfiwdCV`L$0!b30DTF{`OC(3E6v<$m zu~^2<*lF8#b2+_`^Kyk`(y>yG!yM0XUFQ0(=LDWhJ&*Z{;#;O->c`aF-j>irMgIj5f80C`dUtp|-BEkp zeq=dsCbvC22WsGz#>U2l#luyVzq0g3BsClDzg)}?^xT>opKsc@CEPdLp51is?(|Y^ z|JaD(4?HiK7#%2H#KD2r-#Wg$v+65qheqFj9XArqpSw3l+R*?x8bJS^D8CGTVK(TdZ(wje80Gx Oj}PLpMC&uD@A@D6e&rswlyT3cH?J3G6(J9~ROXU?2DfBx*bbLY;V zKeu7(@>#2QE?Ts3#flYc*RI{LVco`!>-X*3d+^}FLx&C?K79D-(WA$X9X);e^x3m# z&Ye4V{`~n17cN}6a`D==OINR6y?*`5&70S5-MV%6?%n(M?>=~N|G|R?j~+dG{P^+H zr%#_fd-nYK^OrAQzJ2@p-MhCRKD__<@#CjYAHRJ0^6lHV@87@u`t|eIuV24^|Nip_ zi2nTj3q*ha{rmU-|9@aGjDpb+KnsBxQ+|2?g#=52{DOgr1O+gtuAP|#l$_z|;uunK zD_OvSoyUfQLHJ`Uqp{eEj#>MbF69^4v1-?52NxZgoH@07_U?^&Qdt?Hu&Zawma`@{ zwsX$3M$SB-WEXbq+O%cw^7_7&Z4)r%o8_gJ^@>ZYjjd{zfS_cih{E9m%5M*{H`T}q zoM8}RH2nEPK}ha}Qh=#|S_qTIq4OO)5)qOWB1=_{9CdMZb#-BBRoJ#!fq4N3gY5x@ U6SHLY{sQ^Q)78&qol`;+0Ibyu9smFU diff --git a/images/interwiki/yahoo-16.png b/images/interwiki/yahoo-16.png deleted file mode 100644 index bbe95097e85e0d17c2ab3f73341557e78faedf7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9E0F%rz##p<7bL=1666=m z;PC858i=b|>A!@8&OhT5ON>9rCMUd4PI#7>ke2XZ df8!b!hSvA2(tC4Fb^tXnc)I$ztaD0e0stxTCM*B| diff --git a/images/interwiki/zh-16.png b/images/interwiki/zh-16.png deleted file mode 100644 index d2196f40e8ddcc54d01acc47eb11a380192570ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 506 zcmVBb5Pkb`%O2(o zg|)G;QwvQjt*mV9tStRqmi_>L0G){@2ce+U#Do|VMFEkIWskjc_7DQW3Y^RA&Sv+$ znK!$~vMj?o#>iJv>4(9^Ig);hB1@DZ+}MKc*C3w`AdA}=wq79u4RDT^`v>eb z`-tQCm@JkPz8(gspmb%>xz-pq=rDO$szV>u@m32l9A(&G8Q!B1AOd5I_DJrB@ra>x zX`m00`_w*KA-XY#A(2KgSSi8yWY1cwW)gfO&9f#)?%rA{Ls40%-4sC;2#6#Sz$ee8 zLn+#v5;!|V=SI&m8v+aAC|ickqr`~jk`r+B!Lo&B<^}1^tp%{8GdpJ%{X`<^Nksm- zh;ZH(B#i9?NMQu3#ZK{gCb#Uw}fK1s;*b3=G^tAk28_ZrvXS24;o;pAc84 z|Np(byn=#)qN1XblasTvvx|$1tE;P9T3UK~dZtX7GH1@5rAwEtUAuPc)~$Q@?mc$w z*tKid?%lih{Q2|u@85s_{{8*w?YJ^ml^L1aqI>BUzIkeh5hC$iL3CynE)4yt8$j&JxS-{4#Tz t@?BeO^NcTZ69f`DCwR@RuX)=o{_+afLQ7kx7@#{CJYD@<);T3K0RXn^NH_oh diff --git a/images/list.gif b/images/list.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce3f61a1a40451d92c675b0581b63083555fbf9a GIT binary patch literal 292 zcmZ?wbhEHb6k!lyIKsd%YgXODh3!k0bT3=hw|sg3+O^ZSZe6%%&&orGHk~}V>*B>D z*RP+sd-uwdCwJexdH(+W>rbEF|NQy=`}eOufByLX{oDWl{~7QC9gr-@E(X?>38sN5 zne(oMxHcQ?DUjJMsA?0m?)`7&3C$j<9RU*3d>kn|q!?6vSQ{7^Bt&?Z9r2WOXb)N` zy83C=Ozs8?N4dQDXWDkHib%QpEPrXBfc)tKXFdkb683V@{Mahduu%5g&PtzNwoo>9 zzJ_j}=4r{iJhQseor_pQSvlDmxhFM>CWUTh@Lp2o7QyQ=Wr>rs_c9*0b-pU*HYcs@ UM0E6wF6f&mXOksiB~qh=_*X-Pl-HR(yPVOG`_|#ld7` zV!61r($UP7l#w$tGwSK&A^8LW000jFEC2ui01p5R000C=@X1LlU4~Jn5*3c4OiAD% zg_MMd_Aq9!Oi1WHN;pdcONI^#04R_&fQ?BGs5t-~yJcwbAUulW9q2h+ diff --git a/images/reply.gif b/images/reply.gif new file mode 100644 index 0000000000000000000000000000000000000000..f78e913b4833d900ac9f81aa3a4f37cb27f29554 GIT binary patch literal 300 zcmZ?wbhEHb6k!lyIKsd%YgXODh3!k0bT3=hw|sg3+O^ZSZe6%%&&orGHk~}V>*B>D z*RP+sd-uwdCwJexdH(+W>rbEF|NQy=`}eOufByLX{oDWl{~7QC9gr-@E(X?(38sN5 zne(oMxHcQ?DUjJMsA?0m?)`7&3C$j<9y(%?4krZ?Gn7PljxAE0!ZYcxs{+G|B3>?+ zqg`uFW;HM=2fold7JkYhGH}5`cIR+L{o7yJ(sLOEYKuzJt611s7#M5Xie0K=`}(j12=M@m-<`Up@-t6Rd c+S$X*!seo-orsQ}(G7hQC5^kPT8a$T0Id^t2LJ#7 literal 0 HcmV?d00001 diff --git a/images/reply_b.gif b/images/reply_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..c391970fc9b11a3bd2d0bfa86076f24cc78a8523 GIT binary patch literal 296 zcmZ?wbhEHb6k!lyIKsfNfB&96dv=~YdF<%XLr0DrJbd`Tp+ox*9N2sN_RZ_puU@)z z;oP}12M+A}{{7qAw{PCOdHwqJtCufdJb(V|$&<$q9^C)`|NrmbzkmJu_4Vu5PoF+9 zU;rJE2*@r5*0l+#u_>AJrmG6EJ=|vyBcQCX@JFlYlaC<>76fD{eo;7ZBx&XX7bW5L zS4n$hCQRjQ7JN}8KErF*|YM{p-m@G?z(vK$o1=I z?%uufNh0Re*J7FC?qci#@ MN*WhcwG*B>D z*RP+sd-uwdCwJexdH(+W>rbEFfBg9F=g;rozkmJt^T+q^-~Rvq&wv}~fTTcnF|Zz6 z;2N5eIZrgzv)N!zfz0k8Rh!^-?|&;#VD3!y&=HF~&^b{<$B*r#Yx2f`2#Fxh#}fiv z7EC?p63D76wM1W(GE{e7?FQzU(x%w6r$X zo`fV`uF}b=1q@ugy}|rew~Wt}4X#aGybpfU?5EA5%r2d<;3TARt5Wi^AarUKNIM zd=om8jTVL|1$nzPE=ZUY(4`>Y5uwq{;_A%FGwXOu)0_^46L-s){lWY@X5yL1Jz\nIf your settings are right,
    excute \"flush privileges\" command as root user under MySQL
    \n\n

    \n
    [ BACK ]

    \n Copyleft 1999-2001 JSBoard Open Project"; + +$langs[a_t1] = "Board Name"; +$langs[a_t2] = "Articles"; +$langs[a_t3] = "Today"; +$langs[a_t4] = "Total"; +$langs[a_t5] = "Options"; +$langs[a_t6] = "Remove"; +$langs[a_t7] = "View"; +$langs[a_t8] = "Conf"; +$langs[a_t9] = "Del"; +$langs[a_t10] = "Admin info"; +$langs[a_t11] = "logout"; +$langs[a_t12] = "Create DB"; +$langs[a_t13] = "Regist"; +$langs[a_t14] = "Delete DB"; +$langs[a_t15] = "Global Config"; +$langs[a_t16] = "Whole"; +$langs[a_t17] = "Stat"; +$langs[a_t18] = "Per WHOLE"; +$langs[a_t19] = "Per Alphabat"; + +$langs[a_del_cm] = "Really Delete?"; +$langs[a_act_fm] = "Go to first page"; +$langs[a_act_lm] = "Go to last page"; +$langs[a_act_pm] = "Go to privious page"; +$langs[a_act_nm] = "Go to next page"; +$langs[a_act_cp] = "Specify New Password"; + +# Inatllation +$langs[waitm] = "Checking Environment to use JSBoard
    \nResult will be displayed after 5 sec.

    If U use Netscape for Linux or Other UNIX,
    then U will install manualy by hands
    that refer to QUICK_INSTALL document"; +$langs[wait] = "[ Wait 5 seconds ]"; +$lnags[os_check] ="If OS isn't Linux, change shell command in jsboard/include/exec.ph to corresponding command in your OS"; +$langs[mcheck] = "Failed MySQL login. Check the MySQL root password in jsbaord/installer/include/passwd.ph. If password is right, check if PHP was compiled with --with-mysql option.
    If you use external DB server, refer to QUICK_INSTALL document"; +$langs[ccheck] = "Different number of columns for db table in mysql database. U must modify db query at 37th line of jsboard/Installer/act.php"; +$langs[echeck] = "exec() function is not working. Checked your path to php3.ini or php.ini configuration file"; +$langs[icheck] = "Add index.php to DirectoryIndex directive in httpd.conf and restart
    \napache web server."; +$langs[pcheck] = "Must excute root.sh in jsboard/Installer/script before Installation"; +$langs[auser] = "If U are account user, refer to QUICK_INSTALL document"; + +$langs[inst_r] = "Reset"; +$langs[sql_int_err] = "

    Failed to connect SQL Server!

    \nCheck the MySQL Root Password\n\n

    \n[ BACK ]

    \n Copyleft 1999-2001 JSBoard Open Project"; +$langs[inst_chk_varp] = "Specified DB password to use in DB."; +$langs[inst_chk_varn] = "Specified DB name to use in DB."; +$langs[inst_chk_varu] = "Specified DB user to use in DB."; +$langs[inst_ndb] = "DB name must start alphabet"; +$langs[inst_udb] = "DB user name must start alphabet"; +$langs[inst_adb] = "DB name that you specified already exists."; +$langs[inst_cudb] = "DB user that you specified already exists."; +$langs[inst_error] = "Dream on your work that give no data"; + +$langs[regi_ment] = "Specitify unused DB name and DB user in MySQL"; +$langs[first_acc] = "Registration completed.\nYou will be taken to Admin Page.\n\nDefault password for Admin Page is set 0000."; +?> diff --git a/include/LANG/ko.ph b/include/LANG/ko.ph new file mode 100644 index 00000000..051aca24 --- /dev/null +++ b/include/LANG/ko.ph @@ -0,0 +1,382 @@ + ΰ ڰ ȵ˴ϴ."; +$langs[brlist_m] = "Allow Browser LIST ۵ Agent մϴ. ϴ ̰ ϱ ؼ jsboard/config allow_browser.txt file ؾ ϸ, nobody ־ մϴ. Netscape IE Mozilla ϳ մϴ.

    ΰ ڰ ȵ˴ϴ."; + +# ADMIN +$langs[a_reset] = "н ʱȭ"; +$langs[sql_na] = "

    DB ῡ и ߽ϴ!

    \njsboard/config/global.ph db server, db user, db password
    \nȮ ֽʽÿ\n ̻ ٸ MySQL root α
    \nϿ flush privileges Ͻʽÿ
    \n\n

    \n[ ư ]

    \n Copyleft 1999-2001 JSBoard Open Project"; + +$langs[a_t1] = "Խ ̸"; +$langs[a_t2] = "Խù ϼ"; +$langs[a_t3] = ""; +$langs[a_t4] = "հ"; +$langs[a_t5] = "ɼ"; +$langs[a_t6] = ""; +$langs[a_t7] = ""; +$langs[a_t8] = ""; +$langs[a_t9] = ""; +$langs[a_t10] = "н"; +$langs[a_t11] = "α׾ƿ"; +$langs[a_t12] = "Խ "; +$langs[a_t13] = ""; +$langs[a_t14] = "Խ "; +$langs[a_t15] = " "; +$langs[a_t16] = "ü"; +$langs[a_t17] = ""; +$langs[a_t18] = "ü"; +$langs[a_t19] = "ĺ"; + +$langs[a_del_cm] = "¥ ?"; +$langs[a_act_fm] = "ù page ̵"; +$langs[a_act_lm] = " page ̵"; +$langs[a_act_pm] = " ̵"; +$langs[a_act_nm] = " ̵"; +$langs[a_act_cp] = " н带 Ͻʽÿ"; + +# Inatllation +$langs[waitm] = "Jsboard ϱ ȯ ˻ϰ ֽϴ
    \n5 Ŀ Ǽ ֽϴ

    Linux Browser ϽŴٸ
    ڵ Ѿ ֽϴ.
    ̶ QUICK_INSTALL ϼż ġ Ͻʽÿ"; +$langs[wait] = "[ 5ʰ ٷ ּ ]"; +$lnags[os_check] ="Linux ƴ ٸ OS 쿡 jsboard/include/exec.ph \nshell ɵ option ּž մϴ"; +$langs[mcheck] = "MySQL login и ߽ϴ.\njsboard/Installer/include/passwd.ph MySQL root\npassword Ȯ Ȯ ֽð PHP ġÿ\n--with-mysql ɼ  Ȯ ֽʽÿ
    \n DB server Ǿ ִٸ QuickInstall \nϿ ġ Ͻñ ٶϴ"; +$langs[ccheck] = "mysql database db table ÷ Ʋϴ.\njabord/Installer/act.php 37° query\n÷ ֽñ ٶϴ"; +$langs[echeck] = "exec() Լ ϰ ʽϴ.\nexec() Լ ϱ ؼ php3.ini Ǵ php4\nphp.ini ġ ־ մϴ.\nphpinfo() Լ Ͽ php,ini ġ ľ\nĿ ġ php.ini ִ Ȯ ֽʽÿ"; +$langs[icheck] = "httpd.conf DirectoryIndex ڿ index.php ߰
    \n ֽð apache Ͻʽÿ."; +$langs[pcheck] = "Install ϱ jsboard/Installer/script\nroot.sh ּž մϴ. INSTALL\nϽʽÿ"; +$langs[auser] = " ġڴ QUICK_INSTALL Ͽ ġϽʽÿ"; + +$langs[inst_r] = "ʱȭ"; +$langs[inst_sql_err] = "

    DB ῡ и ߽ϴ!

    \nMySQL Root password
    \nȮ ֽʽÿ\n
    \n\n

    \n[ ư ]

    \n Copyleft 1999-2001 JSBoard Open Project"; +$langs[inst_chk_varp] = "DB н带 ʾҽϴ."; +$langs[inst_chk_varn] = "DB DB ̸ ʾҽϴ."; +$langs[inst_chk_varu] = "DB DB user ʾҽϴ."; + +$langs[inst_ndb] = "ڷ ϴ DB ̸ Ҽ ϴ."; +$langs[isnt_udb] = "ڷ ϴ DB user Ҽ ϴ."; +$langs[inst_adb] = "Ͻ DB ̸ ̹ մϴ."; +$langs[inst_cudb] = "Ͻ DB user ̹ մϴ."; +$langs[inst_error] = "հ ̻ Ͻ÷ ϴ :-)"; + +$langs[regi_ment] = "DB name DB user MySQL Ǿ ϼž մϴ."; +$langs[first_acc] = " Ϸ Ǿϴ.\nAdmin Page ̵ մϴ.\nAdmin Page ʱ Password\n0000 Դϴ."; +?> diff --git a/include/README.LANG b/include/README.LANG new file mode 100644 index 00000000..c0daeb84 --- /dev/null +++ b/include/README.LANG @@ -0,0 +1,15 @@ +Multi language ϱ ؼ LANG directory +ִ languae file ڵ̸ copy Ѵ. + + Ϻ ڰ Ѵٸ + +cp ko.ph jp.ph + + copy Ѵ Ϻ ϸ ȴ. +׸ ü ο ڵ带 $lang[code] ־ָ +Ǹ, Խ ڿ ڵ ̵ȴ. + + Ұ LANG directory language file ٸ + ϸ ȵȴ. + +. 2000.1.18 diff --git a/include/auth.ph b/include/auth.ph new file mode 100644 index 00000000..0ce4eb01 --- /dev/null +++ b/include/auth.ph @@ -0,0 +1,32 @@ + diff --git a/include/check.ph b/include/check.ph new file mode 100644 index 00000000..32339c55 --- /dev/null +++ b/include/check.ph @@ -0,0 +1,252 @@ + +# $i -> null ̶ 1 +# $t -> table ̸ ˻ 1 +# +function meta_char_check($name,$i=0,$t=0) { + if (!$i && !trim($name)) print_error(" $name Value Name Missing! You must specify a value"); + if ($t && !eregi("^[a-zA-Z]",$name)) print_error("$name Value must start with an alphabet"); + if (eregi("[^a-z0-9_\-]",$name)) print_error("Can't use special characters except alphabat, numberlic , _, - charcters"); + if ($t && eregi("^as$",$name)) print_error("Cat't use table name as "as""); +} + +# ڿ ѱ ԵǾ ִ ˻ϴ Լ +# +# ord - ASCII +# http://www.php.net/manual/function.ord.php +function is_hangul($char) { + # Ư ڰ ѱ (0xA1A1 - 0xFEFE) ִ ˻ + $char = ord($char); + + if($char >= 0xa1 && $char <= 0xfe) + return 1; +} + +# ĺ ׸ 빮(0x41 - 0x5a) ҹ(0x61 - 0x7a) +# ˻ϴ Լ +# +# ord - ASCII +# http://www.php.net/manual/function.ord.php +function is_alpha($char) { + $char = ord($char); + + if($char >= 0x61 && $char <= 0x7a) + return 1; + if($char >= 0x41 && $char <= 0x5a) + return 2; +} + +# URL Ȯ ˻ϴ Լ +# +# eregi - ǥ ̿ ˻ (ҹ ) +# http://www.php.net/manual/function.eregi.php +# eregi_replace - ǥ ̿ ġȯ (ҹ ) +# http://www.php.net/manual/function.eregi-replace.php +function check_url($url) { + $url = trim($url); + + # (http://, ftp://...) Ÿ κ ⺻ + # http:// + if(!eregi("^(http://|https://|ftp://|telnet://|news://)", $url)) + $url = eregi_replace("^", "http://", $url); + + if(is_hangul($url)) return; + + if(!eregi("(http|https|ftp|telnet|news):\/\/[\xA1-\xFEa-z0-9-]+\.[][\xA1-\xFEa-zA-Z0-9:&#@=_~%\-\?\/\.\+]+", $url)) + return; + + return $url; +} + +# E-MAIL ּҰ Ȯ ˻ϴ Լ +# +# eregi - ǥ ̿ ˻ (ҹ ) +# http://www.php.net/manual/function.eregi.php +function check_email($email) { + $url = trim($email); + + if(is_hangul($url)) return; + + if(!eregi("^[\xA1-\xFEa-z0-9_-]+@[\xA1-\xFEa-z0-9-]+\.[a-z0-9-]+", $email)) + return; + + return $email; +} + +# н Լ +# +# crpyt - ڿ DES ȣȭ +# http://www.php.net/manual/function.crypt.php +function check_passwd($table, $no, $passwd) { + global $sadmin, $admin; + + if ($table && $no) { + $result = sql_query("SELECT passwd FROM $table WHERE no = $no"); + $crypt = sql_result($result, 0, "passwd"); + sql_free_result($result); + } + + $spasswd = crypt($passwd,$sadmin[passwd]); + $upasswd = crypt($passwd,$admin[passwd]); + + if(crypt($passwd, $crypt) == $crypt || $sadmin[passwd] == $spasswd || $admin[passwd] == $upasswd) { + return 1; + } +} + +# ˻ Լ +function check_spam($str, $spam_list = "config/spam_list.txt") { + $open_fail = "Don't open spam list file"; + $list = file_operate($spam_list,"r",$open_fail,0,1); + + # $list 迭 ŭ for $spam_list Ͽ Ǿ ִ + # ڿ ġϴ ڿ $spam_str ִ ˻, + # Ǵϰ 1 ȯ, 0 ȯ + for($co = 0; $co < count($list); $co++) { + $list[$co] = eregi_replace("(\r|\n)","",$list[$co]); + if($list[$co] && eregi($list[$co], $str)) { + return 1; + } + } + return 0; +} + +# üũ +# file() - file о پ 迭 +# +function chk_spam_browser($file = "config/allow_browser.txt") { + $agent_env = getenv("HTTP_USER_AGENT"); + + if(@file_exists($file)) { + $br = file($file); + for($i=0;$i diff --git a/include/check.php b/include/check.php deleted file mode 100644 index 6985e374..00000000 --- a/include/check.php +++ /dev/null @@ -1,607 +0,0 @@ - -# $i -> null ̶ 1 -# $t -> table ̸ ˻ 1 -# -function meta_char_check($name,$i=0,$t=0) { - if (!$i && !trim($name)) print_error("Table Value Name Missing! You must specify a value",250,150,1); - if ($t && !preg_match("/^[a-z]/i",$name)) print_error("$name Value must start with an alphabet",250,150,1); - if (preg_match("/[^a-z0-9_-]/i",$name)) print_error("Can't use special characters except alphabat, numberlic , _, - charcters",250,150,1); - if ($t && preg_match("/^as$/i",$name)) print_error("Cat't use table name as "as"",250,150,1); -} - -# αο Ǵ Password Լ -# -function compare_pass($l) { - global $_, $edb; - $r = get_authinfo($l['id'],$edb['crypts']); - - if($edb['uses'] && $edb['crypts']) { - if (crypt($r['passwd'],$l['pass']) != $l['pass']) print_pwerror($_('ua_pw_c')); - } else { - if ($r['passwd'] != $l['pass']) print_pwerror($_('ua_pw_c')); - } -} - -# ڿ ѱ ԵǾ ִ ˻ϴ Լ -# -# ord - ASCII -# http://www.php.net/manual/function.ord.php -function is_hangul($char) { - # Ư ڰ ѱ (0xA1A1 - 0xFEFE) ִ ˻ - $char = ord($char); - - if($char >= 0xa1 && $char <= 0xfe) - return 1; -} - -# ĺ ׸ 빮(0x41 - 0x5a) ҹ(0x61 - 0x7a) -# ˻ϴ Լ -# -# ord - ASCII -# http://www.php.net/manual/function.ord.php -function is_alpha($char) { - $char = ord($char); - - if($char >= 0x61 && $char <= 0x7a) - return 1; - if($char >= 0x41 && $char <= 0x5a) - return 2; -} - -# URL Ȯ ˻ϴ Լ -# -function check_url($url) { - $url = trim($url); - - # (http://, ftp://...) Ÿ κ ⺻ - # http:// - if(!preg_match("/^(http|https|ftp|telnet|news):\/\//i", $url)) - $url = "http://$url"; - - if(!preg_match("/(http|https|ftp|telnet|news):\/\/[\xA1-\xFEa-z0-9-]+\.[\xA1-\xFEa-zA-Z0-9,:&#@=_~%?\/.+-]+$/i", $url)) - return; - - return $url; -} - -# E-MAIL ּҰ Ȯ ˻ϴ Լ -# -# gethostbynamel - ȣƮ ̸ ip -# http://www.php.net/manual/function.gethostbynamel.php -# checkdnsrr - ͳ ȣƮ ̳ IP 巹 Ǵ DNS ڵ带 üũ -# http://www.php.net/manual/function.checkdnsrr.php -function check_email($email,$hchk=0) { - $url = trim($email); - if($hchk) { - $host = explode("@",$url); - if(preg_match("/^[\xA1-\xFEa-z0-9_-]+@[\xA1-\xFEa-z0-9_-]+\.[a-z0-9._-]+$/i", $url)) { - if(!check_windows() || version_compare('5.3.0',phpversion(),'>=') { - if(checkdnsrr($host[1],"MX") || gethostbynamel($host[1])) return $url; - else return; - } else { - if(gethostbynamel($host[1])) return $url; - else return; - } - } - } else { - if(preg_match("/^[\xA1-\xFEa-z0-9_-]+@[\xA1-\xFEa-z0-9_-]+\.[a-z0-9._-]+$/i", $url)) return $url; - else return; - } -} - -# н Լ -# -# crpyt - ڿ DES ȣȭ -# http://www.php.net/manual/function.crypt.php -function check_passwd($table,$no,$passwd) { - global $jsboard, $board, $o, $c, $db; - - if($board['mode'] && session_is_registered("$jsboard")) $sql_field = "name"; - else $sql_field = "passwd"; - - $passwd = !trim($passwd) ? "null passwd" : $passwd; - - $table = ($table && $o['at'] == "c_del") ? $table."_comm" : $table; - - if ($table && $no) { - $result = sql_query("SELECT $sql_field FROM $table WHERE no = '$no'", $c); - $r['chk'] = sql_result($result,0,"$sql_field"); - sql_free_result($result); - } - - if (session_is_registered("$jsboard")) { - if($_SESSION[$jsboard]['id'] == $r['chk']) $chk = 1; - if($_SESSION[$jsboard]['pos'] == 1) $chk = 2; - } - - if(!$chk) { - if(crypt($passwd,$r['chk']) == $r['chk']) $chk = 1; - } - - if(!$chk || $chk == 1) { - # ü н - $result = sql_query("SELECT passwd FROM userdb WHERE position = 1", $c); - $r['su'] = sql_result($result,0,"passwd"); - sql_free_result($result); - - if($r['su'] == crypt($passwd,$r['su'])) $chk =2; - - if($chk != 2) { - $arrayadm = explode(";",$board['ad']); - for($i=0;$i


    \n---- $list[bofile] $langs[inc_file] -------------------------- \n

    \n

    \n";
    +  $source2 = "\n
    \n

    "; + $source3 = " $list[bofile] file is broken link!!\n\n"; + + if (@file_exists($upload_file)) { + if (eregi("^(gif|jpg|png)$",$tail)) { + $imginfo = GetImageSize($upload_file); + if($agent[br] == "MOZL") $list[bofile] = urlencode($list[bofile]); + $uplink_file = "./form.php?mode=photo&table=$table&f[c]=$list[bcfile]&f[n]=$list[bofile]&f[w]=$imginfo[0]&f[h]=$imginfo[1]"; + if($imginfo[0] > $board[width] - 6 && !eregi("%",$board[width])) { + $p[vars] = $imginfo[0]/$board[width]; + if($board[img] != "yes") $p[width] = $board[width] - 6; + else $p[width] = $board[width] - $icons[size] * 2 - 6; + $p[height] = intval($imginfo[1]/$p[vars]); + $p[up] = "[ Original Size $imginfo[0] * $imginfo[1] ]
    \n"; + $p[up] .= "\n

    \n"; + } else { + $p[up] = "\n

    \n"; + } + } else if (eregi("^(phps|txt|htm|shs)$",$tail)) { + $view = file_operate($upload_file,"r",0,1200); + $view = htmlspecialchars(cut_string($view,1000)); + if (filesize($upload_file) > 1000) $view = $view . "

    \n ......$langs[preview]\n\n"; + + $p[down] = "$source1$view$source2"; + } elseif (eregi("^(mid|wav|mp3)$",$tail)) { + if($tail == "mp3" && $agent[br] == "MOZL") + $p[up] = "[ MP3 file IE Ǽ ֽϴ. ]"; + elseif($agent[br] == "LYNX") + $p[bo] = ""; + else + $p[bo] = ""; + } elseif (eregi("^(mpeg|mpg|asf|dat|avi)$",$tail)) { + if($agent[br] == "MSIE") $p[up] = ""; + } elseif ($tail == "mov" && $agent[br] == "MSIE") { + $p[up] = ""; + } elseif ($tail == "swf") { + $flash_size = $board[width] - 10; + if(eregi("^(MSIE|MOZL6)$",$agent[br])) $p[up] = ""; + } + } else $p[down] = "$source1$source3$source2"; + + return $p; +} + +# ް Լ +# p -> +# m -> ۵ (r-б,w-,a-ϳ ) +# msg -> н ޼ +# s -> 忡 +# t -> б忡 ŭ ƴϸ 迭 +# ü +# +function file_operate($p,$m,$msg='',$s='',$t=0) { + if($m == "r" || $m == "w" || $m == "a") { + $m .= "b"; + + # file point open + if(!$t && $f=@fopen($p,$m)) { + if($m != "rb") @fwrite($f,$s); + else $var = @fread($f,filesize($p)); + @fclose($f); + } + elseif ($t && $m == "rb" && @file_exists($p)) $var = file($p); + else { if(trim($msg)) print_error($msg); } + } + + if($m == "rb") return $var; +} + +# http socket Ͽ html source Լ +# : HTTP/1.1 +# +# $url -> ش ּ (http:// ) +# $size -> ش size +# $file -> URI +# $type -> socket(1) Ǵ fopen(null) +function get_html_src($url,$size=5000,$file="",$type="") { + if(!$type) { + $p = @fsockopen($url,80,&$errno,&$errstr); + fputs($p,"GET /$file HTTP/1.1\r\nhost: $url\r\n\r\n"); + } else $p = @fopen("http://$url/$file","rb"); + $f = fread($p,$size); + fclose($p); + + if(!$type) { + $s = explode("\n",$f); + return $s; + } else return $f; +} + +?> diff --git a/include/get.php b/include/get.php deleted file mode 100644 index 2a543e35..00000000 --- a/include/get.php +++ /dev/null @@ -1,603 +0,0 @@ - $pages['all']) - $pages['cur'] = $pages['all']; - - # $pages['no'] $pages['cur'] Ͽ . Ͽ - # ҷ ȣ - if(!$pages['no']) - $pages['no'] = ($pages['cur'] - 1) * $board['perno']; - - # $pages['cur'] (pre), (nex) - if($pages['cur'] > 1) - $pages['pre'] = $pages['cur'] - 1; - if($pages['cur'] < $pages['all']) - $pages['nex'] = $pages['cur'] + 1; - - return $pages; -} - -# ִ ˾Ƴ Լ -# -# intval - ȯ -# http://www.php.net/manual/function.intval.php -function get_current_page($table, $idx) { - global $board; # Խ ⺻ (config/global.php) - global $o, $c; - - $sql = search2sql($o, 0); - $count = get_board_info($table); - - # idx ū ȣ - $result = sql_query("SELECT COUNT(*) as cnt FROM $table WHERE idx > '$idx' $sql", $c); - $count['cur'] = sql_result($result, 0, 'cnt'); - sql_free_result($result); - - # ° - # ( 1 ϱ 1 ) - $page = intval($count['cur'] / $board['perno']) + 1; - - return $page; -} - -# , Լ -function get_pos($table, $idx) { - global $o, $c, $db; - - $sql = search2sql($o, 0); - - $idxdp = $idx + 1; - $idxdm = $idx - 1; - $idxplus = $idx + 10; - $idxminus = $idx - 10; - - # idx ȣ ߿ idx ū () - #$query = "SELECT MAX(idx) AS idx FROM $table WHERE idx < '$idx' $sql"; - #$result = sql_query($query, $c); - $query = "SELECT MAX(idx) AS idx FROM $table WHERE (idx BETWEEN '$idxminus' AND '$idxdm') $sql"; - $result = sql_query($query, $c); - $pos['next'] = sql_result($result, 0, "idx"); - sql_free_result($result); - if ( $pos['next'] ) { - $query = "SELECT no, title, num, reto FROM $table WHERE idx = '{$pos['next']}'"; - $result = sql_query($query, $c); - $next = sql_fetch_array($result); - sql_free_result($result); - $next['title'] = str_replace("&","&",$next['title']); - $next['title'] = preg_replace("/(#|')/","\\\\1",htmlspecialchars($next['title'])); - - $pos['next'] = $next['no']; - if($next['reto']) { - $query = "SELECT num FROM $table WHERE no = '{$next['reto']}'"; - $result = sql_query($query, $c); - $next['num'] = sql_result($result, 0, "num"); - sql_free_result($result); - $pos['next_t'] = "Reply of No.{$next['num']}: {$next['title']}"; - } else { - $pos['next_t'] = "No.{$next['num']}: {$next['title']}"; - } - } - - # idx ū ȣ ߿ idx () - #$query = "SELECT MIN(idx) AS idx FROM $table WHERE idx > '$idx' $sql"; - #$result = sql_query($query, $c); - $query = "SELECT MIN(idx) AS idx FROM $table WHERE (idx BETWEEN '$idxdp' AND '$idxplus') $sql"; - $result = sql_query($query, $c); - $pos['prev'] = sql_result($result, 0, "idx"); - sql_free_result($result); - if($pos['prev']) { - $query = "SELECT no, title, num, reto FROM $table WHERE idx = '{$pos['prev']}'"; - $result = sql_query($query, $c); - $prev = sql_fetch_array($result); - sql_free_result($result); - $prev['title'] = str_replace("&","&",$prev['title']); - $prev['title'] = preg_replace("/(#|')/","\\\\1",htmlspecialchars($prev['title'])); - - $pos['prev'] = $prev['no']; - if($prev['reto']) { - $query = "SELECT num FROM $table WHERE no = '{$prev['reto']}'"; - $result = sql_query($query, $c); - $prev['num'] = sql_result($result, 0, "num"); - sql_free_result($result); - $pos['prev_t'] = "Reply of No.{$prev['num']}: {$prev['title']}"; - } else { - $pos['prev_t'] = "No.{$prev['num']}: {$prev['title']}"; - } - } - - return $pos; -} - -# PHP microtime Լ Ͽ ð Լ -# -# explode - ڿ ڿ -# http://www.php.net/manual/function.explode.php -function get_microtime($old, $new) { - $start = explode(" ", $old); - $end = explode(" ", $new); - - return sprintf("%.2f", ($end[1] + $end[0]) - ($start[1] + $start[0])); -} - -# ˸ (html/head.php) -# -# basename - ο ϸ -# http://www.php.net/manual/function.basename.php -function get_title() { - global $board, $_; # Խ ⺻ (config/global.php) - - $title = $board['title']; - - # SCRIPT_NAME̶ ġ ȯ ( PHP ) - $script = $_SERVER['SCRIPT_NAME']; - $script = basename($script); - - switch($script) { - case "list.php": - $title .= " " . $_('get_v'); - break; - case "read.php": - $title .= " " . $_('get_r'); - break; - case "edit.php": - $title .= " " . $_('get_e'); - break; - case "write.php": - $title .= " " . $_('get_w'); - break; - case "reply.php": - $title .= " " . $_('get_re'); - break; - case "delete.php": - $title .= " " . $_('get_d'); - break; - case "user.php": - $title .= " " . $_('get_u'); - break; - case "regist.php": - $title .= " " . $_('get_rg'); - break; - } - - return $title; -} - -function get_article($table, $no, $field0 = "*", $field1 = "no") { - global $_, $c, $db; - if(!$no) - print_error($_('get_no'),250,150,1); - - $result = sql_query("SELECT $field0 FROM $table WHERE $field1 = '$no'", $c); - $article = sql_fetch_array($result); - sql_free_result($result); - - if(!$article) - print_error($_('get_n'),250,150,1); - - return $article; -} - -# ũ Լ by ĥ -# $bfsize bytes ũ -# -# number_formant() - 3ڸ ĸ -function human_fsize($bfsize, $sub = "0") { - $BYTES = number_format($bfsize) . " Bytes"; // 3ڸ ĸ - - if($bfsize < 1024) return $BYTES; # Bytes - elseif($bfsize < 1048576) $bfsize = number_format($bfsize/1024,1) . " KB"; # KBytes - elseif($bfsize < 1073741827) $bfsize = number_format($bfsize/1048576,1) . " MB"; # MB - else $bfsize = number_format($bfsize/1073741827,1) . " GB"; # GB - - if($sub) $bfsize .= "($BYTES)"; - - return $bfsize; -} - -function viewfile($tail) { - global $board, $table, $list, $upload; - global $_, $icons, $agent; - - $upload_file = "./data/$table/{$upload['dir']}/{$list['bcfile']}/{$list['bofile']}"; - $wupload_file = "./data/$table/{$upload['dir']}/{$list['bcfile']}/".urlencode($list['bofile']); - - $source1 = "
    \n---- {$list['bofile']} " . $_('inc_file') . " -------------------------- \n
    \n

    \n";
    -  $source2 = "\n
    \n

    "; - $source3 = " {$list['bofile']} file is broken link!!\n\n"; - - if (@file_exists($upload_file)) { - if ($agent['br'] == "MSIE" && $agent['vr'] >= 6) - $bmpchk = "|bmp"; - - if (preg_match("/^(gif|jpg|png{$bmpchk})$/i",$tail)) { - $imginfo = GetImageSize($upload_file); - if($agent['co'] == "mozilla") $list['bofile'] = urlencode($list['bofile']); - $uplink_file = "./form.php?table=$table&mode=photo&f[c]={$list['bcfile']}&f[n]={$list['bofile']}&f[w]={$imginfo[0]}&f[h]={$imginfo[1]}"; - $uplink_file = htmlspecialchars ($uplink_file); - if($imginfo[0] > $board['width'] - 6 && !preg_match("/%/",$board['width'])) { - $p['vars'] = $imginfo[0]/$board['width']; - $p['width'] = $board['width'] - 6; - $p['height'] = intval($imginfo[1]/$p['vars']); - - if(extension_loaded("gd") && $tail != "gif" && $tail != "bmp") { - $ImgUrl = rawurlencode($wupload_file); - $ImgPath = "\"\""; - } else - $ImgPath = "\"\""; - - $p['up'] = "[ Original Size {$imginfo[0]} * {$imginfo[1]} ]
    \n"; - $p['up'] .= "$ImgPath\n

    \n"; - } else { - $p['up'] = "\"\"\n

    \n"; - } - } else if (preg_match("/^(phps|txt|html?|shs)$/i",$tail)) { - $view = readfile_r ($upload_file); - $view = htmlspecialchars(cut_string($view,1000)); - if (filesize($upload_file) > 1000) $view = $view . "

    \n ......" . $_('preview') . "\n\n"; - - $p['down'] = "$source1$view$source2"; - } elseif (preg_match("/^(mid|wav|mp3)$/i",$tail)) { - if($tail == 'mp3') { - $p['up'] = << - - - - - - - -EOF; - } elseif($agent['tx']) - $p['bo'] = ''; - else - $p['bo'] = ""; - } elseif (preg_match("/^(mpeg|mpg|asf|dat|avi|wmv)$/i",$tail)) { - if($agent['br'] == "MSIE") $p['up'] = ""; - } elseif ($tail == "mov" && $agent['br'] == "MSIE") { - $p['up'] = ""; - } elseif ($tail == "swf") { - $flash_size = $board['width'] - 10; - if($agent['br'] == 'MSIE' || $agent['nco'] == 'moz') - $p['up'] = ""; - } - } else $p['down'] = "$source1$source3$source2"; - - return $p; -} - -# http socket Ͽ html source Լ -# : HTTP/1.1 -# -# $url -> ش ּ (http:// ) -# $size -> ش size -# $file -> URI -# $type -> socket(1) Ǵ fopen(null) -function get_html_src($url,$size=5000,$file="",$type="") { - if(!$type) { - $p = @fsockopen($url,80,$errno,$errstr); - fputs($p,"GET /$file HTTP/1.1\r\nhost: $url\r\n\r\n"); - } else $p = @fopen("http://$url/$file","rb"); - $f = fread($p,$size); - fclose($p); - - if(!$type) { - $s = explode("\n",$f); - return $s; - } else return $f; -} - -# upload -# -function get_upload_value($up) { - if($up['yesno']) { - if($up['maxtime']) set_time_limit($up['maxtime']); - # JSBoard ִ ε ִ - # ִ밪 POST Ÿ post_max_size 1M ۰ ´. - $max = ini_get('post_max_size'); - if(preg_match("/M$/i",$max)) { - $max = (preg_replace("/M$/i","",$max) - 1) * 1024 * 1024; - } elseif (preg_match("/K$/i",$max)) { - $max = (preg_replace("/K$/i","",$max) - 1) * 1024; - } else { - $max -= 1024; - } - ini_set('upload_max_filesize',$max); - $size = ($up['maxsize'] > $max) ? $max : $up['maxsize']; - - return $size; - } else return 0; -} - -function readfile_r ($_f, $_array = 0) { - if ( ! file_exists ($_f) ) - print_error ("$_f not found", 250, 250, 1); - - if ( $_array ) { - $_r = @file ($_f); - $_r = preg_replace ("/\n$/", '', $_r); - } else { - ob_start (); - readfile ($_f); - $_r = ob_get_contents (); - ob_end_clean (); - } - - return $_r; -} - -function writefile_r ($_file, $_text, $attach = 0) { - $_m = $attach ? 'ab' : 'wb'; - - $p = fopen ($_file, $_m); - - if ( ! is_resource ($p) ) - print_error ("Can't not open {$_file}\n", 250, 250, 1); - - if ( check_windows () ) { - $_s = array ("/\n/", "/\r*\n/"); - $_t = array ("\r\n", "\r\n"); - } else { - $_s = array ("/ /", "/\r\n/"); - $_t = array ('', "\n"); - } - - $s = preg_replace ($_s, $_t, $_text); - - fwrite ($p, $s); - fclose ($p); -} - -function content_disposition ($n) { - global $agent, $_, $_code; - - switch ($n) { - case 'Firefox' : - # RFC 2231 - $r = 'filename*0*' . $_code . '*' . $_('charset') . '*=' . rawurlencode ($n); - break; - case 'Opera' : - if ($agent['vr'] > 6) - $r = 'filename*0*' . $_code . '*' . $_('charset') . '*=' . rawurlencode ($n); - else - $r = 'filename="' . $n . '"'; - break; - default: - # RFC 2047 - #$r = '=?'.$_('charset').'?B?'.base64_encode($dn['name']).'?='; - $r = 'filename="' . $n . '"'; - } - - return $r; -} -?> diff --git a/include/header.ph b/include/header.ph new file mode 100644 index 00000000..6878d14a --- /dev/null +++ b/include/header.ph @@ -0,0 +1,32 @@ +\nalert('Don\'t exist global\\nconfiguration file');\n" . + "history.back();\nexit;\n\n"; +} else { include "config/global.ph"; } + +include "include/version.ph"; +include "include/lang.ph"; +include "include/exec.ph"; +include "include/auth.ph"; +include "include/check.ph"; +include "include/error.ph"; +include "include/get.ph"; +include "include/list.ph"; +include "include/parse.ph"; +include "include/print.ph"; +include "include/sql.ph"; +include "include/sendmail.ph"; +include "include/tableratio.ph"; + +# table ų meta character üũ +meta_char_check($table,0,1); + +if ($upload[yesno] == "yes" && $cupload[yesno] == "yes") $colspan = "7"; +else $colspan = "6"; + +if(strtoupper($color[bgcol]) == strtoupper($color[l4_bg]) && eregi("list.php",$PHP_SELF)) { + $form_border = "1x"; +} elseif(strtoupper($color[bgcol]) == strtoupper($color[r5_bg]) && eregi("read.php",$PHP_SELF)) { + $form_border = "1x"; +} else $form_border = "2x"; +?> diff --git a/include/header.php b/include/header.php deleted file mode 100644 index 21f1c275..00000000 --- a/include/header.php +++ /dev/null @@ -1,147 +0,0 @@ -\nalert('Ugly access with table variable with \'{$table}\'');\n" . - "history.back();\nexit;\n\n"; - exit; -} - -include_once 'include/variable.php'; -include_once "include/error.php"; -include_once "include/print.php"; -# GET/POST -parse_query_str (); - -if ( ! @file_exists ("config/global.php") ) { - echo "\n"; - exit; -} else { include_once "config/global.php"; } - - -############################################################################## -# ǵ Ѵ!!!!! -############################################################################## -if ( trim ($table) ) { - if ( @file_exists ("data/$table/config.php") && $board['uconf'] ) { - @include_once "data/$table/config.php"; - } - - if ( @file_exists ("data/$table/stylesheet.php") ) { - @include_once"data/$table/stylesheet.php"; - - if( $user_stylesheet ) { - $user_stylesheet = preg_replace ('/<[\/]*STYLE[^>]*>/i','',$user_stylesheet); - $user_stylesheet = "\n". - "\n". - "\n"; - } - } - - # Խ ڰ null 츦 Ͽ null ϶ admin - $board['ad'] = ! $board['ad'] ? "admin" : $board['ad']; - - # theme ȣ - if ( ! $path['type'] ) { - include_once "./theme/{$print['theme']}/config.php"; - } -} else { - include_once "theme/{$print['theme']}/config.php"; -} - -if ( file_exists ("./config/external.php") ) { - unset ($edb); - include_once "./config/external.php"; -} - -putenv ("JSLANG={$_code}"); - -include_once "include/version.php"; -include_once "language/lang.php"; -include_once "include/check.php"; -if(!check_windows()) { include_once "include/exec.php"; } -include_once "include/get.php"; -include_once "include/list.php"; -include_once "include/sURI.php"; -include_once "include/parse.php"; -include_once "database/db.php"; -include_once "include/replicate.php"; -include_once "include/sendmail.php"; - -sessionInit($board['sessTmp']); -init_htmltag(); -session_start (); -if ( ! session_is_registered ($jsboard) && ! preg_match ('/session\.php/i', $_pself) ) - session_destroy (); - -$agent = get_agent (); -$db = replication_mode ($db); - -if ( ! ini_get ('file_uploads') || $agent['tx'] ) $noup = 1; - -if ( preg_match ('/(act|write|edit|reply)\.php/i', $_pself)) - $upload['maxsize'] = get_upload_value ($upload); - -# ܺ hyper link -check_dhyper ($board['usedhyper'], $board['endhyper'], $board['dhyper'], $enable['dhyper'], $enable['plink']); -check_access ($board['useipbl'], $board['ipbl'], $enable['ipbl']); - -# write, edit, reply page form size ======================== -$size['name'] = ! $size['name'] ? form_size (14) : form_size ($size['name']); -$size['pass'] = ! $size['pass'] ? form_size (4) : form_size ($size['pass']); -$size['titl'] = ! $size['titl'] ? form_size (25) : form_size ($size['titl']); -$size['text'] = ! $size['text'] ? form_size (30) : form_size ($size['text']); -$size['uplo'] = ! $size['uplo'] ? form_size (19) : form_size ($size['uplo']); - -$referer = parse_referer (); - -# table ų meta character üũ -if ( ! preg_match ('/(user|session|regist|error|image)\.php/i', $_pself)) { - if ( $dn['tb'] ) $table = $dn['tb']; - meta_char_check ($table, 0, 1); - meta_char_check ($print['theme'], 0, 1); -} - -if ( $upload['yesno'] && $cupload['yesno'] ) $colspan = "7"; -else $colspan = "6"; - -# -if ( session_is_registered ($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("/(read|list)\.php/i", $_pself) ) { - if ( $theme['ver'] != $designer['ver'] ) print_error ($_('nomatch_theme'), 250, 150, 1); -} - -# login button -if ( session_is_registered($jsboard) ) { - if ( @file_exists ("./theme/{$print['theme']}/img/logout.gif") ) - $print['lout'] = "\"LOGOUT\""; - else $print['lout'] = ">> logout "; - - $print['lout'] = "{$print['lout']}"; -} -?> diff --git a/include/lang.ph b/include/lang.ph new file mode 100644 index 00000000..cdfeec7b --- /dev/null +++ b/include/lang.ph @@ -0,0 +1,14 @@ + diff --git a/include/list.ph b/include/list.ph new file mode 100644 index 00000000..d59afcce --- /dev/null +++ b/include/list.ph @@ -0,0 +1,146 @@ +$list[title]",$list[title]); + } + + if($list[reno]) { + $list[rede] *= 10; + $list[title] = "\"\"" . + "\"$langs[ln_re]\" $list[title]"; + $list[num] = " "; + + $bg = $color[l3_bg]; + $fg = $color[l3_fg]; + } else { + $bg = $color[l2_bg]; + $fg = $color[l2_fg]; + } + + if ( $o[er] == "y") { + $list[title] = eregi_replace("", "", $list[title]); + $list = search_hl($list); + $list[title] = eregi_replace("", "\"\"\"$langs[ln_re]\"", $list[title]); + } else { + $list = search_hl($list); + } + + $date = date($board[date_fmt], $list[date]); + + $list[refer] = sprintf("%5d", $list[refer]); + $list[refer] = str_replace(" ", ".", $list[refer]); + $list[refer] = ereg_replace("^(\.+)", "\\1", $list[refer]); + + if($list[email]) { + $list[name] = url_link($list[email], $list[name], $fg, $list[no]); + } else { + $list[name] = "$list[name]"; + } + + # ̸ + if ($enable[pre]) { + $list[ptext] = cut_string($list[text],$enable[preren]); + $list[ptext] = htmlspecialchars($list[ptext]); + $list[ptext] = eregi_replace("(\r*)\n","
    ",$list[ptext]); + $list[ptext] = eregi_replace("(#|'|\\\\)","\\\\1",$list[ptext]); + $list[preview] = " onMouseOver=\"drs('$list[ptext]'); return true;\" onMouseOut=\"nd(); return true;\""; + } + + echo " + + $list[num] + \n$list[title]\n + $list[name] "; + + if ($upload[yesno] == "yes") { + if($cupload[yesno] == "yes") { + if($list[bofile]) { + $hfsize = human_fsize($list[bfsize]); + $tail = check_filetype($list[bofile]); + $icon = icon_check($tail,$list[bofile]); + $down_link = check_dnlink($table,$list); + $list[icon] = "\"$list[bofile]"; + $up_link = ""; + $up_link_x = ""; + } else { + $list[icon] = " "; + $up_link = ""; + $up_link_x = ""; + } + echo " $up_link$list[icon]$up_link_x\n"; + } + } + + echo " $date"; + + if(get_date() <= $list[date]) { + echo " + \"*\" + $list[refer]"; + } else { + echo " + $list[refer]"; + } + echo " +\n"; +} + +function get_list($table, $pages, $reply = 0) +{ + global $color, $board; + global $o, $enable, $PHP_SELF; + + if($reply[ck]) $sql = search2sql($reply); + else $sql = search2sql($o); + + if ($enable[re_list] && eregi("read.php",$PHP_SELF)) $query = "SELECT * FROM $table $sql ORDER BY idx DESC"; + else $query = "SELECT * FROM $table $sql ORDER BY idx DESC LIMIT $pages[no], $board[perno]"; + + $result = sql_query($query); + if(sql_num_rows($result)) { + while($list = sql_fetch_array($result)) { + print_list($table,$list,$reply); + } + } else { + print_narticle($table, $color[l2_fg], $color[l2_bg], 1); + } + sql_free_result($result); +} + +function print_narticle($table, $fg, $bg, $print = 0) +{ + global $o, $colspan, $langs; + + if($o[at] == "s") $str = "$langs[no_seacrh]"; + else $str = "$langs[no_art]"; + + $article = " + + +
    $str

    + +\n"; + + if($print) echo $article; + + return $article; +} +?> diff --git a/include/list.php b/include/list.php deleted file mode 100644 index 1ab6c0fc..00000000 --- a/include/list.php +++ /dev/null @@ -1,304 +0,0 @@ - $nolenth ? strlen($list['no']) : $nolenth; - - if($board['rnname'] && preg_match("/^(2|3|5|7)/",$board['mode'])) { - $list['name'] = $list['rname'] ? $list['rname'] : $list['name']; - } - $list['name'] = unhtmlspecialchars($list['name']); - $list['name'] = htmlspecialchars(cut_string($list['name'],$board['nam_l'])); - $list['name'] = trim(ugly_han($list['name'])); - $list['title'] = unhtmlspecialchars($list['title']); - - if(preg_match("/]*color=/i",$list['title'])) { - $fchk = 1; - $list['title'] = preg_replace("/]*color=([a-z0-9#]+)[^>]*>/i","",$list['title']); - $board['tit_l'] += 28; - } - - # read ñ ½ - if(!$r['ln']) $list['title'] = htmlspecialchars(cut_string($list['title'],$board['tit_l']-$list['rede']*2)); - else $list['title'] = htmlspecialchars(cut_string($list['title'],$board['tit_l']-$r['ln']-$list['rede']*2)); - - if ($fchk == 1) { - $fchk = 0; - $board['tit_l'] -= 28; - } - - $list['title'] = preg_replace("/<((\/)*font[^&]*)>/i","<\\1>",$list['title']); - $list['title'] = ugly_han($list['title']); - $list['title'] = preg_replace("/\"/",""",$list['title']); - - $list = search_hl($list); - - if($enable['re_list']) { - if($no == $list['no']) $list['title'] = str_replace($list['title'],"{$list['title']}",$list['title']); - } - - if(file_exists("./theme/{$print['theme']}/img/rep.gif")) $repimg = "./theme/{$print['theme']}/img/rep.gif"; - else $repimg = "./images/rep.gif"; - - if($list['reno']) { - $list['rede'] *= 10; - $list['title'] = "\"\"" . - "\"" {$list['title']}"; - $list['num'] = " "; - - $trclass = 'row1'; - $tdclass = 'rowbg1'; - } else { - $trclass = 'row0'; - $tdclass = 'rowbg0'; - } - - $date = date($board['date_fmt'], $list['date']); - - $list['refer'] = sprintf("%5d", $list['refer']); - $list['refer'] = str_replace(" ", ".", $list['refer']); - $list['refer'] = preg_replace("/^(\.+)/", "\\1", $list['refer']); - - if ( $list['email'] ) { - $list['name'] = url_link($list['email'], $list['name']); - } - - # ̸ - if($enable['pre']) { - $list['ptext'] = cut_string($list['text'],$enable['preren']); - $list['ptext'] = preg_replace("/#|'|\\\\/i","\\\\\\0",$list['ptext']); - $list['ptext'] = htmlspecialchars(htmlspecialchars($list['ptext'])); - $list['ptext'] = preg_replace("/\r*\n/i","
    ",$list['ptext']); - $list['ptext'] = trim(str_replace("&amp;","&",$list['ptext'])); - $list['preview'] = " onMouseOver=\"drs('{$list['ptext']}'); return true;\" onMouseOut=\"nd(); return true;\""; - } - - if($enable['comment'] && $list['comm'] > 0) - $comment_size = "[{$list['comm']}]"; - - # UPLOAD - if($upload['yesno']) { - if($cupload['yesno']) { - if($list['bofile']) { - $hfsize = human_fsize($list['bfsize']); - $tail = check_filetype($list['bofile']); - $icon = icon_check($tail,$list['bofile']); - $down_link = check_dnlink($table,$list); - $list['icon'] = "{$list["; - $up_link = ""; - $up_link_x = ""; - } else { - $list['icon'] = " "; - $up_link = ""; - $up_link_x = ""; - } - $field['upload'] = "$up_link{$list['icon']}$up_link_x"; - } - } else $field['upload'] = ""; - - if(get_date() >= $list['date']) - $field['dates'] = "$date "; - else - $field['dates'] = "$date "; - - $field['no'] = "{$list['num']}"; - $field['title'] = "{$list['title']} $comment_size"; - $field['name'] = "{$list['name']} "; - $field['refer'] = "{$list['refer']} "; - $field['nulls'] = ""; - - # td field ʾ ⺻ Ѵ. - $td_array = !$td_array ? "nTNFDR" : $td_array; - $prints = "\n\n"; - for($i=0;$i -1 ) - $limits = $readchk ? '' : ' ' . compatible_limit ($pages['no'], $board['perno']); - - $sql = $reply['ck'] ? search2sql($reply, 1) : search2sql($o); - - $com_field = $enable['comment'] ? "comm, " : ""; - $columns = 'no, num, idx, date, name, rname, email, url, title, text, '. - 'refer, reyn, reno, rede, reto, html, '. - $com_field . - 'bofile, bcfile, bfsize'; - $query = "SELECT {$columns} FROM {$table} {$sql} ORDER BY idx DESC{$limits}"; - - $result = sql_query($query, $c); - if ( sql_num_rows ($result) ) { - $styleno = 0; - while ( $list = sql_fetch_array ($result) ) { - if ($print) echo print_list ($table,$list,$reply, $styleno); - else $lists .= print_list ($table,$list,$reply, $styleno); - $styleno++; - } - } else { - if($print) echo print_narticle($table); - else $lists = print_narticle($table); - } - - # Ʈ ̿ ֱ ڵ - if($lines['design'] && !$print) { - $colspan_no = $upload['yesno'] ? "6" : "5"; - $lines['design'] = preg_replace("/=[\"']?AA[\"']?/","=\"$colspan_no\"",$lines['design']); - $lists = preg_replace("/###LINE-DESIGN###\\\n$/i","",$lists); - $lists = str_replace("###LINE-DESIGN###","\n\n{$lines['design']}\n\n",$lists); - } - - sql_free_result($result); - return $lists; -} - -function print_narticle($table, $print = 0) { - global $o, $colspan, $_, $_lang; - - if($o['at'] == "s") $str = $_('no_search'); - else $str = $_('no_art'); - - $article = "\n". - "\n". - " \n". - "
    $str

    \n". - " \n". - "\n"; - - if($print) echo $article; - - return $article; -} - -function get_comment($table,$no,$prints=0) { - global $lines, $corder, $_, $page, $print; - global $c, $db; - - $corder = ($corder != 2) ? 1 : $corder; - $orderby = ($corder == 2) ? "DESC" : "ASC"; - - $sql = "SELECT * FROM {$table}_comm WHERE reno = '$no' ORDER BY no $orderby"; - $r = sql_query($sql, $c); - - $comment_no = sql_num_rows($r); - - # check of image exists - if(file_exists("./theme/{$print['theme']}/img/cdelete.gif")) $delimgcheck = 1; - - if($corder == 2) { - $imgfile = "./theme/{$print['theme']}/img/csortup.gif"; - $sortimg = file_exists($imgfile) ? "" : "△"; - $orlink = "$sortimg"; - } else { - $imgfile = "./theme/{$print['theme']}/img/csortdn.gif"; - $sortimg = file_exists($imgfile) ? "" : "▽"; - $orlink = "$sortimg"; - } - - if($comment_no > 0) { - $lists .= "\n". - "Total Comment : $comment_no\n". - "SORT $orlink\n". - "\n"; - - while ($list = sql_fetch_array($r)) { - if($lines['comment_design']) $lists .= $lines['comment_design']; - $lists .= print_comment_art($table,$list,0,$delimgcheck); - } - } - - if($lines['comment_design']) $lists .= $lines['comment_design']; - conv_emoticon ($lists, $GLOBALS['enable']['emoticon']); - - if($prints) echo $lists; - else return $lists; -} - -function print_comment_art($table,$list,$prints=0,$delimg) { - global $jsboard, $board, $page, $no, $delimgcheck, $print; - global $_config; - - $list['name'] = ugly_han(htmlspecialchars(trim($list['name']))); - $list['name'] = preg_replace("/&(lt|gt|quot)/i","&\\1",$list['name']); - $list['text'] = ugly_han(htmlspecialchars(trim($list['text']))); - $list['text'] = preg_replace("/&(lt|gt|quot)/i","&\\1",$list['text']); - $list['text'] = str_replace(""","\"",$list['text']); - $list['text'] = preg_replace("/<(\/?FONT[^&]*)>/i","<\\1>",$list['text']); - - $list['text'] = auto_link($list['text']); - wikify($list['text']); - $list['date'] = date("m/d H:i:s",$list['date']); - - if(($board['adm'] || $board['super'] == 1) || - (preg_match("/^(2|3|5|7)$/i",$board['mode']) && $_SESSION[$jsboard]['id'])) { - $delPath = "./act.php?table=$table&o[at]=c_del&atc[no]=$no&atc[cid]={$list['no']}&page=$page"; - } else { - $delPath = "./login.php?table=$table&mode=comment&no=$no&cid={$list['no']}&page=$page"; - } - - if((preg_match("/^(2|3|5|7)$/i",$board['mode']) && $_SESSION[$jsboard]['id'] != $list['name']) && - (!$board['adm'] && $board['super'] != 1)) { - $del_mark = " "; - } else { - $dmark = $delimg ? "" : "ⓧ"; - $del_mark = "$dmark"; - } - - if ( $board['rnname'] && preg_match ('/^(2|3|5|7)$/',$board['mode']) ) - $names = $list['rname'] ? $list['rname'] : $list['name']; - else $names = $list['name']; - - $ret = "\n". - "$del_mark\n". - "". - "{$names}\n". - "{$list['text']}\n". - "{$list['date']} \n". - "\n"; - - if($prints) echo $ret; - else return $ret; -} -?> diff --git a/include/ostype.ph b/include/ostype.ph new file mode 100644 index 00000000..be005f75 --- /dev/null +++ b/include/ostype.ph @@ -0,0 +1,15 @@ + diff --git a/include/ostype.php b/include/ostype.php deleted file mode 100644 index 657bb859..00000000 --- a/include/ostype.php +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/include/parse.ph b/include/parse.ph new file mode 100644 index 00000000..d61fcfc1 --- /dev/null +++ b/include/parse.ph @@ -0,0 +1,349 @@ + GET ȯ) +# +# trim - ڿ ڸ +# http://www.php.net/manual/function.trim.php +# rawurlencode - RFC1738 ° URL ȣȭ +# http://www.php.net/manual/function.rawurlencode.php +function search2url($o, $method = "get") { + if($o[at] != "s") + return; + + $str = trim($o[ss]); + $str = stripslashes($str); + + for($i = 0; $i < count($o); $i++) { + $key = key($o); + $value = current($o); + + if($method == "get") { + $value = rawurlencode($value); + $url .= "&o[$key]=$value"; + } else $url .= "\n"; + + next($o); + } + + return $url; +} + +# ˻ Ѿ SQL ǹ ٲ +# +# trim - ڿ ڸ +# http://www.php.net/manual/function.trim.php +# rawurldecode - ȣȭ URL ȣȭ +# http://www.php.net/manual/function.rawurldecode.php +function search2sql($o, $wh = 1) { + if($o[at] != "s") return; + + $str = rawurldecode($o[ss]); # ˻ ڿ ȣȭ + $str = trim($str); + + if(strlen(stripslashes($str)) < 3 && !$o[op]) { + if($o[sc] != "r" && $o[st] != "t") + print_error("˻ ѱ 2, 3 ̻̾ մϴ."); + } + + if(!$o[er]) { + # % SQL ǿ And ̹Ƿ \ ٿ Ϲ Ÿ + $str = str_replace("%","\%",$str); + # \%\% and Ͽ % + $str = str_replace("\%\%","%",$str); + $str = addslashes($str); + + if (eregi("\"",$str)) + print_error("[\"'] Ե ˻ ˻ϽǼ ϴ."); + } + + $sql = $wh ? "WHERE " : "AND "; + $today = get_date(); + $month = $today - (60 * 60 * 24 * 30); + $week = $today - (60 * 60 * 24 * 7); + + switch($o[st]) { + case 't': $sql .= "(date >= $today)"; + break; # + case 'w': $sql .= "(date >= $week) AND "; + break; # ϰ + case 'm': $sql .= "(date >= $month) AND "; + break; # Ѵް + } + + if($o[er]) $str = "REGEXP \"$str\""; + else $str = "LIKE \"%$str%\""; + + switch($o[sc]) { + case 'a': $sql .= "(title $str OR text $str)"; + break; + case 'c': $sql .= "(text $str)"; + break; + case 'n': $sql .= "(name $str)"; + break; + case 't': $sql .= "(title $str)"; + break; + case 'r': $sql .= "(no = $o[no] OR reto = $o[no])"; + break; + } + + return $sql; +} + +# ˻ ڿ ̶ Լ +# +# explode - ڿ ڿ +# http://www.php.net/manual/function.explode.php +# rawurldecode - ȣȭ URL ȣȭ +# http://www.php.net/manual/function.rawurldecode.php +# trim - ڿ ڸ +# http://www.php.net/manual/function.trim.php +# stripslashes - +# http://www.php.net/manual/function.stripslashes.php +# quotemeta - +# http://www.php.net/manual/function.quotemeta.php +function search_hl($list) { + global $board; # Խ ⺻ (config/global.ph) + global $o; + + $hl = explode("STR", $board[hl]); + + if(!$o[ss]) return $list; + + $str = rawurldecode($o[ss]); + $str = trim($str); + $str = stripslashes($str); + + if(!$o[er]) $str = quotemeta($str); + + switch($o[sc]) { + case 'n': + $list[name] = eregi_replace($str, "$hl[0]\\0$hl[1]", $list[name]); + break; + case 't': + $list[title] = eregi_replace($str, "$hl[0]\\0$hl[1]", $list[title]); + break; + case 'c': + $list[text] = eregi_replace($str, "$hl[0]\\0$hl[1]", $list[text]); + $list[text] = eregi_replace("]*)>","",$list[text]); + break; + case 'a': + $list[text] = eregi_replace($str, "$hl[0]\\0$hl[1]", $list[text]); + $list[title] = eregi_replace($str, "$hl[0]\\0$hl[1]", $list[title]); + $list[text] = eregi_replace("]*)>","",$list[text]); + break; + } + + return $list; +} + +function text_nl2br($text, $html) { + global $langs; + if($html) { + $text = eregi_replace("<(\\?|%)(.*)(\\?|%)>", "<\\1\\2\\3?>", $text); + $text = eregi_replace("<([/]*)(pre|xmp|base)[^>]*>","",$text); + $text = eregi_replace("([a-z0-9]*script:)","deny_\\1",$text); + $text = ereg_replace("\r\n", "\n", $text); + + if(!eregi("<--no-autolink>",$text)) $text = auto_link($text); + else $text = chop(str_replace("<--no-autolink>","",$text)); + + $text = eregi_replace("(\n)?(\n)?","

    ",$text);
    +    $text = "
    $text
    "; + } else { + $text = htmlspecialchars($text); + # ѱ ° + if ($langs[code] == "ko") $text = ugly_han($text); + $text = "
    \n$text\n
    "; + $text = auto_link($text); + } + return $text; +} + +function delete_tag($text) { + $text = eregi_replace("]*)>","",$text); + $text = eregi_replace("(.*)","",$text); + $text = eregi_replace("<[/]*(div|layer|body|html|head|meta|form|input|select|textarea|base)[^>]*>","",$text); + $text = eregi_replace("<(style|script|title)(.*)","",$text); + $text = eregi_replace("<[/]*(script|style|title|xmp)>","",$text); + $text = eregi_replace("([a-z0-9]*script:)","deny_\\1",$text); + $text = eregi_replace("<(\\?|%)","<\\1",$text); + $text = eregi_replace("(\\?|%)>","\\1>",$text); + $text = chop($text); + + return $text; +} + +# ڿ ̷ ڸ Լ +# +# ѱ ѹƮ ߸ 츦 빮ڰ +# ҹڿ ũ (1.5?) ڿ ڸ +# +# intval - +# http://www.php.net/manual/function.intval.php +# substr - ڿ ߶ +# http://www.php.net/manual/function.substr.php +# chop - ڿ +# http://www.php.net/manual/function.chop.php +function cut_string($s, $l) { + if(strlen($s) <= $l && !eregi("^[a-z]+$", $s)) + return $s; + + for($i = $l; $i >=1; $i--) { + # ѱ byte . + if(is_hangul($s[$i-1])) $hangul++; + else break; + } + + if ($hangul) { + # byte Ȧ̸, ѱ ù° Ʈ̴. + # ѱ ù° Ʈ ̸ + # Ʈ + if ($hangul%2) $l--; + + $s = chop(substr($s, 0, $l)); + } + else { # ڿ ѱ ƴ + for($i = 1; $i <= $l; $i++) { + # 빮 + if(is_alpha($s[$i-1]) == 2) $alpha++; + # ѱ Ÿ ġ + if(is_hangul($s[$i-1])) $last_han=$i; + } + + # ̷ ڿ ڸ ڿ ڸ + # 빮 ̴ 1.3 Ѵ. ڿ ڿ + # ü ̺ ũ ʰ ŭ . + $capitals = intval($alpha * 0.5); + if ( ($l-$last_han) <= $capitals) $capitals=0; + $s = chop(substr($s, 0, $l - $capitals)); + } + + return $s; +} + +# 뿡 ִ URL ãƳ ڵ ũ ִ Լ +# +# eregi_replace - ǥ ̿ ġȯ (ҹ ) +# http://www.php.net/manual/function.eregi-replace.php +function auto_link($str) { + $agent = get_agent(); + + $regex[file] = "gz|tgz|tar|gzip|zip|rar|mpeg|mpg|exe|rpm|dep|rm|ram|asf|ace|viv|avi|mid|gif|jpg|png|bmp|eps|mov"; + $regex[http] = "(http|https|ftp|telnet|news):\/\/(([\xA1-\xFEa-z0-9_\-]+\.[][\xA1-\xFEa-z0-9:;&#@=_~%\?\/\.\,\+\-]+)(\/|[\.]*[a-z0-9]))"; + $regex[mail] = "([\xA1-\xFEa-z0-9_\.\-]+)@([\xA1-\xFEa-z0-9_\-]+\.[a-z0-9\-\._\-]+[\.]*[\xA1-\xFEa-z0-9\?=]*)"; + + # IMG tag A tag ũ ٿ ̷ + # ̸ ٷ ħ (ġ鼭 ΰ ɼǵ ) + $str = eregi_replace("<(A|IMG)[^>]*(HREF|SRC)[^>]*($regex[http]|mailto:$regex[mail])[^>]*>","<\\1 \\2=\"\\3\">",$str); + + # Ư ڸ ġȯ + $str = eregi_replace("&(quot|gt|lt)","!\\1",$str); + + # html link ȣ + $str = eregi_replace("href=\"($regex[http])\"[^>]*>","HREF=\"\\2_orig://\\3\" TARGET=\"_blank\">", $str); + $str = eregi_replace("href=\"mailto:($regex[mail])\">","HREF=\"mailto:\\2#-#\\3\">", $str); + $str = eregi_replace("(background|codebase|src)[ \n]*=[\n\"' ]*($regex[http])[\"']*","\\1=\"\\3_orig://\\4\"",$str); + if($agent[br] != "MSIE") $str = eregi_replace("\\1
    ", $str); + $str = eregi_replace("($regex[mail])","\\1", $str); + + # ȣ ġȯ ͵ + $str = eregi_replace("!(quot|gt|lt)","&\\1",$str); + $str = eregi_replace("(http|https|ftp|telnet|news)_orig","\\1", $str); + $str = eregi_replace("#-#","@",$str); + + # file link target + $str = eregi_replace("(\.($regex[file])\") TARGET=\"_blank\"","\\1",$str); + + return $str; +} + +# Email ũ Լ +function url_link($url, $str, $color, $no = 0) { + global $table, $board, $rmail; + + if(check_email($url)) { + if($board[mchk] && $rmail[uses] == "yes") { + $board[fwidth] = eregi("%",$board[width]) ? "550" : $board[width]; + $str = "$str"; + } else { + $url = str_replace(".","DENY.SPAM",$url); + $str = "$str"; + } + } else if(check_url($url)) { + $str = "$str"; + } else { + $str = "$str"; + } + + return $str; +} + +# File upload Լ +# +# +# mkdir -> directory +# is_upload_file -> upload file 缺 +# move_upload_file -> tmp uploadǾ ִ ϴ 丮 ġ +# chmod -> file, direcoty +# +function file_upload($updir) { + global $userfile_size, $userfile, $userfile_name; + global $upload, $langs, $table; + + if(is_uploaded_file($userfile)) { + if ($userfile_size > $upload[maxsize]) { + print_error($langs[act_md]); + exit; + } + + # file name + $userfile_name = eregi_replace(" ","",$userfile_name); + + # file name Ư ڰ ź + upload_name_chk($userfile_name); + + # php, cgi, pl file uploadҽÿ Ҽ phps, cgis, pls filename + $userfile_name = eregi_replace("[\.]*$","",$userfile_name); + $userfile_name = eregi_replace(".(ph|inc|php[0-9a-z]*|phtml)$",".phps", $userfile_name); + $userfile_name = eregi_replace("(.*)\.(cgi|pl|sh|html|htm|shtml|vbs)$", "\\1_\\2.phps", $userfile_name); + + mkdir("data/$table/$upload[dir]/$updir",0755); + move_uploaded_file($userfile,"data/$table/$upload[dir]/$updir/$userfile_name"); + chmod("data/$table/$upload[dir]/$updir/$userfile_name",0644); + + $up = 1; + } elseif($userfile_name) { + if($userfile_size == '0') { + print_error($langs[act_ud]); + } else { + print_error($langs[act_ed]); + } + exit; + } + return $up; +} + +# HTML entry Ư Ư ڷ ȯ +# (htmlspecialchars Լ Լ) +# +# get_html_translation_table - htmlspecialchars() htmlentities() Լ +# ϴ ȯ ̺ 迭 ȯ +# array_flip - 迭 ݴ +# +function unhtmlspecialchars($t) { + $tr = array_flip(get_html_translation_table(HTML_SPECIALCHARS)); + $t = strtr(str_replace("'","'",$t),$tr); + $t = strtr(str_replace("&","&",$t),$tr); + + return $t; +} +?> diff --git a/include/parse.php b/include/parse.php deleted file mode 100644 index d4c1708c..00000000 --- a/include/parse.php +++ /dev/null @@ -1,796 +0,0 @@ - GET ȯ) -# -# trim - ڿ ڸ -# http://www.php.net/manual/function.trim.php -# rawurlencode - RFC1738 ° URL ȣȭ -# http://www.php.net/manual/function.rawurlencode.php -function search2url($o, $method = "get") { - if($o['at'] != "s" && $o['at'] != "d") return; - - $str = trim($o['ss']); - $str = stripslashes($str); - - unset($o['go']); - - for($i = 0; $i < count($o); $i++) { - $key = key($o); - $value = current($o); - - if($method == "get") { - $value = rawurlencode($value); - $url .= "&o[$key]=$value"; - } else $url .= "\n"; - - next($o); - } - - $url = preg_replace("/(%5C)%5C/i","\\1",$url); - return $url; -} - -# ˻ Ѿ SQL ǹ ٲ -# -# trim - ڿ ڸ -# http://www.php.net/manual/function.trim.php -# rawurldecode - ȣȭ URL ȣȭ -# http://www.php.net/manual/function.rawurldecode.php -function search2sql($o, $wh = 1, $join = 0) { - global $_; - if($o['at'] != "s" && $o['at'] != "d") return; - - $str = rawurldecode($o['ss']); # ˻ ڿ ȣȭ - $str = trim($str); - $join = $join ? "tb." : ""; - - if(strlen(stripslashes($str)) < 3 && !$o['op']) { - if($o['sc'] != "r" && $o['st'] != "t") - print_error($_('nsearch'),250,150,1); - } - - if(!$o['er']) { - # % SQL ǿ And ̹Ƿ \ ٿ Ϲ Ÿ - $str = str_replace("%","\%",$str); - if($o['at'] != "d") { - # \%\% and Ͽ % - $str = str_replace("\%\%","%",$str); - } - $str = addslashes($str); - - if (preg_match("/[\"']/",$str)) print_error($_('nochar'),250,150,1); - } else { - # ǥ: ˻ "[,(" "],)" üũ - $chk = preg_replace("/\\\([\]\[()])/i","",$str); - $chk = preg_replace("/[^\[\]()]/i","",$chk); - - $chkAOpen = strlen(preg_replace("/\]/i","",$chk)); - $chkAClos = strlen(preg_replace("/\[/i","",$chk)); - $chkBOpen = strlen(preg_replace("/\)/i","",$chk)); - $chkBClos = strlen(preg_replace("/\(/i","",$chk)); - - if($chkAOpen !== $chkAClos) $str .= "]"; - elseif($chkBOpen !== $chkBClos) $str .= ")"; - } - - if($o['at'] == "d") { - # ˻ ڿ ˻ и - $src = array("/\\\\\\\\/i","/\\\\\+/i","/\\\\\-/i","/\+/i","/\-/i"); - $tar = array("\\","!pluschar!","!minuschar!","!explode!p!","!explode!m!"); - $strs = preg_replace($src,$tar,$str); - $strs = str_replace("!pluschar!","+",$strs); - $strs = str_replace("!minuschar!","-",$strs); - $strs = explode("!explode",$strs); - - for($i=0;$i', '
    '); - if(!$o['ss']) return $list; - - $str = rawurldecode($o['ss']); - $str = trim($str); - $str = stripslashes($str); - - # ǥ: ˻ "[,(" "],)" üũ - if ($o['er']) { - $chk = preg_replace("/\\\([\]\[()])/i","",$str); - $chk = preg_replace("/[^\[\]()]/i","",$chk); - - $chkAOpen = strlen(preg_replace("/\]/i","",$chk)); - $chkAClos = strlen(preg_replace("/\[/i","",$chk)); - $chkBOpen = strlen(preg_replace("/\)/i","",$chk)); - $chkBClos = strlen(preg_replace("/\(/i","",$chk)); - - if($chkAOpen !== $chkAClos) { - $str .= "]"; - $o['ss'] .= "]"; - } elseif($chkBOpen !== $chkBClos) { - $str .= ")"; - $o['ss'] .= ")"; - } - } - - # regex 浹Ǵ escape ó - $dead = array("/\?|\)|\(|\*|\.|\^|\+|\%/i"); - $live = array("\\\\\\0"); - $str = preg_replace($dead,$live,$str); - - if($o['at'] != "d") { - # %% ˻ ʿ - $strs = explode("%%",str_replace("/","\/",$str)); - } else { - $src = array("/\\\\\\\\/i","/\\\\\+/i","/\\\\\-/i","/\+/i","/\-/i","/\//i"); - $tar = array("\\","!pluschar!","!minuschar!","!explode!","!explode!","\/"); - $strs = preg_replace($src,$tar,$str); - $strs = str_replace("!pluschar!","+",$strs); - $strs = str_replace("!minuschar!","-",$strs); - $strs = explode("!explode!",$strs); - } - - $regex1 = "(<\/?)]+>([^<]+)<\/FONT>([^>]*>)"; - $regex2 = "(<\/?FONT[^<>]+)]+>([^<]+)<\/FONT>([^>]*>)"; - $regex3 = "(HREF|SRC)=([^<>]*){$hl[0]}([^<]*)<\/FONT>([^>]*)"; - - $src = array("/$regex1/i","/$regex2/i"); - $tar = array("\\1\\2\\3","\\1\\2\\3"); - $tsrc = array("/$regex1/i","/$regex2/i","/$regex3/i"); - $ttar = array("\\1\\2\\3","\\1\\2\\3","\\1=\\2\\3\\4"); - - if(!$o['er']) $str = checkquote($str); - - switch($o['sc']) { - case 'n': - for($i=0;$i $len ) { - if ( ord ($_bufs[$len - 1]) & 0x80 ) { - $z = strlen(preg_replace ('/[\x00-\x7F]/', '', substr ($_bufs, 0, $len))); - $cut = ( $z % 2 ) ? $len - 1 : $len; - } else - $cut = $len; - - $_bufs = substr ($_buf[$i], 0, $cut); - $_bufsno = quote_len ($_bufs); - $cut += $_bufsno; - $buf .= substr ($_buf[$i], 0, $cut) . "\n"; - - if ( preg_match ('/^(: )+/', $_buf[$i], $matches) ) { - $next = $matches[0] . substr ($_buf[$i], $cut); - if ( ! strncmp ($matches[0], $_buf[$i+1], strlen ($matches[0])) ) - $_buf[$i+1] = $next . ' ' . preg_replace ('/^(: )+/', '', $_buf[$i+1]); - else - $buf .= $next . "\n"; - } else { - if ( preg_match ('/^[\s]*$/', $_buf[$i+1]) ) { - $next = substr ($_buf[$i], $cut); - if ( strlen ($next) > $len ) { - $_buf[$i] = $next; - $i--; - } else - $buf .= $next . "\n"; - } else - $_buf[$i+1] = substr ($_buf[$i], $cut) . ' ' . $_buf[$i+1]; - } - } else - $buf .= $_buf[$i] . "\n"; - } - $buf = htmlspecialchars ($buf); -} - -function js_htmlcode(&$buf) { - global $enable, $agent; - - if(!is_object($enable['tag'])) - return; - - foreach($enable['tag'] as $v) { - if($v == 'code') - continue; - $reg .= $v . '|'; - } - $reg = preg_replace ('/\|$/', '', $reg); - $reg = "!\[(/?({$reg}))\]!i"; - - $buf = preg_replace ($reg, '<\\1>', $buf); - unset($reg); - $reg[] = "/\[code\][\r\n]*/i"; - $reg[] = "/[\r\n]*\[\/code\]/i"; - $reg[] = '/^[: ]*:
  • /i","/]+>/i","/\r\n/", - "/<(\/*(script|style|pre|xmp|xml|base|span|html)[^>]*)>/i","/(=[0-9]+%)>/i"); - $target = array("<\\1","\\1>","","\n","<\\1>","\\1>"); - $text = preg_replace($source,$target,$text); - if(!preg_match("/<--no-autolink>/i",$text)) $text = auto_link($text); - else $text = chop(str_replace("<--no-autolink>","",$text)); - - $text = preg_replace("/(\n)?(\n)?/i","
    ",$text);
    -    $text = !$text ? "No Contents" : $text;
    -    $text = "
    $text
    "; - } else { - $text = htmlspecialchars($text); - # ѱ ° - if ($_code == 'ko') $text = ugly_han($text); - if ($html) - new_read_format($text); - else - $text = "
    \n$text\n
    "; - $text = auto_link($text); - } -} - -function delete_tag(&$var) { - if ( $var['html'] != 1 ) - return; - - $src = array("/\n/i","/]*>/i","/<\/body.*<\/html>.*/i", - "/<\/*(div|span|layer|body|html|head|meta|input|select|option|form)[^>]*>/i", - "/<(style|script|title).*<\/(style|script|title)>/i", - "/<\/*(script|style|title|xmp|xml)>/i","/<(\\?|%)/i","/(\\?|%)>/i","/(=[0-9]+%)>/i", - "/#\^--ENTER--\^#/i"); - $tar = array("#^--ENTER--^#","","","","","","<\\1","\\1>","\\1>","\n"); - - $var['text'] = chop(preg_replace($src,$tar,$var['text'])); -} - -# ڿ ̷ ڸ Լ -# -# substr - ڿ ߶ -# http://www.php.net/manual/function.substr.php -function cut_string($s,$l) { - if(strlen($s) > $l) { - $s = substr($s,0,$l); - $s = preg_replace("/(([\x80-\xFE].)*)[\x80-\xFE]?$/","\\1",$s); - } - return $s; -} - - -# 뿡 ִ URL ãƳ ڵ ũ ִ Լ -# -# preg_replace - ǥ ̿ ġȯ -# http://www.php.net/manual/function.preg-replace.php -function auto_link($str) { - global $agent,$rmail,$print; - - $regex['file'] = "gz|tgz|tar|gzip|zip|rar|mpeg|mpg|exe|rpm|dep|rm|ram|asf|ace|viv|avi|mid|gif|jpg|png|bmp|eps|mov"; - $regex['file'] = "(\.({$regex['file']})\") TARGET=\"_blank\""; - $regex['http'] = "(http|https|ftp|telnet|news|mms):\/\/(([\xA1-\xFEa-z0-9:_\-]+\.[\xA1-\xFEa-z0-9,:;&#=_~%\[\]?\/.,+\-]+)([.]*[\/a-z0-9\[\]]|=[\xA1-\xFE]+))"; - $regex['mail'] = "([\xA1-\xFEa-z0-9_.-]+)@([\xA1-\xFEa-z0-9_-]+\.[\xA1-\xFEa-z0-9._-]*[a-z]{2,3}(\?[\xA1-\xFEa-z0-9=&\?]+)*)"; - - # < ؼ 3ٵڿ > - # IMG tag A tag ũ ٿ ̷ - # ̸ ٷ ħ (ġ鼭 ΰ ɼǵ ) - $src[] = "/<([^<>\n]*)\n([^<>\n]+)\n([^<>\n]*)>/i"; - $tar[] = "<\\1\\2\\3>"; - $src[] = "/<([^<>\n]*)\n([^\n<>]*)>/i"; - $tar[] = "<\\1\\2>"; - $src[] = "/<(A|IMG)[^>]*(HREF|SRC)[^=]*=[ '\"\n]*({$regex['http']}|mailto:{$regex['mail']})[^>]*>/i"; - $tar[] = "<\\1 \\2=\"\\3\">"; - - # email ̳ URL Ե URL ȣ @ ġȯ - $src[] = "/(http|https|ftp|telnet|news|mms):\/\/([^ \n@]+)@/i"; - $tar[] = "\\1://\\2_HTTPAT_\\3"; - - # Ư ڸ ġȯ html link ȣ - $src[] = "/&(quot|gt|lt)/i"; - $tar[] = "!\\1"; - $src[] = "/]*)href=[\"' ]*({$regex['http']})[\"']*[^>]*>/i"; - $tar[] = ""; - $src[] = "/href=[\"' ]*mailto:({$regex['mail']})[\"']*>/i"; - $tar[] = "href=\"mailto:\\2#-#\\3\">"; - $src[] = "/<([^>]*)(background|codebase|src)[ \n]*=[\n\"' ]*({$regex['http']})[\"']*/i"; - $tar[] = "<\\1\\2=\"\\4_orig://\\5\""; - - # ũ ȵ url email address ڵũ - $src[] = "/((SRC|HREF|BASE|GROUND)[ ]*=[ ]*|[^=]|^)({$regex['http']})/i"; - $tar[] = "\\1\\3"; - $src[] = "/({$regex['mail']})/i"; - $tar[] = "\\1"; - $src[] = "/]+>(]+>)/i"; - $tar[] = "\\1"; - $src[] = "/<\/a><\/a>/i"; - $tar[] = ""; - - # ȣ ġȯ ͵ - $src[] = "/!(quot|gt|lt)/i"; - $tar[] = "&\\1"; - $src[] = "/(http|https|ftp|telnet|news|mms)_orig/i"; - $tar[] = "\\1"; - $src[] = "'#-#'"; - $tar[] = "@"; - $src[] = "/{$regex['file']}/i"; - $tar[] = "\\1"; - - # email ּҸ Ŵ - $src[] = "/mailto:[ ]*{$regex['mail']}/i"; - $tar[] = "javascript:sendform('\\1','\\2','');"; - $src[] = "/{$regex['mail']}/i"; - #$tar[] = "\\1at\\2"; - $tar[] = "\\1at\\2"; - $src[] = "/<>/"; - $tar[] = ">>"; - - # email ּҸ URL @ - $src[] = "/_HTTPAT_/"; - $tar[] = "@"; - - # ̹ 0 - $src[] = "/<(img src=\"[^\"]+\")>/i"; - $tar[] = "<\\1 border=0>"; - - # IE ƴ embed tag - if($agent['br'] != "MSIE" && $agent['br'] != 'Firefox') { - $src[] = "/]+>/i', '', $str); - } else { - $strs = $str; - } - - $strs = str_replace ("'", "\'", $strs); - $_div = explode ('@', $url); - - $str = "$str"; - } else if(check_url($url)) { - $str = "{$str}"; - } else { - if($str == $url) $str = ""; - $str = "$str"; - } - - return $str; -} - -# File upload Լ -# -# -# mkdir -> directory -# is_upload_file -> upload file 缺 -# move_upload_file -> tmp uploadǾ ִ ϴ 丮 ġ -# chmod -> file, direcoty -# -function file_upload($fn,$updir) { - global $upload, $_, $table; - - $ufile['name'] = $_FILES[$fn]['name']; - $ufile['size'] = $_FILES[$fn]['size']; - $ufile['type'] = $_FILES[$fn]['type']; - $ufile['tmp_name'] = $_FILES[$fn]['tmp_name']; - - if(is_uploaded_file($ufile['tmp_name']) && $ufile['size'] > 0) { - if ($ufile['size'] > $upload['maxsize']) { - print_error($_('act_md'),250,150,1); - exit; - } - - # file name - $ufile['name'] = str_replace(" ","",urldecode($ufile['name'])); - - # file name Ư ڰ ź - upload_name_chk($ufile['name']); - - # php, cgi, pl file uploadҽÿ Ҽ phps, cgis, pls filename - $_parseName = explode ('.', $ufile['name']); - $_parsePart = count ($_parseName); - - $ufile['name'] = ''; - for ( $i=0; $i<$_parsePart; $i++ ) { - $_sep = ( $i && $i != $_parsePart - 1 ) ? '_' : '.'; - if ( ! $i ) $_sep = ""; - $ufile['name'] .= "$_sep{$_parseName[$i]}"; - } - - $fcname[0] = "/\.*$/"; - $fvname[0] = ""; - $fcname[1] = "/\.(ph|inc|php[0-9a-z]*|phtml)$/i"; - $fvname[1] = ".phps"; - $fcname[2] = "/(.*)\.(cgi|pl|sh|html|htm|shtml|vbs)$/i"; - $fvname[2] = "\\1_\\2.phps"; - $fcname[3] = "/(_tar)\.(gz|bz2)$/i"; - $fvname[3] = ".\\1.\\2"; - - $ufile['name'] = preg_replace($fcname, $fvname, $ufile['name']); - - mkdir("data/$table/{$upload['dir']}/$updir",0755); - move_uploaded_file($ufile['tmp_name'],"data/$table/{$upload['dir']}/$updir/".$ufile['name']); - chmod("data/$table/{$upload['dir']}/$updir/{$ufile['name']}",0644); - - $up = 1; - } elseif($ufile['name']) { - if($ufile['size'] == '0') { - print_error($_('act_ud'),250,150,1); - } else { - print_error($_('act_ed'),250,150,1); - } - exit; - } - if($up) return $ufile; -} - -# HTML entry Ư Ư ڷ ȯ -# (htmlspecialchars Լ Լ) -# -# get_html_translation_table - htmlspecialchars() htmlentities() Լ -# ϴ ȯ ̺ 迭 ȯ -# array_flip - 迭 ݴ -# -function unhtmlspecialchars($t) { - $tr = array_flip(get_html_translation_table(HTML_SPECIALCHARS)); - $t = strtr(str_replace("'","'",$t),$tr); - $t = strtr(str_replace("&","&",$t),$tr); - - return $t; -} - -# Emoticon ȯ Լ -function conv_emoticon(&$str, $opt=0) { - if (!$opt) return $str; - - $src[] = "/\^\^|\^\.\^/"; - $con[] = "emoticon"; - $src[] = '/([^0-9a-z])T\.T([^0-9a-z])/i'; - $con[] = "\\1emoticon\\2"; - $src[] = '/\?\.\?/'; - $con[] = "emoticon"; - $src[] = '/([^0-9a-z]):-?(\(|<)([^0-9a-z])/'; - $con[] = "\\1emoticon\\3"; - $src[] = '/([^0-9a-z])(:-?(\)|>)|n\.n)([^0-9a-z])/'; - $con[] = "\\1emoticon\\4"; - $src[] = '/([^0-9])0\.0([^0-9])/'; - $con[] = "\\1emoticon\\2"; - $src[] = '/([^0-9a-z])O\.O([^0-9a-z])/i'; - $con[] = "\\1emoticon\\2"; - $src[] = '/-\.?-V/'; - $con[] = "emoticon"; - $src[] = '/([^0-9a-z])(-_-|-\.-)([^0-9a-z])/'; - $con[] = "\\1emoticon\\3"; - $src[] = '/-0-|^0^|-O-|^O^/'; - $con[] = "emoticon"; - $src[] = '/([^0-9a-z]):-?D([^0-9a-z])/'; - $con[] = "\\1emoticon\\2"; - $src[] = '/([^0-9a-z]);-?\)([^0-9a-z])/'; - $con[] = "\\1emoticon\\2"; - $src[] = '/([^0-9a-z])\^_\^([^0-9a-z])/'; - $con[] = "\\1emoticon\\2"; - $src[] = '/([^0-9a-z]):-P|:P([^0-9a-z])/'; - $con[] = "\\1emoticon\\2"; - - $str = preg_replace($src, $con, $str); - $str = str_replace(".", "emoticon", $str); - $str = str_replace(".", "emoticon", $str); - $str = str_replace("_", "emoticon", $str); - $str = str_replace("̤", "emoticon", $str); - $str = str_replace("Ф", "emoticon", $str); -} - -function checkquote ( $str ) { - $str = preg_quote ($str); - $str = str_replace ("\\\\/", "\\/", $str); - - return $str; -} - -function sql_parser () { - $_argno = func_num_args (); - $_arg = func_get_args (); - - $type = $_arg[0]; - $table = $_arg[1]; - - switch ( $_argno) { - case 4 : - if ( is_numeric ($_arg[2]) ) { - $acc = $_arg[2]; - $name = $_arg[3]; - } else { - $acc = $_arg[3]; - $name = $_arg[2]; - } - break; - case 3 : - if ( is_numeric ($_arg[2]) ) { - $acc = $_arg[2]; - $name = ''; - } else { - $acc = 0; - $name = $_arg[2]; - } - break; - default : - $acc = 0; - $name = ''; - } - - - switch ( $acc ) { - case 2 : $_base = '../../SQL'; break; - case 1 : $_base = '../SQL'; break; - default : $_base = './SQL'; - } - - $_file = "{$_base}/{$type}/{$table}.sql"; - - #$_rr = trim (readfile_r ($_file)); - #if ( ! $_rr ) return ''; - #$_rr = preg_replace ('/#.*|[\s]+$/', '', $_rr); - #$_r = explode (';', $_rr); - #$_r = preg_replace ('/^[\s]+/', '', $_r); - - $_rr = @file ($_file); - $_rr = preg_replace ('/[\s]+$|#.*/', '', $_rr); - - $i = -1; - foreach ( $_rr as $_v ) { - if ( $_v == '') - continue; - - if ( $_v[0] == "\t" || $_v[0] == ' ' ) - $_r[$i] .= "\n" . $_v; - else { - if ( $_r[$i] ) - $_r[$i] = preg_replace ('/;$/', '', trim ($_r[$i])); - - $i++; - $_r[$i] = trim ($_v); - } - } - - if ( $name ) - $_r = preg_replace ('/@table@/', $name, $_r); - - return $_r; -} - -function parse_referer () { - $referer = parse_url ($_SERVER['HTTP_REFERER']); - $referer['basename'] = basename ($referer['path']); - - if ( ! is_array ($referer) ) - return; - - parse_str ($referer['query'], $ref); - - if ( ! is_array ($ref) ) - return; - - return array_merge ($ref, $referer); -} -?> diff --git a/include/prelist.ph b/include/prelist.ph new file mode 100644 index 00000000..6dbf7c1a --- /dev/null +++ b/include/prelist.ph @@ -0,0 +1,91 @@ + Ʈ ũ +# $p[name] -> ۾ +# $p[date] -> +# $p[count] -> ȸ +# +# table tag ϱ ؼ Ʒ prelist() Լ +# ؾ +# +function print_prlist($p) { + echo "$p[link] $p[name] - $p[date] $p[count]
    \n"; +} + + +# PHP ؼ 𸣽Ŵٰ Ͻô е ǵ帮 !!! +# table ̸ +# inc include +# $limit ۼ +# $cut ±ڼ +# $cn ̸ +# $cd +# $ce ̸ +# $cc ȸ +# $l ũ ɼ (: target onClick ) +# +function prelist($t,$inc,$limit=3,$cut=30,$cn=0,$cd=0,$ce=0,$cc=0,$l=0) { + global $prlist; + + include "$prlist[path]/config/global.ph"; + if($inc) { + include "$prlist[path]/include/error.ph"; + include "$prlist[path]/include/parse.ph"; + include "$prlist[path]/include/check.ph"; + include "$prlist[path]/include/sql.ph"; + } + + sql_connect($db[server], $db[user], $db[pass]); + sql_select_db($db[name]); + + $sql = "SELECT * FROM $t ORDER BY date DESC LIMIT $limit"; + $result = sql_query($sql); + $total = sql_num_rows($result); + + for ($i=0;$i<$total;$i++) { + mysql_data_seek($result,$i); + $row = mysql_fetch_array($result); + + $p[l] = $l ? " $l" : ""; + $p[no] = $row[no]; + $p[title] = $row[title]; + $p[name] = $cn ? $row[name] : ""; + $p[date] = $cd ? date("y.m.d",$row[date]) : ""; + $p[email] = $ce ? $row[email] : ""; + $p[count] = $cc ? $row[refer] : ""; + $p[preview] = cut_string(htmlspecialchars($row[text]),100); + + if($p[email] && $p[name]) + $p[name] = "$p[name]"; + + if($cut) { + if(strlen($p[title]) > $cut) + { $p[title] = cut_string($p[title],$cut).".."; } + } + + $p[link] = "$p[title]"; + + #Ʈ + print_prlist($p); + } + + sql_free_result($result); + mysql_close(); +} + +?> diff --git a/include/prelist.php b/include/prelist.php deleted file mode 100644 index 2ff1d347..00000000 --- a/include/prelist.php +++ /dev/null @@ -1,124 +0,0 @@ -\n" . - "
    \n" . - "\n"; -} - -$_prlist_init++; - -$prcode = isset ($prlist['code']) ? $prlist['code'] : 'en'; -putenv ("JSLANG={$prcode}"); - -require_once "{$prlist['path']}/language/lang.php"; -include_once "{$prlist['path']}/include/variable.php"; - -include_once "{$prlist['path']}/config/global.php"; -include_once "{$prlist['path']}/include/error.php"; -include_once "{$prlist['path']}/include/parse.php"; -include_once "{$prlist['path']}/include/check.php"; -include_once "{$prlist['path']}/database/db.php"; -include_once "{$prlist['path']}/include/get.php"; -include_once "{$prlist['path']}/include/print.php"; - -# ۸Ʈ ϴ design -# echo "" ̿ -# Ұ ǥ(") \" ǥ⸦ ؾ -# $p['link'] -> Ʈ ũ -# $p['name'] -> ۾ -# $p['date'] -> -# $p['count'] -> ȸ -# -# table tag ϱ ؼ Ʒ prelist() Լ -# ؾ -# -# $prlistTemplate Ǿ 쿡 -# ̿Ͽ -# -function print_prlist($p) { - $temp = trim($GLOBALS['prlistTemplate']) ? $GLOBALS['prlistTemplate'] : ""; - if ($temp) { - $src[] = "/P_SUBJECT_/i"; - $des[] = $p['link']; - $src[] = "/P_NAME_/i"; - $des[] = $p['name']; - $src[] = "/P_DATE_/i"; - $des[] = $p['date']; - $src[] = "/P_EMAIL_/i"; - $des[] = $p['email']; - $src[] = "/P_REFER_/i"; - $des[] = $p['count']; - if ($p['email']) { - $src[] = "/P_LNAME_/i"; - $des[] = "{$p['name']}"; - } else { - $src[] = "/P_LNAME_/i"; - $des[] = $p['name']; - } - - echo preg_replace($src,$des,$temp)."\n"; - } else { - echo "{$p['link']} {$p['name']} {$p['date']} {$p['count']}
    \n"; - } -} - -# PHP ؼ 𸣽Ŵٰ Ͻô е ǵ帮 !!! -# table ̸ -# $limit ۼ -# $cut ±ڼ -# -function prelist($t,$limit=3,$cut=30) { - global $prlist, $db; - - $_pvc = sql_connect($db['server'], $db['user'], $db['pass'], $db['name']); - $GLOBALS['_pvc'] = $_pvc; - - $_limit = compatible_limit (0, $limit); - $sql = "SELECT * FROM $t ORDER BY date DESC $_limit"; - $result = sql_query($sql, $_pvc); - - while ( $row = sql_fetch_array ($result) ) { - $p['no'] = $row['no']; - $p['title'] = $row['title']; - - $p['name'] = $row['name']; - $p['date'] = date("y.m.d",$row['date']); - $p['email'] = $row['email']; - $p['count'] = $row['refer']; - if ( $GLOBALS['prlistOpt'] ) - $p['l'] = " ".$GLOBALS['prlistOpt']; - - $p['preview'] = cut_string(htmlspecialchars($row['text']),100); - $p['preview'] = preg_replace_callback ('/[#\'\x5c]/','escape_callback',$p['preview']); - $p['preview'] = htmlspecialchars(htmlspecialchars($p['preview'])); - $p['preview'] = preg_replace("/\r?\n/i","
    ",$p['preview']); - $p['preview'] = trim(str_replace("&amp;","&",$p['preview'])); - $p['preview'] = " onMouseOver=\"drs('{$p['preview']}'); return true;\" onMouseOut=\"nd(); return true;\""; - - if($cut) { - if(strlen($p['title']) > $cut) - { $p['title'] = cut_string($p['title'],$cut).".."; } - } - - $p['link'] = "{$p['title']}"; - - #Ʈ - print_prlist($p); - } - - sql_free_result($result); - sql_close($_pvc); -} - -function escape_callback ($matches) { - return '&#x' . strtoupper (dechex (ord ($matches[0]))) . ';'; -} -?> diff --git a/include/print.ph b/include/print.ph new file mode 100644 index 00000000..c917b5c8 --- /dev/null +++ b/include/print.ph @@ -0,0 +1,677 @@ +"; +} + +# Խ ϴ "۾ | " κп | ϴ Լ +function separator($bg, $print = 0) { + $separator = "\"|\""; + if($print) echo $separator; + + return $separator; +} + +# ݽ ͽ FORM Էâ ũ ̸ ϱ +# intval - ȯ +# http://www.php.net/manual/function.intval.php +function form_size($size, $print = 0) { + global $langs; + + # Ŭ̾Ʈ Լ (include/get_info.ph) + $agent = get_agent(); + + # ׽ + if($agent[br] == "MOZL") { + if($agent[os] == "NT") { + if($agent[ln] == "KO") $size *= 1.1; # ѱ + else { + if ($langs[code] == "ko") $size *= 2.6; + else $size *= 1.4; + } + } else if($agent[os] == "WIN") { + if($agent[ln] == "KO") $size *= 1.1; # ѱ + else $size *= 1.3; + } elseif($agent[os] == "LINUX") $size *= 1.8; + } + + # ׽ 6 + if($agent[br] == "MOZL6") { + if($agent[os] == "NT") { + if($agent[ln] == "KO") $size *= 1.1; # ѱ + else { + if ($langs[code] == "ko") $size *= 2.3; + else $size *= 1.4; + } + } else $size *= 1.3; + } + + # ͳ ͽ÷η + if($agent[br] == "MSIE") { + if ($agent[os] == "NT") + if ($langs[code] == "ko") $size *= 2.3; + else $size *= 2.6; + else $size *= 2.3; + } + + if($agent[br] == "LYNX") $size *= 2; + + $size = intval($size); + if($print) echo $size; + + return $size; +} + +# ݽ ͽ TEXTAREA WRAP θ ϴ Լ +# +function form_wrap($print = 0) { + global $board, $langs, $list; + + # Ŭ̾Ʈ Լ (include/get_info.ph) + $agent = get_agent(); + + if ($board[wrap] && $agent[os] != "LINUX" && !$list[html]) { + $wrap[op] = "WRAP=hard"; + $wrap[ment] = " "; + } else { + $wrap[op] = "WRAP=off"; + $wrap[ment] = " $langs[w_ment] "; + } + + if($print) echo $wrap; + return $wrap; +} + +# , ($num)ŭ ϴ Լ +function page_list($table, $pages, $count, $num, $print = 0) { + global $color; # Խ ⺻ (config/global.ph) + global $o; # ˻ + + $search = search2url($o); + + if(!$pages[cur]) { + if($print) echo " "; + return " "; + } + + $d0 = $pages[cur] - $num - 1; + $d1 = $pages[all] - ($pages[cur] + $num); + + if($d0 < 1) { + $num_p = $num - $d0; + $num_m = $num_p - ($num * 2); + } else if($d1 < 1) { + $num_p = $num + $d1; + $num_m = $num_p - ($num * 2); + } else { + $num_p = $num; + $num_m = -$num; + } + + # ó ũ + $str .= "\n\n"; + if ($pages[cur] != "1") + $str .= "<<\n"; + else $str .= "<<\n"; + + # ŭ ũ + if($pages[all] < $num*2+1) { + $pagechk = $num*2; + for($co = $num_m; $co <= $num_p; $co++) { + $repages = $pages[cur] + $co; + if($repages > "0" && $repages > $num_p - $num * 2 && $repages <= $pages[all]) { + if($co) { + $page = $pages[cur] + $co; + $str .= "$page\n"; + } else $str .= "$pages[cur]\n"; + } + } + } else { + $pagechk = $pages[all]; + for($co = $num_m; $co <= $num_p; $co++) { + if($pages[cur] + $co <= $pages[all]) { + if($co) { + $page = $pages[cur] + $co; + $str .= "$page\n"; + } else $str .= "$pages[cur]\n"; + } + } + } + + # ũ + if($pages[cur] != $pages[all]) + $str .= ">>\n"; + else + $str .= ">>\n"; + + $str .= "\n"; + + if($print) { + echo $str; + } + return $str; +} + +function page_form($table, $pages, $color, $print = 0) { + global $board; # Խ ⺻ (config/global.ph) + global $o, $langs; # ˻ + + $post = search2url($o, "post"); + + if($pages[cur]) $value = $pages[cur]; + + $str = sprintf(" + + + + + + +
    + $post + + + +
    +\n", form_size(2)); + + if($print) echo $str; + return $str; +} + + +function search_form($table, $pages, $print = 0) { + global $board, $color; # Խ ⺻ (config/global.ph) + global $o, $langs, $PHP_SELF; + + if(eregi("read.php",$PHP_SELF)) $col[font] = "$color[r5_fg]"; + else $col[font] = "$color[l4_fg]"; + + $ss = str_replace("%", "%%", $o[ss]); + $ss = stripslashes($ss); + $ss = htmlspecialchars($ss); + + $sc[$o[sc]] = " SELECTED"; + $st[$o[st]] = " SELECTED"; + $er[$o[er]] = " CHECKED"; + + $str = sprintf(" + + + + + + + + +
    + + + + + + +
    + + + $langs[check_y] + +
    +\n", form_size(9)); + + if($print) echo $str; + return $str; +} + +function print_reply($table, $list, $print = 0) { + if($list[reto]) $result = get_article($table, $list[reto], "num"); + $langss = re_subj($result[num]); + if($list[reto]) $num = "$langss[r_re_subj]"; + else $num = "$langss[r_subj]"; + + if($print) echo $num; + return $num; +} + +# ӵ ׽Ʈ Լ +# +# microtime - н Ÿӽ ũ ʸ +# http://www.php.net/manual/function.microtime.php +function debug($color, $str = "") { + global $debug; + + $time = microtime(); + printf("
    %s [%s][%s]
    \n", $time, $str, ++$debug); +} + +# list page ,ϴ ũ Լ +function list_cmd($str) { + global $o, $color, $table, $pages, $enable, $cenable; + global $board, $langs, $page; + + if (!$page) $page = 1; + $str[search] = search2url($o); + + $str[sepa] = separator($color[n0_fg]); + $str[prev] = "$langs[cmd_priv]"; + $str[next] = "$langs[cmd_next]"; + $str[write] = "$langs[cmd_write]"; + + if(!$pages[pre]) $str[prev] = "$langs[cmd_priv]"; + if(!$pages[nex]) $str[next] = "$langs[cmd_next]"; + if(!$enable[write] || !$cenable[write]) + $str[write] = "$langs[cmd_write]"; + if($o[at] == "s") + $str[all] = "\n$langs[cmd_all]\n$str[sepa]"; + if($o[st] != "t") + $str[today] = "\n $langs[cmd_today]\n $str[sepa]"; + + # Խ ,ϴܿ , , ۾ ũ Լ + echo "\n\n" . + "\n" . + " $str[sepa]$str[all]\n" . + " \n" . + " $str[sepa]\n" . + " \n" . + " $str[sepa]\n" . + " \n" . + " $str[sepa]$str[today]\n" . + "\n
    $str[prev]$str[next]$str[write]
    "; +} + +# read page ,ϴ ũ Լ +function read_cmd($str) { + + global $o, $color, $table, $pages, $enable, $board; + global $cenable, $pos, $list, $no, $page, $langs; + + $str[search] = search2url($o); + #if (!$o[ck]) $str[search] = ""; + + $str[prev] = "$langs[cmd_upp]"; + $str[next] = "$langs[cmd_down]"; + $str[write] = "$langs[cmd_write]"; + + if ($rmail[user] == "yes") { + $str[reply] = "$langs[cmd_reply]"; + } else { + $str[reply] = "$langs[cmd_reply]"; + } + + $str[edit] = "$langs[cmd_edit]"; + $str[dele] = "$langs[cmd_del]"; + if(!$enable[re_list]) { + $str[rep] = "$langs[cmd_con]"; + $str[sepa_rep] = $str[sepa]; + } + + if(!$pos[prev]) $str[prev] = "$langs[cmd_upp]"; + if(!$pos[next]) $str[next] = "$langs[cmd_down]"; + if(!$enable[write] || !$cenable[write]) + $str[write] = "$langs[cmd_write]"; + if(!$enable[reply] || !$cenable[reply]) + $str[reply] = "$langs[cmd_reply]"; + if(!$list[passwd]) { + $str[edit] = "$langs[cmd_edit]"; + $str[dele] = "$langs[cmd_del]"; + } + if($list[reyn] || !$enable[delete] || !$cenable[delete]) + $str[dele] = "$langs[cmd_del]"; + if(!$enable[edit] || !$cenable[edit]) + $str[edit] = "$langs[cmd_edit]"; + if(!$enable[re_list] && ($list[reto] || $list[reyn])) { + $reto = $list[reto] ? $list[reto] : $list[no]; + $str[rep] = "$langs[cmd_con]"; + } + + echo "\n\n" . + "\n" . + " $str[sepa]\n" . + " \n" . + " $str[sepa]\n" . + " \n" . + " $str[sepa]\n" . + " \n" . + " $str[sepa]\n" . + " \n" . + " $str[sepa]\n" . + " \n" . + " $str[sepa]\n" . + " \n" . + " $str[sepa]\n" . + " \n" . + " $str[sepa]\n" . + " \n" . + " $str[sepa_rep]\n" . + "\n" . + "
    $langs[cmd_list]$str[prev]$str[next]$str[write]$str[reply]$str[edit]$str[dele]$str[rep]
    "; +} + +function img_lmenu($str,$icons = 20) { + + global $o, $color, $table, $pages, $enable, $cenable, $langs, $page; + + if (!$page) $page = 1; + # theme ˸ image path + if ($color[theme]) $themes[img] = get_theme_img($table); + else $themes[img] = "images"; + + $str[search] = search2url($o); + $str[prev] = "\"$langs[cmd_priv]\"
    \n"; + $str[next] = "\"$langs[cmd_next]\"
    \n"; + $str[write] = "\"$langs[cmd_write]\"
    \n"; + + if(!$pages[pre]) $str[prev] = ""; + if(!$pages[nex]) $str[next] = ""; + + if(!$enable[write] || !$cenable[write]) + $str[write] = "\"$langs[cmd_write]\"
    \n"; + if($o[at] == "s") + $str[all] = "\"$langs[cmd_all]\"
    \n"; + if($o[st] != "t") + $str[today] = "\"$langs[cmd_today]\"
    \n"; + + # Խ ,ϴܿ , , ۾ ũ Լ + echo "\n$str[all]" . + "$str[prev]" . + "$str[next]" . + "$str[write]" . + "$str[today]"; +} + +function img_rmenu($str,$icons = 20) { + global $o, $color, $table, $pages, $enable; + global $cenable, $pos, $list, $no, $page, $langs; + + # theme ˸ image path + if ($color[theme]) $themes[img] = get_theme_img($table); + else $themes[img] = "images"; + + $str[search] = search2url($o); + + $str[prev] = "\"$langs[cmd_upp]\"
    \n"; + $str[next] = "\"$langs[cmd_down]\"
    \n"; + $str[write] = "\"$langs[cmd_write]\"
    \n"; + + if ($rmail[user] == "yes") + $str[reply] = "\"$langs[cmd_reply]\"
    \n"; + else + $str[reply] = "\"$langs[cmd_reply]\"
    \n"; + + $str[edit] = "\"$langs[cmd_edit]\"
    \n"; + $str[dele] = "\"$langs[cmd_del]\"
    \n"; + $str[rep] = ""; + + if(!$pos[prev]) $str[prev] = ""; + if(!$pos[next]) $str[next] = ""; + + if(!$enable[write] || !$cenable[write]) + $str[write] = "\"$langs[cmd_write]\"
    \n"; + if(!$enable[reply] || !$cenable[reply]) + $str[reply] = "\"$langs[cmd_reply]\"
    \n"; + if(!$list[passwd]) { + $str[edit] = "\"$langs[cmd_edit]\"
    \n"; + $str[dele] = "\"$langs[cmd_del]\"
    \n"; + } + if($list[reyn] || !$enable[delete] || !$cenable[delete]) + $str[dele] = "\"$langs[cmd_del]\"
    \n"; + if(!$enable[edit] || !$cenable[edit]) + $str[edit] = "\"$langs[cmd_edit]\"
    \n"; + if(!$enable[re_list] && ($list[reto] || $list[reyn])) { + $reto = $list[reto] ? $list[reto] : $list[no]; + $str[rep] = "\"$langs[cmd_con]\"
    \n"; + } + + echo "\n\"$langs[cmd_list]\"
    \n" . + "$str[prev]" . + "$str[next]" . + "$str[write]" . + "$str[reply]" . + "$str[edit]" . + "$str[dele]" . + "$str[rep]"; +} + + +# ش ñ Ʈ ѷش. +function article_reply_list($table,$pages) { + global $list, $langs, $upload, $td_width; + + $reto = $list[reto] ? $list[reto] : $list[no]; + $o[ck]=1; + $o[at]=s; + $o[sc]=r; + $o[no]=$reto; + $o[ss]=""; + $o[ln]=4; # read Ʈ ½ cellpaddingŭ ٿ + + echo "

    [ $langs[conj] ]


    +\n"; + + get_list($table, $pages, $o); + + echo " + + + \n"; + + if ($upload[yesno] == "yes") { + if ($cupload[yesno] == "yes") + echo " "; + } + + echo " + + + +
    \n"; +} + + +# preview java script +function print_preview_src() { + global $color, $agent; + + if($agent[br] == "MSIE") { + $script_for_browser = " over = overDiv.style;\n". + " document.onmousemove = mouseMove;\n\n". + + " function drs(text, title) { dts(1,text); }\n\n". + + " function nd() {\n". + " if ( cnt >= 1 ) { sw = 0 };\n". + " if ( sw == 0 ) { snow = 0; hideObject(over); }\n". + " else { cnt++; }\n". + " }\n\n". + + " function dts(d,text) {\n". + " txt = \"
    \"+text+\"
    \"\n". + " layerWrite(txt);\n". + " dir = d;\n". + " disp();\n". + " }\n\n". + + " function disp() {\n". + " if (snow == 0) {\n". + " if (dir == 2) { moveTo(over,x+offsetx-(width/2),y+offsety); } // Center\n". + " if (dir == 1) { moveTo(over,x+offsetx,y+offsety); } // Right\n". + " if (dir == 0) { moveTo(over,x-offsetx-width,y+offsety); } // Left\n". + " showObject(over);\n". + " snow = 1;\n". + " }\n". + " }\n\n". + + " function mouseMove(e) {\n". + " x=event.x + document.body.scrollLeft+10\n". + " y=event.y + document.body.scrollTop\n". + " if (x+width-document.body.scrollLeft > document.body.clientWidth) x=x-width-25;\n". + " if (y+height-document.body.scrollTop > document.body.clientHeight) y=y-height;\n\n". + + " if (snow) {\n". + " if (dir == 2) { moveTo(over,x+offsetx-(width/2),y+offsety); } // Center\n". + " if (dir == 1) { moveTo(over,x+offsetx,y+offsety); } // Right\n". + " if (dir == 0) { moveTo(over,x-offsetx-width,y+offsety); } // Left\n". + " }\n". + " }\n\n". + + " function cClick() { hideObject(over); sw=0; }\n". + " function layerWrite(txt) { document.all[\"overDiv\"].innerHTML = txt }\n". + " function showObject(obj) { obj.visibility = \"visible\" }\n". + " function hideObject(obj) { obj.visibility = \"hidden\" }\n". + " function moveTo(obj,xL,yL) { obj.left = xL; obj.top = yL; }"; + } elseif($agent[br] == "MOZL6") { + $script_for_browser = " over = document.getElementById('overDiv');\n". + " document.onmousemove = mouseMove;\n". + " document.captureEvents(Event.MOUSEMOVE);\n\n". + + " function drs(text, title) { dts(1,text); }\n\n". + + " function nd() {\n". + " if ( cnt >= 1 ) { sw = 0 };\n". + " if ( sw == 0 ) {\n". + " snow = 0;\n". + " hideObject(over);\n". + " } else { cnt++; }\n". + " }\n\n". + + + " function dts(d,text) {\n". + " txt = \"
    \"+text+\"
    \"\n". + " layerWrite(txt);\n". + " dir = d;\n". + " disp();\n". + " }\n\n". + + " function disp() {\n". + " if (snow == 0) {\n". + " if (dir == 2) { moveTo(over,x+offsetx-(width/2),y+offsety); } // Center\n". + " if (dir == 1) { moveTo(over,x+offsetx,y+offsety); } // Right\n". + " if (dir == 0) { moveTo(over,x-offsetx-width,y+offsety); } // Left\n". + " showObject(over);\n". + " snow = 1;\n". + " }\n". + " }\n\n". + + " function mouseMove(e) {\n". + " x=( (e.pageX)+width-window.pageXOffset > window.innerWidth ) ? (e.pageX+10)-width-10 : e.pageX+10;\n". + " y=( (e.pageY)+height-self.pageYOffset > window.innerHeight ) ? (e.pageY)-height+5 : e.pageY;\n\n". + + " if (snow) {\n". + " if (dir == 2) { moveTo(over,x+offsetx-(width/2),y+offsety); } // Center\n". + " if (dir == 1) { moveTo(over,x+offsetx,y+offsety); } // Right\n". + " if (dir == 0) { moveTo(over,x-offsetx-width,y+offsety); } // Left\n". + " }\n". + " }\n\n". + + " function cClick() { hideObject(over); sw=0; }\n". + " function layerWrite(txt) { over.innerHTML = txt; }\n". + " function showObject(obj) { obj.style.visibility = \"visible\"; }\n". + " function hideObject(obj) { obj.style.visibility = \"hidden\"; }\n". + " function moveTo(obj,xL,yL) {\n". + " obj.style.left = xL\n". + " obj.style.top = yL\n". + " }"; + } elseif($agent[br] == "MOZL") { + $script_for_browser = " over = document.overDiv;\n". + " document.onmousemove = mouseMove;\n". + " document.captureEvents(Event.MOUSEMOVE);\n\n". + + " function drs(text, title) { dts(1,text); }\n\n". + + " function nd() {\n". + " if ( cnt >= 1 ) { sw = 0 };\n". + " if ( sw == 0 ) { snow = 0; hideObject(over); }\n". + " else { cnt++; }\n". + " }\n\n". + + " function dts(d,text) {\n". + " txt = \"
    \"+text+\"
    \"\n". + " layerWrite(txt);\n". + " dir = d;\n". + " disp();\n". + " }\n\n". + + " function disp() {\n". + " if (snow == 0) {\n". + " if (dir == 2) { moveTo(over,x+offsetx-(width/2),y+offsety); } // Center\n". + " if (dir == 1) { moveTo(over,x+offsetx,y+offsety); } // Right\n". + " if (dir == 0) { moveTo(over,x-offsetx-width,y+offsety); } // Left\n". + " showObject(over);\n". + " snow = 1;\n". + " }\n". + " }\n\n". + + " function mouseMove(e) {\n". + " x=e.pageX+10;\n". + " y=e.pageY;\n". + " if (x+width-self.pageXOffset > window.innerWidth) x=x-width-5;\n". + " if (y+height-self.pageYOffset > window.innerHeight) y=y-height;\n\n". + + " if (snow) {\n". + " if (dir == 2) { moveTo(over,x+offsetx-(width/2),y+offsety); } // Center\n". + " if (dir == 1) { moveTo(over,x+offsetx,y+offsety); } // Right\n". + " if (dir == 0) { moveTo(over,x-offsetx-width,y+offsety); } // Left\n". + " }\n". + " }\n\n". + + " function cClick() { hideObject(over); sw=0; }\n\n". + + " function layerWrite(txt) {\n". + " var lyr = document.overDiv.document;\n". + " lyr.write(txt);\n". + " lyr.close();\n". + " }\n\n". + + " function showObject(obj) { obj.visibility = \"show\" }\n". + " function hideObject(obj) { obj.visibility = \"hide\" }\n". + " function moveTo(obj,xL,yL) { obj.left = xL; obj.top = yL; }"; + } + + echo "
    \n". + "\n"; +} + +function form_size_button($l) { + # charset euc_kr ƴ Ư ڰ + # image form size ư ü + if($l != "ko") { + echo "". + "\"Left\n". + "". + "\"RESET\"\n". + "". + "\"Up\n"; + } else { + echo "". + "". + "\n"; + } +} +?> diff --git a/include/print.php b/include/print.php deleted file mode 100644 index 76cc2181..00000000 --- a/include/print.php +++ /dev/null @@ -1,777 +0,0 @@ - $value) { - global ${$key}; - confirm_variable ($key, $value); - ${$key} = $value; - } - } - - if(count($_POST)) { - foreach($_POST as $key => $value) { - global ${$key}; - confirm_variable ($key, $value); - ${$key} = $value; - } - } -} - -# ϴ ̵Ű Լ -function move_page($path,$time = 0) { - $path = str_replace(" ","%20",$path); - echo ""; -} - -function move_page_js ($path) { - $path = str_replace(" ","%20",$path); - echo "\n"; - exit; -} - -# ݽ ͽ FORM Էâ ũ ̸ ϱ -# intval - ȯ -# http://www.php.net/manual/function.intval.php -function form_size($size, $print = 0) { - global $_code, $agent; - - # for Nescape - if($agent['br'] == 'NS' && $agent['vr'] <= 4) { - if($agent['os'] == 'NT') { - if($agent['ln'] == 'KO') $size *= 1.1; # ѱ - else { - if ($_code == 'ko') $size *= 2.6; - else $size *= 1.4; - } - } else if($agent['os'] == 'WIN') { - if($agent['ln'] == 'KO') $size *= 1.1; # ѱ - else $size *= 1.3; - } elseif($agent['os'] == 'LINUX') { - if($agent['ln'] == 'KO') $size *= 2.8; # ѱ - else $size *= 1.0; - } - } - - # Nescape 6 or Mozilla - else if($agent['nco'] == 'moz') { - if($agent['os'] == 'NT') { - if($agent['ln'] == 'KO') $size *= 2.2; # ѱ - else { - if ($_code == 'ko') $size *= 2.3; - else $size *= 1.8; - } - } else $size *= 1.9; - } - - # ͳ ͽ÷η - else if($agent['br'] == 'MSIE' || $agent['br'] == 'Firefox') { - if ($agent['os'] == 'NT') - if ($_code == 'ko') $size *= 2.3; - else $size *= 2.0; - else $size *= 2.3; - } - - else if($agent['tx']) $size *= 2; - else if($agent['br'] == 'KONQ') $size *= 2.6; - - $size = intval($size); - if($print) echo $size; - - return $size; -} - -# , ($num)ŭ ϴ Լ -function page_list($table, $pages, $count, $num, $print = 0) { - global $o; # ˻ - - $search = search2url($o); - - if(!$pages['cur']) { - if($print) echo " "; - return " "; - } - - $d0 = $pages['cur'] - $num - 1; - $d1 = $pages['all'] - ($pages['cur'] + $num); - - if($d0 < 1) { - $num_p = $num - $d0; - $num_m = $num_p - ($num * 2); - } else if($d1 < 1) { - $num_p = $num + $d1; - $num_m = $num_p - ($num * 2); - } else { - $num_p = $num; - $num_m = -$num; - } - - # ó ũ - $str .= "\n\n"; - if ($pages['cur'] != "1" && $d0 > 0) - $str .= "" . - "[F]..\n"; - - # ŭ ũ - if($pages['all'] < $num*2+1) { - $pagechk = $num*2; - for($co = $num_m; $co <= $num_p; $co++) { - $repages = $pages['cur'] + $co; - if($repages > "0" && $repages > $num_p - $num * 2 && $repages <= $pages['all']) { - if($co) { - $page = $pages['cur'] + $co; - $str .= "". - "[$page]\n"; - } else $str .= '[' . $pages['cur'] . "]\n"; - } - } - } else { - $pagechk = $pages['all']; - for($co = $num_m; $co <= $num_p; $co++) { - if($pages['cur'] + $co <= $pages['all']) { - if($co) { - $page = $pages['cur'] + $co; - $str .= "". - "[$page]\n"; - } else $str .= "[{$pages['cur']}]\n"; - } - } - } - - # ũ - if($pages['cur'] != $pages['all'] && $d1 > 0) - $str .= "". - "..[L]\n"; - - $str .= "\n"; - - if($print) - echo $str; - - return $str; -} - -function page_form($pages,$o) { - $s['post'] = search2url($o, "post"); - $s['value'] = !$pages['cur'] ? "" : $pages['cur']; - - return $s; -} - -function search_form($o) { - $s['ss'] = htmlspecialchars(stripslashes($o['ss'])); - - if($o['er']) { - # ǥ: ˻ "[,(" "],)" üũ - $chk = preg_replace("/\\\([\]\[()])/i","",$s['ss']); - $chk = preg_replace("/[^\[\]()]/i","",$chk); - - $chkAOpen = strlen(preg_replace("/\]/i","",$chk)); - $chkAClos = strlen(preg_replace("/\[/i","",$chk)); - $chkBOpen = strlen(preg_replace("/\)/i","",$chk)); - $chkBClos = strlen(preg_replace("/\(/i","",$chk)); - - if($chkAOpen !== $chkAClos) $s['ss'] .= "]"; - elseif($chkBOpen !== $chkBClos) $s['ss'] .= ")"; - } - - $s['sc'][$o['sc']] = ( $o['sct'] && $o['sct'] != "s") ? ' checked="checked"' : ' selected="selected"'; - $s['st'][$o['st']] = ( $o['sct'] && $o['stt'] != "s") ? ' checked="checked"' : ' selected="selected"'; - $s['er'][$o['er']] = ' checked="checked"'; - - return $s; -} - -function print_reply($table, $list, $print = 0) { - if($list['reto']) { - $result = get_article($table, $list['reto'], "num"); - $num = "Reply from No. {$result['num']}"; - } else - $num = "No. {$list['num']}"; - - if($print) echo $num; - return $num; -} - -# list page ,ϴ ũ Լ -function list_cmd($img=0,$prt=0) { - global $jsboard, $o, $table, $pages, $enable; - global $board, $_, $page, $print, $_lang; - - if (!$page) $page = 1; - $str['search'] = search2url($o); - - if($img) { - $menu['pre'] = "" . $_("; - $menu['nxt'] = "" . $_("; - $menu['all'] = "" . $_("; - $menu['write'] = "" . $_("; - $menu['today'] = "" . $_("; - } else { - $menu['pre'] = '' . $_('cmd_priv') . ''; - $menu['nxt'] = '' . $_('cmd_next') . ''; - $menu['all'] = '' . $_('cmd_all') . ''; - $menu['write'] = '' . $_('cmd_write') . ''; - $menu['today'] = '' . $_('cmd_today') . ''; - } - - $str['prev'] = !$pages['pre'] ? "" : "{$menu['pre']}\n"; - $str['next'] = !$pages['nex'] ? "" : "{$menu['nxt']}\n"; - $str['write'] = "{$menu['write']}\n"; - - if($o['at'] == "s" || $o['at'] == "d") - $str['all'] = "{$menu['all']}\n"; - if($o['st'] != "t") - $str['today'] = "{$menu['today']}\n"; - - if($board['mode'] != 0 && $board['mode'] != 2 && $board['mode'] != 6 && $board['mode'] != 7) { - # ƴϸ ũ - if($_SESSION[$jsboard]['pos'] != 1 && !$board['adm']) $str['write'] = ""; - } - - # Խ ,ϴܿ , , ۾ ũ Լ - $link = "{$str['all']}{$str['prev']}{$str['next']}{$str['write']}{$str['today']}"; - - if($prt) echo $link; - return $link; -} - -# read page ,ϴ ũ Լ -function read_cmd($img=0,$prt=0) { - global $jsboard, $o, $table, $pages, $enable, $board; - global $pos, $list, $no, $page, $_, $print, $alert, $_lang; - - $str['search'] = search2url($o); - #if (!$o['ck']) $str['search'] = ""; - - if($img) { - $menu['pre'] = "" . $_("; - $menu['nxt'] = "" . $_("; - $menu['del'] = "" . $_("; - $menu['edit'] = "" . $_("; - $menu['lists'] = "" . $_("; - $menu['reply'] = "" . $_("; - $menu['write'] = "" . $_("; - $menu['conj'] = "" . $_("; - } else { - $menu['pre'] = '' . $_('cmd_upp') . ''; - $menu['nxt'] = '' . $_('cmd_down') . ''; - $menu['del'] = '' . $_('cmd_del') . ''; - $menu['edit'] = '' . $_('cmd_edit') . ''; - $menu['lists'] = '' . $_('cmd_list') . ''; - $menu['reply'] = '' . $_('cmd_reply') . ''; - $menu['write'] = '' . $_('cmd_write') . ''; - $menu['conj'] = '' . $_('cmd_con') . ''; - } - - $str['prev'] = "{$menu['pre']}"; - $str['next'] = "{$menu['nxt']}"; - $str['write'] = "{$menu['write']}"; - - if ($rmail['user']) - $str['reply'] = "{$menu['reply']}"; - else - $str['reply'] = "{$menu['reply']}"; - - $str['edit'] = "{$menu['edit']}"; - $str['dele'] = "{$menu['del']}"; - if(!$enable['re_list']) $str['rep'] = '' . $_('cmd_con') . ''; - - if(!$pos['prev']) $str['prev'] = $img ? "" : '' . $_('cmd_upp') . ""; - if(!$pos['next']) $str['next'] = $img ? "" : '' . $_('cmd_down') . ""; - if(!session_is_registered("$jsboard") && !$list['passwd']) { - if(!$img) { - $menu['edit'] = '' . $_('cmd_edit') . ""; - $menu['dele'] = '' . $_('cmd_del') . ""; - } - $str['edit'] = "{$menu['edit']}"; - $str['dele'] = "{$menu['del']}"; - } - if($list['reyn'] && !$_SESSION[$jsboard]['pos']) { - if(!$img) $menu['del'] = '' . $_('cmd_del') . ''; - $str['dele'] = "{$menu['del']}"; - } - if(!$enable['re_list'] && ($list['reto'] || $list['reyn'])) { - $reto = $list['reto'] ? $list['reto'] : $list['no']; - $str['rep'] = "{$menu['conj']}"; - } else $str['rep'] = ""; - - # α mode ڰ ƴϰ ڽ ƴҰ ũ - if(preg_match("/^(1|2|3|5|7)$/i",$board['mode']) && session_is_registered("$jsboard")) { - if($_SESSION[$jsboard]['id'] != $list['name'] && $_SESSION[$jsboard]['pos'] != 1 && !$board['adm']) { - $str['edit'] = ""; - $str['dele'] = ""; - } - } - - # admin only mode anonymous ڰ ƴ ũ - if(!preg_match("/^(0|2|6|7)$/i",$board['mode']) && $_SESSION[$jsboard]['pos'] != 1 && !$board['adm']) { - $str['write'] = ""; - if($board['mode'] != 4 && $board['mode'] != 5) { - $str['reply'] = ""; - $str['dele'] = ""; - $str['edit'] = ""; - } - } - - # reply ڰ ƴϸ reply ũ - if(preg_match("/^(6|7)$/i",$board['mode']) && $_SESSION[$jsboard]['pos'] != 1 && !$board['adm']) - $str['reply'] = ""; - - $t = "{$menu['lists']}\n". - "{$str['prev']}\n". - "{$str['next']}\n". - "{$str['write']}\n". - "{$str['reply']}\n". - "{$str['edit']}\n". - "{$str['dele']}\n". - "{$str['rep']}\n"; - - if($alert) { - $t = "{$menu['lists']}\n". - "{$str['write']}\n"; - } - - if($prt) echo $t; - else return $t; -} - - -# ش ñ Ʈ ѷش. -function article_reply_list($table,$pages,$print=0) { - global $list, $_, $upload, $td_width, $lines, $td_array; - - $td_array = !trim($td_array) ? "nTNFDR" : $td_array; - - for($i=0;$i\n". - "\n". - " \n". - " \n". - " \n"; - - if ($upload['yesno'] && $cupload['yesno']) - $t .= " \n"; - - $t .= "\n". - " \n". - "\n"; - $t .= get_list($table,$pages,$o); - $t .= "\n"; - - if($print) echo $t; - else return $t; -} - -function detail_searchform($p='') { - global $table,$board,$_,$o; - global $c, $db; - - $res= sql_query("SELECT min(date) AS min,max(date) AS max FROM $table", $c); - $period = sql_fetch_array($res); - - $max = explode(".",date("Y.m.d",$period['max'])); - $min = explode(".",date("Y.m.d",$period['min'])); - - # ˻Ⱓ ⵵ Ʈ - for($i=$max[0];$i>=$min[0];$i--) { - if(!$o['y1']) $_check = ($i == $min[0]) ? ' selected="selected"' : ''; - else $_check = ($i == $o['y1']) ? ' selected="selected"' : ''; - if($i == $max[0]) $nxthang = "\n"; - $print['peys'] .= "$nxthang $i\n"; - } - - # ˻Ⱓ Ʈ - for($i=1;$i<13;$i++) { - if(!$o['m1']) $_check = ($i == $min[1]) ? ' selected="selected"' : ''; - else $_check = ($i == $o['m1']) ? ' selected="selected"' : ''; - if($i == 1) $nxthang = "\n"; - $print['pems'] .= "$nxthang $i\n"; - } - - # ˻Ⱓ Ʈ - for($i=1;$i<32;$i++) { - if(!$o['d1']) $_check = ($i == $min[2]) ? ' selected="selected"' : ''; - else $_check = ($i == $o['d1']) ? ' selected="selected"' : ''; - if($i == 2) $nxthang = "\n"; - $print['peds'] .= "$nxthang $i\n"; - } - - # ˻Ⱓ ⵵ Ʈ - for($i=$max[0];$i>=$min[0];$i--) { - if(!$o['y2']) $_check = ($i == $max[0]) ? ' selected="selected"' : ''; - else $_check = ($i == $o['y2']) ? ' selected="selected"' : ''; - if($i == $max[0]) $nxthang = "\n"; - $print['peye'] .= "$nxthang $i\n"; - } - - # ˻Ⱓ Ʈ - for($i=1;$i<13;$i++) { - if(!$o['m2']) $_check = ($i == $max[1]) ? ' selected="selected"' : ''; - else $_check = ($i == $o['m2']) ? ' selected="selected"' : ''; - if($i == 1) $nxthang = "\n"; - $print['peme'] .= "$nxthang $i\n"; - } - - # ˻Ⱓ Ʈ - for($i=1;$i<32;$i++) { - if(!$o['d2']) $_check = ($i == $max[2]) ? ' selected="selected"' : ''; - else $_check = ($i == $o['d2']) ? ' selected="selected"' : ''; - if($i == 2) $nxthang = "\n"; - $print['pede'] .= "$nxthang $i\n"; - } - - $ERCHK = ($o['er']) ? ' checked="checked"' : ''; - $TCHK = ($o['sc'] == "t") ? ' checked="checked"' : ''; - $CCHK = ($o['sc'] == "c") ? ' checked="checked"' : ''; - $NCHK = ($o['sc'] == "n") ? ' checked="checked"' : ''; - $ACHK = ($o['sc'] == "a") ? ' checked="checked"' : ''; - if(!$o['sc']) $TCHK = ' checked="checked"'; - - $o['ss'] = preg_replace("/\\\\+/i","\\",$o['ss']); - - $form = "\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". - "
    " . $_('sh_str') . ":\n". - "\n". - "\n". - "\n". - "
    " . $_('sh_pat') . ":\n". - " TITLE\n". - " Contents\n". - " Writer\n". - " ALL\n". - "
    " . $_('sh_dat') . ":\n". - "\n\n". - - "\n\n". - - "\n". - "-\n". - "\n\n". - - "\n\n". - - "\n". - "
    " . $_('check_y') . ":\n". - "\n". - "\n". - "
    \n". - "
    \n".
    -          $_('sh_ment').
    -          "
    \n". - "
    \n". - "
    \n". - "
    \n". - "\n\n". - "
    \n"; - - if($p) echo $form; - else return $form; -} - -function print_comment($table,$no,$print=0) { - global $board, $size, $rname, $page, $_; - global $pre_regist; - $textareasize = $size['text']-form_size(9); - - if (preg_match("/^(2|3|5|7)$/",$board['mode'])) { - if($board['super'] != 1) $disable = " readonly"; - else $disable = ""; - } else $disable = ""; - - $t = "\n". - get_comment($table, $no, 0). - "\n". - "
    \n". - "
    \n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "\n". - "
    ". - "". - "\n". - $_('c_na') . "
    \n". - $_('c_ps') . "
    \n". - "\n". - "
    \n". - "\n". - "\n". - "\n". - "
    \n". - "\n". - "\n". - "\n". - "\n". - "\n". - "
    \n". - "
    \n"; - - if ( $print ) echo $t; - else return $t; -} - -function print_keymenu($type=0) { - global $table, $pages, $pos, $page, $no, $nolenth; - - switch ($type) { - case '3' : - case '2' : - /* write/reply/edit mode */ - $plink = "./read.php?table={$table}&no={$no}"; - $anycmd = "else if(ch == ':' || strs == ':') {\n". - " strs = strs + ch;\n". - " if(strs == ':q') { self.close(); }\n". - " }\n"; - break; - case '1' : - /* read mode */ - $nlink = "./read.php?table={$table}&no={$pos['prev']}"; - $plink = "./read.php?table={$table}&no={$pos['next']}"; - $ment = "Article"; - - $anycmd = "else if(ch == 'l' || ch == '.' || ch == 'L') {\n". - " location_ref('./list.php?table={$table}&page={$page}');\n". - " } else if(ch == 'r' || ch == 'R' || ch == '/') {\n". - " location_ref('./reply.php?table={$table}&no={$no}&page={$page}');\n". - " } else if(ch == 'e' || ch == 'E') {\n". - " location_ref('./edit.php?table={$table}&no={$no}&page={$page}');\n". - " } else if(ch == 'd' || ch == 'D') {\n". - " location_ref('./delete.php?table={$table}&no={$no}&page={$page}');\n". - " } else if(ch == ':' || strs == ':') {\n". - " strs = strs + ch;\n". - " if(strs == ':q') { self.close(); }\n". - " }\n"; - break; - default : - /* list mode */ - $nextpage = $pages['nex'] ? $pages['nex'] : $pages['all']; - $prevpage = $pages['pre'] ? $pages['pre'] : 1; - $nlink = "./list.php?table={$table}&page={$nextpage}"; - $plink = "./list.php?table={$table}&page={$prevpage}"; - $ment = "Page"; - - $precmd = " if (cc == 13) {\n". - " if(strs.length > 0) location_ref('read.php?table={$table}&num=' + strs + '&page={$page}');\n". - " else strs = \"\";\n". - " } else"; - - $anycmd = "else if(ch == ':' || strs == ':') {\n". - " strs = strs + ch;\n". - " if(strs == ':q') { self.close(); }\n". - " } else {\n". - " strs = strs + ch;\n". - " if(strs.length > {$nolenth}) strs = \"\";\n". - " document.getElementById(\"num\").innerHTML=strs;\n". - " }\n"; - } - - switch ($type) { - case '3' : - case '2' : - if ( $type == 3 ) - $plink = 'history.back();'; - else - $plink = 'location_ref(\'' . $plink . '\');'; - $cmds = " ${precmd} if(ch == 'p' || ch == 'P') {\n". - " location_ref('./list.php?table=$table&page=1');\n". - " } else if(ch == 'b' || ch == 'B' || ch == '-') {\n". - " {$plink}\n". - " } else if(ch == 'w' || ch == 'W' || ch == '*') {\n". - " location_ref('./write.php?table=$table&page=$page');\n". - " } $anycmd\n"; - break; - case '1' : - default : - $cmds = " ${precmd} if(ch == 'p' || ch == 'P') {\n". - " location_ref('./list.php?table=$table&page=1');\n". - " } else if(ch == 'n' || ch == 'N' || ch == '+') {\n". - " location_ref('$nlink');\n". - " } else if(ch == 'b' || ch == 'B' || ch == '-') {\n". - " location_ref('$plink');\n". - " } else if(ch == 's' || ch == 'S') {\n". - " document.getElementById('searchstr').focus();\n". - " } else if(ch == 'w' || ch == 'W' || ch == '*') {\n". - " location_ref('./write.php?table=$table&page=$page');\n". - " } $anycmd\n"; - break; - } - - echo " \n"; -} - -function print_spam_trap() { - echo "
    \n" . - "\n" . - "
    \n"; -} - -function debug_block ($ipaddr, $var) { - if($_SERVER['REMOTE_ADDR'] === $ipaddr) { - echo "
    \n";
    -    print_r($var);
    -    echo "
    \n"; - exit; - } -} - -function new_reply_read_format (&$buf, $html) { - $src[] = '/\[[\s]*quote[\s]*\]/i'; - if ( $html != 1 ) - $dsc[] = '
    ';
    -  else
    -    $dsc[] = '
    '; - $src[] = '/\[[\s]*\/quote[\s]*\]/i'; - if ( $html != 1 ) - $dsc[] = '
    ';
    -  else
    -    $dsc[] = '';
    -  $src[] = '/\[[\s]*quote[\s]*=[\s]*"([^\]]*)"[\s]*\]/i';
    -  if ( $html != 1 )
    -    $dsc[] = "
    \\1 wrote:
    \n";
    -  else
    -    $dsc[] = "
    \\1 wrote:\n"; - - $buf = preg_replace ($src, $dsc, $buf); -} - -function utf8_fallback (&$obj, $charset, $skip = false) { - if ( $skip === false ) { - if ( check_utf8_conv ($charset) === false ) - return $str; - } - - if ( is_array ($obj) || is_object ($obj) ) { - foreach ( $obj as $key => $val ) - utf8_fallback ($obj[$key], $charset, true); - } else { - $obj = iconv ($charset, 'utf-8//ignore', $obj); - } -} -?> diff --git a/include/replicate.php b/include/replicate.php deleted file mode 100644 index 715c6237..00000000 --- a/include/replicate.php +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/include/sURI.php b/include/sURI.php deleted file mode 100644 index 16eec1b1..00000000 --- a/include/sURI.php +++ /dev/null @@ -1,84 +0,0 @@ - - * @copyright 1997-2008 OOPS.ORG - * @license BSD License - * @version CVS: $Id: sURI.php,v 1.3 2009-02-01 14:08:04 oops Exp $ - * @since File available since Release 0.1 - */ - -function block_devided ($string, $block = null) { - if ( ! is_array ($block) ) - return false; - - while ( ($p = array_pos ($string, $block)) !== false ) { - if ( $p->pos > 0 ) { - $_r = substr ($string, 0, $p->pos); - if ( preg_match ("/\n([: ]*:)$/", rtrim ($_r), $matches) ) { - $r[] = preg_replace ("/\n[: ]+$/", '', $_r); - } else { - $r[]= $_r; - } - $string = substr ($string, $p->pos); - } - - $end = preg_replace ('/[\[<]/', '\\0/', $p->needle); - if ( ($pp = strpos ($string, $end)) !== false ) { - $r[] = substr ($string, 0, $pp + strlen ($end)); - $string = substr ($string, $pp + strlen ($end) + 1); - } else - break; - } - - if ( $string ) - $r[] = $string; - - return $r; -} - -function array_pos ($haystack, $needle = null) { - if ( ! is_array ($needle) ) - return false; - - $p = null; - $r = (object) array ('needle' => false, 'pos' => false); - - foreach ( $needle as $val ) - $p[] = strpos ($haystack, $val); - - if ( ! is_array ($p) ) - return false; - - $mlen = false; - $chkkey = 0; - - foreach ( $p as $key => $v ) { - if ( $v === false ) - continue; - - if ( $mlen !== false ) { - $mlen = ($mlen > $v) ? $v : $mlen; - $chkkey = $key; - } else - $mlen = $v; - } - - if ( $mlen === false ) - return false; - - $r->needle = $needle[$chkkey]; - $r->pos = $mlen; - - return $r; -} -?> diff --git a/include/security.ph b/include/security.ph new file mode 100644 index 00000000..c6776c7f --- /dev/null +++ b/include/security.ph @@ -0,0 +1,43 @@ + $chk_rtime) { + $p = @get_html_src("jsboard.kldp.org",500,"SecurityMSG/serial.txt",1); + if(!eregi("none",$p)) $p = trim(eregi_replace(".+ ([0-9]{11})","\\1",$p)); + else $p = "none"; + + if($p == "none" && $security[prints]) $chk_print = 0; + elseif(!$security[serial]) $chk_print = 2; + + if($security[serial] < $p) { + $security[serial] = $p; + if($chk_print != 2) $chk_print = 1; + $ment = "warning"; + } else { + if($chk_print !=2) $chk_print = 0; + } + + if($p == "none" || $chk_print == 2) $security[serial] = 1; + + $security[content] = ""; + + $err_msg = "Don't update security infomation"; + file_operate("./config/security_data.ph","w",$err_msg,$security[content]); + + } else { if($security[prints]) $ment = "warning"; } + + return $ment; +} + +?> diff --git a/include/sendmail.ph b/include/sendmail.ph new file mode 100644 index 00000000..34ccb8c5 --- /dev/null +++ b/include/sendmail.ph @@ -0,0 +1,200 @@ +\r\n". + "Organization: JSBoard Open Project\r\n". + "User-Agent: JSBoard Mail System\r\n". + "X-Accept-Language: ko,en\r\n". + "MIME-Version: 1.0\r\n". + "Content-Type: text/plain; charset=$langs[charset]\r\n". + "Content-Transfer-Encoding: $charbit\r\n". + "To: $to\r\n". + "Reply-To: $from\r\n". + "Return-Path: $from\r\n". + "Subject: $title\n"; + } else { + $header = "From: JSBoard Message <>\r\n". + "Organization: JSBoard Open Project\r\n". + "User-Agent: JSBoard Mail System\r\n". + "X-Accept-Language: ko,en\r\n". + "MIME-Version: 1.0\r\n". + "Content-Type: text/plain; charset=$langs[charset]\r\n". + "Content-Transfer-Encoding: $charbit\r\n". + "Reply-To: $from\r\n". + "Return-Path: $from\r\n"; + } + + return $header; +} + +function phpmail($to,$from,$title,$body) { + global $langs; + + # ڿ üũ + mailcheck($to,$from,$title,$body); + + $header = mail_header($to,$from,$title,1); + mail($to,$title,$body,$header) or print_notice($langs[mail_send_err]); +} + +function socketmail($smtp,$to,$from,$title,$body) { + global $langs; + $smtp = !trim($smtp) ? "127.0.0.1" : $smtp; + + # ڿ üũ + mailcheck($to,$from,$title,$body); + + # mail header ۼ + $mail_header = mail_header($to,$from,$title); + + # body + $body = $mail_header.$body; + $body = str_replace("\n","\r\n",str_replace("\r","",$body)); + + # smtp port socket + $p = fsockopen($smtp,25,&$errno,&$errstr); + + if ($p) { + fputs($p,"HELO $smtp\r\n"); + fgets($p,512); + fputs($p,"MAIL From: $from\r\n"); + fgets($p,512); + fputs($p,"RCPT To: $to\r\n"); + fgets($p,512); + fputs($p,"data\r\n"); + fgets($p,512); + fputs($p,"$body\r\n.\r\n"); + fgets($p,512); + fputs($p,"quit\r\n"); + fgets($p,512); + fclose($p); + } else print_notice($langs[mail_send_err]); +} + +function sendmail($rmail,$fm=0) { + global $REMOTE_ADDR, $HTTP_USER_AGENT, $HTTP_ACCEPT_LANGUAGE, $SERVER_NAME, $langs; + + $mail_msg_head = "$langs[sm_dr]"; + + if ($langs[code] == "ko") $time = date("Y/m/d (D) a hi"); + else $time = date("Y/m/d (D) a h:i"); + + $time=explode(" ",$time); + + $year=$time[0]; + $day=$time[1]; + $ampm=$time[2]; + $hms=$time[3]; + + # Ͽ double quote single quote ó + $rmail[text] = stripslashes($rmail[text]); + $rmail[name] = stripslashes($rmail[name]); + $rmail[title] = stripslashes($rmail[title]); + + if ($langs[code] == "ko") { + if ($day == "(Mon)") $day="()"; + else if ($day == "(Tue)") $day="(ȭ)"; + else if ($day == "(Wed)") $day="()"; + else if ($day == "(Thu)") $day="()"; + else if ($day == "(Fri)") $day="()"; + else if ($day == "(Sat)") $day="()"; + else if ($day == "(Sun)") $day="()"; + } else if ($langs[code] == "jp") { + if ($day == "(Mon)") $day="()"; + else if ($day == "(Tue)") $day="()"; + else if ($day == "(Wed)") $day="()"; + else if ($day == "(Thu)") $day="()"; + else if ($day == "(Fri)") $day="()"; + else if ($day == "(Sat)") $day="()"; + else if ($day == "(Sun)") $day="()"; + } + + $webboard_address = sprintf("%s%s",$rmail[bbshome],"read.php?table=$rmail[table]&no=$rmail[no]"); + $reply_article = sprintf("%s%s",$rmail[bbshome],"reply.php?table=$rmail[table]&no=$rmail[no]"); + + if (!$fm) { + $dbname = "DB Name : $rmail[table]"; + $dbloca = "DB Location : $webboard_address"; + $repart = "Reply Article : $reply_article"; + $nofm = "\n$dbname\n$dbloca\n$repart"; + $homeurl = "HomeURL : $rmail[url]"; + } else { + $rmail[user] = "yes"; + $homeurl = "To : mailto:$rmail[reply_orig_email]"; + } + + $message = "\r\n". + "\r\n". + "$mail_msg_header\r\n". + "\r\n". + " JSBOARD $rmail[table] message\r\n". + "\r\n". + "[ Server Infomation ]------------------------------------------------------\r\n". + "ServerWare : JSBoard-$rmail[version]\r\n". + "Server Name : $SERVER_NAME$nofm\r\n". + "\r\n". + "\r\n". + "[ Article Infomation ]-----------------------------------------------------\r\n". + " : $rmail[name]\r\n". + "Email : mailto:$rmail[email]\r\n". + "$homeurl\r\n". + " : $year $day $ampm $hms\r\n". + "---------------------------------------------------------------------------\r\n". + "\r\n". + "$rmail[text]\r\n". + "\r\n". + "\r\n". + "\r\n". + "---------------------------------------------------------------------------\r\n". + "REMOTE_ADDR : $REMOTE_ADDR\r\n". + "HTTP_USER_AGENT : $HTTP_USER_AGENT\r\n". + "HTTP_ACCEPT_LANGUAGE : $HTTP_ACCEPT_LANGUAGE\r\n". + "---------------------------------------------------------------------------\r\n". + "\r\n". + "OOPS Form mail service - http://www.oops.org\r\n". + "Scripted by JoungKyun Kim\r\n"; + + if ($rmail[user] == "yes" && $rmail[reply_orig_email]) { + if(!$rmail[email]) $rmail[email] = "<>"; + if($rmail[mta]) socketmail($rmail[smtp],$rmail[reply_orig_email],$rmail[email],$rmail[title],$message); + else phpmail($rmail[reply_orig_email],$rmail[email],$rmail[title],$message); + } + + if ($rmail[admin] == "yes" && $rmail[toadmin] != "") { + $to = $rmail[toadmin]; + if(!$rmail[email]) $rmail[email] = "<>"; + if($rmail[mta]) socketmail($rmail[smtp],$rmail[toadmin],$rmail[email],$rmail[title],$message); + else phpmail($rmail[toadmin],$rmail[email],$rmail[title],$message); + } + +} + +?> diff --git a/include/sendmail.php b/include/sendmail.php deleted file mode 100644 index 82101b63..00000000 --- a/include/sendmail.php +++ /dev/null @@ -1,357 +0,0 @@ - debug Ѵ. -# ofhtml -> 󿡼 󿡼 Ѵ. -# from -> ߼ϴ ּ -# to -> ּ -# text -> -# -class maildaemon { - var $failed = 0; - - function maildaemon($v) { - $this->debug = $v['debug']; - $this->ofhtml = $v['ofhtml']; - if($_SERVER['SERVER_NAME']) $this->helo = $_SERVER['SERVER_NAME']; - if(!$this->helo || preg_match("/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/i",$this->helo)) - $this->helo = "JSBoardMessage"; - - $this->from = $v['from']; - $this->to = $v['to']; - $this->body = $v['text']."\r\n."; - $this->newline = $this->ofhtml ? "
    \n" : "\n"; - - $this->mx = $this->getMX($this->to); - - if($this->debug) { - echo "DEBUG: ".$this->mx." start".$this->newline; - echo "################################################################".$this->newline; - } - $this->sockets("open"); - $this->send("HELO ".$this->helo); - $this->send("MAIL FROM: <".$this->from.">"); - $this->send("RCPT TO: <".$this->to.">"); - $this->send("data"); - $this->send($this->body); - $this->send("quit"); - $this->sockets("close"); - } - - function getMX($email) { - $dev = explode("@",$email); - $account = $dev[0]; - $host = $dev[1]; - - if(checkdnsrr($host,"MX") && getmxrr($host,$mx,$weight)) { - $idx = 0; - for($i=0;$i $weight[$i]) { - $dest = $weight[$i]; - $idx = $i; - } - } - } else return $host; - return $mx[$idx]; - } - - # Լ - # $t -> 1 (debug of socket open,close) - # 0 (regular smtp message) - # $p -> 1 (print detail debug) - # - # return 1 -> success - # return 0 -> failed - # - function debug($str,$t=0,$p=0) { - if($t) { - if(!$str) $this->failed = 1; - if($this->sock) $returnmsg = trim(fgets($this->sock,1024)); - } else { - if(!preg_match("/^(220|221|250|251|354)$/",substr(trim($str),0,3))) - $this->failed = 1; - } - - # DEBUG mode -> ޼ - if($p) { - if($t) { - $str = "Conncet ".$this->mx; - $str .= $this->failed ? " Failed" : " Success"; - $str .= $this->newline."DEBUG: $returnmsg"; - } - echo "DEBUG: $str".$this->newline; - } - - # DEBUG 尡 ƴҶ, ޼ - if(!$p && $this->failed) { - if($this->ofhtml) echo "\n"; - else "ERROR: $str\n"; - } - } - - function sockets($option=0) { - switch($option) { - case "open" : - $this->sock = @fsockopen($this->mx,25,$this->errno,$this->errstr,30); - $this->debug($this->sock,1,$this->debug); - break; - default : - if($this->sock) fclose($this->sock); - break; - } - } - - function send($str,$chk=0) { - if(!$this->failed) { - if($this->debug) { - if(preg_match("/\r\n/",trim($str))) - $str_debug = trim(str_replace("\r\n","\r\n ",$str)); - else $str_debug = $str; - } - fputs($this->sock,"$str\r\n"); - $recv = trim(fgets($this->sock,1024)); - $recvchk = $recv; - $this->debug($recv,0,$this->debug); - - if(preg_match("/Mail From:/i",$str) && preg_match("/exist|require|error/i",$recvchk) && !$chk) { - $this->failed = 0; - $this->send("MAIL FROM: <".$this->to.">",1); - } - } - } -} - -function mailcheck($to,$from,$title,$body) { - global $_; - if(!trim($to)) print_error($_('mail_to_chk_err'),250,150,1); - if(!trim($from)) print_error($_('mail_from_chk_err'),250,150,1); - if(!trim($title)) print_error($_('mail_title_chk_err'),250,150,1); - if(!trim($body)) print_error($_('mail_body_chk_drr'),250,150,1); -} - -function get_boundary_msg() { - $uniqchr = uniqid(""); - $one = strtoupper($uniqchr[0]); - $two = strtoupper(substr($uniqchr,0,8)); - $three = strtoupper(substr(strrev($uniqchr),0,8)); - return "----=_NextPart_000_000${one}_${two}.${three}"; -} - -function generate_mail_id($uid) { - $id = date("YmdHis",time()); - mt_srand((float) microtime() * 1000000); - $randval = mt_rand(); - $id .= $randval."@$uid"; - return $id; -} - -function body_encode_lib($str) { - $return = base64_encode(trim($str)); - $return = wordwrap($return,60,"\r\n",1); - return $return; -} - -function html_to_plain_lib($str) { - $src[] = "/\n|\r\n/i"; - $des[] = "||ENTER||"; - $src[] = "/^.*]*>/i"; - $des[] = ""; - $src[] = "/<\/body>.*$/i"; - $des[] = ""; - $src[] = "/\|\|ENTER\|\|/i"; - $des[] = "\r\n"; - $str = preg_replace($src,$des,$str); - - return $str; -} - -function get_htmltext($rmail,$year,$day,$ampm,$hms,$nofm) { - global $_; - - if($nofm) $nofm = auto_link($nofm); - if($rmail['url']) $homeurl = "HomeURL : ".auto_link($rmail['url'])."\r\n"; - if($rmail['email']) { - $rmail['pemail'] = (preg_match("/^nobody@/i",$rmail['email'])) ? "" : $rmail['email']; - if($rmail['pemail']) { - $rmail['pemail'] = preg_replace("/{$rmail['pemail']}/i","mailto:\\0",$rmail['pemail']); - $mailurl = "Email : {$rmail['pemail']}\r\n"; - } - } - $addressinfo = trim($mailurl.$homeurl); - $rmail['text'] = !$rmail['html'] ? html_to_plain_lib($rmail['text']) : $rmail['text']; - $servername = strtoupper($_SERVER['SERVER_NAME']); - - $themepath = "theme/{$rmail['theme']}/mail.template"; - $htmltext = readfile_r ($themepath); - - $htmltext = str_replace ("\$_('charset')", $_('charset'), $htmltext); - $htmltext = str_replace ("\$_('html_msg')", $_('html_msg'), $htmltext); - $htmltext = str_replace ("\$_('u_name')", $_('u_name'), $htmltext); - $htmltext = str_replace ("\$_('reg')", $_('reg'), $htmltext); - $htmltext = str_replace ("\"", "\\\"", $htmltext); - eval("\$htmltext = \"$htmltext\";"); - - return $htmltext; -} - -function mail_header($to,$from,$title,$mta=0) { - global $_, $boundary; - - # mail header ۼ - $boundary = get_boundary_msg(); - $header = "Message-ID: <".generate_mail_id(preg_replace("/@.+$/i","",$to)).">\r\n". - "From: JSBoard Message <$from>\r\n". - "MIME-Version: 1.0\r\n"; - - if(!$mta) $header .= "Date: ".date ("D, j M Y H:i:s T",time())."\r\n". - "To: $to\r\n". - "Subject: $title\r\n"; - - $header .= "Content-Type: multipart/alternative;\r\n". - " boundary=\"$boundary\"\r\n\r\n"; - - return $header; -} - -function socketmail($mta,$to,$from,$title,$pbody,$hbody) { - global $_,$boundary; - - # ڿ üũ - mailcheck($to,$from,$title,$pbody); - - $title = "=?" . $_('charset') . "?B?".trim(base64_encode($title))."?="; - $title = preg_replace("/[\s]+/i"," ",str_replace("\r\n","\n",$title)); - - # mail header ۼ - $mail_header = mail_header($to,$from,$title,$mta); - - # body - $body = "This is a multi-part message in MIME format.\r\n". - "\r\n--$boundary\r\n". - "Content-Type: text/plain; charset=" . $_('charset') . "\r\n". - "Content-Transfer-Encoding: base64\r\n\r\n". - body_encode_lib($pbody). - "\r\n\r\n--$boundary\r\n". - "Content-Type: text/html; charset=" . $_('charset') . "\r\n". - "Content-Transfer-Encoding: base64\r\n\r\n". - body_encode_lib($hbody). - "\r\n--$boundary--\r\n"; - - $mails['debug'] = 0; - $mails['ofhtml'] = 0; - $mails['to'] = $to; - $mails['from'] = $from; - $mails['text'] = $mail_header.$body; - - if($mta) { - ini_set("SMTP","$smtp"); - $body = str_replace("\r\n","\n",$body); - $mail_header = str_replace("\r\n","\n",$mail_header); - mail($mails['to'],$title,$body,$mail_header,"-f{$mails['from']}"); - } else { - new maildaemon($mails); - } -} - -function sendmail($rmail) { - global $_, $_code; - - if($rmail['smtp']) $rmail['mta'] = $rmail['smtp']; - $rmail['mta'] = $rmail['mta'] ? $rmail['mta'] : 0; - $mail_msg_head = $_('sm_dr'); - - if ($_code == "ko") $time = date("Y/m/d (D) a hi"); - else $time = date("Y/m/d (D) a h:i"); - - $time=explode(" ",$time); - - $year=$time[0]; - $day=$time[1]; - $ampm=$time[2]; - $hms=$time[3]; - - # Ͽ double quote single quote ó - $rmail['text'] = stripslashes($rmail['text']); - $rmail['name'] = stripslashes($rmail['name']); - $rmail['title'] = stripslashes($rmail['title']); - $rmail['email'] = !trim($rmail['email']) ? "nobody@{$_SERVER['SERVER_NAME']}" : $rmail['email']; - if(preg_match("/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/i",$_SERVER['SERVER_NAME'])) - $rmail['email'] = "nobody@[".$_SERVER['SERVER_NAME']."]"; - - $rmail['pemail'] = (preg_match("/^nobody@/i",$rmail['email'])) ? "" : "mailto:{$rmail['email']}"; - - if ($_code == "ko") { - if ($day == "(Mon)") $day="()"; - else if ($day == "(Tue)") $day="(ȭ)"; - else if ($day == "(Wed)") $day="()"; - else if ($day == "(Thu)") $day="()"; - else if ($day == "(Fri)") $day="()"; - else if ($day == "(Sat)") $day="()"; - else if ($day == "(Sun)") $day="()"; - } else if ($__code == "jp") { - if ($day == "(Mon)") $day="()"; - else if ($day == "(Tue)") $day="()"; - else if ($day == "(Wed)") $day="()"; - else if ($day == "(Thu)") $day="()"; - else if ($day == "(Fri)") $day="()"; - else if ($day == "(Sat)") $day="()"; - else if ($day == "(Sun)") $day="()"; - } - - $webboard_address = sprintf("%s%s",$rmail['path'],"read.php?table={$rmail['table']}&no={$rmail['no']}"); - $reply_article = sprintf("%s%s",$rmail['path'],"reply.php?table={$rmail['table']}&no={$rmail['no']}"); - - $dbname = "DB Name : {$rmail['table']}"; - $dbloca = "DB Location : $webboard_address"; - #$repart = "Reply Article : $reply_article"; - $nofm = "\r\n$dbname\r\n$dbloca\r\n$repart"; - $mailurl = "Email : {$rmail['pemail']}\r\n"; - $homeurl = "HomeURL : {$rmail['url']}\r\n"; - - $message = "\r\n". - "\r\n". - "$mail_msg_header\r\n". - "\r\n". - " JSBOARD {$rmail['table']} message\r\n". - "\r\n". - "[ Server Infomation ]------------------------------------------------------\r\n". - "ServerWare : JSBoard-{$rmail['version']}\r\n". - "Server Name : {$_SERVER['SERVER_NAME']}$nofm\r\n". - "\r\n". - "\r\n". - "[ Article Infomation ]-----------------------------------------------------\r\n". - $_('u_name') . " : {$rmail['name']}\r\n". - "$mailurl". - "$homeurl". - $_('a_t13') . " : $year $day $ampm $hms\r\n". - "---------------------------------------------------------------------------\r\n". - "\r\n". - html_to_plain_lib($rmail['text'])."\r\n". - "\r\n". - "\r\n". - "\r\n". - "---------------------------------------------------------------------------\r\n". - "REMOTE_ADDR : {$_SERVER['REMOTE_ADDR']}\r\n". - "HTTP_USER_AGENT : {$_SERVER['HTTP_USER_AGENT']}\r\n". - "HTTP_ACCEPT_LANGUAGE : {$_SERVER['HTTP_ACCEPT_LANGUAGE']}\r\n". - "---------------------------------------------------------------------------\r\n". - "\r\n". - "JSBoard Form mail service - http://jsboard.kldp.net\r\n"; - - $htmltext = get_htmltext($rmail,$year,$day,$ampm,$hms,$nofm); - - if ($rmail['user'] && $rmail['reply_orig_email'] && $rmail['email'] != $rmail['toadmin']) { - socketmail($rmail['mta'],$rmail['reply_orig_email'],$rmail['email'],$rmail['title'],$message,$htmltext); - } - - if ($rmail['admin'] && $rmail['toadmin'] != "" && $rmail['email'] != $rmail['toadmin']) { - socketmail($rmail['mta'],$rmail['toadmin'],$rmail['email'],$rmail['title'],$message,$htmltext); - } -} -?> diff --git a/include/spam_check.ph b/include/spam_check.ph new file mode 100644 index 00000000..f89fdfd1 --- /dev/null +++ b/include/spam_check.ph @@ -0,0 +1,21 @@ +\n", $spam[$i]); + } +} +?> diff --git a/include/spam_check.php b/include/spam_check.php deleted file mode 100644 index 72645579..00000000 --- a/include/spam_check.php +++ /dev/null @@ -1,24 +0,0 @@ -\n", $spam[$i]); - } -} -?> diff --git a/include/sql.ph b/include/sql.ph new file mode 100644 index 00000000..39bb3c28 --- /dev/null +++ b/include/sql.ph @@ -0,0 +1,95 @@ + diff --git a/include/tableratio.ph b/include/tableratio.ph new file mode 100644 index 00000000..63e63f44 --- /dev/null +++ b/include/tableratio.ph @@ -0,0 +1,30 @@ + diff --git a/include/variable.php b/include/variable.php deleted file mode 100644 index 980d40a9..00000000 --- a/include/variable.php +++ /dev/null @@ -1,87 +0,0 @@ - (object) array ( - 'ckeyv' => '/[^[:alnum:]#$%&\/?@]/', - 'ckey' => '/[^0-9]/', - 'reno' => '/[^0-9]/', - 'html' => '/[^0-9]/', - 'no' => '/[^0-9]/', - 'delete_dir' => '/[^a-z0-9\/_-]/i', - 'delete_filename' => '/[^a-z0-9_-.]/i', - ), - 'cenable' => (object) array ( - 'ore' => '/[^0-9]/', - ), - 'check' => '/[^0-9]/', - 'goaway' => '/[^0-9]/', - 'lu' => '/[^\xA1-\xFEa-z0-9.]/', - 'm' => '/[^[:alpha:]]/', - 'nd' => '/[^0-9]/', - 'no' => '/[^0-9]/', - 'o' => (object) array ( - 'at' => '/[^a-z_]/i', - 'er' => '/[^[:alpha:]]/', - 'sc' => '/[^[:alpha:]]/', - 'sct' => '/[^[:alpha:]]/', - 'stt' => '/[^[:alpha:]]/', - 'st' => '/[^[:alpha:]]/', - 'y1' => '/[^0-9]/', - 'y2' => '/[^0-9]/', - 'm1' => '/[^0-9]/', - 'm2' => '/[^0-9]/', - 'd1' => '/[^0-9]/', - 'd2' => '/[^0-9]/' - ), - 'page' => '/[^0-9]/', - 't' => '/[^[:alpha:]]/', - 'table' => '/[^A-Za-z0-9_-]/', - 'type' => '/[^[:alpha:]]/', -); - -function fatal_error ($msg) { - echo << - alert('$msg'); - -EOF; - exit; -} - -function confirm_variable ($key, $value) { - global $jsvari; - if (!isset($jsvari->$key)) - return; - - if (is_array($value)) { - foreach ($value as $k => $v) { - if (!isset($jsvari->$key->$k)) continue; - - if (!is_string ($jsvari->$key->$k)) { - fatal_error ('You send invalid parameter'); - exit; - } - - if (preg_match($jsvari->$key->$k,$v)) { - $msg = sprintf('You can not access with %s[%s]=%s', $key, $k, $v); - fatal_error($msg); - exit; - } - } - return; - } - - if (!is_string ($jsvari->$key)) { - fatal_error ('You send invalid parameter'); - exit; - } - - if (preg_match($jsvari->$key,$value)) { - $msg = sprintf('You can\\\'t access with %s=%s', $key, $value); - fatal_error($msg); - exit; - } - return; -} -?> diff --git a/include/version.ph b/include/version.ph new file mode 100644 index 00000000..4534eb23 --- /dev/null +++ b/include/version.ph @@ -0,0 +1,3 @@ + diff --git a/include/version.php b/include/version.php deleted file mode 100644 index a427892f..00000000 --- a/include/version.php +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/include/wikify.php b/include/wikify.php deleted file mode 100644 index 3ec1a98f..00000000 --- a/include/wikify.php +++ /dev/null @@ -1,234 +0,0 @@ -". - "$wiki:"; - #if (!$text) $text=str_replace("%20"," ",$page); - if (!$text) $text=urldecode($page); - else if (preg_match("/^(http|ftp|attachment):.*\.(png|gif|jpeg|jpg)$/i",$text)) { - if (substr($text,0,11)=='attachment:') { - $fname=substr($text,11); - $ntext=macro_repl('Attachment',$fname,1); - if (!file_exists($ntext)) - $text=macro_repl('Attachment',$fname); - else { - $text=qualifiedUrl($_config['url_prefix'].'/'.$ntext); - $text= "$text"; - } - } else - $text= "$text"; - $img=''; - } - - if (preg_match("/\.(png|gif|jpeg|jpg)$/i",$url)) - return "$text$extra"; - - return $img. "$text$extra"; -} - -function link_repl($url,$attr='') { - #if ($url[0]=='<') { print $url;return $url;} - $url=str_replace('\"','"',$url); - if ($url[0]=="[") { - $url=substr($url,1,-1); - $force=1; - } -# - switch ($url[0]) { - case '{': - $url=substr($url,3,-3); - if ($url[0]=='#' and ($p=strpos($url,' '))) { - $col=strtok($url,' '); $url=strtok(''); - if (!preg_match('/^#[0-9a-f]{6}$/',$col)) $col=substr($col,1); - return "$url"; - } else if (preg_match('/^((?:\+|\-)([1-6]?))(?=\s)(.*)$/',$url,$m)) { - if ($m[2]=='') $m[1].='1'; - return "$m[3]"; - } - return "$url"; # No link - break; - } - if (strpos($url,":")) { - - if ($url[0] == '^') { - $attr.=' target="_blank" '; - $url=substr($url,1); - $external_icon=$_config['icon']['external']; - } - - if (preg_match("/^(w|[A-Z])/",$url)) { # InterWiki or wiki: - if (strpos($url," ")) { # have a space ? - $dum=explode(" ",$url,2); - return interwiki_repl($dum[0],$dum[1],$attr,$external_icon); - } - - return interwiki_repl($url,'',$attr,$external_icon); - } - } - return $url; -} - -function wikify(&$line,$options=array()) { - global $_config; - - if(!file_exists($_config['intermap'])) - return; - - $_config['wordrule'] ="({{{(?U)(.+)}}})|"; - $_config['wordrule'].="(\b|\^?)([A-Z][a-zA-Z]+):([^\(\)<>\s\']*[^\(\)<>\s\'\",\.:\?\!]*(\s(?![\x33-\x7e]))?)"; - - $_config['baserule']="''''''"; - $_config['baserepl']=""; - $line=preg_replace("/(".$_config['baserule'].")/",$_config['baserepl'],$line); - - $line=preg_replace("/(".$_config['wordrule'].")/e","link_repl('\\1')",$line); -} - -# test -#macro_interwiki(); -# -#$line='hello Wiki:FrontPage gello'; -#wikify($line); -# -#echo $line; - -?> diff --git a/index.php b/index.php index 9d19c28d..097eca7b 100644 --- a/index.php +++ b/index.php @@ -1,4 +1,3 @@ - diff --git a/language/en.lang b/language/en.lang deleted file mode 100644 index c07a29c5..00000000 --- a/language/en.lang +++ /dev/null @@ -1,176 +0,0 @@ -ATTENSION !!\n\n". - "[ ID ]\n". - "ID should be alphanumeric or Korean only.\n". - "After input ID, check duplication button.\n\n". - "[ NAME ]\n". - "Name should be alphanumeric, Korean or dot.\n\n". - "[ PASSWORD ]\n". - "Password is within 8 charactors. Password is saved as encrypted string.\n\n". - "[ EMAIL,HOMEPAGE ]\n". - "You can ignore the homepage column but email is mandatory.\n". - "You can modify these information after registration.\n"; - -# ext -$en['nomatch_theme'] = "Theme version conflicts. Check the version information\n". - "at doc/en/README.THEME"; -$en['detable_search_link'] = "Detailed search"; -$en['captstr'] = "Click left image!"; -$en['captnokey'] = "No key for regist article"; -$en['captinvalid'] = "Invalid access!"; -?> diff --git a/language/ja.lang b/language/ja.lang deleted file mode 100644 index d3390703..00000000 --- a/language/ja.lang +++ /dev/null @@ -1,179 +0,0 @@ -[ ID ]\n". - "ID nO,,At@xbg w肷 ܂. ID Ȃ \n". - "dmF {^ p ꂽ IDFm mFĂ.\n\n". - "[ O ]\n". - "O nO, At@xbg . p Ȃ ܂.\n\n". - "[ pX[h ]\n". - "8 ȓ pX[h ߂ Ȃ܂. pX[h Í Ȃ ۑ\n". - " Ȃ̂ Ǘ҂ Rk Sz Ď ȂĂ Ȃ܂.\n\n". - "[ dq[,z[y[W ]\n". - "z[y[W Ȃ X Kn ȂĂ Ȃ܂ dq[ K G\n". - " ܂. Ȃ OC Ȃ w肵 \n". - " C ܂.\n"; - -# ext -$ja['nomatch_theme'] = "e[} o[W Ȃł. doc/en/README.THEME\n". - "t@C o[W ւ Q Ă"; -$ja['detable_search_link'] = "ڍ "; -$ja['captstr'] = " C[W NbN Ă"; -$ja['captnokey'] = " o^ ߂ w Ȃł."; -$ja['captinvalid'] = "ےI ڋ߂ł."; -?> diff --git a/language/ko.lang b/language/ko.lang deleted file mode 100644 index 7c65bcf1..00000000 --- a/language/ko.lang +++ /dev/null @@ -1,180 +0,0 @@ -[ ID ]\n". - "ID ѱ,,ĺ Ͻ ֽϴ. ID Ŀ\n". - "ߺȮ ư ̿Ͽ ̹ Ե ID ȮϽʽÿ.\n\n". - "[ ̸ ]\n". - "̸ ѱ, ĺ ׸ . ̿ϼ ּž մϴ.\n\n". - "[ н ]\n". - "8 ̳ н带 Ͻø ˴ϴ. н ȣȭ Ǿ \n". - " ǹǷ ڿ ŵ ˴ϴ.\n\n". - "[ ̸,Ȩ ]\n". - "Ȩ е ŵ ˴ϴٸ ̸ \n". - " ּž մϴ. ϽĿ α Ͻø ⼭ \n". - " Ͻ ֽϴ.\n"; - -# ext -$ko['nomatch_theme'] = "׸ ʽϴ. doc/ko/README.THEME\n". - "Ͽ κ Ͻʽÿ"; -$ko['detable_search_link'] = " ˻"; -$ko['captstr'] = " ̹ Ŭ Ͻʽÿ"; -$ko['captnokey'] = " Ű ϴ."; -$ko['captinvalid'] = " Դϴ."; -?> diff --git a/language/lang.php b/language/lang.php deleted file mode 100644 index 448047e3..00000000 --- a/language/lang.php +++ /dev/null @@ -1,36 +0,0 @@ - diff --git a/list.php b/list.php index e5951e64..e8a2b57b 100644 --- a/list.php +++ b/list.php @@ -1,148 +1,160 @@ -"; - else $print['adpath'] = ">> admin "; - $print['admin'] = "". - "{$print['adpath']}"; +admin ]"; + +if($table == $enable[security]) { + include "include/security.ph"; + $board[secwarn] = get_security_info(); + if($board[secwarn] == "warning") + $admin_link = "[ warnning ]"; +} elseif(!$enable[security]) { + $langs[sec_error] = str_replace("\n","\\n",$langs[sec_error]); + echo ""; } -# SQL ð üũ -$a_time[] = microtime(); +sql_connect($db[server], $db[user], $db[pass]); +sql_select_db($db[name]); -$c = sql_connect($db['server'], $db['user'], $db['pass'], $db['name']); +$agent = get_agent(); # Խ ü, , , ö $count = get_board_info($table); # ü õ $pages = get_page_info($count, $page); -# SQL ð üũ -$a_time[] = microtime(); -$sqltime1= get_microtime($a_time[0], $a_time[1]); +# ö ִ $str[today] ڿ ־ +# µǵ +$msg = count_msg(); -if($count['all']) { - if ($o['at'] == 's') $count['search'] = "searched"; - else $count['search'] = "registered"; - $count['today'] = !$count['today'] ? "" : "[ In 12H : {$count['today']} ] "; - $print['count'] = " ". - "Total {$count['all']} articles / {$pages['all']} Pages {$count['search']} {$count['today']}"; +if($count[all]) { + $str[count] = "$msg[count1] "; + if ($o[at] == 's') $str[count] .= "$msg[count2] "; + else $str[count] .= "$msg[count3]"; + if ($count[today]) $str[count] .= "$msg[count4]"; } else { - $print['count'] = " ". - "no article .."; -} - -# RSS ƾ -if ( $rss['use'] ) { - $rss['title'] = $_SERVER['SERVER_NAME'] . " {$board['title']}"; - $rss['link'] = "\n"; - - $rss['color'] = trim($rss['color']) ? " color: {$rss['color']};" : ""; - - if ( $rss['align'] ) { - $print['count'] .= " [" . - "RSS]"; - } else { - $print['count'] = "[" . - "RSS] {$print['count']}"; - } + $str[count] = "$msg[count5]"; } +$str[p_list] = page_list($table, $pages, $count, $board[plist]); +$str[s_form] = search_form($table, $pages); +$str[p_form] = page_form($table, $pages, $color[l0_fg]); -# SQL ð üũ -$b_time[] = microtime(); +if ($board[img] == "yes") { + $icons[add] = ""; + if (eregi("%",$board[width])) $icons[td] = "1%"; + else $icons[td] = $icons[size]; +} -# Ʈ -$colspan_no = $upload['yesno'] ? "6" : "5"; +# ñ Ʈ ½ preview Ҷ ʿ JavaScript +if ($enable[pre]) print_preview_src(); + +# Խ +echo " +
    + + + + + + +
    $icons[add]$admin_link"; + +# Խ ܿ , , ۾ ũ +if ($board[cmd] == "yes" && $board[img] != "yes") { + $str[align] = ""; + list_cmd($str); +} elseif($enable[dhost]) echo "$langs[remote] [ " . get_hostname($enable[dlook]) . " ]$icons[add]"; + else echo " "; + +echo "
    + + +"; + +# image menu bar +if ($board[img] == "yes") { + echo "\n"; +} -if(trim($notice['subject'])) { - $notice_filno = $colspan_no - 1; +echo "\n"; -# SQL ð -$print['sqltime'] = $sqltime1 + $sqltime2; -$print['sqltime'] = "SQL Time [ {$print['sqltime']} Sec ]"; +# image menu bar +if ($board[img] == "yes") { + if($color[bgcol] != $color[l4_bg]) $srowspan = " rowspan=2"; + echo ""; + img_lmenu($str,$icons[size]); + echo "\n"; +} -# ˻ ̺ -if($o['at'] == "d" || $o['at'] == "dp") - $print['dsearch'] = detail_searchform(); -else { - $page = $page ? $page : "1"; - $print['dserlink'] = "" . - "[ " . $_('detable_search_link') . " ]"; +if($color[bgcol] == $color[l4_bg]) { + $board[cs] = "0"; + $board[blank] = "
    "; +} else $board[cs] = "6"; + +echo "
    +"; + +if($board[img] == "yes" && $color[bgcol] == $color[l4_bg]) echo "\n\n"; + +echo "
    "; + img_lmenu($str,$icons[size]); + echo " + + + + + \n"; + +if ($upload[yesno] == "yes") { + if ($cupload[yesno] == "yes") + echo " "; +} - if($notice['contents']) { - $notice['subject'] = "". - "{$notice['subject']}"; - } else { - $notice['subject'] = "{$notice['subject']}"; - } +echo " + + +\n"; - $print['lists'] = "\n". - "\n". - "\n\n\n"; +$c_time[] = microtime(); # ӵ üũ - # Ʈ ̿ ֱ ڵ - if($lines['design']) { - $lines['design'] = preg_replace("/=[\"']?AA[\"']?/","=\"$colspan_no\"",$lines['design']); - $print['lists'] .= "\n{$lines['design']}\n\n"; - } -} +get_list($table, $pages); -$print['lists'] .= get_list($table, $pages); +$c_time[] = microtime(); # ӵ üũ +$time = get_microtime($c_time[0], $c_time[1]); -# Խ յ ũ -$print['p_list'] = page_list($table, $pages, $count, $board['plist']); +echo " + + + +
    $langs[no]$langs[titl]$langs[name]$langs[file]$langs[date]$langs[hit]
    \"\"". - "{$notice['subject']}
    + $str[count] [ $time sec ] +
    -# SQL ð üũ -$b_time[] = microtime(); -$sqltime2 = get_microtime($b_time[0], $b_time[1]); +
    +$board[blank] + + + + + + + +
    $str[s_form]$str[p_list]
    $str[p_form]
    +
     
    \n". + "\n". + "\n". + "
    \n"; + +if ($board[img] != "yes") { + # Խ ϴܿ , , ۾ ũ + $str[align] = "ALIGN=\"center\""; + list_cmd($str); } -# ˻, -$sform = search_form($o); -$pform = page_form($pages,$o); +echo "
    \n
    \n"; -# ñ Ʈ ½ preview Ҷ ʿ JavaScript -#if ($enable['pre']) $print['preview_script'] = print_preview_src(); -if ($enable['pre']) - $print['preview_script'] = ''; - -# ۵ ǥ -if($enable['dhost']) { - $list['dhost'] = get_hostname($enable['dlook']); - if($enable['dwho']) - $list['dhost'] = "". - "{$list['dhost']}"; - $print['times'] = "Access [ {$list['dhost']} ] {$print['sqltime']}"; -} else $print['times'] = "{$print['pagetime']} {$print['sqltime']}"; - -# ε ð -$p_time[] = microtime(); -$print['pagetime'] = get_microtime($p_time[0], $p_time[1]); -$print['pagetime'] = "Page Loading [ {$print['pagetime']} Sec ]"; - -sql_close($c); - -$sform['ss'] = preg_replace("/\\\\+/i","\\",$sform['ss']); - -# PAGE DISPLAY -meta_char_check($print['theme'], 1, 1); -$bodyType = 'list'; -include "./theme/{$print['theme']}/index.template"; +include "html/tail.ph"; ?> diff --git a/locate.php b/locate.php index 8c3432c6..0a1480cc 100644 --- a/locate.php +++ b/locate.php @@ -1,17 +1,14 @@ - diff --git a/login.php b/login.php deleted file mode 100644 index f65ca91a..00000000 --- a/login.php +++ /dev/null @@ -1,41 +0,0 @@ -"; -$tin = ( $type == 'admin' ) ? "" : ""; -$board['align'] = $board['align'] ? $board['align'] : "center"; -$print['theme'] = ! $print['theme'] ? 'KO-default' : $print['theme']; - -meta_char_check ($print['theme'], 1, 1); - -require_once "./theme/{$print['theme']}/config.php"; -require_once "./theme/{$print['theme']}/login.template"; -?> diff --git a/read.php b/read.php index 929de038..03bb8e6d 100644 --- a/read.php +++ b/read.php @@ -1,192 +1,213 @@ -\n".auto_link($notice['contents'])."\n
    "; - $list['date'] = filemtime("data/$table/config.php"); - $list['date'] = date("Y.m.d H:i:s",$list['date']); - $list['uname'] = "Board Admin"; - $list['refer'] = "Don't Check"; - - # Admin Link - if($board['super'] == 1 || $board['adm']) { - if(@file_exists("./theme/{$print['theme']}/img/admin.gif")) - $print['adpath'] = "" . $_("; - else $print['adpath'] = "[ admin ]"; - $print['admin'] = "". - "{$print['adpath']}"; - } - - # PAGE DISPLAY - meta_char_check($print['theme'], 1, 1); - $bodyType = 'read'; - include "theme/{$print['theme']}/index.template"; -} else{ - if((preg_match("/^(2|3|5|7)$/",$board['mode']) && $_SESSION[$jsboard]['id']) || $board['super']) { - $pre_regist['name'] = $_SESSION[$jsboard]['id']; - $pre_regist['rname'] = $_SESSION[$jsboard]['name']; - $pre_regist['email'] = $_SESSION[$jsboard]['email']; - $pre_regist['url'] = $_SESSION[$jsboard]['url']; - } else { - $pre_regist['name'] = str_replace("\\","",$_COOKIE['board_cookie']['name']); - $pre_regist['email'] = str_replace("\\","",$_COOKIE['board_cookie']['email']); - $pre_regist['url'] = str_replace("\\","",$_COOKIE['board_cookie']['url']); - } - - if ($corder && $_COOKIE['cookie_sort'] != $corder) { - # ڸƮ Ű - $month = 60 * 60 * 24 * $board['cookie']; - $cookietime = time() + $month; - - setcookie("cookie_sort", $corder, $cookietime); - } else { - $corder = $corder ? $corder : $_COOKIE['cookie_sort']; - } - - $a_time[] = microtime(); # ӵ üũ - $c = sql_connect($db['server'], $db['user'], $db['pass'], $db['name']); - - if($num && !$no) { - $num = get_article($table, $num, "no", "num"); - $no = $num['no']; - } - - $list = get_article($table, $no); - $page = !$page ? get_current_page($table, $list['idx']) : $page; # ġ - $pos = get_pos($table, $list['idx']); # , ȣ - - $a_time[] = microtime(); # ӵ üũ - $sqltime1 = get_microtime($a_time[0], $a_time[1]); - - # 左 ȵǾ ⺻ - $board['wwrap'] = !$board['wwrap'] ? 120 : $board['wwrap']; - - $list['num'] = print_reply($table, $list); - $list['date'] = date("Y-m-d H:i:s", $list['date']); - $list['text'] = $list['html'] ? $list['text'] : wordwrap($list['text'],$board['wwrap']); - text_nl2br($list['text'], $list['html']); - conv_emoticon($list['text'], $enable['emoticon']); - new_reply_read_format ($list['text'], $list['html']); - - macro_interwiki(); - wikify($list['text']); - - # ̸ ̺ ũ⿡ ٷ ѱ - if (!preg_match("/%$/", $board['width'])) { - $title_width = $board['width'] / 8; - settype($title_width,"integer"); - $list['title'] = wordwrap($list['title'],$title_width,"
    \n",1); - } - $list['title'] = preg_replace("/&(amp|lt|gt)/i","&\\1",$list['title']); - - # title Ʈ Ҽ ְ - $list['title'] = preg_replace("/<((\/)*font[^&]*)>/i","<\\1>",$list['title']); - $list['title'] = preg_replace("/]*color=([a-z0-9#]+)[^>]*>/i","",$list['title']); - - # ˻ ڿ - $list = search_hl($list); - - if($board['rnname'] && preg_match("/^(2|3|5|7)/",$board['mode'])) - $list['cname'] = $list['rname'] ? $list['rname'] : $list['name']; - else $list['cname'] = $list['name']; - - if($list['email']) $list['uname'] = url_link($list['email'], $list['cname']); - else $list['uname'] = $list['cname']; - if($list['url']) { - if(preg_match("/^http:\/\//i", $list['url'])) $list['uname'] .= " [" . url_link($list['url'], $_('ln_url')) . "]"; - else $list['uname'] .= " [" . url_link("http://{$list['url']}", $_('ln_url')) . "]"; - } - - # Admin Link - if($board['super'] == 1 || $board['adm']) { - if(@file_exists("./theme/{$print['theme']}/img/admin.gif")) - $print['adpath'] = "" . $_("; - else $print['adpath'] = "[ admin ]"; - $print['admin'] = "". - "{$print['adpath']}"; - } - - # Խ б ܿ , , ۾ ũ - if($enable['dhost']) { - $list['dhost'] = get_hostname($enable['dlook'],$list['host']); - if($enable['dwho']) - $_lang['hlinked'] = "". - "{$list['dhost']}"; - else $_lang['hlinked'] = "{$list['dhost']}"; - $print['regist'] = "Register [ {$_lang['hlinked']} ]"; - } - - # ÷ - if($list['bofile']) { - $hfsize = human_fsize($list['bfsize']); - $tail = check_filetype($list['bofile']); - $fileicon = icon_check($tail,$list['bofile']); - $down_link = check_dnlink($table,$list); - $list['attach'] = "". - "\"{$list['bofile']}\"". - " {$list['bofile']} - $hfsize"; - } - - if ($list['bofile']) { - $tail = check_filetype($list['bofile']); - $preview = viewfile($tail); - } - - # ñ Ʈ ½ preview Ҷ ʿ JavaScript - if ($enable['pre'] && $enable['re_list'] && ($list['reto'] || $list['reyn'])) - $print['preview_script'] = ''; - - $b_time[] = microtime(); # ӵ üũ - - # б⿡ ñ Ʈ - if($enable['re_list'] && ($list['reto'] || $list['reyn'])) $print['rlists'] = "\n".article_reply_list($table,$pages,0); - - # ĿƮ Ʈ - $print['comment'] = $enable['comment'] ? print_comment($table,$no,0) : ""; - - # о ȸ 1 ø - #if (get_hostname(0) != $list['host']) sql_query("UPDATE $table SET refer = refer + 1 WHERE no = '$no'", $c); - replication_addrefer($db); - - $b_time[] = microtime(); # ӵ üũ - $sqltime2 = get_microtime($b_time[0], $b_time[1]); - - # ˻ ̺ - if($o['at'] == "d" || $o['at'] == "dp") - $print['dsearch'] = detail_searchform(); - else { - $page = $page ? $page : "1"; - $print['dserlink'] = "[ " . $_('detable_search_link') . " ]"; - } - - # ˻, - $sform = search_form($o); - $pform = page_form($pages,$o); - - # SQL ð - $print['sqltime'] = $sqltime1 + $sqltime2; - - # PAGE ε ð - $print['pagetime'] = get_microtime($p_time[0],$b_time[1]); - - sql_close($c); - - $sform['ss'] = preg_replace("/\\\\+/i","\\",$sform['ss']); - - # PAGE DISPLAY - meta_char_check($print['theme'], 1, 1); - $bodyType = 'read'; - include "theme/{$print['theme']}/index.template"; - echo $preview['bo']; +(.*)(.*) target=(.*)>","",$list[text]); + +if($list[email]) + $list[name] = url_link($list[email], $list[name], $color[r2_fg], $no); + +if($list[url]) { + if(eregi("^http://", $list[url])) + $list[name] .= " [" . url_link($list[url], "$langs[ln_url]", $color[r2_fg]) . "]"; + else + $list[name] .= " [" . url_link("http://$list[url]", "$langs[ln_url]", $color[r3_fg]) . "]"; +} + +$str[s_form] = search_form($table, $pages); +$str[p_form] = page_form($table, $pages, $color[r0_fg]); +$str[sepa] = separator($color[n0_fg]); + +$c_time[] = microtime(); # ӵ üũ +$time = get_microtime($c_time[0], $c_time[1]); + +if ($board[img] == "yes") { + $icons[add] = ""; + if (eregi("%",$board[width])) $icons[td] = "1%"; + else $icons[td] = $icons[size]; +} + +if($enable[amark]) + $admin_link = "[ admin ]"; + +echo " +
    + + + + + + +
    $icons[add]$admin_link"; + +# Խ б ܿ , , ۾ ũ +$remote = get_hostname($enable[dlook]); +if ($board[cmd] == "yes" && $board[img] != "yes") { + $str[align] = ""; + read_cmd($str); +} elseif($enable[dhost]) { + $list[dhost] = get_hostname($enable[dlook],$list[host]); + if($enable[dwho]) $langs[hlinked] = "$list[dhost]"; + else $langs[hlinked] = "$list[dhost]"; + echo "$langs[writerad] [ $langs[hlinked] ]$icons[add]"; +} else { + echo " "; +} + +echo " +
    + + + +"; + +# image menu bar +if ($board[img] == "yes") { + echo "\n"; +} + +echo "\n"; + +# image menu bar +if ($board[img] == "yes") { + if($color[bgcol] != $color[r5_bg]) $srowspan = " rowspan=2"; + echo ""; + img_rmenu($str,$icons[size]); + echo "\n"; +} + +if($color[bgcol] == $color[r5_bg]) { + $board[cs] = "0"; + $board[blank] = "
    "; +} else $board[cs] = "6"; + +echo "
    +"; + +if($board[img] == "yes" && $color[bgcol] == $color[r5_bg]) echo ""; + +echo "\n
    "; + img_rmenu($str,$icons[size]); + echo " + + + + + + + \n"; + +if($list[bofile]) { + $hfsize = human_fsize($list[bfsize]); + $tail = check_filetype($list[bofile]); + $fileicon = icon_check($tail,$list[bofile]); + $down_link = check_dnlink($table,$list); + + echo "\n" . + " "; } + +$board[height] = $icons[size]*7; + +echo " + + + +
    $list[num]: $list[title]
    $langs[name]: $list[name]$langs[date]: $list[date]$langs[hit]: $list[refer]
    \n" . + " \n" . + " \"$list[bofile]\"\n" . + " $list[bofile]\n" . + " \n" . + " - $hfsize\n
    + + + + + +
    + "; + +if ($list[bofile]) { + $tail = check_filetype($list[bofile]); + $preview = viewfile($tail); +} + +echo " +$preview[up] + +$list[text] + +$preview[down]"; + +echo " + +
    \n\n"; + +# ñ Ʈ ½ preview Ҷ ʿ JavaScript +if ($enable[pre] && $enable[re_list] && ($list[reto] || $list[reyn])) print_preview_src(); + +# б⿡ ñ Ʈ +if($enable[re_list] && ($list[reto] || $list[reyn])) article_reply_list($table,$pages); + +echo "
    + +
    +$board[blank] + + + + + + +
    +$str[s_form] + + [ $time sec ] +
    +$str[p_form] +
    +
     
    \n" . + "". + "\n". + "
    \n"; + +if ($board[img] != "yes") { + # Խ б ϴܿ , , ۾ ũ + $str[align] = "ALIGN=\"center\""; + read_cmd($str); +} + +echo "
    \n
    "; + +if ($remote != $list[host]) sql_query("UPDATE $table SET refer = refer + 1 WHERE no = $no"); + +include "html/tail.ph"; +echo $preview[bo]; ?> diff --git a/regist.php b/regist.php deleted file mode 100644 index 925d1e45..00000000 --- a/regist.php +++ /dev/null @@ -1,176 +0,0 @@ -", str_replace ("\r\n","\n", $_('reg_attention'))); -$_lang['reg_attention'] = str_replace (' ',' ', $_lang['reg_attention']); -$_lang['reg_attention'] = str_replace ('__',' ', $_lang['reg_attention']); - -$print['head'] = get_title (); - -if ( $agent['tx'] ) $backbutton = ""; -else $backbutton = "\n"; - -if ( ! $m ) { - $print['body'] = " - -
    -


    -User Registration - -
    - - -
    -{$_lang['reg_attention']} -
    - -
    -

    - - - - - - - - - - - - - - - - - - - - - - - -
    " . $_('u_nid') . " - - -" . $_('u_pass') . "
    " . $_('u_name') . "" . $_('u_email') . "
    " . $_('u_url') . "
    - -$backbutton - - -
    -
    -
    \n"; - - $p_time[] = microtime(); - $print['pagetime'] = get_microtime ($p_time[0], $b_time[1]); - - meta_char_check ($print['theme'], 1, 1); - $bodyType = 'ext'; - require_once "theme/{$print['theme']}/index.template"; -} else if ( $m == 'chkid') { - if ( ! trim ($id)) print_notice ('INPUT UR ID', 250, 150, 1); - if ( preg_match ("/[^\xA1-\xFEa-z0-9]/i", $id) ) print_notice ($_('chk_id_s'), 250, 150, 1); - if ( ! trim ($id) || preg_match ("/[^\xA1-\xFEa-z0-9]/i", $id) ) { - echo ""; - exit; - } - - $query = "SELECT nid FROM userdb WHERE nid = '$id'"; - $r = sql_query ($query, $c); - $row = sql_num_rows ($r); - sql_close ($c); - - if ( $row ) $ment = $_('chk_id_n'); - else $ment = $_('chk_id_y'); - - $board['width'] = 0; - $print['body'] = "

    \n\n". - "
    \n\n". - "ID CHECK\n\n". - "

    \n". - "\n". - "\n". - "\n". - "
    $ment
    " . - "
    \n". - "
    \n". - "
    \n"; - - $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"; -} -?> diff --git a/reply.php b/reply.php index 23412137..e1a0ca8d 100644 --- a/reply.php +++ b/reply.php @@ -1,125 +1,209 @@ -\n]+)\n([^\n<>]+)>/i"; -$resu_list[0] = "<\\1 \\2>"; -$conv_list[1] = "/^/"; -$resu_list[1] = ": "; -$conv_list[2] = "/\n/"; -$resu_list[2] = "\n: "; -$list['text'] = preg_replace($conv_list, $resu_list, $list['text']); - */ -$list['text'] = <<\n]+)\n([^\n<>]+)>", "<\\1 \\2>", $list[text]); +$list[text] = ereg_replace("^", ": ", $list[text]); +$list[text] = ereg_replace("\n", "\n: ", $list[text]); +$list[text] = htmlspecialchars($list[text]); + +if($list[html]) $html_chk_ok = " checked"; else $html_chk_no = " checked"; -# Browser text browser ϶ multim form -if($noup == 1) $board['formtype'] = ""; -else $board['formtype'] = " enctype=\"multipart/form-data\""; +# Browser Lynx϶ multim form +$agent = get_agent(); +if($agent[br] == "LYNX") $board[formtype] = ""; +else $board[formtype] = " ENCTYPE=\"multipart/form-data\""; + +# TEXTAREA wrap option check +$wrap = form_wrap(); + +# image menu ҽÿ wirte ȭ list,read ȭ +if ($board[img] == "yes" && !eregi("%",$board[width])) + $board[width] = $board[width]-$icons[size]*2; +else $size[text] += 4; # -if ($enable['ore']) { - $text_area = ""; - $orig_button = "\n" . - "\n" . - "\n"; +if ($enable[ore]) { + $list[text] = htmlspecialchars($list[text]); + $text_area = ""; + $orig_button = "\n" . + "\n" . + " "; } else { - $text_area = ""; - $orig_button = "\n"; + $text_area = ""; + $orig_button = "\n"; } -$page = $page ? $page : 1; -$print['passform'] = "\n". - "\n". - "\n". - "\n". - "". - ""; - -$pre_regist['rname'] = !$pre_regist['rname'] ? "" : "\n"; - -if(!$nodisable) { - $print['passform'] .= "\n". - "{$pre_regist['rname']}". - "\n". - "\n\n"; -} elseif($_SESSION[$jsboard]['pos'] == 1) { - $print['passform'] .= "{$pre_regist['rname']}\n"; +echo " +
    + +
    + + + + + + \n"; + +if($view[email] == "yes") { + echo "\n" . + "\n" . + "\n" . + "\n"; } -if($board['rnname'] && preg_match("/^(2|3|5|7)/",$board['mode']) && $_SESSION[$jsboard]['pos'] != 1) - $pre_regist['name'] = $_SESSION[$jsboard]['name'] ? $_SESSION[$jsboard]['name'] : $pre_regist['name']; +if($view[url] == "yes") { + echo "\n" . + "\n" . + "\n" . + "\n"; +} -$pages = "&page=$page"; +if(!$pcheck && !$adminsession || $cenable[reply]) { +echo "\n". + " \n". + " \n". + " \n"; +} + +echo " + + + + "; + +if ($upload[yesno] == "yes" && $cupload[yesno] == "yes" && $agent[br] != "LYNX") { + echo "\n". + "\n" . + ""; +} else if ($upload[yesno] == "no" && $cupload[yesno] == "yes") { + echo "\n". + "\n" . + ""; +} + +echo " + + + "; + +if ($agent[br] == "MSIE" || $agent[br] == "MOZL6") { + $orig_option = " onClick=fresize(0)"; + + echo " + + + "; +} -sql_close($c); +echo " + + + + + +
    $langs[w_name]$langs[w_name_m]
    $langs[w_mail]$langs[w_mail_m]
    $langs[ln_url]$langs[w_url_m]
    $langs[w_pass]$langs[w_passwd_m]
    HTML + + $langs[u_html] + $langs[un_html] + + $langs[w_html_m]
    $langs[file]\n" . + "". + "
    $langs[file]$langs[upload]
    $langs[titl]
    Textarea size config + +\n"; + + # ڵ忡 ư text ó Ұ ̹ ó + form_size_button($langs[code]); + + echo "
    + + $text_area + +
    + + $wrap[ment] + +
    + +
    + + + + + +
    + + + + + +   +   + + $orig_button + +
    + +
    \n + + +\n
    + +\n"; + +if ($board[img] == "yes") { + if ($color[theme]) $themes[img] = get_theme_img($table); + else $themes[img] = "images"; + echo ""; +} else { + echo " + + + + + \n"; +} -$print['preview_script'] = << - var tarea_width = '{$board['width']}'; - var tarea_cols = '{$size['text']}'; - -EOF; +echo "\n
    " . + "\"$langs[cmd_list]\"" . + "\"$langs[cmd_priv]\"" . + "\"|\"$langs[cmd_list]\"|\"$langs[cmd_priv]\"|\"
    \n
    \n
    \n"; -# Template file ȣ -meta_char_check($print['theme'], 1, 1); -$bodyType = 'reply'; -require_once 'captcha/captchacommon.php'; -include "theme/{$print['theme']}/index.template"; +include "html/tail.ph"; ?> diff --git a/rss.php b/rss.php deleted file mode 100644 index d444add7..00000000 --- a/rss.php +++ /dev/null @@ -1,147 +0,0 @@ -\nalert('Don\'t exist header file');\n" . - "history.back();\nexit;\n\n"; - exit(); -} else { - include 'include/header.php'; -} - -# RSS üũ (user config file ) -# -if ( ! $rss['use'] ) { - echo "Don't rss support on this board\n"; - exit(); -} - -# rss Ʈ -# -$rss['default_article_number'] = '30'; - -# Խ ּ -# -$rss['link'] = $board['path'] . "list.php?table=" . $table; - -if (!$no) - $no = $rss['default_article_number']; - -# DB -# -$c = sql_connect($db['server'], $db['user'], $db['pass'], $db['name']); - -# Description ְ ƴ üũ (config file üũ) -# -if ($rss['is_des']) - $sql = "select no, date, name, rname, title, text from {$table} order by date DESC limit {$no}"; -else - $sql = "select no, date, name, rname, title from {$table} order by date DESC limit $no"; - -$result = sql_query ($sql, $c); -$i = 0; - -while( $rss_article[$i] = sql_fetch_array($result) ) { - $rss_article[$i]['title'] = htmlspecialchars ($rss_article[$i]['title'], ENT_QUOTES); - $rss_article[$i]['link'] = "{$board['path']}read.php?table={$table}&no={$rss_article[$i]['no']}"; - $rss_article[$i]['date'] = date ("r", $rss_article[$i]['date']); - #$rss_article[$i]['date'] = date("Y-m-d",$rss_article[$i]['date'] ) . 'T' . date("H:i:sO", $rss_article[$i]['date']); - - if ( $rss['is_des'] ) { - #$rss_article[$i]['text'] = preg_replace ("!\n!", "
    \n", $rss_article[$i]['text']); - $rss_article[$i]['text'] = preg_replace ("!([0-9]+;[0-9]+m)?!", "", $rss_article[$i]['text']); - $rss_article[$i]['text'] = htmlspecialchars ($rss_article[$i]['text']); - $rss_article[$i]['text'] = auto_link ($rss_article[$i]['text']); - - $_body = "\n" . - "\n" . - "\n" . - "
    \n" . - "\n" . - "\n" . - "
    \n" . - "REPLY : " . - "{$board['path']}reply.php?table={$table}&no={$rss_article[$i]['no']}
    \n" . - "DELETE: " . - "{$board['path']}delete.php?table={$table}&no={$rss_article[$i]['no']}\n" . - "
    \n" . - "
    \n" . - "\n" . - "\n" . - "
    \n" .
    -             "{$rss_article[$i]['text']}\n" .
    -             "
    \n" . - "
    \n"; - - $_body = htmlspecialchars ($_body, ENT_QUOTES); - $rss_article[$i]['text'] = $_body; - } - - if (!$rss_article[$i]['name']) - $rss_article[$i]['name'] = $rss_article[$i]['rname']; - - $i++; -} - -$rss_article_num = $i; -unset($result, $i); -sql_close($c); - -$now = time (); -$cYear = date ("Y", $now); -$bdate = date ("r", $now); -$_charset = strtolower ($_('charset')); - -$gotoUTF8 = check_utf8_conv ($_charset); -$cset = $gotoUTF8 ? 'utf-8' : $_charset; - -# ̻ , RSS -# -header ('Cache-Control: no-cache, pre-check=0, post-check=0, max-age=0'); -header ('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT'); -header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); -header ('Content-Type: text/xml; charset=' . $cset); - -utf8_fallback ($rss['channel'], $_charset); -utf8_fallback ($board['title'], $_charset); - -echo "\n"; -?> - - - - <?=$rss['channel']?> - - - - 1999- JSBoard Open Project - - JSBoard - -\n" . - " {$rss_article[$i]['title']}\n" . - " {$rss_article[$i]['link']}\n" . - " {$rss_article[$i]['link']}\n"; - - if ( $rss['is_des'] ) { - echo " {$rss_article[$i]['text']}\n"; - } - - echo " {$rss_article[$i]['date']}\n" . - " {$rss_article[$i]['name']}\n" . - "\n"; -} -?> - - - diff --git a/security.php b/security.php new file mode 100644 index 00000000..d2568c97 --- /dev/null +++ b/security.php @@ -0,0 +1,75 @@ +"; + exit; +} + +$form_border = "1x"; +include "config/global.ph"; +include "admin/include/config.ph"; +include "include/get.ph"; +include "include/check.ph"; +include "include/print.ph"; +include "include/error.ph"; +include "html/head.ph"; + +if($viewtype || $adminsession) { + # ϸ ˷ָ ϸ + # ٽ ȭ ư. + if($viewtype || $adminsession) { + if($adminsession) $pscheck = $adminsession; + else { + $pucheck = crypt($pcheck,$admin[passwd]); + $pscheck = crypt($pcheck,$sadmin[passwd]); + } + + if($sadmin[passwd] != $pscheck && $admin[passwd] != $pucheck) + missmatch_passwd("$PHP_SELF?table=$table","Invalid Password"); + } + + @include "config/security_data.ph"; + + if($security[prints] == 2) $open_file = "security_first.php"; + else $open_file = "security_notice.php"; + + $text = get_html_src("jsboard.kldp.org","50000","SecurityMSG/$open_file",1); + $body_text = "$text"; + $body_text .= "\n
    \n"; + + # print print 0 ʱȭ + if($security[prints]) { + $security[content] = ""; + + file_operate("./config/security_data.ph","w","Failed security record update",$security[content]); + } +} else $body_text = "
    \n". + "\n". + "\n". + "\n\n
    \n". + "Bulletin Admin or Whole Admin Password\n". + "
    \n". + "PASSWORD : ". + "
    \n". + "
    \n". + "\n". + "\n". + "\n". + "\n". + "
    \n
    "; + +echo "
    \n". + "\n". + "\n\n". + "
    \n". + "JSBoard Security Notice\n". + "
    \n". + "

    \n". + "\n$body_text\n\n". + "

    \n
    \n
    \n"; + +include "html/tail.ph"; + +?> diff --git a/session.php b/session.php deleted file mode 100644 index 00e47f28..00000000 --- a/session.php +++ /dev/null @@ -1,109 +0,0 @@ - $r['nid'], 'pass' => $r['passwd'], - 'name' => $r['name'], 'email' => $r['email'], - 'url' => $r['url'], 'pos' => $r['position'], - 'external' => $edb['uses']); - - if ( ! $edb['uses'] ) { - if ( ! ${$jsboard}['pos'] ) { - $result = sql_query ("SELECT nid FROM userdb WHERE position = 1", $c); - ${$jsboard}['super'] = sql_result ($result, 0, "nid"); - sql_free_result ($result); - sql_close ($c); - } else - ${$jsboard}['super'] = ${$jsboard}['id']; - } else { - if ( $r['position'] == 1 ) - ${$jsboard}['super'] = $r['nid']; - else - ${$jsboard}['super'] = $edb['super']; - } - - # - session_register ($jsboard); - $_SESSION[$jsboard] = $$jsboard; - - if( $type == "admin" && ${$jsboard}['pos'] == 1 ) { - header ("Location: admin/admin.php"); - } else if ( ! $table ) { - header ("Location: {$print['dpage']}"); - } else { - header ("Location: list.php?table={$table}"); - } - } else { - move_page ("./session.php?m=logout&logins=fail{$opt}{$var}",0); - } -} else if ( $m == "logout" ) { - require_once './config/global.php'; - require_once './include/check.php'; - - sessionInit($board['sessTmp']); - session_start (); - - # - session_destroy (); - - if ( $logins == 'fail' ) { - if ( $type == 'admin' ) - $var = '?type=admin'; - else if ( $table ) - $var = "?table={$table}"; - - if ( ! trim ($var) && $print['dopage'] ) { - header ("Location: {$print['dopage']}"); - } else { - header ("Location: ./login.php{$var}"); - } - } else { - require_once './include/error.php'; - require_once './include/get.php'; - require_once './include/check.php'; - - $urls = $edb['logout']; - - if ( $url && preg_match ("/^http:/i", $url) ) { - $urls = rawurldecode ($url); - } - - if ( ! trim ($urls) ) { - if ( $table ) { - meta_char_check ($table, 0, 1); - require_once "./data/{$table}/config.php"; - } - $urls = trim ($print['dopage']) ? $print['dopage'] : "./login.php{$var}"; - } - - header ("Location: {$urls}"); - } -} else if ( $m == 'back' ) { - header ('Location:admin.php'); -} -?> diff --git a/theme/Changelog.theme b/theme/Changelog.theme deleted file mode 100644 index e6abbdf7..00000000 --- a/theme/Changelog.theme +++ /dev/null @@ -1,55 +0,0 @@ -$Id: Changelog.theme,v 1.7 2009-11-16 21:52:47 oops Exp $ - -Version: A9 -- new type -- tag id ߰ -- tag $_focus ߰ -- write.php/reply.php ߰ -- textarea tag class="resizable" ߰ -- include textarea.js -- write/edit/reply reset button button type -- password field textarea Լ -- write/reply td colspan -- write/reply captcha image ߰ (passwd ʵ ..) - -Version: A8 -- rss tag ߰ (list.template) - -Version: A7 -- .ph ҷ⸦ .php Ϸ - -Version: A6 -- Լ̸ (pirnt_keymenu -> print_keymenu) -- SYTLE SHEET -- edit.template - - - . - -Version: A5 -- edit, replay, write template textarea tab - ̵ǰ - -Version: A4 -- Ű ڵ ߰ : -- edit.template, reply.template, write.template - if ($upload[yesno] && $cupload[yesno] && $agent[br] != "LYNX") { - - if ($upload[yesno] && $cupload[yesno] && $noup != 1) { - - -Version: A3 -- logout ũ ߰ ( - list.template, read.template) -- img/notice.gif ߰ ( ICON) -- ,Ʈ ߰ (config.ph) - -Version: A2 -- INPUT password MAXLENGTH=8 MAXLENGTH=16 -- INPUT password style sheet STYLE=\"font: 10px tahoma\" ߰ - (IE 6.x -xp- н ʵ带 ̻ϰ ϴ ) -- mail ߼ 濡 mail html design ø ߰ (mail.template) -- login.php read.php ĿƮ -- reply design - -Version: A1 -- theme diff --git a/theme/EN-default/config.php b/theme/EN-default/config.php deleted file mode 100644 index e96f7c9b..00000000 --- a/theme/EN-default/config.php +++ /dev/null @@ -1,64 +0,0 @@ - -$lines['height'] = "25"; - -# Follow configuration is support to add design between each -# article rows and must compose with ... pattern. -# $lines['design'] variavles must be include COLSPAN=AA string -# in tag as follow exmapl. -# -# $lines['comment_design'] is for comment rows to add design, -# and is composed .. block. This variables don't need -# COLSPAN=AA string in tag. -#$lines['design'] = "
    "; -$lines['design'] = ""; -$lines['comment_design'] = "" . - "" . - "" . - ""; - -############################################################## -# Width Configuration -############################################################## - -# list paget table ratio =================================== -$td_width['no'] = "5%"; # No Field Width - -# title filed width -if ($upload['yesno'] && $cupload['yesno']) $td_width['title'] = "54%"; -else $td_width['title'] = "63%"; - -$td_width['name'] = "14%"; # Writer Field Width -$td_width['upload'] = "9%"; # Upload File Field Width -$td_width['dates'] = "13%"; # Date Field Width -$td_width['refer'] = "5%"; # Read Field Width - -############################################################## -# Field Array Configuration -############################################################## -# 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"; -?> diff --git a/theme/EN-default/default.css b/theme/EN-default/default.css deleted file mode 100644 index e134f95e..00000000 --- a/theme/EN-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", monospace; - 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/EN-default/delete.template b/theme/EN-default/delete.template deleted file mode 100644 index e69206d9..00000000 --- a/theme/EN-default/delete.template +++ /dev/null @@ -1,92 +0,0 @@ - -
    - - - - - - - - -\n/i","\\0",$list['title']); ?> - - - - - - - -
    - ->> Delete article -
    -No. - -
    - - - - - - - - - - - - - - - - - - -
    -
    -Date     -Read
    -Name     - {$list['attach']}" ?>
    -
    -
    - - - -
    - - - - - - - - -
    -
    - - - - - - -
    -
    - - - - - - - - - -
    - -[ List | Back ] -
    - -  - -
    -
    - diff --git a/theme/EN-default/edit.template b/theme/EN-default/edit.template deleted file mode 100644 index b1579e22..00000000 --- a/theme/EN-default/edit.template +++ /dev/null @@ -1,161 +0,0 @@ - - - -
    onsubmit="return registCheck();"> - - - - - - - - - - - - -
    - ->> Edit article -
    - -Edit -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -\n"; -} -?> - - - - - - - - -\n"; -} -?> - - - - -\n". - "\n". - "\n". - "\n"; -} - -if ($upload['yesno'] && $cupload['yesno'] && $noup != 1) { - echo "\n". - "\n". - "\n". - "\n"; -} -?> - - - - - - - - - - - - - - - -Password\n". - "\n"; -} -?> - - - - - -


    Name maxlength=50 value="" tabindex="1">
    Email
    Homepage
    File\n". - "\n". - "{$list['bofile']}\n". - "{$list['bofile']} - $hfsize    \n". - " ϻ\n". - "
    Edit File\n". - "\n". - "\n". - "
    Subject maxlength=100 value="" tabindex="6">
    \n". - "$passment\n". - "

    - - - -
    - - - -
    - - - - - - - - - - -
    - - - - - - - - - -
    - - - - - -
    -
    diff --git a/theme/EN-default/img/admin.gif b/theme/EN-default/img/admin.gif deleted file mode 100644 index b51ac0ac7222e47a44cde91b37ca2b175a2c2072..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97 zcmZ?wbhEHbG+^LlXkcJCaNvNwi?QNQ7Dfgj&;b!383rbcmj0Ee-|{PSx36p1c=8(4 xtlFz4T5;xCvwkdml2&BEvniu?>PgG)J$pYY)GeFT^ECLS%9&-KUjj|A1^~W6B*6dx diff --git a/theme/EN-default/img/at.gif b/theme/EN-default/img/at.gif deleted file mode 100644 index 538f817fa32dadeba74d3af8706c3dc371bd984e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 850 zcmc(eEpC-z5QWc8Ah|aL9HL201Ez$8(u05?2~b=G0$VddAS!DMs!N!pdmt5Tp=uU@ zK(Gsf8lHJK!Rsb7bN=T0-hX)a^3~Z+5A;XsdDWfW(d}+cRn?VU(d8~pGpjQ@qtl(5 z*{F`}hz@sXR$c9EN84?I)T&mtqU9C^*g%8DGSeEKd07=zuF}v_WmZO|D>W);Mpi_H zD>R~*b(W*-ve3wCDN9ju3071ChG`(7Zo%e zX{UvIL@}F+lvCIv4`i}U9Qa2B4p9vlqEX2xIv@rcXs|TNO`DqM2u+aqgOoVOy7x5K2`A=tm6=^ZPwFeXSzU3=5thS2TB7GBOUD2&Xg&w7M0j{wRG|NdckuVl zM*69z!#)3mw$F64+dnz|{o~u+@Ap4`K015zWxMy}dV6#5_Uhqb{QC6#(e2lJyW6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= o{r&#_{{R2~EC2ui00;mA000ON009Vm0PmkcfdB{^{1*@aJA5aF+W-In diff --git a/theme/EN-default/img/board_no.gif b/theme/EN-default/img/board_no.gif deleted file mode 100644 index 9ee4f10567a38575ef04a896489795b9cd0b11e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1496 zcmcJO`8yPN9DqNA7-1UYXk@G*GS-+GjB7~R=$;LQBBg{HtT~iX(#=1i4yW1bJ?;r5~^u9+}P8OCyR8WHt2>t^hR5XcSN0W@h zkR^o7E=ccylvYT72<&F~sR3fR5d9l`UkFjRAu<=jvmiJfPNzWN&){|uSZBcg6qq;z z)dqA-Ktmr?H6gnnlh!VAb3ih0Xji^Sx?mVvIJ&!dO0j5Cv1FQ1JV_`OtCYP^<<6+w zn^vuuBl2FU-J2qo&8nBqsMjoN)V|fMdq*yx(JY@KKln$td`6r9R=0VLQZb|RaO3OR zc}nY+;p30=wjD<8JhkBstpk}#d?1UqImVn*$paTl^|UNY-OHa+NY85O*H&rq;Qy(f!#EyqOK2c;o)dP5v9yJh#!jxYPPK z5-g#j`0zVW()Gaud4-q*K#(|(z z2uy;2MDR}lzw6-pBY4MwXDpnIf#c`FH40oJ!8sI;gn(lZIGhGMKd|+MLq1^R4F^5p zn-gGp9L!z8%mqx3f{7CtJA#n|(CvU~4F*=AZwVB0&@+Prrl8A&{S45igBA_QRM0d4 zbzLB8!Co>b?E}0j>`?)%9Q19R8rVGB^ZxAUTITp#zIe0Z<#y!~dh%|&X9bBi(fmiW ztYZW!Bp?t$RvuI}KtU1qD1jUfKBH}{EXZI%QW7wjFMWQ=^#6hSMf>FiTP%WISP}*A zbQgnF(tadi&o=NA{&!$A!GL0!@w~3^lEJ1QAPCmmC z?$KTKQ?E=~E<2bI?t1YB1;t)9@>0RQg`N$O?oqQ;u1|ME4#L zna~a?sV`mxIivYQ>8NvsJw6 z?`lbxFekVA^#YEaSuf2$=S`I()UjQqIlcBS=D#!8LOf4_n@MnU4oZ@hVGj1{t1Y{8 z7#*8z7wKBz3Wt_Q)N)Fq?Cun5_FC{IRj+X^vT#?q=56vSj|4}l?NX9#t<+@OyVMIt zZBl{0d3Y={@ZhRYOTQq;jxpZpod|Y8Hp=BO$$zCN^N2i}D9Xczy zx1xe=iyI)br$Iy#u^9FEgbZnd4yMb~BeO0%dVgsBQQG*0l2RA?kC*J|%pn1Wq5+AX z3X#?&=~7nm#;(CB8sQ;d)y|3ZFfEe=JDk4(56cBJB^>Zj}vdQaMyb%gL1(>Zc-Zd zon(PTezKsCCQ#nLV%p^cX?qF&59}2f75HRw)LNUpjGVP7Q8}zE^M#T%lZXea)u!Xi Mb*lpo(o$gcFX*&ubN~PV diff --git a/theme/EN-default/img/dot.gif b/theme/EN-default/img/dot.gif deleted file mode 100644 index 34b97d93dcdb55a97b2d13f8cc6da79611fa9704..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48 zcmZ?wbhEHblwe?FXkcJSOH2Fz|G(l-7Dfi3fDQu?fMgh$*m;sFPQDIgV6X-N9)t@8 diff --git a/theme/EN-default/img/dotted_gray.gif b/theme/EN-default/img/dotted_gray.gif deleted file mode 100644 index 8342733e74a31860c1843a42de74f2253527137c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44 ucmZ?wbhEHbWMg1tXkcLY|NsB<=g$>?vM@3LfewfO$uKZ6_cXFHSOWkZ1qy}$ diff --git a/theme/EN-default/img/grippie.png b/theme/EN-default/img/grippie.png deleted file mode 100644 index 7bfd3d382a36218900dee60962dcd2475d4ff896..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1SBVD?P>#3oCO|{#S9GG!XV7ZFl&wkP|(xU z#WAGfR&vG9KU#(_J~m(G2?^eneEN}Ww3yJ^lGlg+|Nk%iwBdh(!^Y@`@08z!?fBhM tq2u?K^W9mB-4jE&ovB5N7_@)#$dXP$C_W$H!N>6h7OT;b?Cz}~o-bM|%aIX8Hw zUErB}lXuD)o_V+U=HKRDa7SR_UBN~7gcjcyUiD0B^>gVpFJ#uflwJ2qZvAWdjc*k< zy;IuyQFYrVwY@)e_y5-4_e*c}L#;#qjE?=cJO0Px#2=qC|AThD@ILh;`p}!0i~mv% zyof*hBkkaeq_f|$&wnep_P6rJ|LPO3i%!3-xca01^xLX4Z)>i6Z8`U@`QHEj2mhx$ z{y+c5$GOk`t-k+t^~?X8U;W?l_Wz*||Id8;|M2Jk*Aq@LRIO&HT*XknoS|e9L-9g} zq6G{Ea~V>58Dg6lB5N7KD;Yw|8A8e!0`eJra~OQG7`!tX+>#hv;u)Od7#yP*93mNP zLm8|B7%co4%zYWmyctZr7>wN*3|$!X92j)%8FXwIw5%93Eg3Y-8PrS}lnsF9Ge%T1 zPCmr4*3&_i9xoli?v^ykiO5}WY6ZeIApWWj+$jdLxl#cT>bZPsegO}?NI zkih0RgHKv7q#^Ohsz|xEHon}Kj~L{v%dWL3Iw!btiCeEy6I^v|(Ike%O9ys7UeG6N z5$88UH?paPlV8FmrNKerD7%!EnEtYyt<(mr!l{gw$^i^}d7`$HW6~8r<>%&Cm=er1Ok!WNu6Gi|cQ^fPKp7#OSpVbCJx diff --git a/theme/EN-default/img/logout.gif b/theme/EN-default/img/logout.gif deleted file mode 100644 index 02b042fc724de8e45149b3a12b938a88b910ad6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99 zcmZ?wbhEHbG-lvrXkcJCaNvNwi?QNQ7Dfgj&;b!383rb+mj0Ee-|{c!X;+GFUKZVa zE;N37!j0)OUZ}1*wsObnAB%3wT&wbYU!9lzHQ}%br^znGiFTczIeWbXSsAPWFq0&) diff --git a/theme/EN-default/img/notice.gif b/theme/EN-default/img/notice.gif deleted file mode 100644 index 0a8819377cebfa59ed2c25423c280bec47b871e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94 zcmZ?wbhEHba6&a_vDw@px<;cs)aY^@4|H2^Y>Al?7~ diff --git a/theme/EN-default/index.template b/theme/EN-default/index.template deleted file mode 100644 index 78c9f3ea..00000000 --- a/theme/EN-default/index.template +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - -<?=get_title()?> - JSBoard <?=$board['ver']?> - - - - - - - -> -
    - - - - - - - - - - - - - -
    - - - - - - - - - - -
    -Copyleft -1999- by - -JSBoard Open Project
    -Theme Designed by -IDOO -All right reserved -
    - - - -
    - - - - - - - diff --git a/theme/EN-default/list.template b/theme/EN-default/list.template deleted file mode 100644 index eb45b7ca..00000000 --- a/theme/EN-default/list.template +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - -
    >>  
    - - - - - - - - - - - - - - - -File\n"; -?> - - - - - - - - -
    No.SubjectNameDateRead
    - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    >> Fast Page Link : -
    - -
    - - - - - - -
    - - maxlength=255 value=""> - -
    - -> -REGEX -
    - - - - -
    - -
    -
    - -
    - - - - -
    - - - maxlength=6 value=''> - -
    - -
    - diff --git a/theme/EN-default/login.template b/theme/EN-default/login.template deleted file mode 100644 index 0b4ff7a9..00000000 --- a/theme/EN-default/login.template +++ /dev/null @@ -1,96 +0,0 @@ - - - - - -JSBoard <?=$board['ver']?> Login page - - - - - - - - - -
    - -
    - - - - - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    -Password - - -
    -
    User
    Password
    -Session Reset - -
    -
    - -
    - - - - - - - - - -
    - - -
    - -
    - - - - diff --git a/theme/EN-default/mail.template b/theme/EN-default/mail.template deleted file mode 100644 index 676b6669..00000000 --- a/theme/EN-default/mail.template +++ /dev/null @@ -1,102 +0,0 @@ - - - - -JSBoard Reply Notice - - - - - - 
    -
    - - -
    - - - -
    -JSBoard Reply Notice -
    - - - -
    -
    -
    -$_('html_msg')
    -
    -Server Name       : $servername$nofm
    -
    -
    - - - -
    - - - -
    -
    -
    -$_('u_name')              : {$rmail['name']}
    -$addressinfo
    -$_('reg')              : $year $day $ampm $hms
    -
    -
    - - - -
    - - - -
    -
    -
    -{$rmail['text']}
    -
    -
    -
    - - - -
    - -Scripted by JSBoard Open Project - -
    - -
    -
    - -
    -
    -
    - - diff --git a/theme/EN-default/read.template b/theme/EN-default/read.template deleted file mode 100644 index 4231e2fb..00000000 --- a/theme/EN-default/read.template +++ /dev/null @@ -1,202 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - -\n/i", "\\0\"\"", $list['title']); ?> - - - - - - - -
    - ->> Read article -
    -TITLE: - -
    - - - - - - - - - - - - - - - - - -
    -
    -Date     -Read
    -Name     -File {$list['attach']}" : "" ?>
    -
    -
    - - - -
    - - - - - - - - - - -
    -
    - - - - - - -
    - - - - -
    - - -
    - - - - - -
    -
    ->> - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - -
    - -
    - - - - - - -
    - - maxlength=255 value=""> - -
    - -> -REGEX -
    - - - - -
    - -
    - -Page Loading [ Sec ] -SQL Time [ Sec ]
    -
    - -
    - - - - -
    - - - maxlength=6 value=""> - -
    - -
    - diff --git a/theme/EN-default/reply.template b/theme/EN-default/reply.template deleted file mode 100644 index 1abeec09..00000000 --- a/theme/EN-default/reply.template +++ /dev/null @@ -1,159 +0,0 @@ - - - -
    onsubmit="return registCheck();"> - - - - - - - - - - - - -
    - ->> Write reply article -
    - -Reply -
    - - border=0 cellpadding=1 cellspacing=0> - - - - - - - - - - - - - - - - - - - - - - - - -\n"; -} -?> - - - - - - - - -\n"; -} -?> - - - - -\n". - "\n". - "\n". - "\n"; -} elseif(!$upload['yesno'] && $cupload['yesno']) { - echo "\n". - "\n". - "\n". - "\n"; -} -?> - - - - - - - - - - - - - - - - -Password\n". - "\n"; -} -?> - - - - - -


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

    - - - -
    - - - -
    - - - - - - - - - - -
    - - - - - - - - - - -
    - - - - - -
    - -
    - diff --git a/theme/EN-default/write.template b/theme/EN-default/write.template deleted file mode 100644 index b8d52115..00000000 --- a/theme/EN-default/write.template +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - -
    onsubmit="return registCheck();"> - - - - - - - - - - - - -
    - ->> Write new article -
    - -Write -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -END; -} -?> - - - - - - - - - -END; -} -?> - - - - -\n". - "\n". - "\n". - "\n"; -} elseif(!$upload['yesno'] && $cupload['yesno']) { - echo "\n". - "\n". - "\n". - "\n"; -} -?> - - - - - - - - - - - - - - -Password - -END; -} -?> - - - - - -


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

    - - - -
    - - - -
    - - - - - - - - - -
    - - - - - - - - - -
    - - - - - -
    -
    - diff --git a/theme/JP-default/config.php b/theme/JP-default/config.php deleted file mode 100644 index 597ad6ce..00000000 --- a/theme/JP-default/config.php +++ /dev/null @@ -1,62 +0,0 @@ - -$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" . - "" . - "" . - ""; - -############################################################## -# Width Configuration -############################################################## - -# list paget table ratio =================================== -$td_width['no'] = "5%"; # ԍ tB[h - -# tB[h -if ($upload['yesno'] && $cupload['yesno']) $td_width['title'] = "54%"; -else $td_width['title'] = "63%"; - -$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 - -############################################################## -# Field Array Configuration -############################################################## -# Xg tB[h 菇 `. -# n -> ԍ -# T -> -# N -> -# F -> Abv[h t@C -# D -> o^ t -# R -> ǂ -# -$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 deleted file mode 100644 index 0f37468b..00000000 --- a/theme/JP-default/delete.template +++ /dev/null @@ -1,95 +0,0 @@ - -
    - - - - - - - - - -\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 deleted file mode 100644 index 5e2471fd..00000000 --- a/theme/JP-default/edit.template +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - -
    onsubmit="return registCheck();"> - - - - - - - - - - - - - -
    >> Edit article
    - - C -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -EOF; -} -?> - - - - - - - - - - -EOF; -} -?> - - - - - - - - - -EOF; -} - -if ($upload['yesno'] && $cupload['yesno'] && $noup != 1) { - echo << - - - - -EOF; -} -?> - - - - - - - - - - - - - - - -pX[h - -EOF; -} -?> - - - - - -


    O tabindex="1">
    [
    z[y[W
    t@C - -{$list['bofile']} -{$list['bofile']} - $hfsize     - t@C폜 -
    t@CC - - -
    -$passment - -

    - - - -
    - - - -
    - - - - - - - - - - -
    - - - - - - - - - -
    - - - - - -
    -
    - diff --git a/theme/JP-default/img/admin.gif b/theme/JP-default/img/admin.gif deleted file mode 100644 index b51ac0ac7222e47a44cde91b37ca2b175a2c2072..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97 zcmZ?wbhEHbG+^LlXkcJCaNvNwi?QNQ7Dfgj&;b!383rbcmj0Ee-|{PSx36p1c=8(4 xtlFz4T5;xCvwkdml2&BEvniu?>PgG)J$pYY)GeFT^ECLS%9&-KUjj|A1^~W6B*6dx diff --git a/theme/JP-default/img/at.gif b/theme/JP-default/img/at.gif deleted file mode 100644 index 538f817fa32dadeba74d3af8706c3dc371bd984e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 850 zcmc(eEpC-z5QWc8Ah|aL9HL201Ez$8(u05?2~b=G0$VddAS!DMs!N!pdmt5Tp=uU@ zK(Gsf8lHJK!Rsb7bN=T0-hX)a^3~Z+5A;XsdDWfW(d}+cRn?VU(d8~pGpjQ@qtl(5 z*{F`}hz@sXR$c9EN84?I)T&mtqU9C^*g%8DGSeEKd07=zuF}v_WmZO|D>W);Mpi_H zD>R~*b(W*-ve3wCDN9ju3071ChG`(7Zo%e zX{UvIL@}F+lvCIv4`i}U9Qa2B4p9vlqEX2xIv@rcXs|TNO`DqM2u+aqgOoVOy7x5K2`A=tm6=^ZPwFeXSzU3=5thS2TB7GBOUD2&Xg&w7M0j{wRG|NdckuVl zM*69z!#)3mw$F64+dnz|{o~u+@Ap4`K015zWxMy}dV6#5_Uhqb{QC6#(e2lJyW6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= o{r&#_{{R2~EC2ui00;mA000ON009Vm0PmkcfdB{^{1*@aJA5aF+W-In diff --git a/theme/JP-default/img/board_no.gif b/theme/JP-default/img/board_no.gif deleted file mode 100644 index 9ee4f10567a38575ef04a896489795b9cd0b11e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1496 zcmcJO`8yPN9DqNA7-1UYXk@G*GS-+GjB7~R=$;LQBBg{HtT~iX(#=1i4yW1bJ?;r5~^u9+}P8OCyR8WHt2>t^hR5XcSN0W@h zkR^o7E=ccylvYT72<&F~sR3fR5d9l`UkFjRAu<=jvmiJfPNzWN&){|uSZBcg6qq;z z)dqA-Ktmr?H6gnnlh!VAb3ih0Xji^Sx?mVvIJ&!dO0j5Cv1FQ1JV_`OtCYP^<<6+w zn^vuuBl2FU-J2qo&8nBqsMjoN)V|fMdq*yx(JY@KKln$td`6r9R=0VLQZb|RaO3OR zc}nY+;p30=wjD<8JhkBstpk}#d?1UqImVn*$paTl^|UNY-OHa+NY85O*H&rq;Qy(f!#EyqOK2c;o)dP5v9yJh#!jxYPPK z5-g#j`0zVW()Gaud4-q*K#(|(z z2uy;2MDR}lzw6-pBY4MwXDpnIf#c`FH40oJ!8sI;gn(lZIGhGMKd|+MLq1^R4F^5p zn-gGp9L!z8%mqx3f{7CtJA#n|(CvU~4F*=AZwVB0&@+Prrl8A&{S45igBA_QRM0d4 zbzLB8!Co>b?E}0j>`?)%9Q19R8rVGB^ZxAUTITp#zIe0Z<#y!~dh%|&X9bBi(fmiW ztYZW!Bp?t$RvuI}KtU1qD1jUfKBH}{EXZI%QW7wjFMWQ=^#6hSMf>FiTP%WISP}*A zbQgnF(tadi&o=NA{&!$A!GL0!@w~3^lEJ1QAPCmmC z?$KTKQ?E=~E<2bI?t1YB1;t)9@>0RQg`N$O?oqQ;u1|ME4#L zna~a?sV`mxIivYQ>8NvsJw6 z?`lbxFekVA^#YEaSuf2$=S`I()UjQqIlcBS=D#!8LOf4_n@MnU4oZ@hVGj1{t1Y{8 z7#*8z7wKBz3Wt_Q)N)Fq?Cun5_FC{IRj+X^vT#?q=56vSj|4}l?NX9#t<+@OyVMIt zZBl{0d3Y={@ZhRYOTQq;jxpZpod|Y8Hp=BO$$zCN^N2i}D9Xczy zx1xe=iyI)br$Iy#u^9FEgbZnd4yMb~BeO0%dVgsBQQG*0l2RA?kC*J|%pn1Wq5+AX z3X#?&=~7nm#;(CB8sQ;d)y|3ZFfEe=JDk4(56cBJB^>Zj}vdQaMyb%gL1(>Zc-Zd zon(PTezKsCCQ#nLV%p^cX?qF&59}2f75HRw)LNUpjGVP7Q8}zE^M#T%lZXea)u!Xi Mb*lpo(o$gcFX*&ubN~PV diff --git a/theme/JP-default/img/dot.gif b/theme/JP-default/img/dot.gif deleted file mode 100644 index 34b97d93dcdb55a97b2d13f8cc6da79611fa9704..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48 zcmZ?wbhEHblwe?FXkcJSOH2Fz|G(l-7Dfi3fDQu?fMgh$*m;sFPQDIgV6X-N9)t@8 diff --git a/theme/JP-default/img/dotted_gray.gif b/theme/JP-default/img/dotted_gray.gif deleted file mode 100644 index 8342733e74a31860c1843a42de74f2253527137c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44 ucmZ?wbhEHbWMg1tXkcLY|NsB<=g$>?vM@3LfewfO$uKZ6_cXFHSOWkZ1qy}$ diff --git a/theme/JP-default/img/grippie.png b/theme/JP-default/img/grippie.png deleted file mode 100644 index 7bfd3d382a36218900dee60962dcd2475d4ff896..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1SBVD?P>#3oCO|{#S9GG!XV7ZFl&wkP|(xU z#WAGfR&vG9KU#(_J~m(G2?^eneEN}Ww3yJ^lGlg+|Nk%iwBdh(!^Y@`@08z!?fBhM tq2u?K^W9mB-4jE&ovB5N7_@)#$dXP$C_W$H!N>6h7OT;b?Cz}~o-bM|%aIX8Hw zUErB}lXuD)o_V+U=HKRDa7SR_UBN~7gcjcyUiD0B^>gVpFJ#uflwJ2qZvAWdjc*k< zy;IuyQFYrVwY@)e_y5-4_e*c}L#;#qjE?=cJO0Px#2=qC|AThD@ILh;`p}!0i~mv% zyof*hBkkaeq_f|$&wnep_P6rJ|LPO3i%!3-xca01^xLX4Z)>i6Z8`U@`QHEj2mhx$ z{y+c5$GOk`t-k+t^~?X8U;W?l_Wz*||Id8;|M2Jk*Aq@LRIO&HT*XknoS|e9L-9g} zq6G{Ea~V>58Dg6lB5N7KD;Yw|8A8e!0`eJra~OQG7`!tX+>#hv;u)Od7#yP*93mNP zLm8|B7%co4%zYWmyctZr7>wN*3|$!X92j)%8FXwIw5%93Eg3Y-8PrS}lnsF9Ge%T1 zPCmr4*3&_i9xoli?v^ykiO5}WY6ZeIApWWj+$jdLxl#cT>bZPsegO}?NI zkih0RgHKv7q#^Ohsz|xEHon}Kj~L{v%dWL3Iw!btiCeEy6I^v|(Ike%O9ys7UeG6N z5$88UH?paPlV8FmrNKerD7%!EnEtYyt<(mr!l{gw$^i^}d7`$HW6~8r<>%&Cm=er1Ok!WNu6Gi|cQ^fPKp7#OSpVbCJx diff --git a/theme/JP-default/img/logout.gif b/theme/JP-default/img/logout.gif deleted file mode 100644 index 02b042fc724de8e45149b3a12b938a88b910ad6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99 zcmZ?wbhEHbG-lvrXkcJCaNvNwi?QNQ7Dfgj&;b!383rb+mj0Ee-|{c!X;+GFUKZVa zE;N37!j0)OUZ}1*wsObnAB%3wT&wbYU!9lzHQ}%br^znGiFTczIeWbXSsAPWFq0&) diff --git a/theme/JP-default/img/notice.gif b/theme/JP-default/img/notice.gif deleted file mode 100644 index 0a8819377cebfa59ed2c25423c280bec47b871e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94 zcmZ?wbhEHba6&a_vDw@px<;cs)aY^@4|H2^Y>Al?7~ 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 deleted file mode 100644 index 48178c3a..00000000 --- a/theme/JP-default/list.template +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -
    >>  
    - - - - - - - - - - - - - - - -t@C\n -EOF; -?> - - - - - - - - -
    No.Otǂ
    - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    >> Fast Page Link : -
    - -
    - - - - - - -
    - - - -
    - -> -K\ -
    - - - - -
    - -
    -
    - -
    - - - - -
    - - -'> - -
    - -
    - - diff --git a/theme/JP-default/login.template b/theme/JP-default/login.template deleted file mode 100644 index 795ad465..00000000 --- a/theme/JP-default/login.template +++ /dev/null @@ -1,96 +0,0 @@ - - - - - -JSBoard <?=$board['ver']?> Login page - - - - - - - - - -
    - -
    - - - - - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    -Password - - -
    -
    User
    Password
    -Session Reset - -
    -
    - -
    - - - - - - - - - -
    - - -
    - -
    - - - - diff --git a/theme/JP-default/mail.template b/theme/JP-default/mail.template deleted file mode 100644 index 077adc66..00000000 --- a/theme/JP-default/mail.template +++ /dev/null @@ -1,102 +0,0 @@ - - - - -JSBoard Reply Notice - - - - - - 
    -
    - - -
    - - - -
    -JSBoard Reply Notice -
    - - - -
    -
    -
    -$_('html_msg')
    -
    -Server Name       : $servername$nofm
    -
    -
    - - - -
    - - - -
    -
    -
    -$_('u_name')              : {$rmail['name']}
    -$addressinfo
    -$_('reg')              : $year $day $ampm $hms
    -
    -
    - - - -
    - - - -
    -
    -
    -{$rmail['text']}
    -
    -
    -
    - - - -
    - -Scripted by JSBoard Open Project - -
    - -
    -
    - -
    -
    -
    - - diff --git a/theme/JP-default/read.template b/theme/JP-default/read.template deleted file mode 100644 index 7eb4a863..00000000 --- a/theme/JP-default/read.template +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n/i", "\\0\"\"", $list['title']); ?> - - - - - - - -
    >> Read article
    -TITLE: - -
    - - - - - - - - - - - - - - - - - -
    -
    -o^     -ǂ
    -O     -t@C {$list['attach']}" : "" ?>
    -
    -
    - - - -
    - - - - - - - - - -
    -
    - - - - - - -
    - - - - -
    - - -
    - - - - - -
    -
    ->> - - - -
    - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - -
    - -
    - - - - - - -
    - - - -
    - -> -K\ -
    - - - - -
    - -
    - -Page Loading [ Sec ] -SQL Time [ Sec ]
    -
    - -
    - - - - -
    - - - - -
    - -
    - - diff --git a/theme/JP-default/reply.template b/theme/JP-default/reply.template deleted file mode 100644 index 3b6e0c83..00000000 --- a/theme/JP-default/reply.template +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - -
    onsubmit="return registCheck();"> - - - - - - - - - - - - - -
    >> Write reply article
    - -fbO -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -EOF; -} -?> - - - - - - - - - - -EOF; -} -?> - - - - - - - - - -EOF; -} elseif(!$upload['yesno'] && $cupload['yesno']) { - echo << - - - - -EOF; -} -?> - - - - - - - - - - - - - - - - -pX[h - -EOF; -} -?> - - - - - -


    O tabindex="1">
    [
    z[y[W
    t@C - - -
    t@C" . $_('upload') . "
    " tabindex="5">
    - -{$pcaptcha} -

    - - - -
    - - - -
    - - - - - - - - - - -
    - - - - - - - - - - -
    - - - - - -
    - -
    - diff --git a/theme/JP-default/write.template b/theme/JP-default/write.template deleted file mode 100644 index ff04860c..00000000 --- a/theme/JP-default/write.template +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - -
    onsubmit="return registCheck();"> - - - - - - - - - - - - - -
    >> Write new article
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -END; -} -?> - - - - - - - - - -END; -} -?> - - - - - - - - - -EOF; -} elseif(!$upload['yesno'] && $cupload['yesno']) { - echo << - - - - -EOF; -} -?> - - - - - - - - - - - - - - -pX[h - -END; -} -?> - - - - - -


    O tabindex="1">
    [
    z[y[W
    t@C - - -
    t@C" . $_('upload') . "
    - -{$pcaptcha} -

    - - - -
    - - - -
    - - - - - - - - - -
    - - - - - - - - - -
    - - - - - -
    -
    - diff --git a/theme/KO-default/config.php b/theme/KO-default/config.php deleted file mode 100644 index 56ccb834..00000000 --- a/theme/KO-default/config.php +++ /dev/null @@ -1,63 +0,0 @@ - -$lines['height'] = '25'; - -# Ʈ ̿ ֱ ڵ -# $lines['design'] ̷ . -# COLSPAN=AA  . ̼ Ʈ colspan -# ߱ list.php ȯ ϰ Ǿ -# ̿Ͽ ׽Ʈ ٶ -# $lines['comment'] comment rows Ǹ -# . COLSPAN=AA ʿ . -#$lines['design'] = '
    '; -$lines['design'] = ''; -$lines['comment_design'] = '' . - '' . - '' . - ''; - -############################################################## -# Width Configuration -############################################################## - -# list paget table ratio =================================== -$td_width['no'] = '5%'; # ȣ ʵ ʺ - -# ʵ ʺ -if ($upload['yesno'] && $cupload['yesno']) $td_width['title'] = '54%'; -else $td_width['title'] = '63%'; - -$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 -> -# -$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 deleted file mode 100644 index d0e4f771..00000000 --- a/theme/KO-default/delete.template +++ /dev/null @@ -1,95 +0,0 @@ - -
    - - - - - - - - - -\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 deleted file mode 100644 index d79b5378..00000000 --- a/theme/KO-default/edit.template +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - -
    onsubmit="return registCheck();"> - - - - - - - - - - - - - -
    >> Edit article
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -EOF; -} -?> - - - - - - - - - - -EOF; -} -?> - - - - - - - - - -EOF; -} - -if ($upload['yesno'] && $cupload['yesno'] && $noup != 1) { - echo << - - - - -EOF; -} -?> - - - - - - - - - - - - - - - -н - -EOF; -} -?> - - - - - -


    ̸ tabindex="1">
    Ȩ
    - -{$list['bofile']} -{$list['bofile']} - $hfsize     - ϻ -
    ϼ - - -
    -$passment - -

    - - - -
    - - - -
    - - - - - - - - - - -
    - - - - - - - - - -
    - - - - - -
    -
    diff --git a/theme/KO-default/img/admin.gif b/theme/KO-default/img/admin.gif deleted file mode 100644 index b51ac0ac7222e47a44cde91b37ca2b175a2c2072..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97 zcmZ?wbhEHbG+^LlXkcJCaNvNwi?QNQ7Dfgj&;b!383rbcmj0Ee-|{PSx36p1c=8(4 xtlFz4T5;xCvwkdml2&BEvniu?>PgG)J$pYY)GeFT^ECLS%9&-KUjj|A1^~W6B*6dx diff --git a/theme/KO-default/img/at.gif b/theme/KO-default/img/at.gif deleted file mode 100644 index 538f817fa32dadeba74d3af8706c3dc371bd984e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 850 zcmc(eEpC-z5QWc8Ah|aL9HL201Ez$8(u05?2~b=G0$VddAS!DMs!N!pdmt5Tp=uU@ zK(Gsf8lHJK!Rsb7bN=T0-hX)a^3~Z+5A;XsdDWfW(d}+cRn?VU(d8~pGpjQ@qtl(5 z*{F`}hz@sXR$c9EN84?I)T&mtqU9C^*g%8DGSeEKd07=zuF}v_WmZO|D>W);Mpi_H zD>R~*b(W*-ve3wCDN9ju3071ChG`(7Zo%e zX{UvIL@}F+lvCIv4`i}U9Qa2B4p9vlqEX2xIv@rcXs|TNO`DqM2u+aqgOoVOy7x5K2`A=tm6=^ZPwFeXSzU3=5thS2TB7GBOUD2&Xg&w7M0j{wRG|NdckuVl zM*69z!#)3mw$F64+dnz|{o~u+@Ap4`K015zWxMy}dV6#5_Uhqb{QC6#(e2lJyW6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= o{r&#_{{R2~EC2ui00;mA000ON009Vm0PmkcfdB{^{1*@aJA5aF+W-In diff --git a/theme/KO-default/img/board_no.gif b/theme/KO-default/img/board_no.gif deleted file mode 100644 index 9ee4f10567a38575ef04a896489795b9cd0b11e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1496 zcmcJO`8yPN9DqNA7-1UYXk@G*GS-+GjB7~R=$;LQBBg{HtT~iX(#=1i4yW1bJ?;r5~^u9+}P8OCyR8WHt2>t^hR5XcSN0W@h zkR^o7E=ccylvYT72<&F~sR3fR5d9l`UkFjRAu<=jvmiJfPNzWN&){|uSZBcg6qq;z z)dqA-Ktmr?H6gnnlh!VAb3ih0Xji^Sx?mVvIJ&!dO0j5Cv1FQ1JV_`OtCYP^<<6+w zn^vuuBl2FU-J2qo&8nBqsMjoN)V|fMdq*yx(JY@KKln$td`6r9R=0VLQZb|RaO3OR zc}nY+;p30=wjD<8JhkBstpk}#d?1UqImVn*$paTl^|UNY-OHa+NY85O*H&rq;Qy(f!#EyqOK2c;o)dP5v9yJh#!jxYPPK z5-g#j`0zVW()Gaud4-q*K#(|(z z2uy;2MDR}lzw6-pBY4MwXDpnIf#c`FH40oJ!8sI;gn(lZIGhGMKd|+MLq1^R4F^5p zn-gGp9L!z8%mqx3f{7CtJA#n|(CvU~4F*=AZwVB0&@+Prrl8A&{S45igBA_QRM0d4 zbzLB8!Co>b?E}0j>`?)%9Q19R8rVGB^ZxAUTITp#zIe0Z<#y!~dh%|&X9bBi(fmiW ztYZW!Bp?t$RvuI}KtU1qD1jUfKBH}{EXZI%QW7wjFMWQ=^#6hSMf>FiTP%WISP}*A zbQgnF(tadi&o=NA{&!$A!GL0!@w~3^lEJ1QAPCmmC z?$KTKQ?E=~E<2bI?t1YB1;t)9@>0RQg`N$O?oqQ;u1|ME4#L zna~a?sV`mxIivYQ>8NvsJw6 z?`lbxFekVA^#YEaSuf2$=S`I()UjQqIlcBS=D#!8LOf4_n@MnU4oZ@hVGj1{t1Y{8 z7#*8z7wKBz3Wt_Q)N)Fq?Cun5_FC{IRj+X^vT#?q=56vSj|4}l?NX9#t<+@OyVMIt zZBl{0d3Y={@ZhRYOTQq;jxpZpod|Y8Hp=BO$$zCN^N2i}D9Xczy zx1xe=iyI)br$Iy#u^9FEgbZnd4yMb~BeO0%dVgsBQQG*0l2RA?kC*J|%pn1Wq5+AX z3X#?&=~7nm#;(CB8sQ;d)y|3ZFfEe=JDk4(56cBJB^>Zj}vdQaMyb%gL1(>Zc-Zd zon(PTezKsCCQ#nLV%p^cX?qF&59}2f75HRw)LNUpjGVP7Q8}zE^M#T%lZXea)u!Xi Mb*lpo(o$gcFX*&ubN~PV diff --git a/theme/KO-default/img/dot.gif b/theme/KO-default/img/dot.gif deleted file mode 100644 index 34b97d93dcdb55a97b2d13f8cc6da79611fa9704..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48 zcmZ?wbhEHblwe?FXkcJSOH2Fz|G(l-7Dfi3fDQu?fMgh$*m;sFPQDIgV6X-N9)t@8 diff --git a/theme/KO-default/img/dotted_gray.gif b/theme/KO-default/img/dotted_gray.gif deleted file mode 100644 index 8342733e74a31860c1843a42de74f2253527137c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44 ucmZ?wbhEHbWMg1tXkcLY|NsB<=g$>?vM@3LfewfO$uKZ6_cXFHSOWkZ1qy}$ diff --git a/theme/KO-default/img/grippie.png b/theme/KO-default/img/grippie.png deleted file mode 100644 index 7bfd3d382a36218900dee60962dcd2475d4ff896..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1SBVD?P>#3oCO|{#S9GG!XV7ZFl&wkP|(xU z#WAGfR&vG9KU#(_J~m(G2?^eneEN}Ww3yJ^lGlg+|Nk%iwBdh(!^Y@`@08z!?fBhM tq2u?K^W9mB-4jE&ovB5N7_@)#$dXP$C_W$H!N>6h7OT;b?Cz}~o-bM|%aIX8Hw zUErB}lXuD)o_V+U=HKRDa7SR_UBN~7gcjcyUiD0B^>gVpFJ#uflwJ2qZvAWdjc*k< zy;IuyQFYrVwY@)e_y5-4_e*c}L#;#qjE?=cJO0Px#2=qC|AThD@ILh;`p}!0i~mv% zyof*hBkkaeq_f|$&wnep_P6rJ|LPO3i%!3-xca01^xLX4Z)>i6Z8`U@`QHEj2mhx$ z{y+c5$GOk`t-k+t^~?X8U;W?l_Wz*||Id8;|M2Jk*Aq@LRIO&HT*XknoS|e9L-9g} zq6G{Ea~V>58Dg6lB5N7KD;Yw|8A8e!0`eJra~OQG7`!tX+>#hv;u)Od7#yP*93mNP zLm8|B7%co4%zYWmyctZr7>wN*3|$!X92j)%8FXwIw5%93Eg3Y-8PrS}lnsF9Ge%T1 zPCmr4*3&_i9xoli?v^ykiO5}WY6ZeIApWWj+$jdLxl#cT>bZPsegO}?NI zkih0RgHKv7q#^Ohsz|xEHon}Kj~L{v%dWL3Iw!btiCeEy6I^v|(Ike%O9ys7UeG6N z5$88UH?paPlV8FmrNKerD7%!EnEtYyt<(mr!l{gw$^i^}d7`$HW6~8r<>%&Cm=er1Ok!WNu6Gi|cQ^fPKp7#OSpVbCJx diff --git a/theme/KO-default/img/logout.gif b/theme/KO-default/img/logout.gif deleted file mode 100644 index 02b042fc724de8e45149b3a12b938a88b910ad6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99 zcmZ?wbhEHbG-lvrXkcJCaNvNwi?QNQ7Dfgj&;b!383rb+mj0Ee-|{c!X;+GFUKZVa zE;N37!j0)OUZ}1*wsObnAB%3wT&wbYU!9lzHQ}%br^znGiFTczIeWbXSsAPWFq0&) diff --git a/theme/KO-default/img/notice.gif b/theme/KO-default/img/notice.gif deleted file mode 100644 index 0a8819377cebfa59ed2c25423c280bec47b871e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94 zcmZ?wbhEHba6&a_vDw@px<;cs)aY^@4|H2^Y>Al?7~ 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 deleted file mode 100644 index 128fe2aa..00000000 --- a/theme/KO-default/list.template +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -
    >>  
    - - - - - - - - - - - - - - - -\n -EOF; -?> - - - - - - - - -
    No.̸¥ȸ
    - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    >> Fast Page Link : -
    - -
    - - - - - - -
    - - - -
    - -> -ǥ -
    - - - - -
    - -
    -
    - -
    - - - - -
    - - -'> - -
    - -
    - diff --git a/theme/KO-default/login.template b/theme/KO-default/login.template deleted file mode 100644 index da9c07da..00000000 --- a/theme/KO-default/login.template +++ /dev/null @@ -1,96 +0,0 @@ - - - - - -JSBoard <?=$board['ver']?> Login page - - - - - - - - - -
    - -
    - - - - - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    -Password - - -
    -
    User
    Password
    -Session Reset - -
    -
    - -
    - - - - - - - - - -
    - - -
    - -
    - - - - diff --git a/theme/KO-default/mail.template b/theme/KO-default/mail.template deleted file mode 100644 index e7c0b16b..00000000 --- a/theme/KO-default/mail.template +++ /dev/null @@ -1,102 +0,0 @@ - - - - -JSBoard Reply Notice - - - - - - 
    -
    - - -
    - - - -
    -JSBoard Reply Notice -
    - - - -
    -
    -
    -$_('html_msg')
    -
    -Server Name       : $servername$nofm
    -
    -
    - - - -
    - - - -
    -
    -
    -$_('u_name')              : {$rmail['name']}
    -$addressinfo
    -$_('reg')              : $year $day $ampm $hms
    -
    -
    - - - -
    - - - -
    -
    -
    -{$rmail['text']}
    -
    -
    -
    - - - -
    - -Scripted by JSBoard Open Project - -
    - -
    -
    - -
    -
    -
    - - diff --git a/theme/KO-default/read.template b/theme/KO-default/read.template deleted file mode 100644 index 5aaeaae9..00000000 --- a/theme/KO-default/read.template +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n/i", "\\0\"\"", $list['title']); ?> - - - - - - - -
    >> Read article
    -TITLE: - -
    - - - - - - - - - - - - - - - - - -
    -
    -     -ȸ
    -̸     - {$list['attach']}" : "" ?>
    -
    -
    - - - -
    - - - - - - - - - -
    -
    - - - - - - -
    - - - - -
    - - -
    - - - - - -
    -
    ->> - - - -
    - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - -
    - -
    - - - - - - -
    - - - -
    - -> -ǥ -
    - - - - -
    - -
    - -Page Loading [ Sec ] -SQL Time [ Sec ]
    -
    - -
    - - - - -
    - - - - -
    - -
    - diff --git a/theme/KO-default/reply.template b/theme/KO-default/reply.template deleted file mode 100644 index 593e0801..00000000 --- a/theme/KO-default/reply.template +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - -
    onsubmit="return registCheck();"> - - - - - - - - - - - - - -
    >> Write reply article
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -EOF; -} -?> - - - - - - - - - - -EOF; -} -?> - - - - - - - - - -EOF; -} elseif(!$upload['yesno'] && $cupload['yesno']) { - echo << - - - - -EOF; -} -?> - - - - - - - - - - - - - - - - -н - -EOF; -} -?> - - - - - -


    ̸ tabindex="1">
    Ȩ
    - - -
    " . $_('upload') . "
    " tabindex="5">
    - -{$pcaptcha} -

    - - - -
    - - - -
    - - - - - - - - - - -
    - - - - - - - - - - -
    - - - - - -
    - -
    - diff --git a/theme/KO-default/write.template b/theme/KO-default/write.template deleted file mode 100644 index bd2d704b..00000000 --- a/theme/KO-default/write.template +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - -
    onsubmit="return registCheck();"> - - - - - - - - - - - - - -
    >> Write new article
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -END; -} -?> - - - - - - - - - -END; -} -?> - - - - - - - - - -EOF; -} elseif(!$upload['yesno'] && $cupload['yesno']) { - echo << - - - - -EOF; -} -?> - - - - - - - - - - - - - - -н - -END; -} -?> - - - - - -


    ̸ tabindex="1">
    Ȩ
    - - -
    " . $_('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 deleted file mode 100644 index 95861f65..00000000 --- a/theme/common/textarea.js +++ /dev/null @@ -1,271 +0,0 @@ -// $Id: textarea.js,v 1.2 2008-12-12 19:40:14 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 - -if (document.jsEnabled == undefined) { - // Note: ! casts to boolean implicitly. - document.jsEnabled = !( - !document.getElementsByTagName || - !document.createElement || - !document.createTextNode || - !document.getElementById); -} - -function textarea_cols(obj) { - if ( /%/.test(obj.style.width) ) { - if ( /%/.test(tarea_width) ) { width = browserSize('width'); } - else { width = tarea_width; } - } else { - width = obj.style.width; - } - - wtype = typeof width; - if ( wtype == 'string' ) - width = width.replace(/[ ]*px/g, ""); - - if ( ! width || obj.cols == -1 || obj.cols == 20 ) { - obj.cols = tarea_cols; - //document.getElementById('vcols').value = obj.cols; - return true; - } - - obj.cols = Math.round(width / 7) + 7; - //document.getElementById('vcols').value = obj.cols; - - return true; -} - -/** - * Retrieves the absolute position of an element on the screen - */ -function absolutePosition(el) { - var sLeft = 0, sTop = 0; - var isDiv = /^div$/i.test(el.tagName); - if (isDiv && el.scrollLeft) { - sLeft = el.scrollLeft; - } - if (isDiv && el.scrollTop) { - sTop = el.scrollTop; - } - var r = { x: el.offsetLeft - sLeft, y: el.offsetTop - sTop }; - if (el.offsetParent) { - var tmp = absolutePosition(el.offsetParent); - r.x += tmp.x; - r.y += tmp.y; - } - return r; -}; - -function dimensions(el) { - return { width: el.offsetWidth, height: el.offsetHeight }; -} - -/** - * Returns true if an element has a specified class name - */ -function hasClass(node, className) { - if (node.className == className) { - return true; - } - var reg = new RegExp('(^| )'+ className +'($| )') - if (reg.test(node.className)) { - return true; - } - return false; -} - -/** - * Prevents an event from propagating. - */ -function stopEvent(event) { - if (event.preventDefault) { - event.preventDefault(); - event.stopPropagation(); - } - else { - event.returnValue = false; - event.cancelBubble = true; - } -} - -/** - * Removes a class name from an element - */ -function removeNode(node) { - if (typeof node == 'string') { - node = document.getElementById(node); - } - if (node && node.parentNode) { - return node.parentNode.removeChild(node); - } - else { - return false; - } -} - -/** - * main textarea resizer function from drupal - * - * you have to define css as following - .resizable-textarea .grippie { - height: 14px; - background: #ECE9D6 url(../to_dir/grippie.png) no-repeat 100% 100%; - border: 1px solid #DFDBCA; - border-top-width: 0; - border-right-width: 0; - cursor: s-resize; - } - */ -function textAreaAutoAttach(event, parent) { - if (typeof parent == 'undefined') { - // Attach to all visible textareas. - textareas = document.getElementsByTagName('textarea'); - } - else { - // Attach to all visible textareas inside parent. - textareas = parent.getElementsByTagName('textarea'); - } - var textarea; - for (var i = 0; textarea = textareas[i]; ++i) { - if (hasClass(textarea, 'resizable') && (textarea.nextSibling == null|| !hasClass(textarea.nextSibling, 'grippie'))) { - if (typeof dimensions(textarea).width != 'undefined' && dimensions(textarea).width != 0) { - new textArea(textarea); - } - } - } -} - -function textArea(element,wrapper) { - var ta = this; - this.element = element; - this.parent = this.element.parentNode; - this.dimensions = dimensions(element); - - // Prepare wrapper - if (typeof wrapper=='undefined') { - this.wrapper = document.createElement('div'); - this.wrapper.className = 'resizable-textarea'; - this.parent.insertBefore(this.wrapper, this.element); - } else { - this.wrapper=wrapper; - this.wrapper.className = 'resizable-textarea'; - } - - // Add grippie and measure it - this.grippie = document.createElement('div'); - this.grippie.className = 'grippie'; - this.wrapper.appendChild(this.grippie); - this.grippie.dimensions = dimensions(this.grippie); - this.grippie.onmousedown = function (e) { ta.beginDrag(e); }; - - // Set wrapper and textarea dimensions - this.wrapper.style.height = this.dimensions.height + this.grippie.dimensions.height + 1 +'px'; - this.element.style.marginBottom = '0px'; - this.element.style.width = '100%'; - this.element.style.height = this.dimensions.height +'px'; - - /** - * textarea_width is defined on (write|edit|reply).php - */ - textarea_cols(this.element); - - // Wrap textarea - if (typeof wrapper=='undefined') { - removeNode(this.element); - this.wrapper.insertBefore(this.element, this.grippie); - } - - // Measure difference between desired and actual textarea dimensions to account for padding/borders - this.widthOffset = dimensions(this.wrapper).width - this.dimensions.width; - - // Make the grippie line up in various browsers - if (window.opera) { - // Opera - this.grippie.style.marginRight = '4px'; - } - if (document.all && !window.opera) { - // IE - this.grippie.style.width = '100%'; - this.grippie.style.paddingLeft = '2px'; - } - // Mozilla - this.element.style.MozBoxSizing = 'border-box'; - - this.heightOffset = absolutePosition(this.grippie).y - absolutePosition(this.element).y - this.dimensions.height; -} - -textArea.prototype.beginDrag = function (event) { - if (document.isDragging) { - return; - } - document.isDragging = true; - - event = event || window.event; - // Capture mouse - var cp = this; - this.oldMoveHandler = document.onmousemove; - document.onmousemove = function(e) { cp.handleDrag(e); }; - this.oldUpHandler = document.onmouseup; - document.onmouseup = function(e) { cp.endDrag(e); }; - - // Store drag offset from grippie top - var pos = absolutePosition(this.grippie); - this.dragOffset = event.clientY - pos.y; - - // Make transparent - this.element.style.opacity = 0.4; - if (window.event) this.element.style.filter = "alpha(opacity=40)"; - - // Process - this.handleDrag(event); -} - -textArea.prototype.handleDrag = function (event) { - event = event || window.event; - // Get coordinates relative to text area - var pos = absolutePosition(this.element); - var y = event.clientY - pos.y; - var x = event.clientX - pos.x; - - // Set new width - //var width = Math.max(32, x - this.dragOffset - this.widthOffset) + 3; - var width = x + 4; - this.wrapper.style.width = width + 1 + 'px'; - this.element.style.width = width + 'px'; - - // Set new height - var height = Math.max(32, y - this.dragOffset - this.heightOffset); - this.wrapper.style.height = height + this.grippie.dimensions.height + 1 + 'px'; - this.element.style.height = height + 'px'; - - // Avoid text selection - stopEvent(event); -} - -textArea.prototype.endDrag = function (event) { - // Uncapture mouse - document.onmousemove = this.oldMoveHandler; - document.onmouseup = this.oldUpHandler; - - textarea_cols(this.element); - - // Restore opacity - this.element.style.opacity = 1.0; - if (window.event) this.element.style.filter = ''; - document.isDragging = false; -} - -if (document.jsEnabled) { - var oldOnload = window.onload; - if (typeof window.onload != 'function') { - window.onload = textAreaAutoAttach; - } else { - window.onload = function() { - oldOnload(); - textAreaAutoAttach(); - } - } - /* addLoadEvent(textAreaAutoAttach); */ -} - diff --git a/theme/player/LICENSE b/theme/player/LICENSE deleted file mode 100644 index 5c8f08b3..00000000 --- a/theme/player/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ -This archive is follow license: - -French : http://creativecommons.org/licenses/by-nd/2.0/fr/ -English : http://creativecommons.org/licenses/by-nd/2.0/fr/deed.en_US -Korean : http://creativecommons.org/licenses/by-nd/2.0/fr/deed.ko - -Origianl Distribution: http://www.alsacreations.fr/dewplayer-en diff --git a/theme/player/dewplayer-vol.swf b/theme/player/dewplayer-vol.swf deleted file mode 100644 index df966d9da2a79be60e8f2e6204beb1c3bef8eea9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5214 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.close()"; - 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"; - -$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); -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 ( $row['position'] == 1 ) $row['status'] = $_('u_le1') . " " . $_('u_le2'); -elseif ( check_admin ($row['nid']) ) $row['status'] = $_('u_le2'); -else $row['status'] = $_('u_le3'); - -$sform = form_size (10); -$lform = form_size (25); - -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') . "
    -$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"; -?> diff --git a/utility/Cwb2JSB-0.2/README.CWB2JSB b/utility/Cwb2JSB-0.2/README.CWB2JSB new file mode 100644 index 00000000..6d379e18 --- /dev/null +++ b/utility/Cwb2JSB-0.2/README.CWB2JSB @@ -0,0 +1,119 @@ +How to Convert CrazyWWWBoard data to JSBoard v1.2.x +ۼ : 2000.11.28 +ǿø : 2000.12.23 + +ۼ : + +1. ʼ . + +- PHP Binary package + + PHP Binary ġ Ǿ ־ Ѵ. (apache module ) +PHP Binary + +ftp://mirror.oops.org/pub/Linux/Redhat/RPMS/6.x/i386/PHP4/Binary (Pentium Classic Ĩ ) +ftp://mirror.oops.org/pub/Linux/Redhat/RPMS/6.x/i686/PHP4/Binary (Pentium ll ̻) + + Ҽ ִ. Alzza Linux php apache module ̸ +mod_php ƴ϶ php-version 쿡 ̶ php + ϰ ִ mod_php4 ġϱ ٶ. PHP binary version +php4-version ̸ ̴. + +(PHP binary php.ini /usr/lib/php.ini ̴. ⿡ ִ Ű php.ini +mysql.so ˻ Ͽ unix extention κ ּ óϱ ٶ. + Ű¡ Ǽ տ +ڰ پ ִ.) + +- Perl package + +2. ȯ CrazyWWWBoard version + +CrazyWWWBoard 3.x +CrazyWWWBoard 98 +CrazyWWWBoard 98 PE +CrazyWWWBoard 98 PE2 +CrazyWWWBoard 2000 + +3. ȯ + + 3-1. CWB data file ϱ + + CWB data gdbm format ascii format Ҽ ִ. CWB2000 쿡 + ascii · Ҽ PEll tranDB + Ͽ ascii ִ. CWB ϴ gdbm format ״ + ȯ ϴ. + + ϴ ȯ ؼ file Ǿ ִ data Խ ȣ ϳ + ǵ ؾ Ѵ. + + ϴ split.php . ġ PHP binary ġ + ľϵ Ѵ. ftp ִ PHP Binary RPM version ޾Ҵٸ + ù PHPδ ʿ䰡 ҽ 쿡 PHP + Binary θ Ȯϰ Ѵ. Perl θ ϴ Ͱ + ϴٰ ϸ ȴ. + + CWB data file split.php ϴ direcoty copy ϵ Ѵ. + CWB data format Ѵ. + + # ȯ file type ( ascii or gdbm ) + $trans[type] = "ascii"; + + ȯ file̸ *.gdbm̶ $trans[type] gdbm ϸ *.asc + 쿡 ascii Ѵ. + + # и ascii file + $files = "example.asc"; + + # ȯ 丮 + $trans[path] = "./DATA"; + + # perl θ ش. + $perl = "/usr/bin/perl"; + + ׸ file ϰ + + ./split.php + + ϵ Ѵ. ׷ ǹ̾ ڰ ޸ + ð 鼭 DATA directory ҵǾ ϵ ´. α׷ + Խ 9999999 ϴ.(̷л...) + + 3-3. Data ȯϱ + + * + Ʒ table name ؼ ؾ Ѵ. ũƮ Ư + table name ̸ DB 縦 ϸ + table name ϰ Ǿ ֱ ̴. ٽѹ ŵ ϱ ٶ + . + + crazy2jsboard.php ⸦ ̿Ͽ phpθ + ش. ̴ split.php ϴ. ׸ ־ش. + + $table = ""; -> Խ ̸ ־ش. + (ģ Խǿ db̸ ൵ ) + $dbuser = ""; -> JSBoard db user ش. + (JSBoard config/global.ph ) + $dbpass = ""; -> JSBoard db user password + $dbaddr = ""; -> Server ġǾ ִ DBּҸ ش. + JSBoard Source ִ DB ġǾ ִ + 쿡 + netstat -an | grep mysql + Ͽ mysql socket fileġ + ִ. socket file ξտ : ٿ dbּ + Ҽ ִ. + ) $dbaddr = ":/var/lib/mysql/mysql.sock"; + $dbname = ""; -> JSBoard mysql database̸ + + + ./crazy2jsboard.php ָ ȴ. + + +4. + + α׷ Ǵ Ϸδ Ѵ. ǰ +JSBoard Open Project(http://jsboard.kldp.org) ؼ ֱ ٶ. + +5. ۱ + + Ʈ GPL license . (http://www.gnu.org/copyleft/gpl.html ) + ҽƮ Կ ־ å ϱ +ٶ. diff --git a/utility/Cwb2JSB-0.2/cwb2jsb.php b/utility/Cwb2JSB-0.2/cwb2jsb.php new file mode 100755 index 00000000..347d45a4 --- /dev/null +++ b/utility/Cwb2JSB-0.2/cwb2jsb.php @@ -0,0 +1,186 @@ +#!/usr/bin/php4 -q + +# This Program follows GPL License. + +$table = ""; +$dbuser = ""; +$dbpass = ""; +$dbaddr = ""; +$dbname = ""; + +$dirs = "Data"; + +$con = mysql_connect($dbaddr,$dbuser,$dbpass); +mysql_select_db($dbname,$con); + +# table ̸ +$sql = "DROP TABLE $table"; +$result = mysql_query($sql,$con); + +$sql = "CREATE TABLE $table ( + no int(6) DEFAULT '0' 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, + passwd varchar(13), + 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, + moder int(1) DEFAULT '0' NOT NULL, + bofile varchar(100), + bcfile varchar(100), + bfsize int(4), + convno int(6) DEFAULT '0' NOT NULL, + KEY no (no), + KEY num (num), + KEY idx (idx), + KEY reno (reno), + KEY date (date), + KEY reto (reto), + PRIMARY KEY (no))"; + +$create_table = mysql_query($sql,$con); + +$p = opendir($dirs); +while($i = readdir($p)) { + if(eregi("^[0-9]+\.txt",$i)) { + $n = eregi_replace("(^[0-9]+)\.txt","\\1",$i); + $files[] = $i; + } +} +closedir($p); + +$fno = sizeof($files); +sort($files); + +$passwd = crypt("1423"); +$moder = 0; +$reyn = 0; + +for($i=0;$i<$fno;$i++) { + + $fn = "$dirs/$files[$i]"; + $fsize = filesize($fn); + $f_no = eregi_replace("^1[0]*([0-9]+)\.txt","\\1",$files[$i]); + $p = fopen($fn,"r"); + + $convno = $f_no; + + while(!feof($p)) { + $fc = fgets($p,$fsize); + + # Date + if(eregi("$f_no\.Date",$fc)) { + $date = trim(eregi_replace("$f_no\.Date=","",$fc)); + $y = substr($date,0,4); + $m = substr($date,4,2); + $d = substr($date,6,2); + $h = substr($date,8,2); + $mm= substr($date,10,2); + $s = substr($date,12,2); + + $date = mktime($h,$mm,$s,$m,$d,$y); + } + + # host + if(eregi("$f_no\.Domain=",$fc)) { + $host = trim(eregi_replace("$f_no\.Domain=","",$fc)); + } + + # Name + if(eregi("$f_no\.Name=",$fc)) { + $name = trim(eregi_replace("$f_no\.Name=","",$fc)); + } + + # email + if(eregi("$f_no\.Email=",$fc)) { + $email = trim(eregi_replace("$f_no\.Email=","",$fc)); + } + + # access + if(eregi("$f_no\.Access=",$fc)) { + $refer = trim(eregi_replace("$f_no\.Access=","",$fc)); + } + + # html + if(eregi("$f_no\.ContentType=",$fc)) { + $htmls = trim(eregi_replace("$f_no\.ContentType=","",$fc)); + if($htmls == "text/html") $html = 1; + else $html = 0; + } + + # title + if(eregi("$f_no\.Subject=",$fc)) { + $title = trim(eregi_replace("$f_no\.Subject=","",$fc)); + } + + # context + if(eregi("$f_no\.Text=",$fc)) { + $context = eregi_replace("$f_no\.Text=","",$fc); + $context = eregi_replace("
    ","\n",$context); + $context = eregi_replace("

    ","\n\n",$context); + $context = eregi_replace("%0a","\n",$context); + $context = chop(wordwrap($context,"80")); + } + + # thread + if(eregi("$f_no\.Thread=",$fc)) { + $thread = trim(eregi_replace("$f_no\.Thread=","",$fc)); + if($thread > 0) { + $sql = "UPDATE $table set reyn=1 WHERE convno=$thread"; + $result = mysql_query($sql,$con); + + $csql = "SELECT no,reto,reno,rede,idx from $table WHERE convno=$thread"; + $result = mysql_query($csql,$con); + $row = mysql_fetch_array($result); + $reno = $row[no]; + $reto = !$row[rede] ? $row[no] : $row[reto]; + $rede = $row[rede]+1; + + $sql = "UPDATE $table SET idx = idx + 1 WHERE (idx + 0) >= $row[idx]"; + $result = mysql_query($sql,$con); + $idx = $row[idx]; + $num_check = 1; + } else { + $reno = 0; + $reto = 0; + $rede = 0; + $idx = 0; + } + } + } + + $sql = "SELECT MAX(num) AS num, MAX(idx) AS idx from $table"; + $result = mysql_query($sql,$con); + $max = mysql_fetch_array($result); + + if($num_check) $num = 0; + else $num = $max[num]+1; + + $idx = $idx ? $idx : $max[idx] + 1; + + echo "$i : $f_no : $convno\n"; + + + $sql = "INSERT INTO $table VALUES('',$num,$idx,$date,'$host','$name','$passwd', + '$email','$url','$title','$context','$refer','$reyn','$reno','$rede', + '$reto','$html','$moder','','','','$convno')"; + $result = mysql_query($sql,$con); + + $num_check = 0; +} + +$sql = "ALTER TABLE $table DROP convno"; +$result = mysql_query($sql,$con); +mysql_close($con); +?> diff --git a/utility/Cwb2JSB-0.2/split.php b/utility/Cwb2JSB-0.2/split.php new file mode 100755 index 00000000..6aa898f2 --- /dev/null +++ b/utility/Cwb2JSB-0.2/split.php @@ -0,0 +1,146 @@ +#!/usr/bin/php4 -q +> $trans[path]/$filename"); + unlink("temp.trans"); + echo "$no : $f[e] : $filename\n"; + } + } + + dba_close($dbm); +} elseif($trans[type] == "ascii") { + # ascii file ^M %0a ġȯ + exec("$perl -p -i -e 's/\\r\\n/%0a/' $trans[file]"); + $p = fopen($trans[file],"rb"); + while(!feof($p)) { + $text = fgets($p,30000); + if(eregi("^[0-9]",$text)) { + $context = str_replace("\\'","'",$text); + $context = str_replace("'","\\'",$text); + $context = str_replace("\\\"","\"",$context); + $context = str_replace("\"","\\\"",$context); + $context = chop($context); + $c_no = eregi_replace("(^[0-9]+)\.[a-z]{1}(.*)","\\1",$text); + $filename = file_name($c_no); + + echo "$c_no :"; + + $wc=fopen("temp.trans","wb"); + fwrite($wc,$context."\n"); + fclose($wc); + + if(!file_exists("$trans[path]/$filename")) { + exec("touch $trans[path]/$filename"); + echo " 0 :"; + } else echo " 1 :"; + exec("cat temp.trans >> $trans[path]/$filename"); + echo " $filename\n"; + unset($text); + unset($context); + + unlink("temp.trans"); + } else unset($text); + + } + fclose($p); +} else echo " type ֽʽÿ"; + +$c_time[] = microtime(); +$time = get_microtime($c_time[0], $c_time[1]); + +echo "-------------------------------------------\n". + " ҿð $time sec\n". + "-------------------------------------------\n"; + +?> 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/global.php.orig b/utils/sample/admin/global.php.orig deleted file mode 100644 index 4e948551..00000000 --- a/utils/sample/admin/global.php.orig +++ /dev/null @@ -1,121 +0,0 @@ - everyone -# 0 -> admin only -$board['regist'] = 0; - -############################################################################## -# Theme Configuration -############################################################################## -# Theme Name -$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 - - -############################################################################## -# 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; - - -############################################################################## -# Captcha configuration -# if value of $board['captcha'] is 0, don't use captcha -# value is captcha db path -############################################################################## -$board['captcha'] = ''; - - -############################################################################## -# Mail Configuration -############################################################################## -$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'; - - -############################################################################## -# Preview article 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'; -?> diff --git a/utils/sample/admin/intermap.txt b/utils/sample/admin/intermap.txt deleted file mode 100644 index 4964b6b8..00000000 --- a/utils/sample/admin/intermap.txt +++ /dev/null @@ -1,43 +0,0 @@ -# $Id: intermap.txt,v 1.1 2008-12-22 17:20:34 oops Exp $ -# see http://usemod.com/intermap.txt -ISBN http://www.amazon.com/exec/obidos/ISBN= -Wiki http://c2.com/cgi/wiki? -MeatBall http://www.usemod.com/cgi-bin/mb.pl? -MoinMoin http://purl.net/wiki/moin/ -UseMod http://www.usemod.com/cgi-bin/wiki.pl? -TWiki http://twiki.org/cgi-bin/view/ -WikiPedia http://www.wikipedia.org/wiki/ -ZWiki http://www.zwiki.org/ -FoxWiki http://fox.wikis.com/wc.dll?Wiki~ -AndStuff http://andstuff.org/wiki.php? -Unreal http://wiki.beyondunreal.com/wiki/ - -# MetaWikis -Google http://www.google.com/search?q= -GoogleGroups http://groups.google.com/groups?q= -KnowHow http://www2.iro.umontreal.ca/~paquetse/cgi-bin/wiki.cgi? -Bzla http://bugzilla.gnome.org/show_bug.cgi?id= -BugZilla http://bugzilla.gnome.org/show_bug.cgi?id= -Foldoc http://www.foldoc.org/foldoc/foldoc.cgi? -JargonFile http://sunir.org/apps/meta.pl?wiki=JargonFile&redirect= -Acronym http://www.acronymfinder.com/af-query.asp?String=exact&Acronym= -Advogato http://www.advogato.org/ -SourceForge http://www.sourceforge.net/ - -# Korean Wikis -NoSmoke http://no-smok.net/nsmk/ -GnomeKorea http://www.gnome.or.kr/wiki/ -KLE http://kle.kldp.org/main/ -GentooKorea http://gentoo.or.kr/wiki/moin.cgi/ -DebianKorea http://debianusers.org/DebianWiki/ -BSDKorea http://wiki.bsdforum.or.kr/wiki.php/ -KDEKorea http://wiki.kde.or.kr/wiki/ -Freefeel http://freefeel.org/wiki/ -SFReaders http://www.sfreaders.org/moin.cgi/ -Jangnan http://jangnan.st/wiki/ -Xper http://xper.org/wiki/xp/ -PyKug http://www.python.or.kr/pykug/ -KTUG http://faq.ktug.or.kr/mywiki/ -MoniWiki http://moniwiki.sf.net/wiki.php/ -KLDPWiki http://wiki.kldp.org/wiki/ http://www.ktug.or.kr/jsboard/images/interwiki/kldpwiki-16.png 16x16 -KLDP http://wiki.kldp.org/wiki/ 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..f9f6547f 100644 --- a/whois.php +++ b/whois.php @@ -1,18 +1,6 @@ -\n" . + echo "\n"; + "\n"; exit; } if (!trim($table) || !trim($host)) { - echo "\n"; exit; } -if ( ! @file_exists("config/global.php") ) { - echo "\n"; -} else { include_once "config/global.php"; } - -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"; } - -putenv ("JSLANG={$_code}"); -include "language/lang.php"; - -$ohost= $host; -$host = gethostbyname ($host); +include "config/global.ph"; +include "include/lang.ph"; ?> - - - -<? echo $host ?> WHOIS Information - - + + + + +WHOIS + + - -
     
    ";
    +
     $server = "whois.krnic.net";
     $port   = "43";
     
    @@ -72,13 +55,12 @@
       fputs($fp,"$host\n");
     
       while(!feof($fp)) {
    -      $list = fgets ($fp, 1024);
    -      //if($count > 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 = eregi_replace("((Phone|ȭ ȣ).*:)(.*)", "\\1\\3", $list);
    +        $list = eregi_replace("((IP Address|IP ּ).*:)(.*)", "\\1\\3", $list);
    +        $list = eregi_replace("((Network Name|Ʈũ ̸).*:)(.*)", "\\1\\3", $list);
    +        echo "$list";
           }
           $count++;
       }
    @@ -86,7 +68,7 @@
     } else echo "$errno $errstr whois.krnic.net ῡ  ߽ϴ.";
     ?>
     
    -
    +
    - - + + diff --git a/write.php b/write.php index 4a85211a..a1e23074 100644 --- a/write.php +++ b/write.php @@ -1,76 +1,174 @@ - + + +
    + + + + + + \n"; + +if($view[email] == "yes") { + echo "\n" . + "\n" . + "\n" . + "\n"; +} -# Browser text browser ϶ multim form -if($noup == 1) $board['formtype'] = ""; -else $board['formtype'] = " enctype=\"multipart/form-data\""; +if($view[url] == "yes") { + echo "\n" . + "\n" . + "\n" . + "\n"; +} -$print['passform'] = "\n". - "\n"; +if(!$pcheck && !$adminsession || $enable[write]) { + echo "\n". + " \n". + " \n". + " \n"; +} -$pre_regist['rname'] = !$pre_regist['rname'] ? "" : "\n"; +echo " + + + + "; + +if ($upload[yesno] == "yes" && $cupload[yesno] == "yes" && $agent[br] != "LYNX") { + echo "\n". + "\n" . + ""; +} else if ($upload[yesno] == "no" && $cupload[yesno] == "yes") { + echo "\n". + "\n" . + ""; +} -if(!$nodisable) { - $print['passform'] .= "". - "{$pre_regist['rname']}". - "\n". - "\n\n"; -} elseif($_SESSION[$jsboard]['pos'] == 1) { - $print['passform'] .= "{$pre_regist['rname']}\n"; +echo " + + + "; + +if ($agent[br] == "MSIE" || $agent[br] == "MOZL6") { + $orig_option = " onClick=fresize(0)"; + echo " + + + "; +} -if($board['rnname'] && preg_match("/^(2|3|5|7)/",$board['mode']) && $_SESSION[$jsboard]['pos'] != 1) - $pre_regist['name'] = $_SESSION[$jsboard]['name'] ? $_SESSION[$jsboard]['name'] : $pre_regist['name']; +echo " + + + + + +
    $langs[w_name]$langs[w_name_m]
    $langs[w_mail]$langs[w_mail_m]
    $langs[ln_url]$langs[w_url_m]
    $langs[w_pass]$langs[w_passwd_m]
    HTML + + $langs[u_html] + $langs[un_html] + + $langs[w_html_m]
    $langs[file]\n" . + "". + "
    $langs[file]$langs[upload]
    $langs[titl]
    Textarea Size Operation + +\n"; -$pages = $page ? "&page=$page" : ""; + # ڵ忡 ư text ó Ұ ̹ ó + form_size_button($langs[code]); + + echo "
    + +
    + + $wrap[ment] + +
    + +
    + + + + + +
    + + + +   +   + + +
    + +
    + + +\n
    + +\n"; + +if ($board[img] == "yes") { + if ($color[theme]) $themes[img] = get_theme_img($table); + else $themes[img] = "images"; + echo ""; +} else { + echo " + + + + + \n"; +} -$print['preview_script'] = << - var tarea_width = '{$board['width']}'; - var tarea_cols = '{$size['text']}'; - -EOF; +echo "\n
    " . + "\"$langs[cmd_list]\"" . + "\"$langs[cmd_priv]\"" . + "\"|\"$langs[cmd_list]\"|\"$langs[cmd_priv]\"|\"
    \n
    \n
    \n"; -meta_char_check($print['theme'], 1, 1); -$bodyType = 'write'; -require_once 'captcha/captchacommon.php'; -require_once "theme/{$print['theme']}/index.template"; +include "html/tail.ph"; ?>