From e0f23f480b563215bdc293ac3eeb5da69ee979d6 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Mon, 14 Feb 2011 21:21:19 -0600 Subject: [PATCH] new file: ChangeLog new file: config.php new file: config.xxxx new file: data/css/burichan.css new file: data/css/futaba.css new file: data/css/gurochan.css new file: data/css/kusaba.css new file: data/css/lightbox.css new file: data/css/lightbox/blank.gif new file: data/css/lightbox/overlay.gif new file: data/css/lightbox/overlay.png new file: data/css/main/style.css new file: data/css/null.css new file: data/css/photon.css new file: data/css/yotsuba.css new file: data/css/yotsubablue.css new file: data/css/yotsubanome.css new file: data/icon/ba.gif new file: data/icon/boot.gif new file: data/icon/closed.gif new file: data/icon/fade-blue.png new file: data/icon/fade.png new file: data/icon/favicon.ico new file: data/icon/favicon.png new file: data/icon/filedeleted.gif new file: data/icon/futaba.gif new file: data/icon/gchan_banner.gif new file: data/icon/kagami.gif new file: data/icon/kent_banner.gif new file: data/icon/letsphp.gif new file: data/icon/moeren.jpg new file: data/icon/nothumb.gif new file: data/icon/shiokara.gif new file: data/icon/sticky.gif new file: data/icon/yotsubanome_banner.png new file: data/js/iedivfix.js new file: data/js/script.js new file: data/stylesheets.csv_daty new file: data/tplt/inc_yo-festival.tplt new file: data/tplt/inc_yo-uploader.tplt new file: data/tplt/inc_yo.tplt new file: futaba2pio.php new file: futaba2pio.phps new file: info new file: lib/fileio/fileio.ftp.php new file: lib/fileio/fileio.imageshack.php new file: lib/fileio/fileio.normal.php new file: lib/fileio/fileio.satellite.php new file: lib/fileio/ifs.php new file: lib/lang/de_DE.php new file: lib/lang/en_US.php new file: lib/lang/ja_JP.php new file: lib/lang/strings_en.phps new file: lib/lang/strings_jp.phps new file: lib/lang/zh_TW.php new file: lib/lib_common.php new file: lib/lib_fileio.php new file: lib/lib_language.php new file: lib/lib_pio.cond.php new file: lib/lib_pio.php new file: lib/lib_pms.php new file: lib/lib_pte.php new file: lib/pio/pio.log.php new file: lib/pio/pio.logflockp.php new file: lib/pio/pio.mysql.php new file: lib/pio/pio.pgsql.php new file: lib/pio/pio.sqlite.php new file: lib/pio/pio.sqlite3.php new file: lib/pms.php new file: license new file: logo.gif new file: temp/1297428544668.gif new file: temp/1297428605149.gif new file: temp/1297428743387.gif new file: temp/1297429327524.gif new file: x.php new file: x.phps new file: yotsubanome.php --- .gitignore | 47 + ChangeLog | 467 +++++++++ config.php | 249 +++++ config.xxxx | 563 +++++++++++ data/css/burichan.css | 168 +++ data/css/futaba.css | 143 +++ data/css/gurochan.css | 119 +++ data/css/kusaba.css | 232 +++++ data/css/lightbox.css | 29 + data/css/lightbox/blank.gif | Bin 0 -> 166 bytes data/css/lightbox/overlay.gif | Bin 0 -> 401 bytes data/css/lightbox/overlay.png | Bin 0 -> 504 bytes data/css/main/mainstyle.css | 61 ++ data/css/main/style.css | 57 ++ data/css/null.css | 0 data/css/photon.css | 175 ++++ data/css/yotsuba.css | 324 ++++++ data/css/yotsubablue.css | 320 ++++++ data/css/yotsubanome.css | 43 + data/icon/ba.gif | Bin 0 -> 856 bytes data/icon/boot.gif | Bin 0 -> 212 bytes data/icon/closed.gif | Bin 0 -> 423 bytes data/icon/fade-blue.png | Bin 0 -> 11574 bytes data/icon/fade.png | Bin 0 -> 1519 bytes data/icon/favicon.ico | Bin 0 -> 318 bytes data/icon/favicon.png | Bin 0 -> 239 bytes data/icon/filedeleted.gif | Bin 0 -> 321 bytes data/icon/futaba.gif | Bin 0 -> 1820 bytes data/icon/gchan_banner.gif | Bin 0 -> 2523 bytes data/icon/kagami.gif | Bin 0 -> 1998 bytes data/icon/kent_banner.gif | Bin 0 -> 2992 bytes data/icon/letsphp.gif | Bin 0 -> 911 bytes data/icon/moeren.jpg | Bin 0 -> 2690 bytes data/icon/nothumb.gif | Bin 0 -> 3036 bytes data/icon/shiokara.gif | Bin 0 -> 2363 bytes data/icon/sticky.gif | Bin 0 -> 961 bytes data/icon/yotsubanome_banner.png | Bin 0 -> 817 bytes data/js/iedivfix.js | 10 + data/js/script.js | 292 ++++++ data/stylesheets.csv_daty | 9 + data/tplt/inc_yo-festival.tplt | 199 ++++ data/tplt/inc_yo-uploader.tplt | 190 ++++ data/tplt/inc_yo.tplt | 166 +++ futaba2pio.php | 123 +++ futaba2pio.phps | 123 +++ info | 26 + lib/fileio/fileio.ftp.php | 106 ++ lib/fileio/fileio.imageshack.php | 151 +++ lib/fileio/fileio.normal.php | 51 + lib/fileio/fileio.satellite.php | 182 ++++ lib/fileio/ifs.php | 117 +++ lib/lang/de_DE.php | 240 +++++ lib/lang/en_US.php | 240 +++++ lib/lang/ja_JP.php | 241 +++++ lib/lang/strings_en.phps | 359 +++++++ lib/lang/strings_jp.phps | 358 +++++++ lib/lang/zh_TW.php | 241 +++++ lib/lib_common.php | 419 ++++++++ lib/lib_fileio.php | 33 + lib/lib_language.php | 35 + lib/lib_pio.cond.php | 75 ++ lib/lib_pio.php | 140 +++ lib/lib_pms.php | 19 + lib/lib_pte.php | 86 ++ lib/pio/pio.log.php | 539 ++++++++++ lib/pio/pio.logflockp.php | 572 +++++++++++ lib/pio/pio.mysql.php | 494 +++++++++ lib/pio/pio.pgsql.php | 475 +++++++++ lib/pio/pio.sqlite.php | 440 ++++++++ lib/pio/pio.sqlite3.php | 420 ++++++++ lib/pms.php | 116 +++ license | 147 +++ logo.gif | Bin 0 -> 101651 bytes temp/1297428544668.gif | Bin 0 -> 220872 bytes temp/1297428605149.gif | Bin 0 -> 220872 bytes temp/1297428743387.gif | Bin 0 -> 220872 bytes temp/1297429327524.gif | Bin 0 -> 220872 bytes x.php | 67 ++ x.phps | 67 ++ yotsubanome.php | 1630 ++++++++++++++++++++++++++++++ 80 files changed, 12195 insertions(+) create mode 100644 .gitignore create mode 100755 ChangeLog create mode 100755 config.php create mode 100755 config.xxxx create mode 100755 data/css/burichan.css create mode 100755 data/css/futaba.css create mode 100755 data/css/gurochan.css create mode 100755 data/css/kusaba.css create mode 100755 data/css/lightbox.css create mode 100755 data/css/lightbox/blank.gif create mode 100755 data/css/lightbox/overlay.gif create mode 100755 data/css/lightbox/overlay.png create mode 100755 data/css/main/mainstyle.css create mode 100755 data/css/main/style.css create mode 100644 data/css/null.css create mode 100755 data/css/photon.css create mode 100755 data/css/yotsuba.css create mode 100755 data/css/yotsubablue.css create mode 100755 data/css/yotsubanome.css create mode 100755 data/icon/ba.gif create mode 100755 data/icon/boot.gif create mode 100755 data/icon/closed.gif create mode 100755 data/icon/fade-blue.png create mode 100755 data/icon/fade.png create mode 100755 data/icon/favicon.ico create mode 100755 data/icon/favicon.png create mode 100755 data/icon/filedeleted.gif create mode 100755 data/icon/futaba.gif create mode 100755 data/icon/gchan_banner.gif create mode 100644 data/icon/kagami.gif create mode 100644 data/icon/kent_banner.gif create mode 100755 data/icon/letsphp.gif create mode 100755 data/icon/moeren.jpg create mode 100755 data/icon/nothumb.gif create mode 100755 data/icon/shiokara.gif create mode 100755 data/icon/sticky.gif create mode 100755 data/icon/yotsubanome_banner.png create mode 100755 data/js/iedivfix.js create mode 100755 data/js/script.js create mode 100644 data/stylesheets.csv_daty create mode 100755 data/tplt/inc_yo-festival.tplt create mode 100755 data/tplt/inc_yo-uploader.tplt create mode 100755 data/tplt/inc_yo.tplt create mode 100755 futaba2pio.php create mode 100644 futaba2pio.phps create mode 100755 info create mode 100755 lib/fileio/fileio.ftp.php create mode 100755 lib/fileio/fileio.imageshack.php create mode 100755 lib/fileio/fileio.normal.php create mode 100755 lib/fileio/fileio.satellite.php create mode 100755 lib/fileio/ifs.php create mode 100755 lib/lang/de_DE.php create mode 100755 lib/lang/en_US.php create mode 100755 lib/lang/ja_JP.php create mode 100755 lib/lang/strings_en.phps create mode 100755 lib/lang/strings_jp.phps create mode 100755 lib/lang/zh_TW.php create mode 100755 lib/lib_common.php create mode 100755 lib/lib_fileio.php create mode 100755 lib/lib_language.php create mode 100755 lib/lib_pio.cond.php create mode 100755 lib/lib_pio.php create mode 100755 lib/lib_pms.php create mode 100755 lib/lib_pte.php create mode 100755 lib/pio/pio.log.php create mode 100755 lib/pio/pio.logflockp.php create mode 100755 lib/pio/pio.mysql.php create mode 100755 lib/pio/pio.pgsql.php create mode 100755 lib/pio/pio.sqlite.php create mode 100755 lib/pio/pio.sqlite3.php create mode 100755 lib/pms.php create mode 100755 license create mode 100755 logo.gif create mode 100644 temp/1297428544668.gif create mode 100644 temp/1297428605149.gif create mode 100644 temp/1297428743387.gif create mode 100644 temp/1297429327524.gif create mode 100644 x.php create mode 100644 x.phps create mode 100755 yotsubanome.php diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7a29ba2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,47 @@ +# Lines starting with '#' are considered comments. +# Ignore (generated) html files, +*.html +*.htm +*.xsl +1*.* # images uploaded +*.*.save +*.*~ +#security reasons +.audit +*salt*.* +# +*-*_files/ +1279257582007.jpg +1279257582007s.jpg +bg_thumb.png +magmachan_bg.png +index.php +src/ +thumb/ +arch/ +old/ +#beicon_files/ +cache/ +module/*.* +module/*/ +module/* +*.css +*.csv_daty_old +*cache.daty +*.csv_loog +!yotsuba.css +!yotsubablue.css +!kusaba.css +!yotsubanome.css +!gurochan.css +!futaba.css +!photon.css +!burichan.css +!null.css +!mainstyle.css +!style.css +!lightbox.css +# except foo.html which is maintained by hand. +#!foo.html +# Ignore objects and archives. +*.[oa] diff --git a/ChangeLog b/ChangeLog new file mode 100755 index 0000000..aa293e2 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,467 @@ +Pixmicat!-PIO 修改紀錄 +---------------------- +2010/09/14 +-[PMS] 修正 AdminFunction 掛載點第二個參數 $param 沒有傳址發生錯誤的問題 + +2010/08/17 +-[PMS] 修正 Bug +-[PMS] onlyLoad 恢復單載入,直到呼叫 callCHP 才會載入全部模組 + +2010/08/16 +-[PMS] 新增 addCHP, callCHP 以實現模組間互相呼叫的方法 +-[PMS] onlyLoad 會載入全部模組方便 ModulePage 其他模組的相互作用 + +2010/05/21 : 5th.Release (v100521) +-正式釋出版 + +2010/04/03 +-[mainscript] 使用 Closure Complier 取代先前使用之 Packer + +2010/02/05 +-[pixmicat] 修正討論串分頁 ThreadOrder 不正常的問題 + +2010/01/28 +-[PTE] 標籤內容中的標籤無效化 (01/26 的再修正) + +2010/01/26 +-[pixmicat] 刪除回應排版 $arrLabels 多餘的 {$QUOTEBTN} +-[PTE] 修正內文輸入 PTE 取代標籤會誤變換的情況 (ex: {$NAME_TEXT} => 名稱:) + +2010/01/13 +-[pixmicat] 修正autoHookAdminFunction參數不是ref的問題 *PHP 5.3相容修正 +-[Templates] 修正 IE8 標準成像模式下無法複製回應文字的問題 +-更新版權日期 + +2009/12/15 +-[PIO] fetchPosts 新增 $fields 參數以降低total_size()的記憶體使用量 (log/logflockp只修改prototype) + +2009/07/01 +-[PIO] 靜態呼叫方法定義為靜態 *PHP 5.3相容修正 +-[pixmicat.php] ereg 系列函式以 preg 系列替代 *PHP 5.3相容修正 +-[PIO.sqlite3] 修正 tim 圖片檔名欄位超過 int 整數最大上限造成檔名溢位儲存無法對應的問題 + +//--yotsubanome started here anything above this line is not in yotsubanome yet--// + +2009/05/21 : 4th.Anniversary (v090521) +-正式釋出版 + +2009/05/16 +-[pixmicat] 新增依特定類別標籤篩選觀看文章時,能根據No.連結找到文章的完整討論串位置 +-[PMS] PostOnDeletion 掛載點新增 $cond 參數判斷被呼叫時機 (frontend, backend, recycle) + +2009/04/25 +-[pixmicat] 修正發文時重複引用同一文章多次後造成的HTML重複問題 + +2009/04/02 +-[lib_common] 修改 getREMOTE_ADDR() 對 HTTP_X_FORWARDED_FOR 的使用問題 + +2009/03/21 +-[inc_pixmicat] 因應 IE8 推出,修改針對舊版 IE 的 Bugfix 判斷條件 + +2009/01/12 +-[pixmicat] 修改分頁運算方法 +-[inc_pixmicat] 支援 AutoPagerize 套件換頁定義 (http://userscripts.org/scripts/show/8551) + +2008/11/30 +-[pixmicat] 修改上傳圖檔判斷是否存在的方法 (增加 is_uploaded_file() 偵測法) + +2008/09/20 +-[pixmicat] 修正發文後判斷附加圖檔容量過大開始刪除的敘述 (>= 改成 >) +-[pixmicat] 修改管理區上方的連結列 (LinksAboveBar) 是否登入的判斷參數 +-[PIO] 新增 remove 系方法的 $posts 參數為空之錯誤處理 +-[pixmicat] 修正後端登入之 Authenticate 掛載點 +-[lib_common] 修正發文框下方說明列,回應模式時附加圖檔尺寸限制沒有正確反映的問題 + +2008/09/10 : 4th.Release.3 (v080910) +-[PMS] 修正 PHP 4 的相容性問題 + +2008/09/03 : 4th.Release.3 (v080903) +-正式釋出版 + +2008/08/07 +-[PIO] 修改 FlagHelper 物件,使其更為方便讓模組修改屬性 + +2008/07/27 +-[pixmicat] 修正當附加圖檔總容量限制功能關閉時,系統資訊顯示的排版錯誤問題 + +2008/07/03 +-[pixmicat] 修正回應文章使用連貼機能時之不當快取,讓後續的連貼機能勾選框保持為勾選狀態的問題 +-[PIO] 0.6 版定案 (SQL Only) + +2008/05/31 +-[pixmicat] 修正刪除文章時 $_POST['func'] 未定義的問題 + +2008/05/19 +-[FileIO] FTP, Satellite 方式參數增加是否要將預覽圖放至遠端的功能 + +2008/04/28 +-[pixmicat] 修正類別標籤受到 magic_quotes_gpc() 開啟的影響 +-[pixmicat] 修正 glob() 在找不到回應快取時,因 PHP 的版本別而產生結果差異的錯誤 +-[PIO.sqlite3] 修正類別標籤搜尋時列出的文章沒有按照編號遞減排序 + +2008/04/17: +-[PTE][pixmicat-festival] 排版跟預設主題一致化。 + +2008/04/07 +-[PIO] PIO 0.6 alpha: 交易模式支援、SQL Injection 防護等 + +2008/03/31 +-[pixmicat] 修正版面更新文章 (remake) 過程中頁面超過索引值造成的錯誤 + +2008/03/26 +-[PMS] autoHookRegistBegin 增加 $isReply 參數 + +2008/03/19 +-[pixmicat] 修正 res=XXX 接受非數字的格式造成的 XSS & SQL Injection 問題 +-[PIO.sqlite3] 預設取消交易模式 + +2008/03/18 +-[pixmicat] 修正直接瀏覽 pixmicat.php 出現動態輸出頁面並提示 page_num 未定義錯誤 +-[pixmicat] 修正前台管理刪除文章時處理文章陣列混入 'func' 造成刪除錯誤 +-[pixmicat] 修正前台管理刪除文章後沒有跳回前台管理頁面的問題 +-[pixmicat] 修正 usrdel() 之 AdminFunction 掛載點時機,delete 也可正常抓取 +-[language] 修改 del_btn 文字 + +2008/03/14 +-[pixmicat] 新增前端管理功能 (以 PHP 動態輸出),支援 AdminList 跟 AdminFunction 掛載點之管理功能 +-[language] 新增 admin_delete, admin_frontendmanage + +2008/03/09 +-[inc_pixmicat-uploader] 更改 uploader-liked theme 的擺放位置 + +2008/03/06 +-[PIO.mysql] 修正 dbMaintanence() + +2008/03/04 +-[PMS][pixmicat] 試驗性新增 AdminFunction 掛載點 +-[PIO] 修正 dbMaintanence('export',true) 出錯問題 +-[pixmicat] valid() 加入其他 dbMaintanence 功能 +-[language] action_opt_* 廢止,改為 action_main_* 並加入其他 dbMaintanence 功能 + +2008/02/28 +-[PMS] 新增取得模組實體函式 getModuleInstance($module) + +2008/02/22 +-[pixmicat][PMS] 新增掛載點 ThreadOrder +-[thumb][GD] GD 支援 RLE4/8 判斷式稍作修改,如果沒壓縮就不必再判斷 + +2008/02/20 +-[thumb][GD] _ImageCreateFromBMP 修正 RLE4/RLE8 可能誤判的問題 +-[pixmicat] 讓 updatelog() 支援單頁生成 .htm 快取 +-[PIO] dbOptimize($doit=false) 廢止,改為 dbMaintanence($action,$doit=false) + +2008/02/19 +-[PMS] 修改模組單載入後手動掛載 ModulePage 掛載點造成多載入啟動、重複載入模組並作用的問題 + +2008/02/11 +-[pixmicat][PTE] 讓 PTE MAIN block 能存取 {$RESTO} +-[inc_pixmicat-uploader] 新增 uploader-liked theme + +2008/02/06, 08 +-[pixmicat][PMS] 新增掛載點 PostOnDeletion, RegistAfterCommit,移除掛載點 UsageExceed + +2008/01/31 +-[thumb][GD] _ImageCreateFromBMP 支援 RLE4/RLE8, 副檔名支援 '.rle' + +2008/01/27 +-[pixmicat][Language] 修正{$FORM_NOTICE}未與ALLOW_UPLOAD_EXT同步問題 + +2008/01/18, 20 +-[pixmicat] 修正當欄位只填 XHTML 非法字元時會被系統清除而沒有任何內容卻也沒填預設值的錯誤 +-[pixmicat] 修正類別標籤字元 htmlentities() 後變成亂碼的問題 +-[config] 部分伺服器不相容$_SERVER['SCRIPT_FILENAME'],修改為常數方式 +-[pixmicat] 部分程式碼位置更動、精簡 + +2008/01/13 +-[pixmicat] 搜尋結果增加連結至原討論串連結 +-[pixmicat] 系統資訊可查看目前使用之文章自動刪除機制名稱 +-[pixmicat] 修正當 STORAGE_MAX 設為 0 之程式非預期錯誤情況 (一般情況此值請設定 > 0) +-[pixmicat] 修正類別標籤可能發生 XSS 的情況 + +2007/12/16 +-[PMS] 修正在未初始化前 hookModuleMethod 的話會造成 autoHookXXXX 沒動作 +-[pixmicat] 修正在不支援緩衝區的情況下修改 XHTML MIME 動作會發生錯誤 +-[PTE][inc_pixmicat-festival] festival theme的post form下需要clear:both + +2007/11/09,18: 4th.Release.2 (v071120) +-[lib_common] 修改 CIDR Notation 分析函式 +-[lib_common] 修改 CleanStr() 刪除 XML 1.1 SE 規範之避免用字 +-[pixmicat] 更改回傳 XHTML 檔頭時機 +-[PIO] 修正 Log 後端 updatePost() 時未處理逗號造成資料移位兼毀損問題 +-[PMS] 修正當載入模組未有掛載 ModulePage 方法仍試圖執行模組頁面造成錯誤 + +2007/10/27: 4th.Release.2 RC4 (b071027) +-[pixmicat] 修正類別標籤顯示頁面呼叫 arrangeThread() 傳入參數不合問題 +-[lib_common][config][pixmicat] 新增 USE_XHTML 選項能夠指定是否回傳 XHTML 檔頭 + +2007/10/19: 4th.Release.2 RC3 (b071019) +-[pixmicat] 修正引用瀏覽系統不斷 array_flip 造成搜尋對應文章失敗的問題 + +2007/10/13,14: 4th.Release.2 RC2 (b071014) +-[PIO] PIO 0.5 正式版 (修正 updatePost() 掉引號造成失敗問題) +-[lib_common] 封鎖設定黑名單支援 CIDR Notation 模式 (ex: 192.168.0.1/16) +-[PMS][pixmicat] 模組單載入功能復活,使用動態偵測決定是否要載入其他模組 + +2007/10/06: 4th.Release.2 RC1 (b071006) +-[PMS] 模組單載入功能取消 (當其他套件未載入可能造成功能上的錯誤) +-[pixmicat] 引用瀏覽系統捨棄array_search()、開放引用首篇,對應修正樣板 +-[pixmicat] 修改樣板 POSTFORM 部分,去除 Ugly hack fix 新增 {$MODE} 修改模式 +-[pixmicat] $mode 取值順序改為 GET, POST + +2007/09/29 +-[config] 去除使用 $_SERVER['PHP_SELF'] (有 XSS 潛在危機) +-[lib_common][FileIO] 修正 fullURL() / _getAbsoluteURL() 使用 $_SERVER['PHP_SELF'] 之 XSS 潛在危機 + +2007/09/21 +-[PIO] PIO 0.5beta: Log 增加要求編號文章是否存在判定 +-[lib_common][pixmicat] 暫實裝 getREMOTE_ADDR() 函式取得使用者 IP (待完成) +-[pixmicat] 提前容量暫存刪除時機,避免因預覽圖生成失敗未運作造成暫時的容量計算錯誤 + +2007/09/16 +-[pixmicat][lib_common] 實裝 Session 後端認證功能 + +2007/08/29,30 +-[pixmicat] 新增支援瀏覽器強制 no-cache (Ctrl + F5) 更新快取功能 +-[pixmicat] 移除筆數限制及使用量顯示 +-[pixmicat] 新增快取隨文章刪除功能 +-[pixmicat] 修正 Gzip 壓縮功能關閉時 $Encoding 變數未定義錯誤 +-[PIO] 新增文章自動刪除機制,可用自行定義好的模式來進行自動刪除判斷 +-[PIO] 移除 delOldPostes() 方法 (被文章自動刪除機制替代) + +2007/08/17,18,20 +-[PIO] 修正 MySQL setPostStatus() 自動更新到 root 欄位的問題 +-[PIO] 新增 FlagHelper 類別,加回 getPostStatus() [會回傳 FlagHelper 物件] +-[pixmicat] 新增回應頁面顯示快取功能降低系統負擔 (因應原按鈕式 POST 換頁無法快取改為連結式) +-[PMS] 修正 autoHookThreadFront/Rear 掛載點生成靜態頁面會重複輸出的錯誤 + +2007/08/07,08 +-[PIO] PIO Structure V3: 加大 status 儲存量 +-[pixmicat][PIO] PIO 0.5alpha: 取消 getPostStatus(),修改 setPostStatus() +-[pixmicat][PIO] PIO 0.5alpha: addPost() 新增 $status 引入 +-[PMS] RegistBeforeCommit 掛載點新增 &$status 引入 +-[lib_common] 修正 GD ImageCreateFormBMP 對 16bit BMP 的支援 + +2007/07/26 +-[pixmicat] $path 取消 global +-[pixmicat] 新增預覽圖生成函式庫物件,可以支援其他圖像處理函式庫 + +2007/07/13 +-[pixmicat] 偵測上傳中斷前先判斷是否有資料長度才作,避免作白工 +-[PMS] autoHookRegistBegin 修改 $upfileInfo 為傳址, 去除 $POST ($_POST 為 superglobal) + +2007/07/09: +-[PMS] 自事前掛載改為動態掛載,並可於模組頁面時只讀取特定模組 + +2007/06/17: 4th.Release (v070617) +-正式釋出版 + +2007/06/15: 4th.Release-dev RC2 (b070615) +-[PMS] 新增 PostForm, UsageExceed 掛載點 + +2007/06/07: 4th.Release-dev RC (b070607) +-[PIO] PIO 0.4 穩定版 + +2007/06/05 +-[config] 刪除 CAPTCHA 預留設定 (不考慮內建) + +2007/05/27 +-[pixmicat][PMS] 新增 RegistBegin, RegistBeforeCommit 掛載點 +-[pixmicat] 修正模組資訊頁面的排版問題 +-[PTE] 強化並取代原內建輸出 + +2007/05/13 +-[mainscript] 改寫增加效率,以 /packer/ 壓縮得到更小檔案 + - 新增 Preset() Hook 機能,能在頁面載入完執行特定掛載函式 + - replace_sakura() 改寫,增加效率 +-[iedivfix] 改寫,使用 Hook 機能提前執行時機 +-[lib_common] 把 mainscript.js 和 iedivfix.js 順序對調,防止執行錯誤 + +2007/05/04, 05, 06 +-[pixmicat] 修正名稱輸入特殊字元轉成 Unicode 參照碼後被視為 Trip 轉換留下 & 造成 XML 解析錯誤的問題 (儲存/顯示雙重檢查) +-[pixmicat] 修正搜尋文章結果印出錯誤的問題 (Since rev.363) +-[pixmicat] 修正週五 (Friday) 字串顯示錯誤的問題 + +2007/04/30 +-[PMS] 新增 AdminList 掛載點功能 + +2007/04/25 +-將函式庫搬移至 /lib 目錄 + +2007/04/15 +-[PMS] PMS 更新 (與 Pixmicat!2 共用相同的函式庫),並廢止PMS::getModulePageURL()方法 + +2007/03/31 +-[pixmicat] 修改 Trip, Cap 生成函式 (ereg 在 PHP6 即將廢止,以 PCRE 函式取代) +-[pixmicat] 修正 "管理"、"刪除" 在使用 Admin Cap 後仍然不能作為名稱的問題 +-[PIO] PIO 0.4gamma (與 Pixmicat!2 共用相同的函式庫) +-[FileIO] FileIO 更新 (與 Pixmicat!2 共用相同的函式庫) + +2007/03/12 +01.[pixmicat] 修正翻譯索引錯誤 useage => usage + +2007/02/24 +01.[pixmicat][lib_common] 修正部份變數未定義錯誤 + +2007/02/21 +01.[PIO] 修正 SQLite3 isThread() 總是回傳 true 的錯誤 + +2007/02/14 +01.[PIO] PIO 0.4 beta,修改 fetchThreadList 方法 + +2007/02/10, 11 +01.[PIO] 有關時區部份改以 UTC 時間手動位移避免混亂 + +2007/02/07 +01.[PTE] 預設樣板更新 (inc_pixmicat.tpl) + +2007/02/01,02 +01.[lib_common] str_cut() 補上來源 +02.[upgradePIO] mysql2pio.php 修正,新增欄位次序修正 (舊版無影響) +03.[PIO] PIO 0.4 alpha,新增 dbImport / dbExport 方法 + +2007/01/31 +01.[lib_common][config] 刪除 RE_COL,改以 CSS 樣式表設定 + +2007/01/30 +01.[FileIO] ImageShack 後端因應 mod_archiver 修改 getImageURL 方法 +02.[PMS] 新增 PMS::getModulePageURL(),可讓模組取得獨立頁面網址 +03.[PIO] Log postCount() 修正為回傳本篇加回應的數目,非先前僅有回應數 +04.[pixmicat] 修正 MAX_RES 不推文判斷,回應超過這個數字才不推 (先前是等於就不推了) + +2007/01/28,29 +01.[PMS] ThreadPost, ThreadReply 掛載點新增是否位於回應模式的判斷參數 +02.[PMS][lib_common] 新增 PostInfo 掛載點 + +2007/01/27 +01.[PIO] SQLite3 類別標籤搜尋 SQL 語法更正 +02.[pixmicat][PMS] 新增 Foot / ThreadPost, ThreadReply 掛載點,可搭配 PTE 動態新增插入標籤 + +2007/01/26 +01.[PMS] 增設 Toplink Hook Point, 並完成 mod_catalog +02.[config] 更改模組載入形式,較可以自由切換載入模組 (註解起來即可) + +2007/01/25 +01.[PMS][config] 試驗性模組系統雛型架上,並完成 mod_rss 改寫 +02.[pixmicat][lib_common] fullURL(), anti_sakura() 移至 lib_common.php + +2007/01/24 +01.[lib_common] 廢除 PROXY_CHECK 檢查功能 +02.[config][pixmicat] 強化 IP 封鎖為綜合性 IP/Hostname/DNSBL 封鎖機能,支援 RegExp/Wildcard 模式 + +2007/01/05:3rd.Release (v070106) +01.[lib_common] 減少 str_cut() 的 ord() 呼叫次數 +02.[lib_common] CheckSupportGZip() 判斷式修改 +03.[FileIO] 修改 ImageShack 後端當上傳圖檔小於 200x200 時無法顯示縮圖的問題 + +2006/12/28 +01.[pixmicat] 新增回應模式分頁 [ALL] 全部顯示功能 (顯示條件:分頁數超過一頁) +02.[lib_common] 修正 2006/10/27 01. 項失效的問題 (Cookie 無法正確填入欄位) +03.[PIO] SQL 讀寫新增 _error_handler() 錯誤攔截機制 + +2006/12/23 +01.[FileIO] 修改normal模式使用getImageURL()回傳相對位置造成mod_rss生成RSS不合語法的問題 +02.[FileIO] 減少getImageLocalURL()每次都要取目前伺服器絕對位置造成的CPU浪費 + +2006/12/22 +01.[lib_common][pixmicat] Publicβ 開始 +02.[config] 修改部分預設設定 + +2006/12/19 +01.[PIO] 修正 PIO PgSQL, SQLite 儲存密碼欄位時變數名稱打錯的問題 + +2006/12/16 +01.[config] 新增 PIO 及 FileIO 參考設定,移除 *_URL_PREFIX 設定 (目前取消) +02.[PIO] 新增 searchCategory() 輸出順序依編號由大排到小 + +2006/12/12 +01.[pixmicat] 修改 Category 印出時使用 urlencode 以確保各瀏覽器相容性 +02.[FileIO] 修改 FileIO IndexFS 使其在需要時才讀取索引以節省 CPU + +2006/12/11 +01.[PIOlog] 修正當 LUT 快取不見時無法重新生成造成版面無法復原問題 +02.[PTE] 預設樣版新增類別標籤欄位 (供修改製作參考) + +2006/12/10 +01.[PTE][lib_common] 改回原本樣式,原獨立樣式表方式廢棄 (見2006/09/22,23) +02.[pixmicat] 新增搜尋類別標籤的重新快取功能,以免 Session 快取過久無法顯示最新文章 + +2006/12/09 +01.[FileIO] Satellite PHP & Perl CGI 完成 +02.[FileIO] FileIO Index File System 獨立,FileIO 完成 + +2006/12/07 +01.[FileIO] FileIO Satellite 後端完成,衛星 PHP 亦完成 +02.[FileIO] FileIO ImageShack 大圖連結 URL 更改,預設連至顯示頁面 + +2006/12/06 +01.[FileIO] FileIO ImageShack 實裝註冊金鑰認證、要求刪圖功能及取消預覽圖資訊列 + +2006/12/05 +01.[FileIO] FileIO 改用建立物件式,為此所有操作到 FileIO 敘述全部更改 +02.[FileIO] FileIO FTP 後端重寫完成 +03.[config] FileIO 參數規格修改,改以傳入陣列方式供後端自行分析使用 +04.字詞修正 CATALOG -> CATEGORY +05.[FileIO] FileIO ImageShack 後端完成 + +2006/12/04 +01.[FileIO] FileIO 0.2 版,並完成 Normal 後端 +02.[PIO][pixmicat] PIO, pixmicat.php 與 FileIO 相關函式修改 + +2006/12/03 +01.[pixmicat] 修正顯示附加圖檔檔案大小時多一個B變成KBB的問題 +02.[pixmicat] 類別標籤分頁功能 +03.[PIO] PIO 0.3 更新 + +2006/11/13 +01.[pixmicat] 修正E-mail填入 ◆XXX 的Trip後會造成版面亂掉的問題 +02.[pixmicat][config] 新增強制砍名功能 (仿二次元壁紙@ふたば、攤開Customized) + +2006/10/27 +01.[mainscript][lib_common] 修正Firefox瀏覽器自動填入Cookies儲存密碼時底端欄位漏填的問題 +02.[pixmicat] 用語更改:防止Spam對策機制啟動! -> 防止 Spambot 機制啟動! +03.[PIO] searchCatalog 完成 + +2006/10/23 +01.[mainscript] 更新方法,並重新以JSLint, JSMin檢測壓縮 +02.[lib_common][config][pixmicat] 實裝Spambot欄位陷阱 + +2006/09/22,23 +01.[pixmicat] searchCatalog()初步完成,分頁功能暫時未加入 (目前採Session儲存,有可能改變) +02.[pixmicat][lib_common] 無貼圖勾選框加回來以防止Spam攻擊 +03.[PTE][mainstyle] 將StyleSheet部分獨立出新樣板區塊,將mainstyle的討論串樣式搬過來 +04.[PIOlog][PIOmysql] 完成searchCatalog(),SQL錯誤訊息預設不顯示避免被利用 + +2006/09/20 +01.[pixmicat] 搜尋部分(searchCatalog)實作中 + +2006/09/15 +01.[pixmicat] 新增類別標籤功能,目前可以儲存標籤、印出標籤,搜尋部分尚未完成 + +2006/08/26 +01.[PIOlog] 修正索引鍵錯亂造成Log丟失問題及刪舊文不刪其圖問題 +02.[PIOlog] 取消array_search改用array_flip + array_key_exists +03.[PIOlog] 修正porder[0]刪掉後造成編號歸零計算 +04.[PIOlog] 修正torder混亂的問題 + +2006/08/25 +01.[PIO] 廢除PIO Class Wrapper,以PIO Kernel Switcher代替 +02.[PIOlog] 修改處理結構,增加LUT Cache (目前尚有Bug, 徵求除錯) +03.[pixmicat] 不具合小修正 +04.[PIOlog] 修正資料筆數必須要到LOG_MAX+1才會開始刪除舊文的問題 + +2006/08/24 +01.[PIO] 各資料來源的資料結構更新完成 +02.[PIOlog] 修正在管理模式時若改變文章狀態會在dbCommit()刪除resto鍵值造成後續的輸出發生錯誤 +03.[pixmicat] 修正發文後檢查是否討論串被設為禁止回應的tim鍵值使用錯誤的問題 + +2006/08/23 +01.[PIO] 修改資料結構,增加catalog和imgw, imgh, imgsize等欄位 +02.[pixmicat] 去除extract POST, GET以增強安全性和效率,需要時再解析取得 +03.[pixmicat] 去除對URL「?mode=search」POST的不符標準 + +2006/08/11 +01.[pixmicat] PIO版本決議將繼續開發直到成熟為止 +02.[PIO] PIOlog, mysql, sqlite, pgsql物件化 +03.[pixmicat] 加回Refresh標籤,發文完成即使關閉JavaScript也能跳轉頁面 +04.[pixmicat] 配合PIO物件化修改,連續投稿 / 相同附加圖檔檢查給PIO處理 +05.[PIO] 新增checkSuccessivePost及checkDuplicateAttechment函式 diff --git a/config.php b/config.php new file mode 100755 index 0000000..fa47930 --- /dev/null +++ b/config.php @@ -0,0 +1,249 @@ +的gazou.php、 +双葉ちゃん的futaba.php所改寫之衍生著作程式,屬於自由軟體, +以The Clarified Artistic License作為發佈授權條款。 +您可以遵照The Clarified Artistic License來自由使用、散播、修改或製成衍生著作。 +更詳細的條款及定義請參考隨附"LICENSE"條款副本。 + +發佈這一程式的目的是希望它有用,但沒有任何擔保,甚至沒有適合特定目的而隱含的擔保。 +關於此程式相關的問題請不要詢問レッツPHP!及双葉ちゃん。 + +如果您沒有隨著程式收到一份The Clarified Artistic License副本, +請瀏覽http://pixmicat.openfoundry.org/license/以取得一份。 +*/ + +/* +yotsubanome development status +α = core under development [Database management] [core html output] +β = module system under development & αtesting +γ = language documentation and comments & β testing +δ = clean up and testing & γ testing and finishing + +>< + +//comment guide +//---- removed +//==== ???? +//++++---- QUICK AND DIRTY +//++++ planned to be added on + +sparky4 made alot of changes with out following the guide lines +TODO: + 1. when pixmicat release 6 comes out, upgrade the code with all fixes.... (this will be a long prossess) + 2. import functions ported to yotsubanome's standards testing. + 3. multiboard sstem more automatic. + 4. core board execution option + +ChangeLog: +---------------------- +2011/2/12 +-[x.php] Created + +2011/2/11 +-[futaba2pio.php] Added more functionality +-[yotsubanome.php] Fixed comment too long click "here" bug + + +*/ +//error_reporting(E_ALL); //Show the cursed errors +include_once('../../conk/.pass.php'); // The password file sparky4 uses this line until the stable release is released + +/*---- Part 1:程式基本設定 ----*/ +// 伺服器常態設定 +if(!defined("PHP_SELF"))define("PHP_SELF", 'yotsubanome.php'); // このスクリプト名 // 主程式名 (若是修改了主程式名,請配合修改) +//----define("TIME_ZONE", '-6'); // 時區設定 (GMT時區,參照 http://wwp.greenwichmeantime.com/ ) +define("DATE_FORMAT", "Y/m/d"); // date format +define("EN_SEC", 1); // 時間表示に「秒」を含める 含める:1 含めない:0 +define("PIXMICAT_LANGUAGE", 'en_US'); // 語系語定 // ja_JP en_US zh_TW +define("HTTP_UPLOAD_DIFF", 50); // HTTP上傳所有位元組與實際位元組之允許誤差值 +ini_set("memory_limit", '24M'); // PHP運行的最大記憶體使用量 (php內定8M / 建議32M) + +// FileIO設定 +define("FILEIO_BACKEND", 'normal'); // FileIO後端指定 +define("FILEIO_INDEXLOG", 'fileioindex.daty'); // FileIO索引記錄檔 (儲存在本機端) +define("FILEIO_PARAMETER", ''); // FileIO參數 (本機端儲存) +//define("FILEIO_PARAMETER", serialize(array('ftp.example.com', 21, 'demo', 'demo', 'PASV', '/pwd/', 'http://www.example.com/~demo/pwd/', true))); // FileIO參數 (FTP) +//define("FILEIO_PARAMETER", serialize(array('00000000000000000000000000000000'))); // FileIO參數 (ImageShack) +//define("FILEIO_PARAMETER", serialize(array('http://www.example.com/~demo/satellite.cgi', true, '12345678', 'http://www.example.com/~demo/src/', true))); // FileIO參數 (Satellite) + +// PIO資料來源設定 +if(!defined("CONNECTION_STRING")){ // incase you use a different database in a different board +define("CONNECTION_STRING", 'log://img.csv_loog:tree.csv_loog/'); // PIO 連線字串 (Log) +//under development //define("CONNECTION_STRING", 'mysql://yotsubanome:pass@localhost/yotsubanome/img_loog/'); // PIO 連線字串 (MySQL) +//define("CONNECTION_STRING", 'sqlite://yotsubanome.db/img_loog/'); // PIO 連線字串 (SQLite) +//define("CONNECTION_STRING", 'pgsql://yotsubanome:pass@localhost/yotsubanome/img_loog/'); // PIO 連線字串 (PostgreSQL) +} + +// CSV Data file names +// daty = yotsubanome data file +// loog = yotsubanome log file +define("LUT_CACHE", 'lutcache.daty'); +define("SIZE_CACHE", 'sizecache.daty'); +define("CSVSS", '_css.csv_daty'); +define("CSV_SS", 'stylesheets.csv_daty'); + +/*---- Part 2:板面各項細部功能設定 ----*/ +define("IMG_DIR", 'src/'); // 画像保存ディレクトリ。futaba.phpから見て // 圖片存放目錄 +define("THUMB_DIR", 'thumb/'); //サムネイル保存ディレクトリ // 預覽圖存放目錄 +define("PHP_SELF2", 'index.htm'); // 入り口ファイル名 // 入口檔名 +define("PHP_EXT", '.htm'); // 1ページ以降の拡張子 // 第一頁以後生成檔案之副檔名 + +$config['TITLE'] = '画像掲示板'; +if(!defined("TITLE"))define("TITLE", $config['TITLE']); // タイトル // 網頁標題 +define("TITLECOM", ''); // TITLECOM +define("SHOWTITLEIMG", 0); // Show the title image (rotating:2 yes:1 no:0) +define("SHOWTITLETXT", 1); // Show the title text (yes:1 no:0) +define("TITLEIMG", 'logo.gif'); // Title image (point to php file if rotating) +define("HOME", '../'); // 「ホーム」へのリンク // 回首頁的連結 +define("TOP_LINKS", ''); // 頁面右上方的額外連結,請直接以[名稱]格式鍵入,如果不需要開新視窗可刪除rel一段 +if(!defined("ADMIN_PASS"))define("ADMIN_PASS", 'yotsubanome'); // 管理者パス // 管理員密碼 +define("IDSEED", 'idの種'); // idの種 // 生成ID之隨機種子 +define("TRIP_KEY", '◆'); +define("TRIP_KEY_FAKE", '◇'); + +// 管理員キャップ(Cap)設定 (啟用條件:開啟使用;名稱輸入識別名稱,E-mail輸入#啟動密碼) +define("CAP_ENABLE", 1); // 是否使用管理員キャップ (使用:1 不使用:0) +define("CAP_NAME", 'futaba'); // 管理員キャップ識別名稱 +define("CAP_PASS", 'futaba'); // 管理員キャップ啟動密碼 (在E-mail一欄輸入#啟動密碼) +define("CAP_SUFFIX", ' ■'); // 管理員キャップ後綴字元 (請務必有★以便程式防止偽造,或可自行修改程式的防偽造部份) +define("CAP_SUFFIX_FAKE", ' []'); +define("CAP_ISHTML", 1); // 管理員キャップ啟動後內文是否接受HTML標籤 (是:1 否:0) + +// ^^????^^ + +// 功能切換 +define("USE_THUMB", 1); // サムネイルを作る する:1 しない:0 // 使用預覽圖機能 (使用:1 不使用:0) +define("STYLEBAR", 1); // location of style bar [CSS decoration style for the pages] (top & bottom:1 bottom:0) +define("USE_FLOATFORM", 0); // 新增文章表單使用自動隱藏 (是:1 否:0) +define("USE_SEARCH", 1); // 開放搜尋功能 (是:1 否:0) +define("OPTION", 1); // allow options to show up (yes:1 no:0) +define("USE_UPSERIES", 1); // 是否啟用連貼機能 [開主題後自動指向到主題下以方便連貼] (是:1 否:0) +define("RESIMG", 1); // レスにも画像を添付できるようにする 添付可能:1 添付不可:0 // 回應附加圖檔機能 (開啟:1 關閉:0) +//++++define("RES_MARK", '…'); // レスの頭に付ける文字列 +define("AUTO_LINK", 1); // URL自動リンクを行う する:1 しない:0 // 討論串文字內的URL是否自動作成超連結 (是:1 否:0) +define("KILL_INCOMPLETE_UPLOAD", 1); // 自動刪除上傳不完整附加圖檔 (是:1 否:0) +define("ALLOW_NOPASS", 0); // 削除キーの入力をチェックする する:1 しない:0 +define("ALLOW_NOSUB", 1); // 題名省略時拒絶する する:1 しない:0 +define("ALLOW_NONAME", 1); // 名前省略時拒絶する 強制的に名前をハック:2 する:1 しない:0 // 是否接受匿名發送 (強制砍名:2 是:1 否:0) +define("ALLOW_NOCOM", 1); // 本文省略時拒絶する する:1 しない:0 +// もし、有効にした場合、注意書きを書くことをお勧めします。 +define("DISP_ID", 2); // IDを表示する 強制:2 する:1 しない:0 // 顯示ID (強制顯示:2 選擇性顯示:1 永遠不顯示:0) +define("CLEAR_SAGE", 0); // 使用不推文模式時清除E-mail中的「sage」關鍵字 (是:1 否:0) +define("USE_QUOTESYSTEM", 1); // 是否打開引用瀏覽系統 [自動轉換>>No.xxxx文字成連結並導引] (是:1 否:0) +define("KB", 1); // Kilobytes or Bytes on the image file size display (Kilobytes:1 Bytes:0) +define("SHOW_IMGWH", 1); // 是否顯示附加圖檔之原檔長寬尺寸 (是:1 否:0) +define("SHOW_FILENAME", 1); // 是否顯示附加圖檔之原檔文件名 (是:1 否:0) +define("USE_CATEGORY", 0); // 是否開啟使用類別標籤分類功能 (是:1 否:0) +define("USE_RE_CACHE", 1); // 是否使用回應頁面顯示快取功能 (是:1 否:0) +if(!defined("USE_XHTML"))define("USE_XHTML", 1); // 是否回傳 XHTML 檔頭讓瀏覽器以更嚴格的方式解析 [僅限瀏覽器支援者] (是:1 否:0) + +// 模組載入 +$ModuleList = array(); +//$ModuleList[] = 'mod_rss'; + +$ModuleList[] = 'mod_adminenhance';//<- ? help me please +$ModuleList[] = 'mod_archiver'; +$ModuleList[] = 'mod_audit'; +$ModuleList[] = 'mod_bbcode'; + +//$ModuleList[] = 'mod_captcha'; +$ModuleList[] = 'mod_catalog';//<-sparky4 needs here .... HELP +//$ModuleList[] = 'mod_code';//<- missing JS and CSS files +$ModuleList[] = 'mod_code_prettify';//<-sparky4 is here + +//$ModuleList[] = 'mod_dummy'; +//$ModuleList[] = 'mod_edit';//<-important +//$ModuleList[] = 'mod_eggpoll'; +//$ModuleList[] = 'mod_exif'; +//$ModuleList[] = 'mod_imgsizelimit'; +//$ModuleList[] = 'mod_mobile'; +//$ModuleList[] = 'mod_neta'; +//$ModuleList[] = 'mod_opentag'; +//$ModuleList[] = 'mod_paint'; +//$ModuleList[] = 'mod_pm'; +//$ModuleList[] = 'mod_pushpost'; +//$ModuleList[] = 'mod_readonly'; +//$ModuleList[] = 'mod_recaptcha'; +//$ModuleList[] = 'mod_robottrap'; +//$ModuleList[] = 'mod_rss'; +//$ModuleList[] = 'mod_sectrip'; +//$ModuleList[] = 'mod_shoutbox'; +//$ModuleList[] = 'mod_showhide'; +//$ModuleList[] = 'mod_showip'; +//$ModuleList[] = 'mod_siokara'; +//$ModuleList[] = 'mod_tag'; +//$ModuleList[] = 'mod_threadlist'; +//$ModuleList[] = 'mod_threadorder'; +//$ModuleList[] = 'mod_tripcheck'; +//$ModuleList[] = 'mod_typepad_antispam'; +//$ModuleList[] = 'mod_userrepair'; +//$ModuleList[] = 'mod_vipquality'; + +// 封鎖設定 +define("BAN_CHECK", 0); // 綜合性封鎖檢查功能 (關閉:0, 開啟:1) +$BANPATTERN = array(); // 拒絶するホスト // IP/Hostname封鎖黑名單 +$DNSBLservers = array(0, 'sbl-xbl.spamhaus.org', 'list.dsbl.org', 'bl.blbl.org', 'bl.spamcop.net'); // DNSBL伺服器列表 (首項:使用伺服器個數) +$DNSBLWHlist = array(); // DNSBL白名單 (請輸入IP位置) +$BAD_STRING = array("dummy_string","dummy_string2"); // 拒絶する文字列 // 限制出現之文字 +$BAD_FILEMD5 = array("dummy","dummy2"); // 拒絶するファイルのmd5 // 限制上傳附加圖檔之MD5檢查碼 + +// 附加圖檔限制 +define("MAX_KB", 9000); // 投稿容量制限 KB(phpの設定により2Mまで // 投稿容量制限 KB(phpの設定により2Mまで // 附加圖檔上傳容量限制KB (php內定為最高2MB) +define("STORAGE_LIMIT", 0); // 附加圖檔總容量限制功能 (啟動:1 關閉:0) +define("STORAGE_MAX", 30000); // 附加圖檔總容量限制上限大小 (單位:KB) +define("ALLOW_UPLOAD_EXT", 'GIF|JPG|PNG|BMP|SWF|TXT'); // 接受之附加圖檔副檔名 (送出前表單檢查用,用 | 分隔) + +// 連續投稿時間限制 +define("RENZOKU", 4); // 連続投稿秒数 // 連續投稿間隔秒數 +define("RENZOKU2", 13); // 画像連続投稿秒数 // 連續貼圖間隔秒數 + +// 預覽圖片相關限制 +define("MAX_W", 240); // 投稿サイズ幅(これ以上はwidthを縮小 // 討論串本文預覽圖片寬度 (超過則自動縮小) +define("MAX_H", 240); // 投稿サイズ高さ // 討論串本文預覽圖片高度 +define("MAX_RW", 240); // 投稿サイズ幅(これ以上はwidthを縮小 // 討論串回應預覽圖片寬度 (超過則自動縮小) +define("MAX_RH", 240); // 投稿サイズ高さ // 討論串回應預覽圖片高度 +//++++define("MIN_W", 2); // minimal width size +//++++define("MIN_H", 2); // minimal hieght size +//++++define("MAX_DIMENSION", 9000); // maximum dimentions +define("THUMB_Q", 84); // 預覽圖片之品質 (1-100, 建議預設75,越高品質越好但檔案也越大) + +// 外觀設定 +$ADDITION_INFO = ""; // 可在表單下顯示額外文字 +$LIMIT_SENSOR = array('ByPostCountCondition'=>9000); // 文章自動刪除機制設定 +define("TEMPLATE_FILE", TPLT_DIR.'inc_yo.tplt'); // 樣板位置 +define("CSSFILE", "yotsubanome.css"); // default CSS file name +define("FAV_ICON", ''); // favicon file name +define("PAGE_DEF", 16); // 一ページに表示する記事 // 一頁顯示幾篇討論串 +define("ADMIN_PAGE_DEF", 20); // 管理模式下,一頁顯示幾筆資料 +define("RE_DEF", 4); // 「レス省略」を表示するレスの数 // 一篇討論串最多顯示之回應筆數 (超過則自動隱藏,全部隱藏:0) +define("RE_PAGE_DEF", 40); // 回應模式一頁顯示幾筆回應內容 (分頁用,全部顯示:0) +define("MAX_RES", 0); // 強制sageレス数 // 回應筆數超過多少則不自動推文 (關閉:0) +define("MAX_AGE_TIME", 0); // 強制sageまでの時間 0で強制sageなし // 討論串可接受推文的時間範圍 (單位:小時,討論串存在超過此時間則回應皆不再自動推文 關閉:0) +define("COMM_MAX", 9000); // 內文接受Bytes數 (注意:中文字為2Bytes) +define("MAX_LINES", 16); // The number of lines in the comment feild that are displayed in the index (unlimited:0) +define("NO_TEXTONLY", 0); // no text only? behavior with the no image switch (Ost [Eastern]:2 Futaba:1 Yotsubanome [OLD]:0) +define("BR_CHECK", 0); // 改行を抑制する行数 しない:0 // 文字換行行數上限 (不限:0) +define("STATIC_HTML_UNTIL", -1); // 更新文章時自動生成的靜態網頁至第幾頁止 (全部生成:-1 僅入口頁:0) +define("GZIP_COMPRESS_LEVEL", 4); // PHP動態輸出頁面使用Gzip壓縮層級 (關閉:0 啟動:1~9,推薦值:3) +define("DEFAULT_NOTITLE", "無題"); // 省略時の題名 // 預設文章標題 +define("DEFAULT_NONAME", "名無し"); // 省略時の名前 // 預設文章名稱 +define("DEFAULT_NOCOMMENT", "本文なし"); // 省略時の本文 // 預設文章內文 + +/*---- Part 3:Anti-SPAM 防止垃圾訊息機器人發文 ----*/ +/* 欄位陷阱 (Field Trap) +介紹: +機器人會針對常見的欄位名稱送出垃圾資料,將這些常見的欄位製成陷阱, +另設名稱怪異的欄位為正確欄位,以避免直接的攻擊。 +防止機器人學習的可能,請隔一段時間修改底下欄位值,建議英數大小寫隨機6~10個 (避免特殊符號、第一位不能為數字)。 +*/ +define("FT_NAME", 'bvUFbdrIC'); // 名稱欄位 +define("FT_EMAIL", 'ObHGyhdTR'); // E-mail欄位 +define("FT_SUBJECT", 'SJBgiFbhj'); // 標題欄位 +define("FT_COMMENT", 'pOBvrtyJK'); // 內文欄位 +?> diff --git a/config.xxxx b/config.xxxx new file mode 100755 index 0000000..02d5d17 --- /dev/null +++ b/config.xxxx @@ -0,0 +1,563 @@ +'.TITLE.'‚ÆTOPj +if(!defined("TITLECOM")) define("TITLECOM", ''); // TITLECOM +if(!defined("SHOWTITLEIMG")) define("SHOWTITLEIMG", 0); //show the title image (0=no 1=yes 2=rotating) +if(!defined("SHOWTITLETXT")) define("SHOWTITLETXT", 1); //(leave at 0) +if(!defined("TITLEIMG")) define("TITLEIMG", 'logo.jpg'); //Title image (point to php file if rotating) +if(!defined("CHANNERU")) define("CHANNERU", 'Žl—t‚̉聞‚¿‚á‚ñ‚Ë‚é'); // channeru name +if(!defined("HOME")) define("HOME", '../'); //uƒz[ƒ€v‚ւ̃Šƒ“ƒN +if(!defined("MAX_KB")) define("MAX_KB", '9000'); //“Še—e—ʐ§ŒÀ KBiphp‚̐ݒè‚É‚æ‚è2M‚Ü‚Å +if(!defined("MAX_W")) define("MAX_W", '240'); //“ŠeƒTƒCƒY•i‚±‚êˆÈã‚Íwidth‚ðk¬ +if(!defined("MAX_H")) define("MAX_H", '240'); //“ŠeƒTƒCƒY‚‚³ +if(!defined("MAXR_W")) define("MAXR_W", '240'); //“ŠeƒTƒCƒY•i‚±‚êˆÈã‚Íwidth‚ðk¬ +if(!defined("MAXR_H")) define("MAXR_H", '240'); //“ŠeƒTƒCƒY‚‚³ +if(!defined("MIN_W")) define("MIN_W", 2); //minimal width size +if(!defined("MIN_H")) define("MIN_H", 2); //minimal hieght size +if(!defined("MAX_DIMENSION")) define("MAX_DIMENSION", 9000); //maximum dementions +if(!defined("PAGE_DEF")) define("PAGE_DEF", '16'); //ˆêƒy[ƒW‚É•\Ž¦‚·‚é‹LŽ– +if(!defined("LOG_MAX")) define("LOG_MAX", '4004'); //ƒƒOÅ‘ås” +//---- +//ŠÇ—ƒpƒXƒtƒH[ƒ€‚ð o‚·:0 o‚³‚È‚¢:1 +if(!defined("PASS_FSP")) define("PASS_FSP", 0); +//ŠÇ—ŽÒƒl[ƒ€ƒpƒX +if(!defined("PASS_FM_PS")) define("PASS_FM_PS", 'mod'); //íœl‚Ì–¼‘O +if(!defined("PASS_FA_PS")) define("PASS_FA_PS", 'admin'); //ŠÇ—l‚Ì–¼‘O +if(!defined("NUKEPASS1")) define("NUKEPASS1", 'BOMBEM'); //1st nuke panel password +if(!defined("NUKEPASS2")) define("NUKEPASS2", 'BOMBIT'); //2nd nuke panel password +if(!defined("ADMIN_PASS")) define("ADMIN_PASS", 'admin_pass'); //ŠÇ—ŽÒƒpƒX +if(!defined("MOD_PASS")) define("MOD_PASS", 'mod_pass'); //íœŽÒƒpƒX +if(!defined("MCAPCODE")) define("MCAPCODE", ' '.CHANNERU.' ## '.S_MODERATOR.' ##'); +if(!defined("M4CAPCODE")) define("M4CAPCODE", ''.S_MODERATOR.''); +//mod capcode '.CHANNERU.' ## '.S_MODERATOR.' ## +if(!defined("ACAPCODE")) define("ACAPCODE", ' '.CHANNERU.' ## '.S_ADMINISTRATOR.' ##'); +if(!defined("A4CAPCODE")) define("A4CAPCODE", ''.S_ADMINISTRATOR.''); +//admin capcode '.CHANNERU.' ## '.S_ADMINISTRATOR.' ## +//---- +if(!defined("PHP_SELF")) define("PHP_SELF", 'yotsubanome.php'); //‚±‚̃XƒN ƒŠƒvƒg–¼ +if(!defined("PHP_SELF2")) define("PHP_SELF2", 'yotsuba.htm'); //“ü‚èŒûƒtƒ@ƒCƒ‹–¼ +if(!defined("PHP_SELF3")) define("PHP_SELF3", 'index.php'); //“ü‚èŒûƒtƒ@ƒCƒ‹–¼2 +if(!defined("IIII")) define("IIII", ""); //0.htm contents +if(!defined("ENCODE")) define("ENCODE", "Shift_JIS"); //encodeing of pages +if(!defined("FAVICON")) define("FAVICON", ICON_DIR."4leaf.png"); //icon of pages +if(!defined("PHP_EXT")) define("PHP_EXT", '.htm'); //1ƒy[ƒWˆÈ~‚ÌŠg’£Žq +if(!defined("PHP_EXT2")) define("PHP_EXT2", '.html'); //$timeŠg’£Žq +if(!defined("RENZOKU")) define("RENZOKU", '4'); //˜A‘±“Še•b” +if(!defined("RENZOKU2")) define("RENZOKU2", '13'); //‰æ‘œ˜A‘±“Še•b” +if(!defined("MAX_RES")) define("MAX_RES", '9000'); //‹­§sageƒŒƒX” +if(!defined("ARCHIVE")) define("ARCHIVE", 1); //archive old threads? no:0 yes:1 +if(!defined("ARCH_FILE")) define("ARCH_FILE", $_SERVER['PHP_SELF']); //board directory defined +$archny = ARCH_FILE; +$archny = str_replace("/", "+", $archny); // / ¨ + for file system compatibility +$archny = str_replace(PHP_SELF, "", $archny); //remove php file name +if(!defined("ARCHFILE")) define("ARCHFILE", ARCH_DIR.$archny.'arch.log'); //archive log of the board directory + +//---------------------------- text board switch!!!! +if(!defined("TEMPLATE")) define("TEMPLATE", 0); //0 =Gazou BBS template 1 =textboard template This is a very important switch +if(!defined("UP_IMG")) define("UP_IMG", 1); //Use images yes:1 no i want a text board:0 This is a very important switch +//---------------------------- seriously + +if(!defined("USE_THUMB")) define("USE_THUMB", 1); //ƒTƒ€ƒlƒCƒ‹‚ðì‚é ‚·‚é:1 ‚µ‚È‚¢:0 +if(!defined("GIF_ONLY")) define("GIF_ONLY", 0); // 0:not just gif files are allowed 1:only *.gif files are allowed +if(!defined("PROXY_CHECK")) define("PROXY_CHECK", 0); //proxy‚̏‘ž‚݂𐧌À‚·‚é y:1 n:0 +if(!defined("DISP_ID")) define("DISP_ID", 0); //ID‚ð•\Ž¦‚·‚é ‹­§:2 ‚·‚é:1 ‚µ‚È‚¢:0 +if(!defined("IDSEED")) define("IDSEED", 'id‚ÌŽí'); //id‚ÌŽí +if(!defined("LINK")) define("LINK", 0); //Futaba channeru like advertisement? "ƒŠƒ“ƒN:::" 0:no 1:yes +if(!defined("WW")) define("WW", 80); //wordwarp2 charater line
number +if(!defined("NO_TEXTONLY")) define("NO_TEXTONLY", 0); //no text only? +if(!defined("BR_")) define("BR_", 1); // \n ¨
n=0 y=1 + +if(!BR_){ +if(!defined("BR_CHECK")) define("BR_CHECK", 16); } //‰üs‚ð—}§‚·‚és” ‚µ‚È‚¢:0 +if(!defined("TRIPKEY")) define("TRIPKEY", 'Ÿ'); //key before tripcode +if(!defined("TRIP_KEY")) define("TRIP_KEY", 'ž'); //copied key before tripcode +if(!defined("CSSFILE")) define("CSSFILE", CSS_DIR."yotsubanome.css"); //location of the css file [make blank if you want futaba look] + +if(!defined("PASS_CHECK")) define("PASS_CHECK", 0); // íœƒL[‚Ì“ü—Í‚ðƒ`ƒFƒbƒN‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 +if(!defined("SUB_CHECK")) define("SUB_CHECK", 0); // ‘è–¼È—ªŽž‹‘â‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 +if(!defined("NAME_CHECK")) define("NAME_CHECK", 0); // –¼‘OÈ—ªŽž‹‘â‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 +if(!defined("COM_CHECK")) define("COM_CHECK", 0); // –{•¶È—ªŽž‹‘â‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 +// ‚à‚µA—LŒø‚É‚µ‚½ê‡A’ˆÓ‘‚«‚ð‘‚­‚±‚Æ‚ð‚¨Š©‚ß‚µ‚Ü‚·B + +if(!defined("EN_AUTOLINK")) define("EN_AUTOLINK", 1); // URLŽ©“®ƒŠƒ“ƒN‚ðs‚¤ ‚·‚é:1 ‚µ‚È‚¢:0 +if(!defined("EN_SEC")) define("EN_SEC", 1); // ŽžŠÔ•\Ž¦‚Ɂu•bv‚ðŠÜ‚ß‚é ŠÜ‚ß‚é:1 ŠÜ‚ß‚È‚¢:0 +if(!defined("EN_SAGE_START")) define("EN_SAGE_START", 1); // ƒXƒŒŽå‹­§sage‹@”\‚ðŽg—p‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 +if(!defined("MAX_PASSED_HOUR")) define("MAX_PASSED_HOUR", 0); // ‹­§sage‚Ü‚Å‚ÌŽžŠÔ 0‚Å‹­§sage‚È‚µ +if(!defined("ADMIN_SAGE")) define("ADMIN_SAGE", 1); // ŠÇ—ŽÒ‹­§sageˆ— ‚·‚é:1 ‚µ‚È‚¢:0 +if(!defined("NOTICE_SAGE")) define("NOTICE_SAGE", 1); // ‹­§sage‚ð’m‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 + +if(!defined("MAX_LINES_SHOWN")) define("MAX_LINES_SHOWN", 24); +if(!defined("DESC")) define("DESC", '4 leaf sprout channel'); //description of the pages +if(!defined("KEYW")) define("KEYW", '4,leaf,sprout,channel,'); //keywords +if(!defined("BACKGROUND_IMG")) define("BACKGROUND_IMG", ''); //what will that back ground image be + +if(!defined("SPOILERS")) define("SPOILERS", 1); // Spoilers +if(!defined("SECURE")) define("SECURE", 0); //Secure the nuke panel y=1 n=0 +if(!defined("CHANBAN")) define("CHANBAN", 0); // banned from viewing index:1 or allowed to view but cannot post:0 +if(!defined("USER_WAS_BANNED_FOR_THIS_POST")) define("USER_WAS_BANNED_FOR_THIS_POST", '(USER WAS BANNED FOR THIS POST)'); // the infamous (USER WAS BANNED FOR THIS POST) is customizable + +if(!defined("NOTPLEA")) define("NOTPLEA", 1); //this is only for the banpleaboard. [DON'T MESS WITH IT] +if(!defined("NOTREPORT")) define("NOTREPORT", 1); //this is only for the reportboard. [DON'T MESS WITH IT] +//---------------------------------------------antispam measures +if(!defined("SECURITY")) define("SECURITY", 0); // Use captcha yes:1 no:0 +// ‚Ê‚± +// “ŠeƒtƒH[ƒ€‚ðÁ‚· y=1 n=0 +if(!defined("FORM_HIDDEN")) define("FORM_HIDDEN", 0); +// ƒXƒpƒ€‘΍ô +//--------------------------------------------- ƒXƒpƒ€‘΍ô + +if(!defined("RE_")) define("RE_", 'ReF'); // ƒŒƒX‚Ì“ª‚É•t‚¯‚镶Žš—ñ +if(!defined("RES_MARK")) define("RES_MARK", 'c'); // ƒŒƒX‚Ì“ª‚É•t‚¯‚镶Žš—ñ +if(!defined("OMIT_RES")) define("OMIT_RES", 8); // uƒŒƒXÈ—ªv‚ð•\Ž¦‚·‚郌ƒX‚̐” +if(!defined("OMIT_RES_IMG")) define("OMIT_RES_IMG", 0); // uƒŒƒXÈ—ªv‚ð•\Ž¦‚·‚郌ƒX‚̐”i‰æ‘œ•tƒŒƒX‚̏ꍇj + +//ƒŒƒX‰æ‘œ“Y•t‹@”\------------------------------------------------------------- +if(!defined("RESIMG")) define("RESIMG", 1); // ƒŒƒX‚É‚à‰æ‘œ‚ð“Y•t‚Å‚«‚é‚悤‚É‚·‚é “Y•t‰Â”\:1 “Y•t•s‰Â:0 +if(!defined("RES_IMG")) define("RES_IMG", RESIMG); +if(!defined("RES_IMG_LIMIT")) define("RES_IMG_LIMIT", 0); // ƒŒƒX‰æ‘œãŒÀ–‡” +if(!defined("RES_IMG_LIMIT_NOTICE")) define("RES_IMG_LIMIT_NOTICE", 1); // ƒŒƒX‰æ‘œŽc‚荐’m‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 + +if(!defined("BANFILE1")) define("BANFILE1", BANS_DIR.'ipbans.php'); //ip banish +if(!defined("BANFILE2")) define("BANFILE2", BANS_DIR.'spam.php'); //spam decioso +if(!defined("BANFILE3")) define("BANFILE3", BANS_DIR.'filebans.php'); //bad files +if(!defined("BANFILE4")) define("BANFILE4", 'bans.php'); //ip banish +if(NOTPLEA==0){ +$banfile4 = './'.BANFILE4; +} +if(NOTPLEA==1){ +if(file_exists(BANS_DIR)){ +$banfile4 = BANS_DIR.BANFILE4; + }else{ +$banfile4 = HOME.BANFILE4; + } +} + +if(!defined("HEADERFILE")) define("HEADERFILE", HOME.'HEADER.php'); //This is where the header lives. +if(!defined("RULESFILE")) define("RULESFILE", HOME.'RULE.php'); //Location of the rules of this board. +if(!defined("NEWSFILE")) define("NEWSFILE", HOME.'NEWS.php'); //Location of the news of the board. +if(!defined("FOOTERFILE")) define("FOOTERFILE", HOME.'footer.php'); //This is where the footer lives. + +if(!defined("CAPTCHAFILE")) define("CAPTCHAFILE", PHP_DIRECTORY.'captcha.php'); //Location of the captcha of the board. +if(!defined("WFFILE")) define("WFFILE", 'wf.cgi'); //This is where the wordfilter log lives. +if(!file_exists(FILTER_DIR)){ +$wfwf = HOME.WFFILE; + }else{ +$wfwf = FILTER_DIR.WFFILE; +} + +//default board colors +// ƒJƒ‰[ƒŠƒ“ƒO by –G‚¦˜A ------------------------------------------------------ +if(!defined("BG_COL")) define("BG_COL", '#FFFFEE'); // ”wŒiF +if(!defined("TXT_COL")) define("TXT_COL", '#800000'); // •¶ŽšF +if(!defined("LINK_COL")) define("LINK_COL", '#0000EE'); // ƒŠƒ“ƒNF +if(!defined("VLINK_COL")) define("VLINK_COL",'#0000EE'); // –K–âÏ‚݃Šƒ“ƒNF +if(!defined("ALINK_COL")) define("ALINK_COL",'#00DC00'); // ‘I‘ð‚µ‚½Žž‚̐F +if(!defined("TIT_COL")) define("TIT_COL", '#800000'); // ŒfŽ¦”ƒ^ƒCƒgƒ‹ƒJƒ‰[ +if(!defined("TIT_COL")) define("TIT_COL", '#800000'); // ŒfŽ¦”ƒ^ƒCƒgƒ‹ƒJƒ‰[ +if(!defined("BASE_COL")) define("BASE_COL", '#eeaa88'); // ƒx[ƒXƒJƒ‰[ + +// ----- ƒŒƒX‹LŽ–ŠÖŒW ----- // +if(!defined("RE_COL")) define("RE_COL", '#789922'); //„‚ª•t‚¢‚½Žž‚̐F +if(!defined("RE_COL2")) define("RE_COL2", '#696969'); //#‚ª•t‚¢‚½Žž‚̐F +if(!defined("RE_BGCOL")) define("RE_BGCOL", '#f0e0d6'); // ”wŒiƒJƒ‰[ +if(!defined("SUB_COL")) define("SUB_COL", '#cc1105'); // ƒ^ƒCƒgƒ‹ƒJƒ‰[ +if(!defined("NAME_COL")) define("NAME_COL", '#117743'); // –¼‘OƒJƒ‰[ +if(!defined("LONG_COL")) define("LONG_COL", '#b4b4b0'); // too long colors + +// ---- text board colors ---- // +if(!defined("OP_BGCOL")) define("OP_BGCOL", '#efefef'); //text board thread colors +if(!defined("BOX_BGCOL")) define("BOX_BGCOL",'#ccffcc'); //textboard header and footer colors + +// ---- host exploit color ---- // +if(!defined("HOST_COL")) define("HOST_COL",'#f60000'); +if(!defined("IP_COL")) define("IP_COL",'#f60000'); + +// ---- other colors ----// +if(!defined("ROW1_COL")) define("ROW1_COL", '#d6d6f6'); // row1 colors +if(!defined("ROW2_COL")) define("ROW2_COL", '#f6f6f6'); //row2 colors +if(!defined("TOMATO_COL")) define("TOMATO_COL", '#FF0000'); //tomato color +if(!defined("TTOPBOX_COL")) define("TTOPBOX_COL", '#80B0F6'); //Thread list top color +if(!defined("TROW1_COL")) define("TROW1_COL", '#D6D00F'); // row1 colors +if(!defined("TROW2_COL")) define("TROW2_COL", '#F6F60F'); //row2 colors +//-------------------------------------------------------------------------------------------- +if(!defined("TL")) define("TL", 1); //Thread Lists? speed? n=0 y=1 +if(!defined("FUTABA_S")) define("FUTABA_S", 0); //futaba speed? n=0 y=1 [this will disable alot of functions] +if(!FUTABA_S){ +//•‰‰×ŒyŒ¸htmlŒo—RŠÖŒW--------------------------------------------------------- +if(!defined("RES_FILE")) define("RES_FILE", 1); // ƒŒƒX‚ðhtmlŒo—R‚É‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 +if(!defined("RES_DIR")) define("RES_DIR", './'); // ƒŒƒXhtmlŠi”[ƒfƒBƒŒƒNƒgƒŠ +//Do not change RES_DIR //major glitches will appear +}else{ +if(!defined("RES_FILE")) define("RES_FILE", 0); +if(!defined("RES_DIR")) define("RES_DIR", './'); // ƒŒƒXhtmlŠi”[ƒfƒBƒŒƒNƒgƒŠ +//Do not change RES_DIR //major glitches will appear +} +// ƒc[ƒ‹”ð‚¯htmlŒo—RŠÖŒW------------------------------------------------------- +if(!defined("IMG_REFER")) define("IMG_REFER", 1); // ƒc[ƒ‹”ð‚¯‚É‰æ‘œƒŠƒ“ƒN‚ðhtmlŒo—R‚É‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 +if(!defined("IMG_REF_DIR")) define("IMG_REF_DIR", 'ref/'); // Œo—RæhtmlŠi”[ƒfƒBƒŒƒNƒgƒŠ + +if(!defined("LIGHTBOX")) define("LIGHTBOX", 1); //lightbox? n=0 y=1 +if(!LIGHTBOX){ +$bbte = "target=_blank"; + }else{ +$bbte = "rel=lightbox"; + } +if(!defined("NOTJUST_IMG")) define("NOTJUST_IMG", 1); //Upload besides image based files n=0 y=1 +if(NOTJUST_IMG || !1){ +$allowext=array('acc','asf','avi','bmp','bz2','c','css','gif','gz','htm','html','flv','flac','ico','it','jpg','lzh','mid','mo3','mod','mov','mp1','mp2','mp3','mp4','mpc','mpg','nsf','ogg','pdf','phps','png','psd','ram','rar','rm','s3m','spc','sid','svg','swf','text','txt','TXT','tmp','temp','torrent','wav','wma','wm','xm','zip','7z'); + }else{ +$allowext=""; + } +//************************************************************************** +if(!defined("GCHAN_VIDEO")) define("GCHAN_VIDEO", 1); //video url support n=0 y=1* +//************************************************************************** + +if(!defined("ENABLE_EXIF")) define("ENABLE_EXIF", 0); +if(!defined("OPTION")) define("OPTION", 1); //enable options on form() +//-------------------------------------------------------------------------------------------- + +//ƒXƒŒˆê——•\Ž¦”in=0 y=ƒXƒŒƒbƒh–{”j +//LIMIT‚̐”’l‚ª‰º‚̏ꍇALIMIT‚̐”’l‚ŃJƒbƒg‚³‚ê‚Ü‚·B(LIMIT—Dæ) +//LIMIT‚̐”’l‚ª 0 ‚̏ꍇATHREAD_IHIRAN‚̐”’l‚ŃJƒbƒg‚³‚ê‚Ü‚·B +if(!defined("THREAD_IHIRAN")) define("THREAD_IHIRAN", 40); + +//ƒXƒŒˆê——•\Ž¦ðŒ +// 0: ‘è–¼‚ªƒfƒtƒHƒ‹ƒg‚È‚ç“à—e‚ðˆø—pi‘Sƒy[ƒWƒAƒ“ƒJ[ƒŠƒ“ƒN‚ ‚èj +// 1: 1ˆÈã‚ÍTOPƒy[ƒWˆÈŠOƒy[ƒWƒAƒ“ƒJ[ƒŠƒ“ƒN–³‚µiƒXƒŒ‚̏¸~‚ªŒƒ‚µ‚¢‚Æ–³ˆÓ–¡‚ׁ̈j +// 2: ‹­§“I‚É“à—e‚ðˆø—p / 3: ‹­§“I‚É‘è–¼‚ðˆø—p +if(!defined("SUB_IHIRAN")) define("SUB_IHIRAN", 0); + +//È—ªƒy[ƒW”: 5ƒXƒŒ10ƒy[ƒW‚È‚ç5x10=50B0ƒy[ƒW•ª‚Ì5ƒXƒŒ‚ð‘«‚µ55‚Æ‚·‚é +// ¨ LIMIT(55) = (PAGE_DEF:5 * ƒy[ƒW”:10) + PAGE_DEF:5 +//‘SŒ•\Ž¦‚̏ꍇ‚ÍLOG_MAX‚̐ݒè‚Æ“¯‚¶‚É‚µ‚Ä‚¨‚¯‚Ηǂ¢ +//0=‰º‚̃y[ƒWŒJ‚è‰z‚µƒe[ƒuƒ‹“P‹Ž (MAX_THREAD‚ð•K‚¸Žw’肵‚ĉº‚³‚¢) +if(!defined("LIMIT")) define("LIMIT", 9000); + +//“Še‡‚Ƀ\[ƒgŒÅ’è ‚·‚é:1 ‚µ‚È‚¢:0 +if(!defined("NATURAL_SORT")) define("NATURAL_SORT", 0); +//threads are displayed in numeracle order and not according to the tree line n=0 y=1 + +// ƒAƒjƒ[ƒVƒ‡ƒ“‚f‚h‚eÝ’è----------------------------------------------------- +// ƒTƒ€ƒlƒCƒ‹‚ðŽg—p‚µ‚È‚¢ê‡AGIF‚ð‚»‚Ì‚Ü‚Ü•\Ž¦‚·‚邽‚߁AƒAƒjƒ[ƒVƒ‡ƒ“GIF‚ª“®‚«‚Ü‚·B +if(!defined("USE_GIF_THUMB")) define("USE_GIF_THUMB", 0); // GIF•\Ž¦‚ɃTƒ€ƒlƒCƒ‹‚ðŽg—p‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 +if(!defined("CHECK_ANI")) define("CHECK_ANI", 1); // ƒAƒjƒ[ƒVƒ‡ƒ“GIF‚©‚Ç‚¤‚©ƒ`ƒFƒbƒN‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 +if(!defined("USE_PNG_THUMB")) define("USE_PNG_THUMB", 0); // PNG•\Ž¦‚ɃTƒ€ƒlƒCƒ‹‚ðŽg—p‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 +// ’m‚Í‚µ‚Ü‚¹‚ñ.— ‚ŃRƒ\[ƒŠ‚Ǝ擾‚¾‚¯‚µ‚Ü‚·. + +// hiro ’ljÁ 2005.03.17 +// ƒTƒ€ƒlƒCƒ‹ì¬‹@”\‘I‘ð------------------------------------------------------ +if(!defined("QUALITY_THUMB")) define("QUALITY_THUMB", 100); // ƒTƒ€ƒlƒCƒ‹‚Ì•iŽ¿ 0`100 ‚܂Őݒè‰Â”\ default:75 +if(!defined("SELECT_THUMB")) define("SELECT_THUMB", 0); // ƒTƒ€ƒlƒCƒ‹ì¬ GD”Å:0 repng2jpeg”Å:1 +// hiro ’ljÁ ‚±‚±‚Ü‚Å + +// ƒ_ƒEƒ“ƒ[ƒhƒJƒEƒ“ƒ^ (ƒc[ƒ‹”ð‚¯‚ÉŠñ¶)--------------------------------------dlcount +// “Š•[ƒtƒH[ƒ€‚̓[ƒ‹—“‚É vote ‚Ə‘‚­‚±‚Æ‚ÅŽn“®‚µ‚Ü‚·B +// e‚ɘA“®‚µ‚ĉ摜ƒŒƒX‚É‚à“Š•[ƒtƒH[ƒ€‚ª‚Å‚Ü‚·B +// “Š•[‚̓[ƒJƒ‹‚Ì•‰’S‚ð”z—¶‚µPHP‚ɂď‘‚«o‚µ‚Æ‚È‚èAXVŒã‚É”½‰f‚Æ‚È‚è‚Ü‚·B +if(!defined("DC_REFER")) define("DC_REFER", 2); // ƒ_ƒEƒ“ƒ[ƒhƒJƒEƒ“ƒ^‚ð •t‚¯‚é:1 •t‚¯‚È‚¢:0 X‚É“Š•[‚ð•t‚¯‚é:2 + +// ‰º‹LƒtƒHƒ‹ƒ_–¼‚Í dlreg.php, dlvote.php, dljs.php ‚Æ“ˆêÝ’è‚Æ‚·‚éB +if(!defined("DC_CUN")) define("DC_CUN", PHP_DIRECTORY.'count/'); // ƒ_ƒEƒ“ƒ[ƒhƒJƒEƒ“ƒ^‹L˜^—pƒtƒHƒ‹ƒ_–¼ +if(!defined("DC_CAC")) define("DC_CAC", PHP_DIRECTORY.'cache/'); // ƒ_ƒEƒ“ƒ[ƒhƒJƒEƒ“ƒ^ˆêŽžƒLƒƒƒbƒVƒ…—pƒtƒHƒ‹ƒ_–¼ + +// ƒTƒ€ƒlƒCƒ‹ŠÇ—ŽÒ·Š·‚¦‹@”\-------------------------------------------------- +// ·‚µ‘Ö‚¦ƒTƒ€ƒl(1)[replace_n.jpg]—L‚ō·Š·‚¦—LŒøA–³‚µ‚Å–³Œø +if(!defined("REPLACE_EXT")) define("REPLACE_EXT", '.replaced'); // ·‚µ‘Ö‚¦‚̍ہAŒ³X‚̃Tƒ€ƒlƒCƒ‹ƒtƒ@ƒCƒ‹‚Ì‚¨K‚É•t‚¯‚镶Žš +if(!defined("NOTICE_THUMB")) define("NOTICE_THUMB", 1); // ƒTƒ€ƒl·‚µ‘Ö‚¦‚ð’m‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 + +// €–ڂ𑝂₷ê‡‚͒萔éŒ¾‚µ‚½ƒtƒ@ƒCƒ‹–¼Aƒ^ƒCƒgƒ‹‚ð$rep_thumb”z—ñ‚ɒljÁ‚µ‚Ü‚·B +// ‚à‚¿‚ë‚ñ’萔éŒ¾‚µ‚È‚¢‚Å’¼Ú”z—ñ‚ɒljÁ‚µ‚Ä‚àOK +if(!defined("R_THUM1")) define("R_THUM1", ICON_DIR.'replace_n.jpg'); // ·‚µ‘Ö‚¦ƒTƒ€ƒl(1) ƒtƒ@ƒCƒ‹–¼ +if(!defined("R_TITL1")) define("R_TITL1", '‚ӂ‚¤'); // ·‚µ‘Ö‚¦ƒTƒ€ƒl(1) ƒ^ƒCƒgƒ‹ +if(!defined("R_THUM2")) define("R_THUM2", ICON_DIR.'replace_g.jpg'); // ·‚µ‘Ö‚¦ƒTƒ€ƒl(2) ƒtƒ@ƒCƒ‹–¼ +if(!defined("R_TITL2")) define("R_TITL2", '‚®‚ë'); // ·‚µ‘Ö‚¦ƒTƒ€ƒl(2) ƒ^ƒCƒgƒ‹ +if(!defined("R_THUM3")) define("R_THUM3", ICON_DIR.'replace_l.jpg'); // ·‚µ‘Ö‚¦ƒTƒ€ƒl(3) ƒtƒ@ƒCƒ‹–¼ +if(!defined("R_TITL3")) define("R_TITL3", '‚ë‚è'); // ·‚µ‘Ö‚¦ƒTƒ€ƒl(3) ƒ^ƒCƒgƒ‹ +if(!defined("R_THUM4")) define("R_THUM4", ICON_DIR.'replace_3.jpg'); // ·‚µ‘Ö‚¦ƒTƒ€ƒl(4) ƒtƒ@ƒCƒ‹–¼ +if(!defined("R_TITL4")) define("R_TITL4", '‚³‚ñ‚¶'); // ·‚µ‘Ö‚¦ƒTƒ€ƒl(4) ƒ^ƒCƒgƒ‹ + +$rep_thumb = array(R_TITL1=>R_THUM1,R_TITL2=>R_THUM2,R_TITL3=>R_THUM3,R_TITL4=>R_THUM4); +$default_thumb = R_THUM1; // ƒfƒtƒHƒ‹ƒg‚̃Tƒ€ƒlƒtƒ@ƒCƒ‹–¼ + +// hage ’ljÁ 2004.8.1 +// ÔŽš•\Ž¦‹@”\’ljÁ----------------------------------------------------------- +if(!file_exists(DATA_DIR)){$data_dir = HOME;}else{$data_dir = DATA_DIR;} +if(!defined("HOSTFILE")) define("HOSTFILE", $data_dir.'host.lst'); // ŽN‚µƒzƒXƒg‚Ì‹L˜^ƒtƒ@ƒCƒ‹ +if(!defined("IDHOSTFILE")) define("IDHOSTFILE", $data_dir.'idhost.lst'); // ŽN‚µID‚Ì‹L˜^ƒtƒ@ƒCƒ‹ +// hage ’ljÁ‚±‚±‚Ü‚Å + +// hiro ’ljÁ 2005.03.24 +// ƒXƒŒƒbƒhƒXƒgƒbƒp[‹@”\----------------------------------------------------- +if(!defined("THREAD_STOP")) define("THREAD_STOP", 1); // ƒXƒŒƒbƒhƒXƒgƒbƒp[‹@”\‚ðŽg—p‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 +if(!defined("NOTICE_STOP")) define("NOTICE_STOP", 1); // ƒXƒŒƒXƒg‚ð’m‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 +// hiro ’ljÁ ‚±‚±‚Ü‚Å + +// hiro ’ljÁ 2005.03.18 +// ‚ ‚©`‚­‚È‚é‚ȁ`‚éBƒoƒŒ‚é‚ƃsƒ“ƒ`IIi‚Å‚à‚È‚©‚Á‚½‚èd +// u'tomato' => 'ŠÇ—l'v‚Æ‚È‚Á‚Ä‚¢‚é‚È‚ç‚΃ƒ‹—“‚Ɂutomatov‚Ə‘‚­‚±‚ƂŐԂ­‚È‚è‚Ü‚· +// ³‹K•\Œ»‚ÍŽg—p‚µ‚Ä‚¢‚È‚¢‚̂ŁAŠ®‘Sƒ}ƒbƒ`‚Å‚·B‚Ȃ̂ŁA—]Œv‚È‚à‚̂͏‘‚©‚È‚¢‚±‚ƁI +// •ÏX‚Ì—]’n‚ ‚è‚Ü‚­‚è‚ÈŽd—l‚Å‚·B‚½‚¾‚Ì‚¨—V‚Ñ‚¾‚ÆŽv‚¢‚Ë‚¥B +// ‚±‚Ì‹@”\‚ÉŠÖ‚·‚邲—v–]“™ŒäÀ‚¢‚Ü‚µ‚½‚çAŒfŽ¦”‚ɂ¨Šè‚¢‚µ‚Ü‚·B +if(!defined("JOY_TOMATO")) define("JOY_TOMATO", 1); // ÔŽš‹@”\ Žg‚í‚È‚¢:0 Žg‚¤:1 +$tomato = array('tomato' => 'ŠÇ—l', 'tomato2' => 'íœl', 'tomato3' => '’ʍslH', 'tomato4' => 'Žl—t‚̉èl'); +// hiro ’ljÁ ‚±‚±‚Ü‚Å + +if(!defined("FACE_TAG")) define("FACE_TAG", 1); //ƒtƒFƒCƒXƒ^ƒOƒVƒXƒeƒ€‚ðŽg‚¤ Yes:1 No:0 + if(FACE_TAG){ +//ƒtƒFƒCƒXƒ}[ƒN--------------------------------------------------- --gchan +if(!defined("FACE_1")) define("FACE_1", 'yƒjƒRz'); //(^^) +if(!defined("FACE_2")) define("FACE_2", 'yƒjƒRƒjƒRz'); //(^_^) +if(!defined("FACE_3")) define("FACE_3", 'yƒVƒ‡ƒbƒNz'); //(*_*) +if(!defined("FACE_4")) define("FACE_4", 'yƒAƒnƒnz'); //(^o^) +if(!defined("FACE_5")) define("FACE_5", 'yŠ¾z'); //(^_^;) +if(!defined("FACE_6")) define("FACE_6", 'yƒEƒCƒ“ƒNz'); //(^_-) +if(!defined("FACE_7")) define("FACE_7", 'y‹ƒ‚«z'); //(/_;) +if(!defined("FONT_0")) define("FONT_0", 'yF•Â‚¶z'); //F•Â‚¶ƒ^ƒO +if(!defined("FONT_1")) define("FONT_1", 'yÔz'); //Ô +if(!defined("FONT_2")) define("FONT_2", 'yÂz'); //Â +if(!defined("FONT_3")) define("FONT_3", 'y—΁z'); //—Î +if(!defined("FONT_4")) define("FONT_4", 'y‰©z'); //‰© +if(!defined("FONT_5")) define("FONT_5", 'y‘¾z'); //‘¾ +if(!defined("FONT_6")) define("FONT_6", 'y‘¾•Â‚¶z'); //‘¾•Â‚¶ƒ^ƒO +if(!defined("FONT_7")) define("FONT_7", 'y¬z'); //¬ +if(!defined("FONT_8")) define("FONT_8", 'y¬•Â‚¶z'); //¬•Â‚¶ƒ^ƒO +if(!defined("FONT_9")) define("FONT_9", 'yÁz'); //Á +if(!defined("FONT_10")) define("FONT_10", 'yÁ•Â‚¶z'); //Á•Â‚¶ƒ^ƒO +} +// •—³ ’ljÁ +// ‹LŽ–•ÒW‹@”\ ----------------------------------------------------- +if(!defined("CH_IMG_DEL")) define("CH_IMG_DEL", 1); //•ÒW‚ł̉摜·‚µ‘Ö‚¦Žž‚ÉŒ³‚̉摜‚ð Á‚·:1 Žc‚·:0 +if(!defined("LOG_DEF")) define("LOG_DEF", 400); //ŠÇ—‰æ–Ê‚Å•\Ž¦‚·‚郍ƒO‚̐”B +// “ú‹L•—Ý’è-------------------------------------------------------------------- +if(!defined("FORM_IND")) define("FORM_IND", '1'); // ƒtƒH[ƒ€‚Ì•\Ž¦Ý’èB0:ŠÇ—ƒ‚[ƒh‚Ì‚Ý•\Ž¦A1:í‚É•\Ž¦B +if(!defined("FORM_PSTN")) define("FORM_PSTN", '0'); //ƒtƒH[ƒ€‚Ì•\Ž¦ˆÊ’uB0:ã•”A1:‰º•”A2:ã‰º—¼•ûB +if(!defined("TITLE_LIST")) define("TITLE_LIST", '1'); //‹LŽ–ˆê——B1:•\Ž¦ 0:”ñ•\Ž¦B +if(!defined("TOP_INFO")) define("TOP_INFO", ''); // ƒy[ƒWã‚Ì‚Ù‚¤‚Ö‘}“üB +if(!defined("INFO")) define("INFO", 'yotsubanome.php '.$ver); // ƒtƒH[ƒ€‚̏ã‚ɉ½‚©‘‚«ž‚ށB +//•—³ ’ljÁ ‚±‚±‚Ü‚Å + + // Catalog/List mode +//Šî–{Ý’è +if(!defined("CATLIMIT")) define("CATLIMIT", 80); //ƒXƒŒ–{” +if(!defined("REGZCUN")) define("REGZCUN", 8); //ƒJƒ^ƒƒOƒ‚[ƒhŽž‚̉摜s” +if(!defined("MESSAGE")) define("MESSAGE", 1); //–{•¶‚ð‘}“ü (n=0 y=1) +if(!defined("SYNTHETIC_COUNT")) define("SYNTHETIC_COUNT", 1); //‰º•”‚ɃJƒEƒ“ƒg‚ðo‚· (n=0 y=1) +//ƒTƒ€ƒlƒCƒ‹Ý’è +if(!defined("THUMBDIR")) define("THUMBDIR", /*THUMB_DIR.*/'thumbs/'); //ƒTƒ€ƒlƒCƒ‹‚ð•Û‘¶‚·‚éƒtƒHƒ‹ƒ_ +if(!defined("IMG_W")) define("IMG_W", 84); //o—Í‚·‚é‰æ‘œiƒTƒ€ƒlƒCƒ‹j‚Ì• +if(!defined("IMG_H")) define("IMG_H", 84); //o—Í‚·‚é‰æ‘œiƒTƒ€ƒlƒCƒ‹j‚̍‚‚³ +if(!defined("S_IMG_JPG")) define("S_IMG_JPG" , 80); //ƒTƒ€ƒlƒCƒ‹JPG‚̈³k—¦ + +//Šî–{Ý’è +//–¼–³‚µÝ’èiƒtƒHƒ[—pj +if(!defined("Z_NAME"))define("Z_NAME", "–¼–³‚µ"); +//–³‘èÝ’èiƒtƒHƒ[—pj +if(!defined("Z_SUB"))define("Z_SUB", "–³‘è"); + +//ƒŒƒX‚ÌŒ” +if(!defined("RE_CR")) define("RE_CR", 8); +//ƒJƒ^ƒƒOƒ‚[ƒh‚É 0:‚·‚é 1:‚µ‚È‚¢ +if(!defined("CATALOG")) define("CATALOG", 1); +//ƒJƒ^ƒƒOƒ‚[ƒhƒŒƒX‚̃Rƒƒ“ƒg +if(!defined("CATCOM")) define("CATCOM", 8); +//ƒŒƒX‚ɉ摜‚ð 1:•t‚¯‚é 0:•t‚¯‚È‚¢ 2:‰æ‘œ‚Ì‚Ý +if(!defined("RES_GZO")) define("RES_GZO", 1); + +//‹LŽ–ˆê——–{‘Ì•\Ž¦ƒXƒŒ–{”—p +//«È—ªƒy[ƒW”:•\Ž¦‚·‚éƒXƒŒ–{”(TR_LIMIT & OYA_TR_LIMIT) +//5ƒXƒŒ10ƒy[ƒW•ª‚È‚ç5x10=50B0ƒy[ƒW•ª‚Ì5ƒXƒŒ‚ð‘«‚µ55B +if(!defined("TR_LIMIT")) define("TR_LIMIT", 24); +//ƒXƒŒƒbƒhˆê——•\Ž¦ƒXƒŒ–{”—p +if(!defined("IHI_TR_LIMIT")) define("IHI_TR_LIMIT", 40); +//ƒXƒŒƒbƒhˆê—— 1:•\Ž¦‚·‚é 0:•\Ž¦‚µ‚È‚¢ +if(!defined("TURE_IHI")) define("TURE_IHI", 1); +//–¼‘O‚ƃ^ƒCƒgƒ‹‚ð 1:o‚· 0:o‚³‚È‚¢ +if(!defined("TXT_NOT")) define("TXT_NOT", 1); + +//V’…ˆê——–{‘Ì‹LŽ–‚ÉNEWƒ}[ƒN‚ð•t‚¯‚鎞ŠÔ +if(!defined("NEW_TIME")) define("NEW_TIME", 48); +//V’… +if(!defined("NEWMARK")) define("NEWMARK", 'NEW!'); +//V’…ŽžŠÔ‚Ì”¼•ªˆÈ~ +if(!defined("NEWMARK2")) define("NEWMARK2", 'new!'); +//V’…ƒXƒŒƒbƒhˆê——‹LŽ–‚ÉNEWƒ}[ƒN‚ð•t‚¯‚鎞ŠÔ +if(!defined("IHI_NEW_TIME")) define("IHI_NEW_TIME", 24); +//V’… +if(!defined("IHI_NEWMARK")) define("IHI_NEWMARK", '!'); +//V’…ŽžŠÔ‚Ì”¼•ªˆÈ~ +if(!defined("IHI_NEWMARK2")) define("IHI_NEWMARK2", '!'); + + /* ƒJƒ‰[Ý’è */ +//ƒ{ƒfƒBƒJƒ‰[ +if(!defined("COL_BODY")) define("COL_BODY", ''); +//‹LŽ–ƒe[ƒuƒ‹F +if(!defined("COL100")) define("COL100", '#F0E0D6'); +//e‰æ‘œƒe[ƒuƒ‹F +if(!defined("COL101")) define("COL101", '#eeaa88'); +//ƒLƒƒƒbƒ`ƒtƒHƒ“ƒgF +if(!defined("COL102")) define("COL102", '#000000'); +//ƒXƒ^ƒCƒ‹ƒV[ƒgƒe[ƒuƒ‹˜gF +if(!defined("COL103")) define("COL103", '#000000'); +//‹LŽ–ˆê——ƒe[ƒuƒ‹F +if(!defined("COL104")) define("COL104", '#F0E0D6'); +//–¼‘O‚̐F +if(!defined("COL105")) define("COL105", '#117743'); +//‘è–¼‚̐F +if(!defined("COL106")) define("COL106", '#cc1105'); +//ÔŽš‚Æ“ŠeŒãØ‘Ö‚Ì•¶ŽšF +if(!defined("COL107")) define("COL107", '#dd0000'); +//‚»‚ë‚»‚ëÁ‚¦‚镶ŽšF +if(!defined("COL108")) define("COL108", '#f00000'); +//ƒXƒŒƒbƒhƒXƒgƒbƒv•¶ŽšF +if(!defined("COL109")) define("COL109", '#0000dd'); +//ƒXƒŒÈ—ª•¶ŽšF +if(!defined("COL110")) define("COL110", '#707070'); + /* ƒXƒ^ƒCƒ‹ƒV[ƒg */ +$css_collis=''; + +//›ˆ‚Ìrepng2jpeg‚ŃTƒ€ƒlƒCƒ‹‚ðì‚é (n=0 y=1) +//›ˆ: http://sugachan.dip.jp/download/ +//1‚ɐݒ肳‚ê‚Ä‚à exec ƒRƒ}ƒ“ƒh‚ªŽg‚¦‚È‚¢ƒT[ƒo‚̏ꍇAŽ©“®“I‚ÉGD‚ŏˆ—‚³‚ê‚Ü‚·B +//®A”»•Ê‚ÍŠmŽÀ«‚Í‚ ‚è‚Ü‚¹‚ñBƒT[ƒo‘¤‚Ì•Ï‘¥“I‚Ȑݒè‚ŁA +// ‰½‚©‚µ‚ç‚̃Gƒ‰[‚âƒTƒ€ƒlƒCƒ‹”­¶‚µ‚È‚¢ê‡‚Í0‚Æ‚µ‚ĉ^‰c‚µ‚ĉº‚³‚¢B +if(!defined("SUGA_DOCORO")) define("SUGA_DOCORO", 0); + +// Ý’荀–Ú ------------------------------------------------------------------- +if(!defined("HSIZE")) define("HSIZE", 280); // ƒTƒ€ƒl•\Ž¦‚̉¡ƒTƒCƒYiƒXƒŒ—p +if(!defined("VSIZE")) define("VSIZE", 280); // ƒTƒ€ƒl•\Ž¦‚̏cƒTƒCƒYiƒXƒŒ—p +if(!defined("HSIZE_RES")) define("HSIZE_RES", 280); // ƒTƒ€ƒl•\Ž¦‚̉¡ƒTƒCƒYiƒŒƒX—p +if(!defined("VSIZE_RES")) define("VSIZE_RES", 280); // ƒTƒ€ƒl•\Ž¦‚̏cƒTƒCƒYiƒŒƒX—p +if(!defined("NEW_LINES")) define("NEW_LINES", 40); // V’…‹LŽ–•\Ž¦”i«‚ª—LŒø‚̏ꍇƒfƒtƒHƒ‹ƒgŒ”‚Æ‚È‚è‚Ü‚· +if(!defined("NEW_LINES_U")) define("NEW_LINES_U", 9000); // Å‘å‹LŽ–•\Ž¦”iƒ†[ƒU[‚ªŽw’肵‚½‚à‚Ì‚Æ‚ð”ä‚ׂ܂· '0'‚Å–³Œø‰» +if(!defined("AUTO_LINK")) define("AUTO_LINK", 1); // ƒI[ƒgƒŠƒ“ƒN‚·‚é ‚·‚é:1 ‚µ‚È‚¢:0 + +// ƒiƒƒuƒ‹@”\ --------------------------------------------------------------- +if(!defined("NARO_BURO")) define("NARO_BURO", 0); // ƒiƒƒuƒ‹@”\‚ðŽg—p‚µ‚Ä‚¢‚é ‚µ‚Ä‚¢‚é:1 ‚µ‚Ä‚¢‚È‚¢:0 +if(!defined("PHP_EXT_NOANI")) define("PHP_EXT_NOANI", 'g.htm'); // Šg’£Žq(GIF’âŽ~ƒy[ƒW) + +// VIEWÝ’èŠî–{€–Ú ----------------------------------------------------------- +if(!defined("TITLE1")) define("TITLE1", '‚тイ‚í‚́['); // ƒ^ƒCƒgƒ‹ +if(!defined("PAGE_COLS")) define("PAGE_COLS", 4); // 1s‚É•\Ž¦‚·‚é‰æ‘œ” +if(!defined("HVSIZE")) define("HVSIZE", 180); // ƒTƒ€ƒl•\Ž¦‚̉¡ƒTƒCƒY +if(!defined("VVSIZE")) define("VVSIZE", 180); // ƒTƒ€ƒl•\Ž¦‚̏cƒTƒCƒY + +// VIEWÝ’èŠg’£€–Ú ¦d—v¦ -------------------------------------------------- +// ˆÈ‰º‚Ì‘S€–Ú‚Í siokara.php “Á—L‚Ì‚à‚Ì‚Å‚·.‚Ù‚©‚̃XƒNƒŠƒvƒg‚É‚Í‹°‚ç‚­‚ ‚è‚Ü‚¹‚ñ. +// Ž©“®ƒ`ƒFƒbƒN‚Æ‚Í siokara.php ‚̏ˆ—‚É‚æ‚胍ƒO“à‚É•t‚¯‚ç‚ꂽˆó‚ðŽ©“®ƒ`ƒFƒbƒN‚·‚é‹@”\‚Å‚·. +if(!defined("SAGE_START")) define("SAGE_START", 1); // ƒXƒŒŽå‹­§sage‹@”\‚ðŽg—p‚µ‚Ä‚¢‚é +// ƒXƒŒŽå‹­§sage‹@”\‚ª–³‚¢A‚à‚µ‚­‚ÍŽg—p‚µ‚Ä‚¢‚È‚¢ê‡‚́A•K‚¸ '0' ‚ɐݒ肵‚Ä‚­‚¾‚³‚¢ + +if(!defined("SAGE_MOJI")) define("SAGE_MOJI", '(sage)'); // ƒXƒŒŽå‹­§sage‚ªŒø‚¢‚Ä‚¢‚邱‚Æ‚ð’m‚点‚镶Žš +if(!defined("UGO_MOJI")) define("UGO_MOJI", 'Animation!'); // ƒAƒjƒ[ƒVƒ‡ƒ“GIFŽž‚Ì•¶ŽšiŽ©“®ƒ`ƒFƒbƒN:siokara.php +if(!defined("RPL_MOJI")) define("RPL_MOJI", ' '); // ‰æ‘œ·‚µ‘Ö‚¦Žž‚Ì•¶ŽšiŽ©“®ƒ`ƒFƒbƒN:siokara.php + +// ƒiƒƒuƒ‹@”\ --------------------------------------------------------------- +if(!defined("NOANI_OPTION")) define("NOANI_OPTION", 'noani=1'); // GIF’âŽ~ƒy[ƒW‚©‚ç‚̃y[ƒW‚̒ljÁˆø” + +// LOGS SEARCH Ý’荀–Ú ------------------------------------------------------- +if(!defined("TITLE2")) define("TITLE2", 'ƒƒOŒŸõ‚í‚́['); // ƒ^ƒCƒgƒ‹ +if(!defined("LINK_LIM")) define("LINK_LIM", 16); // [1] [2] [3]...‚Ì•\Ž¦§ŒÀ '0'‚Å–³Œø‰» + + //filter switch +if(!defined("FILTER")) define("FILTER", 1); //0 = off 1 = on + + // Futare +if(!defined("COPY_LOG")) define("COPY_LOG", 'copy_log.cgi'); //ƒRƒs[ƒƒO–¼ + + +if(!defined("PWFN")) define("PWFN", 'Please wait for your name.'); +if(!defined("PWFE")) define("PWFE", 'Please wait for your email address.'); + + //Language settings +if(!defined("LANGUAGE")) define("LANGUAGE", 'jp'); +if(!defined("S_HOME")) include HOME."strings_".LANGUAGE.".php"; + + //Time/Date +if(!defined("DATE_FORMAT")) define("DATE_FORMAT", "Y/m/d"); //date format +$youbi = array(S_SUN, S_MON, S_TUE, S_WED, S_THU, S_FRI, S_SAT); + +// ‹‘”ېݒè-------------------------------------------------------------------- +if(file_exists(BANFILE1)) include "".BANFILE1.""; else +$badip = array("addr.dummy.com","addr2.dummy.com"); +if(file_exists(BANFILE2)) include "".BANFILE2.""; else +$badstring = array("dummy_string","dummy_string2","\.ws/","–³—¿“®‰æ","–³—¿‰æ‘œ","—F’B•åW","dummy_string3",""); // ‹‘â‚·‚镶Žš—ñ +if(file_exists(BANFILE3)) include "".BANFILE3.""; else +$badfile = array("dummy","dummy2","dummy3"); +if(CHANBAN){ +$bann=""; +chkban($bann); +} + +//$addinfo = ''; // “Še—“’ˆÓ‘‚«‚Ì’Ç‹LŽ–€ +$addinfo = ''; // “Še—“’ˆÓ‘‚«‚Ì’Ç‹LŽ–€ +//
+ +// [dlcount] «ƒIƒ}ƒP•\‹Lƒƒ‚ (ƒIƒ“ƒ‰ƒCƒ“ƒJƒEƒ“ƒ^•æŽZƒJƒEƒ“ƒ^) +// +//------------------------------------------------------------------------ +$path = realpath("./").'/'.IMG_DIR; +$thumb_path = realpath("./").'/'.THUMB_DIR; +$temppath = realpath("./").'/'.TEMP_DIR; +$higiyo = DC_CUN; //dlcount +// ª«i”O‚Ì‚½‚ß‚ÉŽc‚·j //dlcount +// $higiyo = realpath("./").'/'.DC_CUN; //dlcount + + //Gazou BBS template +if(TEMPLATE === 0){ +//form + $template['form_box'] = '
'."\n"; + $template['td1'] = ''; +//updatelog + $template['surelist'] = '
'; + $template['td2'] = '
'; + + $template['sub_size'] = '+1'; + $template['surebox1'] = FALSE; + $template['surebox2'] = FALSE; + $template['disa'] = FALSE; + $template['brcl'] = FALSE; + $template['rbox'] = "'; +$language['admin_notices'] = '
  • If you want to delete a post, check the "delete" checkbox before that post and click Submit button.
  • If you want to delete image only, please check "Delete image only" checkbox and follow normal deletion procedures.
  • If you want to lock/unlock a thread, please check "Stop" checkbox of that thread and click "Submit" button.
  • Please press "Update" after managing posts.
'; +$language['admin_submit_btn'] = ' Submit '; +$language['admin_reset_btn'] = ' Reset '; +$language['admin_list_header'] = ''; +$language['admin_archive_btn'] = 'A'; +$language['admin_stop_btn'] = 'Stop'; +$language['admin_totalsize'] = '[Total size of images: %1$s KB ]'; +$language['search_disabled'] = 'Search is disabled!'; +$language['search_top'] = 'Search'; +$language['search_notice'] = '
  • Please enter keyword and set search target, then press "Search" button.
  • Searching with multiple keywords can be done by seperating keywords with space.
  • You can set Search method("and searching" and "or searching") for multiple keywords searching.

    Keyword:'; +$language['search_target'] = 'Target:'; +$language['search_target_comment'] = 'Comment'; +$language['search_target_name'] = 'Name'; +$language['search_target_topic'] = 'Topic'; +$language['search_target_number'] = 'No.'; +$language['search_method'] = 'Method:'; +$language['search_method_and'] = 'AND'; +$language['search_method_or'] = 'OR'; +$language['search_submit_btn'] = ' Search '; +$language['search_notfound'] = 'no search result with specified keyword.'; +$language['search_back'] = '[Back]'; +$language['category_nokeyword'] = 'Please enter category for searching similar posts.'; +$language['category_notfound'] = 'No matching posts for this category.'; +$language['category_recache'] = 'Recache'; +$language['module_info_top'] = 'Module Information'; +$language['module_loaded'] = 'Module Loaded:'; +$language['module_info'] = 'Module Infomation:'; +$language['info_top'] = 'System Information'; +$language['info_disabled'] = 'Disabled'; +$language['info_enabled'] = 'Enabled'; +$language['info_functional'] = 'Functional'; +$language['info_nonfunctional'] = 'Non functional'; +$language['info_basic'] = 'Basic Settings'; +$language['info_basic_ver'] = 'Program version'; +$language['info_basic_pio'] = 'PIO library backend and version'; +$language['info_basic_threadsperpage'] = 'Threads per page'; +$language['info_basic_threads'] = ''; +$language['info_basic_postsperpage'] = 'Replies to show in index'; +$language['info_basic_posts'] = ''; +$language['info_basic_postsinthread'] = 'Posts per page in Reply mode'; +$language['info_basic_posts_showall'] = '(Show all:0)'; +$language['info_basic_bumpposts'] = 'Do not bump post if reply is more than'; +$language['info_basic_bumphours'] = 'Thread bumping hours'; +$language['info_basic_hours'] = 'hour(s)'; +$language['info_basic_0disable'] = '(Disable:0)'; +$language['info_basic_urllinking'] = 'URL Auto Linking'; +$language['info_0no1yes'] = '(Yes:1 No:0)'; +$language['info_basic_com_limit'] = 'Maximum size of comments'; +$language['info_basic_com_after'] = ' Bytes'; +$language['info_basic_anonpost'] = 'Anonymous posting'; +$language['info_basic_anonpost_opt'] = '(Force anonymous:2 Yes:1 No:0)'; +$language['info_basic_del_incomplete'] = 'Delete incomplete images'; +$language['info_basic_use_sample'] = 'Use thumbnails (Quality: %1$s)'; +$language['info_0notuse1use'] = '(Use:1 Not used:0)'; +$language['info_basic_use_sample_func'] = '+ Thumbnails generation'; +$language['info_basic_useblock'] = 'IP blocking'; +$language['info_0disable1enable'] = '(Enable:1 Disable:0)'; +$language['info_basic_showid'] = 'Show ID'; +$language['info_basic_showid_after'] = '(force show:2 selective show:1 do not show:0)'; +$language['info_basic_cr_limit'] = 'Comment row limit'; +$language['info_basic_cr_after'] = ' Row(s) (unlimited:0)'; +//$language['info_basic_timezone'] = 'Time zone'; +$language['info_basic_max_lines_limit'] = 'Comment line limit'; +$language['info_basic_max_lines_after'] = ' Line(s) (unlimited:0)'; +$language['info_basic_threadcount'] = 'Total threads count'; +$language['info_basic_theme'] = 'Theme'; +$language['info_dsusage_top'] = 'Data source usage'; +$language['info_dsusage_max'] = 'Maximum size'; +$language['info_dsusage_usage'] = 'Usage'; +$language['info_dsusage_count'] = 'Current usage'; +$language['info_fileusage_top'] = 'Storage limit of images:'; +$language['info_fileusage_limit'] = 'Maximum size'; +$language['info_fileusage_count'] = 'Current usage'; +$language['info_fileusage_unlimited'] = 'Unlimited'; +$language['info_server_top'] = 'Server infomation'; +$language['info_server_gd'] = 'GD library '; +$language['init_permerror'] = 'No write permission in root directory. Please modify permission settings.
    '; +$language['init_inited'] = 'Environment initialized.
    Please edit this file and remove init() statement.
    '; +$language['action_main_notsupport'] = 'Backend does not support this operation.'; +$language['action_main_optimize'] = 'Optimization '; +$language['action_main_check'] = 'Check '; +$language['action_main_repair'] = 'Repair '; +$language['action_main_export'] = 'Export '; +$language['action_main_success'] = 'success!'; +$language['action_main_failed'] = 'failed!'; + +// lib_common.php +$language['head_home'] = 'Home'; +$language['head_search'] = 'Search'; +$language['head_info'] = 'Info'; +$language['head_admin'] = 'Admin'; +$language['head_refresh'] = 'Refresh'; +$language['form_top'] = 'Reply Mode'; +$language['form_showpostform'] = 'Post'; +$language['form_hidepostform'] = 'Hide form'; +$language['form_name'] = 'Name'; +$language['form_email'] = 'E-mail'; +$language['form_topic'] = 'Subject'; +$language['form_submit_btn'] = 'Submit'; +$language['form_comment'] = 'Comment'; +$language['form_attechment'] = 'File'; +$language['form_noattechment'] = 'No File'; +$language['form_contpost'] = 'Noko'; +$language['form_category'] = 'Category'; +$language['form_category_notice'] = '(Use , to seperate)'; +$language['form_delete_password'] = 'Password'; +$language['form_delete_password_notice']= '(Password used for post and file deletion, 8 chars max)'; +$language['form_notice'] = '

  • Supported file types are: %1$s
  • Maximum file size allowed is %2$s KB. Fill E-mail with sage for not bumping post.
  • Images greater than %3$s * %4$s pixels will be thumbnailed.
  • '; +$language['form_notice_storage_limit'] = '
  • Current storage usage: %1$s KB / %2$s KB
  • '; +$language['form_notice_noscript'] = '*** You disabled JavaScript, but this won\'t affect you when browsing and posting.'; +$language['error_back'] = 'Back'; +$language['ip_banned'] = 'Listed in IP/Hostname Blacklist'; +$language['ip_dnsbl_banned'] = 'Listed in DNSBL(%1$s) Blacklist'; + +// mainscript.js // regist_withoutcomment,regist_upload_notsupport,js_convert_sakura +$language['js_convert_sakura'] = 'Big5 sakura Japanese characters detected, please try to convert to standard one.'; + +$language['form_option1'] = 'Option1'; +$language['form_newt'] = 'New Thread'; + +$language['nothumb'] = 'Thumbnail unavailable'; +$language['long_comment'] = '「Comment too long. Click '; +$language['long_here'] = 'here'; +$language['long_see'] = ' to view the full text.」'; + +$language['def_sub'] = '無題'; +$language['def_name'] = '名無し'; +$language['def_com'] = ''; + +// Style tooltip: stuff inside [square brackets] MUST be left as is! +$language['style_tooltip'] = 'Switch to [what] style'; +// Title of stylesheet management page +$language['admin_stylesheets'] = 'Manage Stylesheets'; +$language['admin_imported'] = 'Imported from [file]'; +$language['admin_editing'] = 'Editing [file]'; +$language['admin_created'] = '[file] created!'; +$language['admin_updated'] = '[file] updated!'; +$language['admin_deleted'] = '[file] deleted!'; +// Headings for fields +$language['admin_is_default'] = 'Default?'; +$language['admin_style_default'] = 'Make this default'; +$language['admin_fullname'] = 'Full name'; +$language['admin_shortname'] = 'Short name'; +$language['admin_dispid'] = 'ID / Display order(0 to delete)'; +$language['admin_addstyle'] = 'Add [or modify] stylesheet entry'; +// This goes in [or modify] above +$language['admin_modstyle'] = 'or modify'; +$language['admin_new_file'] = 'File'; +$language['admin_new_id'] = 'Display order(Use existing ID to overwrite)'; +if(!defined("PIXMICAT_LANGUAGE")) print_r($language); +?> \ No newline at end of file diff --git a/lib/lang/en_US.php b/lib/lang/en_US.php new file mode 100755 index 0000000..1d7bfa6 --- /dev/null +++ b/lib/lang/en_US.php @@ -0,0 +1,240 @@ +File size exceeds server limitation.'; +$language['regist_upload_exceedcustom'] = 'Upload failed.
    File size exceeds limitation.'; +$language['regist_upload_incompelete'] = 'Upload failed.
    Incomplete upload. Please retry.'; +$language['regist_upload_direrror'] = 'Upload failed.
    Wrong setting of upload temporary directory. Please contact the system administrator.'; +$language['regist_upload_noimg'] = 'Please check No Image check box if you post without uploading an image!'; +$language['regist_upload_filenotfound'] = 'Upload failed.
    Server disabled file uploading, permission denied, or unsupported format.'; +$language['regist_upload_killincomp'] = '[Notice] Your sending was canceled because of the incorrect file size.'; +$language['regist_upload_notimage'] = 'Upload failed.
    Files other than image is not accepted.'; +$language['regist_upload_notsupport'] = 'Unsupported image.'; +$language['regist_upload_blocked'] = 'Upload failed.
    Uploading this image is blocked.'; +$language['regist_uploaded'] = 'Image %1$s uploaded.
    '; +$language['regist_sakuradetected'] = 'Big5 sakura Japanese characters detected.'; +$language['regist_withoutname'] = 'Please fill your name.'; +$language['regist_withoutsubject'] = 'Please fill the title.'; +$language['regist_withoutcomment'] = 'Please fill comment field if you don\'t upload an image.'; +$language['regist_withoutpassword'] = 'Please fill your password.'; +$language['regist_nametoolong'] = 'Name is too long.'; +$language['regist_emailtoolong'] = 'E-mail is too long.'; +$language['regist_topictoolong'] = 'Topic is too long.'; +$language['regist_longthreadnum'] = 'The thread you reply may be wrong.'; +$language['admin'] = 'Admin'; +$language['deletor'] = 'Deletor'; +$language['trip_pre'] = '◆'; +$language['trip_pre_fake'] = '◇'; +$language['cap_char'] = '★'; +$language['cap_char_fake'] = '☆'; +$language['regist_commenttoolong'] = 'Comment is too long.'; +$language['notice_incompletefile'] = 'Notice: Incomplete image.'; +$language['sun'] = 'Sun'; +$language['mon'] = 'Mon'; +$language['tue'] = 'Tue'; +$language['wed'] = 'Wed'; +$language['thu'] = 'Thu'; +$language['fri'] = 'Fri'; +$language['sat'] = 'Sat'; +$language['regist_successivepost'] = 'Please wait for a while for continuous posting.'; +$language['regist_duplicatefile'] = 'Upload failed.
    Same file uploaded lately.'; +$language['regist_threaddeleted'] = 'This thread is too old that it is deleted!'; +$language['regist_threadlocked'] = 'Thread is locked by administrator!'; +$language['regist_redirect'] = '%1$s Redirecting...

    If your browser don\'t redirect for you, please click: Return

    '; +$language['del_notchecked'] = 'Nothing selected for deletion. Please go back and select again.'; +$language['del_wrongpwornotfound'] = 'No such post or wrong password.'; +$language['admin_wrongpassword'] = 'Wrong password'; +$language['return'] = 'Return'; +$language['admin_remake'] = 'Update'; +$language['admin_frontendmanage'] = 'Front-End Manage (Sign in needed)'; +$language['admin_delete'] = 'Delete'; +$language['admin_top'] = 'Administrator mode'; +$language['admin_manageposts'] = 'Manage posts'; +$language['admin_optimize'] = 'Optimize'; +$language['admin_check'] = 'Check data source'; +$language['admin_repair'] = 'Repair data source'; +$language['admin_export'] = 'Export data'; +$language['admin_logout'] = 'Sign out'; +$language['admin_verify_btn'] = ' Sign in '; +$language['admin_archive'] = ''; +$language['admin_notices'] = '
    • If you want to delete a post, check the "delete" checkbox before that post and click Submit button.
    • If you want to delete image only, please check "Delete image only" checkbox and follow normal deletion procedures.
    • If you want to lock/unlock a thread, please check "Stop" checkbox of that thread and click "Submit" button.
    • Please press "Update" after managing posts.
    '; +$language['admin_submit_btn'] = ' Submit '; +$language['admin_reset_btn'] = ' Reset '; +$language['admin_list_header'] = ''; +$language['admin_archive_btn'] = 'A'; +$language['admin_stop_btn'] = 'Stop'; +$language['admin_totalsize'] = '[Total size of images: %1$s KB ]'; +$language['search_disabled'] = 'Search is disabled!'; +$language['search_top'] = 'Search'; +$language['search_notice'] = '
  • Please enter keyword and set search target, then press "Search" button.
  • Searching with multiple keywords can be done by seperating keywords with space.
  • You can set Search method("and searching" and "or searching") for multiple keywords searching.

    Keyword:'; +$language['search_target'] = 'Target:'; +$language['search_target_comment'] = 'Comment'; +$language['search_target_name'] = 'Name'; +$language['search_target_topic'] = 'Topic'; +$language['search_target_number'] = 'No.'; +$language['search_method'] = 'Method:'; +$language['search_method_and'] = 'AND'; +$language['search_method_or'] = 'OR'; +$language['search_submit_btn'] = ' Search '; +$language['search_notfound'] = 'no search result with specified keyword.'; +$language['search_back'] = '[Back]'; +$language['category_nokeyword'] = 'Please enter category for searching similar posts.'; +$language['category_notfound'] = 'No matching posts for this category.'; +$language['category_recache'] = 'Recache'; +$language['module_info_top'] = 'Module Information'; +$language['module_loaded'] = 'Module Loaded:'; +$language['module_info'] = 'Module Infomation:'; +$language['info_top'] = 'System Information'; +$language['info_disabled'] = 'Disabled'; +$language['info_enabled'] = 'Enabled'; +$language['info_functional'] = 'Functional'; +$language['info_nonfunctional'] = 'Non functional'; +$language['info_basic'] = 'Basic Settings'; +$language['info_basic_ver'] = 'Program version'; +$language['info_basic_pio'] = 'PIO library backend and version'; +$language['info_basic_threadsperpage'] = 'Threads per page'; +$language['info_basic_threads'] = ''; +$language['info_basic_postsperpage'] = 'Replies to show in index'; +$language['info_basic_posts'] = ''; +$language['info_basic_postsinthread'] = 'Posts per page in Reply mode'; +$language['info_basic_posts_showall'] = '(Show all:0)'; +$language['info_basic_bumpposts'] = 'Do not bump post if reply is more than'; +$language['info_basic_bumphours'] = 'Thread bumping hours'; +$language['info_basic_hours'] = 'hour(s)'; +$language['info_basic_0disable'] = '(Disable:0)'; +$language['info_basic_urllinking'] = 'URL Auto Linking'; +$language['info_0no1yes'] = '(Yes:1 No:0)'; +$language['info_basic_com_limit'] = 'Maximum size of comments'; +$language['info_basic_com_after'] = ' Bytes'; +$language['info_basic_anonpost'] = 'Anonymous posting'; +$language['info_basic_anonpost_opt'] = '(Force anonymous:2 Yes:1 No:0)'; +$language['info_basic_del_incomplete'] = 'Delete incomplete images'; +$language['info_basic_use_sample'] = 'Use thumbnails (Quality: %1$s)'; +$language['info_0notuse1use'] = '(Use:1 Not used:0)'; +$language['info_basic_use_sample_func'] = '+ Thumbnails generation'; +$language['info_basic_useblock'] = 'IP blocking'; +$language['info_0disable1enable'] = '(Enable:1 Disable:0)'; +$language['info_basic_showid'] = 'Show ID'; +$language['info_basic_showid_after'] = '(force show:2 selective show:1 do not show:0)'; +$language['info_basic_cr_limit'] = 'Comment row limit'; +$language['info_basic_cr_after'] = ' Row(s) (unlimited:0)'; +//$language['info_basic_timezone'] = 'Time zone'; +$language['info_basic_max_lines_limit'] = 'Comment line limit'; +$language['info_basic_max_lines_after'] = ' Line(s) (unlimited:0)'; +$language['info_basic_threadcount'] = 'Total threads count'; +$language['info_basic_theme'] = 'Theme'; +$language['info_dsusage_top'] = 'Data source usage'; +$language['info_dsusage_max'] = 'Maximum size'; +$language['info_dsusage_usage'] = 'Usage'; +$language['info_dsusage_count'] = 'Current usage'; +$language['info_fileusage_top'] = 'Storage limit of images:'; +$language['info_fileusage_limit'] = 'Maximum size'; +$language['info_fileusage_count'] = 'Current usage'; +$language['info_fileusage_unlimited'] = 'Unlimited'; +$language['info_server_top'] = 'Server infomation'; +$language['info_server_gd'] = 'GD library '; +$language['init_permerror'] = 'No write permission in root directory. Please modify permission settings.
    '; +$language['init_inited'] = 'Environment initialized.
    Please edit this file and remove init() statement.
    '; +$language['action_main_notsupport'] = 'Backend does not support this operation.'; +$language['action_main_optimize'] = 'Optimization '; +$language['action_main_check'] = 'Check '; +$language['action_main_repair'] = 'Repair '; +$language['action_main_export'] = 'Export '; +$language['action_main_success'] = 'success!'; +$language['action_main_failed'] = 'failed!'; + +// lib_common.php +$language['head_home'] = 'Home'; +$language['head_search'] = 'Search'; +$language['head_info'] = 'Info'; +$language['head_admin'] = 'Admin'; +$language['head_refresh'] = 'Refresh'; +$language['form_top'] = 'Reply Mode'; +$language['form_showpostform'] = 'Post'; +$language['form_hidepostform'] = 'Hide form'; +$language['form_name'] = 'Name'; +$language['form_email'] = 'E-mail'; +$language['form_topic'] = 'Subject'; +$language['form_submit_btn'] = 'Submit'; +$language['form_comment'] = 'Comment'; +$language['form_attechment'] = 'File'; +$language['form_noattechment'] = 'No File'; +$language['form_contpost'] = 'Noko'; +$language['form_category'] = 'Category'; +$language['form_category_notice'] = '(Use , to seperate)'; +$language['form_delete_password'] = 'Password'; +$language['form_delete_password_notice']= '(Password used for post and file deletion, 8 chars max)'; +$language['form_notice'] = '

  • Supported file types are: %1$s
  • Maximum file size allowed is %2$s KB. Fill E-mail with sage for not bumping post.
  • Images greater than %3$s * %4$s pixels will be thumbnailed.
  • '; +$language['form_notice_storage_limit'] = '
  • Current storage usage: %1$s KB / %2$s KB
  • '; +$language['form_notice_noscript'] = '*** You disabled JavaScript, but this won\'t affect you when browsing and posting.'; +$language['error_back'] = 'Back'; +$language['ip_banned'] = 'Listed in IP/Hostname Blacklist'; +$language['ip_dnsbl_banned'] = 'Listed in DNSBL(%1$s) Blacklist'; + +// mainscript.js // regist_withoutcomment,regist_upload_notsupport,js_convert_sakura +$language['js_convert_sakura'] = 'Big5 sakura Japanese characters detected, please try to convert to standard one.'; + +$language['form_option1'] = 'Option1'; +$language['form_newt'] = 'New Thread'; + +$language['nothumb'] = 'Thumbnail unavailable'; +$language['long_comment'] = '「Comment too long. Click '; +$language['long_here'] = 'here'; +$language['long_see'] = ' to view the full text.」'; + +$language['def_sub'] = '無題'; +$language['def_name'] = '名無し'; +$language['def_com'] = ''; + +// Style tooltip: stuff inside [square brackets] MUST be left as is! +$language['style_tooltip'] = 'Switch to [what] style'; +// Title of stylesheet management page +$language['admin_stylesheets'] = 'Manage Stylesheets'; +$language['admin_imported'] = 'Imported from [file]'; +$language['admin_editing'] = 'Editing [file]'; +$language['admin_created'] = '[file] created!'; +$language['admin_updated'] = '[file] updated!'; +$language['admin_deleted'] = '[file] deleted!'; +// Headings for fields +$language['admin_is_default'] = 'Default?'; +$language['admin_style_default'] = 'Make this default'; +$language['admin_fullname'] = 'Full name'; +$language['admin_shortname'] = 'Short name'; +$language['admin_dispid'] = 'ID / Display order(0 to delete)'; +$language['admin_addstyle'] = 'Add [or modify] stylesheet entry'; +// This goes in [or modify] above +$language['admin_modstyle'] = 'or modify'; +$language['admin_new_file'] = 'File'; +$language['admin_new_id'] = 'Display order(Use existing ID to overwrite)'; +if(!defined("PIXMICAT_LANGUAGE")) print_r($language); +?> \ No newline at end of file diff --git a/lib/lang/ja_JP.php b/lib/lang/ja_JP.php new file mode 100755 index 0000000..f9dfa2d --- /dev/null +++ b/lib/lang/ja_JP.php @@ -0,0 +1,241 @@ +PHPファイルサイズオーバー'; +$language['regist_upload_exceedcustom'] = 'アップロードに失敗しました
    ファイルサイズオーバー'; +$language['regist_upload_incompelete'] = 'アップロードに失敗しました
    ファイルが破損しています'; +$language['regist_upload_direrror'] = 'アップロードに失敗しました
    パーミッションエラー'; +$language['regist_upload_noimg'] = '画像がありません'; +$language['regist_upload_filenotfound'] = 'アップロードに失敗しました
    サーバがサポートしていない可能性があります'; +$language['regist_upload_killincomp'] = '[Notice] Your sending was canceled because of the incorrect file size.'; +$language['regist_upload_notimage'] = 'アップロードに失敗しました
    画像ファイル以外は受け付けません'; +$language['regist_upload_notsupport'] = 'アップロードに失敗しました
    GIF,JPG,PNG以外の画像ファイルは受け付けません'; +$language['regist_upload_blocked'] = 'アップロードに失敗しました
    禁止画像です'; +$language['regist_uploaded'] = '画像 %1$s のアップロードが成功しました
    '; +$language['regist_sakuradetected'] = '櫻花仮名を検出した'; +$language['regist_withoutname'] = '名前がありません'; +$language['regist_withoutsubject'] = '題名がありません'; +$language['regist_withoutcomment'] = '何か書いて下さい'; +$language['regist_withoutpassword'] = '削除キーが未入力です'; +$language['regist_nametoolong'] = '名前が長すぎます'; +$language['regist_emailtoolong'] = 'メル欄が長すぎます'; +$language['regist_topictoolong'] = '題名が長すぎます'; +$language['regist_longthreadnum'] = '変なレス番号指定するんじゃないの'; +$language['admin'] = '管理'; +$language['deletor'] = '削除'; +$language['trip_pre'] = '◆'; +$language['trip_pre_fake'] = '◇'; +$language['cap_char'] = '★'; +$language['cap_char_fake'] = '☆'; +$language['regist_commenttoolong'] = 'コメントが長すぎます'; +$language['notice_incompletefile'] = '注意:ファイルが破損しています'; +$language['sun'] = '日'; +$language['mon'] = '月'; +$language['tue'] = '火'; +$language['wed'] = '水'; +$language['thu'] = '木'; +$language['fri'] = '金'; +$language['sat'] = '土'; +$language['regist_successivepost'] = '連続投稿はもうしばらく時間を置いてからお願い致します'; +$language['regist_duplicatefile'] = 'アップロードに失敗しました
    同じ画像があります'; +$language['regist_threaddeleted'] = 'スレッドがありません'; +$language['regist_threadlocked'] = 'もう書けませんです'; +$language['regist_redirect'] = '%1$s 画面を切り替えます。

    しばらく待っても変わらない場合は、こちらをクリックしてください。

    '; +$language['del_notchecked'] = '何でもない削除のために選択されなかった。'; +$language['del_wrongpwornotfound'] = '該当記事が見つからないかパスワードが間違っています'; +$language['admin_wrongpassword'] = 'パスワードが違います'; +$language['return'] = '掲示板に戻る'; +$language['admin_remake'] = 'ログを更新する'; +$language['admin_frontendmanage'] = 'フロントエンド管理 (認証が必要です)'; +$language['admin_delete'] = '削除する'; +$language['admin_top'] = '管理モード'; +$language['admin_manageposts'] = '記事管理'; +$language['admin_optimize'] = 'テーブルを最適化する'; +$language['admin_check'] = 'テーブルをチェックする'; +$language['admin_repair'] = 'テーブルを修復する'; +$language['admin_export'] = 'データをエクスポートする'; +$language['admin_logout'] = 'ログアウト'; +$language['admin_verify_btn'] = ' 認証 '; +$language['admin_archive'] = ''; +$language['admin_notices'] = '
    • 削除したい記事の削除チェックボックスにチェックを入れ、実行ボタンを押して下さい。
    • 終了/再開したいスレのストップチェックボックスにチェックを入れ、実行ボタンを押して下さい。
    • 記事を管理した後に、[ログを更新する]を押してください。
    '; +$language['admin_submit_btn'] = ' 実行する '; +$language['admin_reset_btn'] = ' リセット '; +$language['admin_list_header'] = ''; +$language['admin_archive_btn'] = '保管'; +$language['admin_stop_btn'] = 'ストップ'; +$language['admin_totalsize'] = '【 画像データ合計 : %1$s KB 】'; +$language['search_disabled'] = '検索は禁じられます。'; +$language['search_top'] = '検索'; +$language['search_notice'] = '
  • お探しの記事に関連する言葉をキーワード入力欄に入力して検索ボタンを押してください。
  • 複数のキーワードの間にスペースを入れて入力します。
  • 複数キーワード間の検索条件を細かく指定する場合に利用します。

    キーワード:'; +$language['search_target'] = '検索対象:'; +$language['search_target_comment'] = 'コメント'; +$language['search_target_name'] = 'お名前'; +$language['search_target_topic'] = '題名'; +$language['search_target_number'] = '記事No.'; +$language['search_method'] = '検索条件:'; +$language['search_method_and'] = 'AND'; +$language['search_method_or'] = 'OR'; +$language['search_submit_btn'] = ' 検索 '; +$language['search_notfound'] = 'キーワードにマッチする記事がありませんでした。'; +$language['search_back'] = '[戻る]'; +$language['category_nokeyword'] = '探すことの同様の記事のためにカテゴリに入ってください。'; /***/ +$language['category_notfound'] = 'カテゴリにマッチする記事がありませんでした。'; +$language['category_recache'] = 'キャッシュを更新する'; +$language['module_info_top'] = 'モジュール情報'; +$language['module_loaded'] = 'Module Loaded:'; +$language['module_info'] = 'Module Infomation:'; +$language['info_top'] = 'システム情報'; +$language['info_disabled'] = '無効'; +$language['info_enabled'] = '有効'; +$language['info_functional'] = '働ける'; +$language['info_nonfunctional'] = '働けない'; +$language['info_basic'] = '基本設定'; +$language['info_basic_ver'] = 'バージョン'; +$language['info_basic_pio'] = 'PIO バックエンドとバージョン'; +$language['info_basic_threadsperpage'] = '1ページに表示する記事'; +$language['info_basic_threads'] = '件'; +$language['info_basic_postsperpage'] = 'スレに表示するレス'; +$language['info_basic_posts'] = '件'; +$language['info_basic_postsinthread'] = '1ページに表示するレス'; +$language['info_basic_posts_showall'] = '(すべて:0)'; +$language['info_basic_bumpposts'] = '強制sageレス数'; +$language['info_basic_bumphours'] = '強制sageまでの時間'; +$language['info_basic_hours'] = '時間'; +$language['info_basic_0disable'] = '(無効:0)'; +$language['info_basic_urllinking'] = 'URLをリンク'; +$language['info_0no1yes'] = '(する:1 しない:0)'; +$language['info_basic_com_limit'] = 'コメント欄最大文字数'; +$language['info_basic_com_after'] = ''; +$language['info_basic_anonpost'] = '名前を必須に'; +$language['info_basic_anonpost_opt'] = '(強制名無し化:2 いいえ:1 はい:0)'; +$language['info_basic_del_incomplete'] = '破損したファイルを消す'; +$language['info_basic_use_sample'] = 'サムネイルを作る (画質:%1$s)'; +$language['info_0notuse1use'] = '(する:1 しない:0)'; +$language['info_basic_use_sample_func'] = '└ サムネイルを作り関数'; +$language['info_basic_useblock'] = '拒絶するホスト'; +$language['info_0disable1enable'] = '(有効:1 無効:0)'; +$language['info_basic_showid'] = 'IDを表示する?'; +$language['info_basic_showid_after'] = '(強制:2 する:1 しない:0)'; +$language['info_basic_cr_limit'] = '改行を抑制する行数'; +$language['info_basic_cr_after'] = ' 行 (しない:0)'; +//$language['info_basic_timezone'] = '時間帯設定'; +$language['info_basic_max_lines_limit'] = '改行を抑制する行数'; +$language['info_basic_max_lines_after'] = ' 線 (しない:0)'; +$language['info_basic_threadcount'] = '現在のスレ数'; +$language['info_basic_theme'] = 'テーマ'; +$language['info_dsusage_top'] = 'データソース使用量'; +$language['info_dsusage_max'] = '最大値'; +$language['info_dsusage_usage'] = '使用率'; +$language['info_dsusage_count'] = '現在の値'; +$language['info_fileusage_top'] = '添付ファイル容量リミット:'; +$language['info_fileusage_limit'] = '大きさの上限'; +$language['info_fileusage_count'] = '現在の容量'; +$language['info_fileusage_unlimited'] = '限界なし'; +$language['info_server_top'] = 'サーバー支援情報'; +$language['info_server_gd'] = 'GD モジュール'; +$language['init_permerror'] = 'カレントディレクトリに書けません
    '; +$language['init_inited'] = '環境初始化成功した!
    このファイルを編集して、init()を削除してください。
    '; +$language['action_main_notsupport'] = 'バックエンドには、この動作がありません。'; +$language['action_main_optimize'] = 'テーブル最適化'; +$language['action_main_check'] = 'テーブルチェック'; +$language['action_main_repair'] = 'テーブル修復'; +$language['action_main_export'] = 'データエクスポート'; +$language['action_main_success'] = '成功した'; +$language['action_main_failed'] = '失敗した'; + +// lib_common.php +$language['head_home'] = 'ホーム'; +$language['head_search'] = '検索'; +$language['head_info'] = 'システム情報'; +$language['head_admin'] = '管理用'; +$language['head_refresh'] = 'リロード'; +$language['form_top'] = 'レス送信モード'; +$language['form_showpostform'] = '投稿'; +$language['form_hidepostform'] = 'フォームを隠す'; +$language['form_name'] = 'おなまえ'; +$language['form_email'] = 'E-mail'; +$language['form_topic'] = '題  名'; +$language['form_submit_btn'] = '送信する'; +$language['form_comment'] = 'コメント'; +$language['form_attechment'] = '添付File'; +$language['form_noattechment'] = '画像なし'; +$language['form_contpost'] = '連貼り'; +$language['form_category'] = 'カテゴリ'; +$language['form_category_notice'] = '(複数のカテゴリの間に「,」を入れて入力します)'; +$language['form_delete_password'] = '投稿キー'; +$language['form_delete_password_notice']= '(記事の削除用。英数字で8文字以内)'; +$language['form_notice'] = '

  • 添付可能ファイル:%1$s
    ブラウザによっては正常に添付できないことがあります。
  • 最大投稿データ量は %2$s KBまで。sage機能付き。
  • 画像は横 %3$s ピクセル、縦 %4$s ピクセルを超えると縮小表示されます。
  • '; +$language['form_notice_storage_limit'] = '
  • 現在の添付ファイル使用量: %1$s KB / %2$s KB
  • '; +$language['form_notice_noscript'] = '*JavaScriptは無効にでもブラウジングと返信に影響しない。'; +$language['error_back'] = '戻る'; +$language['ip_banned'] = 'IP/ホスト名ブラックリストに記載されています。'; +$language['ip_dnsbl_banned'] = 'DNSBL(%1$s) ブラックリストに記載されています。'; + +// mainscript.js // regist_withoutcomment,regist_upload_notsupport,js_convert_sakura +$language['js_convert_sakura'] = '櫻花仮名を検出した。変換します。'; + + +$language['form_option1'] = 'オプション1'; +$language['form_newt'] = '新スレッド'; + +$language['nothumb'] = '入手できないサムネイル'; +$language['long_comment'] = '「省略されました・・全てを読むには'; +$language['long_here'] = 'ここ'; +$language['long_see'] = 'を押してください」'; + +$language['def_sub'] = '無題'; +$language['def_name'] = '名無し'; +$language['def_com'] = '本文なし'; + +// Style tooltip: stuff inside [square brackets] MUST be left as is! +$language['style_tooltip'] = 'スイッチは[what]スタイル'; +// Title of stylesheet management page +$language['admin_stylesheets'] = 'スタイルシートを管理して'; +$language['admin_imported'] = 'インポートから [file]'; +$language['admin_editing'] = '編集 [file]'; +$language['admin_created'] = '作成 [file]!'; +$language['admin_updated'] = 'を更新 [file]!'; +$language['admin_deleted'] = '削除 [file]!'; +// Headings for fields +$language['admin_is_default'] = 'デフォルトのですか?'; +$language['admin_style_default'] = 'このデフォルトにする'; +$language['admin_fullname'] = '本当の名前'; +$language['admin_shortname'] = '表示名前'; +$language['admin_dispid'] = 'ID / 表示順(タイプ0この項目を削除する)'; +$language['admin_addstyle'] = '追加 [or modify] スタイルシートのエントリ'; +// This goes in [or modify] above +$language['admin_modstyle'] = 'または変更'; +$language['admin_new_file'] = 'ファイル'; +$language['admin_new_id'] = '表示順(既存のID番号を使用して、アイテムを上書きする)'; +if(!defined("PIXMICAT_LANGUAGE")) print_r($language); +?> diff --git a/lib/lang/strings_en.phps b/lib/lang/strings_en.phps new file mode 100755 index 0000000..f3c2f86 --- /dev/null +++ b/lib/lang/strings_en.phps @@ -0,0 +1,359 @@ + Animation stop'); // gif/png stop text +define("S_OR",' or '); //the or in gif/png stop text +define("S_REQUIRE", 'Required'); +define("S_NONAMEF", 'No Name field'); +define("S_IDDISP", 'ID Display'); +define("S_RETURNTO", 'Noko'); +define("S_SPAMTRAP", 'Leave these fields empty (spam trap):'); + +define("S_FRULES", '
  • Supported file types are: BMP, GIF, JPG, PNG [YES! BITMAP!] +
  • Maximum file size allowed is '.MAX_KB.' KB. +
  • '.MAX_W.'x'.MAX_H.' or larger will be thumbnailed.'); +/*
  • Images greater than '.MAX_W.'x'.MAX_H.'pixels will be thumbnailed.*/ +define("S_MINHWRULES1", '
  • Images smaller than '); +define("S_MAXHWRULES1", '
  • Images greater than '); +define("S_MINHWRULES2", ' pixels are not allowed.'); +define("S_MAXHWRULES2", ' pixels are not allowed.'); + //Prints file rules under posting section +define("S_FANIMERULES1", '
  • On the '); +define("S_FANIMERULES2", ' Animation stop, check it for a thumbnail of '); +define("S_FANIMERULES3", ' file.'); +define("S_FVOTERULES", '
  • The vote function to the image starts to write uvotev in the E-mail column.'); +define("S_EDIT_RULE", '
  • If fields are not edited, there will be an ERROR'); + +/*if(!USE_IMG){ +define("S_FRULES_BOX", '
  • ".RES_MARK.""; + + $template['foot_box'] = FALSE; +} +//================ + //‚Q‚¿‚á‚ñ‚Ë‚é template +if(TEMPLATE === 1){ +//form + $template['form_box'] = ''."\n"; + $template['td1'] = ''; +//updatelog + $template['surelist'] = '
    '; + $template['td2'] = '
    ';//
    + + $template['sub_size'] = '+6'; + $template['surebox1'] = ''."\n"; + $template['surebox2'] = ' + +  + + + + + +','')--> + + + + +
    '; + $template['disa'] = "
    "; + $template['brcl'] = "
    "; + $template['rbox'] = "
    '."\n"; +} +?> diff --git a/data/css/burichan.css b/data/css/burichan.css new file mode 100755 index 0000000..532e1d6 --- /dev/null +++ b/data/css/burichan.css @@ -0,0 +1,168 @@ +html, body { + font-size:12pt; + background:#EEF2FF; + color:#000000; +} +a { + background:inherit; + color:#34345C; + text-decoration:none; + font-family:sans-serif; +} +a:visited { + background:inherit; + color:#34345C; + text-decoration:none; + font-family:sans-serif; +} +a:hover { + color:#DD0000; + background:inherit; + text-decoration:underline; + font-family:sans-serif; +} +.adminbar { + text-align:right; + background:inherit; + clear:both; + float:right; +} +.logo { + clear:both; + text-align:center; + background:inherit; + font-size:24pt; + color:#AF0A0F; + width:100%; +} +.theader { + background:#0010E0; + color:#FFFFFF; + width:100%; +} +.postarea { + background:inherit; +} +.rules { + font-size:10px; + font-family:sans-serif; +} +.postblock { + background:#9988EE; + color:#000000; + font-weight:800; +} +.footer { + text-align:center; + font-size:10px; + font-family:sans-serif; +} +.passvalid { + background:#9988EE; + text-align:center; + width:100%; + color:#ffffff; +} +.dellist { + background:inherit; + text-align:center; +} +.delbuttons { + background:inherit; + text-align:center; + padding-bottom:4px; + +} +.managehead { + background:#0F8FE1; + color:#000000; + font-family:sans-serif; + font-size:14px; + padding:0px; +} +.postlists { + background:#FFFFFF; + width:100%; + padding:0px; + color:#000000; +} +.row1 { + background:#9AD2F6; + font-family:sans-serif; + font-size:12px; + color:#000000; +} +.row2 { + background:#FFFFFF; + font-family:sans-serif; + font-size:12px; + color:#000000; +} +.unkfunc { + background:#C4C2EE; + color:#FFFFFF; +} +.filesize { + font-size:12px; + font-family:sans-serif; + text-decoration:underline; + padding-left:3em; +} +.filetitle { + background:inherit; + font-size:18px; + font-family:serif; + color:#0F0C5D; + font-weight:800; +} +.postername { + background:inherit; + font-size:12px; + font-family:serif; + color:#117743; + font-weight:800; +} +.oldpost { + background:inherit; + font-size:18px; + font-family:serif; + color:#0F0C5D; + font-weight:800; +} +.omittedposts { + background:inherit; + font-size:18px; + font-family:serif; + color:#070707; + font-weight:800; +} +.reply { + background:#D6DAF0; + color:#000000; + font-family:serif; +} +.doubledash { + vertical-align:top; + clear:both; + float:left; +} +.replytitle { + background:inherit; + font-size:18px; + font-family:serif; + color:#0F0C5D; + font-weight:800; +} +.commentpostername { + background:inherit; + font-size:12px; + font-family:serif; + color:#117743; + font-weight:800; +} +.thumbnailmsg { + background:inherit; + font-size:9px; + font-family:sans-serif; + color:#000000; +} diff --git a/data/css/futaba.css b/data/css/futaba.css new file mode 100755 index 0000000..b240e1d --- /dev/null +++ b/data/css/futaba.css @@ -0,0 +1,143 @@ +html, body { + background:#FFFFEE; + color:#800000; +} +a { + color:#0000EE; +} +a:hover { + color:#DD0000; +} +.adminbar { + text-align:right; + clear:both; + float:right; +} +.logo { + clear:both; + text-align:center; + font-size:2em; + color:#800000; + width:100%; +} +.theader { + background:#E04000; + text-align:center; + padding:2px; + color:#FFFFFF; + width:100%; +} +.catalogmode { + background:#0040E0; + text-align:center; + padding:2px; + color:#FFFFFF; + width:100%; +} +.postarea { +} +.rules { + font-size:0.7em; +} +.postblock { + background:#EEAA88; + color:#800000; + font-weight:800; +} +.footer { + text-align:center; + font-size:12px; + font-family:serif; +} +.passvalid { + background:#E08000; + text-align:center; + width:100%; + color:#FFFFFF; +} +.dellist { + font-weight: bold; + text-align:center; +} +.delbuttons { + text-align:center; + padding-bottom:4px; + +} +.managehead { + background:#6080F6; + color:#800000; + padding:0px; +} +.postlists { + background:#FFFFFF; + width:100%; + padding:0px; + color:#800000; +} +.row1 { + background:#F6F6F6; + color:#800000; +} +.row2 { + background:#D6D6F6; + color:#800000; +} +.unkfunc { + background:inert; + color:#789922; +} +.filesize { + text-decoration:none; +} +.filetitle { + background:inherit; + font-size:1.2em; + color:#CC1105; + font-weight:800; +} +.postername { + color:#117743; + font-weight:bold; +} +.postertrip { + color:#228854; +} +.oldpost { + color:#CC1105; + font-weight:800; +} +.omittedposts { + color:#707070; +} +.reply { + background:#F0E0D6; + color:#800000; +} +.replyhl { + background:#F0E0D6; + color:#800000; + border: 2px dashed #EEAA88; +} +.doubledash { + vertical-align:top; + clear:both; + float:left; +} +.replytitle { + font-size: 1.2em; + color:#CC1105; + font-weight:800; +} +.commentpostername { + color:#117743; + font-weight:800; +} +.thumbnailmsg { + font-size: small; + color:#800000; +} + +.abbrev { + color:#707070; +} diff --git a/data/css/gurochan.css b/data/css/gurochan.css new file mode 100755 index 0000000..48b76af --- /dev/null +++ b/data/css/gurochan.css @@ -0,0 +1,119 @@ +html, body { + font-size:10pt; + background:#EDDAD2; + color:#000000; +} +* { + font-family: "Trebuchet MS", Tahoma, Verdana, Arial, sans-serif; + font-size: 10pt; +} +input, textarea { + background-color: #E6CBC0; + border: 1px solid #CA927B; +} +a { + background:inherit; + color:#34345C; +} +a:visited { + background:inherit; + color:#34345C; +} +a:hover { + color:#DD0000; + background:inherit; +} +a.quotelink { + background:inherit; + color:#DD0000; +} +.logo { + clear:both; + text-align:center; + background:inherit; + font-size:24pt; + color:#AF0A0F; + width:100%; +} +.postarea { + background:inherit; +} +.postblock { + background: #D9AF9E; + border: 1px solid #CA927B; + color: black; + font-weight: bold; + padding: 2px 5px 2px 5px; +} +.footer { + text-align:center; + font-size:12px; +} +.unkfunc { + background:inert; + color:#789922; +} +.filesize { + text-decoration:none; +} +.filetitle { + background:inherit; + color:#0F0C5D; + font-weight:800; +} +.postername { + background:inherit; + font-size:11pt; + color:#117743; + font-weight: bold; +} +.postertrip { + background:inherit; + color:#228854; +} +.oldpost { + background:inherit; + color:#0F0C5D; + font-weight:800; +} +.omittedposts { + background:inherit; + color:#070707; +} +.reply { + background:#D9AF9E; + color:#000000; + border:1px solid #CA927B; +} +.replyhl { + background:#D6BAD0; + color:#000000; +} +.doubledash { + vertical-align:top; + clear:both; + float:left; +} +.replytitle { + background:inherit; + font-size:18px; + color:#0F0C5D; + font-weight:800; +} +.commentpostername { + background:inherit; + font-size:11pt; + color:#117743; + font-weight: bold; +} +a.quotejs { + color:#000000; + text-decoration: none; +} +a.quotejs:hover { + font-weight:bold; +} + +.adminbar { + text-align: center; +} \ No newline at end of file diff --git a/data/css/kusaba.css b/data/css/kusaba.css new file mode 100755 index 0000000..8e3b373 --- /dev/null +++ b/data/css/kusaba.css @@ -0,0 +1,232 @@ +html, body { + font-size:12pt; + background:#EEFFEE; + color:#000000; +} +a { + background:inherit; + color:#345C34; + text-decoration:none; + font-family:sans-serif; +} +a:visited { + background:inherit; + color:#345C34; + text-decoration:none; + font-family:sans-serif; +} +a:hover { + color:#117743; + background:inherit; + text-decoration:underline; + font-family:sans-serif; +} +.adminbar { + text-align:right; + background:inherit; + clear:both; + float:right; +} +.logo { + clear:both; + text-align:center; + background:inherit; + font-size:24pt; + color:#117743; + width:100%; +} +.theader { + background:#00E010; + color:#FFFFFF; + width:100%; +} +.postarea { + background:inherit; +} +.rules { + font-size:10px; + font-family:sans-serif; +} +.postblock { + background:#88DD88; + color:#000000; + font-weight:800; +} +.footer { + text-align:center; + font-size:10px; + font-family:sans-serif; +} +.passvalid { + background:#99EE88; + text-align:center; + width:100%; + color:#ffffff; +} +.dellist { + background:inherit; + text-align:center; +} +.delbuttons { + background:inherit; + text-align:center; + padding-bottom:4px; + +} +.managehead { + background:#0FE18F; + color:#000000; + font-family:sans-serif; + font-size:14px; + padding:0px; +} +.postlists { + background:#FFFFFF; + width:100%; + padding:0px; + color:#000000; +} +.row1 { + background:#9AF6D2; + font-family:sans-serif; + font-size:12px; + color:#000000; +} +.row2 { + background:#FFFFFF; + font-family:sans-serif; + font-size:12px; + color:#000000; +} +.unkfunc { + color:#117743; +} +.filesize { + font-size:12px; + font-family:sans-serif; + text-decoration:underline; + padding-left:3em; +} +.filetitle { + background:inherit; + font-size:18px; + font-family:serif; + color:#0F5D0C; + font-weight:800; +} +.postername { + background:inherit; + font-family:serif; + color:#117743; + font-weight:bold; +} +.postername a { + font-family:inherit; +} +.oldpost { + background:inherit; + font-size:18px; + font-family:serif; + color:#0F5D0C; + font-weight:800; +} +.omittedposts { + background:inherit; + font-size:18px; + font-family:serif; + color:#070707; + font-weight:800; +} +.reply { + background:#DAF0D6; + color:#000000; + font-family:serif; +} +.doubledash { + vertical-align:top; + clear:both; + float:left; +} +.replytitle { + background:inherit; + font-size:18px; + font-family:serif; + color:#0F5D0C; + font-weight:800; +} +.commentpostername { + background:inherit; + font-size:12px; + font-family:serif; + color:#117743; + font-weight:800; +} +.thumbnailmsg { + background:inherit; + font-size:9px; + font-family:sans-serif; + color:#000000; +} + +.replyhl { + background: #88DD88; + border: 2px dashed #117743; +} + +#watchedthreads { + background-color: #DAF0D6 !important; + border: 1px solid #88DD88 !important; +} + +.replymode { + background:#DAF0D6; + text-align:center; + padding:2px; + color:#000000; + width:100%; + font-weight: bold; +} +.catalogmode { + background:#88DD88; + text-align:center; + padding:2px; + color:#000000; + width:100%; + font-weight: bold; +} + +.hidethread { + background: transparent url('./icons/green/icons.gif') -32px -16px no-repeat; +} + +.unhidethread { + background: transparent url('./icons/green/icons.gif') -48px 0px no-repeat; +} + +.watchthread { + background: transparent url('./icons/green/icons.gif') -32px 0px no-repeat; +} + +.expandthread { + background: transparent url('./icons/green/icons.gif') 0px -16px no-repeat; +} + +.quickreply { + background: transparent url('./icons/green/icons.gif') 0px 0px no-repeat; +} + +.hidewatchedthreads { + background: transparent url('./icons/green/icons.gif') -48px -16px no-repeat; +} + +.refreshwatchedthreads { + background: transparent url('./icons/green/icons.gif') -16px -16px no-repeat; +} + +.restorewatchedthreads { + background: transparent url('./icons/green/icons.gif') -16px 0px no-repeat; +} + +.reflinkpreview { + background-color: #DAF0D6 !important; +} \ No newline at end of file diff --git a/data/css/lightbox.css b/data/css/lightbox.css new file mode 100755 index 0000000..daba330 --- /dev/null +++ b/data/css/lightbox.css @@ -0,0 +1,29 @@ +#lightbox { + background-color: #eee; + padding: 10px; + border-bottom: 1px solid #666; + border-right: 1px solid #666; +} +#overlay { + background-image: url(../css/lightbox/overlay.gif); +} +#lightboxCaption { + color: #333; + background-color: #eee; + font-size: 90%; + text-align: center; + border-bottom: 1px solid #666; + border-right: 1px solid #666; +} +#lightboxIndicator { + border: 1px solid #fff; +} +#lightboxOverallView { + background-image: url(../css/lightbox/overlay.png); +} +* html #lightboxOverallView, +* html #overlay { + background-color: #000; + background-image: url(../css/lightbox/blank.gif); + filter: Alpha(opacity=50); +} diff --git a/data/css/lightbox/blank.gif b/data/css/lightbox/blank.gif new file mode 100755 index 0000000000000000000000000000000000000000..07f3e450f387098109bedfb34b4053eb98772d24 GIT binary patch literal 166 zcmZ?wbhEHbyu@I{Fp&WS{(}LKq4<-9RfK_wK?fuXl4oElpVGhb^jrSLbGF>--h6M* zZ~nGN9@Cz6E_-!q+dJ;#pM0)=>wW&~-1mR{JY4NZ7JcmS(VBi{*=NpPujN-(eeF7% zwf)Yz@7#Rd$DeHa+2gnR`kQUPdHYX4|FY|E-}%?y|LptEFQH-K5s^{RF=NG!6E|M` P;E>d`^yCa-V6X-NP100c literal 0 HcmV?d00001 diff --git a/data/css/lightbox/overlay.gif b/data/css/lightbox/overlay.gif new file mode 100755 index 0000000000000000000000000000000000000000..fcce60a5b2478d4d01bc38deff30070506984d4a GIT binary patch literal 401 zcmV;C0dD?BNk%w1VSoUD0Du7i00030|NkNW7(;SpVRU6=Aa`kWXdqN*WgtgMO;8|S zUH~Ea1OW;F0RSuj0001h0Du4h0{%pdr^)LLpNw?cim%kU^Y4Y=NQowio@%)AW`i#seFta#j544G`W{MdZ>j65wJ-FH1$ z9hj}RP1wEnjXf?NE_Ys6j+gGXe%Jo?jy^9Re|Dc%&z4`dzt%6zKYRlP2K;gmPQp0_ z!8F{mFv>%O6D3Bxa?wu4O*|E`bY!ye$VZGLMTUHGl21vLD^;c})UruTCo_%I%<;0v vO_(_a_5Aab$4;O_Zxodgw8qgLNrg6j@ziM46;oj>g?iO$)e~D&6aWA_=n%c~ literal 0 HcmV?d00001 diff --git a/data/css/lightbox/overlay.png b/data/css/lightbox/overlay.png new file mode 100755 index 0000000000000000000000000000000000000000..a344996fa886f0f3f722d051b63d8d65612e76f1 GIT binary patch literal 504 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ za0`Jj .inputtext { height: auto; padding-top: 2px; padding-bottom: 3px; } +.inputtext:focus { border: 1px solid #ea8; } +.logo img { border: 1px solid #800; } +.logo b span { font-family: tahoma; } +.logo span { font-size: 28px; letter-spacing: -2px; } +hr { border: none; border-top: 1px solid #D9BFB7; height: 0px; } +.postblock { border: 1px solid #800; font-size: 10pt; padding: 0px 5px; } +.rules { font-size: 10pt; } +.rules a { text-decoration: none; } + +form a img { margin-top: 3px; } + +iframe, .rotating { background: #F0E0D6; border-right: 1px solid #D9BFB7; border-bottom: 1px solid #D9BFB7; } + +.pages { border: none; background:#F0E0D6; border-right: 1px solid #D9BFB7; border-bottom: 1px solid #D9BFB7; } +.pages td { border: none; padding: 1px 5px; } +.pages td { color: #b86; } +.pages td b { color: #800; } + +.deletebuttons { text-align: right; } +.deletebuttons br { display: none; } + +a, a:visited { + color: #0000EE; +} + +a:hover { + color: #DD0000; +} + +a.quotelink { + color: #000080; +} + +.logo { + clear: both; + text-align: center; + font-size: 24pt; + color: #800000; + width: 100%; +} + +form { + margin-top: 0px; +} + +.rules { + width: 468px; + font-size: 10px; +} + +.rules a, .rules a:visited, .rules a:link { +} + + +.rules > li { + list-style: none; +} +.rules > li:before { content: "\2022 \20"; } + +.postblock { + background: #EEAA88; + color: #800000; + font-weight: 800; +} + +.footer { + text-align: center; + font-size: 12px; +} + +.unkfunc { + color: #789922; +} + +.filesize { + text-decoration: none; +} +td .filesize { display: inline; background: none; } + +.filesize span, span.postername, span.filetitle, span.commentpostername { + unicode-bidi: embed; +} + +.filetitle, .replytitle { + + color: #CC1105; + font-weight: 800; +} + +.postername, .commentpostername { + color: #117743; + font-weight: 800; +} + +.postertrip { + background: inherit; + color: #228854; +} + +.oldpost { + background: inherit; + color: #f00000; + font-weight: 800; +} + +.omittedposts, .abbr { + color: #707070; +} + +.reply { + background: #F0E0D6; + color: #800000; +} + +.replyhl { + background: #F0C0B0; + color: #800000; +} + +.doubledash { + vertical-align: top; + clear: both; + float: left; +} + +a.quotejs:active, a.quotejs:link, a.quotejs:visited { + color: #800000; + text-decoration: none; +} + +a.quotejs:hover { + color: #d00; +} + +.tn_thread { + width: 200px; + height: 100px; + margin: 0px 20px 20px 20px; + float: left; + background: #eed; + border: #ea8 1px solid; + text-align: center; +} + +.tn_reply { + width: 100px; + height: 100px; + margin: 0px 20px 20px 20px; + float: left; + background: #eed; + border: #ea8 1px solid; + text-align: center; +} + +#ad { + width: 300px; + margin: 0; + padding: 0; + position: absolute; + left: 50%; + margin-left:-394px; /* -300 - 10 - (468-300)/2 */ + font-family: arial,helvetica, sans-serif; + font-size: 11px; +} + +#ad div { + margin: 0; + padding: 0.4em; +} + +#ad div.ad-title, #ad h3, #ad .jltp_foot { + text-align:center; + padding: 0; + margin: 0; + background: #EEAA88; + color: #800000; + font-size: 11px; +} + +#ad div.ad-title a, .bottomAdFoot a, .bottomAdFoot a:hover, #ad .jltp_foot a, #ad h3 a { + font-family: arial,helvetica, sans-serif; + color: #800000; +} + +#ad div.ad-text a, #ad div.jltp a { + font-family: arial,helvetica, sans-serif; +} +#ad .jltp .itm { padding: 0.2em; } +#ad .jltp { + overflow:hidden; + width: 120px; + padding: 0; + height: 240px; +} +#ad .jltp_foot { + position:absolute; + bottom: 0; + height:16px; + width:100%; + text-align: center; +} + +.adHeadline { + font-family: arial,helvetica, sans-serif; + font-size: 11px; + font-weight: normal; +} + +.adText { + font-family: arial,helvetica, sans-serif; + font-size: 11px; + font-weight: normal; + text-decoration: none; + color: #800000; +} + +.bottomAdTitle { + font-family: arial,helvetica, sans-serif; + background: #EEAA88; + color: #800000; +} + +#bottomAd { + height: 52px; + font-size: 11px; +} + +#bottomAdOuter { + width: 600px; + border: 1px solid #EEAA88; + font-size: 11px; +} + +.spoiler a.quotelink, .spoiler .unkfunc { + color: inherit; +} + +.exif { + display: none; + font-family: arial,helvetica, sans-serif; + font-size: xx-small; +} + +.exif td { + font-family: arial,helvetica, sans-serif; + font-size: xx-small; +} + +.exif td b { + font-weight: 800; + text-decoration: underline; + font-size: x-small; +} + +#header { + position: absolute; + top: 2px; + left: 5px; + right: 5px; +} + +* html #header { + width: 100%; +} + +#navtop, #navbot { + left: 0px; + float: left; +} + +#navtopr, #navbotr { + right: 0px; + display: block; + float: right; + text-align: right; +} + +#header, #navbot, #navbotr { font-size: 9pt; color: #b86; } +#header a, #navbot a, #navbotr a, .pages td a { font-weight: normal; padding: 1px; text-decoration: none; color: #800; } +#header a:hover, #navbot a:hover, #navbotr a:hover, .pages td a:hover { color: #d00; } +#footer { clear: both; padding-top: 10px; } +#footer center font { font-size: 7pt; } +.pages td a { color: #00e; } + +td.replyhl { border: 1px solid #D99F91; border-left: none; border-top: none; padding: 2px; } +td.deletebuttons input.checkbox { margin: 1px 2px 1px 2px; } +div.logo img { margin: 5px 0px 5px 0px; } + + + + + diff --git a/data/css/yotsubablue.css b/data/css/yotsubablue.css new file mode 100755 index 0000000..34c3eaa --- /dev/null +++ b/data/css/yotsubablue.css @@ -0,0 +1,320 @@ +body { + font-family: arial,helvetica,sans-serif; + font-size: 10pt; + background: #EEF2FF url(../icon/fade-blue.png) top center repeat-x; + color: #000000; + padding-left: 5px; + padding-right: 5px; + margin-right: 0px; + margin-left: 0px; + margin-top: 5px; +} + +td { font-size: 10pt; padding:0; margin:0; } +td.reply { border: 1px solid #B7C5D9; border-left: none; border-top: none; padding: 2px; } + +blockquote { font-size: 10pt; } +.doubledash { color: #B7C5D9; } +.inputtext { + margin: 0; + margin-right: 2px; + padding: 1px 4px; + border: 1px solid #aaa; + outline: none; + font-family: arial,helvetica,sans-serif; + font-size: 10pt; +} +input.inputtext { height: 1.75em; } +td > .inputtext { height: auto; padding-top: 2px; padding-bottom: 3px; } +.inputtext:focus { border: 1px solid #9988EE; } +.logo img { border: 1px solid #34345C; } +.logo b span { font-family: tahoma; } +.logo span { font-size: 28px; letter-spacing: -2px; } +hr { border: none; border-top: 1px solid #B7C5D9; height: 0px; } +.postblock { border: 1px solid #000; font-size: 10pt; padding: 0px 5px; } +.rules { font-size: 10pt; } +.rules a { text-decoration: none; } + +form a img { margin-top: 3px; } + +iframe, .rotating { background: #D6DAF0; border-right: 1px solid #B7C5D9; border-bottom: 1px solid #B7C5D9; } + +.pages { border: none; background:#D6DAF0; border-right: 1px solid #B7C5D9; border-bottom: 1px solid #B7C5D9; } +.pages td { border: none; padding: 1px 5px; } +.pages td { color: #89a; } +.pages td b { color: #000; } + +.deletebuttons { text-align: right; } +.deletebuttons br { display: none; } + +a, a:visited { + color: #34345C; +} + +a:hover { + color: #DD0000; +} + +a.quotelink { + color: #DD0000; +} + +.logo { + clear: both; + text-align: center; + font-size: 24pt; + color: #AF0A0F; + width: 100%; +} + +form { + margin-top: 0px; +} + +.rules { + width: 468px; + font-size: 10px; +} + +.rules a, .rules a:visited, .rules a:link { +} + +.rules > li { + list-style: none; +} +.rules > li:before { content: "\2022 \20"; } + +.postblock { + background: #9988EE; + color: #000000; + font-weight: 800; +} + +.footer { + text-align: center; + font-size: 12px; +} + +.unkfunc { + color: #789922; +} + +.filesize { + text-decoration: none; +} + +.filesize span, span.postername, span.filetitle, span.commentpostername { + unicode-bidi: embed; +} + +.filetitle, .replytitle { + color: #0F0C5D; + font-weight: 800; +} + +.postername, .commentpostername { + color: #117743; + font-weight: 800; +} + +.postertrip { + background: inherit; + color: #228854; +} + +.oldpost { + background: inherit; + color: #0F0C5D; + font-weight: 800; +} + +.omittedposts, .abbr { + color: #070707; +} + +.reply { + background: #D6DAF0; + color: #000000; +} + +.replyhl { + background: #D6BAD0; + color: #000000; +} + +.doubledash { + vertical-align: top; + clear: both; + float: left; +} + +a.quotejs:active, a.quotejs:link, a.quotejs:visited { + color: #000000; + text-decoration: none; +} + +a.quotejs:hover { + color: #d00; +} + +.tn_thread { + width: 200px; + height: 100px; + margin: 0px 20px 20px 20px; + float: left; + background: #eef2ff; + border: #98e 1px solid; + text-align: center; +} + +.tn_reply { + width: 100px; + height: 100px; + margin: 0px 20px 20px 20px; + float: left; + background: #eef2ff; + border: #98e 1px solid; + text-align: center; +} + +#ad { + width: 300px; + margin: 0; + padding: 0; + position: absolute; + left: 50%; + margin-left: -394px; + font-family: arial,helvetica, sans-serif; + font-size: 11px; +} + +#ad div { + margin: 0; + padding: 0.4em; +} + +#ad div.ad-title, #ad h3, #ad .jltp_foot { + text-align: center; + padding: 0; + margin: 0; + background: #98E; + color: #000000; + font-size: 11px; +} + +#ad div.ad-title a, .bottomAdFoot a, .bottomAdFoot a:hover, #ad .jltp_foot a, #ad h3 a { + font-family: arial,helvetica, sans-serif; + color: #000000; +} + +#ad div.ad-text a, #ad div.jltp a { + font-family: arial,helvetica, sans-serif; +} +#ad .jltp .itm { padding: 0.2em; } +#ad .jltp { + overflow:hidden; + width: 120px; + padding: 0; + height: 240px; +} +#ad .jltp_foot { + position:absolute; + bottom: 0; + height:16px; + width:100%; + text-align: center; +} +.adHeadline { + font-family: arial,helvetica, sans-serif; + font-size: 11px; + font-weight: normal; +} + +.adText { + font-family: arial,helvetica, sans-serif; + font-size: 11px; + font-weight: normal; + text-decoration: none; + color: #000; +} + +.bottomAdTitle { + font-family: arial,helvetica, sans-serif; + background: #98E; + color: #000000; +} + +#bottomAd { + height: 52px; + font-size: 11px; +} + +#bottomAdOuter { + width: 600px; + border: 1px solid #98E; + font-size: 11px; +} + +.spoiler a.quotelink, .spoiler .unkfunc { + color: inherit; +} + +.exif { + display: none; + font-family: arial,helvetica, sans-serif; + font-size: xx-small; +} + +.exif td { + font-family: arial,helvetica, sans-serif; + font-size: xx-small; +} + +.exif td b { + font-weight: 800; + text-decoration: underline; + font-size: x-small; +} + +#header { + position: absolute; + top: 2px; + left: 5px; + right: 5px; +} + +* html #header { + width: 100%; +} + +#navtop, #navbot { + left: 0px; + float: left; +} + +#navtopr, #navbotr { + right: 0px; + display: block; + float: right; + text-align: right; +} + +#header, #navbot, #navbotr { font-size: 9pt; color: #89a; } +#header a, #navbot a, #navbotr a, .pages td a { font-weight: normal; padding: 1px; text-decoration: none; color: #34345C; } +#header a:hover, #navbot a:hover, #navbotr a:hover, .pages td a:hover { color: #d00; } +#footer { clear: both; padding-top: 10px; } +#footer center font { font-size: 7pt; } +.pages td a { color: #34345C; } + +td.replyhl { border: 1px solid #BA9DBF; border-left: none; border-top: none; padding: 2px; } +td.deletebuttons input.checkbox { margin: 1px 2px 1px 2px; } +div.logo img { margin: 5px 0px 5px 0px; } + + + + + diff --git a/data/css/yotsubanome.css b/data/css/yotsubanome.css new file mode 100755 index 0000000..7fe711b --- /dev/null +++ b/data/css/yotsubanome.css @@ -0,0 +1,43 @@ +/* Yotsubanome Channel Official CSS */ +/* palette1 #FFFF7A #FFFFAC #FFFFEE #808000 */ +/* palette2 [web safe] #FFFF66 #FFFF99 #FFFFCC #CCCC00 */ +html, body { background:#FFFFEE; color:#808000; font-size: 12pt; } /*~~~~*/ +/*small { font-size: 10pt; }*/ +a { color:#0000EE; } +a:hover { text-decoration: none; background-color: #FFFF00; color: #000000; } +.adminbar { text-align:right; clear:both; float:right; } +.logo { clear:both; text-align:center; font-size:2em; color:#000000; width:100%; } +.theader { background:#E04000; text-align:center; padding:2px; color:#FFFFFF; width:100%; } +.catalogmode { background:#0040E0; text-align:center; padding:2px; color:#FFFFFF; width:100%; } +.rules { font-size:0.7em; } +.postblock { background:#FFFF7A; font-weight:800; } /*~~~~*/ +.footer { text-align:center; font-size:12px; font-family:serif; } +.passvalid { background:#E08000; text-align:center; width:100%; color:#FFFFFF; } +.dellist { font-weight: bold; text-align:center; } +.delbuttons { text-align:center; padding-bottom:4px; } +.managehead { background:#6080F6; color:#808000; padding:0px; } +.postlists { background:#000000; width:100%; padding:0px; color:#808000; } +.row1 { background:#F6F6F6; color:#808000; } +.row2 { background:#D6D6F6; color:#808000; } +.unkfunc { background:inert; color:#789922; } +.unkfunc2 { background:inert; color:#696969; } +.spoiler a.quotelink { color: inherit; } +.filesize { text-decoration:none; } +.filetitle { background:inherit; font-size:1.2em; color:#CCCC05; font-weight:800; } +.postername { color:#117743; font-weight:bold; } +.postertrip { color:#228854; } +.oldpost { color:#CC1105; font-weight:800; } +.omittedposts { color:#707070; } +.reply { background:#FFFFAC; } /*~~~~*/ +.replyhl { background: #000000; color:#00FF00; border: 4px dashed #FFFF00; } +.doubledash { vertical-align:top; clear:both; float:left; } +.replytitle { background:inherit; font-size:1.2em; color:#CCCC05; font-weight:800; } +.commentpostername { color:#117743; font-weight:800; } +.thumbnailmsg { font-size: small; } +.abbrev { color:#707070; } +.highlight { background: #000000; color:#00FF00; } +.inputtext { border: 2px solid #aaa; } +td.inputtext { height: auto; } +.inputtext:focus { border: 2px solid #8ae; } +a.del { color:#000000; } +.tn_reply { width: 86px; height: 86px; margin: 0px 20px 20px 20px; float: left; background: #000; border: #0D0 2px solid; text-align: center; } diff --git a/data/icon/ba.gif b/data/icon/ba.gif new file mode 100755 index 0000000000000000000000000000000000000000..fa1d375af9ec923d587e28d6aabe52dbf0d2dca8 GIT binary patch literal 856 zcmV-e1E>5)Nk%w1VLSjl0FeLy+`y*Lvz*1PnX{gfA^8LZ6afDKEC2ui06YLZ00092 zoR6u??HHb%)Cm!?4tVnmhT^4lo(2GCDWq;T3PYHwW#Hzzj`MYj6Gbc{L~DhEd151g z>9YZSNSxuJx=cxXnE_NNOQM`6fcG-P$Y#JTbzmC~g;>rjncjF|ovYSV1eF#>6*bo4 z#HPp6Wza*yG!@YiR&%1_)z)&MRb_I3s0PV2N)vTN_VVy4sThXX|VO=%@)oR!Q1AMXYjHqwQSfMgTG#>mHNqmCZ7PD?Ye-mFr8>J*bRtWsLF zB!FPzc;X0`j);KLahI}iu68%#+|`QYBEx4j`cAsr38+>Yg5Mza^@EQtct~!bMD`P< z($Hou8+ueavgFgxIH{0fro~1|J|nY$v_u%8HeO5yi#-b^BX@j6bJopxkfqJTmU{!^ zuNKSbHK(5v^<>NMA}t${ISvEu#OA-hyScIijz6t{MQZ*SSf)|IEV{M-!nTld$yFB^ z6(QJCf(^LbW?x&e0RoSK3kro>a{h%T27gLegbNe)2t-I)I|y`FG>W-$A3AU>aL`gT zWp_>y2~f2FjWRl;z>DJPh#E;>{is7oKo0p;aI?kGNPwL*H~n~` z)*j7#m`8@dxyKHCQA+bkS$$x@5g-Nv6b=Gg=@m_KDM_a$DK1hq&2y4;875QGB?R6F z{rHEYM+3fg<{HcG!_Gy4AoQ4#k=S!sdo;0u(19a8s7F6WW%Ldct!Io000A-Xu90~Fv>}*y*TU5y90nHj^qL=XQ{3h7`p5i#w(oC=!}>5p8GPF za5x0Yj0~bui8Seu%P6dA=uul%VD>thHn-decsC9=ykE5Wp*9lNkg{|xWWVZg=QBu` z+Vy*3ZBS1|YlCiqhF6G*c4ahpf`LwqjgEPMd5~$GT9lTTX>f~~o-uEkm1d%os;{fC Ova__cwzs$r2>?3+vRP69 literal 0 HcmV?d00001 diff --git a/data/icon/closed.gif b/data/icon/closed.gif new file mode 100755 index 0000000000000000000000000000000000000000..d178c7b6e7d11cd779296925cc8a3c59a1f7cc96 GIT binary patch literal 423 zcmV;Y0a*S=Nk%w1VG;lm0M$PLIC;Lgwz5!|(%a_l%ErNErOS88>RzqfOO(%DsoQuvvKZwUohRRl;*0Zpz!oIqwq@lLV+=+&S z*VE2YoYOgh!`|A}_w(;lg33#P$W)-!OM=IJz};@Ygx-@>cm6DD>dbnPz+*_&JSESf{n87r4v^9CRTd3QSj*I{Q z{{R30A^8LW002J#EC2ui01^Na000KWz@KpFD;kGL#+S|nFg>Fh*1OP$0}%lP5gLXX5ezgh14JY>B_$6bA|fFV z1qC%Ee?Ap9D+;0p1|}vcDGdOf6*vk9H#|5h2o4J!C_AhtuRJ^!0tgMaxw{4jzQDo@ z0u;JJo+HP}!NUR`&p*-Aztzmxod6vs3FQ+O9Rd&*;LtJ^2ow(U^bim(**-Zf68$>= R0CmKe(MgZNgFk`*06QTrz7PNa literal 0 HcmV?d00001 diff --git a/data/icon/fade-blue.png b/data/icon/fade-blue.png new file mode 100755 index 0000000000000000000000000000000000000000..dcc5159156500af992dbc511230e0d4d9926731f GIT binary patch literal 11574 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 p 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 R)xYSUnsFY}1ryO8qlK9vBl9#84 zr-DJ*@9e2Kfp2$n1)K{cJmxSeG~_A7F;C!S%xuV1JH;>~xR7yAoI{zF*>m9%#(f8r zt#}qlNtrq9;AIpr>rk^2lai45*RAS!Bl5k3#4=9D8|$AnKK&rgaQTlH->Ll!N7w|m z-B9*%-XO)0oKP$^Md=WOOv3_khXpsfAKJe+^Z9uGK*x)_Zc7;R*k(N1tv4Z&!9&<+ mwgz)TTSLYKwiL5nRt##ZLj)z#S8*xcOQ;NalnM)j-&@P zXsR|q>Ar9*cK~DGIMdSCPEET_FDSHVhCtp0h!ixJ!o?yGkWQ-$;<1->YMDmmFZ29* zp~G<*BUC7;fj8A{_VT*L(b&$O_PLRY=f$-gO88^2eXO+vj?Mhm#HFqrMi9}ucn=31_p4*RL8lfyO6@g ztk2Y%*1?7a1ytJG0ou)eYnhvdr00^ngq&?d3%FrRmW2e**vm3LH>p ThQWgfNu=SIu%W|-5dZ)?R56?4 literal 0 HcmV?d00001 diff --git a/data/icon/futaba.gif b/data/icon/futaba.gif new file mode 100755 index 0000000000000000000000000000000000000000..c859e5e6bbb281f2ecc30238faf04e845541a2b8 GIT binary patch literal 1820 zcmZ?wbhEHb%w&*b_|CxapT*`6kINqspZ}_ne@s&Txa9l~s`-=B^QUCWpPD&;T9*8o zvgXg6Eq~S=`LpH7qW>rU?>Ph1GKxk+V0eUp4g(N?@&W_Le+GFDnHvmF&1~E}S~@2L z4mCA%D;vd3*s##GU4YMF&y9iw$NLqWyJUVIc*w-a#IQnSfIGCXG%zwTC5V+oPH1qP8+gB1uHHwuq>ZCTk7h|twv9#gb13MUI<>5yDf0>taY4@ zTK@Okofq5g5PEp|oL0LM`>dba^LslNo3kF6QOJD%tnqn~d0P}>m^j6M{5R9xzLas^ zl=??y)%TVM%y_!jc<$^?`<}nO<09_S?0DjE@g1bjAJF=`232g59sdm6sfJZH0j>1vTD^5jqE;7;21v#F!$K`g$7WavoKk}No zQS?S9r`i&UaNf`*6C4(s9*J&|vs9T{C9DJFT#=%48`OE`R}q^c0Qu?CDD!D;iXV+z^WHPl|Gs*nr#Odk7uTt zKE1WdQGQ$0mGB!6S@ZJd+fI?%KHHGxS$e^t6_aDO87)!vy74wlz(d^gR?v={mP_yX zY`dru?-Qu_<=$K_u30x16+CneY!2ky8scdhXpxb({qD5|POE&yE{1J%EBP4HrP`j{ zq`E#tY1v^;j!h-UoY=GTg9Ih6)CBHKOFVkzB73Tn=)TgsUa#MBO=eEN`*QJqp0_&- zP8y}LKflnuboZn!%H>jmiLV}ATOS|CZ7_Qp1JBd1H@laGemxNFr#}5g=+A7`MD=4+ zqf$TI5(!VTY5f24Y0_g?mx4^ydoOP;&?vW#bx-Gg8C=Sio%$*F%EK6iOs)UEfqu%n zN@H`Pn%EiR*zSa0-QYf{BK4B1>WwWoxj)4gRQJofR41{my?x>6QfrQh{kn?ovMwdX zJQt&HNct=+USkzE(`g>>RK@6`Qp-or+z+)$yMB=JNq>CDk5w{jp0>*L@~5lA>~1Ff zOcMwd^>eK*a;=xK&wa~EnboQbA4)te z5mxO}SYGp0`Qo;HOI2P=EU|TaIOWEnpqY0+zKhY(?(s`<6MXtqrDETvAUCt)qOn^A Zf(%W9k=(lhA~W8@e9u zQlUxp={jG>#D(jeyVMca#rgEexrFQX{ygsfiqG?h=g-d{UN2TK)BE7@c+hUp2hcyb zSz6GnEU5(R11>f+SGfCr#{&mk_aC5oe6pX;;Iml#@E|@nP{;}6$A|HG(TUk1@uFZh zmzR{q=AR2@mxi)aQrSMfz@bAxspoCU!Cr;OmvlN%PiqKZ01Sqn83M3EfX@W+A))%9 zFyM=DdJkFjIZNB)BuWW?9TW+KMgZ-HO2Q)bedL@zvY?Ww31{oW*g$c}U^Hjz4vQKY z4dilOcCn}(Z2ABpN#jw-iPI0^6QkmQVMksZcc+cZZV$XR>JZZ&*rW-jM#t;#c@^q* zbGW>Z!<6LvUT4RM+(}%BmXZ{k0CWaa_qz#nWbREyZ3nA!sy7lZj0wHE2^&pJJQoTQnB(Yptnyj(dAfw3wZc2MRgZweE^Kkbigge2IXMo7F5!HOp83@N&h6Sa zs#Wne(pBEMpF?74nm6+g4eDq~bEv()R21!-?YVfmYiyA0M~2Aa*Pe`c=Kd_T+jdsk zI4sYkNn=)K9yPZ!RX?u=7~Qn-<-bWim!pe5tyjnBINdyr*QvLzOB)$xJ`wr)rwifl z_z*+m_x^QT_+cZ&xErBN20#1}oxs9G3^9F9*Hd+YSHeXTakgwA-$;gZEN&J7-AqL_>)wfy5&8iZeK&G zngVT@PTrA>w{C}p?V5ZRrf^!_oX9lkbAj^pD7P1y|^o#TbdR;qn|za|J#5Bp<` z=rI*1cl4MO!%223;h@Pg(gtOJ*QgQ_~m0IE=g>Oc|hic2gl>E+a zxOGKLh8#=75t!EEPtiu$d=kDpcVYIOfpNr?AH;-E4uX`LbrM3x$4E<+j|$(Tp%vf@ zLT#qxr%o#e+{XlJ$f=INiqOB|b8~vjNEKe|NS}Y8GYMRLH%fLdRS%K_=VL3)+tq7% zbCVN2*2%ZAC&!J+rBi2N>N2FsxuaXQpyEHgVd z-m4?oC!f?g1@BXjQ(7g>VYEp~*Gu8Sp)i88Pd$>_qsr{oZ9Y#%Go~*slDaP+wg`?vq|#H+nrW{KnY+u5J*uW=DiRlD&04k7LnNbjVOO^&~8Po)%o zilTUV!otW-@XGXI$&>1Gr6&rzjIFj9`O%5{EpOotLHXv3w7hD3mB#7S`BZZLMoS91_c#YGO#(`JWB??9LYA|!l^ z!$;|I=e%iknmD=`c}|E0d$+-SYp(zL!yQm~C(JTHZN9qwl*mi5Jij(&Wh+l}1?mC-x)y7>C3YX*So%n;$m7`3J>?|_7su$1u!^Kxn!l(Fx?ie znBspzL;GMdik}ebCNx)Mc$XOBL12=?O~UD@xfGn(0;XmuqOR=^<-zCT+G56M1)^e& zQ0v|nH5NnVpi=~FkMi}gBqY)3is21%6W%1{=Qf0W{BtH}PC7t2MZ!CNx%+0o)!&EZ zxX1c(h6iXJkv?3EnJynOQxHmg4Lx$yOC*20u8YKr?zk}_)NtZKF;Y!J9x2c8J@SBJ z>KU!*IDy#J>^Dgdx^cBG%gUuqYQlsD?0Wd;Ybv43m{ZVJJ1NxeD#sOHSP7FDmGb6y z#;!#_mWzE!a(9(T9;Y`%O_zs8oi{hl*dkce-e-8wT0=`o%V4HD)}t100z0p*U`_F$ z>3kSy?`ZQAULfW(EN2ZtvzgA%-rM6?(Sea+6UZE#pHPv3{mm;3EdinV5{tLv7(C2i zGF$sCLPFvv;#czr{|KvjNwVo1%fYs^R%TL%a2(UY0vjA0g_`ZMpL;x^-k%XMohTz> z=Vrj&%Ae9_dRsCoF4-R&cy{zE*!r<#Fr*JIe?lQzHG*7Je;Mq{ZThW)v-;AtXhykSh!j&?2Bhi%SrO)&eTRg@z(Rr~<1tXjeW9 zltke2;RjJFS~0doYz0e@l0a{9Db7x*K!X~ptkXrXP+aKU^X50~naR94Ip;j*d7krT zN7!~>zx{hT7jBm0LuL7>EDsfADn2?pI~n}WIA(dk6TU&fZ~wnQ9EUlMa2(|~L52{A zFoy_-D2Etd#E8R~!-T_>!;J4Gh$EOIgd>zAj31?lqnM+Fqm-jOQ;s2yVU7`wQJ~EO z^U#0=!_dw6J$zt<2tpJg#;=78V}uF96k*1*fFi+&5JV^5=ghiRdt0XPOp}vEzeQyZg zpV?SEg@3w!$j{&VzlTlot(jwa@8m8|k1VrtuKlAf_FAtxaAjVoyv?(_N9uQGzCh|_ zGP-}`FSwHBaiFBY2DkfqC+m-@+7^O6BJWQey%c{-V0S)#q(5oNwp1zi(f< zkTLU}iAC)RsVC+;>XhFab#{NYb;|n{*M8reG5c)Px|OlPg^|6tb9IAP4Ate1PaoJQ zZzNG)WmuWd+f(&>CeNoSwAm-@6hpm2sv26DS(d>v?IWXQU%F14E5Gk{zHm7oi z^KG1N9!qIR`eRP+5G{%**n50KsJSX=+6DbheD{&M)bqC`gZ=qdc{}Qm*4nSnYpCH= zsd(B~eE~`RAG)d=eASV$_maAQ-kTp3>gc_3ozL3z;UCf6wTZRLU0Y zUNZE032zhoipZ%6*R#jBNrs~1<85oIg{`Lt!&kSuR;bejAABA#S5cCX_fqnU(Ez;* zst>5wRoT~@MutY-Lg7V`@~f4Cn(Daqj;UdSu{8%|5&f@j=KSZ_C32-Lvii^&NBj#NG{m&C3e~&C90BCC8Hnc1Ktn)}~&)7%@A1tlb z%g-zRBT5ktCl*z;e|c5y)e}258I4po`$Jy9%87OVa-ECM#(WOp>7tDbnVGwXr7|W-Pglt zS4fJGu3?1333;fyi&Dv}>x;YV;d?dT@BJ0u_doFd>HT`W0}ljvcqT-Hc7Z;CKnOi^ z9YagN$P%G%14k2dOstVuI~`*uICeJ@=VWAR1K{k9EF5+5u4ueF+G;n-nr>p_inVsd zlHAeubaPuTQ%4`1qYu&1%YeiJY*-jOrjZlN+}Y32ISA{_F{cI?Q$p}A9JEUW&g~H1 zGs@WI7~boMjZ=WFGl#T0gy`aL?Gi$w9JKZb+2hHfdUNdD4v}0VZ0Ls_yd!M)9VK}m zb@PfwyYWo-W!diI?`MWO`9|6K#*taEd)Y_v%+q!(9?3t^iOsiWraJ_tkb_cbfjnAJ zGCeqf7MkW7e#(}eyZ2zGTSSIuRHj$VnY|HbeYoemkLEHtF`Td%W-u=>DkVHNB_KAN zd+b~s|7(BVH%Iu{iRot&GrrjsR^@)A$o`Prhga&6P)mwc(2pzKPTu#)=nagMaFS$E z$zs$;;&5@KQiLPcBean}%=UlvYp|T^T@NQnsJ+BfCTe1{gx)fKj zoO)^WWaVU5?bxZ>g|pu;o^M!)C|mO@{~T1MiT?IW{J%8WiZ>~Z?~|J}>8+Z~8=Au6 z^1`y}l8QRU0nO@Z_z1~@S zz47wh-y7RswzmJ+`mpo<(-)0K1NuKf{>S@I3k<{#NDAFz2xNnXmik7qDS}3AJxiu> zUP=;SNP*S*h=>h=}!7juzag!=xq87q7cRq}#2n4K|9mmWMPnH{)5mT2? z!nZgjf_fQW6_d!e*vnPEQJiTBsJC?CtAQrP`Za`00cI<_xu6Jvq_iD?wmEmk4?iEZ z4X8bJ`(CycV@0(J4G}{|aM*NKF(77YBO}{90#NorU6LH2QOD+3f8M9-BQa*jkDkg} z#+`IBdo_3E{FfuYFF42c4X-m(2uv2wI;?fQK%&lpReHW-;16TbYdIaqP8l{r+#%GvK@L9Q;1Mv!IO> z85>~5Fj`E* zrj7;XGiF#X*tD4eBPj$?RIg;}ffLGv*5%X(cNP}XgpZRK!SJ_PkV0!ANv2nf4e;aT z3O%%7$f9^{>xqmeWz%=A8zfhH`zk`Q*w9qya*IGb;7qS+DzNDfuDa;lHQ7}fdTicG z*KHyvfdLnRcLJDNdIUKbbAhz|a946Q7z$u>DF*MiuTYvEvan_cXB{{%QR|01U6~h+@1t$ z*~mdUwB>oB9{qfi2-?b$=7Uk0VScV5G++=GY5ZaY=JQMAoZHw;{M_&T^|zNOsPSX~6YxQ0)G>V2v7jsS9|74@mRp|+wx6(b z`!3+8UL8fbP)}G`$-H{h=(qzjZdw@SASX4w|C4EY;$nVn+_}FfFma!60?VScXuFuO z&pTm))PUHQI^2-X(%-h^Y%$DQtA!)kP<`KFQ}B!m?%ac#Ly=oC5S!ZK2Z)-$z*TrV^;sQ&)67GpO!H?`MKbcO^{SL~2kk>(uJ00ODV~^252evP4 zT~XWpNdyZ|9Kt$M@j=mBCF&R!;eEU|O=d;)S5+C7tU!lQue<{&EF-)KV()FGPZSKE zecnl*n>v*h9S?dJ{h@fz%sX9_0EA?%xf=;~gJEn1(d-Hv1Y#tYl0{$?FwW5?fJ)VC zT9~l$P*YG<$v_g=h%pZFpn>ZnlOQRlA=3JW8n`bTv6}}JyRKOw4-{#$g_2l_&1JJk z2#SGFQiw>h*4s*^mzCOqycYv6IA=Lu+-r2CKezVe|IJgzbQ}p&)J9N`6`WRw)=Ig5Uv&_?H|@62P>d z7-Jf&oi0mM`)1KS3moDGZ>NP7Ap`mgXuX?I5@XebIK_1A*wW>yJNb(QS@GrgS+wuq z{!j+Q7%PDJL5FuI-!_CZIw$HT2?!<$`IJ`xj_if#?Dt9qN*^f@ogzQCUM7qW6dq*5 zPH^SLq*#WO91DW(YuMlpUCGy%gKoG0V)%p0h&RdlN>`y-@RB=Gp>KtV2+wz9SUtMh z+fEwk#Ql8zVa>Hk5z?Zi#5}d3<_e=RV;@irnsH}eVxq0eIF z{Z~xBQ%b-tIm#?0AblKXjl-x^dIPvJUA78y6EtTSAu8b^L||Q#$Osr@Cg!EOPWes! z@x=K4tBE%t7$z0SjA+y(A#|LZzy|V7sLc#xkeu6zj8$pv60JbIb0kJb)};2KE09Ag zem1m0>@*uQi8pBN#t!;50Pn?(g5{arGJ z`DA0Berj(Rz^@V6X{S!}P|wcFfJFpF1m!odbV7=Tj5`c4^s^(5sbGHUWP({m4)i#! zL^rk*(0xT^p6dvQk%1x17@&qJbnoKw7&mP@eUUWw@2DpPZOcfJ{-g+R^sNBh9`{Uf zGaQanh`YafQlckQgG^^ubjiIE^Q4*KG-Fi{O)y+hsh-AUib5Ce6{F`>`L;7F5HmT^ zw0-IK7Zi!%xg{xnRItkpSl>56f@!fR`ChCS5ONO0Y(D-@n({fET{Ff!C%6?-Ei8mb zU}TYR<3&ghG4cZyf?!duBD@(;-lmjj?Cb9cAp(4c)GPzy;oVpE<}Q_q9Z4C*HpFZ9 zV;=#RMd%yGhRSLY7fTEp{}?9es<;%KOypt#kk@|!72Tu= literal 0 HcmV?d00001 diff --git a/data/icon/letsphp.gif b/data/icon/letsphp.gif new file mode 100755 index 0000000000000000000000000000000000000000..75aeb4f55f776879e77c3c1a248f77a8c250284d GIT binary patch literal 911 zcmcJ~4Nnti0KoC*TIiL@Y^ktZPK9F(LKLxVkaaRftBB})Bf-~p^@z}5)+ub1AOUw3 ztS;2FwUuBYt|%>(7HqIJ=ui$r1!J|ud2E7Nk)%V2vB-)MqCV3P;qMFl^WU;HU-V7! zevkkd0N{HIp>Q}1p9eyr5S;P{gF*OsAP@*Z{}qN|p!av5&j)?$ zJn(`7p5NtgIN%u)YUEIxyHqcQC)Y2W*awd%z@y*6V?3z%3M#-mgatmD#KnlnSda+P zJ`_GY0S=^fAtAxQmLr*1fIz4GPXKKQhmDTGAE3bk_@USj2 zisyN+!pY76_7I#Ov-O&wJx!Zsn!`ea#}6Nk4J$5tZRN$aR<&t|^=6*JF|KAf-3%vl~zdbnQ=Yj8ZdWbbTT_8#!P z*Er*}oi4c9+*C8BJaVBt=cnVYxbiBgP5W2+OGJ_vZ56ex0J52lqK#t!hWdv z_A0)V+-Q#~mEWn&zGI%~Ec8}S9GLrSGD9jE!HuyE%uvnCtzS4_Pcr(XoLG_3QuH9B z)PE`YaCO$S?;d@sGEd4I8}AD~d2nBP|HVIa?!?=ApvG9FzC}V%lsd!v6r(Jpc3wCz zEf!i@5jIPpT|p3}mJO!wt_}3aZmNQU=z`tp#JAMHWbZvYO{>{+(W(4+mOw}h)}d>J za+N?tNK|hYQE@#_Q)po`2uWfQpY3x_s+R_lc<_l(m26Hno!5{ER|!dqhuv5tvYM1*^G$_-!qIgf=Cod>tRb?H7HHZQBd- zjhlMfN{p-V)P#svS&LI=@!myS#f~qD4h@$YwgGMt|Du*75L@a>Ul@|`b!I~5g53ZB literal 0 HcmV?d00001 diff --git a/data/icon/moeren.jpg b/data/icon/moeren.jpg new file mode 100755 index 0000000000000000000000000000000000000000..8575eaf48f7400fdc27a3c42bd63f1d928f8c2c5 GIT binary patch literal 2690 zcmbW$c{J4h9tZH>m|@0F2xB5fDN2mN*wR#%(G!hj6tYBQdS=M}kdO+4hen8E7$GrD z5o5WwEGY?D#+F@Kl5J$ka=G`O=bm%_y7zv*=kwS1bH3;OI-m31?b{s%M9hqF#sCNe z0-W~_usaBx17JKnP#$g=6bj|#h4Bf93kvY_3rHUj6Ba)Nmyswy2;IDteU zj%go1p{9;Tqve!z3@|8tRSh(1{}B)`FRuWz8(_wGN4ijJXBlO83fq&`kdr{_G& z&C7pY@S?cnO=%gcyrS}LLt|6(yO#GKK6iEZ^s@W<2gb%HCa1oBo1U3nT3+F-{#;w% z*xYx40PsIqf64yCCA#P0fVf`*l4p zQp0jl;+jt<-$6z6*pa1u+COCf9qjJ^CHo8ZZ`S}I00!+X4=f580-O=Ca*9b3*$nNq z&P}bDM`0mrX66!Co+Qn@f0^3E_lsXu=eL#Fd|F5PlykgC1|spbd3XzM6wrbE{3czb zl>6zpN%{-rz7wz8z!Gm+Uz7?qN~n4vw$9Ax2NQ9{2_Gpd)yQ{hL8*yrOVeSGC*hjw0*xjyzG)*SM?I(?cSow9=o76I#a3ho9LBhNlPd ze#ptM&haO+2A6^(GgA#DDs3)@v0FKEy%lX@%^D-bnP;<=)&u@SEsnrOV>p-TqyPfE zA)DOUuv6odwNu(oxHnyMh3?ixY$lh8gcx4~^|znSnERlA(QiN~k|AWL5{o+zS-oN| z@#q)omCFx?W0Oy&4^Hlqb>uqxaZo0EUf0bidzd~x9B7F;Vz)`RN7EzFzDLk-)=;_-K#*G=?#8T?~Srsra&MyjXyGMh?SmGM}!SZG4Gr zL5@n_^6tD&duvDfe(bjZ?aQg)A4RdOz%Fn6F2Kcv-fa$f(sI%{?mc?>8BS_P%N-E@ z$Yu}B=MdpWP0@*sESPH`OzOUYx3I*wfG~kKg1Vc-)72bmy~2BG&$6+I7Qr`}r8u^X%ZI$tm_=C+l7EudBp)}tg%Sv^_ApK;0p^yYd0F{};rNSjyaXdZDQ$=&lFL0&1_Yq0Lw}Qor|EMu!;&o(8J$l$0pRCALC!4jmHiA;D zKK3XLp-V_BU461LHJBIH6Ima?0Y42jh{xqjvod8DR~M4yYkTrmRHdI`4t%t|Ke>nj zD{W9uwwszPI} zX3m+qs;uce;1fU^2@P;GJ^8}j>z+ozdQ_v`+-OwgFLCI0^m=>8(q@kr%rk(!qrkq6 zMQtRV+)7y_OT#3AhYKAcpalXtjPEAgyz23)H`=D0I!0p4Kd!k$n8<1`nCXCbF1jZL z=1fzu!4ay8mFe!Fh_R=mOS6Ds!kBGzA*}gXLA$>=V~{nKp2W;BN>%A~MuItV-~jME=Jo7swN^?wp}{Gu^JnH}2& zoKy`YH`!Xq)PBn;&tGLLc4Z4|(-+pG=VPd-%eUV_c95D)Beh9rQ7vuL<@*!G)S(?( zhPZ92O}~PN_*j5R?vS85^|-Bnn)mC|KAqGcOFd@xAzjyMztn-!FZa|n8RMem%_Q%h>{HSf+w-uuPy~2ZiU1+tRZW$ zKZ58KC2iNBddFtVz9JIbS>SfPiIH44&51Y&zgo?abI;VI0<|c$(agvtDX&iy<>{M+ zm_nlvLc9trojc?YsjBmUP;lkbM2lKiPJ3_%-bkX)?A$b+!pC=v9=_l3FUm!Rb5onb Od*Lp)>TH?r_WvEql=$QT literal 0 HcmV?d00001 diff --git a/data/icon/nothumb.gif b/data/icon/nothumb.gif new file mode 100755 index 0000000000000000000000000000000000000000..e20b7638f46af9257d21483532da3aec2677b791 GIT binary patch literal 3036 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 literal 0 HcmV?d00001 diff --git a/data/icon/shiokara.gif b/data/icon/shiokara.gif new file mode 100755 index 0000000000000000000000000000000000000000..5d74e244f1bbb28b19bf31cba50e023a72b1f506 GIT binary patch literal 2363 zcmeH``#;qA0>;0?+!({xm?ok%v#VGQ%W9)k<}1odliFR;X&j0rW<~C~%?vx!$)y>w zu1V`Ql#JCfNi{BsN+wIFA3qH5&+zQnWZxTOTZfRHk36qfRvn}iVBdQ4<5FI z@NkfxesOkocD=t|p#b76epTatc{~stBd%>31Y_VBmAXFB<>VpUSYIf*)uI}DQdp3) z{J6aDua38qeK)UXUr2l6;{&ow>hIrcNG%%o@=NXPY!{15*VjP*i$Q*N`}MkazMjWb zDll0m0!u>;bvH6aXM@^9Ced^Yly(&S;qckc(XxI8X zRA6i)QP{PfNh`owjJ(G8oPPS4l0=%`Yv#^-$lFicPGuCA=+PXhmTapDJ`6Lh60=^` zn)ju9fY%&%9wt?rog(GR_!z@4jt%V0)%9=B6Inc4qsb4cbvq<{B)iEg%;Zgx3z`mnh}Rm)eMJE>nt`nYD4%V-hkaH6#r zcBtOU`(wB2y$=6SiQ#L}c=Erb2nDufOGH(IBNPHXBqFpffcvZ2UModz<~GgqS^?c{ zU|szcl_iUOUv%iGZNP9L8a+3aC({@&wf!C6ycB?(rm4|9D2Fj@2}C9A^x2A~N>MJT zkkaR{p0}?8T#C<3Lrjaiy~FrRZQt;8=WTSuKZ1keazWA2=m*#M?x1oG*9! zi?AGa+lUX$?oGLprDoANA&RJ)@;)~C9IGD^#hlT{5=+Bc$?HQ580#fW!JtE^D?P@$ zrnw@|pf@8Pr{X(j-eex?ab}c<4-WbXVi&UV%M&#*Jd(#BN&$RhAK*6|(4I;Voc^>g z>EN#US^#L)O}Q>UPieV#5`|T;aoX7xuq)RSb;g>GQcsy<97d)XJ{x5Q^#X= zLNj-WQm)e$L@~nmkGGC1s*`yA=p7qARr(E5*%|!{VoR6QAi^&9xoR(pu#k9f1BIfn zC2|mvl?0d zs^BOmDm%b_g}`vzK+qg9cs}gs8qzj9XNZ1>`va2{?(r3@P0TS$aYDP%e} zj#dXy`V8~7o;Wuy*Okt)I#9Jwg|uX0RblQ>Vs1tw!{p+IK(F$XFGGiEq&TFJ_(7J> z(8G+j8`$I%5!{q(c5HE3E!?KHnX@Puiq4ih5@IUes4pbtEaHaCzFNG1|Dz&AW?Ts;hwCir&Dah3TD7>P+_>h~h?!uC#|V)|Lg2mF9Si1fsD0 zb`a9jlgGCZ0B^*(T#B|Qg{GI$&$xMm~`N7 zv|t&+DJ*9ILZ^f#@AO0POrK=T2*k~66PoU7>s&ov(W%VNIJenttHwx2qk}g3^7vtn z@kz*@5}^~xgoaUMu@t&04)cBfrI+F@nUY1tJB)C15@&K3QA@c~?@MN0Og9>2XbZ>f z{pazfjW4pHD4dLicRV42+Jf+gt1MU&N~Wwqux)6|cZWmyhMt^ng*PV=OS@J-O{b`- zI@a`BAmA8m*ZmK%>8dJ4dQYy=#;24P88>Z*cQm53MYm-J__t^}8o}S+nTO$d{dUWa zf2Htt#Xe+q5B8-Z4|nA1n3ntg;NO^`n(QI^HPa&x608UzW~PRgv*_siaOOo_M-ASE ztm!a$RFzwq>+TpQQ#9jJWyu($=i-$b~Rckx@+0llFKWhq2jPn+oBmDB l4=<^Ybkop33AZRIY|uD=Z0x0D+MZ>z4vVxi8hS8f|2KJk#ZdqN literal 0 HcmV?d00001 diff --git a/data/icon/sticky.gif b/data/icon/sticky.gif new file mode 100755 index 0000000000000000000000000000000000000000..da4ec3a3dbe9e0cf707a0d171626dde1498fba22 GIT binary patch literal 961 zcmZ?wbhEHb6k-r!XlGzhwwWpCIET@HF>~m0hRBr+aqEQrmr8jrmIzwGkg%R1WfNom zE{@bKe7V~h3U;%U>{l+^W1g|WsCFwu)gh;>Ey-oun43?tPrS-7^B&`z`y3Om3a@^t z*mgpz^MqB)A+zZh%+@@z-T5M|b$4#-X0O&mKE1~yyN`G;zva8@QSk1U@jITT%sZPq z^?3gLGYPAYrf$DjxBppN$G-m6`&P`|ws-Ho{)q=#7hh;ud1cA+iwn2k-@fkX#tp~z z?7p&e&x37e_Dni`cEYKv6HeUhz4U(h$!E(>y;ybr#o8-x7u@~0=fsQCyY?K|fBx** zLl@57zkKcHt-BWwpL=)p+Or$?-W+}M?cTe`k4_$bcKzy`hvy$Y`1IiQmuDY-e0=fh z|NnOkqhQ2@fZ|UUW(J061|5)(L3x6KV;;kH4jGRP3l28B+Rd3zbRl7yqMJ^Pz@-Ta zVoE^?83ziMB#MaXhLtc(bYgAeWnUQ5k+A3p6StU23P+*AF;Qt|A&VIW4a{Ad?AcFV zI4){vW@m2-32|aP#LLeuCczL?c$$NeMam*U;DKwXt`eI@1Ovmt{#70YCngjyG<2`> nFN+X-ao9an&3I0T>I|3TllC&N{IGzrB4MgptFSl^2ZJ>Ln-S-o literal 0 HcmV?d00001 diff --git a/data/icon/yotsubanome_banner.png b/data/icon/yotsubanome_banner.png new file mode 100755 index 0000000000000000000000000000000000000000..f55d404b5d5ba61edbfc86022254dae984139fb6 GIT binary patch literal 817 zcmV-11J3-3P)58^MvMRtL8DM=0+D`I1h`G#FDz^ zFq8Ki>x`SP0RZoqukirv9`!=mFxY4ne+n#)UC*$OC3c{zaKLMKj@>zceP_Og>mEYZ zwntqQIF*@l4_;_wc8@><0L?|`j*2bgpX+3p6_Ht>W3(J1H}MVYm4Xa$l-RL-B}ZAJ zj~PZSNp#xZO0(X645HWQj{eba-p)#Xd(bn|sU=COK|gtU*SmaqRfVkfcTu8%LxfcF v;g?rjT|hr!`jhSU+5xzKwr%GGSyB50*X_L@rwhkc00000NkvXXu0mjfg{X0w literal 0 HcmV?d00001 diff --git a/data/js/iedivfix.js b/data/js/iedivfix.js new file mode 100755 index 0000000..7f7fe6c --- /dev/null +++ b/data/js/iedivfix.js @@ -0,0 +1,10 @@ +// IE不支援display: table,故用此方法 +document.write(''); + +// 解決IE顯示回應區塊時排在同一行的問題 +function IEdivfix(){ + var divs=document.getElementsByTagName('div'),divs_cnt=divs.length; + for(i=0;i'); +} +hookPresetFunction(IEdivfix); // Hook on \ No newline at end of file diff --git a/data/js/script.js b/data/js/script.js new file mode 100755 index 0000000..e2a1a3a --- /dev/null +++ b/data/js/script.js @@ -0,0 +1,292 @@ +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('8 V=14;8 K=0;8 G=[];8 15=[[2h,24,20],[1R,1I,1F],[1A,2t,4]];8 11=[[29,23,22,1Z,1X,1Q],[1L,1H,1G,1E,1C,1z]];h $g(i){t o.2g(i)}h 2c(){8 N=I(\'1q\'),E=I(\'21\'),x;5((x=$g(\'H\'))){x.k=N}5((x=$g(\'1T\'))){x.k=E}}h 1P(){8 P=I(\'1K\'),d=o,1g=d.A.u;v(8 i=0;i<1g;i++){5(d.A[i].1a){d.A[i].1a.k=P}}}h I(a){8 b,z,w=0,y=0,F;b=\' \'+o.17+\';\';8 c=b.u;2q(w>1x.\'+a+"\\r\\n"}h S(a,b){8 c=$g(\'r\'+a);5(c){5(b){c.m=c.m.16(\' 1o\',\'\')}2s{5(K){S(K,R)}K=a;c.m+=\' 1o\'}}}h D(a){8 b=$g(a);8 c=1w(b.k).2r();8 d=/%2p(6[2n]|7[0-1v-f]|2l)[0-1v-f]/;5(c.13(d)!==2j){X(W[2]);1r(b)}}h 1r(a){8 b=a.k,i=0,p=0;8 c=15.u,s;v(i=0;i 1) + { + var show = rel[1]; + var hide = rel[2]; + } + + tag.onclick = function () { toggle (button, area); } + + var tog = document.getElementById (area); + + if (get_cookie ('toggle_' + area) == 1) + { + tog.style.display = ''; + if (relc > 1) { tag.innerHTML = hide; } + } + else + { + tog.style.display = 'none'; + if (relc > 1) { tag.innerHTML = show; } + } +// } + + return; +} + + +function replace_all (str, from, to) +{ + var idx = str.indexOf (from); + + while (idx > -1 ) + { + str = str.replace (from, to); + idx = str.indexOf (from); + } + return str; +} + +function highlight (post) +{ + var cello = document.getElementsByTagName ('blockquote'); + var cells = document.getElementsByTagName ('td'); + var reply = document.getElementById ('post' + post); + + for (var i = 0; i < cello.length; i ++) + { + if (cello[i].className == 'replyhl') + { cello[i].className = 'threadpost'; } + } + + for (var i = 0; i < cells.length; i ++) + { + if (cells[i].className == 'replyhl') + { cells[i].className = 'reply'; } + } + + if (reply) + { + reply.className = 'replyhl'; + var match = /^([^#r]*)/.exec (document.location.toString () ); + document.location = match[1] + '#r' + post; + } +} + +function size_textarea (id, rows) { document.getElementById(id).com.setAttribute('rows', rows); } + +function get_password (name) +{ + var pass = get_cookie (name); + if (pass) { return pass; } + + var chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; + var pass = ''; + + for (var i = 0; i < 8; i ++) + { + var rnd = Math.floor (Math.random () * chars.length); + pass += chars.substring (rnd, rnd + 1); + } + + return (pass); +} + +function get_cookie (name) +{ + with (document.cookie) + { + var reg = new RegExp ('(^|;\\s+)' + name + '=(.*?)(;|$)'); + var hit = reg.exec (document.cookie); + + if (hit && hit.length > 2) + { return unescape (replace_all (hit[2], '+', '%20') ); } + else return ''; + } +} + +function set_cookie (name, value, days) +{ + if (days) + { + var date = new Date (); + date.setTime (date.getTime () + (days * 24 * 60 * 60 * 1000) ); + var expires = '; expires=' + date.toGMTString (); + } + else expires = ''; + + document.cookie = name + '=' + value + expires + '; path=/'; +} + +function set_stylesheet (styletitle, norefresh) +{ + set_cookie ('yo_style', styletitle, 365); + + var links = document.getElementsByTagName ('link'); + var found = false; + + for (var i = 0; i < links.length; i ++) + { + var rel = links[i].getAttribute ('rel'); + var ttl = links[i].getAttribute ('title'); + + if (rel.indexOf ('style') != -1 && ttl) + { + links[i].disabled = true; // IE needs this to work. IE needs to die. + + if (styletitle == ttl) + { + links[i].disabled = false; + found = true; + } + } + } + + if (!found) set_preferred_stylesheet (); +} + +function set_preferred_stylesheet () +{ + var links = document.getElementsByTagName ('link'); + + for (var i = 0; i < links.length; i ++) + { + var rel = links[i].getAttribute ('rel'); + var ttl = links[i].getAttribute ('title'); + + if (rel.indexOf ('style') != -1 && ttl) + { links[i].disabled = (rel.indexOf ('alt') != -1); } + } +} + +function get_active_stylesheet () +{ + var links = document.getElementsByTagName ('link'); + + for (var i = 0; i < links.length; i ++) + { + var rel = links[i].getAttribute ('rel'); + var ttl = links[i].getAttribute ('title'); + + if (rel.indexOf ('style') != -1 && ttl && !links[i].disabled) + { return ttl; } + } + return null; +} + +function get_preferred_stylesheet () +{ + var links = document.getElementsByTagName ('link'); + + for (var i=0;i +Yotsubanome-Festival Theme +v20100404 +Pixmicat! Development Team and sparky4 + + + + +1 +272px +400px +1 + + +1 +99% +auto +0 + + + + + + + + + + + +{$TITLE} +{$STYLE_LOAD} +{$FAV_ICON} + + + + + + + + + +
    + + + + + +
    + + + +
    +
    + + + + + +
    + + + + + + + + + + +{$FORM_EXTRA_COLUMN} + + +
    {$FORM_NAME_TEXT}{$FORM_NAME_FIELD}
    {$FORM_EMAIL_TEXT}{$FORM_EMAIL_FIELD}
    {$FORM_TOPIC_TEXT}{$FORM_TOPIC_FIELD}{$FORM_SUBMIT}
    {$FORM_COMMENT_TEXT}{$FORM_COMMENT_FIELD}
    {$FORM_DELETE_PASSWORD_TEXT}{$FORM_DELETE_PASSWORD_FIELD}{$FORM_DELETE_PASSWORD_NOTICE}
    +
    +
      {$FORM_NOTICE} + +{$HOOKPOSTINFO} +{$ADDITION_INFO} +
    + +
    +
    +
    + +
    +
    +
    + + + + + + + + + + + +
    +
    +{$MESG}

    +{$RETURN_TEXT} {$BACK_TEXT} +

    +
    +
    + + + + onclick="if (!boxclicked) window.location='{$SELF}?res={$NO}';boxclicked=0;" +
    ','')-->> +','')--> +{$IMG_SRC} +{$IMG_SRC} + + +')--> + +
    {$SUB} +{$NAME_TEXT}{$NAME} {$NOW} {$QUOTEBTN}  {$REPLYBTN}
    +{$IMG_BAR}','')--> +{$WARN_OLD}{$WARN_BEKILL}{$WARN_ENDREPLY}{$WARN_HIDEPOST} +
    {$COM}
    + + + + + +
    … +{$SUB}  +{$NAME_TEXT}{$NAME} [{$NOW}] {$QUOTEBTN} {$IMG_BAR}{$IMG_SRC} +{$WARN_BEKILL}
    {$COM}
    + +
    + + + +
    +{$SUB} +{$NAME_TEXT}{$NAME} {$NOW} No.{$NO} +
    {$COM}
    + +
    + + + + + + + + +
    + + + +
    + + +
    +{$DEL_HEAD_TEXT}[{$DEL_IMG_ONLY_FIELD}]
    +{$DEL_PASS_TEXT}{$DEL_PASS_FIELD}{$DEL_SUBMIT_BTN} +{$STYLE_BAR} +
    +
    + + + +
    +{$THREADFRONT} +
    +
    +{$THREADS} +
    +{$THREADREAR} +
    + + +
    +{$PAGENAV} +
    + \ No newline at end of file diff --git a/data/tplt/inc_yo-uploader.tplt b/data/tplt/inc_yo-uploader.tplt new file mode 100755 index 0000000..77195cd --- /dev/null +++ b/data/tplt/inc_yo-uploader.tplt @@ -0,0 +1,190 @@ + +Yotsubanome Uploader-liked Theme +v20100404 +Pixmicat! Development Team and sparky4 + + + + + + + + + + +{$TITLE} +{$STYLE_LOAD} +{$FAV_ICON} + + + + + + + + + +
    + + + + + +
    + + + +
    +
    + + + + + +
    + + + + + + + + + + +{$FORM_EXTRA_COLUMN} + + +
    {$FORM_NAME_TEXT}{$FORM_NAME_FIELD}
    {$FORM_EMAIL_TEXT}{$FORM_EMAIL_FIELD}
    {$FORM_TOPIC_TEXT}{$FORM_TOPIC_FIELD}{$FORM_SUBMIT}
    {$FORM_COMMENT_TEXT}{$FORM_COMMENT_FIELD}
    {$FORM_DELETE_PASSWORD_TEXT}{$FORM_DELETE_PASSWORD_FIELD}{$FORM_DELETE_PASSWORD_NOTICE}
    +
    +
      {$FORM_NOTICE} + +{$HOOKPOSTINFO} +{$ADDITION_INFO} +
    + +
    +
    +
    + +
    +
    +
    + + + + + + + + + + + +
    +
    +{$MESG}

    +{$RETURN_TEXT} {$BACK_TEXT} +

    +
    +
    + + + + +
    {$SUB} +{$NAME_TEXT}{$NAME} [{$NOW}] {$QUOTEBTN} {$REPLYBTN}
    +{$IMG_BAR}{$IMG_SRC} +{$WARN_OLD}{$WARN_BEKILL}{$WARN_ENDREPLY}{$WARN_HIDEPOST} +
    {$COM}
    + + + + +
    {$QUOTEBTN}{$NAME}{$SUB}{$NOW}{$IMG_BAR}{$REPLYBTN}
    … +
    +{$SUB}  +{$NAME_TEXT}{$NAME} {$NOW} {$QUOTEBTN} {$IMG_BAR}{$IMG_SRC} +{$WARN_BEKILL}
    {$COM}
    + +
    + + + +
    +{$SUB} +{$NAME_TEXT}{$NAME} {$NOW} No.{$NO} +
    {$COM}
    + +
    + + + + + + + + +
    + + + +
    + + +
    +{$DEL_HEAD_TEXT}[{$DEL_IMG_ONLY_FIELD}]
    +{$DEL_PASS_TEXT}{$DEL_PASS_FIELD}{$DEL_SUBMIT_BTN} +{$STYLE_BAR} +
    +
    + + + +
    +
    +
    +{$THREADFRONT} + +{$THREADS} + +{$THREADREAR} +
    +
    + + +
    +{$PAGENAV} +
    + \ No newline at end of file diff --git a/data/tplt/inc_yo.tplt b/data/tplt/inc_yo.tplt new file mode 100755 index 0000000..f1baef1 --- /dev/null +++ b/data/tplt/inc_yo.tplt @@ -0,0 +1,166 @@ +Yotsubanome Theme +v20100404 +Pixmicat! Development Team and sparky4 + + + + + + + + + +{$TITLE} +{$STYLE_LOAD} +{$FAV_ICON} + + + + + + + + +
    + + + + + +
    + + + +
    +
    + + + + + +
    + + + + + + + + + + +{$FORM_EXTRA_COLUMN} + + +
    {$FORM_NAME_TEXT}{$FORM_NAME_FIELD}
    {$FORM_EMAIL_TEXT}{$FORM_EMAIL_FIELD}
    {$FORM_TOPIC_TEXT}{$FORM_TOPIC_FIELD}{$FORM_SUBMIT}
    {$FORM_COMMENT_TEXT}{$FORM_COMMENT_FIELD}
    {$FORM_DELETE_PASSWORD_TEXT}{$FORM_DELETE_PASSWORD_FIELD}{$FORM_DELETE_PASSWORD_NOTICE}
    +
    +
      {$FORM_NOTICE} + +{$HOOKPOSTINFO} +{$ADDITION_INFO} +
    + +
    +
    +
    + +
    +
    +
    + + + + + + + + + + + +
    +
    +{$MESG}

    +{$RETURN_TEXT} {$BACK_TEXT} +

    +
    +
    + + + + + +
    +{$IMG_BAR}{$IMG_SRC}{$SUB} +{$NAME_TEXT}{$NAME} {$NOW} {$QUOTEBTN}  {$REPLYBTN} +
    {$COM}
    + +{$WARN_OLD}{$WARN_BEKILL}{$WARN_ENDREPLY}{$WARN_HIDEPOST}
    + + + + +
    …{$SUB}  +{$NAME_TEXT}{$NAME} {$NOW} {$QUOTEBTN}  {$IMG_BAR}{$IMG_SRC} +
    {$COM}
    + +{$WARN_BEKILL}
    + + + +
    +{$SUB} +{$NAME_TEXT}{$NAME} {$NOW} No.{$NO} +
    {$COM}
    + +
    + + + + +
    + + + +
    + + + +
    + + +
    +{$DEL_HEAD_TEXT}[{$DEL_IMG_ONLY_FIELD}]
    +{$DEL_PASS_TEXT}{$DEL_PASS_FIELD}{$DEL_SUBMIT_BTN} +{$STYLE_BAR} +
    +
    + + + +
    +{$THREADFRONT} +
    +
    +{$THREADS} +
    +{$THREADREAR} + + +
    +{$PAGENAV} +
    + \ No newline at end of file diff --git a/futaba2pio.php b/futaba2pio.php new file mode 100755 index 0000000..ee647d0 --- /dev/null +++ b/futaba2pio.php @@ -0,0 +1,123 @@ + Pixmciat-PIO (Log) 資料格式轉換器 + * + * 本程式可以自 Log 版轉換格式自 PIO 版 Log 資料來源。 + * + * 注意:本程式是給 Log 版舊程式使用以轉換,非直接用在 PIO 新版上面 + * + * @package PMCUtility + * @version $Id$ + * @date $Date$ + */ + +define("PHP_DIRECTORY", '../../core/'); // yotsubanome "C:\windows\system\" +include_once(PHP_DIRECTORY.'config.php'); +define('DEL_ZOMBIE', true); // 如果有文章沒有出現在樹狀結構,是否不要轉換直接刪除? +define('SAVE_LOG', true); // 是否儲存新結構 (舊結構將保留並更名) +define('LOGFILE', "img.csv_loog"); +define('TREEFILE', "tree.csv_loog"); + +// 各資料儲存檔位置 +$logimg = file(LOGFILE); $logimg_cnt = count($logimg); +$trees = array(); // 文章回應對應編號陣列 (回應No. => 首篇No.) +$logtree = array_map('rtrim', file(TREEFILE)); +foreach($logtree as $treeline){ // 解析樹狀結構製成對應索引 + if($treeline=='') continue; + $tline = explode(',', $treeline); $tline_cnt = count($tline); + $trees[$tline[0]] = 0; + for($t = 1; $t < $tline_cnt; $t++){ $trees[$tline[$t]] = $tline[0]; } +} +unset($logtree); + +// 圖檔存放位置 +$dirimg = realpath('.').DIRECTORY_SEPARATOR.IMG_DIR; + +/* 取得圖檔的寬長以存入資料 */ +function getImageWH($imgname){ + global $dirimg; + + $imgpath = $dirimg.$imgname; + if(!file_exists($imgpath)) return array(0, 0); + list($width, $height,) = getimagesize($imgpath); + return array($width, $height); // 回傳寬高陣列 +} + +/* 取得圖檔的檔案大小字串 (單位 KB) */ +function getImageSizeText($imgname){ + global $dirimg; + + $imgpath = $dirimg.$imgname; + if(!file_exists($imgpath)) return false; + $imgsize = filesize($imgpath); + return $imgsize = ($imgsize>=1024) ? (int)($imgsize/1024).' KB' : $imgsize.' B'; // KB和B的判別 // 回傳檔案大小字串 +} + +/* 取得回應的對象編號 */ +function getReplyTargetNo($no){ + global $trees; + + if(isset($trees[$no])) return $trees[$no]; + return false; +} + +/* 更改 log 檔結構 */ +// OLD: 編號,時間 (ID),名稱,E-Mail,標題,內文,狀態旗標,主機位置,編碼後文章密碼,附加圖檔類型,預覽圖寬,預覽圖長,Unix時間撮記,附加圖檔MD5, + +// SUPER DUPER UBER OLD: +// 0$no,1$now,2$name,3$email,4$sub,5$com,6$url,7$host,8$pwd,9$ext,10$w,11$h,12$time,13$chk +// (futaba) + +// SUPER DUPER OLD: +// 0$no,1$now,2$name,3$email,4$sub,5$com,6$url,7$host,8$pwd,9$ext,10$w,11$h,12$time,13$chk,14$ip +// (early yotsubanome) + +// SUPER OLD: +// 0$no,1$now,2$name,3$email,4$sub,5$com,6$url,7$host,8$pwd,9$ext,10$w,11$h,12$time,13$chk,14$ip,15$filename,16$mime +// (old yotsubanome) + +// OLD: +// 0$no,1$now,2$name,3$email,4$sub,5$com,6$url,7$host,8$pwd,9$ext,10$w,11$h,12$time,13$chk,14$imgsize,15$filename,16$imgW,17$imgH,18$category,19$resto +// (older new yotsubanome) + + +// NEW: 編號,回應目標編號,附加圖檔MD5,類別標籤,Unix時間撮記,附加圖檔類型,圖檔寬,圖檔長,圖檔大小,預覽圖寬,預覽圖長,編碼後文章密碼,時間 (ID),名稱,E-mail,標題,內文,主機位置,狀態旗標, +// NEW: +// 0$no,1$resto,2$chk,3$category,4$time,5$ext,6$imgw,7$imgh,8$imgsize,9$filename,10$w,11$h,12$pwd,13$now,14$name,15$email,16$sub,17$com,18$host,19$url +// ↑ = ↓ the line above is equal to the line below (The line above is the old futaba variable names, and the line below is the new yotsubanome variable names.) +// 0$no,1$resto,2$md5chksum,3$category,4$tim,5$ext,6$imgw,7$imgh,8$imgsize,9$filename,10$tw,11$th,12$pwd,13$now,14$name,15$email,16$sub,17$com,18$host,19$status +// (new yotsubanome) + +header('Content-Type: text/plain; charset=utf-8'); +$newLine = array(); // 新資料格式 +$countda = count(explode(',', $logimg[0])); +if(count(explode(',', $logimg[0])) != 15 && count(explode(',', $logimg[0])) != 17 && count(explode(',', $logimg[0])) != 19){ + if($countda = 21) die('File structure error. It\'s already a PIO structure. ['.$countda.']'.var_dump($logimg)); + else die('File structure error. ['.$countda.']'.var_dump($logimg)); +} +for($i = 0; $i < $logimg_cnt; $i++){ + $l = explode(',', $logimg[$i]); // 舊資料格式 (用逗號拆開) + $s = getImageWH($l[12].$l[9]); // 圖檔寬長 (寬, 長) + $l[6] = str_replace('_THREADSTOP_', '_TS_', $l[6]); // 討論串停止旗標自 _THREADSTOP_ 改為 _TS_ + $l[2] = preg_replace('/<(.*?)>/', '', $l[2]); // name crap that breaks HTTP + $l[2] = preg_replace('/ /', '', $l[2]); // name crap that breaks HTTP + $l[2] = preg_replace('/◆四葉(.*?)##(.*?)##/', '', $l[2]); // name crap that breaks HTTP + if(strstr($l[14], "\n")){ $l[15] = $l[16] = $l[17] = $l[18] = $l[19] = ''; } // from futaba + if(strstr($l[14], ".") && $l[15] = false || !strstr($l[14], "KB") && !strstr($l[14], "B")){ $l[15] = $l[16] = $l[17] = $l[18] = $l[19] = ''; } // from early yotsubanome + if(strstr($l[14], ".") && strstr($l[16], "/") || !strstr($l[14], "KB") && !strstr($l[14], "B")){ $l[14] = $l[16] = ''; } // from old yotsubanome + //++++!if(strstr($l[1], "1969")) + if(!DEL_ZOMBIE || getReplyTargetNo($l[0]) !== false && $l[1] !== false) $newLine[] = implode(',', array($l[0], getReplyTargetNo($l[0]), $l[13], '', $l[12], $l[9], $s[0], $s[1], getImageSizeText($l[12].$l[9]), $l[15], (int) $l[10], (int) $l[11], $l[8], $l[1], $l[2], $l[3], $l[4], $l[5], $l[7], $l[6], ''))."\r\n"; +} + +$writeContent = implode('', $newLine); + +if(SAVE_LOG){ + rename(LOGFILE, LOGFILE.'.old'); + $fs = fopen(LOGFILE, 'w'); + fwrite($fs, $writeContent); + fclose($fs); + die('File save OK. The old file already renamed.'); +}else{ + echo $writeContent; +} +?> diff --git a/futaba2pio.phps b/futaba2pio.phps new file mode 100644 index 0000000..ee647d0 --- /dev/null +++ b/futaba2pio.phps @@ -0,0 +1,123 @@ + Pixmciat-PIO (Log) 資料格式轉換器 + * + * 本程式可以自 Log 版轉換格式自 PIO 版 Log 資料來源。 + * + * 注意:本程式是給 Log 版舊程式使用以轉換,非直接用在 PIO 新版上面 + * + * @package PMCUtility + * @version $Id$ + * @date $Date$ + */ + +define("PHP_DIRECTORY", '../../core/'); // yotsubanome "C:\windows\system\" +include_once(PHP_DIRECTORY.'config.php'); +define('DEL_ZOMBIE', true); // 如果有文章沒有出現在樹狀結構,是否不要轉換直接刪除? +define('SAVE_LOG', true); // 是否儲存新結構 (舊結構將保留並更名) +define('LOGFILE', "img.csv_loog"); +define('TREEFILE', "tree.csv_loog"); + +// 各資料儲存檔位置 +$logimg = file(LOGFILE); $logimg_cnt = count($logimg); +$trees = array(); // 文章回應對應編號陣列 (回應No. => 首篇No.) +$logtree = array_map('rtrim', file(TREEFILE)); +foreach($logtree as $treeline){ // 解析樹狀結構製成對應索引 + if($treeline=='') continue; + $tline = explode(',', $treeline); $tline_cnt = count($tline); + $trees[$tline[0]] = 0; + for($t = 1; $t < $tline_cnt; $t++){ $trees[$tline[$t]] = $tline[0]; } +} +unset($logtree); + +// 圖檔存放位置 +$dirimg = realpath('.').DIRECTORY_SEPARATOR.IMG_DIR; + +/* 取得圖檔的寬長以存入資料 */ +function getImageWH($imgname){ + global $dirimg; + + $imgpath = $dirimg.$imgname; + if(!file_exists($imgpath)) return array(0, 0); + list($width, $height,) = getimagesize($imgpath); + return array($width, $height); // 回傳寬高陣列 +} + +/* 取得圖檔的檔案大小字串 (單位 KB) */ +function getImageSizeText($imgname){ + global $dirimg; + + $imgpath = $dirimg.$imgname; + if(!file_exists($imgpath)) return false; + $imgsize = filesize($imgpath); + return $imgsize = ($imgsize>=1024) ? (int)($imgsize/1024).' KB' : $imgsize.' B'; // KB和B的判別 // 回傳檔案大小字串 +} + +/* 取得回應的對象編號 */ +function getReplyTargetNo($no){ + global $trees; + + if(isset($trees[$no])) return $trees[$no]; + return false; +} + +/* 更改 log 檔結構 */ +// OLD: 編號,時間 (ID),名稱,E-Mail,標題,內文,狀態旗標,主機位置,編碼後文章密碼,附加圖檔類型,預覽圖寬,預覽圖長,Unix時間撮記,附加圖檔MD5, + +// SUPER DUPER UBER OLD: +// 0$no,1$now,2$name,3$email,4$sub,5$com,6$url,7$host,8$pwd,9$ext,10$w,11$h,12$time,13$chk +// (futaba) + +// SUPER DUPER OLD: +// 0$no,1$now,2$name,3$email,4$sub,5$com,6$url,7$host,8$pwd,9$ext,10$w,11$h,12$time,13$chk,14$ip +// (early yotsubanome) + +// SUPER OLD: +// 0$no,1$now,2$name,3$email,4$sub,5$com,6$url,7$host,8$pwd,9$ext,10$w,11$h,12$time,13$chk,14$ip,15$filename,16$mime +// (old yotsubanome) + +// OLD: +// 0$no,1$now,2$name,3$email,4$sub,5$com,6$url,7$host,8$pwd,9$ext,10$w,11$h,12$time,13$chk,14$imgsize,15$filename,16$imgW,17$imgH,18$category,19$resto +// (older new yotsubanome) + + +// NEW: 編號,回應目標編號,附加圖檔MD5,類別標籤,Unix時間撮記,附加圖檔類型,圖檔寬,圖檔長,圖檔大小,預覽圖寬,預覽圖長,編碼後文章密碼,時間 (ID),名稱,E-mail,標題,內文,主機位置,狀態旗標, +// NEW: +// 0$no,1$resto,2$chk,3$category,4$time,5$ext,6$imgw,7$imgh,8$imgsize,9$filename,10$w,11$h,12$pwd,13$now,14$name,15$email,16$sub,17$com,18$host,19$url +// ↑ = ↓ the line above is equal to the line below (The line above is the old futaba variable names, and the line below is the new yotsubanome variable names.) +// 0$no,1$resto,2$md5chksum,3$category,4$tim,5$ext,6$imgw,7$imgh,8$imgsize,9$filename,10$tw,11$th,12$pwd,13$now,14$name,15$email,16$sub,17$com,18$host,19$status +// (new yotsubanome) + +header('Content-Type: text/plain; charset=utf-8'); +$newLine = array(); // 新資料格式 +$countda = count(explode(',', $logimg[0])); +if(count(explode(',', $logimg[0])) != 15 && count(explode(',', $logimg[0])) != 17 && count(explode(',', $logimg[0])) != 19){ + if($countda = 21) die('File structure error. It\'s already a PIO structure. ['.$countda.']'.var_dump($logimg)); + else die('File structure error. ['.$countda.']'.var_dump($logimg)); +} +for($i = 0; $i < $logimg_cnt; $i++){ + $l = explode(',', $logimg[$i]); // 舊資料格式 (用逗號拆開) + $s = getImageWH($l[12].$l[9]); // 圖檔寬長 (寬, 長) + $l[6] = str_replace('_THREADSTOP_', '_TS_', $l[6]); // 討論串停止旗標自 _THREADSTOP_ 改為 _TS_ + $l[2] = preg_replace('/<(.*?)>/', '', $l[2]); // name crap that breaks HTTP + $l[2] = preg_replace('/ /', '', $l[2]); // name crap that breaks HTTP + $l[2] = preg_replace('/◆四葉(.*?)##(.*?)##/', '', $l[2]); // name crap that breaks HTTP + if(strstr($l[14], "\n")){ $l[15] = $l[16] = $l[17] = $l[18] = $l[19] = ''; } // from futaba + if(strstr($l[14], ".") && $l[15] = false || !strstr($l[14], "KB") && !strstr($l[14], "B")){ $l[15] = $l[16] = $l[17] = $l[18] = $l[19] = ''; } // from early yotsubanome + if(strstr($l[14], ".") && strstr($l[16], "/") || !strstr($l[14], "KB") && !strstr($l[14], "B")){ $l[14] = $l[16] = ''; } // from old yotsubanome + //++++!if(strstr($l[1], "1969")) + if(!DEL_ZOMBIE || getReplyTargetNo($l[0]) !== false && $l[1] !== false) $newLine[] = implode(',', array($l[0], getReplyTargetNo($l[0]), $l[13], '', $l[12], $l[9], $s[0], $s[1], getImageSizeText($l[12].$l[9]), $l[15], (int) $l[10], (int) $l[11], $l[8], $l[1], $l[2], $l[3], $l[4], $l[5], $l[7], $l[6], ''))."\r\n"; +} + +$writeContent = implode('', $newLine); + +if(SAVE_LOG){ + rename(LOGFILE, LOGFILE.'.old'); + $fs = fopen(LOGFILE, 'w'); + fwrite($fs, $writeContent); + fclose($fs); + die('File save OK. The old file already renamed.'); +}else{ + echo $writeContent; +} +?> diff --git a/info b/info new file mode 100755 index 0000000..ef6f0b6 --- /dev/null +++ b/info @@ -0,0 +1,26 @@ +This is the core of the software + +Please refrain from creating boards in this directory +but create the board in 1 diectory up + +And use the databases in +core/lib/pio/ +and NOT in +core/lib/pio/old/ + +because that is where the development is taking place + + +/var/www/core/ can be ran as a board it self +but you can make another board + +/var/www// +/var/www/core/ + +Do NOT import the databases + +dbImport( = not ready + +there could be bugs + +please let me know about them in http://4ch.irc.su/sparky4/+4/core/yotsubanome.php diff --git a/lib/fileio/fileio.ftp.php b/lib/fileio/fileio.ftp.php new file mode 100755 index 0000000..62da926 --- /dev/null +++ b/lib/fileio/fileio.ftp.php @@ -0,0 +1,106 @@ +conn) return true; + $this->conn = ftp_connect($this->parameter[0], $this->parameter[1]); + if($result = @ftp_login($this->conn, $this->parameter[2], $this->parameter[3])){ + if($this->parameter[4]=='PASV') ftp_pasv($this->conn, true); // 被動模式 + ftp_set_option($this->conn, FTP_TIMEOUT_SEC, 120); // 延長 Timeout 至 120 秒 + @ftp_chdir($this->conn, $this->parameter[5]); + } + return $result; + } + + /* private 關閉 FTP 及儲存索引檔 */ + function _ftp_close(){ + if($this->conn) ftp_close($this->conn); // 有開啟 FTP 連線則關閉 + $this->IFS->saveIndex(); // 索引表更新 + } + + function FileIO($parameter, $ENV){ + require($ENV['IFS.PATH']); + $this->IFS = new IndexFS($ENV['IFS.LOG']); // IndexFS 物件 + $this->IFS->openIndex(); + register_shutdown_function(array($this, '_ftp_close')); // 設定解構元 (PHP 結束前執行) + set_time_limit(120); // 執行時間 120 秒 (FTP 傳輸過程可能很長) + $this->thumbLocalPath = $ENV['PATH'].$ENV['THUMB']; // 預覽圖本機位置 + $this->parameter = $parameter; + /* + [0] : FTP 伺服器位置 + [1] : FTP 伺服器埠號 + [2] : FTP 使用者帳號 + [3] : FTP 使用者密碼 + [4] : 是否使用被動模式? (PASV: 使用, NOPASV: 不使用) + [5] : FTP 預設工作目錄 + [6] : 工作目錄對應 URL + [7] : 預覽圖是否上傳至遠端 (true: 是, false: 否,使用本機檔案) + */ + } + + function init(){ + return true; + } + + function imageExists($imgname){ + if(!$this->parameter[7] && substr($imgname, -5) == 's.jpg') return file_exists($this->thumbLocalPath.$imgname); + return $this->IFS->beRecord($imgname); + } + + function deleteImage($imgname){ + if(!$this->_ftp_login()) return false; + if(is_array($imgname)){ + foreach($imgname as $i){ + if(!$this->parameter[7] && substr($i, -5) == 's.jpg'){ + @unlink($this->thumbLocalPath.$i); + }else{ + if(!ftp_delete($this->conn, $i)) return false; + $this->IFS->delRecord($i); // 自索引中刪除 + } + } + return true; + } + else{ + if(!$this->parameter[7] && substr($imgname, -5) == 's.jpg') return @unlink($this->thumbLocalPath.$imgname); + if($result = ftp_delete($this->conn, $imgname)) $this->IFS->delRecord($imgname); + return $result; + } + } + + function uploadImage($imgname='', $imgpath='', $imgsize=0){ + if($imgname=='') return true; // 支援上傳方法 + if(!$this->parameter[7] && substr($imgname, -5) == 's.jpg') return false; // 不處理預覽圖 + if(!$this->_ftp_login()) return false; + $result = ftp_put($this->conn, $imgname, $imgpath, FTP_BINARY); + if($result){ + $this->IFS->addRecord($imgname, $imgsize, ''); // 加入索引之中 + unlink($imgpath); // 確實上傳後刪除本機暫存 + } + return $result; + } + + function getImageFilesize($imgname){ + if(!$this->parameter[7] && substr($imgname, -5) == 's.jpg') return @filesize($this->thumbLocalPath.$imgname); + if($rc = $this->IFS->getRecord($imgname)) return $rc['imgSize']; + return false; + } + + function getImageURL($imgname){ + if(!$this->parameter[7] && substr($imgname, -5) == 's.jpg') return $this->getImageLocalURL($imgname); + return $this->IFS->beRecord($imgname) ? $this->parameter[6].$imgname : false; + } +} +?> \ No newline at end of file diff --git a/lib/fileio/fileio.imageshack.php b/lib/fileio/fileio.imageshack.php new file mode 100755 index 0000000..af93415 --- /dev/null +++ b/lib/fileio/fileio.imageshack.php @@ -0,0 +1,151 @@ +getImageLocalURL($imgname); + $out = "POST /transload.php HTTP/1.1\r\n"; + $out .= 'Host: www.imageshack.us'."\r\n"; + $out .= 'User-Agent: '.$this->userAgent."\r\n"; + $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; + if($this->parameter[0]) $out .= 'Cookie: myimages='.$this->parameter[0]."\r\n"; // ImageShack Registration Key Cookie + $out .= 'Content-Length: '.strlen($argument)."\r\n\r\n"; + $out .= $argument; + fwrite($fp, $out); + + $result = ''; + while(!feof($fp)){ $result .= fgets($fp, 128); } + fclose($fp); + + if(strpos($result, '<'.'?xml version="1.0" encoding="iso-8859-1"?>')===false) return false; + else{ + $returnValue = array(); + $xmlData = explode("\n", $result); + foreach($xmlData as $xmlDatum){ + $xmlDatum = trim($xmlDatum); + if($xmlDatum != '' && !eregi('links', $xmlDatum) && !eregi('xml', $xmlDatum)){ + $xmlDatum = str_replace('>', '<', $xmlDatum); + $xmlDatum = explode('<', $xmlDatum); + if(count($xmlDatum) >= 3) $returnValue[$xmlDatum[1]] = $xmlDatum[2]; + } + } + return $returnValue; + } + } + + /* private 發出刪除圖片要求 (需填入 Registration Key) */ + function _deleteImageShack($imgURL){ + if(!$this->parameter[0]) return true; // 沒金鑰無法要求刪除故直接略過 + $imgURL = parse_url($imgURL); // 分析 URL 結構準備重組 + if(!($fp = @fsockopen($imgURL['host'], 80))) return false; + + $out = 'GET /delete.php?l='.substr($imgURL['path'], 1).'&c='.$this->parameter[0].'&page=THIS_IS_A_FLAG HTTP/1.1'."\r\n"; + $out .= 'Host: '.$imgURL['host']."\r\n"; + $out .= 'User-Agent: '.$this->userAgent."\r\n\r\n"; + fwrite($fp, $out); + + $result = ''; + while(!feof($fp)){ $result .= fgets($fp, 128); } + fclose($fp); + + return (strpos($result, 'THIS_IS_A_FLAG')!==false ? true : false); // 偷吃步,偵測page是否為設定的特殊值 + } + + /* private 生成 ImageShack my.php 指向頁面位置 */ + function _myphpImageShack($imgurl, $ishotlink){ + if($ishotlink) return $imgurl; // 直連:直接傳回不需處理 + $imgurl = parse_url($imgurl); + return 'http://'.$imgurl['host'].'/my.php?image='.basename($imgurl['path']); + } + + /* private 儲存索引檔 */ + function _setIndex(){ + $this->IFS->saveIndex(); // 索引表更新 + } + + function FileIO($parameter, $ENV){ + require($ENV['IFS.PATH']); + $this->IFS = new IndexFS($ENV['IFS.LOG']); // IndexFS 物件 + $this->IFS->openIndex(); + register_shutdown_function(array($this, '_setIndex')); // 設定解構元 (PHP 結束前執行) + set_time_limit(120); // 執行時間 120 秒 (傳輸過程可能很長) + $this->userAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'; // Just for fun ;-) + $this->parameter = $parameter; // 將參數重新解析 + /* + [0] : ImageShack 註冊金鑰 (即登入頁面 setlogin.php 網址後面附帶一串編碼) * 可不填,但功能會少 + 登入後亦可在 http://reg.imageshack.us/content.php?page=register 找到 Your Registration Code + */ + } + + function init(){ + return true; + } + + function imageExists($imgname){ + return $this->IFS->beRecord($imgname); + } + + function deleteImage($imgname){ + if(is_array($imgname)){ + foreach($imgname as $i){ + if(($rc = $this->IFS->getRecord($i)) && $this->_deleteImageShack($rc['imgURL'])) $this->IFS->delRecord($i); // 自索引中刪除 + else return false; // 送出刪除要求失敗 + } + return true; + } + else{ + if(($rc = $this->IFS->getRecord($imgname)) && $this->_deleteImageShack($rc['imgURL'])){ $this->IFS->delRecord($imgname); return true; } + return false; + } + } + + function uploadImage($imgname='', $imgpath='', $imgsize=0){ + if($imgname=='') return true; // 支援上傳方法 + if(substr($imgname, -5)=='s.jpg'){ unlink($imgpath); return true; } // 預覽圖不用上傳,直接刪除 + $result = $this->_transloadImageShack($imgname); + if($result){ + $this->IFS->addRecord($imgname, $imgsize, $result['image_link']); // 加入索引之中 + list($w, $h) = explode('x', $result['resolution']); // 原圖解析度 + // 判斷是否自動生成預覽圖 (長寬任一大於200像素) 並儲存預覽圖位置 + $this->IFS->addRecord(substr($imgname, 0, 13).'s.jpg', ceil($imgsize / 4), (($w > 200 || $h > 200) ? $result['thumb_link'] : $result['image_link'])); + unlink($imgpath); // 確實上傳後刪除本機暫存 + } + return $result; + } + + function getImageFilesize($imgname){ + if($rc = $this->IFS->getRecord($imgname)) return $rc['imgSize']; + return false; + } + + function getImageURL($imgname, $ishotlink = false){ // 是否使用熱連結直連圖檔位置 (極有可能被 Ban 網域!請慎用) + return ($rc = $this->IFS->getRecord($imgname)) ? (substr($imgname, -5)=='s.jpg' ? $rc['imgURL'] : $this->_myphpImageShack($rc['imgURL'], $ishotlink)) : false; + } +} +?> \ No newline at end of file diff --git a/lib/fileio/fileio.normal.php b/lib/fileio/fileio.normal.php new file mode 100755 index 0000000..12926ab --- /dev/null +++ b/lib/fileio/fileio.normal.php @@ -0,0 +1,51 @@ +thumbPath : $this->imgPath).$imgname; + } + + function FileIO($parameter='', $ENV){ + $this->path = $ENV['PATH']; + $this->imgPath = $this->path.$ENV['IMG']; + $this->thumbPath = $this->path.$ENV['THUMB']; + } + + function init(){ + return true; + } + + function imageExists($imgname){ + return file_exists($this->_getImagePhysicalPath($imgname)); + } + + function deleteImage($imgname){ + if(is_array($imgname)){ foreach($imgname as $i){ if(!@unlink($this->_getImagePhysicalPath($i))) return false; } return true; } + else{ return @unlink($this->_getImagePhysicalPath($imgname)); } + } + + function uploadImage($imgname='', $imgpath='', $imgsize=0){ + return false; + } + + function getImageFilesize($imgname){ + return @filesize($this->_getImagePhysicalPath($imgname)); + } + + function getImageURL($imgname){ + return $this->getImageLocalURL($imgname); + } +} +?> \ No newline at end of file diff --git a/lib/fileio/fileio.satellite.php b/lib/fileio/fileio.satellite.php new file mode 100755 index 0000000..f97deb7 --- /dev/null +++ b/lib/fileio/fileio.satellite.php @@ -0,0 +1,182 @@ +parameter[0]['host'], 80))) return false; + + $argument = 'mode=init&key='.$this->parameter[2]; + $out = 'POST '.$this->parameter[0]['path']." HTTP/1.1\r\n"; + $out .= 'Host: '.$this->parameter[0]['host']."\r\n"; + $out .= 'User-Agent: '.$this->userAgent."\r\n"; + $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; + $out .= 'Content-Length: '.strlen($argument)."\r\n\r\n"; + $out .= $argument; + fwrite($fp, $out); + $result = fgets($fp, 128); // 取一次足以取到檔頭 + fclose($fp); + + return (strpos($result, '202 Accepted')!==false ? true : false); // 檢查狀態值偵測是否傳輸成功 + } + + /* private 傳送抓取要求到遠端衛星主機上面 */ + function _transloadSatellite($imgname){ + if(!($fp = @fsockopen($this->parameter[0]['host'], 80))) return false; + + $argument = 'mode=transload&key='.$this->parameter[2].'&imgurl='.$this->getImageLocalURL($imgname).'&imgname='.$imgname; + $out = 'POST '.$this->parameter[0]['path']." HTTP/1.1\r\n"; + $out .= 'Host: '.$this->parameter[0]['host']."\r\n"; + $out .= 'User-Agent: '.$this->userAgent."\r\n"; + $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; + $out .= 'Content-Length: '.strlen($argument)."\r\n\r\n"; + $out .= $argument; + fwrite($fp, $out); + $result = fgets($fp, 128); // 取一次足以取到檔頭 + fclose($fp); + + return (strpos($result, '202 Accepted')!==false ? true : false); // 檢查狀態值偵測是否傳輸成功 + } + + /* private 直接傳送檔案到遠端衛星主機上面 */ + function _uploadSatellite($imgname, $imgpath){ + srand((double) microtime()*1000000); + $boundary = '---------------------'.substr(md5(rand(0,32000)), 0, 10); // 生成分隔線 + + $argument = ''; // 資料暫存 + // 一般欄位資料轉換 + $formField = array('mode' => 'upload', 'key' => $this->parameter[2], 'imgname' => $imgname); + foreach($formField as $ikey => $ival){ + $argument .= "--$boundary\r\n"; + $argument .= "Content-Disposition: form-data; name=\"".$ikey."\"\r\n\r\n"; + $argument .= $ival."\r\n"; + $argument .= "--$boundary\r\n"; + } + // 上傳檔案欄位資料轉換 + $imginfo = getimagesize($imgpath); // 取得圖檔資訊 + $argument .= "--$boundary\r\n"; + $argument .= 'Content-Disposition: form-data; name="imgfile"; filename="'.$imgname.'"'."\r\n"; + $argument .= 'Content-Type: '.$imginfo['mime']."\r\n\r\n"; + $argument .= join('', file($imgpath))."\r\n"; + $argument .= "--$boundary--\r\n"; + + $out = 'POST '.$this->parameter[0]['path']." HTTP/1.1\r\n"; + $out .= 'Host: '.$this->parameter[0]['host']."\r\n"; + $out .= 'User-Agent: '.$this->userAgent."\r\n"; + $out .= "Content-Type: multipart/form-data, boundary=$boundary\r\n"; + $out .= 'Content-Length: '.strlen($argument)."\r\n\r\n"; + $out .= $argument; + + if(!($fp = @fsockopen($this->parameter[0]['host'], 80))) return false; + fwrite($fp, $out); + $result = fgets($fp, 128); + fclose($fp); + + return (strpos($result, '202 Accepted')!==false ? true : false); + } + + /* private 發出刪除圖片要求 */ + function _deleteSatellite($imgname){ + if(!($fp = @fsockopen($this->parameter[0]['host'], 80))) return false; + + $argument = 'mode=delete&key='.$this->parameter[2].'&imgname='.$imgname; + $out = 'POST '.$this->parameter[0]['path']." HTTP/1.1\r\n"; + $out .= 'Host: '.$this->parameter[0]['host']."\r\n"; + $out .= 'User-Agent: '.$this->userAgent."\r\n"; + $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; + $out .= 'Content-Length: '.strlen($argument)."\r\n\r\n"; + $out .= $argument; + fwrite($fp, $out); + $result = fgets($fp, 128); + fclose($fp); + + return (strpos($result, '202 Accepted')!==false ? true : false); + } + + /* private 儲存索引檔 */ + function _setIndex(){ + $this->IFS->saveIndex(); // 索引表更新 + } + + function FileIO($parameter, $ENV){ + require($ENV['IFS.PATH']); + $this->IFS = new IndexFS($ENV['IFS.LOG']); // IndexFS 物件 + $this->IFS->openIndex(); + register_shutdown_function(array($this, '_setIndex')); // 設定解構元 (PHP 結束前執行) + set_time_limit(120); // 執行時間 120 秒 (傳輸過程可能很長) + $this->userAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'; // Just for fun ;-) + $this->thumbLocalPath = $ENV['PATH'].$ENV['THUMB']; // 預覽圖本機位置 + $this->parameter = $parameter; // 將參數重新解析 + $this->parameter[0] = parse_url($this->parameter[0]); // URL 位置拆解 + /* + [0] : 衛星程式遠端 URL 位置 + [1] : 是否使用 Transload 方式要求衛星程式抓取圖檔 (true:是 false:否,使用傳統 HTTP 上傳) + [2] : 傳輸認證金鑰 + [3] : 遠端目錄對應 URL + [4] : 預覽圖是否上傳至遠端 (true: 是, false: 否,使用本機檔案) + */ + } + + function init(){ + return $this->_initSatellite(); + } + + function imageExists($imgname){ + if(!$this->parameter[4] && substr($imgname, -5) == 's.jpg') return file_exists($this->thumbLocalPath.$imgname); + return $this->IFS->beRecord($imgname); + } + + function deleteImage($imgname){ + if(is_array($imgname)){ + foreach($imgname as $i){ + if(!$this->parameter[4] && substr($i, -5) == 's.jpg'){ + @unlink($this->thumbLocalPath.$i); + }else{ + if(!$this->_deleteSatellite($i)) return false; + $this->IFS->delRecord($i); // 自索引中刪除 + + } + } + return true; + } + else{ + if(!$this->parameter[4] && substr($imgname, -5) == 's.jpg') return @unlink($this->thumbLocalPath.$imgname); + if($result = $this->_deleteSatellite($imgname)) $this->IFS->delRecord($imgname); + return $result; + } + } + + function uploadImage($imgname='', $imgpath='', $imgsize=0){ + if($imgname=='') return true; // 支援上傳方法 + if(!$this->parameter[4] && substr($imgname, -5) == 's.jpg') return false; // 不處理預覽圖 + $result = $this->parameter[1] ? $this->_transloadSatellite($imgname) : $this->_uploadSatellite($imgname, $imgpath); // 選擇傳輸方法 + if($result){ + $this->IFS->addRecord($imgname, $imgsize, ''); // 加入索引之中 + unlink($imgpath); // 確實上傳後刪除本機暫存 + } + return $result; + } + + function getImageFilesize($imgname){ + if(!$this->parameter[4] && substr($imgname, -5) == 's.jpg') return @filesize($this->thumbLocalPath.$imgname); + if($rc = $this->IFS->getRecord($imgname)) return $rc['imgSize']; + return false; + } + + function getImageURL($imgname){ + if(!$this->parameter[4] && substr($imgname, -5) == 's.jpg') return $this->getImageLocalURL($imgname); + return $this->IFS->beRecord($imgname) ? $this->parameter[3].$imgname : false; + } +} +?> \ No newline at end of file diff --git a/lib/fileio/ifs.php b/lib/fileio/ifs.php new file mode 100755 index 0000000..b442eeb --- /dev/null +++ b/lib/fileio/ifs.php @@ -0,0 +1,117 @@ +logfile = $logfile; // 索引記錄檔位置 + } + + /* 初始化 */ + function init(){ + switch($this->backend){ + case 'log': + touch($this->logfile); chmod($this->logfile, 0666); // 建立索引檔 + break; + case 'sqlite2': + $execText = 'CREATE TABLE IndexFS ( + "imgName" VARCHAR(20) NOT NULL PRIMARY KEY, + "imgSize" INTEGER NOT NULL, + "imgURL" VARCHAR(255) NOT NULL + ); CREATE INDEX IDX_IndexFS_imgName ON IndexFS(imgName);'; + sqlite_exec($this->index, $execText); + break; + } + } + + /* 開啟索引檔並讀入 */ + function openIndex(){ + if(extension_loaded('SQLite')){ + $this->backend = 'sqlite2'; + $this->index = sqlite_open($this->logfile, 0666); + if(sqlite_num_rows(sqlite_query($this->index, "SELECT name FROM sqlite_master WHERE name LIKE 'IndexFS'"))===0) $this->init(); + }else{ + $this->backend = 'log'; + $this->modified = false; + if(!file_exists($this->logfile)){ $this->init(); return; } + if(filesize($this->logfile)==0) return; + $indexlog = file($this->logfile); $indexlog_count = count($indexlog); // 讀入索引檔並計算目前筆數 + $this->index = array(); + for($i = 0; $i < $indexlog_count; $i++){ + if(!($trimline = rtrim($indexlog[$i]))) continue; // 本行無意義 + $field = explode("\t\t", $trimline); + $this->index[$field[0]] = array('imgSize' => $field[1], 'imgURL' => $field[2]); + // 索引格式: 檔名 檔案大小 對應路徑 + } + unset($indexlog); + } + } + + /* 索引是否存在 */ + function beRecord($id){ + switch($this->backend){ + case 'log': + return isset($this->index[$id]); + case 'sqlite2': + return (sqlite_fetch_array(sqlite_query($this->index, 'SELECT imgName FROM IndexFS WHERE imgName = "'.sqlite_escape_string($id).'"'), SQLITE_ASSOC) ? true : false); + } + } + + /* 取得一筆索引 */ + function getRecord($id){ + switch($this->backend){ + case 'log': + return isset($this->index[$id]) ? $this->index[$id] : false; + case 'sqlite2': + return sqlite_fetch_array(sqlite_query($this->index, 'SELECT * FROM IndexFS WHERE imgName = "'.sqlite_escape_string($id).'"'), SQLITE_ASSOC); + } + } + + /* 新增一筆索引 */ + function addRecord($id, $imgSize, $imgURL){ + switch($this->backend){ + case 'log': + $this->modified = true; + $this->index[$id] = array('imgSize' => $imgSize, 'imgURL' => $imgURL); // 加入索引之中 + break; + case 'sqlite2': + sqlite_exec($this->index, 'INSERT INTO IndexFS (imgName, imgSize, imgURL) VALUES ("'.sqlite_escape_string($id).'", '.sqlite_escape_string($imgSize).', "'.sqlite_escape_string($imgURL).'");'); + break; + } + } + + /* 刪除一筆索引 */ + function delRecord($id){ + switch($this->backend){ + case 'log': + if(isset($this->index[$id])){ unset($this->index[$id]); $this->modified = true; return true; } + return false; + case 'sqlite2': + return sqlite_exec($this->index, 'DELETE FROM IndexFS WHERE imgName = "'.sqlite_escape_string($id).'";'); + } + } + + /* 儲存索引變更 */ + function saveIndex(){ + if($this->backend=='log' && $this->modified){ // 如果有修改索引就回存 + $indexlog = ''; + if(count($this->index)) foreach($this->index as $ikey => $ival){ $indexlog .= $ikey."\t\t".$ival['imgSize']."\t\t".$ival['imgURL']."\n"; } // 有資料才跑迴圈 + $fp = fopen($this->logfile, 'w'); + fwrite($fp, $indexlog); + fclose($fp); + }elseif($this->backend=='sqlite2'){ + sqlite_close($this->index); + } + } +} +?> \ No newline at end of file diff --git a/lib/lang/de_DE.php b/lib/lang/de_DE.php new file mode 100755 index 0000000..87d3307 --- /dev/null +++ b/lib/lang/de_DE.php @@ -0,0 +1,240 @@ +File size exceeds server limitation.'; +$language['regist_upload_exceedcustom'] = 'Upload failed.
    File size exceeds limitation.'; +$language['regist_upload_incompelete'] = 'Upload failed.
    Incomplete upload. Please retry.'; +$language['regist_upload_direrror'] = 'Upload failed.
    Wrong setting of upload temporary directory. Please contact the system administrator.'; +$language['regist_upload_noimg'] = 'Please check No Image check box if you post without uploading an image!'; +$language['regist_upload_filenotfound'] = 'Upload failed.
    Server disabled file uploading, permission denied, or unsupported format.'; +$language['regist_upload_killincomp'] = '[Notice] Your sending was canceled because of the incorrect file size.'; +$language['regist_upload_notimage'] = 'Upload failed.
    Files other than image is not accepted.'; +$language['regist_upload_notsupport'] = 'Unsupported image.'; +$language['regist_upload_blocked'] = 'Upload failed.
    Uploading this image is blocked.'; +$language['regist_uploaded'] = 'Image %1$s uploaded.
    '; +$language['regist_sakuradetected'] = 'Big5 sakura Japanese characters detected.'; +$language['regist_withoutname'] = 'Please fill your name.'; +$language['regist_withoutsubject'] = 'Please fill the title.'; +$language['regist_withoutcomment'] = 'Please fill comment field if you don\'t upload an image.'; +$language['regist_withoutpassword'] = 'Please fill your password.'; +$language['regist_nametoolong'] = 'Name is too long.'; +$language['regist_emailtoolong'] = 'E-mail is too long.'; +$language['regist_topictoolong'] = 'Topic is too long.'; +$language['regist_longthreadnum'] = 'The thread you reply may be wrong.'; +$language['admin'] = 'Admin'; +$language['deletor'] = 'Deletor'; +$language['trip_pre'] = '◆'; +$language['trip_pre_fake'] = '◇'; +$language['cap_char'] = '★'; +$language['cap_char_fake'] = '☆'; +$language['regist_commenttoolong'] = 'Comment is too long.'; +$language['notice_incompletefile'] = 'Notice: Incomplete image.'; +$language['sun'] = 'Sun'; +$language['mon'] = 'Mon'; +$language['tue'] = 'Tue'; +$language['wed'] = 'Wed'; +$language['thu'] = 'Thu'; +$language['fri'] = 'Fri'; +$language['sat'] = 'Sat'; +$language['regist_successivepost'] = 'Please wait for a while for continuous posting.'; +$language['regist_duplicatefile'] = 'Upload failed.
    Same file uploaded lately.'; +$language['regist_threaddeleted'] = 'This thread is too old that it is deleted!'; +$language['regist_threadlocked'] = 'Thread is locked by administrator!'; +$language['regist_redirect'] = '%1$s Redirecting...

    If your browser don\'t redirect for you, please click: Return

    '; +$language['del_notchecked'] = 'Nothing selected for deletion. Please go back and select again.'; +$language['del_wrongpwornotfound'] = 'No such post or wrong password.'; +$language['admin_wrongpassword'] = 'Wrong password'; +$language['return'] = 'Return'; +$language['admin_remake'] = 'Update'; +$language['admin_frontendmanage'] = 'Front-End Manage (Sign in needed)'; +$language['admin_delete'] = 'Delete'; +$language['admin_top'] = 'Administrator mode'; +$language['admin_manageposts'] = 'Manage posts'; +$language['admin_optimize'] = 'Optimize'; +$language['admin_check'] = 'Check data source'; +$language['admin_repair'] = 'Repair data source'; +$language['admin_export'] = 'Export data'; +$language['admin_logout'] = 'Sign out'; +$language['admin_verify_btn'] = ' Sign in '; +$language['admin_archive'] = '
    ArchiveFuncStopDelDateTopicNameCommentHostImage (Bytes)
    MD5 checksum
    ArchiveFuncStopDelDateTopicNameCommentHostImage (Bytes)
    MD5 checksum
    保管機能ストップ削除投稿日題名投稿者コメントホスト名添付(Bytes)
    MD5
    '); +}else +define("S_FRULES_BOX", '');*/ + +define("S_REPORTERR", 'Cannot find reply.'); //Returns error when a reply (res) cannot be found +define("S_TGIF", 'Animation GIF'); +define("S_TPNG", 'Animation PNG'); +define("S_THUMB", 'Thumbnail displayed, click image for full size.'); //Prints instructions for viewing real source +define("S_NOTHUMB", 'Thumbnail unavailable'); +define("S_FILEDELETED", 'File Deleted'); +define("S_PICNAME", 'File : '); //Prints text before upload name/link +define("S_REPLY", 'Reply'); //Prints text for reply link +define("S_NOREPLY", 'It is not possible to Reply'); //Prints text for no reply link +define("S_OLD", 'Marked for deletion (old).'); //Prints text to be displayed before post is marked for deletion, see: retention +define("S_ARCH", 'Marked for archive (old).'); //Prints text to be displayed before post is marked for archive, see: retention +define("S_THUMBR1", 'The thumbnail is being replaced by the manager. Please guess the reason. w'); +define("S_THUMBR2", 'When the thumbnail is clicked, former image is displayed.'); +define("S_SAGE", 'Sage is being specified for this by the manager. Please guess the reason. w'); +define("S_ABBRP", '[#] post[s]'); // [n] post(s) found / hidden +define("S_ABBRI", ' and [#] image[s]'); // [n] image(s) found / hidden +define("S_ABBRC", ' omitted. Click [Reply] to view.'); //Prints text to be shown when replies are hidden +define("S_ABBRT", ' in [#] thread[s]'); // [n] thread(s) found +define("S_ABBRU", ', made by [#] user[s]'); +define("S_REPDEL", 'Delete Post'); //Prints text next to S_DELPICONLY (left) +define("S_DELPICONLY", 'File Only Deletion'); //Prints text next to checkbox for file deletion (right) +define("S_EDITKEY", 'Password '); //Prints text next to password field for edit (left) +define("S_DELETE", 'Delete'); //Defines deletion button's name +define("S_REPORT", 'Report'); //Defines report button's name +define("S_ARTICLE_FIX",'Post Correction'); +define("S_ARTICLE_EDIT",'Post Edit'); +define("S_PREV", 'Previous'); //Defines previous button +define("S_FIRSTPG", 'Previous'); //Defines previous button +define("S_NEXT", 'Next'); //Defines next button +define("S_LASTPG", 'Next'); //Defines next button +define("S_FOOT", '- GazouBBS + futaba + futallaby -'); //Prints footer (leave these credits) +define("S_RELOAD", 'Reload'); //Reloads the image board (refresh) +define("S_UPFAIL", 'Upload failed.'); //Returns error for failed upload (reason: unknown?) +define("S_NOREC", 'Cannot find record.'); //Returns error when record cannot be found +define("S_SAMEPIC", 'Duplicate md5 checksum detected.'); //Returns error when a md5 checksum dupe is detected +define("S_SAMEPICLOCA1", "
    Already posted here."); +define("S_TOOBIG", 'This image is too large! Upload something smaller!'); +define("S_TOOBIGORNONE", 'Either this image is too big or there is no image at all. Yeah.'); +define("S_UPGOOD", 'File '.$upfile_name.' uploaded!

    '); //Defines message to be displayed when file is successfully uploaded +define ('S_SCRTHREAD', "Redirecting to your new thread."); +define ('S_SCRPOST', "Redirecting to your post."); +define("S_STRREF", 'String refused.'); //Returns error when a string is refused +define("S_UNJUST", 'Unjust POST.'); //Returns error on an unjust POST - prevents floodbots or ways not using POST method? +define("S_NOPIC", 'No file selected.'); //Returns error for no file selected and override unchecked +define("S_NOTEXT", 'No text entered.'); //Returns error for no text entered in to subject/comment +define("S_MANAGEMENT", 'Manager : '); //Defines prefix for Manager Post name +define("S_DELETION", 'Deletion'); //Prints deletion message with quotes? +define("S_TOOLONG", 'Field too long.'); +define("S_TOOLONGS", 'Subject too long.'); +define("S_TOOLONGC", 'Comment too long.'); +define("S_TOOLONGN", 'Name too long.'); +define("S_TOOLONGE", 'Email too long.'); //Returns error for too many characters in a given field +define("S_UNUSUAL", 'Abnormal reply.'); //Returns error for abnormal reply? (this is a mystery!) +define("S_LONGCOMMENT", 'uComment too long. Click '); +define("S_LONGHERE", 'here'); +define("S_LONGSEE", ' to view the full text.v'); +define("S_BADHOST", 'Host is banned.
    Plea'); //Returns error for banned host ($badip string) +define("S_BADIP", 'YOU ARE B&.
    Plea'); //Returns error for banned user ($badip string) +define("S_PROXY80", 'Proxy detected on :80.'); //Returns error for proxy detection on port 80 +define("S_PROXY8080", 'Proxy detected on :8080.'); //Returns error for proxy detection on port 8080 +define("S_SPAMACTI", '

    Anti-spam filters triggered.

    '); //Returns error for spam detection +define("S_SPAMMESS", '

    If you are not a spammer, you probably did not leave the Anti-spam field blank. Try editing your post to remove it. Sorry for any inconvenience.


    '); //Returns error message for spam detection +define("S_SUN", 'Sun'); //Defines abbreviation used for "Sunday" +define("S_MON", 'Mon'); //Defines abbreviation used for "Monday" +define("S_TUE", 'Tue'); //Defines abbreviation used for "Tuesday" +define("S_WED", 'Wed'); //Defines abbreviation used for "Wednesday" +define("S_THU", 'Thu'); //Defines abbreviation used for "Thursday" +define("S_FRI", 'Fri'); //Defines abbreviation used for "Friday" +define("S_SAT", 'Sat'); //Defines abbreviation used for "Saturday" +if(!defined("S_NNAME")) define("S_NNAME", 'Name : '); +if(!defined("DEF_SUB")) define("DEF_SUB", '–³‘è'); //Defines what to print if there is no text entered into subject field +if(!defined("DEF_NAME")) define("DEF_NAME", '–¼–³‚µ'); //Defines what to print if there is no text entered in the name field +if(!defined("DEF_COM")) define("DEF_COM", 'ƒLƒ^[[[[(^ƒŽ^)[[[[IIII'); //Defines what to print if there is no text entered in the comment field +define("S_NONAME", 'You are no allowed to be'.DEF_NAME); //Returns error for no name +define("S_NOSUB", 'There is no title.'); //Returns error for no text entered in to subject +define("S_NOCOM", 'There is no text in comment.'); //Returns error for no text entered in to comment +define("S_NOPASS", 'There is no imputed password.'); //Returns error for no password +define("S_RENZOKU1", 'Flood detected, post discarded.'); //Returns error for $sec/post spam filter +define("S_RENZOKU2", 'Flood detected, file discarded.'); //Returns error for $sec/upload spam filter +define("S_RENZOKU3", 'Flood detected, post & file discarded.'); //Returns error for flood? (don't know the specifics) +define("S_DUPE", 'Duplicate file entry detected.'); //Returns error for a duped file (same upload name or same tim/time) +define("S_NOTHREADERR", 'Thread specified does not exist.'); //Returns error when a non-existant thread is accessed +define("S_SCRCHANGE", 'Updating page.'); //Defines message to be displayed when post is successful // +define("S_BADDELPASS", 'Password incorrect.'); //Returns error for wrong password (when user tries to delete file) +define("S_WRONGPASS", 'Management password incorrect.'); //Returns error for wrong password (when trying to access Manager modes) +define("S_WRONGMANAME", 'Management name is not found.'); //Returns error for wrong name (when trying to access Manager modes) +define("S_RETURNS", 'Return to '.TITLE.''); //Returns to HTML file instead of PHP--thus no log/SQLDB update occurs +define("S_LOGUPD", 'Update'); //Updates the log/SQLDB by accessing the PHP file +define("S_BNOTBANIP", 'Unable to find record of your IP being banned.'); +define("S_BNOTBAN", 'You are not banned!'); +define("S_BBAN", 'You have been banned!'); + +define("S_BBANMESS1", 'You have been permanently banned from '); +define("S_BBANBOARD", 'all boards.'); +define("S_BBANMESS2", ''); +define("S_BBANMESSREA", 'The moderation team supplied the following reason: '); + +define("S_BBANMESSB4FORM", "If you believe this is a mistake, you may dispute the matter by posting here or the form provided below."); + +define("S_BBANMESSVIEWDENY", 'Your appeal was reviewed and denied. You may not appeal this ban again.'); +define("S_BBANMESSDENY", 'You may not appeal this ban.'); + +define("S_MANAMODE", 'Manager Mode'); //Prints heading on top of Manager page +define("S_MANAREPDEL", 'Management Panel'); //Defines Management Panel radio button--allows the user to view the management panel (overview of all posts) +define("S_MANAPOST", 'Manager Post'); //Defines Manager Post radio button--allows the user to post using HTML code in the comment box +define("S_MANASAGE", 'Perma-sage'); +define("S_MANATHUMB", 'Thumbnail replacement'); +define("S_MANASTOP", 'Thread stop'); +define("S_MANAHOST", 'Host/ID display list'); // registration and deletion +define("S_MANAARCH", 'Archive Management'); +define("S_MANAREGBAN", 'Ban Management'); +define("S_MANADELBAN", 'Unban Management'); +define("S_MANAREGWORD", 'Word filter Registration'); +define("S_MANADELWORD", 'Word filter Deletion'); +define("S_MANALOG", 'Log management'); +define("S_FUTARE", 'Log cleaning'); +define("S_MANASUB", 'Submit'); //Defines name for submit button in Manager Mode +define("S_MANAVER", 'Verify Management access'); +define("S_MANANAME", 'Mod/Admin name'); +define("S_MANAPASS", 'Pass'); +define("S_MANAREM", 'Remeber my login'); +define("S_DELLIST", 'Mark the check box of a post, and push the deletion button to delete it.'); //Prints sub-heading of Management Panel +define("S_SAGELIST", 'Mark the check box of a post, and push the change button to Permasage it.
    uSagevanduSage releasevchange.
    usagevbyuSage startvanduNumber sage of loessesvcannot be released.'); +define("S_STOPLIST", 'Mark the check box of a post, and push the change button to lock/close it.
    uSuresutovanduSuresutovrelease" change.
    '); +define("S_THUMBLIST", 'Mark the check box of a post, and push the replacement button to replace the thumbnail.
    uSelectionvanduSelection Releasev change.'); +define("S_HOSTREGLIST", "Mark the check in object host's post check box, and push the change button.
    It is registered in the display host's list.
    If the host name is not done when it is checked to display the host name, ID is displayed.
    "); +define("S_HOSTDELLIST", "Mark the check box of the host who wants to delete it from the list, and push the change button.
    It is deleted from the display host's list."); +define("S_WORDFILTERLIST", 'Put the word you want to filter in the red box.
    Put the filtered word in the blue box.'); +define("S_INTO", '->'); +define("S_ITDELETES", 'Delete'); //Defines for deletion button in Management Panel +define("S_MDDELETION", 'Delete'); +define("S_MDRESET", 'Reset'); //Defines name for field reset button in Management Panel +define("S_MDCHANGE", 'Change'); +define("S_MDREPLACE", 'Replace'); +define("S_HOSTDIS", 'The host name is displayed'); +define("S_HOSTDISLIST", 'Host display list'); +define("S_IDDISLIST", 'ID display list'); +define("S_SEL", 'Sel'); +define("S_HOSTNAME", 'Host name'); +define("S_STILLGIF", 'GIF is only made thumbnail'); +define("S_STILLPNG", 'PNG is only made thumbnail'); +define("S_MDONLYPIC", 'File Only'); //Sets whether or not to delete only file, or entire post/thread + +//bann +define("S_PUBREA", 'Public reason : '); +define("S_PRIREA", 'Private note : '); +define("S_BANPLEABLE", 'The ban is cleanable : '); +define("S_MODADMINNAME", 'Name of Mod/Admin : '); +define("S_BANNOTPLEABLE", 'The ban is NOT cleanable : '); +define("S_REQUIRETOBANUSER", 'Required to ban user'); +define("S_REQUIRETOBAN", 'Required to ban'); +define("S_REQUIRETOBANANY", 'Required to ban anything'); + +define("S_MANABANISHUSER", 'User banishment?'); +define("S_DISPLAYTOMANA", 'This will only be visible to mods and admins'); +define("S_DISPLAYTOUSER", 'This will be displayed to banned user'); +define("S_MANABADFILE", 'Bad file'); +define("S_MANABADWORD", 'Bad word'); + +define("S_MDTABLE1", '
    '); //Explains field names for Management Panel (Delete?->Subject) +define("S_MDTABLE2", ''); //Explains names for Management Panel (Name->IP) +define("S_MDTABLE3", ''); //Explains names for Management Panel (Size) +define("S_MDTABLE4", ''); //Explains names for Management Panel (md5) + +define("S_MTTABLE1", ''); + +define("S_RESET", 'Reset'); //Sets name for field reset button (global) +define("S_IMGSPACEUSAGE", 'Space used : '); //Prints space used KB by the board under Management Panel +define("S_YOURIP", 'Your IP Address is : '); +define("S_SUCCESS", 'Success'); +define("S_CANNOTWRITE", 'Cannot write to a current directory.
    '); //Returns error when the script cannot write to the directory, this is used on initial setup--check your chmod (777) +define("S_NOTWRITE", 'Cannot write to directory.
    '); //Returns error when the script cannot write to the directory, the chmod (777) is wrong +define("S_NOTREAD", 'Cannot read from directory.
    '); //Returns error when the script cannot read from the directory, the chmod (777) is wrong +define("S_NOTDIR", 'Directory does not exist.
    '); //Returns error when the script cannot find/read from the directory (does not exist/isn't directory), the chmod (777) is wrong +define("S_VERIFY", 'Verify'); //verification of the capatcha. +define("S_WRONGVERY", 'You entered the wrong verification code!'); +define("S_NOTITLE", 'Please enter a title or subject for your post.'); +define("S_ANOTFOUND", 'The article is not found or the password is wrong.'); +define("S_EDITSAME", 'The content is quite the same. Please change somewhere.'); +define("S_CANNOTCORRECT", 'It is not possible to correct this post.'); + +define("S_TOOBIGRES", 'Picture dimensions is too large.'); +define("S_TOOSMALLRES", 'Picture dimensions is too small.'); +define("S_FILEEXNOTSUPPORTED", 'File extension not supported'); +define("S_FILETYPENOTSUPPORTED", 'File type not supported'); + +define("S_THUMBV", 'Thumb'); +define("S_VIEWA", 'Image ‘œ‚Ñ‚ã`‚í`'); +define("S_NEWTHREAD", 'Make new thread'); +define("S_CAT", 'Catalog'); +define("S_CATALOGMODE", 'Catalog Mode'); +define("S_LIST", 'Thread List'); +define("S_NWAHA", 'V’…‚í‚́['); +define("S_ABOUT", 'ABOUT'); +define("S_OGEGE", 'Ogege'); +define("S_ALBUM", 'Album'); +define("S_TLIST", 'The Thread List is here.'); +define("S_SUBLIST", 'Subject List'); +define("S_SOURCECODE", 'Source Code'); +define("S_ARCHIVEOF", 'Archive of '.TITLE); +define("S_NOARCHIVE", 'There is no archived threads.'); + +/*smaller files connection*/ +define("S_TOTAL_IMG", 'Total Images'); +define("S_TOTAL_SURE", 'Total Threads'); +define("S_TOTAL_POST", 'Total Posts'); + +define("S_FUTAPASS", '¥Please input the password.'); +define("S_FUTABO1", 'Submit'); +define("S_FUTADEL", 'Delete it?'); +define("S_FUTA2YOTSU", 'Update it?'); +define("S_FUTAGARBAGE", 'The garbage of URL, MAIL, and TIME is removed.
    +Please execute the log after it backs up without fail.'); +define("S_FUTAPROSS", 'It was normally processed.'); +$copy_log = COPY_LOG; +define("S_FUTAPROSSCOPY", '
    Please rename '.$copy_log.' after confirming the log as '.LOGFILE.' and replace it.'); +define("S_FUTACLEAN", 'Clean'); + + //img_view/search +define("S_IMG_VIEW_INFO", 'It links with contribution Thread a check box of the display it on as for the file information. '); +define("S_TEXT_ENGINE", 'Full-text search engine'); +define("S_TEXT_ENGINE_INSTALLED", ' installed'); +define("S_FILE_INFO_DISP", 'The file information is displayed.'); +define("S_FILE_INFO_DISP_BUTTON", 'ƒ|ƒ`ƒb‚Æ‚È'); +define("S_ALL_TOTAL_IMG", 'The number of all images'); +define("S_SURE_IMG", 'The number of op images'); +define("S_REPLY_IMG", 'The number of reply images'); +define("S_PAGE_DEF", 'Number of one page displays'); +define("S_IMG_DISPLAY_TO", 'to'); +define("S_IMG_DISPLAY", 'are the images displayed.'); +define("S_PIECE", ''); + +define("S_SEARCH",'Search'); +define("S_DISPNO",'Display resultsF'); +define("S_SEARCH_RULE", 'E Please delimit it in space when you specify two or more key words.
    +E It retrieves it to the search condition AND A B = It is (A and B. )
    +E The retrieval object is article No, a name, a title, a text, and eye column.
    +E Capital letters and small letters are distinguished. (A?a) (ABC?aBC)
    +E The retrieval word is used four colors repeatedly and displayed with the color. Google style?
    +E Please refrain from a strange search strategy as much as possible. The report if there is a bug.
    +E The base of this search engine is logoogle.php ver 0.1.1
    '); + +define("S_SEARCH_NOT_FOUND", 'did not match any text.'); +define("S_SEARCH_PROTIP", 'Search PRO TIP'); +define("S_SEARCH_LIST", '- Please confirm whether there are neither an erratum nor an omission of a word in the key word.
    +- Please use a different key word.
    +- Please use a more general word.
    +- Please reduce the number of key words.
    +- Please doubt my sense.
    '); +define("S_POSTSCRIPT", 'PRO TIP:'); +define("S_SEARCH_FIX", 'When it is not good, even if the above-mentioned is tried, please give up bravely. [ENGRISH wwww]'); +define("S_KEYWORD_NO_MATCH", 'There was no article that matched to the key word.'); + +define("S_INLOG", 'In log'); +define("S_SEARCH_RESULT", 'Search result |'); +define("S_SEARCH_HIT", 'Hits'); +define("S_SEARCH_RESULTS", 'Results'); +define("S_SEARCH_SUBJECT", 'SubjectF'); +define("S_SEARCH_NAME", 'NameF'); +define("S_SEARCH_DATE", 'DateF'); +define("S_SEARCH_PREV", '<<Previous'); +define("S_SEARCH_NEXT", 'Next>>'); +define("S_IMGRET",'Image retrieval'); +define("S_SEARCH_TOOL",'Search tool'); +define("S_HELP",'Help'); + + //time +define("S_SECONDS", 'seconds'); + //image download counter +define("S_THISIMG",'This image has been downloaded '); +define("S_THISIMGDLTIMES",' time[s].'); + +// Style tooltip: stuff inside [square brackets] MUST be left as is! + define ('S_STYLETOOLTIP', "Switch to [what] style"); + + // Title of stylesheet management page + define ('S_ADMIN_STYLESHEETS', "Manage Stylesheets"); + + define ('TH_ADMIN_IMPORTED', "Imported from [file]"); + define ('TH_ADMIN_EDITING', "Editing [file]"); + define ('TH_ADMIN_CREATED', "[file] created!"); + define ('TH_ADMIN_UPDATED', "[file] updated!"); + define ('TH_ADMIN_DELETED', "[file] deleted!"); + + // Headings for fields + define ('TH_ADMIN_IS_DEFAULT', "Default?"); + define ('TH_ADMIN_STYLE_DEFAULT', "Make this default"); + define ('TH_ADMIN_FULLNAME', "Full name"); + define ('TH_ADMIN_SHORTNAME', "Short name"); + define ('TH_ADMIN_DISP_ID', 'ID / Display order(0 to delete)'); + define ('TH_ADMIN_ADDSTYLE', "Add [or modify] stylesheet entry"); + // This goes in [or modify] above + define ('TH_ADMIN_MODSTYLE', "or modify"); + define ('TH_ADMIN_NEW_FILE', 'File'); + define ('TH_ADMIN_NEW_ID', 'Display order(Use existing ID to overwrite)'); + +/* +define("S_SQLCONF", 'MySQL connection failure'); //MySQL connection failure +define("S_SQLDBSF", 'Database error, check SQL settings
    '); //database select failure +define("S_TCREATE", 'Creating table!
    \n'); //creating table +define("S_TCREATEF", 'Unable to create table!
    '); //table creation failed +define("S_SQLFAIL", 'Critical SQL problem!
    '); //SQL Failure +define("S_UNFILE", 'File type not suported.'); +*/ +?> diff --git a/lib/lang/strings_jp.phps b/lib/lang/strings_jp.phps new file mode 100755 index 0000000..21c3398 --- /dev/null +++ b/lib/lang/strings_jp.phps @@ -0,0 +1,358 @@ +ƒAƒjƒ’âŽ~'); +define("S_OR", '–”‚Í'); +define("S_REQUIRE", '•K{'); +define("S_NONAMEF", '–¼‘O—“‚È‚µ'); +define("S_IDDISP", '‹­§ID•\Ž¦'); +define("S_RETURNTO", 'ƒXƒŒ‚É–ß‚é'); +define("S_SPAMTRAP", '‚±‚ê‚ç‚Ì—“‚Í‹ó”’‚Ì‚Ü‚Ü‚Å(ƒXƒpƒ€ƒgƒ‰ƒbƒv)F'); + +define("S_FRULES", '
  • “Y•t‰Â”\FBMP, GIF, JPG, PNG +
  • Å‘å“Šeƒf[ƒ^-ƒn‚Í '.MAX_KB.' KB ‚Ü‚Å‚Å‚·Bsage‹@”\•t‚«B +
  • '.MAX_W.'x'.MAX_H.'ˆÈã‚͏k¬.'); +/*
  • ‰æ‘œ‚͉¡ '.MAX_W.'ƒsƒNƒZƒ‹Ac '.MAX_H.'ƒsƒNƒZƒ‹‚ð’´‚¦‚é‚Ək¬•\Ž¦‚³‚ê‚Ü‚·B*/ +define("S_MINHWRULES1", '
  • '); +define("S_MAXHWRULES1", '
  • '); +define("S_MINHWRULES2", '‰æ‘f‚æ‚菬‚³‚¢ƒCƒ[ƒWƒY‚Í‹–—e‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB'); +define("S_MAXHWRULES2", '‰æ‘f‚̃Cƒ[ƒWƒY‚Í‹–—e‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB'); + +define("S_FANIMERULES1", '
  • '); +define("S_FANIMERULES2", '‚Í“®‚«‚Ü‚·B“®‚©‚µ‚½‚¢Žž‚Í“ŠeŽž‚É['); +define("S_FANIMERULES3", 'ƒAƒjƒ’âŽ~]‚̃`ƒFƒbƒN‚ð‰ðœB'); +define("S_FVOTERULES", '
  • E-mail —“‚Ɂuvotev‚Ə‘‚­‚±‚Ƃʼn摜‚ɑ΂·‚é“Š•[‹@”\‚ªƒXƒ^[ƒg‚µ‚Ü‚·B'); +define("S_EDIT_RULE", '
  • ‚Ç‚±‚à•ÒW‚µ‚È‚¢‚ƃGƒ‰[‚É‚È‚è‚Ü‚·B'); + +/*if(!USE_IMG){ +define("S_FRULES_BOX", '
  • DelPost NoTimeSubjectNameCommentHost / IPSize
    (Bytes)
    md5
    SelPost Noó‘Ô +TimeSubject
    '); +}else +define("S_FRULES_BOX", '');*/ + +define("S_REPORTERR", 'ŠY“–‹LŽ–‚ª‚݂‚©‚è‚Ü‚¹‚ñ'); +define("S_TGIF", 'ƒAƒjƒGIF.'); +define("S_TPNG", 'ƒAƒjƒPNG.'); +define("S_THUMB", 'ƒTƒ€ƒlƒCƒ‹‚ð•\Ž¦‚µ‚Ä‚¢‚Ü‚·.ƒNƒŠƒbƒN‚·‚é‚ÆŒ³‚̃TƒCƒY‚ð•\Ž¦‚µ‚Ü‚·.'); +define("S_NOTHUMB", '“üŽè‚Å‚«‚È‚¢ƒTƒ€ƒlƒCƒ‹'); +define("S_FILEDELETED", 'ƒtƒ@ƒCƒ‹íœ‚É‚³‚ê‚é'); +define("S_PICNAME", '‰æ‘œƒ^ƒCƒgƒ‹F'); +define("S_REPLY", '•ÔM'); +define("S_NOREPLY", '•ÔM•s‰Â'); +define("S_OLD", '‚±‚̃XƒŒ‚́iŒÃ‚¢j‚̂ŁA‚à‚¤‚·‚®Á‚¦‚Ü‚·B'); +define("S_ARCH", '‚±‚̃XƒŒ‚́iŒÃ‚¢j‚̂ŁA‚à‚¤‚·‚®ƒA[ƒJƒCƒuB'); +define("S_THUMBR1", '‚±‚̃XƒŒ‚ÍŠÇ—ŽÒ‚É‚æ‚èƒTƒ€ƒlƒCƒ‹‚ª·‚µ‘Ö‚¦‚ç‚ê‚Ä‚¢‚Ü‚·B——R‚Í‚¨Ž@‚µ‚­‚¾‚³‚¢B'); +define("S_THUMBR2", 'ƒTƒ€ƒlƒCƒ‹‚ðƒNƒŠƒbƒN‚·‚é‚ÆŒ³‚̉摜‚ð•\Ž¦‚µ‚Ü‚·B'); +define("S_SAGE", '‚±‚̃XƒŒ‚ÍŠÇ—ŽÒ‚É‚æ‚èsageŽw’肳‚ê‚Ä‚¢‚Ü‚·B——R‚Í‚¨Ž@‚µ‚­‚¾‚³‚¢B'); +define("S_ABBRP", 'ƒŒƒX[#]“Še'); +define("S_ABBRI", ' ‚Æ[#]ƒtƒ@ƒCƒ‹'); +define("S_ABBRC", 'ŒÈ—ªB‘S‚Ä“Ç‚Þ‚É‚Í[•ÔM]ƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢B'); +define("S_ABBRT", '‚Å[#]Ž…'); +define("S_ABBRU", 'Aì¬‚³‚ꂽ[#]l'); +define("S_REPDEL", '‹LŽ–íœ'); +define("S_DELPICONLY", '‹LŽ–‚ðŽc‚µ‰æ‘œ‚¾‚¯Á‚·'); +define("S_EDITKEY", '•ÒWƒL['); +define("S_DELETE", 'íœ'); +define("S_REPORT", 'ƒŒƒ|[ƒg'); +define("S_ARTICLE_FIX",'‹LŽ–C³'); +define("S_ARTICLE_EDIT",'‹LŽ–•ÒW'); +define("S_PREV", '‘O‚̃y[ƒW'); +define("S_FIRSTPG", 'Å‰‚̃y[ƒW'); +define("S_NEXT", 'ŽŸ‚̃y[ƒW'); +define("S_LASTPG", 'ÅŒã‚̃y[ƒW'); +define("S_FOOT", '- GazouBBS + futaba + futallaby -'); +define("S_RELOAD", 'ƒŠƒ[ƒh'); +define("S_UPFAIL", 'ƒAƒbƒvƒ[ƒh‚ÉŽ¸”s‚µ‚Ü‚µ‚½
    ƒT[ƒo‚ªƒTƒ|[ƒg‚µ‚Ä‚¢‚È‚¢‰Â”\«‚ª‚ ‚è‚Ü‚·'); +define("S_NOREC", 'ƒAƒbƒvƒ[ƒh‚ÉŽ¸”s‚µ‚Ü‚µ‚½
    ‰æ‘œƒtƒ@ƒCƒ‹ˆÈŠO‚͎󂯕t‚¯‚Ü‚¹‚ñ'); +define("S_SAMEPIC", 'ƒAƒbƒvƒ[ƒh‚ÉŽ¸”s‚µ‚Ü‚µ‚½
    “¯‚¶‰æ‘œ‚ª‚ ‚è‚Ü‚µ‚½'); +define("S_SAMEPICLOCA1", "
    ‚±‚±‚ÉŠù‚ÉŒfŽ¦‚³‚ê‚Ä‚¢‚Ü‚·"); +define("S_TOOBIG", 'ƒAƒbƒvƒ[ƒh‚ÉŽ¸”s‚µ‚Ü‚µ‚½
    ƒTƒCƒY‚ª‘å‚«‚·‚¬‚Ü‚·
    '.MAX_KB.'KƒoƒCƒg‚Ü‚Å'); +define("S_TOOBIGORNONE", 'ƒAƒbƒvƒ[ƒh‚ÉŽ¸”s‚µ‚Ü‚µ‚½
    ‰æ‘œƒTƒCƒY‚ª‘å‚«‚·‚¬‚é‚©A
    ‚Ü‚½‚͉摜‚ª‚ ‚è‚Ü‚¹‚ñB'); +define("S_UPGOOD", '‰æ‘œ '.$upfile_name.' ‚̃Aƒbƒvƒ[ƒh‚ª¬Œ÷‚µ‚Ü‚µ‚½

    '); +define ('S_SCRTHREAD', "V‚µ‚¢ƒXƒŒƒbƒh‚ɃŠƒ_ƒCƒŒƒNƒg‚·‚éB"); +define ('S_SCRPOST', "‚ ‚È‚½‚Ì“Še‚·‚é‚ɃŠƒ_ƒCƒŒƒNƒg‚·‚éB"); +define("S_STRREF", '‹‘â‚³‚ê‚Ü‚µ‚½(str)'); +define("S_UNJUST", '•s³‚È“Še‚ð‚µ‚È‚¢‚ʼnº‚³‚¢(post)'); +define("S_NOPIC", '‰æ‘œ‚ª‚ ‚è‚Ü‚¹‚ñ'); +define("S_NOTEXT", '‰½‚©‘‚¢‚ĉº‚³‚¢'); +define("S_MANAGEMENT", 'íœ'); +define("S_DELETION", 'íœ'); +define("S_TOOLONG", ' –{•¶‚ª’·‚·‚¬‚Ü‚·‚ÁI'); +define("S_TOOLONGS", ' ‘è–¼‚ª’·‚·‚¬‚Ü‚·‚ÁI'); +define("S_TOOLONGC", ' ƒRƒƒ“ƒg‚ª’·‚·‚¬‚Ü‚·‚ÁI'); +define("S_TOOLONGN", ' –¼‘O‚ª’·‚·‚¬‚Ü‚·‚ÁI'); +define("S_TOOLONGE", ' Email ‚ª’·‚·‚¬‚Ü‚·‚ÁI'); +define("S_UNUSUAL", 'ˆÙí‚Å‚·'); +define("S_LONGCOMMENT", 'uÈ—ª‚³‚ê‚Ü‚µ‚½EE‘S‚Ä‚ð“Ç‚Þ‚É‚Í'); +define("S_LONGHERE", '‚±‚±'); +define("S_LONGSEE", '‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢v'); +define("S_BADHOST", '‹‘â‚³‚ê‚Ü‚µ‚½(host)
    Plea'); +define("S_BADIP", '‹‘â‚³‚ê‚Ü‚µ‚½(ip)
    Plea'); +define("S_PROXY80", '‚d‚q‚q‚n‚qI@ŒöŠJ‚o‚q‚n‚w‚x‹K§’†II(80)'); +define("S_PROXY8080", '‚d‚q‚q‚n‚qI@ŒöŠJ‚o‚q‚n‚w‚x‹K§’†II(8080)'); +define("S_SPAMACTI", '

    ƒXƒpƒ€ƒtƒBƒ‹ƒ^[‚ªì“®‚µ‚Ü‚µ‚½

    '); +define("S_SPAMMESS", '

    ‚à‚µ‚ ‚È‚½‚ªr‚炵‚Å‚È‚¯‚ê‚΁AƒXƒpƒ€”»’è—p‚Ì‹ó—“‚ð•ÏX‚µ‚Ä‚¢‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B“Še‚ðŒ©’¼‚µ‚Ä‹^‚킵‚¢‰ÓŠ‚ðíœ‚µ‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B‚²–À˜f‚ð‚¨‚©‚¯‚µ‚Ü‚·B


    '); +define("S_SUN", '“ú'); +define("S_MON", 'ŒŽ'); +define("S_TUE", '‰Î'); +define("S_WED", '…'); +define("S_THU", '–Ø'); +define("S_FRI", '‹à'); +define("S_SAT", '“y'); +if(!defined("S_NNAME")) define("S_NNAME", ''); +if(!defined("DEF_SUB")) define("DEF_SUB", '–³‘è'); // È—ªŽž‚Ì‘è–¼ +if(!defined("DEF_NAME")) define("DEF_NAME", '–¼–³‚µ'); // È—ªŽž‚Ì–¼‘O +if(!defined("DEF_COM")) define("DEF_COM", 'ƒLƒ^[[[[(^ƒŽ^)[[[[IIII'); // È—ªŽž‚Ì–{•¶ +define("S_NONAME", '–¼‘O‚ª‚ ‚è‚Ü‚¹‚ñ'); +define("S_NOSUB", '–{•¶‚ª‚ ‚è‚Ü‚¹‚ñ'); +define("S_NOCOM", '‘è–¼‚ª‚ ‚è‚Ü‚¹‚ñ'); +define("S_NOPASS", '•ÒWƒL[‚ª–¢“ü—Í‚Å‚·'); +define("S_RENZOKU1", '˜A‘±“Še‚Í‚à‚¤‚µ‚΂炭ŽžŠÔ‚ð’u‚¢‚Ä‚©‚炨Šè‚¢’v‚µ‚Ü‚·'); +define("S_RENZOKU2", '‰æ‘œ˜A‘±“Še‚Í‚à‚¤‚µ‚΂炭ŽžŠÔ‚ð’u‚¢‚Ä‚©‚炨Šè‚¢’v‚µ‚Ü‚·'); +define("S_RENZOKU3", '˜A‘±“Še‚Í‚à‚¤‚µ‚΂炭ŽžŠÔ‚ð’u‚¢‚Ä‚©‚炨Šè‚¢’v‚µ‚Ü‚·'); +define("S_DUPE", 'ƒAƒbƒvƒ[ƒh‚ÉŽ¸”s‚µ‚Ü‚µ‚½
    “¯‚¶‰æ‘œ‚ª‚ ‚è‚Ü‚·'); +define("S_NOTHREADERR", 'ƒXƒŒƒbƒh‚ª‚ ‚è‚Ü‚¹‚ñ'); +define("S_SCRCHANGE", '‰æ–Ê‚ðØ‚è‘Ö‚¦‚Ü‚·'); +define("S_BADDELPASS", 'ŠY“–‹LŽ–‚ªŒ©‚‚©‚ç‚È‚¢‚©ƒpƒXƒ[ƒh‚ªŠÔˆá‚Á‚Ä‚¢‚Ü‚·'); +define("S_WRONGPASS", 'ƒpƒXƒ[ƒh‚ªˆá‚¢‚Ü‚·'); +define("S_WRONGMANAME", 'ƒl[ƒ€ƒpƒX‚ªˆá‚¢‚Ü‚·'); +define("S_RETURNS", 'ŒfŽ¦”‚ɖ߂é'); +define("S_LOGUPD", 'ƒƒO‚ðXV‚·‚é'); +define("S_BNOTBANIP", '‚ ‚È‚½‚ª‹ÖŽ~‚³‚ê‚Ä‚¢‚Ü‚¹‚ñ'); +define("S_BNOTBAN", '‚ ‚È‚½‚ª‹ÖŽ~‚³‚ê‚Ä‚¢‚Ü‚¹‚ñI '); +define("S_BBAN", '‚ ‚È‚½‚ª‹ÖŽ~‚³‚ê‚āI'); + +define("S_BBANMESS1", '‚ ‚È‚½‚͉i‹v‚ɁA'); +define("S_BBANBOARD", '‚·‚ׂĂ̔Â'); +define("S_BBANMESS2", '‚©‚ç‹ÖŽ~‚³‚ê‚Ü‚µ‚½B'); +define("S_BBANMESSREA", 'ŠÇ—ƒ`[ƒ€‚͈ȉº‚Ì——R‚ð’ñ‹Ÿ‚µ‚Ü‚µ‚½F'); + +define("S_BBANMESSB4FORM", "‚ ‚È‚½‚ª‚±‚ꂪŒë‚è‚Å‚ ‚é‚ƐM‚¶‚Ä‚¢‚é‚È‚ç‚ ‚È‚½‚ª‚±‚±‚Ń|ƒXƒeƒBƒ“ƒO‚Å‚»‚ÌŒ‚ɂ‚¢‚Ä‹c˜_‚Å‚«‚Ü‚·‚©A‚Ü‚½‚̓tƒH[ƒ€‚͈ȉº‚É’ñ‹Ÿ‚³‚ê‚Ü‚µ‚½B"); + +define("S_BBANMESSVIEWDENY", '‚ ‚È‚½‚̏㍐‚́AŒ©’¼‚³‚ê‚āA”ے肳‚ê‚Ü‚µ‚½B‚ ‚È‚½‚͍Ăт±‚Ì‹ÖŽ~—߂ɏ㍐‚Å‚«‚Ü‚¹‚ñB'); +define("S_BBANMESSDENY", '‚ ‚È‚½‚Í‚±‚Ì‹ÖŽ~—߂ɏ㍐‚Å‚«‚Ü‚¹‚ñB'); + +define("S_MANAMODE", 'ŠÇ—ƒ‚[ƒh'); +define("S_MANAREPDEL", '‹LŽ–íœ'); +define("S_MANAPOST", 'ŠÇ—l“Še'); +define("S_MANASAGE", '‹­§sageˆ—'); +define("S_MANATHUMB", 'ƒTƒ€ƒlƒCƒ‹·‚µ‘Ö‚¦'); +define("S_MANASTOP", 'ƒXƒŒƒXƒgˆ—'); +define("S_MANAHOST", 'ƒzƒXƒg/ID•\Ž¦ƒŠƒXƒg‚É“o˜^Eíœ'); +define("S_MANAARCH", '‰ß‹ŽƒƒOŠÇ—'); +define("S_MANAREGBAN", '‹ÖŽ~—ߊǗ'); +define("S_MANADELBAN", 'íœ‹ÖŽ~—ߊǗ'); +define("S_MANAREGWORD", '’PŒêƒtƒBƒ‹ƒ^“o˜^'); +define("S_MANADELWORD", '’PŒêƒtƒBƒ‹ƒ^íœ'); +define("S_MANALOG", 'ƒƒOŠÇ—'); +define("S_FUTARE", 'ƒƒO‘|œ'); +define("S_MANASUB", ' ”FØ'); +define("S_MANAVER", '‚±‚Æ‚ðŠm”F‚µ‚Ü‚·ŠÇ—ƒAƒNƒZƒX'); +define("S_MANANAME", 'ŠÇ—l‚Ì–¼‘O'); +define("S_MANAPASS", 'ƒL['); +define("S_MANAREM", 'ŽŸ‰ñ‚©‚玩“®ƒƒOƒCƒ“'); +define("S_DELLIST", 'íœ‚µ‚½‚¢‹LŽ–‚̃`ƒFƒbƒNƒ{ƒbƒNƒX‚Ƀ`ƒFƒbƒN‚ð“ü‚êAíœƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚ĉº‚³‚¢B'); +define("S_SAGELIST", 'sageó‘Ô‚ð•ÏX‚µ‚½‚¢‹LŽ–‚̃`ƒFƒbƒNƒ{ƒbƒNƒX‚Ƀ`ƒFƒbƒN‚ð“ü‚êA•ÏXƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚ĉº‚³‚¢B
    usagev‚Ɓusage‰ðœv‚ªØ‚è‘Ö‚í‚è‚Ü‚·B
    usageƒXƒ^[ƒgv‚âuƒŒƒX”sagev‚É‚æ‚éusagev‚Í‰ðœ‚Å‚«‚Ü‚¹‚ñB'); +define("S_STOPLIST", 'ƒXƒŒƒXƒgó‘Ô‚ð•ÏX‚µ‚½‚¢‹LŽ–‚̃`ƒFƒbƒNƒ{ƒbƒNƒX‚Ƀ`ƒFƒbƒN‚ð“ü‚êA•ÏXƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚ĉº‚³‚¢B
    uƒXƒŒƒXƒgv‚ƁuƒXƒŒƒXƒg‰ðœv‚ªØ‚è‘Ö‚í‚è‚Ü‚·B'); +define("S_THUMBLIST", 'ƒTƒ€ƒlƒCƒ‹‚ð·‚µ‘Ö‚¦‚½‚¢‹LŽ–‚̃`ƒFƒbƒNƒ{ƒbƒNƒX‚Ƀ`ƒFƒbƒN‚ð“ü‚êA·‚µ‘Ö‚¦ƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚ĉº‚³‚¢B
    u·‘ցv‚Ɓu·‘Ö‰ðœv‚ªØ‚è‘Ö‚í‚è‚Ü‚·B'); +define("S_HOSTREGLIST", '‘ΏۃzƒXƒg‚Ì‹LŽ–ƒ`ƒFƒbƒNƒ{ƒbƒNƒX‚Ƀ`ƒFƒbƒN‚ð“ü‚êA•ÏXƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚ĉº‚³‚¢B
    •\Ž¦ƒzƒXƒg‚̃ŠƒXƒg‚É“o˜^‚³‚ê‚Ü‚·B
    [ƒzƒXƒg–¼‚ð•\Ž¦‚³‚¹‚é]‚Ƀ`ƒFƒbƒN‚·‚é‚ƃzƒXƒg–¼‚ðA‚µ‚È‚¢‚ÆID‚ð•\Ž¦‚µ‚Ü‚·B'); +define("S_HOSTDELLIST", 'ƒŠƒXƒg‚©‚çíœ‚µ‚½‚¢ƒzƒXƒg‚̃`ƒFƒbƒNƒ{ƒbƒNƒX‚Ƀ`ƒFƒbƒN‚ð“ü‚êA•ÏXƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚ĉº‚³‚¢B
    •\Ž¦ƒzƒXƒg‚̃ŠƒXƒg‚©‚çíœ‚³‚ê‚Ü‚·B'); +define("S_WORDFILTERLIST", 'ƒtƒBƒ‹ƒ^‚ð“K—p‚·‚éÔ‚¢ƒ{ƒbƒNƒX‚Å’PŒê‚ð’u‚«‚Ü‚·B
    ÂF‚̃{ƒbƒNƒX‚ɃtƒBƒ‹ƒ^ˆ—‚³‚ꂽ’PŒê‚ð’u‚«‚Ü‚·B'); +define("S_INTO", '->'); +define("S_ITDELETES", 'íœ‚·‚é'); +define("S_MDDELETION", 'íœ'); +define("S_MDRESET", 'ƒŠƒZƒbƒg'); +define("S_MDCHANGE", '•ÏX'); +define("S_MDREPLACE", '·‚µ‘Ö‚¦'); +define("S_HOSTDIS", 'ƒzƒXƒg–¼‚ð•\Ž¦‚³‚¹‚é'); +define("S_HOSTDISLIST", 'ƒzƒXƒg•\Ž¦ƒŠƒXƒg'); +define("S_IDDISLIST", 'ID•\Ž¦ƒŠƒXƒg'); +define("S_SEL", '‘I‘ð'); +define("S_HOSTNAME", 'ƒzƒXƒg–¼'); +define("S_STILLGIF", 'GIF‚ðƒTƒ€ƒlƒCƒ‹‰»‚·‚邾‚¯'); +define("S_STILLPNG", 'PNG‚ðƒTƒ€ƒlƒCƒ‹‰»‚·‚邾‚¯'); +define("S_MDONLYPIC", '‰æ‘œ‚¾‚¯Á‚·'); + +//bann +define("S_PUBREA", 'Œö‹¤‚Ì——RF'); +define("S_PRIREA", 'ƒvƒ‰ƒCƒx[ƒgƒƒ‚F'); +define("S_BANPLEABLE", '‹ÖŽ~‚ðôò‰Â”\‚Å‚·F'); +define("S_MODADMINNAME", 'ŠÇ—l‚Ì–¼‘OF'); +define("S_BANNOTPLEABLE", '‹ÖŽ~‚ðôò‰Â”\‚Å‚Í‚È‚¢F'); +define("S_REQUIRETOBANUSER", '•K{ƒ†[ƒU[‚ð‹ÖŽ~‚·‚é'); +define("S_REQUIRETOBAN", '•K{‚ð‹ÖŽ~‚·‚é'); +define("S_REQUIRETOBANANY", '•K{‰½‚©‚ð‹ÖŽ~‚·‚é'); + +define("S_MANABANISHUSER", 'ƒ†[ƒU[’Ç•úH'); +define("S_DISPLAYTOMANA", '‚±‚ê‚́AŠÇ—ƒ`[ƒ€‚É•\Ž¦‚³‚ê‚Ü‚·'); +define("S_DISPLAYTOUSER", '‚±‚Ì‹ÖŽ~ƒ†[ƒU[‚É•\Ž¦‚³‚ê‚Ü‚·'); +define("S_MANABADFILE", 'ƒtƒ@ƒCƒ‹ˆ«‚¢'); +define("S_MANABADWORD", 'ƒ[ƒhˆ«‚¢'); + +define("S_MDTABLE1", '
    '); +define("S_MDTABLE2", ''); +define("S_MDTABLE3", ''); +define("S_MDTABLE4", ''); + +define("S_MTTABLE1", ''); + +define("S_RESET", 'ƒŠƒZƒbƒg'); +define("S_IMGSPACEUSAGE", '‰æ‘œƒf[ƒ^‡Œv : '); +define("S_YOURIP", '‚ ‚È‚½‚ÌIP‚͈ȉº‚Ì’Ê‚è‚Å‚·F'); +define("S_SUCCESS", '¬Œ÷'); +define("S_CANNOTWRITE", 'ƒJƒŒƒ“ƒgƒfƒBƒŒƒNƒgƒŠ‚ɏ‘‚¯‚Ü‚¹‚ñ
    '); +define("S_NOTWRITE", '‚ð‘‚¯‚Ü‚¹‚ñ
    '); +define("S_NOTREAD", '‚ð“Ç‚ß‚Ü‚¹‚ñ
    '); +define("S_NOTDIR", '‚ª‚ ‚è‚Ü‚¹‚ñ
    '); +define("S_VERIFY", 'Šm”F'); +define("S_WRONGVERY", '‚ ‚È‚½‚ÍŠÔˆá‚Á‚½Šm”FƒR[ƒh‚ð“ü‚ê‚Ü‚µ‚½I'); +define("S_NOTITLE", 'ƒ|ƒXƒg‚Ì‚½‚߂Ƀ^ƒCƒgƒ‹‚©‘Ώۂð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢'); +define("S_ANOTFOUND", 'ŠY“–‹LŽ–‚ªŒ©‚‚©‚ç‚È‚¢‚©ƒpƒXƒ[ƒh‚ªŠÔˆá‚Á‚Ä‚¢‚Ü‚·'); +define("S_EDITSAME", '“à—e‚ª‘S‚­“¯‚¶‚Å‚·@‚Ç‚±‚©•ÏX‚µ‚Ä‚­‚¾‚³‚¢'); +define("S_CANNOTCORRECT", 'C³•s‰Â'); + +define("S_TOOBIGRES", '‰æ‹K–Í‚Í‘å‚«‰ß‚¬‚Ü‚·'); +define("S_TOOSMALLRES", '‰æ‹K–͂͏¬‚«‰ß‚¬‚Ü‚·'); +define("S_FILEEXNOTSUPPORTED", 'ƒTƒ|[ƒg‚³‚ê‚È‚©‚Á‚½ƒtƒ@ƒCƒ‹Šg’£Žq'); +define("S_FILETYPENOTSUPPORTED", 'ƒTƒ|[ƒg‚³‚ê‚È‚©‚Á‚½ƒtƒ@ƒCƒ‹ƒ^ƒCƒv'); + +define("S_THUMBV", 'ƒTƒ€ƒlƒCƒ‹'); +define("S_VIEWA", '‰æ‘œ‚Ñ‚ã`‚í`'); +define("S_NEWTHREAD", 'V‹KƒXƒŒƒbƒhì¬'); +define("S_CAT", 'ƒJƒ^ƒƒO'); +define("S_CATALOGMODE", 'ƒJƒ^ƒƒOƒ‚[ƒh'); +define("S_LIST", 'ƒXƒŒƒbƒhˆê——'); +define("S_NWAHA", 'V’…‚í‚́['); +define("S_ABOUT", 'ABOUT'); +define("S_OGEGE", '‚¨‚°‚°'); +define("S_ALBUM", 'ƒAƒ‹ƒoƒ€ƒ‚[ƒh'); +define("S_TLIST", 'ƒXƒŒƒbƒhˆê——‚Í‚±‚¿‚ç'); +define("S_SUBLIST", '‘è–¼ˆê——'); +define("S_SOURCECODE", 'ƒ\[ƒXƒR[ƒh'); +define("S_ARCHIVEOF", TITLE.'‚̃A[ƒJƒCƒu'); +define("S_NOARCHIVE", 'ƒXƒŒ‚ÍŠi”[‚³‚ê‚Ü‚¹‚ñ'); + +/*smaller files connection*/ +define("S_TOTAL_IMG", '‰æ‘œ‘”'); +define("S_TOTAL_SURE", 'ƒXƒŒ–{”'); +define("S_TOTAL_POST", '‹LŽ–Œ”'); + +define("S_FUTAPASS", '¥ƒpƒXƒ[ƒh‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢.'); +define("S_FUTABO1", '”FØ'); +define("S_FUTADEL", 'íœ‚µ‚Ü‚·‚©H'); +define("S_FUTA2YOTSU", 'XV‚µ‚Ü‚·‚©H'); +define("S_FUTAGARBAGE", '‚t‚q‚kA‚l‚`‚h‚kA‚s‚h‚l‚d‚̃Sƒ~‚ðŽæ‚菜‚«‚Ü‚·B
    +ƒƒO‚Í•K‚¸ƒoƒbƒNƒAƒbƒv‚µ‚Ä‚©‚çŽÀs‚µ‚ĉº‚³‚¢B'); +define("S_FUTAPROSS", '³í‚ɏˆ—‚³‚ê‚Ü‚µ‚½B'); +$copy_log = COPY_LOG; +define("S_FUTAPROSSCOPY", '
    ƒƒO‚ðŠm”F‚̏ãA'.$copy_log.'‚ð'.LOGFILE.'‚ƃŠƒl[ƒ€‚µ‚č·‚µ‘Ö‚¦‚ĉº‚³‚¢B'); +define("S_FUTACLEAN", '‚¨‘|œ‚·‚é'); + + //img_view/search +define("S_IMG_VIEW_INFO", 'ƒtƒ@ƒCƒ‹î•ñ‚ð•\Ž¦‚̃`ƒFƒbƒNƒ{ƒbƒNƒXƒIƒ“‚Å“ŠeƒXƒŒ‚ɃŠƒ“ƒN‚µ‚Ü‚·'); +define("S_TEXT_ENGINE", '‘S•¶ŒŸõƒGƒ“ƒWƒ“'); +define("S_TEXT_ENGINE_INSTALLED", '“‹Ú'); +define("S_FILE_INFO_DISP", 'ƒtƒ@ƒCƒ‹î•ñ‚ð•\Ž¦'); +define("S_FILE_INFO_DISP_BUTTON", 'ƒ|ƒ`ƒb‚Æ‚È'); +define("S_ALL_TOTAL_IMG", '‘‰æ‘œ–‡”'); +define("S_SURE_IMG", 'ƒXƒŒ‰æ‘œ”'); +define("S_REPLY_IMG", 'ƒŒƒX‰æ‘œ”'); +define("S_PAGE_DEF", 'ˆëƒy[ƒW•\Ž¦”'); +define("S_IMG_DISPLAY_TO", '‚©‚ç'); +define("S_IMG_DISPLAY", '‚܂ł̉摜‚ð•\Ž¦'); +define("S_PIECE", '–‡'); + +define("S_SEARCH",'ŒŸ õ'); +define("S_DISPNO",'•\Ž¦Œ”F'); +define("S_SEARCH_RULE", 'E ƒL[ƒ[ƒh‚𕡐”Žw’è‚·‚éê‡‚Í ƒXƒy[ƒX ‚Å‹æØ‚Á‚Ä‚­‚¾‚³‚¢B
    +E ŒŸõðŒ‚́AANDŒŸõ [A B] = (A ‚©‚ B) ‚Æ‚È‚Á‚Ä‚¢‚Ü‚·B
    +E ŒŸõ‘Ώۂ́A ‹LŽ–NoA–¼‘OA‘è–¼A–{•¶A–Ú—“ ‚Å‚·B
    +E ‘啶Žš¬•¶Žš‚Í‹æ•Ê‚³‚ê‚Ü‚·B (A‚a) (ABC‚aBC)
    +E ŒŸõ’PŒê‚Í‚SFŒJ‚è•Ô‚µŽg—p‚µ‚ĐF‚‚«‚Å•\Ž¦‚µ‚Ü‚·Bgoogle•—H
    +E •Ï‚ÈŒŸõ•û–@‚Í‚È‚é‚ׂ­‚¨T‚¦‚­‚¾‚³‚¢BƒoƒO‚ª‚ ‚ê‚΂²•ñ‚ðB
    +E ‚±‚ÌŒŸõƒGƒ“ƒWƒ“‚̃x[ƒX‚Í logoogle.php ver 0.1.1 ‚Å‚·B
    '); + +define("S_SEARCH_NOT_FOUND", '‚ÉŠY“–‚·‚é’PŒê‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B'); +define("S_SEARCH_PROTIP", 'ŒŸõ‚̃qƒ“ƒg'); +define("S_SEARCH_LIST", '- ƒL[ƒ[ƒh‚Ɍ뎚E’EŽš‚ª‚È‚¢‚©Šm‚©‚ß‚Ä‚­‚¾‚³‚¢B
    +- ˆá‚¤ƒL[ƒ[ƒh‚ðŽg‚Á‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B
    +- ‚æ‚èˆê”Ê“I‚ÈŒ¾—t‚ðŽg‚Á‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B
    +- ƒL[ƒ[ƒh‚̐”‚ð­‚È‚­‚µ‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B
    +- Ž©•ª‚̃Zƒ“ƒX‚ð‹^‚Á‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B
    '); +define("S_POSTSCRIPT", '’Ç‹L:'); +define("S_SEARCH_FIX", 'ã‹L‚Ì‚±‚Æ‚ðŽŽ‚µ‚Ä‚àƒ_ƒ‚ȏꍇ‚́A‹°‚ç‚­‚à‚¤Žè’x‚ê‚È‚Ì‚Å‚µ‚傤BŒ‰‚­‚ ‚«‚ç‚ß‚Ä‚­‚¾‚³‚¢B'); +define("S_KEYWORD_NO_MATCH", 'ƒL[ƒ[ƒh‚Ƀ}ƒbƒ`‚·‚é‹LŽ–‚ª‚ ‚è‚Ü‚¹‚ñ‚Å‚µ‚½B'); + +define("S_INLOG", 'ƒƒO“à'); +define("S_SEARCH_RESULT", '‚ÌŒŸõŒ‹‰Ê'); +define("S_SEARCH_HIT", 'Œ’†'); +define("S_SEARCH_RESULTS", 'Œ–Ú'); +define("S_SEARCH_SUBJECT", '‘è–¼F'); +define("S_SEARCH_NAME", '–¼‘OF'); +define("S_SEARCH_DATE", '“ú•tF'); +define("S_SEARCH_PREV", '<<‘O‚Ö'); +define("S_SEARCH_NEXT", 'ŽŸ‚Ö>>'); +define("S_IMGRET",'‰æ‘œŒŸõ'); +define("S_SEARCH_TOOL",'ŒŸõƒc[ƒ‹'); +define("S_HELP",'ƒwƒ‹ƒv'); + + //time +define("S_SECONDS", '•b'); + //image download counter +define("S_THISIMG",'‚±‚̉摜‚Í'); +define("S_THISIMGDLTIMES",'‰ñDownload‚³‚ê‚Ä‚¢‚Ü‚·.'); + +// Style tooltip: stuff inside [square brackets] MUST be left as is! + define ('S_STYLETOOLTIP', "[what]ƒXƒ^ƒCƒ‹‚ւ̐؂è‘Ö‚¦"); + + // Title of stylesheet management page + define ('S_ADMIN_STYLESHEETS', "ƒXƒ^ƒCƒ‹ƒV[ƒg‚ðŠÇ—‚µ‚Ä"); + + define ('TH_ADMIN_IMPORTED', "ƒCƒ“ƒ|[ƒg‚©‚ç [file]"); + define ('TH_ADMIN_EDITING', "•ÒW [file]"); + define ('TH_ADMIN_CREATED', "ì¬ [file]!"); + define ('TH_ADMIN_UPDATED', "‚ðXV [file]!"); + define ('TH_ADMIN_DELETED', "íœ [file]!"); + + // Headings for fields + define ('TH_ADMIN_IS_DEFAULT', "ƒfƒtƒHƒ‹ƒg‚Ì‚Å‚·‚©H"); + define ('TH_ADMIN_STYLE_DEFAULT', " ‚±‚̃fƒtƒHƒ‹ƒg‚É‚·‚é"); + define ('TH_ADMIN_FULLNAME', "–{“–‚Ì–¼‘O"); + define ('TH_ADMIN_SHORTNAME', "•\Ž¦–¼"); + define ('TH_ADMIN_DISP_ID', 'ID / •\Ž¦‡(ƒ^ƒCƒv0‚±‚̍€–Ú‚ðíœ‚·‚é)'); + define ('TH_ADMIN_ADDSTYLE', "’ljÁ [or modify] ƒXƒ^ƒCƒ‹ƒV[ƒg‚̃Gƒ“ƒgƒŠ"); + // This goes in [or modify] above + define ('TH_ADMIN_MODSTYLE', "‚Ü‚½‚͕ύX"); + define ('TH_ADMIN_NEW_FILE', 'ƒtƒ@ƒCƒ‹'); + define ('TH_ADMIN_NEW_ID', '•\Ž¦‡(Šù‘¶‚ÌID”ԍ†‚ðŽg—p‚µ‚āAƒAƒCƒeƒ€‚ðã‘‚«‚·‚é)'); + +/* begin MySQL specific section +define("S_SQLCONF", 'Ú‘±Ž¸”s'); //MySQL connection failure +define("S_SQLDBSF", 'mysql_select_dbŽ¸”s
    '); //database select failure +define("S_TCREATE", 'ƒe[ƒuƒ‹‚ðì¬‚µ‚Ü‚·
    \n'); //creating table +define("S_TCREATEF", 'ƒe[ƒuƒ‹ì¬Ž¸”s
    '); //table creation failed +define("S_SQLFAIL", 'sqlŽ¸”s
    '); //SQL Failure +define("S_UNFILE", '‘Ήž‚µ‚È‚¢ƒtƒH[ƒ}ƒbƒg‚Å‚·B'); +*/ +?> diff --git a/lib/lang/zh_TW.php b/lib/lang/zh_TW.php new file mode 100755 index 0000000..79d2f0d --- /dev/null +++ b/lib/lang/zh_TW.php @@ -0,0 +1,241 @@ +上傳的附加圖檔容量超過PHP內定值'; +$language['regist_upload_exceedcustom'] = '上傳失敗
    上傳的附加圖檔容量超過上傳容量限制'; +$language['regist_upload_incompelete'] = '上傳失敗
    上傳的附加圖檔不完整,請回版面再重試'; +$language['regist_upload_direrror'] = '上傳失敗
    上傳的暫存資料夾設定錯誤,請通報系統管理員'; +$language['regist_upload_noimg'] = '因應防止Spam對策,發文無附加圖檔請勾選[無貼圖]核選框!'; +$language['regist_upload_filenotfound'] = '上傳失敗
    伺服器有可能禁止上傳、沒有權限,或不支援此格式'; +$language['regist_upload_killincomp'] = '[Notice] Your sending was canceled because of the incorrect file size.'; +$language['regist_upload_notimage'] = '上傳失敗
    不接受圖片以外的檔案'; +$language['regist_upload_notsupport'] = '附加圖檔為系統不支援的格式'; +$language['regist_upload_blocked'] = '上傳失敗
    此附加圖檔被管理員列為禁止上傳'; +$language['regist_uploaded'] = '附加圖檔 %1$s 上傳完畢
    '; +$language['regist_sakuradetected'] = '偵測到您有輸入櫻花日文假名'; +$language['regist_withoutname'] = '您沒有填寫名稱'; +$language['regist_withoutsubject'] = '您沒有填寫題名'; +$language['regist_withoutcomment'] = '在沒有附加圖檔的情況下,請寫入內文'; +$language['regist_withoutpassword'] = '您必須輸入一個刪除用密碼的'; +$language['regist_nametoolong'] = '名稱過長'; +$language['regist_emailtoolong'] = 'E-mail過長'; +$language['regist_topictoolong'] = '標題過長'; +$language['regist_longthreadnum'] = '欲回應的文章編號可能有誤'; +$language['admin'] = '管理'; +$language['deletor'] = '刪除'; +$language['trip_pre'] = '◆'; +$language['trip_pre_fake'] = '◇'; +$language['cap_char'] = '★'; +$language['cap_char_fake'] = '☆'; +$language['regist_commenttoolong'] = '內文過長'; +$language['notice_incompletefile'] = '注意:附加圖檔上傳不完全'; +$language['sun'] = '日'; +$language['mon'] = '一'; +$language['tue'] = '二'; +$language['wed'] = '三'; +$language['thu'] = '四'; +$language['fri'] = '五'; +$language['sat'] = '六'; +$language['regist_successivepost'] = '連續投稿請稍候一段時間'; +$language['regist_duplicatefile'] = '上傳失敗
    近期已經有相同的附加圖檔'; +$language['regist_threaddeleted'] = '此討論串因為過舊已被刪除!'; +$language['regist_threadlocked'] = '這篇討論串已被管理員標記為禁止回應!'; +$language['regist_redirect'] = '%1$s 畫面正在切換

    如果瀏覽器沒有自動切換,請手動按連結前往:回到版面

    '; +$language['del_notchecked'] = '你真的有要刪除嗎?請回頁面重勾選'; +$language['del_wrongpwornotfound'] = '無此文章或是密碼錯誤'; +$language['admin_wrongpassword'] = '密碼錯誤'; +$language['return'] = '回到版面'; +$language['admin_remake'] = '更新文章'; +$language['admin_frontendmanage'] = '前台管理 (需先登入)'; +$language['admin_delete'] = '刪除文章'; +$language['admin_top'] = '管理模式'; +$language['admin_manageposts'] = '管理文章'; +$language['admin_optimize'] = '資料表最佳化'; +$language['admin_check'] = '檢查資料表'; +$language['admin_repair'] = '修復資料表'; +$language['admin_export'] = '匯出資料'; +$language['admin_logout'] = '登出'; +$language['admin_verify_btn'] = ' 認證 '; +$language['admin_archive'] = ''; +$language['admin_notices'] = '
    • 想刪除文章,請勾選該文章前之「刪除」核取框之後按下執行按鈕
    • 只想刪除文章的附加圖檔,請先勾選「僅刪除附加圖檔」再按照一般刪文方式
    • 想停止/繼續討論串,請勾選該文章前之「停止」核取框之後按下執行按鈕
    • 管理文章完畢,記得順手按下「更新文章」以更新靜態快取
    '; +$language['admin_submit_btn'] = ' 執行 '; +$language['admin_reset_btn'] = ' 重置 '; +$language['admin_list_header'] = ''; +$language['admin_archive_btn'] = '存'; +$language['admin_stop_btn'] = '停'; +$language['admin_totalsize'] = '【 附加圖檔使用容量總計 : %1$s KB 】'; +$language['search_disabled'] = '管理員選擇不開放搜尋功能!'; +$language['search_top'] = '搜尋'; +$language['search_notice'] = '
  • 請輸入要搜尋的關鍵字,設定好搜尋目標之後,按下「搜尋」按鈕。
  • 關鍵字使用半形空白可以區隔多個搜尋關鍵字作搜尋。
  • 如果有多個關鍵字,可以選擇搜尋方法,系統提供 AND(交集) 和 OR(聯集) 方式搜尋。

    關鍵字:'; +$language['search_target'] = '搜尋目標:'; +$language['search_target_comment'] = '內文'; +$language['search_target_name'] = '名稱'; +$language['search_target_topic'] = '標題'; +$language['search_target_number'] = '編號'; +$language['search_method'] = '搜尋方法:'; +$language['search_method_and'] = 'AND'; +$language['search_method_or'] = 'OR'; +$language['search_submit_btn'] = ' 搜尋 '; +$language['search_notfound'] = '找不到符合的關鍵字。'; +$language['search_back'] = '[回上一頁]'; +$language['category_nokeyword'] = '請輸入類別標籤以搜尋類似文章。'; +$language['category_notfound'] = '沒有符合此類別標籤的文章'; +$language['category_recache'] = '重新快取'; +$language['module_info_top'] = '模組資訊'; +$language['module_loaded'] = 'Module Loaded:'; +$language['module_info'] = 'Module Infomation:'; +$language['info_top'] = '系統資訊'; +$language['info_disabled'] = '未開啟'; +$language['info_enabled'] = '已開啟'; +$language['info_functional'] = '功能正常'; +$language['info_nonfunctional'] = '功能失常'; +$language['info_basic'] = '基本設定'; +$language['info_basic_ver'] = '程式版本'; +$language['info_basic_pio'] = 'PIO 函式庫後端及版本'; +$language['info_basic_threadsperpage'] = '一頁顯示幾篇討論串'; +$language['info_basic_threads'] = '篇'; +$language['info_basic_postsperpage'] = '一篇討論串最多顯示之回應筆數'; +$language['info_basic_posts'] = '筆'; +$language['info_basic_postsinthread'] = '回應模式一頁顯示幾筆回應內容'; +$language['info_basic_posts_showall'] = '(全部顯示:0)'; +$language['info_basic_bumpposts'] = '回應筆數超過多少則不自動推文'; +$language['info_basic_bumphours'] = '討論串可接受推文的時間範圍'; +$language['info_basic_hours'] = '小時'; +$language['info_basic_0disable'] = '(關閉:0)'; +$language['info_basic_urllinking'] = 'URL文字自動作成超連結'; +$language['info_0no1yes'] = '(是:1 否:0)'; +$language['info_basic_com_limit'] = '內文接受Bytes數'; +$language['info_basic_com_after'] = ' Bytes (中文字為2Bytes)'; +$language['info_basic_anonpost'] = '接受匿名發送'; +$language['info_basic_anonpost_opt'] = '(強制砍名:2 是:1 否:0)'; +$language['info_basic_del_incomplete'] = '自動刪除上傳不完整附加圖檔'; +$language['info_basic_use_sample'] = '使用預覽圖機能 (品質:%1$s)'; +$language['info_0notuse1use'] = '(使用:1 不使用:0)'; +$language['info_basic_use_sample_func'] = '└ 預覽圖生成功能'; +$language['info_basic_useblock'] = '封鎖檢查功能'; +$language['info_0disable1enable'] = '(啟動:1 關閉:0)'; +$language['info_basic_showid'] = '顯示ID'; +$language['info_basic_showid_after'] = '(強制顯示:2 選擇性顯示:1 永遠不顯示:0)'; +$language['info_basic_cr_limit'] = '文字換行行數上限'; +$language['info_basic_cr_after'] = ' 行 (不限:0)'; +//$language['info_basic_timezone'] = '時區設定'; +$language['info_basic_max_lines_limit'] = '文字換行行數上限'; +$language['info_basic_max_lines_after'] = ' 線 (不限:0)'; +$language['info_basic_threadcount'] = '目前總討論串篇數'; +$language['info_basic_theme'] = '主題風格'; +$language['info_dsusage_top'] = '記錄檔使用量'; +$language['info_dsusage_max'] = '最大筆數'; +$language['info_dsusage_usage'] = '使用率'; +$language['info_dsusage_count'] = '目前筆數'; +$language['info_fileusage_top'] = '附加圖檔總容量限制功能:'; +$language['info_fileusage_limit'] = '上限大小'; +$language['info_fileusage_count'] = '目前容量'; +$language['info_fileusage_unlimited'] = '無上限'; +$language['info_server_top'] = '伺服器支援情報'; +$language['info_server_gd'] = 'GD函式庫'; +$language['init_permerror'] = '根目錄沒有寫入權限,請修改權限
    '; +$language['init_inited'] = '環境初始化成功!
    請現在打開此程式刪除init()程式環境初始化區段
    '; +$language['action_main_notsupport'] = '後端並不支援此動作'; +$language['action_main_optimize'] = '資料表最佳化'; +$language['action_main_check'] = '資料表檢查'; +$language['action_main_repair'] = '資料表修復'; +$language['action_main_export'] = '資料匯出'; +$language['action_main_success'] = '成功!'; +$language['action_main_failed'] = '失敗!'; + +// lib_common.php +$language['head_home'] = '回首頁'; +$language['head_search'] = '搜尋'; +$language['head_info'] = '系統資訊'; +$language['head_admin'] = '管理區'; +$language['head_refresh'] = '重新整理'; +$language['form_top'] = '回應模式'; +$language['form_showpostform'] = '投稿'; +$language['form_hidepostform'] = '隱藏表單'; +$language['form_name'] = '名 稱'; +$language['form_email'] = 'E-mail'; +$language['form_topic'] = '標 題'; +$language['form_submit_btn'] = '送 出'; +$language['form_comment'] = '內 文'; +$language['form_attechment'] = '附加圖檔'; +$language['form_noattechment'] = '無貼圖'; +$language['form_contpost'] = '連貼機能'; +$language['form_category'] = '類別標籤'; +$language['form_category_notice'] = '(請以 , 逗號分隔多個標籤)'; +$language['form_delete_password'] = '刪除用密碼'; +$language['form_delete_password_notice']= '(刪除文章用。英數字8字元以內)'; +$language['form_notice'] = '

  • 可附加圖檔類型:%1$s,瀏覽器才能正常附加圖檔
  • 附加圖檔最大上傳資料量為 %2$s KB。當回文時E-mail填入sage為不推文功能
  • 當檔案超過寬 %3$s 像素、高 %4$s 像素時會自動縮小尺寸顯示
  • '; +$language['form_notice_storage_limit'] = '
  • 目前附加圖檔使用量大小: %1$s KB / %2$s KB
  • '; +$language['form_notice_noscript'] = '*您選擇關閉了JavaScript,但這對您的瀏覽及發文應無巨大影響'; +$language['error_back'] = '回上頁'; +$language['ip_banned'] = '被列在 IP/Hostname 封鎖名單之內'; +$language['ip_dnsbl_banned'] = '被列在 DNSBL(%1$s) 封鎖名單之內'; + +// mainscript.js // regist_withoutcomment,regist_upload_notsupport,js_convert_sakura +$language['js_convert_sakura'] = '偵測到您有輸入櫻花日文假名的可能性,將自動為您轉換'; + + +$language['form_option1'] = '選項1'; +$language['form_newt'] = '新主題'; + +$language['nothumb'] = '縮略圖無法使用'; +$language['long_comment'] = '「評論太長。點擊'; +$language['long_here'] = '這裡'; +$language['long_see'] = '看全文。」'; + +$language['def_sub'] = '無標題'; +$language['def_name'] = '無名氏'; +$language['def_com'] = '無內文'; + +// Style tooltip: stuff inside [square brackets] MUST be left as is! +$language['style_tooltip'] = '切換到[what]風格'; +// Title of stylesheet management page +$language['admin_stylesheets'] = '樣式表管理'; +$language['admin_imported'] = '[file]進口'; +$language['admin_editing'] = '[file] 編輯'; +$language['admin_created'] = '[file] 創建!'; +$language['admin_updated'] = '[file] 更新!'; +$language['admin_deleted'] = '[file] 刪除!'; +// Headings for fields +$language['admin_is_default'] = '什麼是默認? '; +$language['admin_style_default'] = '默認為'; +$language['admin_fullname'] = '真實姓名'; +$language['admin_shortname'] = '顯示名稱'; +$language['admin_dispid'] = 'ID / 排序(類型0刪除此項目)'; +$language['admin_addstyle'] = '添加[or modify]樣式表項'; +// This goes in [or modify] above +$language['admin_modstyle'] = '或改變'; +$language['admin_new_file'] = '文件'; +$language['admin_new_id'] = '排序(使用現有的身份證號碼覆蓋項目)'; +if(!defined("PIXMICAT_LANGUAGE")) print_r($language); +?> \ No newline at end of file diff --git a/lib/lib_common.php b/lib/lib_common.php new file mode 100755 index 0000000..fc31795 --- /dev/null +++ b/lib/lib_common.php @@ -0,0 +1,419 @@ + $line){ + if($line != ''){ + list($style_name, $style_short, $style_path, $style_rel) = explode (',', $line); + $style_path = CSS_DIR.$style_path; + if(file_exists($style_path)){ + if($style_rel) $style_rel = 'stylesheet'; + else $style_rel = 'alternate stylesheet'; + $style_load .= ''."\n"; + $style_js = format_js_var($style_name); + $style_title = str_replace('[what]', $style_name, _T('style_tooltip')); + $style_bar .= ' '.$style_short.' |'; + } + } + } + + $style_bar .= ']'; + + // Tidy up trailing seperators and empty brackets + $style_bar = str_replace('|]', ']', $style_bar); + $style_bar = str_replace('[] ', '', $style_bar); + $style_bar = str_replace('[]', '', $style_bar); +} + +// Load stylesheet setting from config.php +// if either of the datafiles are missing or empty +if(str_replace('[]', '', $style_bar) == '') $style_load .= ''; + +// style sheet js loader +$jsdonk = 'var style_cookie = "'; +$jsdonk .= ($style_bar) ? 'yo_style' : ''; +$jsdonk .= '";'; +////++++ + +/* 輸出表頭 */ +/* ヘッダ */ +function head(&$dat,$resno=0){ + global $PTE, $PMS, $language, $style_load, $style_bar, $jsdonk; + $title = ''; + + // Title from old yotsubanome //++++---- + if(SHOWTITLEIMG == 1){ + $title = ''.TITLE.''; + if(SHOWTITLETXT) $title .= '
    '; + }elseif(SHOWTITLEIMG == 2){ + $title = ''.TITLE.''; + if(SHOWTITLETXT) $title .= '
    '; + } + if(SHOWTITLETXT) $title .= TITLE; + + $pte_vals = array('{$TITLE}'=>TITLE,'{$TITLEHEAD}'=>$title,'{$TITLECOM}'=>strip_tags(TITLECOM),'{$RESTO}'=>$resno?$resno:'','{$STYLE_LOAD}'=>$style_load,'{$STYLE_BAR}'=>$style_bar,'{$JS_DIR}'=>JS_DIR,'{$CSS_DIR}'=>CSS_DIR,'{$JSDONK}'=>$jsdonk,'{$FAV_ICON}'=>FAV_ICON,'{$LANGUAGE}'=>PIXMICAT_LANGUAGE); + $dat .= $PTE->ParseBlock('HEADER',$pte_vals); + $PMS->useModuleMethods('Head', array(&$dat,$resno)); // "Head" Hook Point + $pte_vals+=array('{$ALLOW_UPLOAD_EXT}' => ALLOW_UPLOAD_EXT, + '{$JS_REGIST_WITHOUTCOMMENT}' => str_replace('\'', '\\\'', _T('regist_withoutcomment')), + '{$JS_REGIST_UPLOAD_NOTSUPPORT}' => str_replace('\'', '\\\'', _T('regist_upload_notsupport')), + '{$JS_CONVERT_SAKURA}' => str_replace('\'', '\\\'', _T('js_convert_sakura'))); + $dat .= $PTE->ParseBlock('JSHEADER',$pte_vals); + $dat .= ''; + $pte_vals += array('{$TOP_LINKS}' => TOP_LINKS, + '{$HOME}' => '['._T('head_home').']', + '{$STATUS}' => '['._T('head_info').']', + '{$ADMIN}' => '['._T('head_admin').']', + '{$REFRESH}' => '['._T('head_refresh').']', + '{$SEARCH}' => (USE_SEARCH) ? '['._T('head_search').']' : ''); + if(STYLEBAR) $pte_vals += array('{$HOOKLINKS}' => ''.$style_bar.''); + else $pte_vals += array('{$HOOKLINKS}' => ''); + $PMS->useModuleMethods('Toplink', array(&$pte_vals['{$HOOKLINKS}'],$resno)); // "Toplink" Hook Point + $dat .= $PTE->ParseBlock('BODYHEAD',$pte_vals); +} + +/* 發表用表單輸出 */ +/* 投稿フォーム */ +function form(&$dat, $resno, $iscollapse=true, $retURL=PHP_SELF, $name='', $mail='', $sub='', $com='', $cat='', $mode='regist'){ + global $PTE, $PMS, $ADDITION_INFO, $language; + $pte_vals = array('{$SELF}'=>$retURL, '{$FORMTOP}'=>'', '{$MODE}'=>$mode); + $isedit = ($mode == 'edit'); // 是否為編輯模式 + if($resno && !$isedit){ + $links = '['._T('return').']'; + $PMS->useModuleMethods('LinksAboveBar', array(&$links,'reply',$resno)); // "LinksAboveBar" Hook Point + $pte_vals['{$FORMTOP}'] = ''; + } //----class="bar_reply" + if(!$resno) $ntno = _T('form_newt'); + else $ntno = _T('reply_btn').':'.$resno; // new thread & reply:$resno + if(USE_FLOATFORM && !$resno && $iscollapse) $pte_vals['{$FORMTOP}'] .= "\n".'['._T('form_showpostform').''._T('form_hidepostform').']'; + $pte_vals += array('{$MAX_FILE_SIZE}' => MAX_KB * 1024, + '{$RESTO}' => $resno ? '' : '', + '{$FORM_NAME_TEXT}' => _T('form_name'), + '{$FORM_NAME_FIELD}' => '', + '{$FORM_EMAIL_TEXT}' => _T('form_email'), + '{$FORM_EMAIL_FIELD}' => '', + '{$FORM_TOPIC_TEXT}' => _T('form_topic'), + '{$FORM_TOPIC_FIELD}' => '', + '{$FORM_SUBMIT}' => ' 「'.$ntno.'」', + '{$FORM_COMMENT_TEXT}' => _T('form_comment'), + '{$FORM_COMMENT_FIELD}' => '', + '{$FORM_DELETE_PASSWORD_FIELD}' => '', + '{$FORM_DELETE_PASSWORD_TEXT}' => _T('form_delete_password'), + '{$FORM_DELETE_PASSWORD_NOTICE}' => _T('form_delete_password_notice'), + '{$FORM_EXTRA_COLUMN}' => '', + '{$FORM_NOTICE}' => _T('form_notice',str_replace('|',', ',ALLOW_UPLOAD_EXT),MAX_KB,($resno ? MAX_RW : MAX_W),($resno ? MAX_RH : MAX_H)), + '{$HOOKPOSTINFO}' => '', + '{$ADDITION_INFO}' => $ADDITION_INFO, + '{$FORM_NOTICE_NOSCRIPT}' => _T('form_notice_noscript')); + $PMS->useModuleMethods('PostForm', array(&$pte_vals['{$FORM_EXTRA_COLUMN}'])); // "PostForm" Hook Point + if(!$isedit && (RESIMG || !$resno)){ + $pte_vals += array('{$FORM_ATTECHMENT_TEXT}' => _T('form_attechment'), + '{$FORM_ATTECHMENT_FIELD}' => ''); + if(!NO_TEXTONLY || NO_TEXTONLY == 1){ + $pte_vals += array('{$FORM_NOATTECHMENT_TEXT}' => _T('form_noattechment'), + '{$FORM_NOATTECHMENT_FIELD}' => ''); + } + } + if(OPTION || USE_UPSERIES){ //++++ more options will be added on later + $pte_vals['{$FORM_OPTION1_TEXT}'] = _T('form_option1'); + } + if(USE_UPSERIES){ // 啟動連貼機能 + $pte_vals['{$FORM_CONTPOST_FIELD}'] = ''; + $pte_vals['{$FORM_CONTPOST_TEXT}'] = _T('form_contpost'); + } + if(OPTION){ //options hook + $pte_vals['{$FORM_OPTION_HOOK}'] = ''; + } + if(USE_CATEGORY){ + $pte_vals += array('{$FORM_CATEGORY_FIELD}' => '', + '{$FORM_CATEGORY_TEXT}' => _T('form_category'), + '{$FORM_CATEGORY_NOTICE}' => _T('form_category_notice')); + } + if(STORAGE_LIMIT) $pte_vals['{$FORM_NOTICE_STORAGE_LIMIT}'] = _T('form_notice_storage_limit',total_size(),STORAGE_MAX); + $PMS->useModuleMethods('PostInfo', array(&$pte_vals['{$HOOKPOSTINFO}'])); // "PostInfo" Hook Point + + if(USE_FLOATFORM && !$resno && $iscollapse) $pte_vals['{$FORMBOTTOM}'] = ''; + $dat .= $PTE->ParseBlock('POSTFORM',$pte_vals); +} + +/* 輸出頁尾文字 */ +/* フッタ */ +function foot(&$dat){ + global $PTE, $PMS, $language; + $pte_vals = array('{$FOOTER}'=>''."\n"); + $PMS->useModuleMethods('Foot', array(&$pte_vals['{$FOOTER}'])); // "Foot" Hook Point + $pte_vals['{$FOOTER}'] .= '- GazouBBS + futaba + Pixmicat! + yotsubanome -'; + $pte_vals['{$FOOTER}'] .= '

    + Valid XHTML 1.1 +

    '; + $dat .= $PTE->ParseBlock('FOOTER',$pte_vals); +} + +/* 網址自動連結 */ +/* オートリンク */ +function auto_link_callback($matches){ + return (strtolower($matches[3]) == "") ? $matches[0] : preg_replace('/(https?|ftp|news|gopher)(:\/\/[\w\+\$\;\?\.\{\}%,!#~*\/:@&=_-]+)/u', '$1$2', $matches[0]); +} +function auto_link($proto){ + $proto = preg_replace('||',"\n",$proto); + $proto = preg_replace_callback('/(>|^)([^<]+?)(<.*?>|$)/m','auto_link_callback',$proto); + return str_replace("\n",'
    ',$proto); +} + +/* 引用標註 */ +function quoteLight($comment){ + return preg_replace('/(^|
    )((?:>|>).*?)(?=
    |$)/u', '$1$2', $comment); +} +function quoteLight2($comment){ + return preg_replace('/(^|
    )((?:#|#).*?)(?=
    |$)/u', '$1$2', $comment); +} + +/* 取得完整的網址 */ +function fullURL(){ + return 'http://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strpos($_SERVER['PHP_SELF'], PHP_SELF)); +} + +/* 反櫻花字 */ +function anti_sakura($str){ + return preg_match('/[\x{E000}-\x{F848}]/u', $str); +} + +/* 輸出錯誤畫面 */ +/* エラー画面 */ +function error($mes, $dest=''){ + global $PTE; + if(is_file($dest)) unlink($dest); + $pte_vals = array('{$SELF2}'=>PHP_SELF2.'?'.time(), '{$MESG}'=>$mes, '{$RETURN_TEXT}'=>_T('return'), '{$BACK_TEXT}'=>_T('error_back')); + $dat = ''; + head($dat); + $dat .= $PTE->ParseBlock('ERROR',$pte_vals); + foot($dat); + exit($dat); +} + +/* 文字修整 */ +/* テキスト整形 */ +function CleanStr($str, $IsAdmin=false){ + $str = trim($str); // 去除前後多餘空白 + if(get_magic_quotes_gpc()) $str = stripslashes($str); // "\"斜線符號去除 + // XML 1.1 Second Edition: 部分避免用字 (http://www.w3.org/TR/2006/REC-xml11-20060816/#charsets) + $str = preg_replace('/([\x1-\x8\xB-\xC\xE-\x1F\x7F-\x84\x86-\x9F\x{FDD0}-\x{FDDF}])/u', '', htmlspecialchars($str)); + + if($IsAdmin && CAP_ISHTML){ // 管理員開啟HTML + $str = preg_replace('/<(.*?)>/', '<$1>', $str); // 如果有<...>則轉回<...>成為正常標籤 + } + return $str; +} + +/* 適用UTF-8環境的擬substr,取出特定數目字元 +原出處:Sea Otter @ 2005.05.10 +http://www.meyu.net/star/viewthread.php?tid=267&fpage=10 */ +function str_cut($str, $maxlen=20){ + $i = $l = 0; $len = strlen($str); $f = true; $return_str = $str; + while($i < $len){ + $chars = ord($str{$i}); + if($chars < 0x80){ $l++; $i++; } + elseif($chars < 0xe0){ $l++; $i += 2; } + elseif($chars < 0xf0){ $l += 2; $i += 3; } + elseif($chars < 0xf8){ $l++; $i += 4; } + elseif($chars < 0xfc){ $l++; $i += 5; } + elseif($chars < 0xfe){ $l++; $i += 6; } + if(($l >= $maxlen) && $f){ + $return_str = substr($str, 0, $i); + $f = false; + } + if(($l > $maxlen) && ($i <= $len)){ + $return_str = $return_str.'…'; + break; + } + } + return $return_str; +} + +/* 檢查瀏覽器和伺服器是否支援gzip壓縮方式 */ +function CheckSupportGZip(){ + $HTTP_ACCEPT_ENCODING = isset($_SERVER['HTTP_ACCEPT_ENCODING']) ? $_SERVER['HTTP_ACCEPT_ENCODING'] : ''; + if(headers_sent() || connection_aborted()) return 0; // 已送出資料,取消 + if(!(function_exists('gzencode') && function_exists('ob_start') && function_exists('ob_get_clean'))) return 0; // 伺服器相關的套件或函式無法使用,取消 + if(strpos($HTTP_ACCEPT_ENCODING, 'gzip')!==false) return 'gzip'; + return 0; +} + +/* 封鎖 IP / Hostname / DNSBL 綜合性檢查 */ +function BanIPHostDNSBLCheck($IP, $HOST, &$baninfo){ + if(!BAN_CHECK) return false; // Disabled + global $BANPATTERN, $DNSBLservers, $DNSBLWHlist; + + // IP/Hostname Check + $HOST = strtolower($HOST); + $checkTwice = ($IP != $HOST); // 是否需檢查第二次 + $IsBanned = false; + foreach($BANPATTERN as $pattern){ + $slash = substr_count($pattern, '/'); + if($slash==2){ // RegExp + $pattern .= 'i'; + }elseif($slash==1){ // CIDR Notation + if(matchCIDR($IP, $pattern)){ $IsBanned = true; break; } + continue; + }elseif(strpos($pattern, '*')!==false || strpos($pattern, '?')!==false){ // Wildcard + $pattern = '/^'.str_replace(array('.', '*', '?'), array('\.', '.*', '.?'), $pattern).'$/i'; + }else{ // Full-text + if($IP==$pattern || ($checkTwice && $HOST==strtolower($pattern))){ $IsBanned = true; break; } + continue; + } + if(preg_match($pattern, $HOST) || ($checkTwice && preg_match($pattern, $IP))){ $IsBanned = true; break; } + } + if($IsBanned){ $baninfo = _T('ip_banned'); return true; } + + // DNS-based Blackhole List(DNSBL) 黑名單 + if(!$DNSBLservers[0]) return false; // Skip check + if(array_search($IP, $DNSBLWHlist)!==false) return false; // IP位置在白名單內 + $rev = implode('.', array_reverse(explode('.', $IP))); + $lastPoint = count($DNSBLservers) - 1; if($DNSBLservers[0] < $lastPoint) $lastPoint = $DNSBLservers[0]; + $isListed = false; + for($i = 1; $i <= $lastPoint; $i++){ + $query = $rev.'.'.$DNSBLservers[$i].'.'; // FQDN + $result = gethostbyname($query); + if($result && ($result != $query)){ $isListed = $DNSBLservers[$i]; break; } + } + if($isListed){ $baninfo = _T('ip_dnsbl_banned',$isListed); return true; } + return false; +} +function matchCIDR($addr, $cidr) { + list($ip, $mask) = explode('/', $cidr); + return (ip2long($addr) >> (32 - $mask) == ip2long($ip.str_repeat('.0', 3 - substr_count($ip, '.'))) >> (32 - $mask)); +} + +/* 後端登入權限管理 */ +function adminAuthenticate($mode){ + @session_start(); + $loginkey = md5($_SERVER['HTTP_USER_AGENT'].ADMIN_PASS.$_SERVER['REMOTE_ADDR']); + switch($mode){ + case 'logout': + if(isset($_SESSION['pmcLogin'])) unset($_SESSION['pmcLogin']); + return true; break; + case 'login': + $_SESSION['pmcLogin'] = $loginkey; + break; + case 'check': + if(isset($_SESSION['pmcLogin']) && $_SESSION['pmcLogin']==$loginkey){ + session_regenerate_id(true); // 更換 Session id key 避免 Hijacking + return true; + } + return false; + break; + } +} + +/* 取得 (Transparent) Proxy 提供之 IP 參數 */ +function getREMOTE_ADDR(){ + // 同時有 VIA 和 FORWARDED_FOR 較可能為 Proxy + if(isset($_SERVER['HTTP_VIA']) && isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ + $tmp = preg_split('/[ ,]+/', $_SERVER['HTTP_X_FORWARDED_FOR']); + // 防止 Squid "unknown" 問題,此種情況直接使用 REMOTE_ADDR + return ($tmp[0] != 'unknown' ? $tmp[0] : $_SERVER['REMOTE_ADDR']); + } + return $_SERVER['REMOTE_ADDR']; +} + +/*css style sheet */ +function format_js_var($var_name){ + return("'".$var_name."'"); +} + +# Identifies APNGs +# Written by Coda, functionified by Foone/Popcorn Mariachi#!9i78bPeIxI +# This code is in the public domain +# identify_apng returns: +# true if the file is an APNG +# false if it is any other sort of file (it is not checked for PNG validity) +# takes on argument, a filename. +/* APNG */ +function identify_apng($filename){ + global $apng; + $img_bytes = file_get_contents($filename); + if($img_bytes){ + if(strpos(substr($img_bytes, 0, strpos($img_bytes, 'IDAT')), 'acTL') !== false){ + return $apng = TRUE; // APNG + } + } + return $apng = FALSE; // not APNG +} + +/* total amount of ommited posts/images */ +function _res($posts, $images=0){ + $omitp = ($posts) ? sp(_T('notice_omitted_posts'), $posts) : false; + $omiti = ($images) ? sp(_T('notice_omitted_images'), $images) : false; + return($omitp.$omiti); +} +/* plural strings for ommited post messages */ +function sp($string, $value, $shownull = false){ + // Determine whether to show string for zero values + if(!$value && $shownull || $value) $show = true; + elseif(!$value && !$shownull) $show = false; + else $show = $shownull; + + if($show) $string = str_replace('[#]', number_format($value), $string); + else return(false); + + // Separate words from plural forms + ereg('(.*)(\[)(.*)(\])(.*)', $string, $regs); + $plu_word_s = $regs[1]; + $plu_bits = $regs[3]; + $plu_word_e = $regs[5]; + + if(strstr($plu_bits, '|')){ + // To the left of the | is the single form; to the right, the plural form + ereg('(.*)(\|)(.*)', $plu_bits, $regs); + $single = $regs[1]; + $plural = $regs[3]; + }else{ + // [|s] will work for words that should end in "s", but this bit handles [s] + $single = ''; + $plural = $plu_bits; + } + + // Spit it out, Smith + $plu_bit_d = ($value == -1 || $value == 1)?$single:$plural; + $plu_word = $plu_word_s.$plu_bit_d.$plu_word_e; + + if($plu_word) return($plu_word); else return($string); +} + +/* comment too long function */ +// truncate $str to $max_lines lines and return $str and $abbr +// where $abbr = whether or not $str was actually truncated +function abbreviate($str, $max_lines){ + if(!defined('MAX_LINES')){ + if(defined('BR_CHECK')) define('MAX_LINES', BR_CHECK); + else define('MAX_LINES', 24); + + $max_lines = MAX_LINES; + } + $lines = explode("
    ", $str); + if(count($lines) > $max_lines){ + $abbr = 1; + $lines = array_slice($lines, 0, $max_lines); + $str = implode("
    ", $lines); + }else $abbr = 0; + //close spans after abbreviating + //XXX will not work with more html - use abbreviate_html from shiichan + $str .= str_repeat("", substr_count($str, " \ No newline at end of file diff --git a/lib/lib_fileio.php b/lib/lib_fileio.php new file mode 100755 index 0000000..c402f2a --- /dev/null +++ b/lib/lib_fileio.php @@ -0,0 +1,33 @@ +absoluteURL)) $this->absoluteURL = $this->_getAbsoluteURL(); + + return $this->absoluteURL.(substr($imgname, -5)=='s.jpg' ? THUMB_DIR : IMG_DIR).$imgname; + } +} + +$FileIOEnv = array( // FileIO 環境常數 + 'IFS.PATH' => PHP_DIRECTORY.'lib/fileio/ifs.php', + 'IFS.LOG' => FILEIO_INDEXLOG, + 'PATH' => realpath('.').DIRECTORY_SEPARATOR, + 'IMG' => IMG_DIR, + 'THUMB' => THUMB_DIR +); + +$FileIO = new FileIOWrapper(unserialize(FILEIO_PARAMETER), $FileIOEnv); // FileIO 物件 +?> \ No newline at end of file diff --git a/lib/lib_language.php b/lib/lib_language.php new file mode 100755 index 0000000..9c307ad --- /dev/null +++ b/lib/lib_language.php @@ -0,0 +1,35 @@ + \ No newline at end of file diff --git a/lib/lib_pio.cond.php b/lib/lib_pio.cond.php new file mode 100755 index 0000000..e836cd1 --- /dev/null +++ b/lib/lib_pio.cond.php @@ -0,0 +1,75 @@ +postCount() >= $limit * ($type=='predict' ? 0.95 : 1); + } + + /*public static */function listee($type, $limit){ + global $PIO; + return $PIO->fetchPostList(0, intval($limit * ($type=='predict' ? 0.95 : 1)) - 1, $limit); + } + + /*public static */function info($limit){ + global $PIO; + return "ByPostCountCondition: ".($pcnt=$PIO->postCount()).'/'.$limit.sprintf(' (%.2f%%)',($pcnt/$limit*100)); + } +} + +/* 以總討論串數作為刪除判斷 */ +class ByThreadCountCondition{ + /*public static */function check($type, $limit){ + global $PIO; + return $PIO->threadCount() >= ($type=='predict' ? $limit * 0.95 : 1); + } + + /*public static */function listee($type, $limit){ + global $PIO; + return $PIO->fetchThreadList(intval($limit * ($type=='predict' ? 0.95 : 1)), $limit); + } + + /*public static */function info($limit){ + global $PIO; + return "ByThreadCountCondition: ".($tcnt=$PIO->threadCount()).'/'.$limit.sprintf(' (%.2f%%)',($tcnt/$limit*100)); + } +} + +/* 以討論串生存時間作為刪除判斷 */ +class ByThreadAliveTimeCondition{ + /*public static */function check($type, $limit){ + global $PIO; + $oldestThreadNo = $PIO->fetchThreadList($PIO->threadCount() - 1, 1, true); // 最舊討論串編號 + $oldestThread = $PIO->fetchPosts($oldestThreadNo); + return (time() - substr($oldestThread[0]['tim'], 0, 10) >= 86400 * $limit * ($type=='predict' ? 0.95 : 1)); + } + + /*public static */function listee($type, $limit){ + global $PIO; + $ThreadNo = $PIO->fetchThreadList(0, 0, true); sort($ThreadNo); // 討論串編號陣列 (由舊到新) + $NowTime = time(); + $i = 0; + foreach($ThreadNo as $t){ + $post = $PIO->fetchPosts($t); + if($NowTime - substr($post[0]['tim'], 0, 10) < 86400 * $limit * ($type=='predict' ? 0.95 : 1)) break; // 時間不符合 + $i++; + } + if(count($ThreadNo)===$i){ $i--; } // 保留最新的一篇避免全部刪除 + return array_slice($ThreadNo, 0, $i); + } + + /*public static */function info($limit){ + return "ByThreadAliveTimeCondition: ".$limit.' day(s)'; + } +} +?> \ No newline at end of file diff --git a/lib/lib_pio.php b/lib/lib_pio.php new file mode 100755 index 0000000..5ce78db --- /dev/null +++ b/lib/lib_pio.php @@ -0,0 +1,140 @@ +_write($status); + } + + function _write($status=''){ + $this->_status = $status; + } + + function toString(){ + return $this->_status; + } + + function get($flag){ + $result = preg_match('/_('.$flag.'(\:(.*))*)_/U', $this->toString(), $match); + return $result ? $match[1] : false; + } + + function exists($flag){ + return $this->get($flag) !== false; + } + + function value($flag){ + $wholeflag = $this->get($flag); + if($scount = substr_count($wholeflag, ':')){ + $wholeflag = preg_replace('/^'.$flag.'\:/', '', $wholeflag); + return ($scount > 1 ? explode(':', $wholeflag) : $wholeflag); + }else return $wholeflag !== false; + } + + function add($flag, $value=null){ + return $this->update($flag, $value); + } + + function update($flag, $value=null){ + if($value===null){ + $ifexist = $this->get($flag); + if($ifexist !== $flag) $this->_write($this->toString()."_${flag}_"); + }else{ + if(is_array($value)) $value = $this->join($value); // Array Flatten + $ifexist = $this->get($flag); + if($ifexist !== $flag.':'.$value){ + if($ifexist) $this->_write($this->replace($ifexist, "$flag:$value")); // 已立flag,不同值 + else $this->_write($this->toString()."_$flag:${value}_"); // 無flag + } + } + return $this; + } + + function replace($from, $to){ + return str_replace("_${from}_", "_${to}_", $this->toString()); + } + + function remove($flag){ + $wholeflag = $this->get($flag); + $this->_write(str_replace("_${wholeflag}_", '', $this->toString())); + return $this; + } + + function toggle($flag){ + return ($this->get($flag) ? $this->remove($flag) : $this->add($flag)); + } + + function offsetValue($flag, $d=0){ + $v = intval($this->value($flag)); + return $this->update($flag, $v + $d); + } + + function plus($flag){ return $this->offsetValue($flag, 1); } + function minus($flag){ return $this->offsetValue($flag, -1); } + + function join(){ + $arg = func_get_args(); + $newval = array(); + foreach($arg as $a){ + if(is_array($a)) array_push($newval, implode(':', $a)); + else array_push($newval, $a); + } + return implode(':', $newval); + } +} + +// 文章自動刪除機制 +include(PHP_DIRECTORY.'lib/lib_pio.cond.php'); +class PIOSensor{ + /*public static */function check($type, $condobj){ + foreach($condobj as $i => $j){ + // 有其中一個需要處理 + if(call_user_func_array(array($i, 'check'), array($type, $j))===true) return true; + } + return false; + } + + /*public static */function listee($type, $condobj){ + $tmparray = array(); // 項目陣列 + foreach($condobj as $i => $j){ + // 結果併進 $tmparray + $tmparray = array_merge($tmparray, call_user_func_array(array($i, 'listee'), array($type, $j))); + } + sort($tmparray); // 由舊排到新 (小到大) + return array_unique($tmparray); + } + + /*public static */function info($condobj){ + $sensorinfo=''; + foreach($condobj as $i => $j){ + $sensorinfo .= call_user_func_array(array($i, 'info'), array($j))."\n"; + } + return $sensorinfo; + } +} + +// 分析連線字串 +if(preg_match('/^(.*):\/\//i', CONNECTION_STRING, $backend)) define('PIXMICAT_BACKEND', $backend[1]); + +// 引入必要函式庫 +$pio_file = PHP_DIRECTORY.'lib/pio/pio.'.PIXMICAT_BACKEND.'.php'; +$PIOEnv = array( // PIO 環境常數 + 'BOARD' => '.', + 'LUTCACHE' => './'.LUT_CACHE, + 'NONAME' => DEFAULT_NONAME, + 'NOTITLE' => DEFAULT_NOTITLE, + 'NOCOMMENT' => DEFAULT_NOCOMMENT, + 'PERIOD.POST' => RENZOKU, + 'PERIOD.IMAGEPOST' => RENZOKU2 +); +if(is_file($pio_file)) include_once($pio_file); + +// PIO Kernel Switcher +$pioSwitch = 'PIO'.PIXMICAT_BACKEND; +$PIO = new $pioSwitch(CONNECTION_STRING, $PIOEnv); +?> \ No newline at end of file diff --git a/lib/lib_pms.php b/lib/lib_pms.php new file mode 100755 index 0000000..1dfa116 --- /dev/null +++ b/lib/lib_pms.php @@ -0,0 +1,19 @@ + PHP_DIRECTORY.'module/', + 'MODULE.PAGE' => PHP_SELF.'?mode=module&load=', + 'MODULE.LOADLIST' => $ModuleList +); +require(PHP_DIRECTORY.'lib/pms.php'); +$PMS = new PMS($PMSEnv); +?> \ No newline at end of file diff --git a/lib/lib_pte.php b/lib/lib_pte.php new file mode 100755 index 0000000..f41ac32 --- /dev/null +++ b/lib/lib_pte.php @@ -0,0 +1,86 @@ +tpl_block = array(); + $this->tpl = file_get_contents($tplname); + } + + /* 回傳區塊樣板碼並快取 */ + function _readBlock($blockName){ + if(!isset($this->tpl_block[$blockName])){ // 是否找過 + if(preg_match('/(.*)/smU', $this->tpl, $matches)) + $this->tpl_block[$blockName] = $matches[1]; // 找到了存入陣列快取 + else + $this->tpl_block[$blockName] = false; // 找過但沒找到 + } + return $this->tpl_block[$blockName]; + } + + /* 回傳去除前後空格的區塊樣板碼 */ + function BlockValue($blockName){ + return trim($this->_readBlock($blockName)); + } + + /* 將樣版的標籤取代為正確的字串並傳回 */ + function ParseBlock($blockName, $ary_val){ + if(($tmp_block = $this->_readBlock($blockName))===false) return ""; // 找無 + $tmp_block = $this->EvalFOREACH($tmp_block, $ary_val); // 解析FOREACH敘述 + $tmp_block = $this->EvalIF($tmp_block, $ary_val); // 解析IF敘述 + $tmp_block = $this->EvalInclude($tmp_block, $ary_val); // 解析引用 + return @str_replace(@array_keys($ary_val), @array_values($ary_val), $tmp_block); + } + + /* 解析IF敘述 */ + function EvalIF($tpl, $ary){ + $tmp_tpl = $tpl; + if(preg_match_all('//smU', $tmp_tpl, $matches, PREG_SET_ORDER)){ + foreach($matches as $submatches){ + $isblock = substr($submatches[1],0,1) == "&"; $vari = substr($submatches[1],1); $iftrue = $submatches[2]; $iffalse = $submatches[3]; + $tmp_tpl = @str_replace($submatches[0], (($isblock ? $this->BlockValue($vari) : ($ary['{$'.$vari.'}'] !== '' && $ary['{$'.$vari.'}'] !== false && $ary['{$'.$vari.'}'] !== null)) ? $this->EvalInclude($iftrue, $ary) : $this->EvalInclude($iffalse, $ary)), $tmp_tpl); + } + } + return $tmp_tpl; + } + /* 解析FOREACH敘述 */ + function EvalFOREACH($tpl, $ary){ + $tmp_tpl = $tpl; + if(preg_match_all('//smU', $tmp_tpl, $matches, PREG_SET_ORDER)){ + foreach($matches as $submatches){ + $vari = $submatches[1]; $block = $submatches[2]; + + $foreach_tmp = ''; + if(isset($ary['{'.$vari.'}']) && is_array($ary['{'.$vari.'}'])) + foreach($ary['{'.$vari.'}'] as $eachvar) + $foreach_tmp .= $this->ParseBlock($block, $eachvar); + $tmp_tpl = @str_replace($submatches[0], $foreach_tmp, $tmp_tpl); + } + } + return $tmp_tpl; + } + /* 解析區塊引用 */ + function EvalInclude($tpl, $ary){ + $tmp_tpl = $tpl; + if(preg_match_all('//smU', $tmp_tpl, $matches, PREG_SET_ORDER)) + foreach($matches as $submatches) + $tmp_tpl = str_replace($submatches[0], $this->ParseBlock($submatches[1], $ary), $tmp_tpl); + return $tmp_tpl; + } +} +?> \ No newline at end of file diff --git a/lib/pio/pio.log.php b/lib/pio/pio.log.php new file mode 100755 index 0000000..5945871 --- /dev/null +++ b/lib/pio/pio.log.php @@ -0,0 +1,539 @@ +_memcachedEstablish()) return false; + $this->memcached->set('pmc'.$this->mid.'_isset', true); + // 是否需要將每行資料分析為陣列 + $this->memcached->set('pmc'.$this->mid.'_logs', ($isAnalysis ? array_map(array($this, '_AnalysisLogs'), $this->logs) : $this->logs)); + $this->memcached->set('pmc'.$this->mid.'_trees', $this->trees); + $this->memcached->set('pmc'.$this->mid.'_LUT', $this->LUT); + $this->memcached->set('pmc'.$this->mid.'_porder', $this->porder); + $this->memcached->set('pmc'.$this->mid.'_torder', $this->torder); + } + + /* private 取得 memcached 資料 + function _memcacheGet(){ + if(!$this->_memcachedEstablish()) return false; + if($this->memcached->get('pmc'.$this->mid.'_isset')){ // 有資料 + $this->logs = $this->memcached->get('pmc'.$this->mid.'_logs'); + $this->trees = $this->memcached->get('pmc'.$this->mid.'_trees'); + $this->LUT = $this->memcached->get('pmc'.$this->mid.'_LUT'); + $this->porder = $this->memcached->get('pmc'.$this->mid.'_porder'); + $this->torder = $this->memcached->get('pmc'.$this->mid.'_torder'); + return true; + }else return false; + } + + /* private 建立 memcached 實體 + function _memcachedEstablish(){ + if(!extension_loaded('memcache')) return ($this->memcached = false); + if(is_null($this->memcached)){ + $this->memcached = new Memcache; + if(!$this->memcached->pconnect('localhost')) return ($this->memcached = false); + return true; + } + return ($this->memcached===false) ? false : true; + }*/ + + function PIOlog($connstr='', $ENV){ + $this->ENV = $ENV; + $this->logs = $this->trees = $this->LUT = $this->porder = $this->torder = array(); + $this->prepared = 0; + //$this->mid = md5($_SERVER['SCRIPT_FILENAME']); // Unique ID + //$this->memcached = false; // memcached object (null: use, false: don't use) + + if($connstr) $this->dbConnect($connstr); + } + + /* private 把每一行 Log 解析轉換成陣列資料 */ + function _AnalysisLogs($line){ + $tline = array(); + list($tline['no'], $tline['resto'], $tline['md5chksum'], $tline['category'], $tline['tim'], $tline['ext'], $tline['imgw'], $tline['imgh'], $tline['imgsize'], $tline['filename'], $tline['tw'], $tline['th'], $tline['pwd'], $tline['now'], $tline['name'], $tline['email'], $tline['sub'], $tline['com'], $tline['host'], $tline['status']) = explode(',', $line); + return array_reverse($tline); // list()是由右至左代入的 + } + + /* private 將回文放進陣列 */ + function _includeReplies($posts){ + $torder_flip = array_flip($this->torder); + foreach($posts as $post){ + if(array_key_exists($post, $torder_flip)){ // 討論串首篇 + $posts = array_merge($posts, $this->trees[$post]); + } + } + return array_merge(array(), array_unique($posts)); // 去除重複值 + } + + /* private 取代 , 成為 , 避免衝突 */ + function _replaceComma($txt){ + return str_replace(',', ',', $txt); + } + + /* private 由編號取出資料分析成陣列 */ + function _ArrangeArrayStructure($line){ + $line = (array)$line; // 全部視為Arrays + $posts = array(); + foreach($line as $i){ + if(!isset($this->LUT[$i])) continue; + if(!is_array($this->logs[$this->LUT[$i]])){ // 進行分析轉換 + $line = $this->logs[$this->LUT[$i]]; if($line=='') continue; + $this->logs[$this->LUT[$i]] = $this->_AnalysisLogs($line); + } + $posts[] = $this->logs[$this->LUT[$i]]; + } + return $posts; + } + + /* PIO模組版本 */ + function pioVersion(){ + return '0.6 (v20100404)'; + } + + /* 處理連線字串/連接 */ + function dbConnect($connStr){ + if(preg_match('/^log:\/\/(.*)\:(.*)\/$/i', $connStr, $linkinfos)){ + $this->logfile = $this->ENV['BOARD'].'/'.$linkinfos[1]; // 投稿文字記錄檔檔名 + $this->treefile = $this->ENV['BOARD'].'/'.$linkinfos[2]; // 樹狀結構記錄檔檔名 + $this->porderfile = $this->ENV['LUTCACHE']; // LUT索引查找表暫存檔案 + } + } + + /* 初始化 */ + function dbInit(){ + $chkfile = array($this->logfile, $this->treefile, $this->porderfile); + // 自動建置 + foreach($chkfile as $value){ + if(!is_file($value)){ // 檔案不存在 + $fp = fopen($value, 'w'); + stream_set_write_buffer($fp, 0); + if($value==$this->logfile) fwrite($fp, '0,0,,,0,,0,0,,,0,0,,08/11/08(土) 10:24:04,【スパーキー(④ ^ヮ^)】,,'.$this->ENV['NOTITLE'].','.$this->ENV['NOCOMMENT'].',,,'); // PIO Structure V4 + if($value==$this->treefile) fwrite($fp, '0'); + if($value==$this->porderfile) fwrite($fp, '0'); + fclose($fp); + unset($fp); + @chmod($value, 0666); + } + } + return true; + } + + /* 準備/讀入 */ + function dbPrepare($reload=false, $transaction=true){ + if($this->prepared && !$reload) return true; + if($reload && $this->prepared) $this->porder = $this->torder = $this->LUT = $this->logs = $this->trees = array(); + //if($this->_memcacheGet()){ $this->prepared = 1; return true; } // 如果 memcache 有快取則直接使用 + $this->logs = file($this->logfile); // Log每行原始資料 + if(!file_exists($this->porderfile)){ // LUT不在,重生成 + $lut = ''; + foreach($this->logs as $line){ + if(!isset($line)) continue; + $tmp = explode(',', $line); $lut .= $tmp[0]."\r\n"; + } + $fp = fopen($this->porderfile, 'w'); // LUT + stream_set_write_buffer($fp, 0); + flock($fp, LOCK_EX); // 鎖定檔案 + fwrite($fp, $lut); + flock($fp, LOCK_UN); // 解鎖 + fclose($fp); + } + $this->porder = array_map('rtrim', file($this->porderfile)); // 文章編號陣列 + $this->LUT = array_flip($this->porder); // LUT索引查找表 + + $tree = array_map('rtrim', file($this->treefile)); + foreach($tree as $treeline){ // 解析樹狀結構製成索引 + if($treeline=='') continue; + if($treeline==0) break; + $tline = explode(',', $treeline); + $this->torder[] = $tline[0]; // 討論串首篇編號陣列 + $this->trees[$tline[0]] = $tline; // 特定編號討論串完整結構陣列 + } + //$this->_memcacheSet(); // 把目前資料設定到 memcached 內 + $this->prepared = 1; + } + + /* 提交/儲存 */ + function dbCommit(){ + if(!$this->prepared) return false; + + $log = $tree = $lut = ''; + $this->logs = array_merge(array(), $this->logs); // 更新logs鍵值 + $this->torder = array_merge(array(), $this->torder); // 更新torder鍵值 + $this->porder = $this->LUT = array(); // 重新生成索引 + + foreach($this->logs as $line){ + if(!isset($line)) continue; + if(is_array($line)){ // 已被分析過 + $log .= implode(',', $line).",\r\n"; + $lut .= ($this->porder[] = $line['no'])."\r\n"; + }else{ // 尚未分析過 + $log .= $line; + $tmp = explode(',', $line); $lut .= ($this->porder[] = $tmp[0])."\r\n"; + } + } + $this->LUT = array_flip($this->porder); + $tcount = count($this->trees); + for($tline = 0; $tline < $tcount; $tline++){ + $tree .= $this->isThread($this->torder[$tline]) ? implode(',', $this->trees[$this->torder[$tline]])."\r\n" : ''; + } + //$this->_memcacheSet(false); // 更新快取 (不需要再分析) + + $fp = fopen($this->logfile, 'w'); // Log + stream_set_write_buffer($fp, 0); + flock($fp, LOCK_EX); // 鎖定檔案 + fwrite($fp, $log); + flock($fp, LOCK_UN); // 解鎖 + fclose($fp); + + $fp = fopen($this->treefile, 'w'); // tree + stream_set_write_buffer($fp, 0); + flock($fp, LOCK_EX); // 鎖定檔案 + fwrite($fp, $tree); + flock($fp, LOCK_UN); // 解鎖 + fclose($fp); + + $fp = fopen($this->porderfile, 'w'); // LUT + stream_set_write_buffer($fp, 0); + flock($fp, LOCK_EX); // 鎖定檔案 + fwrite($fp, $lut); + flock($fp, LOCK_UN); // 解鎖 + fclose($fp); + } + + /* 資料表維護 */ + function dbMaintanence($action,$doit=false){ + switch($action) { + case 'export': + if($doit){ + $this->dbPrepare(false); + $gp = gzopen('piodata.log.gz', 'w9'); + gzwrite($gp, $this->dbExport()); + gzclose($gp); + return '下載 piodata.log.gz 中介檔案'; + }else return true; // 支援匯出資料 + break; + case 'optimize': + case 'check': + case 'repair': + default: return false; // 不支援 + } + } + + /* 匯入資料來源 */ + function dbImport($data){ + $arrData = explode("\r\n", $data); + $arrData_cnt = count($arrData) - 1; // 最後一個是空的 + $arrTree = array(); + $tree = $logs = $lut = ''; + for($i = 0; $i < $arrData_cnt; $i++){ + $line = explode(',', $arrData[$i], 4); // 切成四段 + $logs .= $line[0].','.$line[1].','.$line[3]."\r\n"; // 重建討論結構 + $lut .= $line[0]."\r\n"; // 重建 LUT 查找表結構 + if($line[1]==0){ // 首篇 + if(!isset($arrTree[$line[0]])) $arrTree[$line[0]] = array($line[0]); // 僅自身一篇 + else array_unshift($arrTree[$line[0]], $line[0]); + continue; + } + if(!isset($arrTree[$line[1]])) $arrTree[$line[1]] = array(); + array_unshift($arrTree[$line[1]], $line[0]); + } + foreach($arrTree as $t) $tree .= implode(',', $t)."\r\n"; // 重建樹狀結構 + $chkfile = array($this->logfile, $this->treefile, $this->porderfile); + foreach($chkfile as $value){ + $fp = fopen($value, 'w'); + stream_set_write_buffer($fp, 0); + if($value==$this->logfile) fwrite($fp, $logs); + if($value==$this->treefile) fwrite($fp, $tree); + if($value==$this->porderfile) fwrite($fp, $lut); + fclose($fp); + unset($fp); + @chmod($value, 0666); + } + return true; + } + + /* 匯出資料來源 */ + function dbExport(){ + if(!$this->prepared) $this->dbPrepare(); + $f = file($this->logfile); + $data = ''; + foreach($f as $line){ + $line = explode(',', $line, 3); // 分成三段 (最後一段特別長) + if($line[1]==0 && isset($this->trees[$line[0]])){ + $lastno = array_pop($this->trees[$line[0]]); + $line2 = $this->fetchPosts($lastno); + $root = gmdate('Y-m-d H:i:s', substr($line2[0]['tim'], 0, 10)); // UTC 時間 + unset($this->trees[$line[0]]); // 刪除表示已取過 + }else{ + $root = '0'; + } + $data .= $line[0].','.$line[1].','.$root.','.$line[2]; + } + return $data; + } + + /* 文章數目 */ + function postCount($resno=0){ + if(!$this->prepared) $this->dbPrepare(); + + return $resno ? ($this->isThread($resno) ? count(@$this->trees[$resno]) : 0) : count($this->porder); + } + + /* 討論串數目 */ + function threadCount(){ + if(!$this->prepared) $this->dbPrepare(); + + return count($this->torder); + } + + /* 取得最後的文章編號 */ + function getLastPostNo($state){ + if(!$this->prepared) $this->dbPrepare(); + + switch($state){ + case 'beforeCommit': + case 'afterCommit': + return reset($this->porder); + } + } + + /* 輸出文章清單 */ + function fetchPostList($resno=0, $start=0, $amount=0){ + if(!$this->prepared) $this->dbPrepare(); + + $plist = array(); + if($resno){ + if($this->isThread($resno)){ + if($start && $amount){ + $plist = array_slice($this->trees[$resno], $start, $amount); + array_unshift($plist, $resno); + } + if(!$start && $amount) $plist = array_slice($this->trees[$resno], 0, $amount); + if(!$start && !$amount) $plist = $this->trees[$resno]; + } + }else{ + $plist = $amount ? array_slice($this->porder, $start, $amount) : $this->porder; + } + return $plist; + } + + /* 輸出討論串清單 */ + function fetchThreadList($start=0, $amount=0, $isDESC=false){ + if(!$this->prepared) $this->dbPrepare(); + $tmp_array = $this->torder; + if($isDESC) rsort($tmp_array); // 按編號遞減排序 (預設為按最後更新時間排序) + return $amount ? array_slice($tmp_array, $start, $amount) : $tmp_array; + } + + /* 輸出文章 */ + function fetchPosts($postlist){ + if(!$this->prepared) $this->dbPrepare(); + + return $this->_ArrangeArrayStructure($postlist); // 輸出陣列結構 + } + + /* 刪除舊附件 (輸出附件清單) */ + function delOldAttachments($total_size, $storage_max, $warnOnly=true){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + + $rpord = $this->porder; sort($rpord); // 由舊排到新 (小->大) + $arr_warn = $arr_kill = array(); + foreach($rpord as $post){ + $logsarray = $this->_ArrangeArrayStructure($post); // 分析資料為陣列 + if($FileIO->imageExists($logsarray[0]['tim'].$logsarray[0]['ext'])){ $total_size -= $FileIO->getImageFilesize($logsarray[0]['tim'].$logsarray[0]['ext']) / 1024; $arr_kill[] = $post; $arr_warn[$post] = 1; } // 標記刪除 + if($FileIO->imageExists($logsarray[0]['tim'].'s.jpg')) $total_size -= $FileIO->getImageFilesize($logsarray[0]['tim'].'s.jpg') / 1024; + if($total_size < $storage_max) break; + } + return $warnOnly ? $arr_warn : $this->removeAttachments($arr_kill); + } + + /* 刪除文章 */ + function removePosts($posts){ + if(!$this->prepared) $this->dbPrepare(); + if(count($posts)==0) return array(); + + $posts = $this->_includeReplies($posts); // 包含所有回文 + $filelist = $this->removeAttachments($posts); // 欲刪除附件 + $torder_flip = array_flip($this->torder); + $pcount = count($posts); + $logsarray = $this->_ArrangeArrayStructure($posts); // 分析資料為陣列 + for($p = 0; $p < $pcount; $p++){ + if(!isset($logsarray[$p])) continue; + if($logsarray[$p]['resto']==0){ // 討論串頭 + unset($this->trees[$logsarray[$p]['no']]); // 刪除樹狀記錄 + if(array_key_exists($logsarray[$p]['no'], $torder_flip)) unset($this->torder[$torder_flip[$logsarray[$p]['no']]]); // 從討論串首篇陣列中移除 + }else{ + // 從樹狀檔刪除 + if(array_key_exists($logsarray[$p]['resto'], $this->trees)){ + $tr_flip = array_flip($this->trees[$logsarray[$p]['resto']]); + unset($this->trees[$logsarray[$p]['resto']][$tr_flip[$posts[$p]]]); + } + } + unset($this->logs[$this->LUT[$logsarray[$p]['no']]]); + if(array_key_exists($logsarray[$p]['no'], $this->LUT)) unset($this->porder[$this->LUT[$logsarray[$p]['no']]]); // 從討論串編號陣列中移除 + } + $this->LUT = array_flip($this->porder); + return $filelist; + } + + /* 刪除附件 (輸出附件清單) */ + function removeAttachments($posts){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + if(count($posts)==0) return array(); + + $files = array(); + $logsarray = $this->_ArrangeArrayStructure($posts); // 分析資料為陣列 + $lcount = count($logsarray); + for($i = 0; $i < $lcount; $i++){ + if($logsarray[$i]['ext']){ + if($FileIO->imageExists($logsarray[$i]['tim'].$logsarray[$i]['ext'])) $files[] = $logsarray[$i]['tim'].$logsarray[$i]['ext']; + if($FileIO->imageExists($logsarray[$i]['tim'].'s.jpg')) $files[] = $logsarray[$i]['tim'].'s.jpg'; + } + } + return $files; + } + + /* 新增文章/討論串 */ + function addPost($no, $resto, $md5chksum, $category, $tim, $ext, $imgw, $imgh, $imgsize, $filename, $tw, $th, $pwd, $now, $name, $email, $sub, $com, $host, $age=false, $status='') { + if(!$this->prepared) $this->dbPrepare(); + + $tline = array($no, $resto, $md5chksum, $category, $tim, $ext, $imgw, $imgh, $imgsize, $filename, $tw, $th, $pwd, $now, $name, $email, $sub, $com, $host, $status); + $tline = array_map(array($this, '_replaceComma'), $tline); // 將資料內的 , 轉換 (Only Log needed) + array_unshift($this->logs, implode(',', $tline).",\r\n"); // 更新logs + array_unshift($this->porder, $no); // 更新porder + $this->LUT = array_flip($this->porder); // 更新LUT + + // 更新torder及trees + if($resto){ + $this->trees[$resto][] = $no; + if($age){ + $torder_flip = array_flip($this->torder); + unset($this->torder[$torder_flip[$resto]]); // 先刪除舊有位置 + array_unshift($this->torder, $resto); // 再移到頂端 + } + }else{ + $this->trees[$no][0] = $no; + array_unshift($this->torder, $no); + } + } + + /* 檢查是否連續投稿 */ + function isSuccessivePost($lcount, $com, $timestamp, $pass, $passcookie, $host, $isupload){ + if(!$this->prepared) $this->dbPrepare(); + + $pcount = $this->postCount(); + $lcount = ($pcount > $lcount) ? $lcount : $pcount; + for($i = 0; $i < $lcount; $i++){ + $logsarray = $this->_ArrangeArrayStructure($this->porder[$i]); // 分析資料為陣列 + list($lcom, $lhost, $lpwd, $ltime) = array($logsarray[0]['com'], $logsarray[0]['host'], $logsarray[0]['pwd'], substr($logsarray[0]['tim'],0,-3)); + if($host==$lhost || $pass==$lpwd || $passcookie==$lpwd) $pchk = 1; + else $pchk = 0; + if($this->ENV['PERIOD.POST'] && $pchk){ // 密碼比對符合且開啟連續投稿時間限制 + if($timestamp - $ltime < $this->ENV['PERIOD.POST']) return true; // 投稿時間相距太短 + if($timestamp - $ltime < $this->ENV['PERIOD.IMAGEPOST'] && $isupload) return true; // 附加圖檔的投稿時間相距太短 + if($com == $lcom && !$isupload) return true; // 內文一樣 + } + } + return false; + } + + /* 檢查是否重複貼圖 */ + function isDuplicateAttachment($lcount, $md5hash){ + global $FileIO; + + $pcount = $this->postCount(); + $lcount = ($pcount > $lcount) ? $lcount : $pcount; + for($i = 0; $i < $lcount; $i++){ + $logsarray = $this->_ArrangeArrayStructure($this->porder[$i]); // 分析資料為陣列 + if(!$logsarray[0]['md5chksum']) continue; // 無附加圖檔 + if($logsarray[0]['md5chksum']==$md5hash){ + if($FileIO->imageExists($logsarray[0]['tim'].$logsarray[0]['ext'])) return true; // 存在MD5雜湊相同的檔案 + } + } + return false; + } + + /* 有此討論串? */ + function isThread($no){ + if(!$this->prepared) $this->dbPrepare(); + + return isset($this->trees[$no]); + } + + /* 搜尋文章 */ + function searchPost($keyword,$field,$method){ + if(!$this->prepared) $this->dbPrepare(); + + $foundPosts = array(); + $keyword_cnt = count($keyword); + $pcount = $this->postCount(); + for($i = 0; $i < $pcount; $i++){ + $logsarray = $this->_ArrangeArrayStructure($this->porder[$i]); // 分析資料為陣列 + $found = 0; + foreach($keyword as $k){ + if(strpos($logsarray[0][$field], $k)!==FALSE) $found++; + if($method=="OR" && $found) break; + } + if($method=="AND" && $found==$keyword_cnt) array_push($foundPosts, $logsarray[0]); // 全部都有找到 (AND交集搜尋) + elseif($method=="OR" && $found) array_push($foundPosts, $logsarray[0]); // 有找到 (OR聯集搜尋) + } + return $foundPosts; + } + + /* 搜尋類別標籤 */ + function searchCategory($category){ + if(!$this->prepared) $this->dbPrepare(); + + $category = strtolower($category); + $foundPosts = array(); + $pcount = $this->postCount(); + for($i = 0; $i < $pcount; $i++){ + $logsarray = $this->_ArrangeArrayStructure($this->porder[$i]); // 分析資料為陣列 + if(!($ary_category = $logsarray[0]['category'])) continue; + if(strpos(strtolower($ary_category), ','.$category.',')!==false) array_push($foundPosts, $logsarray[0]['no']); // 找到標籤,加入名單 + } + return $foundPosts; + } + + /* 取得文章屬性 */ + function getPostStatus($status){ + return new FlagHelper($status); // 回傳 FlagHelper 物件 + } + + /* 更新文章 */ + function updatePost($no, $newValues){ + if(!$this->prepared) $this->dbPrepare(); + + $chk = array('resto', 'md5chksum', 'category', 'tim', 'ext', 'imgw', 'imgh', 'imgsize', 'filename', 'tw', 'th', 'pwd', 'now', 'name', 'email', 'sub', 'com', 'host', 'status'); + + $this->_ArrangeArrayStructure($no); // 將資料變成陣列 + foreach($chk as $c) + if(isset($newValues[$c])) + $this->logs[$this->LUT[$no]][$c] = $this->_replaceComma($newValues[$c]); // 修改數值 + } + + /* 設定文章屬性 */ + function setPostStatus($no, $newStatus){ + $this->updatePost($no, array('status' => $newStatus)); + } +} +?> \ No newline at end of file diff --git a/lib/pio/pio.logflockp.php b/lib/pio/pio.logflockp.php new file mode 100755 index 0000000..edceff5 --- /dev/null +++ b/lib/pio/pio.logflockp.php @@ -0,0 +1,572 @@ +_memcachedEstablish()) return false; + $this->memcached->set('pmc'.$this->mid.'_isset', true); + // 是否需要將每行資料分析為陣列 + $this->memcached->set('pmc'.$this->mid.'_logs', ($isAnalysis ? array_map(array($this, '_AnalysisLogs'), $this->logs) : $this->logs)); + $this->memcached->set('pmc'.$this->mid.'_trees', $this->trees); + $this->memcached->set('pmc'.$this->mid.'_LUT', $this->LUT); + $this->memcached->set('pmc'.$this->mid.'_porder', $this->porder); + $this->memcached->set('pmc'.$this->mid.'_torder', $this->torder); + } + + /* private 取得 memcached 資料 + function _memcacheGet(){ + if(!$this->_memcachedEstablish()) return false; + if($this->memcached->get('pmc'.$this->mid.'_isset')){ // 有資料 + $this->logs = $this->memcached->get('pmc'.$this->mid.'_logs'); + $this->trees = $this->memcached->get('pmc'.$this->mid.'_trees'); + $this->LUT = $this->memcached->get('pmc'.$this->mid.'_LUT'); + $this->porder = $this->memcached->get('pmc'.$this->mid.'_porder'); + $this->torder = $this->memcached->get('pmc'.$this->mid.'_torder'); + return true; + }else return false; + } + + /* private 建立 memcached 實體 + function _memcachedEstablish(){ + if(!extension_loaded('memcache')) return ($this->memcached = false); + if(is_null($this->memcached)){ + $this->memcached = new Memcache; + if(!$this->memcached->pconnect('localhost')) return ($this->memcached = false); + return true; + } + return ($this->memcached===false) ? false : true; + }*/ + + function PIOlogflockp($connstr='', $ENV){ + $this->ENV = $ENV; + $this->logs = $this->trees = $this->LUT = $this->porder = $this->torder = array(); + $this->prepared = 0; + //$this->mid = md5($_SERVER['SCRIPT_FILENAME']); // Unique ID + //$this->memcached = false; // memcached object (null: use, false: don't use) + + if($connstr) $this->dbConnect($connstr); + } + + /* private 把每一行 Log 解析轉換成陣列資料 */ + function _AnalysisLogs($line){ + $tline = array(); + list($tline['no'], $tline['resto'], $tline['md5chksum'], $tline['category'], $tline['tim'], $tline['ext'], $tline['imgw'], $tline['imgh'], $tline['imgsize'], $tline['filename'], $tline['tw'], $tline['th'], $tline['pwd'], $tline['now'], $tline['name'], $tline['email'], $tline['sub'], $tline['com'], $tline['host'], $tline['status']) = explode(',', $line); + return array_reverse($tline); // list()是由右至左代入的 + } + + /* private 將回文放進陣列 */ + function _includeReplies($posts){ + $torder_flip = array_flip($this->torder); + foreach($posts as $post){ + if(array_key_exists($post, $torder_flip)){ // 討論串首篇 + $posts = array_merge($posts, $this->trees[$post]); + } + } + return array_merge(array(), array_unique($posts)); // 去除重複值 + } + + /* private 取代 , 成為 , 避免衝突 */ + function _replaceComma($txt){ + return str_replace(',', ',', $txt); + } + + /* private 由編號取出資料分析成陣列 */ + function _ArrangeArrayStructure($line){ + $line = (array)$line; // 全部視為Arrays + $posts = array(); + foreach($line as $i){ + if(!isset($this->LUT[$i])) continue; + if(!is_array($this->logs[$this->LUT[$i]])){ // 進行分析轉換 + $line = $this->logs[$this->LUT[$i]]; if($line=='') continue; + $this->logs[$this->LUT[$i]] = $this->_AnalysisLogs($line); + } + $posts[] = $this->logs[$this->LUT[$i]]; + } + return $posts; + } + + /* PIO模組版本 */ + function pioVersion(){ + return '0.6 (v20100404)'; + } + + /* 處理連線字串/連接 */ + function dbConnect($connStr){ + if(preg_match('/^logflockp:\/\/(.*)\:(.*)\/$/i', $connStr, $linkinfos)){ + $this->logfile = $this->ENV['BOARD'].'/'.$linkinfos[1]; // 投稿文字記錄檔檔名 + $this->treefile = $this->ENV['BOARD'].'/'.$linkinfos[2]; // 樹狀結構記錄檔檔名 + $this->porderfile = $this->ENV['LUTCACHE']; // LUT索引查找表暫存檔案 + } + } + + /* 初始化 */ + function dbInit(){ + $chkfile = array($this->logfile, $this->treefile, $this->porderfile); + // 自動建置 + foreach($chkfile as $value){ + if(!is_file($value)){ // 檔案不存在 + $fp = fopen($value, 'w'); + stream_set_write_buffer($fp, 0); + if($value==$this->logfile) fwrite($fp, '0,0,,,0,,0,0,,,0,0,,08/11/08(土) 10:24:04,【スパーキー(④ ^ヮ^)】,,'.$this->ENV['NOTITLE'].','.$this->ENV['NOCOMMENT'].',,,'); // PIO Structure V4 + if($value==$this->treefile) fwrite($fp, '1'); + if($value==$this->porderfile) fwrite($fp, '1'); + fclose($fp); + unset($fp); + @chmod($value, 0666); + } + } + return true; + } + + /* 準備/讀入 */ + function dbPrepare($reload=false, $transaction=true){ + if($this->prepared && !$reload) return true; + if($reload && $this->prepared) $this->porder = $this->torder = $this->LUT = $this->logs = $this->trees = array(); + //if($this->_memcacheGet()){ $this->prepared = 1; return true; } // 如果 memcache 有快取則直接使用 + + $this->logs = file($this->logfile); // Log每行原始資料 + if(!file_exists($this->porderfile)){ // LUT不在,重生成 + $lut = ''; + foreach($this->logs as $line){ + if(!isset($line)) continue; + $tmp = explode(',', $line); $lut .= $tmp[0]."\r\n"; + } + $this->_lock($this->porderfile); + $fp = fopen($this->porderfile, 'w'); // LUT + stream_set_write_buffer($fp, 0); +// flock($fp, LOCK_EX); // 鎖定檔案 + fwrite($fp, $lut); +// flock($fp, LOCK_UN); // 解鎖 + fclose($fp); + $this->_unlock($this->porderfile); + } + $this->porder = array_map('rtrim', file($this->porderfile)); // 文章編號陣列 + $this->LUT = array_flip($this->porder); // LUT索引查找表 + + $tree = array_map('rtrim', file($this->treefile)); + foreach($tree as $treeline){ // 解析樹狀結構製成索引 + if($treeline=='') continue; + $tline = explode(',', $treeline); + $this->torder[] = $tline[0]; // 討論串首篇編號陣列 + $this->trees[$tline[0]] = $tline; // 特定編號討論串完整結構陣列 + } + //$this->_memcacheSet(); // 把目前資料設定到 memcached 內 + $this->prepared = 1; + } + + /* 提交/儲存 */ + function dbCommit(){ + if(!$this->prepared) return false; + + $log = $tree = $lut = ''; + $this->logs = array_merge(array(), $this->logs); // 更新logs鍵值 + $this->torder = array_merge(array(), $this->torder); // 更新torder鍵值 + $this->porder = $this->LUT = array(); // 重新生成索引 + + foreach($this->logs as $line){ + if(!isset($line)) continue; + if(is_array($line)){ // 已被分析過 + $log .= implode(',', $line).",\r\n"; + $lut .= ($this->porder[] = $line['no'])."\r\n"; + }else{ // 尚未分析過 + $log .= $line; + $tmp = explode(',', $line); $lut .= ($this->porder[] = $tmp[0])."\r\n"; + } + } + $this->LUT = array_flip($this->porder); + $tcount = count($this->trees); + for($tline = 0; $tline < $tcount; $tline++){ + $tree .= $this->isThread($this->torder[$tline]) ? implode(',', $this->trees[$this->torder[$tline]])."\r\n" : ''; + } + //$this->_memcacheSet(false); // 更新快取 (不需要再分析) + + $this->_lock($this->logfile); + $fp = fopen($this->logfile, 'w'); // Log + stream_set_write_buffer($fp, 0); +// flock($fp, LOCK_EX); // 鎖定檔案 + fwrite($fp, $log); +// flock($fp, LOCK_UN); // 解鎖 + fclose($fp); + $this->_unlock($this->logfile); + + $this->_lock($this->treefile); + $fp = fopen($this->treefile, 'w'); // tree + stream_set_write_buffer($fp, 0); +// flock($fp, LOCK_EX); // 鎖定檔案 + fwrite($fp, $tree); +// flock($fp, LOCK_UN); // 解鎖 + fclose($fp); + $this->_unlock($this->treefile); + + $this->_lock($this->porderfile); + $fp = fopen($this->porderfile, 'w'); // LUT + stream_set_write_buffer($fp, 0); +// flock($fp, LOCK_EX); // 鎖定檔案 + fwrite($fp, $lut); +// flock($fp, LOCK_UN); // 解鎖 + fclose($fp); + $this->_unlock($this->porderfile); + } + + /* 資料表維護 */ + function dbMaintanence($action,$doit=false){ + switch($action) { + case 'export': + if($doit){ + $this->dbPrepare(false); + $gp = gzopen('piodata.log.gz', 'w9'); + gzwrite($gp, $this->dbExport()); + gzclose($gp); + return '下載 piodata.log.gz 中介檔案'; + }else return true; // 支援匯出資料 + break; + case 'optimize': + case 'check': + case 'repair': + default: return false; // 不支援 + } + } + + /* 匯入資料來源 */ + function dbImport($data){ + $arrData = explode("\r\n", $data); + $arrData_cnt = count($arrData) - 1; // 最後一個是空的 + $arrTree = array(); + $tree = $logs = $lut = ''; + for($i = 0; $i < $arrData_cnt; $i++){ + $line = explode(',', $arrData[$i], 4); // 切成四段 + $logs .= $line[0].','.$line[1].','.$line[3]."\r\n"; // 重建討論結構 + $lut .= $line[0]."\r\n"; // 重建 LUT 查找表結構 + if($line[1]==0){ // 首篇 + if(!isset($arrTree[$line[0]])) $arrTree[$line[0]] = array($line[0]); // 僅自身一篇 + else array_unshift($arrTree[$line[0]], $line[0]); + continue; + } + if(!isset($arrTree[$line[1]])) $arrTree[$line[1]] = array(); + array_unshift($arrTree[$line[1]], $line[0]); + } + foreach($arrTree as $t) $tree .= implode(',', $t)."\r\n"; // 重建樹狀結構 + $chkfile = array($this->logfile, $this->treefile, $this->porderfile); + foreach($chkfile as $value){ + $fp = fopen($value, 'w'); + stream_set_write_buffer($fp, 0); + if($value==$this->logfile) fwrite($fp, $logs); + if($value==$this->treefile) fwrite($fp, $tree); + if($value==$this->porderfile) fwrite($fp, $lut); + fclose($fp); + unset($fp); + @chmod($value, 0666); + } + return true; + } + + /* 匯出資料來源 */ + function dbExport(){ + if(!$this->prepared) $this->dbPrepare(); + $f = file($this->logfile); + $data = ''; + foreach($f as $line){ + $line = explode(',', $line, 3); // 分成三段 (最後一段特別長) + if($line[1]==0 && isset($this->trees[$line[0]])){ + $lastno = array_pop($this->trees[$line[0]]); + $line2 = $this->fetchPosts($lastno); + $root = gmdate('Y-m-d H:i:s', substr($line2[0]['tim'], 0, 10)); // UTC 時間 + unset($this->trees[$line[0]]); // 刪除表示已取過 + }else{ + $root = '0'; + } + $data .= $line[0].','.$line[1].','.$root.','.$line[2]; + } + return $data; + } + + /* 文章數目 */ + function postCount($resno=0){ + if(!$this->prepared) $this->dbPrepare(); + + return $resno ? ($this->isThread($resno) ? count(@$this->trees[$resno]) : 0) : count($this->porder); + } + + /* 討論串數目 */ + function threadCount(){ + if(!$this->prepared) $this->dbPrepare(); + + return count($this->torder); + } + + /* 取得最後的文章編號 */ + function getLastPostNo($state){ + if(!$this->prepared) $this->dbPrepare(); + + switch($state){ + case 'beforeCommit': + case 'afterCommit': + return reset($this->porder); + } + } + + /* 輸出文章清單 */ + function fetchPostList($resno=0, $start=0, $amount=0){ + if(!$this->prepared) $this->dbPrepare(); + + $plist = array(); + if($resno){ + if($this->isThread($resno)){ + if($start && $amount){ + $plist = array_slice($this->trees[$resno], $start, $amount); + array_unshift($plist, $resno); + } + if(!$start && $amount) $plist = array_slice($this->trees[$resno], 0, $amount); + if(!$start && !$amount) $plist = $this->trees[$resno]; + } + }else{ + $plist = $amount ? array_slice($this->porder, $start, $amount) : $this->porder; + } + return $plist; + } + + /* 輸出討論串清單 */ + function fetchThreadList($start=0, $amount=0, $isDESC=false){ + if(!$this->prepared) $this->dbPrepare(); + $tmp_array = $this->torder; + if($isDESC) rsort($tmp_array); // 按編號遞減排序 (預設為按最後更新時間排序) + return $amount ? array_slice($tmp_array, $start, $amount) : $tmp_array; + } + + /* 輸出文章 */ + function fetchPosts($postlist){ + if(!$this->prepared) $this->dbPrepare(); + + return $this->_ArrangeArrayStructure($postlist); // 輸出陣列結構 + } + + /* 刪除舊附件 (輸出附件清單) */ + function delOldAttachments($total_size, $storage_max, $warnOnly=true){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + + $rpord = $this->porder; sort($rpord); // 由舊排到新 (小->大) + $arr_warn = $arr_kill = array(); + foreach($rpord as $post){ + $logsarray = $this->_ArrangeArrayStructure($post); // 分析資料為陣列 + if($FileIO->imageExists($logsarray[0]['tim'].$logsarray[0]['ext'])){ $total_size -= $FileIO->getImageFilesize($logsarray[0]['tim'].$logsarray[0]['ext']) / 1024; $arr_kill[] = $post; $arr_warn[$post] = 1; } // 標記刪除 + if($FileIO->imageExists($logsarray[0]['tim'].'s.jpg')) $total_size -= $FileIO->getImageFilesize($logsarray[0]['tim'].'s.jpg') / 1024; + if($total_size < $storage_max) break; + } + return $warnOnly ? $arr_warn : $this->removeAttachments($arr_kill); + } + + /* 刪除文章 */ + function removePosts($posts){ + if(!$this->prepared) $this->dbPrepare(); + if(count($posts)==0) return array(); + + $posts = $this->_includeReplies($posts); // 包含所有回文 + $filelist = $this->removeAttachments($posts); // 欲刪除附件 + $torder_flip = array_flip($this->torder); + $pcount = count($posts); + $logsarray = $this->_ArrangeArrayStructure($posts); // 分析資料為陣列 + for($p = 0; $p < $pcount; $p++){ + if(!isset($logsarray[$p])) continue; + if($logsarray[$p]['resto']==0){ // 討論串頭 + unset($this->trees[$logsarray[$p]['no']]); // 刪除樹狀記錄 + if(array_key_exists($logsarray[$p]['no'], $torder_flip)) unset($this->torder[$torder_flip[$logsarray[$p]['no']]]); // 從討論串首篇陣列中移除 + }else{ + // 從樹狀檔刪除 + if(array_key_exists($logsarray[$p]['resto'], $this->trees)){ + $tr_flip = array_flip($this->trees[$logsarray[$p]['resto']]); + unset($this->trees[$logsarray[$p]['resto']][$tr_flip[$posts[$p]]]); + } + } + unset($this->logs[$this->LUT[$logsarray[$p]['no']]]); + if(array_key_exists($logsarray[$p]['no'], $this->LUT)) unset($this->porder[$this->LUT[$logsarray[$p]['no']]]); // 從討論串編號陣列中移除 + } + $this->LUT = array_flip($this->porder); + return $filelist; + } + + /* 刪除附件 (輸出附件清單) */ + function removeAttachments($posts){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + if(count($posts)==0) return array(); + + $files = array(); + $logsarray = $this->_ArrangeArrayStructure($posts); // 分析資料為陣列 + $lcount = count($logsarray); + for($i = 0; $i < $lcount; $i++){ + if($logsarray[$i]['ext']){ + if($FileIO->imageExists($logsarray[$i]['tim'].$logsarray[$i]['ext'])) $files[] = $logsarray[$i]['tim'].$logsarray[$i]['ext']; + if($FileIO->imageExists($logsarray[$i]['tim'].'s.jpg')) $files[] = $logsarray[$i]['tim'].'s.jpg'; + } + } + return $files; + } + + /* 新增文章/討論串 */ + function addPost($no, $resto, $md5chksum, $category, $tim, $ext, $imgw, $imgh, $imgsize, $filename, $tw, $th, $pwd, $now, $name, $email, $sub, $com, $host, $age=false, $status='') { + if(!$this->prepared) $this->dbPrepare(); + + $tline = array($no, $resto, $md5chksum, $category, $tim, $ext, $imgw, $imgh, $imgsize, $filename, $tw, $th, $pwd, $now, $name, $email, $sub, $com, $host, $status); + $tline = array_map(array($this, '_replaceComma'), $tline); // 將資料內的 , 轉換 (Only Log needed) + array_unshift($this->logs, implode(',', $tline).",\r\n"); // 更新logs + array_unshift($this->porder, $no); // 更新porder + $this->LUT = array_flip($this->porder); // 更新LUT + + // 更新torder及trees + if($resto){ + $this->trees[$resto][] = $no; + if($age){ + $torder_flip = array_flip($this->torder); + unset($this->torder[$torder_flip[$resto]]); // 先刪除舊有位置 + array_unshift($this->torder, $resto); // 再移到頂端 + } + }else{ + $this->trees[$no][0] = $no; + array_unshift($this->torder, $no); + } + } + + /* 檢查是否連續投稿 */ + function isSuccessivePost($lcount, $com, $timestamp, $pass, $passcookie, $host, $isupload){ + if(!$this->prepared) $this->dbPrepare(); + + $pcount = $this->postCount(); + $lcount = ($pcount > $lcount) ? $lcount : $pcount; + for($i = 0; $i < $lcount; $i++){ + $logsarray = $this->_ArrangeArrayStructure($this->porder[$i]); // 分析資料為陣列 + list($lcom, $lhost, $lpwd, $ltime) = array($logsarray[0]['com'], $logsarray[0]['host'], $logsarray[0]['pwd'], substr($logsarray[0]['tim'],0,-3)); + if($host==$lhost || $pass==$lpwd || $passcookie==$lpwd) $pchk = 1; + else $pchk = 0; + if($this->ENV['PERIOD.POST'] && $pchk){ // 密碼比對符合且開啟連續投稿時間限制 + if($timestamp - $ltime < $this->ENV['PERIOD.POST']) return true; // 投稿時間相距太短 + if($timestamp - $ltime < $this->ENV['PERIOD.IMAGEPOST'] && $isupload) return true; // 附加圖檔的投稿時間相距太短 + if($com == $lcom && !$isupload) return true; // 內文一樣 + } + } + return false; + } + + /* 檢查是否重複貼圖 */ + function isDuplicateAttachment($lcount, $md5hash){ + global $FileIO; + + $pcount = $this->postCount(); + $lcount = ($pcount > $lcount) ? $lcount : $pcount; + for($i = 0; $i < $lcount; $i++){ + $logsarray = $this->_ArrangeArrayStructure($this->porder[$i]); // 分析資料為陣列 + if(!$logsarray[0]['md5chksum']) continue; // 無附加圖檔 + if($logsarray[0]['md5chksum']==$md5hash){ + if($FileIO->imageExists($logsarray[0]['tim'].$logsarray[0]['ext'])) return true; // 存在MD5雜湊相同的檔案 + } + } + return false; + } + + /* 有此討論串? */ + function isThread($no){ + if(!$this->prepared) $this->dbPrepare(); + + return isset($this->trees[$no]); + } + + /* 搜尋文章 */ + function searchPost($keyword,$field,$method){ + if(!$this->prepared) $this->dbPrepare(); + + $foundPosts = array(); + $keyword_cnt = count($keyword); + $pcount = $this->postCount(); + for($i = 0; $i < $pcount; $i++){ + $logsarray = $this->_ArrangeArrayStructure($this->porder[$i]); // 分析資料為陣列 + $found = 0; + foreach($keyword as $k){ + if(strpos($logsarray[0][$field], $k)!==FALSE) $found++; + if($method=="OR" && $found) break; + } + if($method=="AND" && $found==$keyword_cnt) array_push($foundPosts, $logsarray[0]); // 全部都有找到 (AND交集搜尋) + elseif($method=="OR" && $found) array_push($foundPosts, $logsarray[0]); // 有找到 (OR聯集搜尋) + } + return $foundPosts; + } + + /* 搜尋類別標籤 */ + function searchCategory($category){ + if(!$this->prepared) $this->dbPrepare(); + + $category = strtolower($category); + $foundPosts = array(); + $pcount = $this->postCount(); + for($i = 0; $i < $pcount; $i++){ + $logsarray = $this->_ArrangeArrayStructure($this->porder[$i]); // 分析資料為陣列 + if(!($ary_category = $logsarray[0]['category'])) continue; + if(strpos(strtolower($ary_category), ','.$category.',')!==false) array_push($foundPosts, $logsarray[0]['no']); // 找到標籤,加入名單 + } + return $foundPosts; + } + + /* 取得文章屬性 */ + function getPostStatus($status){ + return new FlagHelper($status); // 回傳 FlagHelper 物件 + } + + /* 更新文章 */ + function updatePost($no, $newValues){ + if(!$this->prepared) $this->dbPrepare(); + + $chk = array('resto', 'md5chksum', 'category', 'tim', 'ext', 'imgw', 'imgh', 'imgsize', 'filename', 'tw', 'th', 'pwd', 'now', 'name', 'email', 'sub', 'com', 'host', 'status'); + + $this->_ArrangeArrayStructure($no); // 將資料變成陣列 + foreach($chk as $c) + if(isset($newValues[$c])) + $this->logs[$this->LUT[$no]][$c] = $newValues[$c]; // 修改數值 + } + + /* 設定文章屬性 */ + function setPostStatus($no, $newStatus){ + $this->updatePost($no, array('status' => $newStatus)); + } + + /* 檔案鎖定/解鎖處理 */ + function _lock($lock, $tries=10) { + ignore_user_abort(true); + $lock0 = ".{$lock}0"; + $lock1 = ".{$lock}1"; + for ($i=0; $i<$tries; $i++) { + if (!is_file($lock0)) { + touch($lock0); + if (!is_file($lock1)) { + touch($lock1); + return TRUE; + } + } + usleep(100); + } + return FALSE; + } + + // Unlock a file. + function _unlock($lock) { + unlink(".{$lock}1"); + unlink(".{$lock}0"); + ignore_user_abort(false); + } +} +?> \ No newline at end of file diff --git a/lib/pio/pio.mysql.php b/lib/pio/pio.mysql.php new file mode 100755 index 0000000..4b0243f --- /dev/null +++ b/lib/pio/pio.mysql.php @@ -0,0 +1,494 @@ +ENV = $ENV; + $this->prepared = 0; + if($connstr) $this->dbConnect($connstr); + } + + /* private 攔截SQL錯誤 */ + function _error_handler($errarray, $query=''){ + $err = 'Pixmicat! SQL Error: '.$errarray[0].' on line '.$errarray[1]; + error_log($err."\n".mysql_errno().': '.mysql_error()."\n".$query."\n\n", 3, 'error.log'); + trigger_error($err, E_USER_ERROR); + exit(); + } + + /* private 使用SQL字串和MySQL伺服器要求 */ + function _mysql_call($query, $errarray=false){ + $resource = mysql_query($query); + if(is_array($errarray) && $resource===false) $this->_error_handler($errarray, $query); + else return $resource; + } + + /* private 由資源輸出陣列 */ + function _ArrangeArrayStructure($line){ + $posts = array(); + while($row = mysql_fetch_array($line, MYSQL_ASSOC)) $posts[] = $row; + mysql_free_result($line); + return $posts; + } + + /* PIO模組版本 */ + function pioVersion(){ + return '0.6 (v20100404)'; + } + + /* 處理連線字串/連接 */ + function dbConnect($connStr){ + // 格式: mysql://帳號:密碼@伺服器位置:埠號(可省略)/資料庫/資料表/ + // 示例: mysql://yotsubanome:pass@localhost/yotsubanome/img_loog/ + if(preg_match('/^mysql:\/\/(.*)\:(.*)\@(.*(?:\:[0-9]+)?)\/(.*)\/(.*)\/$/i', $connStr, $linkinfos)){ + $this->username = $linkinfos[1]; // 登入帳號 + $this->password = $linkinfos[2]; // 登入密碼 + $this->server = $linkinfos[3]; // 登入伺服器 (含埠號) + $this->dbname = $linkinfos[4]; // 資料庫名稱 + $this->tablename = $linkinfos[5]; // 資料表名稱 + } + } + + /* 初始化 */ + function dbInit($isAddInitData=true){ + $this->dbPrepare(); + if(mysql_num_rows(mysql_query("SHOW TABLES LIKE '".$this->tablename."'"))!=1){ // 資料表不存在 + $result = "CREATE TABLE ".$this->tablename." (primary key(no), + index (resto),index (root),index (time), + no int(1) not null auto_increment, + resto int(1) not null, + root timestamp(14) null DEFAULT 0, + time int(1) not null, + md5chksum varchar(32) not null, + category varchar(255) not null, + tim bigint(1) not null, + ext varchar(4) not null, + imgw smallint(1) not null, + imgh smallint(1) not null, + imgsize varchar(10) not null, + filename varchar(255) not null, + tw smallint(1) not null, + th smallint(1) not null, + pwd varchar(8) not null, + now varchar(255) not null, + name varchar(255) not null, + email varchar(255) not null, + sub varchar(255) not null, + com text not null, + host varchar(255) not null, + status varchar(255) not null) + TYPE = MYISAM + COMMENT = 'PIO Structure V4'"; + $result2 = @mysql_query("SHOW CHARACTER SET like 'utf8'"); // 是否支援UTF-8 (MySQL 4.1.1開始支援) + if($result2 && mysql_num_rows($result2)){ + $result .= ' CHARACTER SET utf8 COLLATE utf8_general_ci'; // 資料表追加UTF-8編碼 + mysql_free_result($result2); + } + mysql_query($result); // 正式新增資料表 + // 追加一筆新資料 + if($isAddInitData) $this->addPost(0, 0, '', '', 0, '', 0, 0, '', '', 0, 0, '', '08/11/08(土) 10:24:04', '【スパーキー(④ ^ヮ^)】', '', $this->ENV['NOTITLE'], $this->ENV['NOCOMMENT'], ''); // 追加一筆新資料料 + $this->dbCommit(); + } + } + + /* 準備/讀入 */ + function dbPrepare($transaction=false){ + if($this->prepared) return true; + + if(@!$this->con = mysql_pconnect($this->server, $this->username, $this->password)) $this->_error_handler(array('Open database failed', __LINE__)); + @mysql_select_db($this->dbname, $this->con); + @mysql_query("SET NAMES 'utf8'"); // MySQL資料以UTF-8模式傳送 + $this->useTransaction = $transaction; + if($transaction) @mysql_query('START TRANSACTION'); // 啟動交易性能模式 + + $this->prepared = 1; + } + + /* 提交/儲存 */ + function dbCommit(){ + if(!$this->prepared) return false; + if($this->useTransaction) @mysql_query('COMMIT'); // 交易性能模式提交 + } + + /* 資料表維護 */ + function dbMaintanence($action, $doit=false){ + switch($action) { + case 'optimize': + if($doit){ + $this->dbPrepare(false); + if($this->_mysql_call('OPTIMIZE TABLES '.$this->tablename)) return true; + else return false; + }else return true; // 支援最佳化資料表 + break; + case 'check': + if($doit){ + $this->dbPrepare(false); + if($rs=$this->_mysql_call('CHECK TABLE '.$this->tablename)){ + mysql_data_seek($rs, mysql_num_rows($rs)-1); + $row = mysql_fetch_assoc($rs); + return 'Table '.$row['Table'].': '.$row['Msg_type'].' = '.$row['Msg_text']; + } + else return false; + }else return true; // 支援檢查資料表 + break; + case 'repair': + if($doit){ + $this->dbPrepare(false); + if($rs=$this->_mysql_call('REPAIR TABLE '.$this->tablename)){ + mysql_data_seek($rs, mysql_num_rows($rs)-1); + $row = mysql_fetch_assoc($rs); + return 'Table '.$row['Table'].': '.$row['Msg_type'].' = '.$row['Msg_text']; + } + else return false; + }else return true; // 支援修復資料表 + break; + case 'export': + if($doit){ + $this->dbPrepare(false); + $gp = gzopen('piodata.log.gz', 'w9'); + gzwrite($gp, $this->dbExport()); + gzclose($gp); + return '下載 piodata.log.gz 中介檔案'; + }else return true; // 支援匯出資料 + break; + default: return false; // 不支援 + } + } + + /* 匯入資料來源 */ + function dbImport($data){ + $this->dbInit(false); // 僅新增結構不新增資料 + $data = explode("\r\n", $data); + $data_count = count($data) - 1; + $replaceComma = create_function('$txt', 'return str_replace(",", ",", $txt);'); + for($i = 0; $i < $data_count; $i++){ + $line = array_map($replaceComma, explode(',', $data[$i])); // 取代 , 為 , + $SQL = 'INSERT INTO '.$this->tablename.' (no,resto,root,time,md5chksum,category,tim,ext,imgw,imgh,imgsize,filename,tw,th,pwd,now,name,email,sub,com,host,status) VALUES ('. + $line[0].','. + $line[1].',\''. + $line[2].'\','. + substr($line[5], 0, 10).',\''. + mysql_real_escape_string($line[3], $this->con).'\',\''. + mysql_real_escape_string($line[4], $this->con).'\','. + $line[5].',\''.mysql_real_escape_string($line[6], $this->con).'\','. + $line[7].','.$line[8].',\''.mysql_real_escape_string($line[9], $this->con).','.mysql_real_escape_string($line[10], $this->con).'\','.$line[11].','.$line[12].',\''. + mysql_real_escape_string($line[13], $this->con).'\',\''. + mysql_real_escape_string($line[14], $this->con).'\',\''. + mysql_real_escape_string($line[15], $this->con).'\',\''. + mysql_real_escape_string($line[16], $this->con).'\',\''. + mysql_real_escape_string($line[17], $this->con).'\',\''. + mysql_real_escape_string($line[18], $this->con).'\',\''. + mysql_real_escape_string($line[19], $this->con).'\',\''. + mysql_real_escape_string($line[20], $this->con).'\')'; + $this->_mysql_call($SQL, array('Import a new post failed', __LINE__)); + } + $this->dbCommit(); // 送交 + return true; + } + + /* 匯出資料來源 */ + function dbExport(){ + if(!$this->prepared) $this->dbPrepare(); + $line = $this->_mysql_call('SELECT no,resto,root,md5chksum,category,tim,ext,imgw,imgh,imgsize,filename,tw,th,pwd,now,name,email,sub,com,host,status FROM '.$this->tablename.' ORDER BY no DESC', + array('Export posts failed', __LINE__)); + $data = ''; + $replaceComma = create_function('$txt', 'return str_replace(",", ",", $txt);'); + while($row = mysql_fetch_array($line, MYSQL_ASSOC)){ + $row = array_map($replaceComma, $row); // 取代 , 為 , + if($row['root']=='0000-00-00 00:00:00') $row['root'] = '0'; // 初始值設為 0 + $data .= rtrim(implode(',', $row)).",\r\n"; + } + mysql_free_result($line); + return $data; + } + + /* 文章數目 */ + function postCount($resno=0){ + if(!$this->prepared) $this->dbPrepare(); + + if($resno){ // 回傳討論串總文章數目 + $line = $this->_mysql_call('SELECT COUNT(no) FROM '.$this->tablename.' WHERE resto = '.intval($resno), + array('Fetch count in thread failed', __LINE__)); + $countline = mysql_result($line, 0) + 1; + }else{ // 回傳總文章數目 + $line = $this->_mysql_call('SELECT COUNT(no) FROM '.$this->tablename, array('Fetch count of posts failed', __LINE__)); + $countline = mysql_result($line, 0); + } + mysql_free_result($line); + return $countline; + } + + /* 討論串數目 */ + function threadCount(){ + if(!$this->prepared) $this->dbPrepare(); + + $tree = $this->_mysql_call('SELECT COUNT(no) FROM '.$this->tablename.' WHERE resto = 0', + array('Fetch count of threads failed', __LINE__)); + $counttree = mysql_result($tree, 0); mysql_free_result($tree); // 計算討論串目前資料筆數 + return $counttree; + } + + /* 取得最後文章編號 */ + function getLastPostNo($state){ + if(!$this->prepared) $this->dbPrepare(); + + if($state=='afterCommit'){ // 送出後的最後文章編號 + $tree = $this->_mysql_call('SELECT MAX(no) FROM '.$this->tablename, array('Get the last No. failed', __LINE__)); + $lastno = mysql_result($tree, 0); mysql_free_result($tree); + return $lastno; + }else return 0; // 其他狀態沒用 + } + + /* 輸出文章清單 */ + function fetchPostList($resno=0, $start=0, $amount=0){ + if(!$this->prepared) $this->dbPrepare(); + + $line = array(); + $resno = intval($resno); + if($resno){ // 輸出討論串的結構 (含自己, EX : 1,2,3,4,5,6) + $tmpSQL = 'SELECT no FROM '.$this->tablename.' WHERE no = '.$resno.' OR resto = '.$resno.' ORDER BY no'; + }else{ // 輸出所有文章編號,新的在前 + $tmpSQL = 'SELECT no FROM '.$this->tablename.' ORDER BY no DESC'; + $start = intval($start); $amount = intval($amount); + if($amount) $tmpSQL .= " LIMIT {$start}, {$amount}"; // 有指定數量才用 LIMIT + } + $tree = $this->_mysql_call($tmpSQL, array('Fetch post list failed', __LINE__)); + while($rows = mysql_fetch_row($tree)) $line[] = $rows[0]; // 迴圈 + mysql_free_result($tree); + return $line; + } + + /* 輸出討論串清單 */ + function fetchThreadList($start=0, $amount=0, $isDESC=false){ + if(!$this->prepared) $this->dbPrepare(); + + $start = intval($start); $amount = intval($amount); + $treeline = array(); + $tmpSQL = 'SELECT no FROM '.$this->tablename.' WHERE resto = 0 ORDER BY '.($isDESC ? 'no' : 'root').' DESC'; + if($amount) $tmpSQL .= " LIMIT {$start}, {$amount}"; // 有指定數量才用 LIMIT + $tree = $this->_mysql_call($tmpSQL, array('Fetch thread list failed', __LINE__)); + while($rows = mysql_fetch_row($tree)) $treeline[] = $rows[0]; // 迴圈 + mysql_free_result($tree); + return $treeline; + } + + /* 輸出文章 */ + function fetchPosts($postlist){ + if(!$this->prepared) $this->dbPrepare(); + + if(is_array($postlist)){ // 取多串 + $pno = implode(', ', $postlist); // ID字串 + $tmpSQL = 'SELECT * FROM '.$this->tablename.' WHERE no IN ('.$pno.') ORDER BY no'; + if(count($postlist) > 1){ if($postlist[0] > $postlist[1]) $tmpSQL .= ' DESC'; } // 由大排到小 + }else $tmpSQL = 'SELECT * FROM '.$this->tablename.' WHERE no = '.intval($postlist); // 取單串 + $line = $this->_mysql_call($tmpSQL, array('Fetch the post content failed', __LINE__)); + return $this->_ArrangeArrayStructure($line); // 輸出陣列結構 + } + + /* 刪除舊附件 (輸出附件清單) */ + function delOldAttachments($total_size, $storage_max, $warnOnly=true){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + + $arr_warn = $arr_kill = array(); // 警告 / 即將被刪除標記陣列 + $result = $this->_mysql_call('SELECT no,ext,tim FROM '.$this->tablename.' WHERE ext <> \'\' ORDER BY no', + array('Get old posts failed', __LINE__)); + while(list($dno, $dext, $dtim) = mysql_fetch_row($result)){ // 個別跑舊文迴圈 + $dfile = $dtim.$dext; // 附加檔案名稱 + $dthumb = $dtim.'s.jpg'; // 預覽檔案名稱 + if($FileIO->imageExists($dfile)){ $total_size -= $FileIO->getImageFilesize($dfile) / 1024; $arr_kill[] = $dno; $arr_warn[$dno] = 1; } // 標記刪除 + if($FileIO->imageExists($dthumb)) $total_size -= $FileIO->getImageFilesize($dthumb) / 1024; + if($total_size < $storage_max) break; + } + mysql_free_result($result); + return $warnOnly ? $arr_warn : $this->removeAttachments($arr_kill); + } + + /* 刪除文章 */ + function removePosts($posts){ + if(!$this->prepared) $this->dbPrepare(); + if(count($posts)==0) return array(); + + $files = $this->removeAttachments($posts, true); // 先遞迴取得刪除文章及其回應附件清單 + $pno = implode(', ', $posts); // ID字串 + $this->_mysql_call('DELETE FROM '.$this->tablename.' WHERE no IN ('.$pno.') OR resto IN('.$pno.')', + array('Delete old posts and replies failed', __LINE__)); // 刪掉文章 + return $files; + } + + /* 刪除附件 (輸出附件清單) */ + function removeAttachments($posts, $recursion=false){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + if(count($posts)==0) return array(); + + $files = array(); + $pno = implode(', ', $posts); // ID字串 + if($recursion) $tmpSQL = 'SELECT ext,tim FROM '.$this->tablename.' WHERE (no IN ('.$pno.') OR resto IN('.$pno.")) AND ext <> ''"; // 遞迴取出 (含回應附件) + else $tmpSQL = 'SELECT ext,tim FROM '.$this->tablename.' WHERE no IN ('.$pno.") AND ext <> ''"; // 只有指定的編號 + + $result = $this->_mysql_call($tmpSQL, array('Get attachments of the post failed', __LINE__)); + while(list($dext, $dtim) = mysql_fetch_row($result)){ // 個別跑迴圈 + $dfile = $dtim.$dext; // 附加檔案名稱 + $dthumb = $dtim.'s.jpg'; // 預覽檔案名稱 + if($FileIO->imageExists($dfile)) $files[] = $dfile; + if($FileIO->imageExists($dthumb)) $files[] = $dthumb; + } + mysql_free_result($result); + return $files; + } + + /* 新增文章/討論串 */ + function addPost($no, $resto, $md5chksum, $category, $tim, $ext, $imgw, $imgh, $imgsize, $filename, $tw, $th, $pwd, $now, $name, $email, $sub, $com, $host, $age=false, $status='') { + if(!$this->prepared) $this->dbPrepare(); + $time = (int)substr($tim, 0, -3); // 13位數的數字串是檔名,10位數的才是時間數值 + $updatetime = gmdate('Y-m-d H:i:s'); // 更動時間 (UTC) + $resto = intval($resto); + if($resto){ // 新增回應 + $root = '0'; + if($age){ // 推文 + $this->_mysql_call('UPDATE '.$this->tablename.' SET root = "'.$updatetime.'" WHERE no = '.$resto, + array('Push the post failed', __LINE__)); // 將被回應的文章往上移動 + } }else $root = $updatetime; // 新增討論串, 討論串最後被更新時間 + + if($no === 0){ // init post 0 + $query = 'INSERT INTO '.$this->tablename.' (no,resto,root,time,md5chksum,category,tim,ext,imgw,imgh,imgsize,tw,th,pwd,now,name,email,sub,com,host,status) VALUES ('. + -1,'. // 回應編號 + $resto.','. // 回應編號 + "'$root',". // 最後更新時間 + $time.','. // 發文時間數值 + "'$md5chksum',". // 附加檔案md5 + "'".mysql_real_escape_string($category, $this->con)."',". // 分類標籤 + "'$tim', '$ext',". // 附加檔名 + (int)$imgw.','.(int)$imgh.",'".$imgsize."','".$filename."',".(int)$tw.','.(int)$th.','. // 圖檔長寬及檔案大小;預覽圖長寬 + "'".mysql_real_escape_string($pwd, $this->con)."',". + "'$now',". // 時間(含ID)字串 + "'".mysql_real_escape_string($name, $this->con)."',". + "'".mysql_real_escape_string($email, $this->con)."',". + "'".mysql_real_escape_string($sub, $this->con)."',". + "'".mysql_real_escape_string($com, $this->con)."',". + "'".mysql_real_escape_string($host, $this->con)."', '".mysql_real_escape_string($status, $this->con)."')"; + }else{ + $query = 'INSERT INTO '.$this->tablename.' (resto,root,time,md5chksum,category,tim,ext,imgw,imgh,imgsize,tw,th,pwd,now,name,email,sub,com,host,status) VALUES ('. + $resto.','. // 回應編號 + "'$root',". // 最後更新時間 + $time.','. // 發文時間數值 + "'$md5chksum',". // 附加檔案md5 + "'".mysql_real_escape_string($category, $this->con)."',". // 分類標籤 + "'$tim', '$ext',". // 附加檔名 + (int)$imgw.','.(int)$imgh.",'".$imgsize."','".$filename."',".(int)$tw.','.(int)$th.','. // 圖檔長寬及檔案大小;預覽圖長寬 + "'".mysql_real_escape_string($pwd, $this->con)."',". + "'$now',". // 時間(含ID)字串 + "'".mysql_real_escape_string($name, $this->con)."',". + "'".mysql_real_escape_string($email, $this->con)."',". + "'".mysql_real_escape_string($sub, $this->con)."',". + "'".mysql_real_escape_string($com, $this->con)."',". + "'".mysql_real_escape_string($host, $this->con)."', '".mysql_real_escape_string($status, $this->con)."')"; + } + $this->_mysql_call($query, array('Insert a new post failed', __LINE__)); + } + + /* 檢查是否連續投稿 */ + function isSuccessivePost($lcount, $com, $timestamp, $pass, $passcookie, $host, $isupload){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + + if(!$this->ENV['PERIOD.POST']) return false; // 關閉連續投稿檢查 + $timestamp = intval($timestamp); + $tmpSQL = 'SELECT pwd,host FROM '.$this->tablename.' WHERE time > '.($timestamp - (int)$this->ENV['PERIOD.POST']); // 一般投稿時間檢查 + if($isupload) $tmpSQL .= ' OR time > '.($timestamp - (int)$this->ENV['PERIOD.IMAGEPOST']); // 附加圖檔的投稿時間檢查 (與下者兩者擇一) + else $tmpSQL .= ' OR md5(com) = "'.md5($com).'"'; // 內文一樣的檢查 (與上者兩者擇一) + + $result = $this->_mysql_call($tmpSQL, array('Get the post to check the succession failed', __LINE__)); + while(list($lpwd, $lhost) = mysql_fetch_row($result)){ + // 判斷為同一人發文且符合連續投稿條件 + if($host==$lhost || $pass==$lpwd || $passcookie==$lpwd) return true; + } + return false; + } + + /* 檢查是否重複貼圖 */ + function isDuplicateAttachment($lcount, $md5hash){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + + $result = $this->_mysql_call('SELECT tim,ext FROM '.$this->tablename." WHERE ext <> '' AND md5chksum = '$md5hash' ORDER BY no DESC", + array('Get the post to check the duplicate attachment failed', __LINE__)); + while(list($ltim, $lext) = mysql_fetch_row($result)){ + if($FileIO->imageExists($ltim.$lext)) return true; // 有相同檔案 + } + return false; + } + + /* 有此討論串? */ + function isThread($no){ + if(!$this->prepared) $this->dbPrepare(); + + $result = $this->_mysql_call('SELECT no FROM '.$this->tablename.' WHERE no = '.intval($no).' AND resto = 0'); + return mysql_fetch_array($result) ? true : false; + } + + /* 搜尋文章 */ + function searchPost($keyword, $field, $method){ + if(!$this->prepared) $this->dbPrepare(); + + $keyword_cnt = count($keyword); + $SearchQuery = 'SELECT * FROM '.$this->tablename." WHERE {$field} LIKE '%".mysql_real_escape_string($keyword[0], $this->con)."%'"; + if($keyword_cnt > 1){ + for($i = 1; $i < $keyword_cnt; $i++){ + $SearchQuery .= " {$method} {$field} LIKE '%".mysql_real_escape_string($keyword[$i], $this->con)."%'"; // 多重字串交集 / 聯集搜尋 + } + } + $SearchQuery .= ' ORDER BY no DESC'; // 按照號碼大小排序 + $line = $this->_mysql_call($SearchQuery, array('Search the post failed', __LINE__)); + return $this->_ArrangeArrayStructure($line); // 輸出陣列結構 + } + + /* 搜尋類別標籤 */ + function searchCategory($category){ + if(!$this->prepared) $this->dbPrepare(); + + $foundPosts = array(); + $SearchQuery = 'SELECT no FROM '.$this->tablename." WHERE lower(category) LIKE '%,".strtolower(mysql_real_escape_string($category, $this->con)).",%' ORDER BY no DESC"; + $line = $this->_mysql_call($SearchQuery, array('Search the category failed', __LINE__)); + while($rows = mysql_fetch_row($line)) $foundPosts[] = $rows[0]; + mysql_free_result($line); + return $foundPosts; + } + + /* 取得文章屬性 */ + function getPostStatus($status){ + return new FlagHelper($status); // 回傳 FlagHelper 物件 + } + + /* 更新文章 */ + function updatePost($no, $newValues){ + if(!$this->prepared) $this->dbPrepare(); + + $no = intval($no); + $chk = array('resto', 'md5chksum', 'category', 'tim', 'ext', 'imgw', 'imgh', 'imgsize', 'filename', 'tw', 'th', 'pwd', 'now', 'name', 'email', 'sub', 'com', 'host', 'status'); + foreach($chk as $c){ + if(isset($newValues[$c])){ + $this->_mysql_call('UPDATE '.$this->tablename." SET $c = '".mysql_real_escape_string($newValues[$c], $this->con)."', root = root WHERE no = ".$no, + array('Update the field of the post failed', __LINE__)); // 更新討論串屬性 + } + } + } + + /* 設定文章屬性 */ + function setPostStatus($no, $newStatus){ + $this->updatePost($no, array('status' => $newStatus)); + } +} +?> \ No newline at end of file diff --git a/lib/pio/pio.pgsql.php b/lib/pio/pio.pgsql.php new file mode 100755 index 0000000..26aca8d --- /dev/null +++ b/lib/pio/pio.pgsql.php @@ -0,0 +1,475 @@ +ENV = $ENV; + $this->prepared = 0; + if($connstr) $this->dbConnect($connstr); + } + + /* private 攔截SQL錯誤 */ + function _error_handler($errarray, $query=''){ + $err = 'Pixmicat! SQL Error: '.$errarray[0].' on line '.$errarray[1]; + //error_log($err."\n".pg_last_error($this->con)."\n".$query."\n\n", 3, 'error.log'); + trigger_error($err, E_USER_ERROR); + exit(); + } + + /* private 使用SQL字串和PostgreSQL伺服器要求 */ + function _pgsql_call($query, $errarray=false){ + $resource = pg_query($this->con, $query); + if(is_array($errarray) && $resource===false) $this->_error_handler($errarray, $query); + else return $resource; + } + + /* private 由資源輸出陣列 */ + function _ArrangeArrayStructure($line){ + $posts = array(); + while($row = pg_fetch_array($line, null, PGSQL_ASSOC)) $posts[] = $row; + pg_free_result($line); + return $posts; + } + + /* PIO模組版本 */ + function pioVersion(){ + return '0.6 (v20100404)'; + } + + /* 處理連線字串/連接 */ + function dbConnect($connStr){ + // 格式: pgsql://帳號:密碼@伺服器位置:埠號(可省略)/資料庫/資料表/ + // 示例: pgsql://yotsubanome:pass@localhost/yotsubanome/img_loog/ + if(preg_match('/^pgsql:\/\/(.*)\:(.*)\@([^\:]*)((\:)([0-9]+)){0,1}\/(.*)\/(.*)\/$/i', $connStr, $linkinfos)){ + $this->username = $linkinfos[1]; // 登入帳號 + $this->password = $linkinfos[2]; // 登入密碼 + $this->server = $linkinfos[3]; // 登入伺服器 + $this->port = ($linkinfos[6] ? $linkinfos[6] : '5432'); // 登入埠號 + $this->dbname = $linkinfos[7]; // 資料庫名稱 + $this->tablename = $linkinfos[8]; // 資料表名稱 + } + } + + /* 初始化 */ + function dbInit($isAddInitData=true){ + $this->dbPrepare(); + if(pg_num_rows(pg_query($this->con, "SELECT relname FROM pg_class WHERE relname = '".$this->tablename."'"))!=1){ // 資料表不存在 + $result = "CREATE SEQUENCE ".$this->tablename."_no_seq; + CREATE TABLE ".$this->tablename." ( + \"no\" int NOT NULL DEFAULT nextval('".$this->tablename."_no_seq'), + \"resto\" int NOT NULL, + \"root\" timestamp NULL DEFAULT '1980-01-01 00:00:00', + \"time\" int NOT NULL, + \"md5chksum\" varchar(32) NOT NULL, + \"category\" varchar(255) NOT NULL, + \"tim\" bigint NOT NULL, + \"ext\" varchar(4) NOT NULL, + \"imgw\" smallint NOT NULL, + \"imgh\" smallint NOT NULL, + \"imgsize\" varchar(10) NOT NULL, + \"filename\" varchar(255) NOT NULL, + \"tw\" smallint NOT NULL, + \"th\" smallint NOT NULL, + \"pwd\" varchar(8) NOT NULL, + \"now\" varchar(255) NOT NULL, + \"name\" varchar(255) NOT NULL, + \"email\" varchar(255) NOT NULL, + \"sub\" varchar(255) NOT NULL, + \"com\" text NOT NULL, + \"host\" varchar(255) NOT NULL, + \"status\" varchar(255) NOT NULL, + PRIMARY KEY (\"no\"));"; // PIO Structure V4 + $idxs = array('resto', 'root', 'time'); + foreach($idxs as $idx) $result .= 'CREATE INDEX '.$this->tablename.'_'.$idx.'_index ON '.$this->tablename.' ('.$idx.');'; + pg_query($this->con, $result); // 正式新增資料表 + if($isAddInitData) $this->addPost(0, 0, '', '', 0, '', 0, 0, '', '', 0, 0, '', '08/11/08(土) 10:24:04', '【スパーキー(④ ^ヮ^)】', '', $this->ENV['NOTITLE'], $this->ENV['NOCOMMENT'], ''); // 追加一筆新資料 + $this->dbCommit(); + } + } + + /* 準備/讀入 */ + function dbPrepare($transaction=true){ + if($this->prepared) return true; + + $this->con = pg_pconnect("host='".$this->server."' port=".$this->port." dbname='".$this->dbname."' user='".$this->username."' password='".$this->password."'"); + if(!$this->con) $this->_error_handler(array('Open database failed', __LINE__)); + $this->useTransaction = $transaction; + if($transaction) @pg_query($this->con, 'START TRANSACTION;'); // 啟動交易性能模式 + + $this->prepared = 1; + } + + /* 提交/儲存 */ + function dbCommit(){ + if(!$this->prepared) return false; + + if($this->useTransaction) @pg_query($this->con, 'COMMIT;'); // 交易性能模式提交 + } + + /* 資料表維護 */ + function dbMaintanence($action, $doit=false){ + switch($action) { + case 'optimize': + if($doit){ + $this->dbPrepare(false); + if($this->_pgsql_call('VACUUM '.$this->tablename)) return true; + else return false; + }else return true; // 支援最佳化資料表 + break; + case 'export': + if($doit){ + $this->dbPrepare(false); + $gp = gzopen('piodata.log.gz', 'w9'); + gzwrite($gp, $this->dbExport()); + gzclose($gp); + return '下載 piodata.log.gz 中介檔案'; + }else return true; // 支援匯出資料 + break; + case 'check': + case 'repair': + default: return false; // 不支援 + } + } + + /* 匯入資料來源 */ + function dbImport($data){ + $this->dbInit(false); // 僅新增結構不新增資料 + $data = explode("\r\n", $data); + $data_count = count($data) - 1; + $replaceComma = create_function('$txt', 'return str_replace(",", ",", $txt);'); + for($i = 0; $i < $data_count; $i++){ + $line = array_map($replaceComma, explode(',', $data[$i])); // 取代 , 為 , + if($line[2]=='0') $line[2] = '1980-01-01 00:00:00'; // 零值 + $SQL = 'INSERT INTO '.$this->tablename.' (no,resto,root,time,md5chksum,category,tim,ext,imgw,imgh,imgsize,filename,tw,th,pwd,now,name,email,sub,com,host,status) VALUES ('. + $line[0].','. + $line[1].',\''. + $line[2].'\','. + substr($line[5], 0, 10).',\''. + pg_escape_string($line[3]).'\',\''. + pg_escape_string($line[4]).'\','. + $line[5].',\''.pg_escape_string($line[6]).'\','. + $line[7].','.$line[8].',\''.pg_escape_string($line[9]).','.pg_escape_string($line[10]).'\','.$line[11].','.$line[12].',\''. + pg_escape_string($line[13]).'\',\''. + pg_escape_string($line[14]).'\',\''. + pg_escape_string($line[15]).'\',\''. + pg_escape_string($line[16]).'\',\''. + pg_escape_string($line[17]).'\',\''. + pg_escape_string($line[18]).'\',\''. + pg_escape_string($line[19]).'\',\''. + pg_escape_string($line[20]).'\');'; + $this->_pgsql_call($SQL, array('Insert a new post failed', __LINE__)); + } + $this->dbCommit(); // 送交 + return true; + } + + /* 匯出資料來源 */ + function dbExport(){ + if(!$this->prepared) $this->dbPrepare(); + $line = $this->_pgsql_call('SELECT no,resto,root,md5chksum,category,tim,ext,imgw,imgh,imgsize,filename,tw,th,pwd,now,name,email,sub,com,host,status FROM '.$this->tablename.' ORDER BY no DESC', + array('Export posts failed', __LINE__)); + $data = ''; + $replaceComma = create_function('$txt', 'return str_replace(",", ",", $txt);'); + while($row = pg_fetch_array($line, null, PGSQL_ASSOC)){ + $row = array_map($replaceComma, $row); // 取代 , 為 , + if($row['root']=='1980-01-01 00:00:00') $row['root'] = '0'; // 初始值設為 0 + $data .= implode(',', $row).",\r\n"; + } + pg_free_result($line); + return $data; + } + + /* 文章數目 */ + function postCount($resno=0){ + if(!$this->prepared) $this->dbPrepare(); + + if($resno){ // 回傳討論串總文章數目 + $line = $this->_pgsql_call('SELECT COUNT(no) FROM '.$this->tablename.' WHERE resto = '.intval($resno), + array('Fetch count in thread failed', __LINE__)); + $countline = pg_fetch_result($line, 0, 0) + 1; + }else{ // 回傳總文章數目 + $line = $this->_pgsql_call('SELECT COUNT(no) FROM '.$this->tablename, array('Fetch count of posts failed', __LINE__)); + $countline = pg_fetch_result($line, 0, 0); + } + pg_free_result($line); + return $countline; + } + + /* 討論串數目 */ + function threadCount(){ + if(!$this->prepared) $this->dbPrepare(); + + $tree = $this->_pgsql_call('SELECT COUNT(no) FROM '.$this->tablename.' WHERE resto = 0', + array('Fetch count of threads failed', __LINE__)); + $counttree = pg_fetch_result($tree, 0, 0); pg_free_result($tree); // 計算討論串目前資料筆數 + return $counttree; + } + + /* 取得最後文章編號 */ + function getLastPostNo($state){ + if(!$this->prepared) $this->dbPrepare(); + + if($state=='afterCommit'){ // 送出後的最後文章編號 + $tree = $this->_pgsql_call('SELECT MAX(no) FROM '.$this->tablename, array('Get the last No. failed', __LINE__)); + $lastno = pg_fetch_result($tree, 0, 0); pg_free_result($tree); + return $lastno; + }else return 0; // 其他狀態沒用 + } + + /* 輸出文章清單 */ + function fetchPostList($resno=0, $start=0, $amount=0){ + if(!$this->prepared) $this->dbPrepare(); + + $line = array(); + $resno = intval($resno); + if($resno){ // 輸出討論串的結構 (含自己, EX : 1,2,3,4,5,6) + $tmpSQL = 'SELECT no FROM '.$this->tablename.' WHERE no = '.$resno.' OR resto = '.$resno.' ORDER BY no'; + }else{ // 輸出所有文章編號,新的在前 + $tmpSQL = 'SELECT no FROM '.$this->tablename.' ORDER BY no DESC'; + $start = intval($start); $amount = intval($amount); + if($amount) $tmpSQL .= " LIMIT {$amount} OFFSET {$start}"; // 有指定數量才用 LIMIT + } + $tree = $this->_pgsql_call($tmpSQL, array('Fetch post list failed', __LINE__)); + while($rows = pg_fetch_array($tree)) $line[] = $rows[0]; // 迴圈 + + pg_free_result($tree); + return $line; + } + + /* 輸出討論串清單 */ + function fetchThreadList($start=0, $amount=0, $isDESC=false){ + if(!$this->prepared) $this->dbPrepare(); + + $start = intval($start); $amount = intval($amount); + $treeline = array(); + $tmpSQL = 'SELECT no FROM '.$this->tablename.' WHERE resto = 0 ORDER BY '.($isDESC ? 'no' : 'root').' DESC'; + if($amount) $tmpSQL .= " LIMIT {$amount} OFFSET {$start}"; // 有指定數量才用 LIMIT + $tree = $this->_pgsql_call($tmpSQL, array('Fetch thread list failed', __LINE__)); + while($rows = pg_fetch_array($tree)) $treeline[] = $rows[0]; // 迴圈 + + pg_free_result($tree); + return $treeline; + } + + /* 輸出文章 */ + function fetchPosts($postlist){ + if(!$this->prepared) $this->dbPrepare(); + + if(is_array($postlist)){ // 取多串 + if(!count($postlist)) return array(); + $pno = implode(', ', $postlist); // ID字串 + $tmpSQL = 'SELECT * FROM '.$this->tablename.' WHERE no IN ('.$pno.') ORDER BY no'; + if(count($postlist) > 1){ if($postlist[0] > $postlist[1]) $tmpSQL .= ' DESC'; } // 由大排到小 + }else $tmpSQL = 'SELECT * FROM '.$this->tablename.' WHERE no = '.intval($postlist); // 取單串 + $line = $this->_pgsql_call($tmpSQL, array('Fetch the post content failed', __LINE__)); + + return $this->_ArrangeArrayStructure($line); // 輸出陣列結構 + } + + /* 刪除舊附件 (輸出附件清單) */ + function delOldAttachments($total_size, $storage_max, $warnOnly=true){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + + $arr_warn = $arr_kill = array(); // 警告 / 即將被刪除標記陣列 + $result = $this->_pgsql_call('SELECT no,ext,tim FROM '.$this->tablename." WHERE ext <> '' ORDER BY no", + array('Get the old post failed', __LINE__)); + while(list($dno, $dext, $dtim) = pg_fetch_array($result)){ // 個別跑舊文迴圈 + $dfile = $dtim.$dext; // 附加檔案名稱 + $dthumb = $dtim.'s.jpg'; // 預覽檔案名稱 + if($FileIO->imageExists($dfile)){ $total_size -= $FileIO->getImageFilesize($dfile) / 1024; $arr_kill[] = $dno; $arr_warn[$dno] = 1; } // 標記刪除 + if($FileIO->imageExists($dthumb)) $total_size -= $FileIO->getImageFilesize($dthumb) / 1024; + if($total_size < $storage_max) break; + } + pg_free_result($result); + return $warnOnly ? $arr_warn : $this->removeAttachments($arr_kill); + } + + /* 刪除文章 */ + function removePosts($posts){ + if(!$this->prepared) $this->dbPrepare(); + if(count($posts)==0) return array(); + + $files = $this->removeAttachments($posts, true); // 先遞迴取得刪除文章及其回應附件清單 + $pno = implode(', ', $posts); // ID字串 + $this->_pgsql_call('DELETE FROM '.$this->tablename.' WHERE no IN ('.$pno.') OR resto IN('.$pno.')', + array('Delete old posts and replies failed', __LINE__)); // 刪掉文章 + return $files; + } + + /* 刪除附件 (輸出附件清單) */ + function removeAttachments($posts, $recursion=false){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + if(count($posts)==0) return array(); + + $files = array(); + $pno = implode(', ', $posts); // ID字串 + if($recursion) $tmpSQL = 'SELECT ext,tim FROM '.$this->tablename.' WHERE (no IN ('.$pno.') OR resto IN('.$pno.")) AND ext <> ''"; // 遞迴取出 (含回應附件) + else $tmpSQL = 'SELECT ext,tim FROM '.$this->tablename.' WHERE no IN ('.$pno.") AND ext <> ''"; // 只有指定的編號 + + $result = $this->_pgsql_call($tmpSQL, array('Get attachments of the post failed', __LINE__)); + while(list($dext, $dtim) = pg_fetch_array($result)){ // 個別跑迴圈 + $dfile = $dtim.$dext; // 附加檔案名稱 + $dthumb = $dtim.'s.jpg'; // 預覽檔案名稱 + if($FileIO->imageExists($dfile)) $files[] = $dfile; + if($FileIO->imageExists($dthumb)) $files[] = $dthumb; + } + pg_free_result($result); + return $files; + } + + /* 新增文章/討論串 */ + function addPost($no, $resto, $md5chksum, $category, $tim, $ext, $imgw, $imgh, $imgsize, $filename, $tw, $th, $pwd, $now, $name, $email, $sub, $com, $host, $age=false, $status='') { + if(!$this->prepared) $this->dbPrepare(); + + $time = (int)substr($tim, 0, -3); // 13位數的數字串是檔名,10位數的才是時間數值 + $updatetime = gmdate('Y-m-d H:i:s'); // 更動時間 (UTC) + $resto = intval($resto); if($resto){ // 新增回應 + $root = '1980-01-01 00:00:00'; + if($age){ // 推文 + $this->_pgsql_call('UPDATE '.$this->tablename.' SET root = \''.$updatetime.'\' WHERE no = '.$resto, array('Push the post failed', __LINE__)); // 將被回應的文章往上移動 + } + }else $root = $updatetime; // 新增討論串, 討論串最後被更新時間 + + if($no === 0){ // init post 0 + $query = 'INSERT INTO '.$this->tablename.' (no,resto,root,time,md5chksum,category,tim,ext,imgw,imgh,imgsize,tw,th,pwd,now,name,email,sub,com,host,status) VALUES ('. + 0,'. // 回應編號 + $resto.",'". // 回應編號 + $root."',". // 最後更新時間 + $time.','. // 發文時間數值 + "'$md5chksum',". // 附加檔案md5 + "'".pg_escape_string($category)."',". // 分類標籤 + "'$tim', '$ext',". // 附加檔名 + (int)$imgw.','.(int)$imgh.",'".$imgsize."','".$filename."',".(int)$tw.','.(int)$th.','. // 圖檔長寬及檔案大小;預覽圖長寬 + "'".pg_escape_string($pwd)."',". + "'$now',". // 時間(含ID)字串 + "'".pg_escape_string($name)."',". + "'".pg_escape_string($email)."',". + "'".pg_escape_string($sub)."',". + "'".pg_escape_string($com)."',". + "'".pg_escape_string($host)."', '".pg_escape_string($status)."');"; + }else{ + $query = 'INSERT INTO '.$this->tablename.' (resto,root,time,md5chksum,category,tim,ext,imgw,imgh,imgsize,tw,th,pwd,now,name,email,sub,com,host,status) VALUES ('. + $resto.",'". // 回應編號 + $root."',". // 最後更新時間 + $time.','. // 發文時間數值 + "'$md5chksum',". // 附加檔案md5 + "'".pg_escape_string($category)."',". // 分類標籤 + "'$tim', '$ext',". // 附加檔名 + (int)$imgw.','.(int)$imgh.",'".$imgsize."','".$filename."',".(int)$tw.','.(int)$th.','. // 圖檔長寬及檔案大小;預覽圖長寬 + "'".pg_escape_string($pwd)."',". + "'$now',". // 時間(含ID)字串 + "'".pg_escape_string($name)."',". + "'".pg_escape_string($email)."',". + "'".pg_escape_string($sub)."',". + "'".pg_escape_string($com)."',". + "'".pg_escape_string($host)."', '".pg_escape_string($status)."');"; + } + $this->_pgsql_call($query, array('Insert a new post failed', __LINE__)); + } + + /* 檢查是否連續投稿 */ + function isSuccessivePost($lcount, $com, $timestamp, $pass, $passcookie, $host, $isupload){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + + if(!$this->ENV['PERIOD.POST']) return false; // 關閉連續投稿檢查 + $timestamp = intval($timestamp); + $tmpSQL = 'SELECT pwd,host FROM '.$this->tablename.' WHERE time > '.($timestamp - (int)$this->ENV['PERIOD.POST']); // 一般投稿時間檢查 + if($isupload) $tmpSQL .= ' OR time > '.($timestamp - (int)$this->ENV['PERIOD.IMAGEPOST']); // 附加圖檔的投稿時間檢查 (與下者兩者擇一) + else $tmpSQL .= " OR md5(com) = '".md5($com)."'"; // 內文一樣的檢查 (與上者兩者擇一) + + $result = $this->_pgsql_call($tmpSQL, array('Get the post to check the succession failed', __LINE__)); + while(list($lpwd, $lhost) = pg_fetch_array($result)){ + // 判斷為同一人發文且符合連續投稿條件 + if($host==$lhost || $pass==$lpwd || $passcookie==$lpwd) return true; + } + return false; + } + + /* 檢查是否重複貼圖 */ + function isDuplicateAttachment($lcount, $md5hash){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + + $result = $this->_pgsql_call('SELECT tim,ext FROM '.$this->tablename." WHERE ext <> '' AND md5chksum = '$md5hash' ORDER BY no DESC", + array('Get the post to check the duplicate attachment failed', __LINE__)); + while(list($ltim, $lext) = pg_fetch_array($result)){ + if($FileIO->imageExists($ltim.$lext)) return true; // 有相同檔案 + } + return false; + } + + /* 有此討論串? */ + function isThread($no){ + if(!$this->prepared) $this->dbPrepare(); + + $result = $this->_pgsql_call('SELECT no FROM '.$this->tablename.' WHERE no = '.intval($no).' AND resto = 0'); + return pg_fetch_array($result) ? true : false; + } + + /* 搜尋文章 */ + function searchPost($keyword, $field, $method){ + if(!$this->prepared) $this->dbPrepare(); + + $keyword_cnt = count($keyword); + $SearchQuery = 'SELECT * FROM '.$this->tablename." WHERE {$field} ILIKE '%".pg_escape_string($keyword[0])."%'"; + if($keyword_cnt > 1){ + for($i = 1; $i < $keyword_cnt; $i++){ + $SearchQuery .= " {$method} {$field} ILIKE '%".pg_escape_string($keyword[$i])."%'"; // 多重字串交集 / 聯集搜尋 + } + } + $SearchQuery .= ' ORDER BY no DESC'; // 按照號碼大小排序 + $line = $this->_pgsql_call($SearchQuery, array('Search the post failed', __LINE__)); + return $this->_ArrangeArrayStructure($line); // 輸出陣列結構 + } + + /* 搜尋類別標籤 */ + function searchCategory($category){ + if(!$this->prepared) $this->dbPrepare(); + + $foundPosts = array(); + $SearchQuery = 'SELECT no FROM '.$this->tablename." WHERE category ~* ',".pg_escape_string($category).",' ORDER BY no DESC"; + $line = $this->_pgsql_call($SearchQuery, array('Search the category failed', __LINE__)); + while($rows = pg_fetch_array($line)) $foundPosts[] = $rows[0]; + pg_free_result($line); + return $foundPosts; + } + + /* 取得文章屬性 */ + function getPostStatus($status){ + return new FlagHelper($status); // 回傳 FlagHelper 物件 + } + + /* 更新文章 */ + function updatePost($no, $newValues){ + if(!$this->prepared) $this->dbPrepare(); + + $no = intval($no); + $chk = array('resto', 'md5chksum', 'category', 'tim', 'ext', 'imgw', 'imgh', 'imgsize', 'filename', 'tw', 'th', 'pwd', 'now', 'name', 'email', 'sub', 'com', 'host', 'status'); + foreach($chk as $c){ + if(isset($newValues[$c])){ + $this->_pgsql_call('UPDATE '.$this->tablename." SET $c = '".pg_escape_string($newValues[$c])."' WHERE no = ".$no, + array('Update the field of the post failed', __LINE__)); // 更新討論串屬性 + } + } + } + + /* 設定文章屬性 */ + function setPostStatus($no, $newStatus){ + $this->updatePost($no, array('status' => $newStatus)); + } +} +?> \ No newline at end of file diff --git a/lib/pio/pio.sqlite.php b/lib/pio/pio.sqlite.php new file mode 100755 index 0000000..07a3baa --- /dev/null +++ b/lib/pio/pio.sqlite.php @@ -0,0 +1,440 @@ +ENV = $ENV; + $this->prepared = 0; + if($connstr) $this->dbConnect($connstr); + } + + /* private 攔截SQL錯誤 */ + function _error_handler($errarray, $query=''){ + $err = 'Pixmicat! SQL Error: '.$errarray[0].' on line '.$errarray[1]; + //error_log($err."\n".sqlite_last_error($this->con).': '.sqlite_error_string(sqlite_last_error($this->con))."\n".$query."\n\n", 3, 'error.log'); + trigger_error($err, E_USER_ERROR); + exit(); + } + + /* private 使用SQL字串和SQLite要求 */ + function _sqlite_call($query, $errarray=false){ + $resource = sqlite_query($this->con, $query); + if(is_array($errarray) && $resource===false) $this->_error_handler($errarray, $query); + else return $resource; + } + + /* private SQLite的sqlite_result頂替函數 */ + function _sqlite_result($rh, $row, $field){ + $currrow = sqlite_fetch_all($rh, SQLITE_NUM); + return $currrow[$row][$field]; + } + + /* PIO模組版本 */ + function pioVersion(){ + return '0.6 (v20100404)'; + } + + /* 處理連線字串/連接 */ + function dbConnect($connStr){ + // 格式: sqlite://SQLite檔案之位置/資料表/ + // 示例: sqlite://yotsubanome.db/img_loog/ + if(preg_match('/^sqlite:\/\/(.*)\/(.*)\/$/i', $connStr, $linkinfos)){ + $this->dbname = $linkinfos[1]; // SQLite檔案之位置 + $this->tablename = $linkinfos[2]; // 資料表名稱 + } + } + + /* 初始化 */ + function dbInit($isAddInitData=true){ + $this->dbPrepare(); + if(sqlite_num_rows(sqlite_query($this->con, "SELECT name FROM sqlite_master WHERE name LIKE '".$this->tablename."'"))===0){ // 資料表不存在 + $result = 'CREATE TABLE '.$this->tablename.' ( + "no" INTEGER NOT NULL PRIMARY KEY, + "resto" INTEGER NOT NULL, + "root" TIMESTAMP DEFAULT \'0\' NOT NULL, + "time" INTEGER NOT NULL, + "md5chksum" VARCHAR(32) NOT NULL, + "category" VARCHAR(255) NOT NULL, + "tim" INTEGER NOT NULL, + "ext" VARCHAR(4) NOT NULL, + "imgw" INTEGER NOT NULL, + "imgh" INTEGER NOT NULL, + "imgsize" VARCHAR(10) NOT NULL, + "filename" VARCHAR(255) NOT NULL, + "tw" INTEGER NOT NULL, + "th" INTEGER NOT NULL, + "pwd" VARCHAR(8) NOT NULL, + "now" VARCHAR(255) NOT NULL, + "name" VARCHAR(255) NOT NULL, + "email" VARCHAR(255) NOT NULL, + "sub" VARCHAR(255) NOT NULL, + "com" TEXT NOT NULL, + "host" VARCHAR(255) NOT NULL, + "status" VARCHAR(255) NOT NULL + );'; // PIO Structure V4 + $idx = array('resto', 'root', 'time'); + foreach($idx as $x){ + $result .= 'CREATE INDEX IDX_'.$this->tablename.'_'.$x.' ON '.$this->tablename.'('.$x.');'; + } + $result .= 'CREATE INDEX IDX_'.$this->tablename.'_resto_no ON '.$this->tablename.'(resto,no);'; + if($isAddInitData) + $result .= 'INSERT INTO '.$this->tablename.' (no,resto,root,time,md5chksum,category,tim,ext,imgw,imgh,imgsize,filename,tw,th,pwd,now,name,email,sub,com,host,status) VALUES (0, 0, datetime("now"), 1111111111, "", "", 1111111111111, "", 0, 0, "", "", 0, 0, "", "08/11/08(土)10:24:04", "【スパーキー(④ ^ヮ^)】", "", "'.$this->ENV['NOTITLE'].'", "'.$this->ENV['NOCOMMENT'].'", "", "");'; + sqlite_exec($this->con, $result); // 正式新增資料表 + $this->dbCommit(); + } + } + + /* 準備/讀入 */ + function dbPrepare($transaction=true){ + if($this->prepared) return true; + + if(@!$this->con=sqlite_popen($this->dbname, 0666)) $this->_error_handler(array('Open database failed', __LINE__)); + $this->useTransaction = $transaction; + if($transaction) @sqlite_exec($this->con, 'BEGIN;'); // 啟動交易性能模式 + + $this->prepared = 1; + } + + /* 提交/儲存 */ + function dbCommit(){ + if(!$this->prepared) return false; + if($this->useTransaction) @sqlite_exec($this->con, 'COMMIT;'); // 交易性能模式提交 + } + + /* 資料表維護 */ + function dbMaintanence($action, $doit=false){ + switch($action) { + case 'optimize': + if($doit){ + $this->dbPrepare(false); + if($this->_sqlite_call('VACUUM '.$this->tablename)) return true; + else return false; + }else return true; // 支援最佳化資料表 + break; + case 'export': + if($doit){ + $this->dbPrepare(false); + $gp = gzopen('piodata.log.gz', 'w9'); + gzwrite($gp, $this->dbExport()); + gzclose($gp); + return '下載 piodata.log.gz 中介檔案'; + }else return true; // 支援匯出資料 + break; + case 'check': + case 'repair': + default: return false; // 不支援 + } + } + + /* 匯入資料來源 */ + function dbImport($data){ + $this->dbInit(false); // 僅新增結構不新增資料 + $data = explode("\r\n", $data); + $data_count = count($data) - 1; + $replaceComma = create_function('$txt', 'return str_replace(",", ",", $txt);'); + for($i = 0; $i < $data_count; $i++){ + $line = array_map($replaceComma, explode(',', $data[$i])); // 取代 , 為 , + $SQL = 'INSERT INTO '.$this->tablename.' (no,resto,root,time,md5chksum,category,tim,ext,imgw,imgh,imgsize,filename,tw,th,pwd,now,name,email,sub,com,host,status) VALUES ('. + $line[0].','. + $line[1].',\''. + $line[2].'\','. + substr($line[5], 0, 10).',\''. + sqlite_escape_string($line[3]).'\',\''. + sqlite_escape_string($line[4]).'\','. + $line[5].',\''.sqlite_escape_string($line[6]).'\','. + $line[7].','.$line[8].',\''.sqlite_escape_string($line[9]).','.sqlite_escape_string($line[10]).'\','.$line[11].','.$line[12].',\''. + sqlite_escape_string($line[13]).'\',\''. + sqlite_escape_string($line[14]).'\',\''. + sqlite_escape_string($line[15]).'\',\''. + sqlite_escape_string($line[16]).'\',\''. + sqlite_escape_string($line[17]).'\',\''. + sqlite_escape_string($line[18]).'\',\''. + sqlite_escape_string($line[19]).'\',\''. + sqlite_escape_string($line[20]).'\')'; + $this->_sqlite_call($SQL, array('Insert a new post failed', __LINE__)); + } + $this->dbCommit(); // 送交 + return true; + } + + /* 匯出資料來源 */ + function dbExport(){ + if(!$this->prepared) $this->dbPrepare(); + $line = $this->_sqlite_call('SELECT no,resto,root,md5chksum,category,tim,ext,imgw,imgh,imgsize,filename,tw,th,pwd,now,name,email,sub,com,host,status FROM '.$this->tablename.' ORDER BY no DESC', + array('Export posts failed', __LINE__)); + $data = ''; + $replaceComma = create_function('$txt', 'return str_replace(",", ",", $txt);'); + while($row = sqlite_fetch_array($line, SQLITE_ASSOC)){ + $row = array_map($replaceComma, $row); // 取代 , 為 , + $data .= implode(',', $row).",\r\n"; + } + return $data; + } + + /* 文章數目 */ + function postCount($resno=0){ + if(!$this->prepared) $this->dbPrepare(); + + if($resno){ // 回傳討論串總文章數目 + $line = $this->_sqlite_call('SELECT COUNT(no) FROM '.$this->tablename.' WHERE resto = '.intval($resno), + array('Fetch count in thread failed', __LINE__)); + $countline = $this->_sqlite_result($line, 0, 0) + 1; + }else{ // 回傳總文章數目 + $line = $this->_sqlite_call('SELECT COUNT(no) FROM '.$this->tablename, array('Fetch count of posts failed', __LINE__)); + $countline = $this->_sqlite_result($line, 0, 0); + } + return $countline; + } + + /* 討論串數目 */ + function threadCount(){ + if(!$this->prepared) $this->dbPrepare(); + + $tree = $this->_sqlite_call('SELECT COUNT(no) FROM '.$this->tablename.' WHERE resto = 0', + array('Fetch count of threads failed', __LINE__)); + $counttree = $this->_sqlite_result($tree, 0, 0); // 計算討論串目前資料筆數 + return $counttree; + } + + /* 取得最後文章編號 */ + function getLastPostNo($state){ + if(!$this->prepared) $this->dbPrepare(); + + if($state=='afterCommit'){ // 送出後的最後文章編號 + $tree = $this->_sqlite_call('SELECT MAX(no) FROM '.$this->tablename, array('Get the last No. failed', __LINE__)); + $lastno = $this->_sqlite_result($tree, 0, 0); + return $lastno; + }else return 0; // 其他狀態沒用 + } + + /* 輸出文章清單 */ + function fetchPostList($resno=0, $start=0, $amount=0){ + if(!$this->prepared) $this->dbPrepare(); + + $line = array(); + $resno = intval($resno); + if($resno){ // 輸出討論串的結構 (含自己, EX : 1,2,3,4,5,6) + $tmpSQL = 'SELECT no FROM '.$this->tablename.' WHERE no = '.$resno.' OR resto = '.$resno.' ORDER BY no'; + }else{ // 輸出所有文章編號,新的在前 + $tmpSQL = 'SELECT no FROM '.$this->tablename.' ORDER BY no DESC'; + $start = intval($start); $amount = intval($amount); + if($amount) $tmpSQL .= " LIMIT {$start}, {$amount}"; // 有指定數量才用 LIMIT + } + $tree = $this->_sqlite_call($tmpSQL, array('Fetch post list failed', __LINE__)); + while($rows = sqlite_fetch_array($tree)) $line[] = $rows[0]; // 迴圈 + return $line; + } + + /* 輸出討論串清單 */ + function fetchThreadList($start=0, $amount=0, $isDESC=false) { + if(!$this->prepared) $this->dbPrepare(); + + $start = intval($start); $amount = intval($amount); + $treeline = array(); + $tmpSQL = 'SELECT no FROM '.$this->tablename.' WHERE resto = 0 ORDER BY '.($isDESC ? 'no' : 'root').' DESC'; + if($amount) $tmpSQL .= " LIMIT {$start}, {$amount}"; // 有指定數量才用 LIMIT + $tree = $this->_sqlite_call($tmpSQL, array('Fetch thread list failed', __LINE__)); + while($rows = sqlite_fetch_array($tree)) $treeline[] = $rows[0]; // 迴圈 + return $treeline; + } + + /* 輸出文章 */ + function fetchPosts($postlist){ + if(!$this->prepared) $this->dbPrepare(); + + if(is_array($postlist)){ // 取多串 + $pno = implode(', ', $postlist); // ID字串 + $tmpSQL = 'SELECT * FROM '.$this->tablename.' WHERE no IN ('.$pno.') ORDER BY no'; + if(count($postlist) > 1){ if($postlist[0] > $postlist[1]) $tmpSQL .= ' DESC'; } // 由大排到小 + }else $tmpSQL = 'SELECT * FROM '.$this->tablename.' WHERE no = '.intval($postlist); // 取單串 + $line = $this->_sqlite_call($tmpSQL, array('Fetch the post content failed', __LINE__)); + return sqlite_fetch_all($line, SQLITE_ASSOC); + } + + /* 刪除舊附件 (輸出附件清單) */ + function delOldAttachments($total_size, $storage_max, $warnOnly=true){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + + $arr_warn = $arr_kill = array(); // 警告 / 即將被刪除標記陣列 + $result = $this->_sqlite_call('SELECT no,ext,tim FROM '.$this->tablename.' WHERE ext <> \'\' ORDER BY no', + array('Get the old post failed', __LINE__)); + while(list($dno, $dext, $dtim) = sqlite_fetch_array($result)){ // 個別跑舊文迴圈 + $dfile = $dtim.$dext; // 附加檔案名稱 + $dthumb = $dtim.'s.jpg'; // 預覽檔案名稱 + if($FileIO->imageExists($dfile)){ $total_size -= $FileIO->getImageFilesize($dfile) / 1024; $arr_kill[] = $dno; $arr_warn[$dno] = 1; } // 標記刪除 + if($FileIO->imageExists($dthumb)) $total_size -= $FileIO->getImageFilesize($dthumb) / 1024; + if($total_size < $storage_max) break; + } + return $warnOnly ? $arr_warn : $this->removeAttachments($arr_kill); + } + + /* 刪除文章 */ + function removePosts($posts){ + if(!$this->prepared) $this->dbPrepare(); + if(count($posts)==0) return array(); + + $files = $this->removeAttachments($posts, true); // 先遞迴取得刪除文章及其回應附件清單 + $pno = implode(', ', $posts); // ID字串 + $this->_sqlite_call('DELETE FROM '.$this->tablename.' WHERE no IN ('.$pno.') OR resto IN('.$pno.')', + array('Delete old posts and replies failed', __LINE__)); // 刪掉文章 + return $files; + } + + /* 刪除附件 (輸出附件清單) */ + function removeAttachments($posts, $recursion=false){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + if(count($posts)==0) return array(); + + $files = array(); + $pno = implode(', ', $posts); // ID字串 + if($recursion) $tmpSQL = 'SELECT ext,tim FROM '.$this->tablename.' WHERE (no IN ('.$pno.') OR resto IN('.$pno.")) AND ext <> ''"; // 遞迴取出 (含回應附件) + else $tmpSQL = 'SELECT ext,tim FROM '.$this->tablename.' WHERE no IN ('.$pno.") AND ext <> ''"; // 只有指定的編號 + + $result = $this->_sqlite_call($tmpSQL, array('Get attachments of the post failed', __LINE__)); + while(list($dext, $dtim) = sqlite_fetch_array($result)){ // 個別跑迴圈 + $dfile = $dtim.$dext; // 附加檔案名稱 + $dthumb = $dtim.'s.jpg'; // 預覽檔案名稱 + if($FileIO->imageExists($dfile)) $files[] = $dfile; + if($FileIO->imageExists($dthumb)) $files[] = $dthumb; + } + return $files; + } + + /* 新增文章/討論串 */ + function addPost($no, $resto, $md5chksum, $category, $tim, $ext, $imgw, $imgh, $imgsize, $filename, $tw, $th, $pwd, $now, $name, $email, $sub, $com, $host, $age=false, $status='') { + if(!$this->prepared) $this->dbPrepare(); + + $time = (int)substr($tim, 0, -3); // 13位數的數字串是檔名,10位數的才是時間數值 + $updatetime = gmdate('Y-m-d H:i:s'); // 更動時間 (UTC) + $resto = intval($resto); + if($resto){ // 新增回應 + $root = '0'; + if($age){ // 推文 + $this->_sqlite_call('UPDATE '.$this->tablename.' SET root = "'.$updatetime.'" WHERE no = '.$resto, + array('Push the post failed', __LINE__)); // 將被回應的文章往上移動 + } + }else $root = $updatetime; // 新增討論串, 討論串最後被更新時間 + + $query = 'INSERT INTO '.$this->tablename.' (resto,root,time,md5chksum,category,tim,ext,imgw,imgh,imgsize,filename,tw,th,pwd,now,name,email,sub,com,host,status) VALUES ('. + $resto.','. // 回應編號 + "'$root',". // 最後更新時間 + $time.','. // 發文時間數值 + "'$md5chksum',". // 附加檔案md5 + "'".sqlite_escape_string($category)."',". // 分類標籤 + "$tim, '$ext',". // 附加檔名 + (int)$imgw.','.(int)$imgh.",'".$imgsize."','".$filename."',".(int)$tw.','.(int)$th.','. // 圖檔長寬及檔案大小;預覽圖長寬 + "'".sqlite_escape_string($pwd)."',". + "'$now',". // 時間(含ID)字串 + "'".sqlite_escape_string($name)."',". + "'".sqlite_escape_string($email)."',". + "'".sqlite_escape_string($sub)."',". + "'".sqlite_escape_string($com)."',". + "'".sqlite_escape_string($host)."', '".sqlite_escape_string($status)."')"; + $this->_sqlite_call($query, array('Insert a new post failed', __LINE__)); + } + + /* 檢查是否連續投稿 */ + function isSuccessivePost($lcount, $com, $timestamp, $pass, $passcookie, $host, $isupload){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + + if(!$this->ENV['PERIOD.POST']) return false; // 關閉連續投稿檢查 + $timestamp = intval($timestamp); + $tmpSQL = 'SELECT pwd,host FROM '.$this->tablename.' WHERE time > '.($timestamp - (int)$this->ENV['PERIOD.POST']); // 一般投稿時間檢查 + if($isupload) $tmpSQL .= ' OR time > '.($timestamp - (int)$this->ENV['PERIOD.IMAGEPOST']); // 附加圖檔的投稿時間檢查 (與下者兩者擇一) + else $tmpSQL .= " OR php('md5', com) = '".md5($com)."'"; // 內文一樣的檢查 (與上者兩者擇一) * 此取巧採用了PHP登錄的函式php來叫用md5 + + $result = $this->_sqlite_call($tmpSQL, array('Get the post to check the succession failed', __LINE__)); + while(list($lpwd, $lhost) = sqlite_fetch_array($result)){ + // 判斷為同一人發文且符合連續投稿條件 + if($host==$lhost || $pass==$lpwd || $passcookie==$lpwd) return true; + } + return false; + } + + /* 檢查是否重複貼圖 */ + function isDuplicateAttachment($lcount, $md5hash){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + + $result = $this->_sqlite_call('SELECT tim,ext FROM '.$this->tablename." WHERE ext <> '' AND md5chksum = '$md5hash' ORDER BY no DESC", + array('Get the post to check the duplicate attachment failed', __LINE__)); + while(list($ltim, $lext) = sqlite_fetch_array($result)){ + if($FileIO->imageExists($ltim.$lext)) return true; // 有相同檔案 + } + return false; + } + + /* 有此討論串? */ + function isThread($no){ + if(!$this->prepared) $this->dbPrepare(); + + $result = $this->_sqlite_call('SELECT no FROM '.$this->tablename.' WHERE no = '.intval($no).' AND resto = 0'); + return sqlite_fetch_array($result) ? true : false; + } + + /* 搜尋文章 */ + function searchPost($keyword, $field, $method){ + if(!$this->prepared) $this->dbPrepare(); + + $keyword_cnt = count($keyword); + $SearchQuery = 'SELECT * FROM '.$this->tablename." WHERE {$field} LIKE '%".sqlite_escape_string($keyword[0])."%'"; + if($keyword_cnt > 1){ + for($i = 1; $i < $keyword_cnt; $i++){ + $SearchQuery .= " {$method} {$field} LIKE '%".sqlite_escape_string($keyword[$i])."%'"; // 多重字串交集 / 聯集搜尋 + } + } + $SearchQuery .= ' ORDER BY no DESC'; // 按照號碼大小排序 + $line = $this->_sqlite_call($SearchQuery, array('Search the post failed', __LINE__)); + return sqlite_fetch_all($line, SQLITE_ASSOC); + } + + /* 搜尋類別標籤 */ + function searchCategory($category){ + if(!$this->prepared) $this->dbPrepare(); + + $foundPosts = array(); + $SearchQuery = 'SELECT no FROM '.$this->tablename." WHERE lower(category) LIKE '%,".strtolower(sqlite_escape_string($category)).",%' ORDER BY no DESC"; + $line = $this->_sqlite_call($SearchQuery, array('Search the category failed', __LINE__)); + while($rows = sqlite_fetch_array($line)) $foundPosts[] = $rows[0]; + return $foundPosts; + } + + /* 取得文章屬性 */ + function getPostStatus($status){ + return new FlagHelper($status); // 回傳 FlagHelper 物件 + } + + /* 更新文章 */ + function updatePost($no, $newValues){ + if(!$this->prepared) $this->dbPrepare(); + + $no = intval($no); + $chk = array('resto', 'md5chksum', 'category', 'tim', 'ext', 'imgw', 'imgh', 'imgsize', 'filename', 'tw', 'th', 'pwd', 'now', 'name', 'email', 'sub', 'com', 'host', 'status'); + foreach($chk as $c){ + if(isset($newValues[$c])){ + $this->_sqlite_call('UPDATE '.$this->tablename." SET $c = '".sqlite_escape_string($newValues[$c])."' WHERE no = $no", + array('Update the field of the post failed', __LINE__)); // 更新討論串屬性 + } + } + } + + /* 設定文章屬性 */ + function setPostStatus($no, $newStatus){ + $this->updatePost($no, array('status' => $newStatus)); + } +} +?> \ No newline at end of file diff --git a/lib/pio/pio.sqlite3.php b/lib/pio/pio.sqlite3.php new file mode 100755 index 0000000..510c451 --- /dev/null +++ b/lib/pio/pio.sqlite3.php @@ -0,0 +1,420 @@ +ENV = $ENV; + $this->prepared = false; + if($connstr) $this->dbConnect($connstr); + } + + /* private 攔截SQL錯誤 */ + private function _error_handler($errtext, $errline){ + $err = "Pixmicat! SQL Error: $errtext on line $errline"; + //error_log($err."\n".print_r($this->con->errorInfo(),true)."\n", 3, 'error.log'); + trigger_error($err, E_USER_ERROR); + exit(); + } + + /* PIO模組版本 */ + function pioVersion(){ + return '0.6 (v20100404)'; + } + + /* 處理連線字串/連接 */ + public function dbConnect($connStr){ + // 格式: sqlite3://資料庫檔案之位置/資料表/ + // 示例: sqlite://yotsubanome.db/img_loog/ + //     sqlite3://:memory:/img_loog/ + if(preg_match('/^sqlite3:\/\/(.*)\/(.*)\/$/i', $connStr, $linkinfos)){ + $this->DSN = 'sqlite:'.$linkinfos[1]; + $this->tablename = $linkinfos[2]; + } + } + + /* 初始化 */ + public function dbInit($isAddInitData=true){ + $this->dbPrepare(); + $nline = $this->con->query('SELECT COUNT(name) FROM sqlite_master WHERE name LIKE "'.$this->tablename.'"')->fetch(); + if($nline[0]==='0'){ // 資料表不存在 + $result = 'CREATE TABLE '.$this->tablename.' ( + "no" INTEGER NOT NULL PRIMARY KEY, + "resto" INTEGER NOT NULL, + "root" TIMESTAMP DEFAULT \'0\' NOT NULL, + "time" INTEGER NOT NULL, + "md5chksum" VARCHAR(32) NOT NULL, + "category" VARCHAR(255) NOT NULL, + "tim" INTEGER NOT NULL, + "ext" VARCHAR(4) NOT NULL, + "imgw" INTEGER NOT NULL, + "imgh" INTEGER NOT NULL, + "imgsize" VARCHAR(10) NOT NULL, + "filename" VARCHAR(255) NOT NULL, + "tw" INTEGER NOT NULL, + "th" INTEGER NOT NULL, + "pwd" VARCHAR(8) NOT NULL, + "now" VARCHAR(255) NOT NULL, + "name" VARCHAR(255) NOT NULL, + "email" VARCHAR(255) NOT NULL, + "sub" VARCHAR(255) NOT NULL, + "com" TEXT NOT NULL, + "host" VARCHAR(255) NOT NULL, + "status" VARCHAR(255) NOT NULL + );'; // PIO Structure V4 + $idx = array('resto', 'root', 'time'); + foreach($idx as $x) $result .= 'CREATE INDEX IDX_'.$this->tablename.'_'.$x.' ON '.$this->tablename.'('.$x.');'; + $result .= 'CREATE INDEX IDX_'.$this->tablename.'_resto_no ON '.$this->tablename.'(resto,no);'; + if($isAddInitData) $result .= 'INSERT INTO '.$this->tablename.' (no,resto,root,time,md5chksum,category,tim,ext,imgw,imgh,imgsize,filename,tw,th,pwd,now,name,email,sub,com,host,status) VALUES (0, 0, datetime("now"), 1111111111, "", "", 1111111111111, "", 0, 0, "", "", 0, 0, "", "08/11/08(土)10:24:04", "【スパーキー(④ ^ヮ^)】", "", "'.$this->ENV['NOTITLE'].'", "'.$this->ENV['NOCOMMENT'].'", "", "");'; + $this->con->exec($result); + $this->dbCommit(); + } + } + + /* 準備/讀入 */ + public function dbPrepare($transaction=false){ + if($this->prepared) return true; + + ($this->con = new PDO($this->DSN, '', '', array(PDO::ATTR_PERSISTENT => true))) or $this->_error_handler('Open database failed', __LINE__); + $this->useTransaction = $transaction; + if($transaction) @$this->con->beginTransaction(); // 啟動交易性能模式 + + $this->prepared = true; + } + + /* 提交/儲存 */ + public function dbCommit(){ + if(!$this->prepared) return false; + if($this->useTransaction) @$this->con->commit(); // 交易性能模式提交 + } + + /* 資料表維護 */ + public function dbMaintanence($action, $doit=false){ + switch($action) { + case 'optimize': + if($doit){ + $this->dbPrepare(false); + if($this->con->exec('VACUUM '.$this->tablename)!==false) return true; + else return false; + }else return true; // 支援最佳化資料表 + break; + case 'export': + if($doit){ + $this->dbPrepare(false); + $gp = gzopen('piodata.log.gz', 'w9'); + gzwrite($gp, $this->dbExport()); + gzclose($gp); + return '下載 piodata.log.gz 中介檔案'; + }else return true; // 支援匯出資料 + break; + case 'check': + case 'repair': + default: return false; // 不支援 + } + } + + /* 匯入資料來源 */ + public function dbImport($data){ + $this->dbInit(false); // 僅新增結構不新增資料 + $data = explode("\r\n", $data); + $data_count = count($data) - 1; + $replaceComma = create_function('$txt', 'return str_replace(",", ",", $txt);'); + $SQL = 'INSERT INTO '.$this->tablename.' (no,resto,root,time,md5chksum,category,tim,ext,imgw,imgh,imgsize,filename,tw,th,pwd,now,name,email,sub,com,host,status) VALUES ' + .'(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'; + $PDOStmt = $this->con->prepare($SQL); + for($i = 0; $i < $data_count; $i++){ + $line = array_map($replaceComma, explode(',', $data[$i])); // 取代 , 為 , + $tim = substr($line[5], 0, 10); + $PDOStmt->bindValue(1, $line[0], PDO::PARAM_INT); + $PDOStmt->bindValue(2, $line[1], PDO::PARAM_INT); + $PDOStmt->bindValue(3, $line[2], PDO::PARAM_STR); + $PDOStmt->bindValue(4, $tim, PDO::PARAM_INT); + $PDOStmt->bindValue(5, $line[3], PDO::PARAM_STR); + $PDOStmt->bindValue(6, $line[4], PDO::PARAM_STR); + $PDOStmt->bindValue(7, $line[5], PDO::PARAM_INT); + $PDOStmt->bindValue(8, $line[6], PDO::PARAM_STR); + $PDOStmt->bindValue(9, $line[7], PDO::PARAM_INT); + $PDOStmt->bindValue(10, $line[8], PDO::PARAM_INT); + $PDOStmt->bindValue(11, $line[9], PDO::PARAM_STR); + $PDOStmt->bindValue(12, $line[10], PDO::PARAM_STR); + $PDOStmt->bindValue(13, $line[11], PDO::PARAM_INT); + $PDOStmt->bindValue(14, $line[12], PDO::PARAM_INT); + $PDOStmt->bindValue(15, $line[13], PDO::PARAM_STR); + $PDOStmt->bindValue(16, $line[14], PDO::PARAM_STR); + $PDOStmt->bindValue(17, $line[15], PDO::PARAM_STR); + $PDOStmt->bindValue(18, $line[16], PDO::PARAM_STR); + $PDOStmt->bindValue(19, $line[17], PDO::PARAM_STR); + $PDOStmt->bindValue(20, $line[18], PDO::PARAM_STR); + $PDOStmt->bindValue(21, $line[19], PDO::PARAM_STR); + $PDOStmt->bindValue(22, $line[20], PDO::PARAM_STR); + $PDOStmt->execute() or $this->_error_handler('Insert a new post failed', __LINE__); + } + $this->dbCommit(); // 送交 + return true; + } + + /* 匯出資料來源 */ + public function dbExport(){ + if(!$this->prepared) $this->dbPrepare(); + $line = $this->con->query('SELECT no,resto,root,md5chksum,category,tim,ext,imgw,imgh,imgsize,filename,tw,th,pwd,now,name,email,sub,com,host,status FROM '.$this->tablename.' ORDER BY no DESC'); + $data = ''; + $replaceComma = create_function('$txt', 'return str_replace(",", ",", $txt);'); + while($row = $line->fetch(PDO::FETCH_ASSOC)){ + $row = array_map($replaceComma, $row); // 取代 , 為 , + $data .= implode(',', $row).",\r\n"; + } + return $data; + } + + /* 文章數目 */ + public function postCount($resno=0){ + if(!$this->prepared) $this->dbPrepare(); + + if($resno){ // 一討論串文章總數目 + $line = $this->con->query('SELECT COUNT(no) FROM '.$this->tablename.' WHERE resto = '.intval($resno))->fetch(); + $countline = $line[0] + 1; + }else{ // 文章總數目 + $line = $this->con->query('SELECT COUNT(no) FROM '.$this->tablename)->fetch(); + $countline = $line[0]; + } + return $countline; + } + + /* 討論串數目 */ + public function threadCount(){ + if(!$this->prepared) $this->dbPrepare(); + + $tree = $this->con->query('SELECT COUNT(no) FROM '.$this->tablename.' WHERE resto = 0')->fetch(); + return $tree[0]; // 討論串目前數目 + } + + /* 取得最後文章編號 */ + public function getLastPostNo($state){ + if(!$this->prepared) $this->dbPrepare(); + + if($state=='afterCommit'){ // 送出後的最後文章編號 + $lastno = $this->con->query('SELECT MAX(no) FROM '.$this->tablename)->fetch(); + return $lastno[0]; + }else return 0; // 其他狀態沒用 + } + + /* 輸出文章清單 */ + public function fetchPostList($resno=0, $start=0, $amount=0){ + if(!$this->prepared) $this->dbPrepare(); + + $resno = intval($resno); + if($resno){ // 輸出討論串的結構 (含自己, EX : 1,2,3,4,5,6) + $tmpSQL = 'SELECT no FROM '.$this->tablename.' WHERE no = '.$resno.' OR resto = '.$resno.' ORDER BY no'; + }else{ // 輸出所有文章編號,新的在前 + $tmpSQL = 'SELECT no FROM '.$this->tablename.' ORDER BY no DESC'; + $start = intval($start); $amount = intval($amount); + if($amount) $tmpSQL .= " LIMIT {$start}, {$amount}"; // 指定數量 + } + return $this->con->query($tmpSQL)->fetchAll(PDO::FETCH_COLUMN, 0); + } + + /* 輸出討論串清單 */ + public function fetchThreadList($start=0, $amount=0, $isDESC=false) { + if(!$this->prepared) $this->dbPrepare(); + + $tmpSQL = 'SELECT no FROM '.$this->tablename.' WHERE resto = 0 ORDER BY '.($isDESC ? 'no' : 'root').' DESC'; + $start = intval($start); $amount = intval($amount); + if($amount) $tmpSQL .= " LIMIT {$start}, {$amount}"; // 指定數量 + return $this->con->query($tmpSQL)->fetchAll(PDO::FETCH_COLUMN, 0); + } + + /* 輸出文章 */ + public function fetchPosts($postlist){ + if(!$this->prepared) $this->dbPrepare(); + + if(is_array($postlist)){ // 取多串 + $pno = implode(', ', $postlist); // ID字串 + $tmpSQL = 'SELECT * FROM '.$this->tablename.' WHERE no IN ('.$pno.') ORDER BY no'; + if(count($postlist) > 1){ if($postlist[0] > $postlist[1]) $tmpSQL .= ' DESC'; } // 由大排到小 + }else $tmpSQL = 'SELECT * FROM '.$this->tablename.' WHERE no = '.intval($postlist); // 取單串 + $line = $this->con->query($tmpSQL)->fetchAll(); + return $line; + } + + /* 刪除舊附件 (輸出附件清單) */ + public function delOldAttachments($total_size, $storage_max, $warnOnly=true){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + + $arr_warn = $arr_kill = array(); // 警告 / 即將被刪除標記 + ($result = $this->con->query('SELECT no,ext,tim FROM '.$this->tablename.' WHERE ext <> "" ORDER BY no')) or $this->_error_handler('Get the old post failed', __LINE__); + while(list($dno, $dext, $dtim) = $result->fetch(PDO::FETCH_NUM)){ + $dfile = $dtim.$dext; $dthumb = $dtim.'s.jpg'; + if($FileIO->imageExists($dfile)){ $total_size -= $FileIO->getImageFilesize($dfile) / 1024; $arr_kill[] = $dno; $arr_warn[$dno] = 1; } // 標記刪除 + if($FileIO->imageExists($dthumb)) $total_size -= $FileIO->getImageFilesize($dthumb) / 1024; + if($total_size < $storage_max) break; + } + return $warnOnly ? $arr_warn : $this->removeAttachments($arr_kill); + } + + /* 刪除文章 */ + public function removePosts($posts){ + if(!$this->prepared) $this->dbPrepare(); + + $files = $this->removeAttachments($posts, true); // 先遞迴取得刪除文章及其回應附件清單 + $pno = implode(', ', $posts); // ID字串 + if(!$this->con->exec('DELETE FROM '.$this->tablename.' WHERE no IN ('.$pno.') OR resto IN('.$pno.')')) $this->_error_handler('Delete old posts and replies failed', __LINE__); + return $files; + } + + /* 刪除附件 (輸出附件清單) */ + public function removeAttachments($posts, $recursion=false){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + + $files = array(); + $pno = implode(', ', $posts); // ID字串 + if($recursion) $tmpSQL = 'SELECT ext,tim FROM '.$this->tablename.' WHERE (no IN ('.$pno.') OR resto IN('.$pno.")) AND ext <> ''"; // 遞迴取出 (含回應附件) + else $tmpSQL = 'SELECT ext,tim FROM '.$this->tablename.' WHERE no IN ('.$pno.") AND ext <> ''"; // 只有指定的編號 + + ($result = $this->con->query($tmpSQL)) or $this->_error_handler('Get attachments of the post failed', __LINE__); + while(list($dext, $dtim) = $result->fetch(PDO::FETCH_NUM)){ + $dfile = $dtim.$dext; $dthumb = $dtim.'s.jpg'; + if($FileIO->imageExists($dfile)) $files[] = $dfile; + if($FileIO->imageExists($dthumb)) $files[] = $dthumb; + } + return $files; + } + + /* 新增文章/討論串 */ + public function addPost($no, $resto, $md5chksum, $category, $tim, $ext, $imgw, $imgh, $imgsize, $filename, $tw, $th, $pwd, $now, $name, $email, $sub, $com, $host, $age=false, $status='') { + if(!$this->prepared) $this->dbPrepare(); + + $time = (int)substr($tim, 0, -3); // 13位數的數字串是檔名,10位數的才是時間數值 + $updatetime = gmdate('Y-m-d H:i:s'); // 更動時間 (UTC) + if($resto){ // 新增回應 + $root = '0'; + if($age){ // 推文 + $result = $this->con->prepare('UPDATE '.$this->tablename.' SET root = :now WHERE no = :resto'); + $result->execute(array(':now' => $updatetime, ':resto' => $resto)) or $this->_error_handler('Push the post failed', __LINE__); + } + }else $root = $updatetime; // 新增討論串, 討論串最後被更新時間 + + $SQL = 'INSERT INTO '.$this->tablename.' (resto,root,time,md5chksum,category,tim,ext,imgw,imgh,imgsize,filename,tw,th,pwd,now,name,email,sub,com,host,status) VALUES ' + .'(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'; + $PDOStmt = $this->con->prepare($SQL); + $PDOStmt->bindValue(1, $resto, PDO::PARAM_INT); + $PDOStmt->bindValue(2, $root, PDO::PARAM_STR); + $PDOStmt->bindValue(3, $time, PDO::PARAM_INT); + $PDOStmt->bindValue(4, $md5chksum, PDO::PARAM_STR); + $PDOStmt->bindValue(5, $category, PDO::PARAM_STR); + $PDOStmt->bindValue(6, $tim, PDO::PARAM_INT); + $PDOStmt->bindValue(7, $ext, PDO::PARAM_STR); + $PDOStmt->bindValue(8, $imgw, PDO::PARAM_INT); + $PDOStmt->bindValue(9, $imgh, PDO::PARAM_INT); + $PDOStmt->bindValue(10, $imgsize, PDO::PARAM_STR); + $PDOStmt->bindValue(11, $filename, PDO::PARAM_STR); + $PDOStmt->bindValue(12, $tw, PDO::PARAM_INT); + $PDOStmt->bindValue(13, $th, PDO::PARAM_INT); + $PDOStmt->bindValue(14, $pwd, PDO::PARAM_STR); + $PDOStmt->bindValue(15, $now, PDO::PARAM_STR); + $PDOStmt->bindValue(16, $name, PDO::PARAM_STR); + $PDOStmt->bindValue(17, $email, PDO::PARAM_STR); + $PDOStmt->bindValue(18, $sub, PDO::PARAM_STR); + $PDOStmt->bindValue(19, $com, PDO::PARAM_STR); + $PDOStmt->bindValue(20, $host, PDO::PARAM_STR); + $PDOStmt->bindValue(21, $status, PDO::PARAM_STR); + $PDOStmt->execute() or $this->_error_handler('Insert a new post failed', __LINE__); + } + + /* 檢查是否連續投稿 */ + public function isSuccessivePost($lcount, $com, $timestamp, $pass, $passcookie, $host, $isupload){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + + if(!$this->ENV['PERIOD.POST']) return false; // 關閉連續投稿檢查 + $timestamp = intval($timestamp); + $tmpSQL = 'SELECT pwd,host FROM '.$this->tablename.' WHERE time > '.($timestamp - (int)$this->ENV['PERIOD.POST']); // 一般投稿時間檢查 + if($isupload) $tmpSQL .= ' OR time > '.($timestamp - (int)$this->ENV['PERIOD.IMAGEPOST']); // 附加圖檔的投稿時間檢查 (與下者兩者擇一) + else $tmpSQL .= " OR md5(com) = '".md5($com)."'"; // 內文一樣的檢查 (與上者兩者擇一) + $this->con->sqliteCreateFunction('md5', 'md5', 1); // Register MD5 function + ($result = $this->con->query($tmpSQL)) or $this->_error_handler('Get the post to check the succession failed', __LINE__); + while(list($lpwd, $lhost) = $result->fetch(PDO::FETCH_NUM)){ + // 判斷為同一人發文且符合連續投稿條件 + if($host==$lhost || $pass==$lpwd || $passcookie==$lpwd) return true; + } + return false; + } + + /* 檢查是否重複貼圖 */ + public function isDuplicateAttachment($lcount, $md5hash){ + global $FileIO; + if(!$this->prepared) $this->dbPrepare(); + + ($result = $this->con->query('SELECT tim,ext FROM '.$this->tablename.' WHERE ext <> "" AND md5chksum = "'.$md5hash.'" ORDER BY no DESC')) + or $this->_error_handler('Get the post to check the duplicate attachment failed', __LINE__); + while(list($ltim, $lext) = $result->fetch(PDO::FETCH_NUM)){ + if($FileIO->imageExists($ltim.$lext)) return true; // 有相同檔案 + } + return false; + } + + /* 有此討論串? */ + public function isThread($no){ + if(!$this->prepared) $this->dbPrepare(); + + $result = $this->con->query('SELECT no FROM '.$this->tablename.' WHERE no = '.intval($no).' AND resto = 0'); + return $result->fetch() ? true : false; + } + + /* 搜尋文章 */ + public function searchPost($keyword, $field, $method){ + if(!$this->prepared) $this->dbPrepare(); + + $keyword_cnt = count($keyword); + $SearchQuery = 'SELECT * FROM '.$this->tablename." WHERE {$field} LIKE ".$this->con->quote('%'.$keyword[0].'%').""; + if($keyword_cnt > 1) for($i = 1; $i < $keyword_cnt; $i++) $SearchQuery .= " {$method} {$field} LIKE ".$this->con->quote('%'.$keyword[$i].'%'); // 多重字串交集 / 聯集搜尋 + $SearchQuery .= ' ORDER BY no DESC'; // 按照號碼大小排序 + ($line = $this->con->query($SearchQuery)) or $this->_error_handler('Search the post failed', __LINE__); + return $line->fetchAll(); + } + + /* 搜尋類別標籤 */ + public function searchCategory($category){ + if(!$this->prepared) $this->dbPrepare(); + + $result = $this->con->prepare('SELECT no FROM '.$this->tablename.' WHERE lower(category) LIKE :category ORDER BY no DESC'); + $result->execute(array(':category' => '%,'.strtolower($category).',%')); + return $result->fetchAll(PDO::FETCH_COLUMN, 0); + } + + /* 取得文章屬性 */ + public function getPostStatus($status){ + return new FlagHelper($status); // 回傳 FlagHelper 物件 + } + + /* 更新文章 */ + public function updatePost($no, $newValues){ + if(!$this->prepared) $this->dbPrepare(); + + $no = intval($no); + $chk = array('resto', 'md5chksum', 'category', 'tim', 'ext', 'imgw', 'imgh', 'imgsize', 'filename', 'tw', 'th', 'pwd', 'now', 'name', 'email', 'sub', 'com', 'host', 'status'); + foreach($chk as $c){ + if(isset($newValues[$c])){ + if(!$this->con->exec('UPDATE '.$this->tablename." SET $c = ".$this->con->quote($newValues[$c]).' WHERE no = '.$no)) + $this->_error_handler('Update the field of the post failed', __LINE__); // 更新討論串屬性 + } + } + } + + /* 設定文章屬性 */ + public function setPostStatus($no, $newStatus){ + $this->updatePost($no, array('status' => $newStatus)); + } +} +?> \ No newline at end of file diff --git a/lib/pms.php b/lib/pms.php new file mode 100755 index 0000000..ddd2244 --- /dev/null +++ b/lib/pms.php @@ -0,0 +1,116 @@ +loaded = false; // 是否載入完成 (模組及函式) + $this->ENV = $ENV; // 環境變數 + $this->hooks = array_flip(array('Head', 'Toplink', 'LinksAboveBar', 'PostInfo', 'PostForm', + 'ThreadFront', 'ThreadRear', 'ThreadPost', 'ThreadReply', + 'Foot', 'ModulePage', 'RegistBegin', 'RegistBeforeCommit', 'RegistAfterCommit', 'PostOnDeletion', + 'AdminList', 'AdminFunction', 'Authenticate', 'ThreadOrder' + )); + $this->hookPoints = array(); // 掛載點 + $this->moduleInstance = array(); // 存放各模組實體 + $this->moduleLists = array(); // 存放各模組類別名稱 + } + + // 模組載入相關 + /* 載入模組 */ + function init(){ + $this->loaded = true; + $this->loadModules(); + return true; + } + + /* 單載入模式 */ + function onlyLoad($specificModule){ + // 搜尋載入模組列表有沒有,沒有就直接取消程式 + if(array_search($specificModule, $this->ENV['MODULE.LOADLIST'])===false) return false; + $this->loadModules($specificModule); + return isset($this->hookPoints['ModulePage']); + } + + /* 載入擴充模組 */ + function loadModules($specificModule=false){ + $loadlist = $specificModule ? array($specificModule) : $this->ENV['MODULE.LOADLIST']; + foreach($loadlist as $f){ + $mpath = $this->ENV['MODULE.PATH'].$f.'.php'; + if(is_file($mpath) && array_search($f, $this->moduleLists)===false){ + include_once($mpath); + $this->moduleLists[] = $f; + $this->moduleInstance[$f] = new $f(); + } + } + } + + /* 取得載入模組列表 */ + function getLoadedModules(){ + if(!$this->loaded) $this->init(); + return $this->moduleLists; + } + + /* 取得模組實體 */ + function getModuleInstance($module){ + return isset($this->moduleInstance[$module])?$this->moduleInstance[$module]:null; + } + + /* 取得特定模組方法列表 */ + function getModuleMethods($module){ + if(!$this->loaded) $this->init(); + return array_search($module, $this->moduleLists)!==false ? get_class_methods($module) : array(); + } + + // 提供給模組的取用資訊 + /* 取得模組註冊獨立頁面之網址 */ + function getModulePageURL($name){ + return $this->ENV['MODULE.PAGE'].$name; + } + + // 模組掛載與使用相關 + /* 自動掛載相關模組方法於掛載點並回傳掛載點 (Return by Reference) */ + function &__autoHookMethods($hookPoint){ + if(isset($this->hooks[$hookPoint]) && !isset($this->hookPoints[$hookPoint])){ // 尚未掛載 + $this->hookPoints[$hookPoint] = array(); + foreach($this->moduleLists as $m){ + if(method_exists($this->moduleInstance[$m], 'autoHook'.$hookPoint)){ + $this->hookModuleMethod($hookPoint, array(&$this->moduleInstance[$m], 'autoHook'.$hookPoint)); + } + } + } + return $this->hookPoints[$hookPoint]; + } + + /* 將模組方法掛載於特定掛載點 */ + function hookModuleMethod($hookPoint, $methodObject){ + if(!isset($this->hooks[$hookPoint])) return false; + if(!isset($this->hookPoints[$hookPoint]) && $hookPoint != 'ModulePage'){ + if(!$this->loaded) $this->init(); + $this->__autoHookMethods($hookPoint); + } + $this->hookPoints[$hookPoint][] = $methodObject; + } + + /* 使用模組方法 */ + function useModuleMethods($hookPoint, $parameter){ + if(!$this->loaded) $this->init(); + $arrMethod =& $this->__autoHookMethods($hookPoint); // 取得掛載點模組方法 + $imax = count($arrMethod); + for($i = 0; $i < $imax; $i++) call_user_func_array($arrMethod[$i], $parameter); + } +} +?> \ No newline at end of file diff --git a/license b/license new file mode 100755 index 0000000..8224d07 --- /dev/null +++ b/license @@ -0,0 +1,147 @@ +This license is a free software license, compatible with the GNU General +Public License (GPL). It is the minimal set of changes needed to correct +the vagueness of the Original Artistic License. + +Text'ified by Randy McDowell (stainless@users.sourceforge.net). + + + - The Clarified Artistic License - + +i. Preamble + + The intent of this document is to state the conditions under which a + Package may be copied, such that the Copyright Holder maintains some + semblance of artistic control over the development of the package, while + giving the users of the package the right to use and distribute the + Package in a more-or-less customary fashion, plus the right to make + reasonable modifications. + +ii. Definitions: + + "Package" refers to the collection of files distributed by the Copyright + Holder, and derivatives of that collection of files created through + textual modification. + + "Standard Version" refers to such a Package if it has not been modified, + or has been modified in accordance with the wishes of the Copyright + Holder as specified below. + + "Copyright Holder" is whoever is named in the copyright or copyrights + for the package. + + "You" is you, if you're thinking about copying or distributing this + Package. + + "Distribution fee" is a fee you charge for providing a copy of this + Package to another party. + + "Freely Available" means that no fee is charged for the right to use the + item, though there may be fees involved in handling the item. It also + means that recipients of the item may redistribute it under the same + conditions they received it. + +iii. Context + + 1. You may make and give away verbatim copies of the source form of the + Standard Version of this Package without restriction, provided that + you duplicate all of the original copyright notices and associated + disclaimers. + + 2. You may apply bug fixes, portability fixes and other modifications + derived from the Public Domain, or those made Freely Available, or + from the Copyright Holder. A Package modified in such a way shall + still be considered the Standard Version. + + 3. You may otherwise modify your copy of this Package in any way, + provided that you insert a prominent notice in each changed file + stating how and when you changed that file, and provided that you do + at least ONE of the following: + + a) place your modifications in the Public Domain or otherwise make + them Freely Available, such as by posting said modifications to + Usenet or an equivalent medium, or placing the modifications on a + major network archive site allowing unrestricted access to them, + or by allowing the Copyright Holder to include your modifications + in the Standard Version of the Package. + + b) use the modified Package only within your corporation or + organization. + + c) rename any non-standard executables so the names do not conflict + with standard executables, which must also be provided, and + provide a separate manual page for each non-standard executable + that clearly documents how it differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + + e) permit and encourge anyone who receives a copy of the modified + Package permission to make your modifications Freely Available in + some specific way. + + 4. You may distribute the programs of this Package in object code or + executable form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library + files, together with instructions (in the manual page or + equivalent) on where to get the Standard Version. + + b) accompany the distribution with the machine-readable source of the + Package with your modifications. + + c) give non-standard executables non-standard names, and clearly + document the differences in manual pages (or equivalent), together + with instructions on where to get the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + + e) offer the machine-readable source of the Package, with your + modifications, by mail order. + + 5. You may charge a distribution fee for any distribution of this + Package. If you offer support for this Package, you may charge any + fee you choose for that support. You may not charge a license fee + for the right to use this Package itself. You may distribute this + Package in aggregate with other (possibly commercial and possibly + nonfree) programs as part of a larger (possibly commercial and + possibly nonfree) software distribution, and charge license fees for + other parts of that software distribution, provided that you do not + advertise this Package as a product of your own. If the Package + includes an interpreter, You may embed this Package's interpreter + within an executable of yours (by linking); this shall be construed + as a mere form of aggregation, provided that the complete Standard + Version of the interpreter is so embedded. + + 6. The scripts and library files supplied as input to or produced as + output from the programs of this Package do not automatically fall + under the copyright of this Package, but belong to whoever generated + them, and may be sold commercially, and may be aggregated with this + Package. If such scripts or library files are aggregated with this + Package via the so-called "undump" or "unexec" methods of producing a + binary executable image, then distribution of such an image shall + neither be construed as a distribution of this Package nor shall it + fall under the restrictions of Paragraphs 3 and 4, provided that you + do not represent such an executable image as a Standard Version of + this Package. + + 7. C subroutines (or comparably compiled subroutines in other languages) + supplied by you and linked into this Package in order to emulate + subroutines and variables of the language defined by this Package + shall not be considered part of this Package, but are the equivalent + of input as in Paragraph 6, provided these subroutines do not change + the language in any way that would cause it to fail the regression + tests for the language. + + 8. Aggregation of the Standard Version of the Package with a commercial + distribution is always permitted provided that the use of this + Package is embedded; that is, when no overt attempt is made to make + this Package's interfaces visible to the end user of the commercial + distribution. Such use shall not be construed as a distribution of + this Package. + + 9. The name of the Copyright Holder may not be used to endorse or + promote products derived from this software without specific prior + written permission. + + 10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED + WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF + MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. diff --git a/logo.gif b/logo.gif new file mode 100755 index 0000000000000000000000000000000000000000..22cae27f822ae437a1134c5d92a0722d2369912e GIT binary patch literal 101651 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%0D&eo#Tq|#f z$J!^FryX43cabA@oEAGakM}2Ya!7FkQ9u>_)Qw7Y@l;WlSoVwR6Cd{=WLfCB)2A=4 zp6tbQ^-+*7cDZ<}ayY-8Ms$iz1MJydb?ZKT?{NvykEY*F!^^Obx58oUyEBR>I7?A1 z`P=YN`V5CEOP*^M?0sZAM0y%>k}>_y?K$3Jk>{;Vl~G)rSdb|V=zFDA{Ik&$a^-SU zc!em;_Q(>nr>U~t_LbZ-NL0d{^(r%I~>=3 zqvAkD1uR8E>uRy2JZ78W%n-^u}Ui7o~ z`pb@I>5EN)3!Vv(Xwb2mMF(kf$H(mPETNFuwSy&3hu{g{xPt^OUU8)qjEJWhDly+_qe9v9PyH*sfOk6lo zTtoErdxGd!nNqu@zJx`_yz)0k8QZUeZqPMO@L}8>#hq*71}dBtXi%jnZY&FaW_bqs zoQ1nTa|mf>DSn!P+RmbLxn8nZp4mtlFru8JRN@R;`y^ zXgSGwKVkM&(T2>sfcvkm%T({YQdwL0+_e{_A$x8Q82_*PJomGQ-`S)Y?C+ePy|$9Q zu)JZkjG1 zqOY*yq=@Dt|1)$JZcTl07+=B|wTszL1XpmyAajZj@v*N1n$U-_)P z1*Tv8Gj#Q{)Rh-($uC-IPWVtvEd=`7h+R)Xx`%QgVFJ_jqumX0y3)6RSO5@lQysUA zmm~~l+!d)F7x@KHPoU7MB(K`mt$x9`y~nz)Y6ySKoWT*>(D|6@xqmDLxtFU`_GtXV1wcx$}dtC}EN8QzeD~}SQk5}(&HvJ1QGH0Le@Zq+9^Edw6(TfL0 zmNkjLAi9HOoR1`%q=Vs?1J&gxPt?zUvj~DgBQsP83%e7QmWC&~KnKdEzX$>SH}+ZA z0f84`W7Is~D_|4Y0{|iFduRX~ogpU)ML$bT$wc7iXvj2yqrh~!$d!m>5Zpf{i(8_Z zlE$`i7-57dJ}%5a$0Nw;@MbJ}hL;}gnF{~XtYd=tv(*Ver|tn~waBg8W|xRC5>yn+ zSp*kvs#h?QjXjPq7P^3~ zX05ww@S3=DP38S|uTQh|Mf`TwB61@%EDT6djl<+j7K|V+FJ!KO+#4~~V9;HTKWFt+ zW!LrBM;eK)?-2#?7<8ro!Yv5h3c1W3kM3w z8$9kBD<8~NuE`rZ1T+T#1g%=qE|u6i{CZ?PZMwD1=Q|Rn_xBsPO-vRO0b-nK zzlaj`c{cQIby;FR;;t4OCH?B1xA_!UTOZ}>qTrJh%&E?_(` zWSJPiNN?oNTlGl9<3DsX22y7eNKdr7s#3W{v6nmhF^{azTpPe2WnVty?+^Y0_+CH0J4NDLtRWsP@i87=^%!_|x=NHRb6- zElqfk8{zoTkqo-*90>DYC$O+|yGbZL%U<6%=$wyD)a`LzJ>H$d9ENe4!VSQCJV89= z+fj-A+8A3x-O%fOvZ^LxlxfodfH?-ChOE#ZLO~_QPJ+((h^)3e=p}Cj%ZizmTOH*C z^DUbu&e5IO!rwr2kK>r-Qar}#B#@V^}~4A1!)$rbFt`e4&2#l#VH!itHt?0klpsP2F}t)i83D8h(^H!Ax_x zf@w;oU^Js>2dt^aM(<6^Of>ucR zQRWTw7%~8$B&s1F!24w}EeY9+T-re))j%BfJwkvUdc!z$8nTC!F5?XZsnsnPeM(ak z+V3vonYP2=01AVI4?Rcx_Og|eT#G{$3#qfeT10_pA7~8xFpIa zq)O@lrj${ZK{i8SC-htt6~{>@FJ(4RY11A3dChP4`4N3@HFmFz^;6ZrTc^=0KgNb0m;;^Y)<+Ubh;v@kipna zh+OWEu0IM7;8jRhX?IGyI!wCfcDy5P<)tQiMr6zBH)ap5HNv3T`~@^ zyqR)a_$>r4LbseRNsY?GhdG)A3*&vKNIIBa$<0cn;q?n9^9ZL8-wFl9$96 z5*(}>dRggE3MS;>m~)JM|7dfd5Un@jA+~w(V`$mPd!M~k)I;p7SPW3cvRV(8*8#H0 zkYo?2OYI-~0qM+j5B3&tU7zv&(N$d?{8@oRaso2fGawn#r{(Cd?0w-TV`Ln1B61#n zKNtSDu=2<2HRr{k7K%0oIZN5%UqUH=TTDgOc7equa|$iKTdp~B0|}R1zUsMduUkT zLwHfnZH~ip9sm;>_fjkKs9kq9Wm9VXrN$HSq8zAA#ipC8a{keRT7e$SB>Hd+l(}?s zWf${(y#C2R{IX_O^fsf2cn$?+b4R-2NPF4YMq{?8RqDHO5;4cQbptim552GXEO7Dd zPM-iSxmlOean+G$;ANUjr2Bco+SHXFoqmsELh{`|ggX8lxYHN&B=XN|@SUF<4()Lf z_L8Q}1XR0Pm=wjJf+|%@ducJ%%zKJ#NT@?G2ccP3#WIOOhF4X~+=mJfw@az-+#YZp z7sNg%#;(#se74FgwTO@)P9hk^=W%|?MgDz<+R>rh$7#+BGm(v2swrT=Rt~^DP#uCz zcfg&i!=u4pry<~ilqeXh&uOY9Gz1C? z-~$Mz^#TS&A@ZU~y*$;P3X;Arao+_QRghvJ!7GZOr9;z9A0}%S6lLTSi`T7&xXSJ|snA8Pp^X-PatG=s{2b5^*SLpdLS|SPNUMTUqq@ zHejr~XI?O)00EnGff5*#s+jM&jlIgc7*m!_<;a z9K94XSt?zVnBzVzC;_h%nkHUdOG{rGxR~DK5Xj4icnS)HyO31nrDB88>e#ekN}6a& zL7h4`UxKkQC%R=j&3-!7o~Y6CK?oo>Dtti}Tuh_cAn{Uxw0M-Pv*Z*v%M)GRuA$pc zNOyY+bw##?6`fmgCPVNH2%l8p;FyNo7)g|?2rqP7yIE2&{+#8$)O|WcgSOPLOSnqcR=b}=&)3|N2>Fo0X87joGd>{;$x-bMaCo7N6xA~kvOtC3!TIm9~iL1}a zGdcVZv5mW9X7|_3o*vK7|212Hn9uhZd@f>hR5xGIH{X0^u*&dwwN>WoaF*LQmB85= zPrEdya2mf1sE-@SHr()pNMfNvg4Y?#DphZ+m!ZT{@>nlF<(xW;pA0WbyPgb$|H&+z zN%of`S`eYP6S0Nf!s%}E=KpH5bq<}l3T9lNAeRI=}EaXH^D6$vh2ba93$!T?H_`SsbiR zfigLf?axNg^D}JL06%?QEhnN~+`VsHk{aTY0s-9*6EH&Yvrn>x`3h$rfrio6yqe-f z(WMkTx=>O>;eryVzQ}z)8)BGE9>`oWMqyM^g!v1XG=C{s2F@*V@fGxEkPoYD;F*Pl zxvWDLqdh5+a#GbA5EM>!{G(-erf->}JSsKMa6&dl1MIi}E_juz*(y3B=DOyM>ruCS zO;`L}?F>Tf3`JC$DdxvB^nPm)dJ2&H;%SyYc7j0zTj@lb$v-_F0tujtPxXfSlhWy& z)iV;O{L~$_rgEzKack!4#sd9`g-!E$|8$Ze`a#1J{AnR|Co_gO6N?p1$h4wo(^o z_xQUj_1enAHh5S!*%t`-8VRLeBfqvw^F0Lm$U$j>Y7xy411co^mo$TJQzTdaDjMk| z-Gw*-d?3FlM1oxUJ8V13nTxQ8;Y_)|+bmRlGP_@x-zF6NYfY-s8Cmn zsG1=*20>f_YX%+0=*_O=7qn4mK$}Z3p#Z?tmMOJH%>J*aH}HPn@3(_9PH09O39Jnt zrqFN=;)*{<-oQcsC|Aj3K!#n0a2myBx$B_5`% zeqo%J^o!ObB};r^M`H4p)VrOgvtGF*PX&H2`IsGrD_%+}yGj@Obnfnx z>fK@Jt4?=#*zHu~jYWB8Vh!7T)l~b`c z5999-k0|o0k&pP(-h4VhF4D4Z8{aQZ!Jmz4-Nzh;@(hiR3J#p}TwrSQ)3&SGs>kUY zCgz;8u^aj9`U9IiTHUmSjn#+#gb4&*z5O$;DK`E=Y~qvH8_Yjfj(j!QO*gO|ZQB~_U4B-sPN#FYRx|I&%qPd7JH-;2nJ638N)W%_+|z~4Yl014nF zW*piqP)@VICHJ|t9~sF6V#P^5nOc7uxxp8lC*CRR7`y{YbCzSGU};Ma^y$8Ma;r5)w0!OH zhl?mkYggcq!PtGa>HCs1-%SQGE^2?YSz`()tTUCSJd36#@g82x$!M&;a`|VSDp+-K=!vxu8iRKEiW6hh5NO*xy$+Q$=1&D} zUNc0bT;$5{J0ml6s9E;O5TVH;>7XA{E26uzC-^n;x(TLl)+-E=iIOP9A zLMlv%H~v&NnT!<1LcK;X5Ed=LoO;xxH#LuuMfBVH@h?UHMW|uEsO})q?`iGj{6?F* zpnSL_zGsBAo5wqh&y1hz4LsRK{>EBIid-m_>}v36Uw6Vp(E43R4u3sJOe);YtTP91cNw}T@Au#iqP1O~y|c2~N_>#`M&0+B|BwAsmc^{A}{+6JTaQE@P<5eP~VYx@9cnm$P zKxa~4u4OIx2;kfr^U1fV!VrRdOZv$dz+#r(KK$0hQ4eER6_LRkODfTb*Xsup-8!Bs3!?p_m?`V z6W3#m6V6>3&@-dmKOX?2j5z`HQe|#{Im2v+@xyo30>209cyr0I^}MZiM;NPEYeV(5 z#NUG!YiEMRW+5#uRvZW>^tzy5>qxGOAKH47Z~TuAy{dLOz{1H;>5dM~<1F+eX9Y9a zyB*(&qCyX#1U_E3W zRe4p%+-RbqA(sOmK2K9I%h70S!STmY(($|osv$y?JZGM5Fo>U8$;miSD1}#ji=z0n z&~fOBEf_@+RcdGfGJAF>XZD6Gt#Vn$Z^$VYoh|}J^|<0A(=8&4vo4IEMY{DIb@mzU0Hxo@_@2L&>47Z+2k)bPbznH=7uH;^X_7& z)R!-uOhG*SpPMlczE8u;VESkcKh*QKah6h>5sX^|165s@6@3W8I4_pUtjSo0a1nWn zD0CSNSs2m|rjFbG;+&t2sxO(w8aSg$>g!Ev79lXZecE6gG^VeW4#XcYF}1Bz6bORw zpLiQ5pGDFZVSHhcQ7}Z+2<otW0dHZRpv6g*zD^p2)@_EQ zlh@o`@=RBMZ6QXEL9j$L-D~~18%Zq&g!Wr)$rZb5Z#|RMMoC$E(c5qU10j~`g=0I{ zmC|Ht8-Zs~sWgKp>dK2?=yDU!Wh}uZ`-CwZZkQ>A1F09%0Rt^EDpi_0Xd2ZWfz1G( zOReEonpkD|D)z&1VkgvQ^9PhQX{f~&SHw&v1R*4q%cx-n1rU) z%h5T~F?hY2a593w2Mow5%yEM+=e}=V?d|Gq3%zmw)lQ|+K$mq+nSVx|O@S(t)vV1` z8=#Q8e5N@94JpQmexgB>{ez1*l1D#yA+M<}D4RsrDwar?8W-Ysw=uXeTcJ^Epkn?kX8x*p=;d4DXno%e+3 zN>FfwQNM}slZolCj8TZllQEV4&NRd^vB+<+nb%(sc>T9e${IW`9P2^a+mQut6D~k- zNNRNF2O_h(zuwm^tB+P5b<(X^q>v8KZ(9TcIrNXGW#`?=>ERH~o!3!($IVs*XoSiU z7z7h4pLv?*RJF?;4orAn&a_USPh50?9WH z5Wmum(T;A>a0xLUg;dop-}*7emld1t>257LFjgFzB4uW8k1VQDQTCK|4t(7nQ1OTr zB(3B^6Hxe27M**wkF}dK3cqtF4rZv9w#1I})=`#gTMPPDkgg@gS|_eVN%9&CF8f`k zVMirF|A^#p#Mz}JZ&UD3x8YiNno$|=Bi*Yed_rzYDo9rjV2DdKTZh`XxUXfRiP>k7 zH?%Fk>YUK$0=oJG@6-g=rFHN4B8E}7N7 zl9>tVvO)?@_&L`RW#V_hrEwy1fN%ijFMw_dKs@JE4==K`3EfM!`RZlbuC5vT$=bHG z3t#jGnZZ!>K&)$pnOBwR<)zfcJ1){X{-7R zl|THrAF}?&lpUZr*e{Lu6x0vga9@^oSmD#@dYyf`S}FVZSKnX6UCtedu=(4{d0E|X z1nu9Ksp9hsJrBpKLFMl>7c=vc1SL9WRS#6w-=s<@9BK!#8P=EJpfIznbXb#V?MBN< zr!>1BqK#!hyuBc>3n-4Q?vAxl4i-fcy8O#pcMX<`1XaJ)72l3BDctI5&Hg zySoe0cRSO+V@pRje0=KpgMZ(>Kax!g0#@)g|%jDru9d2qy7()ND2RXnI-K}|2Jtf^Z|AZ$UQyn&AG#n zG`ejnM5;J+@dDZ8qTPEX!CH5`n)+~y#A{bGOyTKn;TeP6`7~jL(RYO|u8eN27%cIC z+3uWHboINI3+kQ z0&eLZ0qNB`={KIHTX%p?I(`P^MdmFv)s=E?0@z{*n`%L#Oq1hwWZcoH8yH|Y{L z@Ea~)*_`F_kGq%udAURO+`bV`%8La`fKTv_P2aOazkyWLw*L$R+r{7Pu+hRcpTW3B zK;Mcy?d{AS86LK6`&A*hO4EYIty7eA%y5^U^6Ps${u;*v43mwpbhaz z%L)q9WdMpW54&2}=s?cx0Z+KDULQBQ7RRu#a@z`di`iHx^Oli_!V=ck$01UH{x4C4 zmBbJ{Eh#~iD|uV9Vt&hsOQv1Kwa>@ZIxBPY1zwGO``6ApZ((^<5!-P?O$)E!e^)8> zMAbO({s~BmQ*>Y7t3-sb>^{EyVqe^2RY`{8XG}R_9Vr3e%owP@!{M}%Tk3Dd5y2_< zTD{;xIIYKb;mgA75w9<8T-=(eU;f^$dy!gKK?QC3;y#In!7-|ZIy(II;Uj`Jf0N(q z>}_vzC&XLP;B^P8P2{{Upt<@SSu}$_w7nB^_^e5KpY);3J(Kr_agT7@+qQqP{3(xW z%<~HN`4(e(5XR>;cg%DalLkrzChde~Y3N|LZ1@Gfs5jWlEY5QlBH3^^?WkWoMC<}Y zMstO7?P2oe;CwccSU7%;L?km%Wsd7)1{>0ouo+#je=nZ8X^+b$7s<7AT`@F~|F?hD z(1d^zm7T}t3cVv3-j!RZP@%b7a%om&)w#A@|G9d#;3Zw10utXQLX*?QJ7NDz^t1m4K z84R3D(C3Fb(7#h(U*E;{EUNAt<2A-dEls3kV>7WB|XA7q{pqaj}|mpn;MUQTXHCk}F4Ap?s2?yQS}h z)uw$fCk2!jwT$owhq9+Yl?89Z=X-l<`lKd5s2`;4i#7q1J73IMc+Mv}H%-L(VO9XO z@Y?P@8VPh$@*`rqyc2Sf8c|-d|FH!<>6ac+qc3gM82QF>GHsmVbW>)Zm?IHSrWHAl z$ywU5x@q>7M!(Qu@;!ETT#zX6KmuS!#&h67YA)*?+>$S2+NNH!U8!wWt~{&*2z%R$ z%8z0JsCT`fv{#_X-p3>l-QDT$hag}58M^8vb+ih%`+p7NM_MUjTBE+G6q-=Vh0#m3 zj=1tKRwkk@z zwnj$!OgY#AM<%TdlW7rRFs0-O-94IG#{_nu{P3~YrjCCHPwKCh)CkUNhx|<@448kx zHWO1z4s~CwJw=vZks}gN74_ec9STEtkLAnw#84S&Jg8$)Y&0q}2b$`wir2kGn zC<@7}xRz|77Sz4$^G>STAew#lg}|&kl`yKyIvk?F8?NA#y}9tQa;8F7J6x=@0(*n0 zpt8t^y-08dG|)kmBaCe`>FnesGcQ`GtOQBe1xT!YD5*gQ`L;ZHf0vqY^ll+MtP%&M z^SG26dVAE8RpCABM*c%7qR+Tv=l;=$$l&9IV8+8T{w?B@EvS4n4_}fi?SJiaZ}Ppp zk9|2GBnd{K(hUW^0S_Lfp>gx3H}2Vl8YVUe&VJ+n&OR;N$I$9<^=IT~J9D9a6ktTs3;--CIlnTn9b2ofd8$uJ3FSg63+0R<9dA%p#-`wlYH7vSgTds z-A?fE_6|SbcsIfz_`q*bYA~^$zeIjYH|+WzEh$SPWUrg4dP?Np6tB?>*3%p@rk;_J zz_zRhi&~rQ5;&T(axt_{1_Ms1V|-Pp%jLCzpXc=~ams4o)4(5vB*tY}{`Ui4jkIpbp`%eOw*bLFkt;}7b7c;XNm>`PUcK9OVYX8bcJxYxmy9m@PxFoIPl@=}eo z{+JG@T}>A~edpK27S;ng&QG%=BxCvbii5g5MSk`XgMYTC4)a|e5}HF_2Qp3*ebWP~ ztZtf!B=t|tG2rhpVdu`iW(Vx!=zIL;B=}QgbF1~3!!tmwb?V+QTFeN!N{_Qe1RvC6 z@U!qwXlBSumC(0+p$95qpZmgo{-_`C3uji1=q_B47R6WjXZ2O&8~S>wkX27~fkV>f z&!YbjWz2a*FHHY=|EfG=Kyk%gYrbAlZ^QB`B?YVd1Oq^TbIx%=G@v=ocPBE%wS&m4 zC9`MpNyhdQ{fE1b^j{r|Tj;#?ersjN-MXefi8)fZr@prLut3MTFBP>SW#FUe@5U3M zJ$FU*n1+oeCBKAMZSrAwQ>+@RifjJ|->F7V3I8=*5?YoxN9ECvTB9L1g~LDmxbo#i@y)v?c=Zy?_>!vwxBM>pRn>3B zs+V4XOrx4Z6bEW@2P(4FE6d_5i`8%68K^A#C2`(YrK(>2Y#`LH%H{VG^vum@OIGf^ zbk>H5cs5G$OEUe6Qk|FvVKK#A7G!aG_x7dxN^rQ6!mil)`GETuX`d|pBZAy5$QKj?UNf4>sPa3Fd?V6XU%Q#}V=RXuJKd2>B1H{Ph-|Ji))9q{%CsfTq)6kh1)%NQlC7)AAvul%dqm+zxQF(D&`x9`}q;4 zm?u}ant#dslkW)Y+EYk>+|UrModGic4(;QEp&L>kc~c%N!hje~_0-C-0!e^8LvBI- zz@HxiHQgDvzQ3)P8Xga$8+ZIWZlpDFb$G&0YszbQN-?qG=H2OZt(pAcnKG@}JHxY0 ze~W^K=VJd(-uyc^_xI?yZl5Y(DH;1FOPUh9pse7)1 zeIE!~zM~~9#elXtA6QGsGbAb`XjW?+-YG2iT@RH~JA7jMt(XUALj7fexqM6b{EEuuuL3u}-6wyQy!l=4 z{Hy8t*P#a;LYIHuy!>DClb`9Af8{^<6?^&j%_q;#U#q0=#Qf>Ld3E&ic+khcw$cAR zxoo=jwCm01e_;I!=OqL+EZ0Gxq|mcm36GOQ$a35-YI9)|fwOZsN!c8)b$YU1A;G!L z3X{FjVI59=!RvHBqa+CJLbO`-5`sjbs_%N~P}G1v>Zo_&{Vf8KM-4iV-izlZWWfetiGK5l*0L z&l2SrcGAfP*<7kIf8(s%?491|t9{WOg*_F zB%m2qwYm`1LbhH%4y+t74#=C%#A8?oi2QOsG2meTxT+$`&*WVr2fcNr64TbJ6qc3| za3bTYCt}~Wll~2dZL-B3wpeYe#D8N6UMuea-uy==ud)_P7$X71UAr( z6ZRK1BR?^ZGLwxTFG`Vp;-+Y%@_G+xA-T7AYOc8}RXisUHLPD-8R!BNN#nJduE(*Y z9$FcCC5vQbIuu3=XJM;X>b%2^&nHt05uVrr3%kHf4kwcv;&uk+LeaGj^p7%2suNH) z*g6as;H9FW{5x^gO)7ki&;Z!RB64saq&gQ(f~5L3l0Qff9L@q{hap4kt|Mk>y}TXm z4BdfnuHshpIk^;zJBJ!~fsp6rYUX)yLzleY=p8?D%+nNFf0zdU{r%=kRDKQ$1djlda&$>8B0j#l$-0vp0}l%M*RmdL!mr(=55Uto_^zbD)Z}~ zYq-X`3a^oD#c<(*$dp?mUh?K~*QxgUkLMOPhz8@O1?2BU`wD+*;&G0i#pKrtq9g64tB2ACaDDygUc%=)($(11R?dG z;F`se@B|z)-8}fZi(%?T`co~v5DW~i?Ko5RO)8zq(H0Vwk8+~bG+SIq^nWgU za)KjZ|CrCHrFCtbuTaSe2xep=xEmBq@eNtrW_o4S{U?}!1MI9XKvufZ5WEiDCV5do zAJiDp43{quO1dW}NFTDLhZ`DYyHMnetr!j7SrK0_;If&v-m~bAy6q&^-@W5@WE#f% zs*)98q_MGNajnXW{}el=@;V|v4CBi8)xSxNKhiuy$yN|T>PT09iOpC+s<%im_KPDg-NJx*_4yJH-D|Pl-Gst@};9;;Yak^IN z6t$(RgR3$u8DaLL01!fjxJ$<$l)(%@AS*#9(a={RERN}4qb)hpSO~&#onv0j5XzD@ ze^s)dG1P9YQ)SB+D%VN{8NIu$9V~U}ac6E?Mq>&i8xf+q$()?#L}^4}Va9d^jQn<~ zx4%#6@pl22g~+v>-bj6GFQ9Z5dh%X;9SjZtw9_DRjZ39V;=!-V)ts9KZN9WeD_33F z)L-MZlft*hnB z{aH-Mn${Z70j{6EAcz)ZJ?IjDB$zWc0H&n6j3!HUOMSS$pTquZTD2|kXutX>)$b33 zEsbQ{x4U_Q9RD5DTK(~zMNDO#U@=U&=xun;t&Q}Ri3<%{J&fb%g0=>C;_p8vPU zP$(iYUVFeAN8pj_7%j`e642WnpV0QW9fhU z17-jB!>;X_;P^=4!Y%m5+t*~P$E|!4T+kzjJ_oeO%r|2V`FV@zK@rKLk34Q2rcTs7 zLHQ&7uz(rOvU<2kqg{!)|HlF+cff!e3NEJ=A;})?!Cet+9@oc_re~T14p`p9506*cRkxuBOzpPY;{QOTq zk5P|+;FKcrHca(#EXgJ5PAOK`S~zE40C02Oc@7c8rvkt7r+3rtFvs>!>z~t%ow05; z9a`sy{)6iAEt{qOin#YIk=?%Kf-~cMO`+&P!5$~W$1Dpkbw~bM0F(kUXzoy#*js$c zSHF$&zKyA&O7*D@iMJbC2Cr|$d@}{P9L4z#y74d`K67wyw|hBAIS@TG4C6cU|Kj?b z#XLsCmT&2f!8h03B)X@s$9wMBeB2C)Eq3zL5Q!D5zGrDZ|2X@7@A+Z_UjJ5LWottD zqq`sP8Hix7HYSMnYJWOSwvi;DfsRsWLuHCl@Q270sN2zmQ&GdEW!YEjpn9H0_#jjm0!+2zk=VP`dm1b zju=5vn~&e37R<(*6~j&XceXxz>SFu8?tE;X8du(G$r8H){Hd0hri`f#i~N1UdWG#W z_17~5?VeW=$Fv^%_zaG`Un8pT3jkj724}znf&s048BiP!8tgF}yugCn;^n5$Zw7|- zwTIR)&Htb|8kPy!Xk9!x1{*Iz%&ne{1|RKBLJJobOgfIX4uc7Zj&_-kprNSVA&tP8mwXPL#;uq5R87yUJII2a z@?BQNe{9Y`x<+om0DtyO??`x^B{QE9WzVKV&N3bdvwOTP*@Y(R0H=vW!=;UTpAoDn zZ!swfhWAEI?$uM7x63IE?Cq)kDUe_=AA2w>(PVYeE8$BLt2B?1P~bDJg~^F9SBV2a2B-CCK)L zpS}nTXh83UMoZa5OLPf^)iLPpKezb!+$I%sWnU2e>>NHI7bCjAqCzW#lLpmMVo_lj zqoRI{LjTYuVWwUu6;KmvKD)I#&jvZ!!MtZ?=Ajj=A+cU=vHz zpyop_nu!BWy)TGK`et%QIcW|V4T)YH@rB;gU|fu^W@%wYWtJazF|LGoS%r{wk}~Zb z$}O-3M-=Fg(;#c;cU26t3tNHnItSx0KvEm9fD+22ARvem@QEq}6&3KK(0;}9+Chg& zUsXhG)aZ-_zZR-pXHomP)Cnq5{n{$PGIOr}LB7zt813~Hh4*{NU_jTaXqA^4W#hxp zyU3s_y_$9aw@l|y5Gi#Mio++1$c?^82okZSG8DHgFP|)xw^S5K#>W612e+6Kb+DZQ zu#7LfWCCzehVGg!H zUlN^?6-=9`lAR~`u~36{8U1JJ+(K|!aJN%1D2o5*is1JW)zcNRH%pf1NOis-mHg*? zxwh(=wl>AjVXh6Ic9cGf1P9fS@wx2|>)Zh6;*w%4`xB17yqq65l;H zBv|Dj89aMMdR$&_%e}7QzX_M$m3nwho*D`15rp8V%$SiMHrAt80G=+^=1-U*KfZX* zQW^u_%LU0_-5>kAe0N*o)6Toy%kOt_e;;HtUJ#DK>Gvp%qGVmXt*0_3Yp{pAFgTOY z4(DA|dgeh}F!F9RBT&Zb9Lz)D4lh=ZeQw2tvW70JII{Z+e76GM^39I23~>-}{b70Q zt5pSy)!kyhn<_%D3jO~pL3ed)_7>9>ua;Pe+f5<@J+=i^rr_>$F<7Xmc~ej854x@5 zG8o~4y& zSatz>xiT~|=n~nt(%l4?TpgSA^TXUYUdkuxaN^k2JD$DG18haIUI2Pwr6i=C342J& zgvn2i|6a)2{`7V;kq^LLQlp6>Vf_%L=LoU~N4SzBz%z3;Gb2s6^}QahTXCc(mc-%j z3veWR{YeubhMm!Y0<5k_>3cw zuNVE&k^jX{!6;jS8#^ffrv5FN-Vznzh+DQg(t+uj7?b5stqx@x$z|;bM)#H=_XGQ9 zQKC&TR(AUiFXS8xjY9lJSYoz$^Flb=jYFG^meFtZ{b&|L1w0HKY!9-i zppIi++}62|PpQ?&!|RV?^9Oz=JSaa8#&U-+tHO`JM(Sa7*t*1>k?Pi*5sRPV?mqvWZxYeW zICz$=uCLhA9GiPjk7>~~^ChKPv~^*G+3xGRNqkORo+KH^vJ(-^`m12zrv=}DAH8~h zzR`KTQDwd9M!h9>gRM)0freiyizVHQhHEN`#uc}sC2i%4K5cZD{8AMSn6nEPhrgkm zYD0z4K0;m050hy>C2@;7dy0AqtvVS5%{eq(tE(W6vRG|%l{3>MaWPX#j`uvvQ@;$J z5CBYqI>upPx4J5-Ct&|p5zkD+-TT9{^-xxwx4*hP;1Z7dZzlaxtcI>I`y5~=8s4Zc z${gxNcvHb%Xi}5CWb8Vv`CDW>`sL(3T+5lWN!ii`H}%f7GNrp%8s0@c{`yG`Z+#gD z{r18c&JD$9wG38*ZQj?--63=Zo&W&Fhi)MM*UDYmUw6A>8`5w0XTR!q{(W85RG5k((rHJCIKFc+wP1k8luN_?D{_J3^E94;74BlQ%%hq=HY*toJ7Itb8U#BYz zaENB)l=5Jg@~EUiL%gXMt%RF+SIaETjbjo{`KN8htWh-?Y&PYI_NZL}p6q(; zR|GtUw{m)CCX_Ks^l{%YoasRJnt#2(cX5PT9E4jO)YaZrkrOMvK5(wquT%L@edA&N ztJw#iGHe1h4jmTY?VZB1jCdeBz8F5VzL z@^JqRlb&G!>!@C}p8e7*CA}*5LJczK_6Yzc6{-??_n*b|RUw{ny-o5~%D5xPgg_oG zWc!lT&;+I%7d{>P@{B&Y44^Zv@C2tT@k3Ge2avzMmv&K+mdLqk*JuCSU==Q20O$$E z%#GdXhdOW0z1}S3nY}bP+n~iS=1eE8t|>b(__15_PTx&0dhLN%m?zh5g@P}c3R%mw zVXmZNmaJ|T8r#Qsiv7bc`i&roy^`~|rA|*+pP=Kg7A(jK2L2zr7`-} zSOHfI`1Zq|xtjj>zO^V&a6-Nv2h_uJ92xnZzL zFxlgL!2dBNmsSpV3$2GGLpt!i5sBaxYIDcoBygM8%9g#rEr%7rRlbEKQ&Gtlh0okS zzO4E9?8fV-j&ti5y{VxU83}Z%%ROZJUIr(-y47oSXb?QV$4%UZR}~(ajoJPLPoL8) z6leVJZ}6*dN9hri)d(^#1c1Zsh`o_;+IDir@u1z?$|{y6FQwK>x9@9=oKmGf=d#=I z|9E(7CHC0^u#8bQk#oWM@24$%Q0I1B1k|5zJazUzhgNTdA~W&vxeuNaEpVF=FgbYw zHu)Y8yhZ^z5Z;GSj|y{iuC%X*48OnHo|&Auzpza!#mTmO`9C%sdlEoAhKgMLcl}k( zzYlN!eZD;RTIRAN-A&+*E}TSyT*1Z_P)3r)LFx>9ZMI@g)gXH^OfqW{+W}&9Ta!yw zy<&ab>T*kJT_TU4Rw4KZxt(gm5t!uduefcLqItQI6aU`Eiiw6HuE=Mm2o3;qGpwbB zl&rMa-FJB;!L}**KSyWb*3|pI@v~&aV06Ri?ha-2NQX2?cj-VxK*Wu1X=z7FsUrme zrCS{hf;vJ#MMXqK#ScGz-|ISm!E>(XoOj&!>*kQ1toxHe4QVECJ}c(`TV(&*uJv`h zGMMvfN-y_dX;0=&;@g3^zkhzL%OvrkB6cYGWXZOzu`FJlcm}QZovA_@(~G^*21z0c zqS!MorG)%I^Ia^b6h}h(N0cnyG8*~!1`#Y1Y}bfOG$*e1-};+km1GVR=n0sR$JD`@ z^hcXerO3+Zj1NzmI;F@%#Gjwl)!EQPCaF2nYl0;jk40~1NmIuh&GbZ`opOJ8o=eg9 zHvIE_mu3<~qLt<*C1hy9CCS;gvX?rB~rJXa^ZQU&4>-f4`| zizowu59hj5d17R)1?2N68;d}haQ*du|l`5sdOySOR$^VZ9memNKEg6i@Oif5#q`rFp%D~TrQauX59$nuqkc`+5V)_K{I3A#~CBQ6L5*Vmh z7}V;-BC6B=e3`lS{J;O`6{T>`qFK|Wj*Q%yJnzjen|&T02HdhQpNW?lICc?G z5QGqe(~T5AhlP-~F^;O;(J=|PXpni}a$HfkB*GF!wU95!v5H#rzkdvGsE8T=5Ljn( z87ek9Nu*(IYRff#M1E+V9M<#k!l!E;0~zI4JLw)wJbeCBy*zT^A!f8~+L|270At8} z2R|3MR&^hwO9;>^NqW7FQy~S&$AA51DvyS!M$E`TpN8asCnM+BSb(oDZ+(4s_N5vp zTZKI}kX7FBE}DL)`hMiX#RHo$-nPgL(2c;YF$tc~=l^8OO7ez}*}ClJV3H3i45rod z=6%20S@#}(gSZ*!*;MVcF490xWJfhudz3l>a2Q|o;VbZBjjGm*^s^xEUfab(qppi? zaya6=%W@iXg5lIAO-J;I*(`h*m2s$4WbWFazSMoGw1KAC87c4uD8I<};95@;F&vy~ z$bxzVU(u?Fh=XaaiSDV(ctWBipH%vAU zbF1is?P!pqLbP)jFvAWSDujU3E|8PJ@|*OqxGmstOkmy8&1R>V;*SN-nACMJsMBG^)D|9=b*u3PIz}|_j?oW{v zj{|cUv8*E=r(3mGLg~vk8R*{pRKGrI1%rAL-&hts;Tmp0-u}+Zj88M%p^)L3>*e@h zr%NvEgcSDuW#)pw-ot&W)8Ck_y%e#r!(5sxN6ehD%h&HG$9{`+#8>i>h;(>TLe%cL zs_kQapH@a>o#^Mv7n*2tQm>>CjjPm=c>_6NDAHu=FSEj1f+z$nLW@1;36yOWf)MtM zedHuLT_3;{I~<7NA7so007%l^1~~JoG>G>3$&bAFlFkI1$c6;7)^u2Bw7we9IHTeR z28Hae@n?}#;qq2NIEzfzoF+>>KWZ?2V8fZpKjkM30?mk^5leNZ%+={aa(USwOFCm) zp7|0HE;&_u#FddAp6^W?NCAN#C8ig<7d>egdJU`~FGk7Hs)K^#@Zkr}Qee zeJ801chg+rI6_$)>IA?rt&W}$^(r@t*EoCw!Yoj#a3+E9%( zbBj%(fg{jImhK1W<^1SFgfU?>m~uwjGc-WwP$?IN-)MSr`z<`Jp8Y87X|gQA{ZX1* zQxB&F}VH|q0wc9ipv`m4=2 zd)(6;lS+!H*_8TFKT-ZAA84wfZC$7$U?NJ%I7GBQOn`jbPQT=yvcyqOif2lwzij6Ts=eXG`<`n! zfjh1Ux{>oyS`b_lZjC+OW3y|<67S3fyCS}(3${a&$B@m{1}@bAwo#bn)kuN0cU{N4J+Qi{iLfh8ZKB!3ed6E%2H z=ce07j39*N2>s(jxbVQan|xddsWl0Lwxgy%)GrTeehx~A)=Z1bF~!4L%wAXr1C{!Q zumz`Wpn+)Nd0z_TcUY>v`$xRDESbm{naSMHz1dsh`Ix`>r#o2035D8*t;s7rd5(+? zbqHoJ(XRIKI_REnJgXXqN*2Arqjtdk(oDL=H~qhwUAo1Ts@Yqe@bx>gRmi~;=5g`_ zQb^%HL=@`kqgT329=ykUeVZonz8e0$4Pby_sX2wYjjVSZk5&UvhMD6 zP$h=$J{81IwKJfC@&Q1QM0*Yg9Uer6=iU%0f%165S8A0*j{VVMLpj!%oF4=ONGo2Mq1e!oXa&%A_i=1{0Yd+A61uRNPb3La5AOV$$n4wCJpGk9 zfXF)8^GA9Ig!yMprDe@TXT2ziIQD@Zvl3@nBMr}qKatr{zG4v*m(7pp+A;Ls$G~|| z&jYLRo~S9AQHTtHDlkG9!_9wb(hm8HI4cRZ`n zeW#izjm!OLqRveRdt`_X8VZm+z&55f!xf)JZffd>c+|5M0LV^)PJ|~t z9bA=7D*Do-xEZTNq_Lx8pv2Ak| zxJJG)?FEd6T$1z8PM_4C)B$F`#C@5^LWWNxT+GvXvl~+%>w~`+3QivZc5D3W`M6-R zwwtpn6CPF?t?l_6hAY;Z_b%Ss)b`-;KirbfCq?C>GT|tp+~0IJQfl*mmq@JC=1kS< zKdm+VSZm-?XGB+r)h;!it}}aGXYsMl%q2i8HsGd7{f#JE$Ftyir>FG}JVHMf&`^+= zrdRf&pWFQVQYHwozEipW7}Tj)!I=ide*}f2XoLbE9PB4Jb0#VW-i>`-{!A+&07!Hv zFvKf*nARrJgws0z@NinvohwzLU@D~#A$yc_PAQyKi*7?InsZA0BHD{x-O}2&Du+{l zS~X@aC7=Eu;@1ovY#J&WNK~y5#bqs7&)V{Dxo~?2%Z;ZKgxpB1QVo z+E=P@&?-d+Sv;d6klB_N0g0xwYp!>muK&-a9>}c!cVu`b;uI3mHk@ z#w63`)?6#jen-}nAiZ^w$w^m1O{|JL5c5s(gKgkFMdTx_$0ZsF0Udmk{GdZCAq4+G z`EUEPwVVI~1dFGM$2Ia08j)lOl1wjY%lfY?`(lK>Zl0JyBke1cLkFHg0MAIDZ*eu( zf?bQwgpj8LRN?3IrX3`*Q=9WlW3H?wUp#DX6`~cP=KJ-8_0m1bBi;{QXu0cmbvT%j z0|4JJOwB^YJt(?G6RSBgC-ao~*3g{BbB$`U&7)_+MRvb&ylB~f(2O}pKjck6s@J2h z)qVlJeh>isxfy&oAD*LFVQ@%WMR?2{Q7>^8pz=864q2wJ&7!X(q^~Qp?@3Ev?@V9c zr@jIDesV~_h(-TcNdJUR|Ba}&c_-aF#{sXo+!m4>0<^R1D6}>hIza*yf>HPm1Dl8h z69`ayjYdsEhi1sL0P=%%0Cd3Hc(AVx0T8<7IXvhJYauAylT~NZ)R(R)N+K}&CYzTZ z?e*yJcjQXT)g~t$I%Pbft{vc&vh?_y_u^+Xvr&GWvA$am{o`PbMJjiN#QpoG+;k*h z72gv6DXb*#e#o{{A<%k_Rb$JDRvHK2t>Zxt@_JyPPxNnP-Xb;FgAyp$GFz_w=C}qU z!DaBgKTNdl?Zsglk#torA{&*-4`1b14kip@U0O4G1aN{5oDl210AVAi) zVXt*O0E&m4VI;CqSU;NW75Sz#9?+q{{K!p)1i){rX;2&z!UCRAmqRWn$So*U_MP#NHNqCOZU=Y<2gs-l z+=32>g4^{?BNagOe7VqY9&zO0B9;Vl_Dn2X#5y0^220po*;Gj{YpfOz9xsK(D?Zax z^gyC%Zqvcd2s%wtiqotEN(PEi_r#39F%&D(Mp^-GgW&bSCi>Yy4k?;*4k$NzsKH#q z+x5kA+zbDZmr=sZ3k8|o)!R>(lgwVhfCl3Aen`*N4g$+H{5rV zbwcZ+_U)IBX4(aS2WP8bEgmNi@HVZSe!bkIFVmuwa==nyPS6 zMuABojIU&?JpblJ6(z^zJAR1aln9EsI0#M{19PB;g%4sR@`kh8=$_-?i6F3z0C<$L zCUvI%q^w#>l5OND?&>ZctT_vPxJlBpgP5+px?_$90uZ={4 zTrde@s4go?f{Rl3#v|lOwxBQJx2rO5s}uIk(NK<5=yMXdLy?yEy}TYu{4R;Mj7m$F ztDtlH?e6Cfm5d+n%YUpE_$U)_rzrj7gZPhEx)zRovM#z^Y+lrzTUrjFYyYr~;v)~} zC%f;f0eXb<(gqT5>ha?}2%HPgDumCW0WbjyK7{0RbQa6n8K7zOmH;8rCJ&Crm7*dP z0BF=SEJUMj9J9a*ay1HWN_;`!q8Wz?=LDiI1z?*&e0vW7v#3k(^@h^UK58zw9&kp^B# z8U+=-irsA&8XW)|O%C%S>3CmW=6y2v`V5}VNLpWJf&3J5l|j2MIo>Yuxy_pV$hi>D zi;Mdc4wD7Ilaxma!HiV|XpbSi*7Y}gdmn3G{-}HV!{h4@ugA5m)<0dZ{nUC`s}ev+ zstYKijeNp5#q1i4sV^koyr0r{mL)t*~sD2ibw>j?j{BCBd48#*r&K}OuELmxd9>+hUM64X){!jjVgRo4Tx=?7_CH)`MFS$TI>@f^ z@;&qH*shOuEp}~D1C$ToRBNdkBo_q;OXO#GDx`l)e&$RX5e;+U+|kAvO$+r>W$I#n zs&$}C#j;K0oj_Agp+*xSyoz}=ese5a&@^6`m@AKVs!yn*10CZRnoKADyP|UrDeb@W z3Uv|E!yrDZpxB1_7yI+``aLfeVJNHF6H#pRw=HZE;u^Vi+K(B;>1>?foSO@Q!Z?o; zIbaUliUzb2bz}p2g;7OAdJi-ls>M@1#u4iv^etOMSaU0l^9!#R)Z9I3j?a8n%G<;| zgJi-ezU8wCl}>9Uq@Ht1sS{vvjIx>7J>UGZsf)R?gfyODYV|Z-FuEpNosJrjAkw>$ zpTsVWxID>&MGL`s6Y%IXn%8mYmo)w*n;@}5^nPaI&(@ktEU2vxI^Hi?9o9PER2%73 z=Ry;ckUT62C1#@Sb%^V^fmFUA@y*8CTm$8g;x^ZXZ`j#d82_-d$(BxE!nvwV**o31 zoYAz@|Fo;6DQc;CWvORtsf*r|2qW+>8ib^FZ{))tf|4j0h^W(kP3EL71*16BfCwcI zF{os%Umfb%t5QwEI4JPR&*&5QUxst6@h6?rS0yjwkj2aHBN@%B7u7JV7NpI^JQNQ? zKSgMRt7daYAZ1mP+dy+d>%%bd<=N9Lm2s}V{qF5AI$uX!$8`(lt}FQc!sK3i=04lY z^!(qSzjuv5?@E%3m07N!k_-_g?_mfv(Wim6ce`<1_t_bU9GA#3KJ2W&XYLwv`o!6c zbIYlv!ufBGZbPLK7i&}4(=;OzB+7luKTE9S8{nk7Svp- z6UjCDC}qE9UpWx<`r6~5y49Pe={N6r+nYN*XdM0_^Qco;K-M#Rg|3*bRqLnI%i^sRlsgEbE$H+BoFP!pC9A)&4^;SZFI&{UN;djS!EOcJDp5 zmC!dCwwJFL=1P*(i>ZsM+9EV6S>9e_Le`_AP8AHZue|5ltZ&pTDBTUG@qMdA6FsUT zP*7>=Cvkxv+lv^C`Y(}}|B`<|nb(j;&~Sua($ zSOqCb+PX(gxUuO1GWh*ji_r(^%kdF~4YGccwlU`RHS9A!d^@GAmEHnD~4mJ+`)AEfEhLsjxyv5iwU9MT_4uY zCqTJ6(e8m$V7Ul9chJLYG;atXh;~5}9I?rKkC3bZVAV`2Zsr++(SJsyV5>Octk6z1?)M0$@3g#3t4?+D#JMJSS%CI@uY=vu zXR@D%?o%uno}MnoEtkZe zPZSJKAQAfGA?!}2*`D@VDTIq;tbFxD3h-3uRhKH2rVNpE5fshdaw;Qwj!;kyRY`Z- zf6w?H8#sbO^Cc^*dcX6036p6a`c#*Y$OR+Q82cwNpfq*)e@J2tr=eQ8i*+IduZ(%=Q`N}E>XFh3QSfZGnW*N-g zh#3<(hsXJb)``FYdkK~DRhviLMOPifD%NLrH5Rm9Mpa$+-Lsr=jE#`EcjzI1?_P^L z*tTnsFVePQvvf+grF(V*=_1Sef{&7*6&(b0Rfr|Yc6y%give^J8u~#<#jUh^Sty?j zi}HqZ=bAZa_*S|FonjbYZq3TKQqrw`->dy6Oace`@FtkmsOTv|@Lc}ylAoUG^F?!E zxY5!!cbx-jD07S^uzs7Is)-~zeb6&01F#I0vnuD$ZpiO}`X=Bi*%E!Emt#3jYc zj-;cf@|}qgtjPdY9cF@}O`u;coNh{tu#Oy}m{UuVTvro}|KQrP&) zKla4_G&5EN{CfEDlLp3^NfC)pQ!}r3B<`y{yfJLcuB~yVN9#X>det;*V;b{skQlt}a0m>})nSS-TOUm7-7{ED=H{PUR*A zwMa4yb1jZ^FZm4QF*D&YimR?nthpB=LKSE@F z7L0YY7f9n0OI$&{%?VuO-eX>6F>00<28}(^vO7saaRFLf+Ux-Ql37Pp35K?C98otO z*lI%4+G;&N9=2ohCgvOhE534+q3=_5)=H`0vUzABndyehWYN`Uv!h4!WX1Rn37)1f zQ3#@k5GE8Dlba~pqcZ@>4xA)jI)S5)ha3;}xpRqwGekqOJRAjBDnciyG$6&Kj6%3X zXWw-UIPQ;N1D1%}B*=+&n^LP(Bxz{8Oa3U2>~JN74W@-DUN|$j@ZaSNAbKHfw!14M zhCeAI;k+8)#sNLcC$x}UP&ExLvyr}PUZeA9qbg4*CfS|PbTfpU@`>m{;gQUL#_bIM zH1bUSkR_wM=dzu#)@5V0yxQ(71#02Or#gI2Mq18s&&4tePJ9xj3R=qgYSAbJ%_`u@ z2N*|-KFdf0d>L;gz*Q_TXLLA3LTq(;DM<@Mm)Y|-3- zL|h)7(+MGFE9+*GYJh$MyYCR1VVEOH5IITIoFoPj02cxw46sI^v9lyA#YPCM5u&09 zxp}BBlq84%l7?Hb8Fg5(S!{NpgzsMC=6yP_Jb)Nl5n$8a}F@k9S>t)C`;Tny0pOzUw`&hMDIw%mWVq@K@_Q4x3fox_FVcyffl$*lgtrk4AaM+oLD?}F>m!vH zqw}&$^K$PmPwjL#U8b8m?OHZ?sO>?1-{cIax?a5(KTPW{pDQd#nxdi>6DD)?$l;u%NwOU>=Q@(?tg! z8f8)8p^~Y|;Zr|#bA%2dQ`D5Q(W(FblmPUlr>!IZPR&>`;A%S)a}=(0XrPD=MOz9p zlT1{`fWepqFMbE=I+@OInO2DTemlH4Mx(m$F4QLZJe7%8N|Rj^#F56Nn+xGPum6r} z6C&Jfc(2bzCeI1A%<)tL>RNijGVL0hHcp{hKl}K`rucrBx9c@kj7s(1vq)24B}@V! zQ$n3tDFS3SZiZ8^ik_7(T1~HC&FEUqYbA7HjPde6`gX z5zyOt+4<1M4KjTe8Xk&=_^H^J94CSXAzsuH^?t5DmKSop2Ed=Djxm}ePxg@<;g z_BFE>K{`TiWmav)#+QXNc}~>K@dnZ@x@bjRsyAOn>qke0jIEZ7uS~Iuj2IbY?3GB@ zs5jGFds_@7?3pNCA_y*FOLkiwi%XjAfTnfLXWGAg@8`ZdhH2lHP_=*f;Ya<-pLz?N zU7ya{YZpQG{ugCoYwHzjd|dBJmk5ciw(srU?esfy1N{yQz*~b%L7a1LvCV+Nz-^E@m*2SjkxmS71{{({4hTzHJ7z4>)%UM3v6ne$rMXJ{ z8Cj<{dec`LzF(>gfLO(Ayh@~o{FaB^V6vKdoQgEw*ehe%ZD)TJQxim*S$;T(4?<8_ z8%dC!RB5vyt==~s3$brkM48`E)ZC)wl=Cg#NU2v`47TVFwJ_+dEx!J|i%0Y~@4Tk+ z{J0rHm_lR^O#Ho8JsUE=;h7*$)w9-m3k`j%-My_detG$X-Jp-|?)$-PWbp$}BtY&1 zt-AXsfWCP31r9HKU9vq&-g)9PSzhm(0!{oimKC!I;4J9>7`vPfc=%0Do`xmh8Yjmx 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
    íœ‹LŽ–No“Še“ú‘è–¼“ŠeŽÒƒRƒƒ“ƒgƒzƒXƒg–¼ ^ IP“Y•t
    (Bytes)
    md5
    ‘I‘ð‹LŽ–Noó‘Ô“Še“ú‘è–¼ 庫存功能停止刪除投稿日標題名稱內文主機位置名稱附加圖檔 (Bytes)
    MD5 檢查碼
    &aJ63|4Z~- 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%0D&eo#Tq|#f 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%0Do`xmh8Yjmx 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%0D&eo#Tq|#f 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%0Do`xmh8Yjmx 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%0D&eo#Tq|#f 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%0Do`xmh8Yjmx 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 y6GlWH5{+Zz+53j*#Yj?;jmNO|+nP_7D'.$config['TITLE'].'
    '; +//++++ new +//++++ old + $bbsi++; + } +}else if(!BBSMENU && INDEXBBS && !LISTBBS){ + foreach($board as $dir){ + include('../'.$dir.'/config.php'); + $bbsdat .= ''.$config['TITLE'].'
    '; +//++++ new +//++++ old + $bbsi++; + } +}else if(!BBSMENU && !INDEXBBS && LISTBBS){ + foreach($board as $dir){ + include('../'.$dir.'/config.php'); + echo $config['TITLE'].'
    '; + $bbsdat .= ''.$config['TITLE'].'
    '; +//++++ new +//++++ old + $bbsi++; +// define("$config['TITLE']", ''); + } +} +// print +print_r($bbsdat); +if(LISTBBS) print_r($board); +?> diff --git a/x.phps b/x.phps new file mode 100644 index 0000000..66f4a8b --- /dev/null +++ b/x.phps @@ -0,0 +1,67 @@ +'.TITLE.'
    '; +//++++ new +//++++ old + $bbsi++; + } +}else if(!BBSMENU && INDEXBBS && !LISTBBS){ + foreach($board as $dir){ + include('../'.$dir.'/config.php'); + $bbsdat .= ''.TITLE.'
    '; +//++++ new +//++++ old + $bbsi++; + } +}else if(!BBSMENU && !INDEXBBS && LISTBBS){ + foreach($board as $dir){ + include('../'.$dir.'/config.php'); + echo TITLE.'
    '; + $bbsdat .= ''.TITLE.'
    '; +//++++ new +//++++ old + $bbsi++; + define("TITLE", ''); + } +} +// print +print_r($bbsdat); +if(LISTBBS) print_r($board); +?> diff --git a/yotsubanome.php b/yotsubanome.php new file mode 100755 index 0000000..4b3fb48 --- /dev/null +++ b/yotsubanome.php @@ -0,0 +1,1630 @@ +のgazou.phpを改造したものです。 +配布条件はレッツPHP!に準じます。改造、再配布は自由にどうぞ。 +このスクリプトに関する質問はレッツPHP!にしないようにお願いします。 +最新版はで配布しています。 +ご質問は準備板@四葉の芽までどうぞ。 + +--【スパーキー(④ ^ヮ^)】◆FCr.DTJy2k◆◆/ODv/gdbGrBJVTTiLB/IBFugUUM=◆四葉の芽◇ちゃんねる ## 管理者 ## +******************************** +*/ +define("PIXMICAT_VER", 'yotsubanome '.$ver); // 版本資訊文字 +/* +Pixmicat! : 圖咪貓貼圖版程式 +http://pixmicat.openfoundry.org/ +版權所有 © 2005-2009 Pixmicat! Development Team + +版權聲明: +此程式是基於レッツPHP!的gazou.php、 +双葉ちゃん的futaba.php所改寫之衍生著作程式,屬於自由軟體, +以The Clarified Artistic License作為發佈授權條款。 +您可以遵照The Clarified Artistic License來自由使用、散播、修改或製成衍生著作。 +更詳細的條款及定義請參考隨附"LICENSE"條款副本。 + +發佈這一程式的目的是希望它有用,但沒有任何擔保,甚至沒有適合特定目的而隱含的擔保。 +關於此程式相關的問題請不要詢問レッツPHP!及双葉ちゃん。 + +如果您沒有隨著程式收到一份The Clarified Artistic License副本, +請瀏覽http://pixmicat.openfoundry.org/license/以取得一份。 + +最低運行需求: +PHP 4.3.0 / 27 December 2002 +GD Version 2.0.28 / 21 July 2004 + +建議運行環境: +PHP 4.4.9 或更高版本並開啟 GD 和 Zlib 支援,如支援 ImageMagick 建議使用 +安裝 PHP 編譯快取套件 (如eAccelerator, XCache, APC) 或其他快取套件 (如memcached) 更佳 +如伺服器支援 SQLite, MySQL, PostgreSQL 等請盡量使用 + +設置方法: +根目錄的權限請設為777, +首先將pixmicat.php執行過一遍,必要的檔案和資料夾權限皆會自動設定, +自動設定完成後請刪除或註解起來此檔案底部之init(); // ←■■!程式環境初始化(略)一行, +然後再執行一遍pixmicat.php,即完成初始化程序,可以開始使用。 + +細部的設定請打開config.php參考註解修改,另有 Wiki (http://pixmicat.wikidot.com/pmcuse:config) +說明條目可資參考。 +*/ + +error_reporting(E_ALL); // show all errors for debugging + +/* Enviorment Settings */ +// Do not change unless you renamed the directories +define("PHP_DIRECTORY", '../core/'); // yotsubanome "C:\windows\system\" +define("DATA_DIR", PHP_DIRECTORY.'data/'); // data directory +define("CSS_DIR", DATA_DIR.'css/'); // CSS directory +define("ICON_DIR", DATA_DIR.'icon/'); // icon directory [Graphics of the software go here] +define("TEMP_DIR", PHP_DIRECTORY.'temp/'); // upload content temperary directory +define("TPLT_DIR", DATA_DIR.'tplt/'); // template directory +define("JS_DIR", DATA_DIR.'js/'); // javascript directory +define("SALTFILE", DATA_DIR.'salt.php'); // saltfile for secure t. codes + +include_once(PHP_DIRECTORY.'config.php'); // 引入設定檔 +include_once(PHP_DIRECTORY.'lib/lib_language.php'); // 引入語系 +include_once(PHP_DIRECTORY.'lib/lib_common.php'); // 引入共通函式檔案 +include_once(PHP_DIRECTORY.'lib/lib_fileio.php'); // 引入FileIO +include_once(PHP_DIRECTORY.'lib/lib_pio.php'); // 引入PIO +include_once(PHP_DIRECTORY.'lib/lib_pms.php'); // 引入PMS +include_once(PHP_DIRECTORY.'lib/lib_pte.php'); // 引入PTE外部函式庫 + +$PTE = new PTELibrary(TEMPLATE_FILE); // PTE Library + +/* Lockdown [prevents posting] */ +if(file_exists(PHP_DIRECTORY.'lockdown')){ + if($_POST['mode'] == 'usrdel' || $_GET['mode'] == 'latest' || $_GET['res']){ + echo ""; + }else{ + die('Posting temporarily disabled. Come back later!
    —四葉の芽チーム'); + } +} + +/* 更新記錄檔檔案/輸出討論串 */ +/* ログの全体更新 */ +function updatelog($resno=0,$page_num=-1,$single_page=false){ + global $PIO, $FileIO, $PTE, $PMS, $language, $LIMIT_SENSOR, $style_bar; + + $adminMode = adminAuthenticate('check') && $page_num != -1 && !$single_page; // 前端管理模式 + $adminFunc = ''; // 前端管理選擇 + if($adminMode){ + $adminFunc = ''; + } + $resno = intval($resno); // 編號數字化 + $page_start = $page_end = 0; // 靜態頁面編號 + $inner_for_count = 1; // 內部迴圈執行次數 + $RES_start = $RES_amount = $hiddenReply = $tree_count = $hiddenImage = $hiddenImagP = 0; + $hiddenImagRP = 1; // o++ + $kill_sensor = $old_sensor = false; // 預測系統啟動旗標 + $arr_kill = $arr_old = array(); // 過舊編號陣列 + $pte_vals = array('{$THREADFRONT}'=>'','{$THREADREAR}'=>'','{$SELF}'=>PHP_SELF, + '{$DEL_HEAD_TEXT}' => ''._T('del_head'), + '{$DEL_IMG_ONLY_FIELD}' => '', + '{$DEL_IMG_ONLY_TEXT}' => _T('del_img_only'), + '{$DEL_PASS_TEXT}' => ($adminMode ? $adminFunc : '')._T('del_pass'), + '{$DEL_PASS_FIELD}' => '', + '{$DEL_SUBMIT_BTN}' => ''); + if(is_file(DATA_DIR.CSV_SS)) $pte_vals += array('{$STYLE_BAR}' => '
    Style '.$style_bar); + + if($resno) $pte_vals['{$RESTO}'] = $resno; + + if(!$resno){ + if($page_num==-1){ // remake模式 (PHP動態輸出多頁份) + $threads = $PIO->fetchThreadList(); // 取得全討論串列表 + $PMS->useModuleMethods('ThreadOrder', array($resno,$page_num,$single_page,&$threads)); // "ThreadOrder" Hook Point + $threads_count = count($threads); + $inner_for_count = $threads_count > PAGE_DEF ? PAGE_DEF : $threads_count; + $page_end = ceil($threads_count / PAGE_DEF) - 1; // 頁面編號最後值 + }else{ // 討論串分頁模式 (PHP動態輸出一頁份) + $threads_count = $PIO->threadCount(); // 討論串個數 + if($page_num < 0 || ($page_num * PAGE_DEF) >= $threads_count) error(_T('page_not_found')); // $page_num超過範圍 + $page_start = $page_end = $page_num; // 設定靜態頁面編號 + $threads = $PIO->fetchThreadList($page_num * PAGE_DEF, PAGE_DEF); // 取出分頁後的討論串首篇列表 + $PMS->useModuleMethods('ThreadOrder', array($resno,$page_num,$single_page,&$threads)); // "ThreadOrder" Hook Point + $inner_for_count = count($threads); // 討論串個數就是迴圈次數 + } + }else{ + if(!$PIO->isThread($resno)){ error(_T('thread_not_found')); } + $AllRes = isset($_GET['page_num']) && $_GET['page_num']=='all'; // 是否使用 ALL 全部輸出 + + // 計算回應分頁範圍 + $tree_count = $PIO->postCount($resno) - 1; // 討論串回應個數 + if($tree_count && RE_PAGE_DEF){ // 有回應且RE_PAGE_DEF > 0才做分頁動作 + if($page_num==='all'){ // show all + $page_num = 0; + $RES_start = 1; + $RES_amount = $tree_count; + }else{ + if($page_num==='RE_PAGE_MAX') $page_num = ceil($tree_count / RE_PAGE_DEF) - 1; // 特殊值:最末頁 + if($page_num < 0) $page_num = 0; // 負數 + if($page_num * RE_PAGE_DEF >= $tree_count) error(_T('page_not_found')); + $RES_start = $page_num * RE_PAGE_DEF + 1; // 開始 + $RES_amount = RE_PAGE_DEF; // 取幾個 + } + }elseif($page_num > 0) error(_T('page_not_found')); // 沒有回應的情況只允許page_num = 0 或負數 + else{ $RES_start = 1; $RES_amount = $tree_count; $page_num = 0; } // 輸出全部回應 + + if(USE_RE_CACHE && !$adminMode){ // 檢查快取是否仍可使用 / 頁面有無更動 + $cacheETag = md5(($AllRes ? 'all' : $page_num).'-'.$tree_count); // 最新狀態快取用 ETag + $cacheFile = './cache/'.$resno.'-'.($AllRes ? 'all' : $page_num).'.'; // 暫存快取檔位置 + $cacheGzipPrefix = extension_loaded('zlib') ? 'compress.zlib://' : ''; // 支援 Zlib Compression Stream 就使用 + $cacheControl = isset($_SERVER['HTTP_CACHE_CONTROL']) ? $_SERVER['HTTP_CACHE_CONTROL'] : ''; // 瀏覽器快取控制 + if(isset($_SERVER['HTTP_IF_NONE_MATCH']) && $_SERVER['HTTP_IF_NONE_MATCH'] == '"'.$cacheETag.'"'){ // 再度瀏覽而快取無更動 + header('HTTP/1.1 304 Not Modified'); + header('ETag: "'.$cacheETag.'"'); + return; + }elseif(file_exists($cacheFile.$cacheETag) && $cacheControl != 'no-cache'){ // 有(更新的)暫存快取檔存在 (未強制no-cache) + header('X-Cache: HIT from Pixmicat'); + header('ETag: "'.$cacheETag.'"'); + header('Connection: close'); + readfile($cacheGzipPrefix.$cacheFile.$cacheETag); return; + }else{ + header('X-Cache: MISS from Pixmicat'); + } + } + } + + // 預測過舊文章和將被刪除檔案 + if(PIOSensor::check('predict', $LIMIT_SENSOR)){ // 是否需要預測 + $old_sensor = true; // 標記打開 + $arr_old = array_flip(PIOSensor::listee('predict', $LIMIT_SENSOR)); // 過舊文章陣列 + } + $tmp_total_size = total_size(); // 目前附加圖檔使用量 + $tmp_STORAGE_MAX = STORAGE_MAX * (($tmp_total_size >= STORAGE_MAX) ? 1 : 0.96); // 預估上限值 + if(STORAGE_LIMIT && STORAGE_MAX > 0 && ($tmp_total_size >= $tmp_STORAGE_MAX)){ + $kill_sensor = true; // 標記打開 + $arr_kill = $PIO->delOldAttachments($tmp_total_size, $tmp_STORAGE_MAX); // 過舊附檔陣列 + } + + $PMS->useModuleMethods('ThreadFront', array(&$pte_vals['{$THREADFRONT}'], $resno)); // "ThreadFront" Hook Point + $PMS->useModuleMethods('ThreadRear', array(&$pte_vals['{$THREADREAR}'], $resno)); // "ThreadRear" Hook Point + + // 生成靜態頁面一頁份內容 + for($page = $page_start; $page <= $page_end; $page++){ + $dat = ''; $pte_vals['{$THREADS}'] = ''; + head($dat, $resno); + form($dat, $resno); + // 輸出討論串內容 + for($i = 0; $i < $inner_for_count; $i++){ + // 取出討論串編號 + if($resno) $tID = $resno; // 單討論串輸出 (回應模式) + else{ + if($page_num == -1 && ($page * PAGE_DEF + $i) >= $threads_count) break; // remake 超出索引代表已全部完成 + $tID = ($page_start==$page_end) ? $threads[$i] : $threads[$page * PAGE_DEF + $i]; // 一頁內容 (一般模式) / 多頁內容 (remake模式) + $tree_count = $PIO->postCount($tID) - 1; // 討論串回應個數 + $RES_start = $tree_count - RE_DEF + 1; if($RES_start < 1) $RES_start = 1; // 開始 + $RES_amount = RE_DEF; // 取幾個 + $hiddenReply = $RES_start - 1; // 被隱藏回應數 + } + + // $RES_start, $RES_amount 拿去算新討論串結構 (分頁後, 部分回應隱藏) + $tree = $PIO->fetchPostList($tID); // 整個討論串樹狀結構 + $tree_cut = array_slice($tree, $RES_start, $RES_amount); array_unshift($tree_cut, $tID); // 取出特定範圍回應 + $posts = $PIO->fetchPosts($tree_cut); // 取得文章架構內容 + $posts_img = $PIO->fetchPosts($tree); // o++ + $pte_vals['{$THREADS}'] .= arrangeThread($PTE, $tree, $tree_cut, $posts, $hiddenReply, $resno, $arr_kill, $arr_old, $kill_sensor, $old_sensor, true, $adminMode, $hiddenImage, $hiddenImagP, $hiddenImagRP, $posts_img); // 交給這個函式去搞討論串印出 + } + $pte_vals['{$PAGENAV}'] = '
    '; + + // 換頁判斷 + $prev = ($resno ? $page_num : $page) - 1; + $next = ($resno ? $page_num : $page) + 1; + if($resno){ // 回應分頁 + if(RE_PAGE_DEF > 0){ // 回應分頁開啟 + $pte_vals['{$PAGENAV}'] .= '
    '; + $pte_vals['{$PAGENAV}'] .= ($prev >= 0) ? ''._T('prev_page').'' : _T('first_page'); + $pte_vals['{$PAGENAV}'] .= ""; + if($tree_count==0) $pte_vals['{$PAGENAV}'] .= '[0] '; // 無回應 + else{ + for($i = 0, $len = $tree_count / RE_PAGE_DEF; $i < $len; $i++){ + if(!$AllRes && $page_num==$i) $pte_vals['{$PAGENAV}'] .= '['.$i.'] '; + else $pte_vals['{$PAGENAV}'] .= '['.$i.'] '; + } + $pte_vals['{$PAGENAV}'] .= $AllRes ? '['._T('all_pages').'] ' : ($tree_count > RE_PAGE_DEF ? '['._T('all_pages').'] ' : ''); + } + $pte_vals['{$PAGENAV}'] .= ''; + $pte_vals['{$PAGENAV}'] .= (!$AllRes && $tree_count > $next * RE_PAGE_DEF) ? ''._T('next_page').'' : _T('last_page'); + $pte_vals['{$PAGENAV}'] .= '
    '."\n"; + } + }else{ // 一般分頁 + $pte_vals['{$PAGENAV}'] .= ''; + if($prev >= 0){ + if(!$adminMode && $prev==0) $pte_vals['{$PAGENAV}'] .= ''; + }else $pte_vals['{$PAGENAV}'] .= ''; + $pte_vals['{$PAGENAV}'] .= ''; + if($threads_count > $next * PAGE_DEF){ + if($adminMode || (STATIC_HTML_UNTIL != -1) && ($next > STATIC_HTML_UNTIL)) $pte_vals['{$PAGENAV}'] .= ''; + }else $pte_vals['{$PAGENAV}'] .= ''; + $pte_vals['{$PAGENAV}'] .= '
    '; + else{ + if($adminMode || (STATIC_HTML_UNTIL != -1) && ($prev > STATIC_HTML_UNTIL)) $pte_vals['{$PAGENAV}'] .= '
    '; + else $pte_vals['{$PAGENAV}'] .= ''; + } + $pte_vals['{$PAGENAV}'] .= '
    '._T('first_page').''; + for($i = 0, $len = $threads_count / PAGE_DEF; $i < $len; $i++){ + if($page==$i) $pte_vals['{$PAGENAV}'] .= "[".$i."] "; + else{ + $pageNext = ($i==$next) ? ' rel="next"' : ''; + if(!$adminMode && $i==0) $pte_vals['{$PAGENAV}'] .= '[0] '; + elseif($adminMode || (STATIC_HTML_UNTIL != -1 && $i > STATIC_HTML_UNTIL)) $pte_vals['{$PAGENAV}'] .= '['.$i.'] '; + else $pte_vals['{$PAGENAV}'] .= '['.$i.'] '; + } + } + $pte_vals['{$PAGENAV}'] .= '
    '; + else $pte_vals['{$PAGENAV}'] .= '
    '; + $pte_vals['{$PAGENAV}'] .= '
    '._T('last_page').'
    '."\n"; + } + $pte_vals['{$PAGENAV}'] .= '
    +
    '; + $dat .= $PTE->ParseBlock('MAIN', $pte_vals); + foot($dat); + + // 存檔 / 輸出 + if($single_page || ($page_num == -1 && !$resno)){ // 靜態快取頁面生成 + if($page==0) $logfilename = PHP_SELF2; + else $logfilename = $page.PHP_EXT; + $fp = fopen($logfilename, 'w'); + stream_set_write_buffer($fp, 0); + fwrite($fp, $dat); + fclose($fp); + @chmod($logfilename, 0666); + if(STATIC_HTML_UNTIL != -1 && STATIC_HTML_UNTIL==$page) break; // 頁面數目限制 + }else{ // PHP 輸出 (回應模式/一般動態輸出) + if(USE_RE_CACHE && !$adminMode && $resno && !isset($_GET['upseries'])){ // 更新快取 + if($oldCaches = glob($cacheFile.'*')){ + foreach($oldCaches as $o) unlink($o); // 刪除舊快取 + } + $fp = fopen($cacheGzipPrefix.$cacheFile.$cacheETag, 'w'); + fwrite($fp, $dat); + fclose($fp); + @chmod($cacheFile.$cacheETag, 0666); + header('ETag: "'.$cacheETag.'"'); + header('Connection: close'); + } + echo $dat; + break; + } + } +} + +/* 輸出討論串架構 */ +function arrangeThread($PTE, $tree, $tree_cut, $posts, $hiddenReply, $resno=0, $arr_kill, $arr_old, $kill_sensor, $old_sensor, $showquotelink=true, $adminMode=false, $hiddenImage, $hiddenImagP, $hiddenImagRP, $posts_img){ + global $PIO, $FileIO, $PMS, $language; + + $thdat = ''; // 討論串輸出碼 + $posts_count = count($posts); // 迴圈次數 + if($hiddenReply) $posts_img_count = count($posts_img); // o++ + if(gettype($tree_cut) == 'array') $tree_cut = array_flip($tree_cut); // array_flip + isset 搜尋法 + if(gettype($tree) == 'array') $tree_clone = array_flip($tree); + if($hiddenReply){ // o++ + // $o = 0 (首篇), $o = 1~n (回應) //++++---- for($o = 0; $o < $posts_img_count; $o++){ // o++ + extract($posts_img[$o]); // o++ + if($ext && $FileIO->imageExists($tim.$ext)) $hiddenImage++; // o++ all images in thread + } + // $oo = 0 (首篇), $oo = 1~n (回應) //++++---- + for($oo = 0; $oo < $posts_count; $oo++){ // o++ + extract($posts[$oo]); // o++ + if($oo) if($ext && $FileIO->imageExists($tim.$ext)) $hiddenImagP++; // o++ reply images in index + elseif(!$ext && !$FileIO->imageExists($tim.$ext)) $hiddenImagRP = 0; // o++ opening thread image in index + } + + // A little math is done to get the total number of omitted images + $hiddenImgs = ($hiddenImage - $hiddenImagP) - $hiddenImagRP; // o++ + } + + // Actually beginning the REAL post extraction + // $i = 0 (首篇), $i = 1~n (回應) + for($i = 0; $i < $posts_count; $i++){ + $imgsrc = $img_thumb = $imgwh_bar = $imgfn_bar = ''; + $IMG_BAR = $REPLYBTN = $QUOTEBTN = $WARN_OLD = $WARN_BEKILL = $WARN_ENDREPLY = $WARN_HIDEPOST = ''; + extract($posts[$i]); // 取出討論串文章內容設定變數 + + if($no == 0) break; // Do not display post 0 + + // 設定欄位值 + $name = str_replace('&'.TRIP_KEY, '&'.TRIP_KEY, $name); // 避免 &#xxxx; 後面被視為 Trip 留下 & 造成解析錯誤 + if(CLEAR_SAGE) $email = preg_replace('/^sage( *)/i', '', trim($email)); // 清除E-mail中的「sage」關鍵字 + //Tripcode indicator // t++ //++++---- + $tripkeycount = substr_count($name, TRIP_KEY); + if(ALLOW_NONAME==2){ // 強制砍名 + if($tripkeycount==1) $name = preg_match('/(\\'.TRIP_KEY.'.{10})/', $name, $matches) ? ''.$matches[1].'' : ''; + if($tripkeycount==2) $name = preg_match('/(\\'.TRIP_KEY.TRIP_KEY.'.{16})/', $name, $matches) ? ''.$matches[1].'' : ''; + if($tripkeycount==3) $name = preg_match('/(\\'.TRIP_KEY.'.{32})/', $name, $matches) ? ''.$matches[1].'' : ''; + if($email) $now = "$now"; + }else{ + if($tripkeycount==1) $name = preg_replace('/(\\'.TRIP_KEY.'.{10})/', '$1', $name); // Trip取消粗體 + if($tripkeycount==2) $name = preg_replace('/(\\'.TRIP_KEY.TRIP_KEY.'.{16})/', '$1', $name); // Trip取消粗體 + if($tripkeycount==3) $name = preg_replace('/(\\'.TRIP_KEY.'.{32})/', '$1', $name); // Trip取消粗體 + if($email) $name = "$name"; + } + + if(AUTO_LINK) $com = auto_link($com); + $com = quoteLight($com); + $com = quoteLight2($com); + if(!$resno && MAX_LINES) list($com, $abbreviated) = abbreviate($com, MAX_LINES); + if(isset($abbreviated) && $abbreviated && MAX_LINES) $com .= '
    '._T('long_comment').''._T('long_here').''._T('long_see').''; + + if(USE_QUOTESYSTEM && $i){ // 啟用引用瀏覽系統 + if(preg_match_all('/((?:>|>)+)(?:No\.)?(\d+)/i', $com, $matches, PREG_SET_ORDER)){ // 找尋>>No.xxx + $matches_unique = array(); + foreach($matches as $val){ if(!in_array($val, $matches_unique)) array_push($matches_unique, $val); } + foreach($matches_unique as $val){ + if(isset($tree_clone[$val[2]])){ + $r_page = $tree_clone[$val[2]]; // 引用回應在整體討論串中的位置 + // 在此頁顯示區間內,輸出錨點即可 + if(isset($tree_cut[$val[2]])) $com = str_replace($val[0], ''.$val[0].'', $com); + // 非此頁顯示區間,輸出完整頁面位置 + else $com = str_replace($val[0], ''.$val[0].'', $com); + } + } + } + } + + // 設定附加圖檔顯示 + if($ext && !$FileIO->imageExists($tim.$ext)){ + $imgsrc = ''.$imgsize.''; + }elseif($ext && $FileIO->imageExists($tim.$ext)){ + $imageURL = $FileIO->getImageURL($tim.$ext); // image URL + $thumbURL = $FileIO->getImageURL($tim.'s.jpg'); // thumb URL + + //----$imgsrc = ''.$imgsize.''; // 預設顯示圖樣式 (無預覽圖時) + $imgsrc = ''._T('nothumb').''; // 預設顯示圖樣式 (無預覽圖時) + if($tw && $th){ + if($FileIO->imageExists($tim.'s.jpg')){ // 有預覽圖 + $img_thumb = '
    '._T('img_sample').''; + $imgsrc = ''.$imgsize.''; + }elseif($ext=='.swf') $imgsrc = ''; // swf檔案不需預覽圖 + } + if(SHOW_IMGWH) $imgwh_bar = ', '.$imgw.'x'.$imgh; // 顯示附加圖檔之原檔長寬尺寸 + if(SHOW_FILENAME){ + $longname = $shortname = ''; + if($filename){ + $longname = $filename.$ext; + if(strlen($filename) > 40) $shortname = substr($filename, 0, 40).'(....)'.$ext; + else $shortname = $longname; + } + } + if($longname) $imgfn_bar = ', '.$shortname.''; + $IMG_BAR = ''._T('img_filename').''.$tim.$ext.'-('.$imgsize.$imgwh_bar.$imgfn_bar.')'.$img_thumb; + } + + // 設定回應 / 引用連結 + if($resno){ // 回應模式 + if($showquotelink) $QUOTEBTN = 'No.'.$no.''; + else $QUOTEBTN = 'No.'.$no.''; + }else{ + if(!$i) $REPLYBTN = '['._T('reply_btn').']'; // 首篇 + $QUOTEBTN = 'No.'.$no.''; + } + if($adminMode){ // 前端管理模式 + $modFunc = ''; + $PMS->useModuleMethods('AdminList', array(&$modFunc, $posts[$i], $resto)); // "AdminList" Hook Point + $QUOTEBTN .= $modFunc; + } + + // 設定討論串屬性 + if(STORAGE_LIMIT && $kill_sensor) if(isset($arr_kill[$no])) $WARN_BEKILL = ''._T('warn_sizelimit').'
    '."\n"; // 預測刪除過大檔 + if(!$i){ // 首篇 Only + if($old_sensor) if(isset($arr_old[$no])) $WARN_OLD = ''._T('warn_oldthread').'
    '."\n"; // 快要被刪除的提示 + $flgh = $PIO->getPostStatus($status); + if($flgh->exists('TS')) $WARN_ENDREPLY = ''._T('warn_locked').'
    '."\n"; // 被標記為禁止回應 + if($hiddenReply) $WARN_HIDEPOST = ''._res($hiddenReply, $hiddenImgs)._T('notice_omitted_reply').'
    '."\n"; // 有隱藏的回應 + } + // 對類別標籤作自動連結 + if(USE_CATEGORY){ + $ary_category = explode(',', str_replace(',', ',', $category)); $ary_category = array_map('trim', $ary_category); + $ary_category_count = count($ary_category); + $ary_category2 = array(); + for($p = 0; $p < $ary_category_count; $p++){ + if($c = $ary_category[$p]) $ary_category2[] = ''.$c.''; + } + $category = implode(', ', $ary_category2); + }else $category = ''; + + // 最終輸出處 + if($i){ // 回應 + $arrLabels = array('{$NO}'=>$no, '{$SUB}'=>$sub, '{$NAME}'=>$name, '{$NOW}'=>$now, '{$COM}'=>$com, '{$CATEGORY}'=>$category, '{$QUOTEBTN}'=>$QUOTEBTN, '{$IMG_BAR}'=>$IMG_BAR, '{$IMG_SRC}'=>$imgsrc, '{$WARN_BEKILL}'=>$WARN_BEKILL, '{$QUOTEBTN}'=>$QUOTEBTN, '{$NAME_TEXT}'=>_T('post_name'), '{$CATEGORY_TEXT}'=>_T('post_category'), '{$SELF}'=>PHP_SELF); + if($resno) $arrLabels['{$RESTO}']=$resno; + $PMS->useModuleMethods('ThreadReply', array(&$arrLabels, $posts[$i], $resno)); // "ThreadReply" Hook Point + $thdat .= $PTE->ParseBlock('REPLY',$arrLabels); + }else{ // 首篇 + $arrLabels = array('{$NO}'=>$no, '{$SUB}'=>$sub, '{$NAME}'=>$name, '{$NOW}'=>$now, '{$COM}'=>$com, '{$CATEGORY}'=>$category, '{$QUOTEBTN}'=>$QUOTEBTN, '{$REPLYBTN}'=>$REPLYBTN, '{$IMG_BAR}'=>$IMG_BAR, '{$IMG_SRC}'=>$imgsrc, '{$WARN_OLD}'=>$WARN_OLD, '{$WARN_BEKILL}'=>$WARN_BEKILL, '{$WARN_ENDREPLY}'=>$WARN_ENDREPLY, '{$WARN_HIDEPOST}'=>$WARN_HIDEPOST, '{$NAME_TEXT}'=>_T('post_name'), '{$CATEGORY_TEXT}'=>_T('post_category'), '{$SELF}'=>PHP_SELF); + if($resno) $arrLabels['{$RESTO}']=$resno; + $PMS->useModuleMethods('ThreadPost', array(&$arrLabels, $posts[$i], $resno)); // "ThreadPost" Hook Point + $thdat .= $PTE->ParseBlock('THREAD',$arrLabels); + } + } + $thdat .= $PTE->ParseBlock('THREADSEPARATE',($resno)?array('{$RESTO}'=>$resno):array()); + return $thdat; +} + +/* 寫入記錄檔 */ +/* 記事書き込み */ +function regist(){ + global $PIO, $FileIO, $PMS, $language, $BAD_STRING, $BAD_FILEMD5, $BAD_IPADDR, $LIMIT_SENSOR; + $dest = ''; $mes = ''; $up_incomplete = 0; $is_admin = false; + $path = realpath('.').DIRECTORY_SEPARATOR; // 此目錄的絕對位置 + + if($_SERVER['REQUEST_METHOD'] != 'POST') error(_T('regist_notpost')); // 非正規POST方式 + // 欄位陷阱 + $FTname = isset($_POST['name']) ? $_POST['name'] : ''; + $FTemail = isset($_POST['email']) ? $_POST['email'] : ''; + $FTsub = isset($_POST['sub']) ? $_POST['sub'] : ''; + $FTcom = isset($_POST['com']) ? $_POST['com'] : ''; + $FTreply = isset($_POST['reply']) ? $_POST['reply'] : ''; + if($FTname != 'spammer' || $FTemail != 'foo@foo.bar' || $FTsub != 'DO NOT FIX THIS' || $FTcom != 'EID OG SMAPS' || $FTreply != '') error(_T('regist_nospam')); + + $name = isset($_POST[FT_NAME]) ? CleanStr($_POST[FT_NAME]) : ''; + $email = isset($_POST[FT_EMAIL]) ? CleanStr($_POST[FT_EMAIL]) : ''; + $sub = isset($_POST[FT_SUBJECT]) ? CleanStr($_POST[FT_SUBJECT]) : ''; + $com = isset($_POST[FT_COMMENT]) ? $_POST[FT_COMMENT] : ''; + $pwd = isset($_POST['pwd']) ? $_POST['pwd'] : ''; + $category = isset($_POST['category']) ? CleanStr($_POST['category']) : ''; + $resto = isset($_POST['resto']) ? intval($_POST['resto']) : 0; + $upfile = isset($_FILES['upfile']['tmp_name']) ? $_FILES['upfile']['tmp_name'] : ''; + $upfile_path = isset($_POST['upfile_path']) ? $_POST['upfile_path'] : ''; + $upfile_name = isset($_FILES['upfile']['name']) ? $_FILES['upfile']['name'] : false; + $ext_ = ereg_replace("^.*\\.", ".", $upfile_name); // filename extention + $basename = basename($upfile_name, $ext_); // filename + $filename = isset($basename) ? CleanStr($basename) : ''; // cleaned filename + $upfile_status = isset($_FILES['upfile']['error']) ? $_FILES['upfile']['error'] : 4; + $pwdc = isset($_COOKIE['pwdc']) ? $_COOKIE['pwdc'] : ''; + $ip = getREMOTE_ADDR(); $host = gethostbyaddr($ip); + + $PMS->useModuleMethods('RegistBegin', array(&$name, &$email, &$sub, &$com, array('file'=>&$upfile, 'path'=>&$upfile_path, 'name'=>&$upfile_name, 'status'=>&$upfile_status), array('ip'=>$ip, 'host'=>$host), $resto)); // "RegistBegin" Hook Point + // 封鎖:IP/Hostname/DNSBL 檢查機能 + $baninfo = ''; + if(BanIPHostDNSBLCheck($ip, $host, $baninfo)) error(_T('regist_ipfiltered', $baninfo)); + // 封鎖:限制出現之文字 + foreach($BAD_STRING as $value){ + if(strpos($com, $value)!==false || strpos($sub, $value)!==false || strpos($name, $value)!==false || strpos($email, $value)!==false){ + error(_T('regist_wordfiltered')); + } + } + + // 檢查是否輸入櫻花日文假名 + foreach(array($name, $email, $sub, $com) as $anti) if(anti_sakura($anti)) error(_T('regist_sakuradetected')); + + // 時間 + $time = time(); + $tim = $time.substr(microtime(),2,3); + $tome = time()+0*60*60; + + // 判斷上傳狀態 + switch($upfile_status){ + case 1: + error(_T('regist_upload_exceedphp')); + break; + case 2: + error(_T('regist_upload_exceedcustom')); + break; + case 3: + error(_T('regist_upload_incompelete')); + break; + case 6: + error(_T('regist_upload_direrror')); + break; + case 4: // 無上傳 + if(NO_TEXTONLY == 2){ + if(!$resto) error(_T('regist_upload_noimg')); + }elseif(NO_TEXTONLY == 1){ + if(!$resto && !isset($_POST['noimg'])) error(_T('regist_upload_noimg')); + } + break; + case 0: // 上傳正常 + default: + } + + // 如果有上傳檔案則處理附加圖檔 + if($upfile && (@is_uploaded_file($upfile) || @is_file($upfile))){ + // 一‧先儲存檔案 + $dest = $path.TEMP_DIR.$tim.'.temp'; + @move_uploaded_file($upfile, $dest) or @copy($upfile, $dest); + @chmod($dest, 0666); + if(!is_file($dest)) error(_T('regist_upload_filenotfound'), $dest); + + // 二‧判斷上傳附加圖檔途中是否有中斷 + $upsizeTTL = $_SERVER['CONTENT_LENGTH']; + if(isset($_FILES['upfile'])){ // 有傳輸資料才需要計算,避免作白工 + $upsizeHDR = 0; + // 檔案路徑:IE附完整路徑,故得從隱藏表單取得 + $tmp_upfile_path = $upfile_name; + if($upfile_path) $tmp_upfile_path = get_magic_quotes_gpc() ? stripslashes($upfile_path) : $upfile_path; + list(,$boundary) = explode('=', $_SERVER['CONTENT_TYPE']); + foreach($_POST as $header => $value){ // 表單欄位傳送資料 + $upsizeHDR += strlen('--'.$boundary."\r\n"); + $upsizeHDR += strlen('Content-Disposition: form-data; name="'.$header.'"'."\r\n\r\n".(get_magic_quotes_gpc()?stripslashes($value):$value)."\r\n"); + } + // 附加圖檔欄位傳送資料 + $upsizeHDR += strlen('--'.$boundary."\r\n"); + $upsizeHDR += strlen('Content-Disposition: form-data; name="upfile"; filename="'.$tmp_upfile_path."\"\r\n".'Content-Type: '.$_FILES['upfile']['type']."\r\n\r\n"); + $upsizeHDR += strlen("\r\n--".$boundary."--\r\n"); + $upsizeHDR += $_FILES['upfile']['size']; // 傳送附加圖檔資料量 + // 上傳位元組差值超過 HTTP_UPLOAD_DIFF:上傳附加圖檔不完全 + if(($upsizeTTL - $upsizeHDR) > HTTP_UPLOAD_DIFF){ + if(KILL_INCOMPLETE_UPLOAD){ + unlink($dest); + die(_T('regist_upload_killincomp')); // 給瀏覽器的提示,假如使用者還看的到的話才不會納悶 + }else $up_incomplete = 1; + } + } + + // 三‧檢查是否為可接受的檔案 + $size = @getimagesize($dest); + if(!is_array($size)) error(_T('regist_upload_notimage'), $dest); // $size不為陣列就不是圖檔 + $imgsize = @filesize($dest); // 檔案大小 + if(!KB) $imgsize .= ' B'; // B only + else $imgsize = ($imgsize>=1024) ? (int)($imgsize/1024).' KB' : $imgsize.' B'; // KB和B的判別 + switch($size[2]){ // 判斷上傳附加圖檔之格式 + case 1 : $ext = ".gif"; break; + case 2 : $ext = ".jpg"; break; + case 3 : $ext = ".png"; break; + case 4 : $ext = ".swf"; break; + case 5 : $ext = ".psd"; break; + case 6 : $ext = ".bmp"; break; + case 7 : $ext = ".tiff"; break; + case 8 : $ext = ".tiff"; break; + case 9 : $ext = ".jpc"; break; + case 10 : $ext = ".jp2"; break; + case 11 : $ext = ".jpx"; break; + case 12 : $ext = ".jb2"; break; + case 13 : $ext = ".swf"; break; + case 14 : $ext = ".aiff"; break; + case 15 : $ext = ".wbmp"; break; + case 16 : $ext = ".xbm"; break; + default : $ext = ".xxxx"; error(_T('regist_upload_notsupport'), $dest); + } + $allow_exts = explode('|', strtolower(ALLOW_UPLOAD_EXT)); // 接受之附加圖檔副檔名 + if(array_search(substr($ext, 1), $allow_exts)===false) error(_T('regist_upload_notsupport'), $dest); // 並無在接受副檔名之列 + // 封鎖設定:限制上傳附加圖檔之MD5檢查碼 + $md5chksum = md5_file($dest); // 檔案MD5 + if(array_search($md5chksum, $BAD_FILEMD5)!==FALSE) error(_T('regist_upload_blocked'), $dest); // 在封鎖設定內則阻擋 + + // 四‧計算附加圖檔圖檔縮圖顯示尺寸 + $W = $imgW = $size[0]; + $H = $imgH = $size[1]; + $MAXW = $resto ? MAX_RW : MAX_W; + $MAXH = $resto ? MAX_RH : MAX_H; + if($W > $MAXW || $H > $MAXH){ + $W2 = $MAXW / $W; + $H2 = $MAXH / $H; + $key = ($W2 < $H2) ? $W2 : $H2; + $W = ceil($W * $key); + $H = ceil($H * $key); + } + $mes = _T('regist_uploaded', CleanStr($upfile_name)); + } + + // 檢查表單欄位內容並修整 + if(strlen($name) > 100) error(_T('regist_nametoolong'), $dest); + if(strlen($email) > 100) error(_T('regist_emailtoolong'), $dest); + if(strlen($sub) > 100) error(_T('regist_topictoolong'), $dest); + if(strlen($resto) > 10) error(_T('regist_longthreadnum'), $dest); + + // E-mail / 標題修整 + $email = str_replace("\r\n", '', $email); $sub = str_replace("\r\n", '', $sub); + // Tripcode area-------------------------------------------------------------------------------- + if($name){ + // 名稱修整 + $name = str_replace(TRIP_KEY, TRIP_KEY_FAKE, $name); // 防止トリップ偽造 + $name = str_replace(CAP_SUFFIX, CAP_SUFFIX_FAKE, $name); // 防止管理員キャップ偽造 + $name = str_replace("\r\n", '', $name); + $nameOri = $name; // 名稱 + // トリップ + //----if(preg_match('/(.*?)[##](.*)/u', $name, $regs)){ // トリップ(Trip)機能 + //----$name = $nameOri = $regs[1]; $cap = strtr($regs[2], array('&'=>'&')); + //----$salt = preg_replace('/[^\.-z]/', '.', substr($cap.'H.', 1, 2)); + //----$salt = strtr($salt, ':;<=>?@[\\]^_`', 'ABCDEFGabcdef'); + //----$name = $name.TRIP_KEY.substr(crypt($cap, $salt), -10); + if(preg_match('/(.*?)[##](.*)/u', $name, $regs)){ // トリップ(Trip)機能 + $name = str_replace("&#", "&%%%%%%", $name); # otherwise HTML numeric entities screw up explode()! + list($name, $trip, $sectrip) = str_replace("&&", "&%%%%%%", explode("#", $name)); + + if($trip != ''){ + if(function_exists("iconv")) $trip = iconv("UTF-8", "SHIFT_JIS//TRANSLIT", $trip); // convert to Windows Japanese #kami + $salt = strtr(preg_replace('/[^\.-z]/', '.', substr($trip.'H.', 1, 2)), ':;<=>?@[\\]^_`', 'ABCDEFGabcdef'); + $metrip = TRIP_KEY.substr(crypt($trip, $salt), -10); + }else $metrip = ''; + if($sectrip != ''){ + if(function_exists("iconv")) $sectrip = iconv("UTF-8", "SHIFT_JIS//TRANSLIT", $sectrip); // convert to Windows Japanese #kami + $salt = "LOLLOLOLOLOLOLOLOLOLOLOLOLOLOLOLMEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"; # this is ONLY used if the host doesn't have openssl # I don't know a better way to get random data + if(file_exists(SALTFILE)){ # already generated a key + $salt = file_get_contents(SALTFILE); + }else{ + system("openssl rand 448 > '".SALTFILE, $err); + if($err === 0){ + if(chmod(SALTFILE,0400)){ + $salt = file_get_contents(SALTFILE); + }else{ + $donk = IDSEED; + $fp = fopen(SALTFILE, "w"); + fputs($fp, $donk); + fclose($fp); + } + } + } + $sha = base64_encode(pack("H*", sha1($sectrip.$salt))); + $sha = substr($sha, 0, 16); + $metrip .= TRIP_KEY.TRIP_KEY.$sha; + } + // Tripcode filter + //++++if(file_exists(FILTER_DIR)){ + //++++include(FILTER_DIR.'trip.php'); + //++++} + //----"". + $name .= $metrip; + } + if(CAP_ENABLE && preg_match('/(.*?)[##](.*)/u', $email, $aregs)){ // 管理員キャップ(Cap)機能 + $acap_name = $nameOri; $acap_pwd = strtr($aregs[2], array('&'=>'&')); + if($acap_name==CAP_NAME && $acap_pwd==CAP_PASS){ + $name = ''.$name.CAP_SUFFIX.''; + $is_admin = true; + $email = $aregs[1]; // 去除 #xx 密碼 + } + } + if(!$is_admin){ // 非管理員 + $name = str_replace(_T('admin'), '"'._T('admin').'"', $name); + $name = str_replace(_T('deletor'), '"'._T('deletor').'"', $name); + } + $name = str_replace('&'.TRIP_KEY, '&'.TRIP_KEY, $name); // 避免 &#xxxx; 後面被視為 Trip 留下 & 造成解析錯誤 + } + // End of Tripcode area-------------------------------------------------------------------------- + // 內文修整 + if((strlen($com) > COMM_MAX) && !$is_admin) error(_T('regist_commenttoolong'), $dest); + $com = CleanStr($com, $is_admin); // 引入$is_admin參數是因為當管理員キャップ啟動時,允許管理員依config設定是否使用HTML + if(!$com && $upfile_status==4) error(_T('regist_withoutcomment')); + $com = str_replace(array("\r\n", "\r"), "\n", $com); $com = ereg_replace("\n(( | )*\n){4,}", "\n", $com); + if(!BR_CHECK || substr_count($com,"\n") < BR_CHECK) $com = nl2br($com); // 換行字元用
    代替 + $com = str_replace("\n", '', $com); // 若還有\n換行字元則取消換行 + // 預設的內容 + if(!$name || ereg("^[ | |]*$", $name)){ + if(ALLOW_NONAME) $name = DEFAULT_NONAME; + else error(_T('regist_withoutname'), $dest); + } + if(!$sub || ereg("^[ | |]*$", $sub)){ + if(ALLOW_NOSUB) $sub = DEFAULT_NOTITLE; + else error(_T('regist_withoutsubject'), $dest); + } + if(!$com || ereg("^[ | |\t]*$", $com)){ + if(ALLOW_NOSUB) $com = DEFAULT_NOCOMMENT; + else error(_T('regist_withoutcomment'), $dest); + } + // 修整標籤樣式 + if($category && USE_CATEGORY){ + $category = explode(',', $category); // 把標籤拆成陣列 + $category = ','.implode(',', array_map('trim', $category)).','; // 去空白再合併為單一字串 (左右含,便可以直接以,XX,形式搜尋) + }else{ $category = ''; } + if($up_incomplete) $com .= '

    '._T('notice_incompletefile').''; // 上傳附加圖檔不完全的提示 + + // 密碼和時間的樣式 + if($pwd=='') if(ALLOW_NOPASS) error(_T('regist_withoutpassword'), $dest); else $pwd = ($pwdc=='') ? substr(rand(),0,8) : $pwdc; + $pass = $pwd ? substr(md5($pwd), 2, 8) : '*'; // 生成真正儲存判斷用的密碼 + $youbi = array(_T('sun'),_T('mon'),_T('tue'),_T('wed'),_T('thu'),_T('fri'),_T('sat')); +//---- $yd = $youbi[gmdate('w', $time+TIME_ZONE*60*60)]; + $yd = $youbi[date('w', $tome)]; +//---- $now = gmdate('y/m/d', $time+TIME_ZONE*60*60).'('.(string)$yd.')'.gmdate('H:i', $time+TIME_ZONE*60*60); + if(!EN_SEC) + $now = date(DATE_FORMAT, $tome).'('.(string)$yd.')'.date('H:i', $tome); + else $now = date(DATE_FORMAT, $tome).'('.(string)$yd.')'.date('H:i:s', $tome); + +//---- if(DISP_ID){ // 顯示ID +//---- if($email && DISP_ID==1) $now .= ' ID:????'; +//---- else $now .= ' ID:'.substr(crypt(md5(getREMOTE_ADDR().IDSEED.gmdate('Ymd', $time+TIME_ZONE*60*60)),'id'), -8); +//---- } + if(DISP_ID){ // 顯示ID + if($email&&DISP_ID==1) $now .= " ID:????"; + else $now .= " ID:".substr(crypt(md5(getREMOTE_ADDR().IDSEED.date(DATE_FORMAT, $tome)),'id'), -8); + } + + // 連續投稿 / 相同附加圖檔檢查 + $checkcount = 50; // 預設檢查50筆資料 + $pwdc = substr(md5($pwdc), 2, 8); // Cookies密碼 + if($PIO->isSuccessivePost($checkcount, $com, $time, $pass, $pwdc, $host, $upfile_name)) error(_T('regist_successivepost'), $dest); // 連續投稿檢查 + if($dest){ if($PIO->isDuplicateAttachment($checkcount, $md5chksum)) error(_T('regist_duplicatefile'), $dest); } // 相同附加圖檔檢查 + if($resto) $ThreadExistsBefore = $PIO->isThread($resto); + + // 舊文章刪除處理 + if(PIOSensor::check('delete', $LIMIT_SENSOR)){ + $delarr = PIOSensor::listee('delete', $LIMIT_SENSOR); + if(count($delarr)){ + deleteCache($delarr); + $PMS->useModuleMethods('PostOnDeletion', array($delarr, 'recycle')); // "PostOnDeletion" Hook Point + $files = $PIO->removePosts($delarr); + if(count($files)) $FileIO->deleteImage($files); + } + } + + // 附加圖檔容量限制功能啟動:刪除過大檔 + if(STORAGE_LIMIT && STORAGE_MAX > 0){ + $tmp_total_size = total_size(); // 取得目前附加圖檔使用量 + if($tmp_total_size > STORAGE_MAX){ + $files = $PIO->delOldAttachments($tmp_total_size, STORAGE_MAX, false); + $FileIO->deleteImage($files); + } + } + + // 判斷欲回應的文章是不是剛剛被刪掉了 + if($resto){ + if($ThreadExistsBefore){ // 欲回應的討論串是否存在 + if(!$PIO->isThread($resto)){ // 被回應的討論串存在但已被刪 + // 提前更新資料來源,此筆新增亦不紀錄 + $PIO->dbCommit(); + updatelog(); + error(_T('regist_threaddeleted'), $dest); + }else{ // 檢查是否討論串被設為禁止回應 (順便取出原討論串的貼文時間) + $post = $PIO->fetchPosts($resto); // [特殊] 取單篇文章內容,但是回傳的$post同樣靠[$i]切換文章! + list($chkstatus, $chktime) = array($post[0]['status'], $post[0]['tim']); + $chktime = substr($chktime, 0, -3); // 拿掉微秒 (後面三個字元) + $flgh = $PIO->getPostStatus($chkstatus); + if($flgh->exists('TS')) error(_T('regist_threadlocked'), $dest); + } + }else error(_T('thread_not_found'), $dest); // 不存在 + } + + // 計算某些欄位值 + $no = $PIO->getLastPostNo('beforeCommit') + 1; + isset($ext) ? 0 : $ext = ''; + isset($imgW) ? 0 : $imgW = 0; + isset($imgH) ? 0 : $imgH = 0; + isset($imgsize) ? 0 : $imgsize = ''; + isset($W) ? 0 : $W = 0; + isset($H) ? 0 : $H = 0; + isset($md5chksum) ? 0 : $md5chksum = ''; + $age = false; + $status = ''; + if(USE_UPSERIES && stristr($email, 'noko')){ + $email = false; + $noko = true; + }else $noko = false; + if($resto){ + if(!stristr($email, 'sage') && ($PIO->postCount($resto) <= MAX_RES || MAX_RES==0)){ + if(!MAX_AGE_TIME || (($time - $chktime) < (MAX_AGE_TIME * 60 * 60))) $age = true; // 討論串並無過期,推文 + } + } + $PMS->useModuleMethods('RegistBeforeCommit', array(&$name, &$email, &$sub, &$com, &$category, &$age, $dest, $resto, array($W, $H, $imgW, $imgH), &$status)); // "RegistBeforeCommit" Hook Point + + // 正式寫入儲存 + $PIO->addPost($no,$resto,$md5chksum,$category,$tim,$ext,$imgW,$imgH,$imgsize,$filename,$W,$H,$pass,$now,$name,$email,$sub,$com,$host,$age,$status); + //----$PIO->addPost($no,$now,$name,$email,$sub,$com,$age,$status,$host,$pwd,$ext,$W,$H,$tim,$md5chksum,$imgsize,$filename,$imgW,$imgH,$category,$resto); + $PIO->dbCommit(); + $lastno = $PIO->getLastPostNo('afterCommit'); // 取得此新文章編號 + $PMS->useModuleMethods('RegistAfterCommit', array($lastno, $resto, $name, $email, $sub, $com)); // "RegistAfterCommit" Hook Point + + // noko in cookie + if($noko) $email = 'noko'; + + // Cookies儲存:密碼與E-mail部分,期限是一週 + setcookie('pwdc', $pwd, time()+7*24*3600, '/'); + setcookie('emailc', $email, time()+7*24*3600, '/'); + total_size(true); // 刪除舊容量快取 + if($dest && is_file($dest)){ + $destFile = $path.IMG_DIR.$tim.$ext; // 圖檔儲存位置 + $thumbFile = $path.THUMB_DIR.$tim.'s.jpg'; // 預覽圖儲存位置 + rename($dest, $destFile); + if(USE_THUMB !== 0){ // 生成預覽圖 + $thumbType = USE_THUMB; if(USE_THUMB==1){ $thumbType = 'gd'; } // 與舊設定相容 + require(PHP_DIRECTORY.'lib/thumb/thumb.'.$thumbType.'.php'); + $thObj = new ThumbWrapper($destFile, $imgW, $imgH); + $thObj->setThumbnailConfig($W, $H, THUMB_Q); + $thObj->makeThumbnailtoFile($thumbFile); + @chmod($thumbFile, 0666); + unset($thObj); + } + if($FileIO->uploadImage()){ // 支援上傳圖片至其他伺服器 + if(file_exists($destFile)) $FileIO->uploadImage($tim.$ext, $destFile, filesize($destFile)); + if(file_exists($thumbFile)) $FileIO->uploadImage($tim.'s.jpg', $thumbFile, filesize($thumbFile)); + } + } + updatelog(); + + // 引導使用者至新頁面 + $RedirURL = PHP_SELF2.'?'.$tim; // 定義儲存資料後轉址目標 + if(isset($_POST['up_series']) || $noko){ // 勾選連貼機能 + if($resto) $RedirURL = PHP_SELF.'?res='.$resto.'&upseries=1'; // 回應後繼續轉回此主題下 + else{ + $RedirURL = PHP_SELF.'?res='.$lastno.'&upseries=1'; // 新增主題後繼續轉到此主題下 + } + } + $RedirforJS = strtr($RedirURL, array("&"=>"&")); // JavaScript用轉址目標 + + echo ''."\n"; + echo <<< _REDIR_ + + + + + + + + + +
    +_REDIR_; +echo _T('regist_redirect',$mes,$RedirURL).'
    + +'; +} + +/* 使用者刪除 */ +/* ユーザー削除 */ +function usrdel(){ + global $PIO, $FileIO, $PMS, $language; + // $pwd: 使用者輸入值, $pwdc: Cookie記錄密碼 + $pwd = isset($_POST['pwd']) ? $_POST['pwd'] : ''; + $pwdc = isset($_COOKIE['pwdc']) ? $_COOKIE['pwdc'] : ''; + $onlyimgdel = isset($_POST['onlyimgdel']) ? $_POST['onlyimgdel'] : ''; + $delno = array(); + reset($_POST); + while($item = each($_POST)){ if($item[1]=='delete' && $item[0] != 'func') array_push($delno, $item[0]); } + $haveperm = ($pwd==ADMIN_PASS) || adminAuthenticate('check'); + if($haveperm && isset($_POST['func'])){ // 前端管理功能 + $message = ''; + $PMS->useModuleMethods('AdminFunction', array('run', $delno, $_POST['func'], &$message)); // "AdminFunction" Hook Point + if($_POST['func'] != 'delete'){ + if(isset($_SERVER['HTTP_REFERER'])){ + header('HTTP/1.1 302 Moved Temporarily'); + header('Location: '.$_SERVER['HTTP_REFERER']); + } + exit(); // 僅執行AdminFunction,終止刪除動作 + } + } + $PMS->useModuleMethods('Authenticate', array($pwd,'userdel',&$haveperm)); + + if($pwd=='' && $pwdc!='') $pwd = $pwdc; + $pwd_md5 = substr(md5($pwd),2,8); + $host = gethostbyaddr(getREMOTE_ADDR()); + $search_flag = $delflag = false; + + if(!count($delno)) error(_T('del_notchecked')); + + $delposts = array(); // 真正符合刪除條件文章 + $posts = $PIO->fetchPosts($delno); + foreach($posts as $post){ + if($pwd_md5==$post['pwd'] || $host==$post['host'] || $haveperm){ + $search_flag = true; // 有搜尋到 + array_push($delposts, $post['no']); + } + } + if($search_flag){ + if(!$onlyimgdel) $PMS->useModuleMethods('PostOnDeletion', array($delposts, 'frontend')); // "PostOnDeletion" Hook Point + $files = $onlyimgdel ? $PIO->removeAttachments($delposts) : $PIO->removePosts($delposts); + $FileIO->deleteImage($files); + deleteCache($delposts); + total_size(true); // 刪除容量快取 + $PIO->dbCommit(); + }else error(_T('del_wrongpwornotfound')); + if(isset($_POST['func']) && $_POST['func'] == 'delete'){ // 前端管理刪除文章返回管理頁面 + if(isset($_SERVER['HTTP_REFERER'])){ + header('HTTP/1.1 302 Moved Temporarily'); + header('Location: '.$_SERVER['HTTP_REFERER']); + } + exit(); + } +} + +/* 管理員密碼認證 */ +/* パス認証 */ +function valid(){ + global $PMS, $language; + $pass = isset($_POST['pass']) ? $_POST['pass'] : ''; // 管理者密碼 + $haveperm = false; + $isCheck = adminAuthenticate('check'); // 登入是否正確 + if(!$isCheck && $pass){ + $haveperm = ($pass == ADMIN_PASS); + $PMS->useModuleMethods('Authenticate', array($pass,'admin',&$haveperm)); + if($haveperm){ adminAuthenticate('login'); $isCheck = true; } + else error(_T('admin_wrongpassword')); + } + $dat = ''; + head($dat); + $links = '['._T('return').'] ['._T('admin_remake').'] ['._T('admin_frontendmanage').']'; + $PMS->useModuleMethods('LinksAboveBar', array(&$links,'admin',$isCheck)); // LinksAboveBar hook point + $dat .= ' +
    +
    +'; //----class="bar_admin" + echo $dat; + if(!$isCheck){ + echo '
    +'._T('admin_manageposts').' +'._T('admin_optimize').' +'._T('admin_check').' +'._T('admin_repair').' +'._T('admin_export').' +'._T('admin_stylesheets').'

    + + + +

    +
    '; + die("\n\n"); + }elseif(!isset($_REQUEST['admin'])){ + echo '
    +'._T('admin_manageposts').' +'._T('admin_optimize').' +'._T('admin_check').' +'._T('admin_repair').' +'._T('admin_export').' +'._T('admin_stylesheets').' +'._T('admin_logout').'

    + + + +'; + die("\n\n"); + } +} + +/* 管理文章模式 */ +/* 管理者削除 */ +function admindel(){ + global $PIO, $FileIO, $PMS, $language; + + $pass = isset($_POST['pass']) ? $_POST['pass'] : ''; // 管理者密碼 + $page = isset($_REQUEST['page']) ? $_REQUEST['page'] : 0; // 切換頁數 + $onlyimgdel = isset($_POST['onlyimgdel']) ? $_POST['onlyimgdel'] : ''; // 只刪圖 + $modFunc = ''; + $delno = $thsno = array(); + $delflag = isset($_POST['func']) && ($_POST['func'] == 'delete') && isset($_POST['clist']); // 是否有「刪除」勾選 + $thsflag = isset($_POST['stop']); // 是否有「停止」勾選 + $is_modified = false; // 是否改寫檔案 + $message = ''; // 操作後顯示訊息 + + if(isset($_POST['func']) && isset($_POST['clist'])) + $PMS->useModuleMethods('AdminFunction', array('run', $_POST['clist'], $_POST['func'], &$message)); // "AdminFunction" Hook Point + + // 刪除文章區塊 + if($delflag){ + //if(!adminAuthenticate('check')) error(_T('admin_wrongpassword')); + + $delno = array_merge($delno, $_POST['clist']); + if($onlyimgdel != 'on') $PMS->useModuleMethods('PostOnDeletion', array($delno, 'backend')); // "PostOnDeletion" Hook Point + $files = ($onlyimgdel != 'on') ? $PIO->removePosts($delno) : $PIO->removeAttachments($delno); + $FileIO->deleteImage($files); + deleteCache($delno); + total_size(true); // 刪除容量快取 + $is_modified = true; + } + // 討論串停止區塊 + if($thsflag){ + //if(!adminAuthenticate('check')) error(_T('admin_wrongpassword')); + + $thsno = array_merge($thsno, $_POST['stop']); + $threads = $PIO->fetchPosts($thsno); // 取得文章 + foreach($threads as $th){ + $flgh = $PIO->getPostStatus($th['status']); + $flgh->toggle('TS'); + $PIO->setPostStatus($th['no'], $flgh->toString()); + } + $is_modified = true; + } + if(($delflag || $thsflag) && $is_modified) $PIO->dbCommit(); // 無論如何都有檔案操作,回寫檔案 + + $line = $PIO->fetchPostList(0, $page * ADMIN_PAGE_DEF, ADMIN_PAGE_DEF); // 分頁過的文章列表 + $posts_count = count($line); // 迴圈次數 + $posts = $PIO->fetchPosts($line); // 文章內容陣列 + + echo ' + +

    '._T('admin_notices').'
    +
    '.$message.'
    + +'._T('admin_list_header').' +'; + + for($j = 0; $j < $posts_count; $j++){ + $bg = ($j % 2) ? 'row1' : 'row2'; // 背景顏色 + extract($posts[$j]); + + if($no == 0) break; // Do not display post 0 + + // 修改欄位樣式 + $now = preg_replace('/.{2}\/(.{5})\(.+?\)(.{5}).*/', '$1 $2', $now); + $name = htmlspecialchars(str_cut(html_entity_decode(strip_tags($name)), 8)); + $sub = htmlspecialchars(str_cut(html_entity_decode($sub), 8)); + if($email) $name = "$name"; + $com = str_replace('
    ',' ',$com); + $com = htmlspecialchars(str_cut(html_entity_decode($com), 20)); + + // 討論串首篇停止勾選框 及 模組功能 + $modFunc = $THstop = ' '; + $PMS->useModuleMethods('AdminList', array(&$modFunc, $posts[$j], $resto)); // "AdminList" Hook Point + if($resto==0){ // $resto = 0 (即討論串首篇) + $flgh = $PIO->getPostStatus($status); + $THstop = ''.($flgh->exists('TS') ? _T('admin_stop_btn') : ''); + } + + // 從記錄抽出附加圖檔使用量並生成連結 + if($ext && $FileIO->imageExists($tim.$ext)){ + $clip = ''.$tim.$ext.''; + $size = $FileIO->getImageFilesize($tim.$ext); + if($FileIO->imageExists($tim.'s.jpg')) $size += $FileIO->getImageFilesize($tim.'s.jpg'); + }else{ + $clip = $md5chksum = '--'; + $size = 0; + } + + // 印出介面 + echo <<< _ADMINEOF_ + + + + +_ADMINEOF_; + } + echo '
    $modFunc$THstop$no$now$sub$name$com$host$clip ($size)
    $md5chksum
    +

    + + []

    +

    '._T('admin_totalsize',total_size()).'

    + + +
    +'; + + $countline = $PIO->postCount(); // 總文章數 + $page_max = ceil($countline / ADMIN_PAGE_DEF) - 1; // 總頁數 + echo ''; + if($page) echo ''; + else echo ''; + echo ''; + if($page < $page_max) echo ''; + else echo ''; + die('
    '._T('prev_page').''._T('first_page').''; + for($i = 0; $i <= $page_max; $i++){ + if($i==$page) echo '['.$i.'] '; + else echo '['.$i.'] '; + } + echo ''._T('next_page').''._T('last_page').'


    + +'); +} + +//////////////// +// manage_css // +//////////////// +function manage_css(){ + global $PMS, $language; + $order = array(); $line = ''; + + // Handle submission + if(isset($_POST['order']) || isset($_POST['new'])){ + $default = $_POST['default']; + + if(isset($_POST['order'])){ + $dupid = false; + $order = $_POST['order']; + $ids = array(); + $id = 0; + $name = ''; + if(count($order) > 1){ + foreach($order as $name => $id) $ids[$id]++; + foreach($ids as $idu => $count){ + if($idu < 1 || $count == 1) continue; + foreach($order as $name => $id) if($id == $idu) $dupid = true; + } + if($dupid){ + ksort($order); // Yes, we're going to wimp out and reset it alphabetically. + $go = 0; + foreach($order as $name => $id) $go++; + $order[$name] = $go; + } + } + $order = array_flip($order); + } + + // Find out if a new stylesheet entry has been added + if(is_array($_POST['new'])){ + $new_path = $_POST['new']['path']; + $new_name = $_POST['new']['name']; + $new_order = $_POST['new']['order']; + if($new_path != '' && $new_name != '') $order[$new_order] = $new_name; + if($default == 'new') $default = $new_name; + } + + ksort($order); + + // Get existing stylesheet entries + foreach($order as $id => $name){ + if(!$id) continue; + if(!$_POST['path'][$name]) continue; + $temp['path'][$name] = $_POST['path'][$name]; + $temp['names'][$name] = $name; + $temp['short'][$name] = $_POST['short'][$name]; + $temp['order'][$name] = $id; + } + + // Get newly added stylesheet entries + if(is_array($_POST['new'])){ + $temp['path'][$new_name] = $_POST['new']['path']; + $temp['names'][$new_name] = $new_name; + $temp['short'][$new_name] = $_POST['new']['short']; + $temp['order'][$new_name] = $new_order; + } + + // Build CSV lines + foreach($order as $id => $name){ + if(!$id) continue; // Ignore Display order 0 + $line .= $name.','.$temp['short'][$name].','.$temp['path'][$name].','; + $line .= ($name == $default) ? 'default,' : ','; + $line .= "\n"; + } + + $style_dat = DATA_DIR.CSV_SS; + + // Success messages + $action = (file_exists($style_dat)) ? _t('admin_updated') : _t('admin_created'); + $delete = (@unlink(CSS_DIR.CSVSS)) ? ' - '.str_replace('[file]', CSS_DIR.CSVSS, _t('admin_deleted')).'' : false; + $fp = fopen($style_dat, 'w+'); + set_file_buffer($fp, 0); + rewind($fp); + fputs($fp, $line); + fclose($fp); + @chmod($style_dat, 0666); + echo '
    '.str_replace('[file]', $style_dat, _t('admin_updated')).$delete.'
    '; + } + + // Editing messages + if(file_exists(DATA_DIR.CSV_SS)){ + $style_data = DATA_DIR.CSV_SS; + $style_mode = _t('admin_editing'); + }else{ + $style_data = CSS_DIR.CSVSS; + $style_mode = _t('admin_imported'); + } + echo ''; + + echo '
    + + +'; + + // Read data from R4+(CSV) + if(file_exists(DATA_DIR.CSV_SS)){ + $style_data = DATA_DIR.CSV_SS; + $lines = explode("\n", file_get_contents($style_data)); + $j = 0; + $lines = array_diff($lines, array('')); + if(count($lines)){ + echo ''; + } + foreach($lines as $null => $line){ + if($line != ''){ // Line has data + list($style_name, $style_short, $style_file, $style_rel) = explode(',', $line); + $j++; // For alternating BG colour + + $style_path = CSS_DIR.$style_file; + + if(file_exists($style_path)){ + if($style_rel) $style_rel = ' checked="checked"'; + else $style_rel = false; + $class = ($j % 2) ? 'row1' : 'row2'; // BG colour + echo ''; + } + } + } + } + + // Read data from R3 DAT + else if(file_exists(CSS_DIR.CSVSS)){ + $style_data = CSS_DIR.CSVSS; + $lines = explode("\n", file_get_contents($style_data)); + $j = 0; + foreach($lines as $null => $line){ // Line has data, or line is not commented out + if(substr($line, 0, 2) != '//' && $line != ''){ + $bits = explode('[*]', $line); + $j++; + $style_name = $bits[0]; + $style_path = CSS_DIR.$bits[2]; + if(file_exists($style_path)){ + $style_short = $bits[1]; + if($bits[3]) $style_rel = ' checked="checked"'; + else $style_rel = false; + $class = ($j % 2) ? 'row1' : 'row2'; // BG colour + echo ''; + } + } + } + } + + $j++; $class = ($j % 2) ? 'row1' : 'row2'; + + // Insert string for when there are stylesheet entries to modify + $action = ($j > 1) ? _t('admin_modstyle') : false; + // Check default radio button for new row when there are NO stylesheet entries + $style_rel = (!$action) ? ' checked="checked"' : false; + + echo ''; + + echo '
    '._t('admin_is_default').''._t('admin_fullname').''._t('admin_shortname').''._t('admin_dispid').'
    '.$style_name.'
    '.str_replace('[or modify]', $action, _t('admin_addstyle')).''._t('admin_new_file').''._t('admin_fullname').''._t('admin_shortname').''._t('admin_new_id').'
    '.CSS_DIR.'
    +

    '; + die('
    '); +} + +/* 計算目前附加圖檔使用容量 (單位:KB) */ +function total_size($isupdate=false){ + global $PIO, $FileIO; + + $size = 0; $all = 0; + $cache_file = "./".SIZE_CACHE; // 附加圖檔使用容量值快取檔案 + + if($isupdate){ // 刪除舊快取 + if(is_file($cache_file)) unlink($cache_file); + return; + } + if(!is_file($cache_file)){ // 無快取,新增 + $line = $PIO->fetchPostList(); // 取出所有文章編號 + $posts = $PIO->fetchPosts($line); + $linecount = count($posts); + for($i = 0; $i < $linecount; $i++){ + extract($posts[$i]); + // 從記錄檔抽出計算附加圖檔使用量 + if($ext && $FileIO->imageExists($tim.$ext)) $all += $FileIO->getImageFilesize($tim.$ext); // 附加圖檔合計計算 + if($FileIO->imageExists($tim.'s.jpg')) $all += $FileIO->getImageFilesize($tim.'s.jpg'); // 預覽圖合計計算 + } + $sp = fopen($cache_file, 'w'); + stream_set_write_buffer($sp, 0); + fwrite($sp, $all); // 寫入目前使用容量值 + fclose($sp); + @chmod($cache_file, 0666); + }else{ // 使用快取 + $sp = file($cache_file); + $all = $sp[0]; + unset($sp); + } + return (int)($all / 1024); +} + +/* 搜尋(全文檢索)功能 */ +function search(){ + global $PTE, $PIO, $FileIO, $PMS, $language; + + if(!USE_SEARCH) error(_T('search_disabled')); + $searchKeyword = isset($_POST['keyword']) ? trim($_POST['keyword']) : ''; // 欲搜尋的文字 + $dat = ''; + head($dat); + $links = '['._T('return').']'; + $PMS->useModuleMethods('LinksAboveBar', array(&$links,'search')); + $dat .= ' +'; + echo $dat; + if($searchKeyword==''){ + echo '
    + +
    '; + }else{ + $searchField = $_POST['field']; // 搜尋目標 (no:編號, name:名稱, sub:標題, com:內文) + $searchMethod = $_POST['method']; // 搜尋方法 + $searchKeyword = preg_split('/( | )+/', trim($searchKeyword)); // 搜尋文字用空格切割 + $hitPosts = $PIO->searchPost($searchKeyword, $searchField, $searchMethod); // 直接傳回符合的文章內容陣列 + + echo '
    +'; + $resultlist = ''; + foreach($hitPosts as $post){ + extract($post); + if(USE_CATEGORY){ + $ary_category = explode(',', str_replace(',', ',', $category)); $ary_category = array_map('trim', $ary_category); + $ary_category_count = count($ary_category); + $ary_category2 = array(); + for($p = 0; $p < $ary_category_count; $p++){ + if($c = $ary_category[$p]) $ary_category2[] = ''.$c.''; + } + $category = implode(', ', $ary_category2); + }else $category = ''; + $arrLabels = array('{$NO}'=>''.$no.'', '{$SUB}'=>$sub, '{$NAME}'=>$name, '{$NOW}'=>$now, '{$COM}'=>$com, '{$CATEGORY}'=>$category, '{$NAME_TEXT}'=>_T('post_name'), '{$CATEGORY_TEXT}'=>_T('post_category')); + $resultlist .= $PTE->ParseBlock('SEARCHRESULT',$arrLabels); + } + echo $resultlist ? $resultlist : '
    '._T('search_notfound').'
    '._T('search_back').'
    '; + echo "
    "; + } + echo "\n"; +} + +/* 利用類別標籤搜尋符合的文章 */ +function searchCategory(){ + global $PTE, $PIO, $PMS, $FileIO, $language; + $category = isset($_GET['c']) ? strtolower(strip_tags(trim($_GET['c']))) : ''; // 搜尋之類別標籤 + if(!$category) error(_T('category_nokeyword')); + $category_enc = urlencode($category); $category_md5 = md5($category); + $page = isset($_GET['p']) ? @intval($_GET['p']) : 1; if($page < 1) $page = 1; // 目前瀏覽頁數 + $isrecache = isset($_GET['recache']); // 是否強制重新生成快取 + + // 利用Session快取類別標籤出現篇別以減少負擔 + session_start(); // 啟動Session + if(!isset($_SESSION['loglist_'.$category_md5]) || $isrecache){ + $loglist = $PIO->searchCategory($category); + $_SESSION['loglist_'.$category_md5] = serialize($loglist); + }else $loglist = unserialize($_SESSION['loglist_'.$category_md5]); + + $loglist_count = count($loglist); + if(!$loglist_count) error(_T('category_notfound')); + $page_max = ceil($loglist_count / PAGE_DEF); if($page > $page_max) $page = $page_max; // 總頁數 + + // 分割陣列取出適當範圍作分頁之用 + $loglist_cut = array_slice($loglist, PAGE_DEF * ($page - 1), PAGE_DEF); // 取出特定範圍文章 + $loglist_cut_count = count($loglist_cut); + + $dat = ''; + head($dat); + $links = '['._T('return').']['._T('category_recache').']'; + $PMS->useModuleMethods('LinksAboveBar', array(&$links,'category')); + $dat .= "
    $links
    \n"; + for($i = 0; $i < $loglist_cut_count; $i++){ + $posts = $PIO->fetchPosts($loglist_cut[$i]); // 取得文章內容 + $dat .= arrangeThread($PTE, ($posts[0]['resto'] ? $posts[0]['resto'] : $posts[0]['no']), null, $posts, 0, $loglist_cut[$i], array(), array(), false, false, false); // 逐個輸出 (引用連結不顯示) + } + + $dat .= ''; + if($page > 1) $dat .= ''; + else $dat .= ''; + $dat .= ''; + if($page < $page_max) $dat .= ''; + else $dat .= ''; + $dat .= '
    '._T('first_page').''; + for($i = 1; $i <= $page_max ; $i++){ + if($i==$page) $dat .= "[".$i."] "; + else $dat .= '['.$i.'] '; + } + $dat .= '
    '._T('last_page').'
    '."\n"; + + foot($dat); + echo $dat; +} + +/* 顯示已載入模組資訊 */ +function listModules(){ + global $PMS, $language; + $dat = ''; + head($dat); + $links = '['._T('return').']'; + $PMS->useModuleMethods('LinksAboveBar', array(&$links,'modules')); + $dat .= ' + +
    +'; + /* Module Loaded */ + $dat .= _T('module_loaded').'
      '."\n"; + foreach($PMS->getLoadedModules() as $m) $dat .= '
    • '.$m."
    • \n"; + $dat .= "

    \n"; + + /* Module Infomation */ + $dat .= _T('module_info').'
      '."\n"; + foreach($PMS->moduleInstance as $m) $dat .= '
    • '.$m->getModuleName().'
      '.$m->getModuleVersionInfo()."
    • \n"; + $dat .= '

    +
    + +'; + foot($dat); + echo $dat; +} + +/* 刪除舊頁面快取檔 */ +function deleteCache($no){ + foreach($no as $n){ + if($oldCaches = glob('./cache/'.$n.'-*')){ + foreach($oldCaches as $o) @unlink($o); + } + } +} + +/* 顯示系統各項資訊 */ +function showstatus(){ + global $PTE, $PIO, $FileIO, $PMS, $language, $LIMIT_SENSOR; + $countline = $PIO->postCount(); // 計算投稿文字記錄檔目前資料筆數 + $counttree = $PIO->threadCount(); // 計算樹狀結構記錄檔目前資料筆數 + $tmp_total_size = total_size(); // 附加圖檔使用量總大小 + $tmp_ts_ratio = STORAGE_MAX > 0 ? $tmp_total_size / STORAGE_MAX : 0; // 附加圖檔使用量 + + // 決定「附加圖檔使用量」提示文字顏色 + if($tmp_ts_ratio < 0.3 ) $clrflag_sl = '235CFF'; + elseif($tmp_ts_ratio < 0.5 ) $clrflag_sl = '0CCE0C'; + elseif($tmp_ts_ratio < 0.7 ) $clrflag_sl = 'F28612'; + elseif($tmp_ts_ratio < 0.9 ) $clrflag_sl = 'F200D3'; + else $clrflag_sl = 'F2004A'; + + // 生成預覽圖物件資訊及功能是否正常 + $func_thumbWork = ''._T('info_nonfunctional').''; + $func_thumbInfo = '(No thumbnail)'; + if(USE_THUMB !== 0){ + $thumbType = USE_THUMB; if(USE_THUMB==1){ $thumbType = 'gd'; } + require(PHP_DIRECTORY.'lib/thumb/thumb.'.$thumbType.'.php'); + $thObj = new ThumbWrapper(); + if($thObj->isWorking()) $func_thumbWork = ''._T('info_functional').''; + $func_thumbInfo = $thObj->getClass(); + unset($thObj); + } + + // PIOSensor + if(count($LIMIT_SENSOR)) + $piosensorInfo=nl2br(PIOSensor::info($LIMIT_SENSOR)); + + $dat = ''; + head($dat); + $links = '['._T('return').'] ['._T('module_info_top').']'; + $PMS->useModuleMethods('LinksAboveBar', array(&$links,'status')); + $dat .= ' +'; + + $dat .= ' +
    + + + + + + + + + + + + + + + + + + + + + +'.(isset($piosensorInfo)?'':'').' + +'; + + if(STORAGE_LIMIT){ + $dat .= ' + +'; + }else{ + $dat .= ' +'; + } + + $dat .= ' + + + +
    '._T('info_basic').'
    '._T('info_basic_ver').' '.PIXMICAT_VER.'
    '._T('info_basic_pio').' '.PIXMICAT_BACKEND.' : '.$PIO->pioVersion().'
    '._T('info_basic_threadsperpage').' '.PAGE_DEF.' '._T('info_basic_threads').'
    '._T('info_basic_postsperpage').' '.RE_DEF.' '._T('info_basic_posts').'
    '._T('info_basic_postsinthread').' '.RE_PAGE_DEF.' '._T('info_basic_posts').' '._T('info_basic_posts_showall').'
    '._T('info_basic_bumpposts').' '.MAX_RES.' '._T('info_basic_posts').' '._T('info_basic_0disable').'
    '._T('info_basic_bumphours').' '.MAX_AGE_TIME.' '._T('info_basic_hours').' '._T('info_basic_0disable').'
    '._T('info_basic_urllinking').' '.AUTO_LINK.' '._T('info_0no1yes').'
    '._T('info_basic_com_limit').' '.COMM_MAX._T('info_basic_com_after').'
    '._T('info_basic_anonpost').' '.ALLOW_NONAME.' '._T('info_basic_anonpost_opt').'
    '._T('info_basic_del_incomplete').' '.KILL_INCOMPLETE_UPLOAD.' '._T('info_0no1yes').'
    '._T('info_basic_use_sample',THUMB_Q).' '.USE_THUMB.' '._T('info_0notuse1use').'
    '._T('info_basic_useblock').' '.BAN_CHECK.' '._T('info_0disable1enable').'
    '._T('info_basic_showid').' '.DISP_ID.' '._T('info_basic_showid_after').'
    '._T('info_basic_cr_limit').' '.BR_CHECK._T('info_basic_cr_after').'
    '._T('info_basic_max_lines_limit').' '.MAX_LINES._T('info_basic_max_lines_after').'
    '._T('info_basic_theme').' '.$PTE->BlockValue('THEMENAME').' '.$PTE->BlockValue('THEMEVER').'
    by '.$PTE->BlockValue('THEMEAUTHOR').'
    '._T('info_dsusage_top').'
    '._T('info_basic_threadcount').' '.$counttree.' '._T('info_basic_threads').''.$piosensorInfo.'
    '._T('info_dsusage_count').''.$countline.'
    '._T('info_fileusage_top').STORAGE_LIMIT.' '._T('info_0disable1enable').'
    '._T('info_fileusage_limit').''.STORAGE_MAX.' KB'._T('info_dsusage_usage').'
    '.substr(($tmp_ts_ratio * 100), 0, 6).' %
    '._T('info_fileusage_count').''.$tmp_total_size.' KB
    '._T('info_fileusage_count').''.$tmp_total_size.' KB'._T('info_dsusage_usage').'
    '._T('info_fileusage_unlimited').'
    '._T('info_server_top').'
    PHP version'.phpversion().'
    '.$func_thumbInfo.''.$func_thumbWork.'
    +
    +
    '."\n"; + + foot($dat); + echo $dat; +} + +/* 程式首次執行之初始化 */ +/* 初期設定 */ +function init(){ + global $PIO, $FileIO, $language; + if(!is_writable(realpath('./'))) error(_T('init_permerror')); + + $chkfolder = array(IMG_DIR, THUMB_DIR, 'cache/'); + // 逐一自動建置資料夾 + foreach($chkfolder as $value) if(!is_dir($value)){ mkdir($value); @chmod($value, 0777); } // 沒有就建立 + + $PIO->dbInit(); // PIO Init + $FileIO->init(); // FileIO Init + + error(_T('init_inited')); +} + +/*-----------程式各項功能主要判斷-------------*/ +/*-----------Main-------------*/ +if(GZIP_COMPRESS_LEVEL && ($Encoding = CheckSupportGZip())){ ob_start(); ob_implicit_flush(0); } // 支援且開啟Gzip壓縮就設緩衝區 +$mode = isset($_GET['mode']) ? $_GET['mode'] : (isset($_POST['mode']) ? $_POST['mode'] : ''); // 目前執行模式 (GET, POST) + +//init(); // ←■■!程式環境初始化,跑過一次後請刪除此行!■■ +switch($mode){ + case 'regist': + regist(); + break; + case 'admin': + $admin = isset($_REQUEST['admin']) ? $_REQUEST['admin'] : ''; // 管理者執行模式 + valid(); + switch($admin){ + case 'del': admindel(); break; + case 'logout': + adminAuthenticate('logout'); + header('HTTP/1.1 302 Moved Temporarily'); + header('Location: '.fullURL().PHP_SELF2.'?'.time()); + break; + case 'optimize': + case 'check': + case 'repair': + case 'export': + if(!$PIO->dbMaintanence($admin)) echo _T('action_main_notsupport'); + else echo _T('action_main_'.$admin).(($mret = $PIO->dbMaintanence($admin,true))?_T('action_main_success'):_T('action_main_failed')).(is_bool($mret)?'':'
    '.$mret); + die("\n"); + break; + case 'stylesheets': manage_css(); break; + default: + } + break; + case 'search': + search(); + break; + case 'status': + showstatus(); + break; + case 'category': + searchCategory(); + break; + case 'module': + $loadModule = isset($_GET['load']) ? $_GET['load'] : ''; + if($PMS->onlyLoad($loadModule)) $PMS->moduleInstance[$loadModule]->ModulePage(); + else echo '404 Not Found'; + break; + case 'moduleloaded': + listModules(); + break; + case 'init': + init(); // ←■■!程式環境初始化,跑過一次後請刪除此行!■■ + break; + case 'usrdel': + usrdel(); + case 'remake': + updatelog(); + header('HTTP/1.1 302 Moved Temporarily'); + header('Location: '.fullURL().PHP_SELF2.'?'.time()); + break; + default: + // 如果瀏覽器支援XHTML標準MIME就輸出 + header('Content-Type: '.((USE_XHTML && strpos($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml')!==FALSE) ? 'application/xhtml+xml' : 'text/html').'; charset=utf-8'); + $res = isset($_GET['res']) ? $_GET['res'] : 0; // 欲回應編號 + if($res){ // 回應模式輸出 + $page = isset($_GET['page_num']) ? $_GET['page_num'] : 'RE_PAGE_MAX'; + if(!($page=='all' || $page=='RE_PAGE_MAX')) $page = intval($_GET['page_num']); + updatelog($res, $page); // 實行分頁 + }elseif(isset($_GET['page_num']) && intval($_GET['page_num']) > -1){ // PHP動態輸出一頁 + updatelog(0, intval($_GET['page_num'])); + }else{ // 導至靜態庫存頁 + if(!is_file(PHP_SELF2)) updatelog(); + header('HTTP/1.1 302 Moved Temporarily'); + header('Location: '.fullURL().PHP_SELF2.'?'.time()); + } +} +if(GZIP_COMPRESS_LEVEL && $Encoding){ // 有啟動Gzip + if(!ob_get_length()) exit; // 沒內容不必壓縮 + header('Content-Encoding: '.$Encoding); + header('X-Content-Encoding-Level: '.GZIP_COMPRESS_LEVEL); + header('Vary: Accept-Encoding'); + print gzencode(ob_get_clean(), GZIP_COMPRESS_LEVEL); // 壓縮內容 +} +?> -- 2.39.2