スタッフブログ
XOOPS Cubeに標準で付属するメインメニューは、各モジュールを開いたときに自動的にそのモジュールが用意しているサブメニューが展開されるようになっています。
HTMLページを作成するpicoモジュールでは、サブメニューにカテゴリなどを自動的に展開する機能があります。
ところが、カテゴリを追加してもサブメニューにカテゴリが追加されないことがありました。
最初は不思議だったのですが、コードを追っかけてたら一定時間サブメニューをキャッシュするつくりになっていたのを発見しました。
XOOPS_TRUST_PATH/modules/pico/xoops_version.php line48
上記コードのif文のなか、 is_file($_sub_menu_cache) && time() - 3600 ってのがポイントですね。3600秒=60分キャッシュされます。
キャッシュされたくなければ、3600を0に書き換えてしまえばキャッシュされなくなります。サイト構築時はキャッシュ無しの方がすぐに表示確認できて便利ですよね。
公開時にはまたキャッシュ数値を大きくすると良いと思います。
HTMLページを作成するpicoモジュールでは、サブメニューにカテゴリなどを自動的に展開する機能があります。
ところが、カテゴリを追加してもサブメニューにカテゴリが追加されないことがありました。
最初は不思議だったのですが、コードを追っかけてたら一定時間サブメニューをキャッシュするつくりになっていたのを発見しました。
XOOPS_TRUST_PATH/modules/pico/xoops_version.php line48
$_sub_menu_cache = XOOPS_TRUST_PATH . '/cache/'. urlencode(substr(XOOPS_URL, 7)) . '_' . $mydirname . '_' . (is_object(@$GLOBALS['xoopsUser'])? join('-', $GLOBALS['xoopsUser']->getGroups()):XOOPS_GROUP_ANONYMOUS) . '_' . $GLOBALS['xoopsConfig']['language'] . '.submenu';
if (is_file($_sub_menu_cache) && time() - 3600 < filemtime($_sub_menu_cache)) {
$modversion['sub'] = unserialize(file_get_contents($_sub_menu_cache));
} else {
require_once dirname(__FILE__).'/include/common_functions.php' ;
$modversion['sub'] = pico_common_get_submenu( $mydirname ) ;
file_put_contents($_sub_menu_cache, serialize($modversion['sub']));
}
キャッシュされたくなければ、3600を0に書き換えてしまえばキャッシュされなくなります。サイト構築時はキャッシュ無しの方がすぐに表示確認できて便利ですよね。
公開時にはまたキャッシュ数値を大きくすると良いと思います。