geeklog静的ページ改造
geeklog1.41の静的ページでpublic_html/staticpages以下に静的ページで使用するファイル(cgi、画像ファイル等)を置いている。(やり方間違えている?)
ここでrewrite機能をONにした時に問題点が。。。
&が/に置き換わるために、通常の表示と印刷ページで静的ページで使用するファイルのパスが違うことである。
最初は印刷ボタンを消去してしまおうと思ったのだがrewriteをONにした時、印刷ページとパスが同じになるように改造
public_html/staticpages/index.phpの85行目あたりを以下のように
「&mode=」の部分を「__print」にして印刷ページの静的ページのIDに__printが付加されるように
if ($_CONF['hideprintericon'] == 0) {
$retval .= ' <a href="' . COM_buildURL ($_CONF['site_url'] . '/staticpages/index.php?page=' . $page . '&mode=print') . '"><img src="' . $_CONF['layout_url'] . '/images/print.' . $_IMAGE_TYPE . '" alt="' . $LANG01[65] . '" title="' . $LANG_STATIC['printable_format'] . '" border="0"></a>';
}
if ($_CONF['hideprintericon'] == 0) {
$retval .= ' <a href="' . COM_buildURL ($_CONF['site_url'] . '/staticpages/index.php?page=' . $page . '__print') . '"><img src="' . $_CONF['layout_url'] . '/images/print.' . $_IMAGE_TYPE . '" alt="' . $LANG01[65] . '" title="' . $LANG_STATIC['printable_format'] . '" border="0"></a>';
}
160行目当たりを以下のように
($pageの文字列の最後が__printだったら$modeにprintを代入して$pageには__printを取り除いた文字列を渡す)
$page = COM_applyFilter (COM_getArgument ('page'));
$mode = COM_applyFilter (COM_getArgument ('mode'));
$page = COM_applyFilter (COM_getArgument ('page'));
/* change */
if (preg_match('/__print$/',$page)) {
$page = preg_replace("/(.+?)__print$/","\\1",$page);
$mode = 'print';
} else {
$mode = COM_applyFilter (COM_getArgument ('mode'));
}
当り前だけど、この改造を行ったとき「__print」を行末に含むIDは作れません。忘れて自分がやりそう。。。(おぃ
ソース記述用のスタイルシートを作るべきか。。。(汗
コメントは投稿者の責任においてなされるものであり,サイト管理者は責任を負いません。