[
自宅サーバーWebRing
┃
前
|ID=54
前後5表示
|
次
┃
乱移動
|
サイト一覧
]
このサイト内
書籍 DVD CD
Google(日本語)
Google(Web全体)
Google(イメージ)
Google(キャッシュ)
Yahoo! JAPAN
goo 英和
goo 和英
goo 国語
goo 新語
サイトマップ
リンク集
ダウンロード
フォーラム
Users Wiki
最新情報
TOP
»
UsersWiki
»
nao-pon
»
メモ
» modPukiWikiのソース
|
一覧
検索
最新
ヘルプ
ページへ戻る
履歴
リンク元
印刷
modPukiWikiの改造メモ
のソース
UsersWiki
:
nao-pon
/
メモ
/
modPukiWiki
のソース
差分
を表示
nao-pon/メモ/modPukiWiki
へ行く。
&font(16pt,b){&font(Red){※};この改造で得られる機能は、[[のぶのぶさん:http://www.kowa.org/]] にすべて取り込んで頂きました。};~ (2004-08-23に[[CVS:http://www.kowa.org/modules/xfmod/forgecvs/cvsbrowse.php/modpukiwiki]]で確認。) *modPukiWikiの改造メモ [#t52d615d] #contents **共通リンクディレクトリに対応してみた。 [#da420ccd] ***PukiWikiConfig.php - class PukiWikiConfig [#pbb01dbf] #code(){{{ function initParams() { global $_PukiWikiParam; $_PukiWikiParam = array(); //PukiWikiMod 共通リンクディレクトリ読み込み by nao-pon $wiki_common_dirs = ""; if (MOD_PUKI_WIKI_VER == "1.3" && file_exists(MOD_PUKI_WIKI_CACHE_DIR."config.php")) { include(MOD_PUKI_WIKI_CACHE_DIR."config.php"); } // 共通リンクディレクトリ展開 $wiki_common_dirs = preg_split("/\s+/",trim($wiki_common_dirs)); sort($wiki_common_dirs,SORT_STRING); $_PukiWikiParam['wiki_common_dirs'] = $wiki_common_dirs; // オートリンクデータ読み込みとチェック $need_cache_clear = 0; $_PukiWikiParam['autolink_dat'] = array(); if (file_exists(MOD_PUKI_WIKI_CACHE_DIR.'autolink.dat')) { $_PukiWikiParam['autolink_dat'] = file(MOD_PUKI_WIKI_CACHE_DIR.'autolink.dat'); if (!file_exists(MOD_PUKI_CACHE_DIR .'autolink.dat') || ($_PukiWikiParam['autolink_dat'] != file(MOD_PUKI_CACHE_DIR .'autolink.dat'))) { // 比較用オートリンクデータを保存 list($pattern, $pattern_a, $forceignorelist) = $_PukiWikiParam['autolink_dat']; $fp = fopen(MOD_PUKI_CACHE_DIR . 'autolink.dat', 'wb') or die_message('Cannot write autolink file ' . MOD_PUKI_CACHE_DIR . '/autolink.dat' . '<br />Maybe permission is not writable'); set_file_buffer($fp, 0); flock($fp, LOCK_EX); rewind($fp); fputs($fp, trim($pattern) . "\n"); fputs($fp, trim($pattern_a) . "\n"); fputs($fp, trim($forceignorelist) . "\n"); flock($fp, LOCK_UN); fclose($fp); // オートリンクデータが更新されているのでキャッシュをクリア $dh = dir(MOD_PUKI_CACHE_DIR); while (($file = $dh->read()) !== FALSE) { if (substr($file,-6) != '.cache') { continue; } $file = MOD_PUKI_CACHE_DIR.$file; unlink($file); } $dh->close(); } } } }}} ***PukiWikiLink.php - class PukiWikiLink_autolink [#e39558ff] #code(){{{ function set($arr,$page) { $WikiName = PukiWikiConfig::getParam('WikiName'); list($name) = $this->splice($arr); // 共通リンクディレクトリ対応 by nao-pon $alias = $name; // 無視リストに含まれている、あるいは存在しないページを捨てる // 共通リンクディレクトリ対応 by nao-pon //if (in_array($name,$this->forceignorepages) or !PukiWikiFunc::is_page($name)) if (in_array($name,$this->forceignorepages)) { return FALSE; } // 共通リンクディレクトリを探す by nao-pon if (!PukiWikiFunc::is_page($name)) { if (!$name = PukiWikiFunc::get_real_pagename($name)) return FALSE; } // 共通リンクディレクトリ対応 by nao-pon //return parent::setParam($page,$name,'','pagename',$name); return parent::setParam($page,$name,'','pagename',$alias); } }}} ***PukiWikiFunc.php [#r8845b5a] #code(){{{ // 共通リンクディレクトリの処理(該当フルネームを返す:ブラケットなし) by nao-pon function get_real_pagename($page) { static $real_pages = array(); $page = PukiWikiFunc::strip_bracket($page); if (isset($real_pages[$page])) return $real_pages[$page]; $real_pages[$page] = false; foreach(PukiWikiConfig::getParam('wiki_common_dirs') as $dir) { $check = $dir.$page; if (PukiWikiFunc::is_page($check)) { $real_pages[$page] = $check; break; } } return $real_pages[$page]; } }}} **レンダリングデータをキャッシュするようにしてみた。 [#v5f9bb25] ***PukiWikiConfig.php - class PukiWikiConfig [#zcf10ea4] #code(){{{ function initParams() { global $_PukiWikiParam; $_PukiWikiParam = array(); //PukiWikiMod 共通リンクディレクトリ読み込み by nao-pon $wiki_common_dirs = ""; if (MOD_PUKI_WIKI_VER == "1.3" && file_exists(MOD_PUKI_WIKI_CACHE_DIR."config.php")) { include(MOD_PUKI_WIKI_CACHE_DIR."config.php"); } // 共通リンクディレクトリ展開 $wiki_common_dirs = preg_split("/\s+/",trim($wiki_common_dirs)); sort($wiki_common_dirs,SORT_STRING); $_PukiWikiParam['wiki_common_dirs'] = $wiki_common_dirs; // オートリンクデータ読み込みとチェック $need_cache_clear = 0; $_PukiWikiParam['autolink_dat'] = array(); if (file_exists(MOD_PUKI_WIKI_CACHE_DIR.'autolink.dat')) { $_PukiWikiParam['autolink_dat'] = file(MOD_PUKI_WIKI_CACHE_DIR.'autolink.dat'); if (!file_exists(MOD_PUKI_CACHE_DIR .'autolink.dat') || ($_PukiWikiParam['autolink_dat'] != file(MOD_PUKI_CACHE_DIR .'autolink.dat'))) { // 比較用オートリンクデータを保存 list($pattern, $pattern_a, $forceignorelist) = $_PukiWikiParam['autolink_dat']; $fp = fopen(MOD_PUKI_CACHE_DIR . 'autolink.dat', 'wb') or die_message('Cannot write autolink file ' . MOD_PUKI_CACHE_DIR . '/autolink.dat' . '<br />Maybe permission is not writable'); set_file_buffer($fp, 0); flock($fp, LOCK_EX); rewind($fp); fputs($fp, trim($pattern) . "\n"); fputs($fp, trim($pattern_a) . "\n"); fputs($fp, trim($forceignorelist) . "\n"); flock($fp, LOCK_UN); fclose($fp); // オートリンクデータが更新されているのでキャッシュをクリア $dh = dir(MOD_PUKI_CACHE_DIR); while (($file = $dh->read()) !== FALSE) { if (substr($file,-6) != '.cache') { continue; } $file = MOD_PUKI_CACHE_DIR.$file; unlink($file); } $dh->close(); } } } }}} ***PukiWikiRender.php [#e15c3480] #code(){{{ function transform($wikistr) { global $_PukiWikiFootExplain; if (PukiWikiConfig::getParam('use_cache')) { // キャッシュ確認 by nao-pon $cache_file = MOD_PUKI_CACHE_DIR.md5($wikistr).".cache"; if (file_exists($cache_file)) return join('',file($cache_file)); } if (!is_array($wikistr)) { $wikistr = explode("\n", $wikistr); } $this->_body->parse($wikistr); $retstr = $this->_body->toString(); if (count($_PukiWikiFootExplain)) { ksort($_PukiWikiFootExplain,SORT_NUMERIC); $retstr .= count($_PukiWikiFootExplain) ? PukiWikiConfig::getParam('note_hr').join("\n",$_PukiWikiFootExplain) : ''; } $_PukiWikiFootExplain=array(); if (PukiWikiConfig::getParam('use_cache')) { //キャッシュ保存 by nao-pon $fp = fopen($cache_file, "wb"); fwrite($fp, $retstr); fclose($fp); } return $retstr; } }}} ***PukiWikiLink.php - class PukiWikiLink_autolink [#j4babbbd] #code(){{{ function PukiWikiLink_autolink($start) { parent::PukiWikiLink($start); $autolink = PukiWikiConfig::getParam('autolink'); $autolink_data = PukiWikiConfig::getParam('autolink_dat'); // AutoLinkデータを予めチェックするようにした by nao-pon //if (!$autolink or !file_exists(MOD_PUKI_WIKI_CACHE_DIR.'autolink.dat')) if (!$autolink or !$autolink_data) { return; } // AutoLinkデータを予めチェックするようにした by nao-pon //@list($auto,$auto_a,$forceignorepages) = file(MOD_PUKI_WIKI_CACHE_DIR.'autolink.dat'); @list($auto,$auto_a,$forceignorepages) = $autolink_data; $this->auto = $auto; $this->auto_a = $auto_a; $this->forceignorepages = explode("\t",trim($forceignorepages)); } }}} **WikiNameの自動リンクが有効の時、ページがない場合のページ作成リンク有り無しのオプションを追加してみた。 [#dbcd986b] ***PukiWikiLink.php [#g0230e22] ※ 関数作成 #code(){{{ function make_pagelink($page, $alias='',$anchor='',$refer='') { $s_page = htmlspecialchars(PukiWikiFunc::strip_bracket($page)); $s_alias = ($alias == '') ? $s_page : $alias; if ($page == '') { return "<a href=\"$anchor\">$s_alias</a>"; } $r_page = rawurlencode($page); $r_refer = ($refer == '') ? '' : '&refer='.rawurlencode($refer); if (PukiWikiFunc::is_page($page)) { $passage = ""; $title = PukiWikiConfig::getParam('link_compact') ? '' : " title=\"$s_page$passage\""; return "<a href=\"".MOD_PUKI_WIKI_URL."?$r_page$anchor\"$title>$s_alias</a>"; } else { // ページ作成リンクをつけないオプション追加 by nao-pon if (!PukiWikiConfig::getParam('makepage_link')) return $s_alias; $retval = "$s_alias<a href=\"".MOD_PUKI_WIKI_URL."?cmd=edit&page=$r_page$r_refer\">".PukiWikiConfig::getParam('_symbol_noexists')."</a>"; if (!PukiWikiConfig::getParam('link_compact')) { $retval = "<span class=\"".PukiWikiConfig::getParam('style_prefix')."noexists\">$retval</span>"; } return $retval; } } }}}
nao-pon/メモ/modPukiWiki のバックアップソース(No. All)
現: 2004-08-23 (月) 17:27:45
nao-pon
ぺージ情報
ぺージ名 :
nao-pon/メモ/modPukiWiki
ページ別名 :
未設定
ページオーナー :
nao-pon
閲覧可
グループ :
すべての訪問者
ユーザー :
すべての訪問者
編集可
グループ :
なし
ユーザー :
ゲスト
Counter: 256, today: 1, yesterday: 0
メインメニュー
ホーム
価格比較 百貨
UsersWiki
新規ページ作成
最新ページ一覧
全ページ一覧
全コメント一覧
ヘルプ
» 関連ページ
» 記述を見る
» 変更点を見る
» バックアップ一覧
» 添付ファイル一覧
» リンク元一覧
xpwiki
お問い合わせ
ファイルマネージャー
ログイン
ユーザー名:
パスワード:
パスワード紛失
|
新規登録
最近の更新
最新の20件
2023-05-14
nao-pon
/
gmap + gmap_street + gmap_insertmarker
nao-pon
/
googlemaps2
2023-03-22
PublicBlog
/
The Importance of QFP in PCB
2023-02-28
FrontPage
/
PCB terminology you must know
2023-01-20
nao-pon
/
blog
/
ESP8266 を壊してしまいました しかも続けて2回も
2022-09-22
nao-pon
/
blog
/
ESP32 + ESPHome の Bluetooth Proxy で SwitchBot Mater
2022-08-26
nao-pon
/
blog
/
独自ビルドの Tasmota を 12.1.1 へ
2022-08-19
nao-pon
/
blog
/
Zigbee + ZHA のメモ書き
2022-01-17
nao-pon
/
blog
/
HomeAssistant 統合の Tasmota-IRHVAC に貢献
2021-08-03
nao-pon
/
ファイル置き場
/
スペースサワダ
2021-07-01
nao-pon
/
blog
/
HomeAssistant 統合の Tasmota-IRHVAC の不具合修正
2021-06-20
nao-pon
/
blog
/
Tasmota を 9.4.0 から 9.5.0 へアップデート
2021-06-15
nao-pon
/
blog
/
ミンティア[MINTIA] で WiFi 6ボタンスイッチを作った
2021-04-27
PublicBlog
2021-03-17
nao-pon
/
blog
/
SwitchBot 温湿度計を ESP32 でモニタリング
2021-03-13
nao-pon
/
blog
/
東芝エアコンのエントリーモデルもWiFi化
2021-02-23
risoulaser
2021-02-18
nao-pon
/
blog
/
Panasonic (ナショナル) エアコンの 2008 年モデルも WiFi 化
2021-02-15
nao-pon
/
blog
/
Tasmota で HA 端子(JEM-A) 連携
2021-02-07
nao-pon
/
blog
/
Tasmota で三菱エアコンを完全コントロール
オンライン状況
378 人のユーザが現在オンラインです。 (7 人のユーザが UsersWiki を参照しています。)
登録ユーザ: 0
ゲスト: 378
もっと...
サイト情報