function _init_PukiWiki_env() { //他のPukiWikiシステムとの連携時の初期化 Original By nao-pon // PukiWikiMod用共通リンクへの対応 // AutoLink有効時に、AutoLinkデータ読込と、AutoLinkデータ更新時のキャッシュクリア // PukiWikiMod 共通リンクディレクトリ読み込み by nao-pon $wiki_common_dirs = ""; if (defined('MOD_PUKI_WIKI_CACHE_DIR')) { if (MOD_PUKI_WIKI_VER == "1.3" && file_exists(MOD_PUKI_WIKI_CACHE_DIR . "config.php")) { include MOD_PUKI_WIKI_CACHE_DIR . "config.php"; } } // PukiWikiMod 共通リンクディレクトリ展開 $wiki_common_dirs = preg_split("/\\s+/", trim($wiki_common_dirs)); sort($wiki_common_dirs, SORT_STRING); PukiWikiConfig::setParam('wiki_common_dirs', $wiki_common_dirs); // AutoLinkデータ読み込みとチェック(AutoLink有効時のみ) $autolink_dat = array(); if (PukiWikiConfig::getParam('autolink') && defined('MOD_PUKI_WIKI_CACHE_DIR') && file_exists(MOD_PUKI_WIKI_CACHE_DIR . 'autolink.dat')) { $autolink_dat = file(MOD_PUKI_WIKI_CACHE_DIR . 'autolink.dat'); if (!file_exists(MOD_PUKI_CACHE_DIR . 'autolink.dat') || $autolink_dat != file(MOD_PUKI_CACHE_DIR . 'autolink.dat')) { // 比較用オートリンクデータを保存 @(list($pattern, $pattern_a, $forceignorelist) = $autolink_dat); if ($fp = fopen(MOD_PUKI_CACHE_DIR . 'autolink.dat', 'wb')) { set_file_buffer($fp, 0); flock($fp, LOCK_EX); rewind($fp); fputs($fp, trim($pattern) . "\n"); if (count($autolink_dat) == 3) { fputs($fp, trim($pattern_a) . "\n"); fputs($fp, trim($forceignorelist) . "\n"); } flock($fp, LOCK_UN); fclose($fp); } else { // die_message('Cannot write autolink file '. MOD_PUKI_CACHE_DIR . '/autolink.dat<br />Maybe permission is not writable'); } // オートリンクデータが更新されているのでキャッシュをクリア $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(); } } PukiWikiConfig::setParam('autolink_dat', $autolink_dat); // ページ名エイリアス取得 PukiWikiConfig::setParam('pagename_aliases', PukiWikiFunc::get_pagename_aliases()); }