2.1.5 RCを新規にフルインストールすると管理画面で css が読み込まれないのか表示がおかしくなってしまう。
2.1.4にオーバーライトすればいいのだろうか?
直そうとしたけどどこをいぢればいいいか解らんのでやめた。
2008年6月アーカイブ
うちの Fierfox は以前からよくブックマークが迷子になって困っている。
原因はブックマークペイン(サイドバーつうのか?)上でのマウスの不用意なクリックみたいなんだが、これが発生するとマウスカーソルが乗っかっているブックマークが最後にアクティブだったブックマークフォルダにワープしてしまう。
ブックマークが行方不明だとブックマークではなくなってしまう。サイドバーの検索機能でとりあえずアクセスはできるけどどのフォルダに入っているのかは分らない。毎回検索するのはめんどくさい。再度ブックマークすれば同じブックマークがやたらあちこちのフォルダにできてしまう。
対策としていままではプロファイルのブックマークファイル(bookmarks.html) 自身をブックマークしておき、ブックマークが迷子になるとこのファイルを表示させて、スラッシュ( / ) キーを押し検索して移動先フォルダを特定し、元のフォルダに移動しなおしていた。
Firefox は ver 3.0 からブックマークが従来の html ファイルに変わって SQLite データベースになっている。こうなると今までの方法は使えない。何とかして SQLite のファイルを扱う必要がある。そこで Firefox のアドオンを追加する。
SQLite Manager 0.2.43 ( https://addons.mozilla.org/ja/firefox/addon/5817 )
ツールメニューの SQLite Manager(Q) で SQLiteマネージャーのウィンドウが開く。
プロファイルの place.sqlite データベースを開き、Brows & Search タブで moz_bookmarks テーブルを眺め、Search(H) ボタンを押して title フィールド(column)を contains の条件かなんかで探してブックマークを見つけ出す。
見つかったらそのレコード(row) の parent フィールドの値をチェック。この値を id とするレコードが迷い込んだフォルダなのでそこがなんというフォルダなのかを調べる。
そして以前のようにそのフォルダから元のフォルダにブックマークを移動させてやる。
ふう。〜めんどくさい。
もっと簡単な方法みつかんないかな?
それより迷子にならないような対策はないんかな?
今日は最近誰がログインしたかを表示するネタ。
暇なサイトをやっていると「今誰がログインしてるか?」なんて見ても仕方ない(誰も来てない)ので「最近誰が来たか」の足跡をチェックしてみました。件数は LIMIT の値を勝手に変えてください。
--- こっから
// 最近のログイン
$xoopsDB =& Database::getInstance();
$tbl = $xoopsDB->prefix('users');
$sql = "SELECT uname, name, last_login FROM $tbl ORDER BY last_login DESC LIMIT 10;";
$cls = array("class='even'", "class='odd'");
if ($res = $xoopsDB->query($sql)) {
$n = -1;
while ($row = $xoopsDB->fetchArray($res)) {
$uname= $row['uname'];
$name = $row['name'];
$last = date('y-m-d H:i',$row['last_login']);
$c = $cls[($n=!$n)];
$tr[] = "<tr $c><td>$uname<td>$last";
}
}
echo "<table style='border:1px solid #777'>";
foreach($tr as $r) echo $r;
echo "</table>";
--- ここまで
Xoops の持っているデバッグ機能を管理画面外から切り替えるブロック。
Smarty に渡された変数や、MySQL が実行した(そして失敗した)SQL文が見られるのは 意外と便利。
でもいちいち管理画面で切り替えるのは面倒。
だからブロックで任意のモジュール画面に表示させる。
---- ここから
// Switch Debug mode ver 1.4 (c) 2005-2008 by Tensu.
include_once(XOOPS_ROOT_PATH.'/mainfile.php');
global $xoopsDB,$xoopsConfig;
if (isset($_GET['deb-sw'])) {
$deb_sw = $_GET['deb-sw'];
if ($deb_sw != $xoopsConfig['debug_mode']) {
$xoopsConfig['debug_mode'] = $deb_sw;
if (is_object($xoopsDB)) {
$xoopsDB->queryF("UPDATE ".$xoopsDB->prefix('config')
." SET conf_value='$deb_sw'"
." WHERE conf_name='debug_mode' LIMIT 1;");
}
$url = htmlspecialchars($_SERVER['HTTP_REFERER']);
redirect_header($url, 0, 'Switched Debug mode.');
}
}
$sel=array(0=>'',1=>'',2=>'',3=>'');
$sel[$xoopsConfig['debug_mode']] = "selected";
echo <<<END
<form method='GET'>
<select name='deb-sw' onchange='submit();' style='margin:0px; width:90%;'>
<option value='0' $sel[0]> Off
<option value='1' $sel[1]> PHP Debug
<option value='2' $sel[2]> MySql / Blocks
<option value='3' $sel[3]> Smarty
</select>
</form>
END;
// Don't remove this comment.
---- ここまで
Xoops のカスタムブロック用に、任意長のパスワードを作って表示するコードを書いてみた。
強制メンバー登録(?)時に便利かもしれない。
---- ここから ----
// Password Block ver 1.2 (c) 2008 by Tensu
$str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$num = isset($_GET['num'])?intval($_GET['num']):8;
$len = strlen($str) -1;
$pass='';
for($i=0; $i<$num; $i++)
$nbsp; $pass .=substr($str,rand(0,$len),1);
$m = 'margin:0px';
$f = 'font-size:9pt';
$w = 'width:100%';
$p = 'padding:0px';
$p2= 'padding-left:2px';
echo <<<L1
<form>
<table style='$m;$p;$w;'>
<tr>
<td>
<select name='num' onchange='submit();' style="$m;$f;">
L1;
for ($i=4; $i<=20; $i++) {
echo "<option value='$i'";
if ($i==$num) echo " selected";
echo "> $i";
}
echo <<<L2
</select>
<td>
<input type='text' name='pass' size='16' value='$pass' onclick='submit();' style='$m;$f;$p2;'>
<td>
<button type='submit'>?</button>
</table>
</form>
L2;
//このコメント取ると動かない!
---- ここまで