BugTrack/2152
の編集
Top
/
BugTrack
/
2152
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
RIGHT:&size(12){Category:[[:Plugin]]}; * links プラグインの暫定的な代替プラグイン(案) [#ucb4877a] - ページ: [[BugTrack2]] - 投稿者: [[0]] - 優先順位: 低 - 状態: 提案 - カテゴリー: プラグイン - 投稿日: 2006-01-15 (日) 08:07:24 - バージョン: ** メッセージ [#zf7f6d75] ~ とりあえず、 ref がないと #related がまともに働かないので、無理やり生成します(( 全ページに対し links_update() をかけるだけです ))。 ~ 負荷はかかると思いますが、生成自体はできるはずです。 official の rel・ref が更新不能な状態が続いた場合の最終手段の一つとしてどうぞ。 ~ リードオンリーのチェックなどはしていません。 <?php define('PLUGIN_LINKS2_MAX', 100); define('PLUGIN_LINKS2_REFRESH', 2); function plugin_links2_action() { global $script, $get, $post, $head_tags, $whatsnew; if (ini_get('safe_mode') == '0') { set_time_limit(0); } $filename = CACHE_DIR . 'links.tmp'; $exists = file_exists($filename); if (! $exists && ! (isset($post['adminpass']) && pkwk_login($post['adminpass']))) { $id = '_p_links2_adminpass'; $form[] = '<form method="post" action="' . $script . '">'; $form[] = ' <div>'; $form[] = ' <input type="hidden" name="plugin" value="links2" />'; $form[] = ' <input type="hidden" name="make" value="true" />'; $form[] = ' <label for="' . $id . '">pass: </label>'; $form[] = ' <input type="password" name="adminpass" id="' . $id . '" size="20" value="" />'; $form[] = ' </div>'; $form[] = '</form>'; return array('body' => implode("\n", $form)); } elseif (isset($post['make'])) { foreach (get_existfiles(CACHE_DIR, '.ref') as $cache) { unlink($cache); } foreach (get_existfiles(CACHE_DIR, '.rel') as $cache) { unlink($cache); } $pages = get_existpages(); unset($pages[encode($whatsnew) . '.txt']); plugin_links2_makefile($filename, $pages); } $count = plugin_links2_update($filename); if ($count) { $head_tags[] = '<meta http-equiv="refresh" content="' . PLUGIN_LINKS2_REFRESH . ';url=' . $script . '?cmd=links2" />'; $msg = $body = '更新中...(残り' . $count . 'ページ)'; } else { $msg = $body = '終了'; } return array('msg' => $msg,'body' => '<p>' . $body . '</p>'); } function plugin_links2_makefile($filename, $pages) { $handle = fopen($filename, 'w'); flock($handle, LOCK_EX); foreach ($pages as $page) { fwrite($handle, $page . "\n"); } flock($handle, LOCK_UN); fclose($handle); } function plugin_links2_update($filename) { $pages = str_replace("\n", '', file($filename)); $i = 0; while (! empty($pages) && ++$i <= PLUGIN_LINKS2_MAX) { $page = array_shift($pages); links_update($page); } if (! empty($pages)) { plugin_links2_makefile($filename, $pages); return count($pages); } else { unlink($filename); return false; } } ?> -------- #comment
タイムスタンプを変更しない
RIGHT:&size(12){Category:[[:Plugin]]}; * links プラグインの暫定的な代替プラグイン(案) [#ucb4877a] - ページ: [[BugTrack2]] - 投稿者: [[0]] - 優先順位: 低 - 状態: 提案 - カテゴリー: プラグイン - 投稿日: 2006-01-15 (日) 08:07:24 - バージョン: ** メッセージ [#zf7f6d75] ~ とりあえず、 ref がないと #related がまともに働かないので、無理やり生成します(( 全ページに対し links_update() をかけるだけです ))。 ~ 負荷はかかると思いますが、生成自体はできるはずです。 official の rel・ref が更新不能な状態が続いた場合の最終手段の一つとしてどうぞ。 ~ リードオンリーのチェックなどはしていません。 <?php define('PLUGIN_LINKS2_MAX', 100); define('PLUGIN_LINKS2_REFRESH', 2); function plugin_links2_action() { global $script, $get, $post, $head_tags, $whatsnew; if (ini_get('safe_mode') == '0') { set_time_limit(0); } $filename = CACHE_DIR . 'links.tmp'; $exists = file_exists($filename); if (! $exists && ! (isset($post['adminpass']) && pkwk_login($post['adminpass']))) { $id = '_p_links2_adminpass'; $form[] = '<form method="post" action="' . $script . '">'; $form[] = ' <div>'; $form[] = ' <input type="hidden" name="plugin" value="links2" />'; $form[] = ' <input type="hidden" name="make" value="true" />'; $form[] = ' <label for="' . $id . '">pass: </label>'; $form[] = ' <input type="password" name="adminpass" id="' . $id . '" size="20" value="" />'; $form[] = ' </div>'; $form[] = '</form>'; return array('body' => implode("\n", $form)); } elseif (isset($post['make'])) { foreach (get_existfiles(CACHE_DIR, '.ref') as $cache) { unlink($cache); } foreach (get_existfiles(CACHE_DIR, '.rel') as $cache) { unlink($cache); } $pages = get_existpages(); unset($pages[encode($whatsnew) . '.txt']); plugin_links2_makefile($filename, $pages); } $count = plugin_links2_update($filename); if ($count) { $head_tags[] = '<meta http-equiv="refresh" content="' . PLUGIN_LINKS2_REFRESH . ';url=' . $script . '?cmd=links2" />'; $msg = $body = '更新中...(残り' . $count . 'ページ)'; } else { $msg = $body = '終了'; } return array('msg' => $msg,'body' => '<p>' . $body . '</p>'); } function plugin_links2_makefile($filename, $pages) { $handle = fopen($filename, 'w'); flock($handle, LOCK_EX); foreach ($pages as $page) { fwrite($handle, $page . "\n"); } flock($handle, LOCK_UN); fclose($handle); } function plugin_links2_update($filename) { $pages = str_replace("\n", '', file($filename)); $i = 0; while (! empty($pages) && ++$i <= PLUGIN_LINKS2_MAX) { $page = array_shift($pages); links_update($page); } if (! empty($pages)) { plugin_links2_makefile($filename, $pages); return count($pages); } else { unlink($filename); return false; } } ?> -------- #comment
テキスト整形のルールを表示する