ログインしていません。
<geeklog>system/lib-secutiry.php
function SEC_getPermissionsHTML内の428行目
$perm_templates = new Template($_CONF['path_layout'] . 'admin/common');
これを
$perm_templates = new Template($_CONF['path_html'] . 'layout/Admin/admin/common');
こうするのが正解、かな?![]()
Mediagalleryの問題はこれで表示されるようになりました。このライブラリはほかのプラグインにも影響すると思うのでこちらで新規トピックにしました。
オフライン
そうですね。ファイルの構成が変わってレイアウトの中にadmin/commonがないのが原因です。
GeeklogRの場合管理者用のレイアウトが各テーマから切り離されて独立したレイアウトとなっているため、<geeklog>/public_html/layout/Adminに押し込められていますね。ここで渡された$_CONF['path_layout'] . 'admin/common'は最終的に<geeklog>/system/classes/template.class.phpの222行目にあるfunction set_rootでディレクトリの判定を受けますが当然ないのでアウトです、str_replaceで再度判定が試みられますがこちらもアウトになりhaltします。
1度目の判定<geeklog>/public_html/layout/Revize/admin/common
2度目の判定<geeklog>/public_html/layout//admin/common
1度目の判定はTemplateクラスがnewされたときに渡された内容でフォルダの判定がなされます。2度目の判定は間違ったフォルダを渡されていたり、フォルダでないアドレスが渡された場合にカレントの ./admin/common を見に行くという2段構えのようです。
ここからは想像ですが、これをPhizeさんが改造してテーマフォルダのadmin/commonをチェックするようにしたかったんだと思います。プログラムの内容からするとRevizeが入ることになることを想定しているとしか思えませんw
ところがテーマRevizeにはfunctions.phpで$_CONF['r_theme_base'] = 'Revize';が宣言されていないので$this->set_baseに渡る変数が空っぽになりlayoutの部分までしか戻ってきません。
これが思惑通りの動作ならすみません。
$_CONF['r_theme_base'] = 'Revize';をfunctions.phpもしくはconfig.phpに追加しただけでは解決にはなりませんケドね^^;
うーん、このへんはいろんな要素が絡み合ってるので説明が難しいですネ。3回ぐらい書き直しました^^;(配列も変数と書いています)
コードの変更方法によっては管理者画面を通常はAdminテーマ、テーマにadminを入れてやればテーマ専用管理者画面という方式にもできそうな感じです。
オフライン
詳しいご報告ありがとうございました ![]()
その部分はいじってないので、これは日本語版でもエラーが出る可能性ありますね。
管理画面の固定機能を使う場合、日本語版でもテーマのadminディレクトリを削除するので、たぶん日本語版でもエラーがでそうですね。
一応、Geeklog Rはオーバーライド機能と管理画面の分離機能に対応するため、以下のように修正してみました。
function SEC_getPermissionsHTML内の428行目
// Changed by Phize <----
if( is_dir($_CONF['path_layout'] . 'admin/common' ) === true ){
$perm_templates = new Template($_CONF['path_layout'] . 'admin/common');
} else {
if ((!empty($_CONF['r_theme_admin'])) && (is_dir($_CONF['path_themes'] . $_CONF['r_theme_admin']) === true)) {
$perm_templates = new Template($_CONF['path_themes'] . $_CONF['r_theme_admin'] . '/admin/common');
} else {
$perm_templates = new Template($_CONF['path_themes'] . 'Admin/admin/common');
}
}
// Changed by Phize ---->まずはテーマのadmin/commonを探して、なければ管理ページテーマ($_CONF['r_theme_admin'])、それもなければAdmin/commonを使用、という感じで。
オフライン
Thanks to famfamfam.com for some icons(Creative Commons Attribution 2.5).
Copyright© 2007-2007 Revize Geeklog!.