NetCommonsで使われているCSSが、ファイルを修正しても反映されないのでついカッとなってやってしまった。
NetCommonsで使われているCSSを編集したかったんだけど、どーも反映されない。
んー、って思って調べてみたら、DBからCSSをロードしてる。
なんでそんな・・・・と思ったけど、そう言うことらしい。
NetCommons2公式サイト
テーマはwebapp/style/themes/下にそのテーマ用にフォルダ作るんだけど、そのままじゃ利用できなくて、管理画面のモジュール管理から一括アップデートかけないとhtdocs下に反映されない。
#アップデートログ見てると、グローバルファイルコピーってので、コピーされてるっぽいんだが、この作業だけ行う方法が不明。
だって。
こんなの毎回やってらんねー。XOOPSだと、開発環境でならALTSYS使って一発なのに。
ってことで、見境なくハック!!
<?php //$order_params = array(); include dirname(__FILE__).'/css_auto_update.php'; $result = $db->selectExecute("css_files", $where_params, $order_params, null, null, "_fetchcallbackCss");
ってcss_auto_update.phpをincludeさせる。
<?php function css_auto_update() { global $db, $where_params, $order_params; $result = $db->selectExecute("css_files", $where_params, $order_params); foreach ($result as $row){ $path = '***'; $_path = $row['dir_name']; if (preg_match('@^/themes/@', $_path)){ $path = STYLE_DIR.$_path; } else { $_path_info = explode('/', trim($_path, '/'), 2); if (count($_path_info) == 2){ $path = sprintf('%s/webapp/modules/%s/files/css/%s', BASE_DIR, $_path_info[0],$_path_info[1] ); } } if (file_exists($path)){ $utime = date('YmdHis', filemtime($path)); if ( $row['update_time'] < $utime){ $row['data'] = file_get_contents($path); $row['update_time'] = $utime ; $where_params = array( 'dir_name' => $row['dir_name'], 'type' => $row['type'], 'block_id' => $row['block_id'], ); $db->updateExecute('css_files', $row, $where_params); } } } } css_auto_update();
もう、何が正解だかわけわかんないけど、とりあえずこれで2回リロードすれば効くようになった。よっしゃぁああぁぁ!!!