XOOPSTips集 - 最新エントリー
xoops2を使っていていつも汚いなあと思うのは、コアでレンダリングされる部分。特にカテゴリーナビは目を覆うばかりだ。class/xoopstrree.phpのgetNicePathFromId()のことだが。ページナビはあれで一つの表現方法だから許せるけど、カテゴリーナビときたらまるでいけない。要するに親子の関係を示すレベルが表示できてないのだ。
具体的にいうと、問題は親と子をコロン「:」で連結しているところにある。コロンというのは同列を象徴するのだから親子ではなく兄弟を意味してしまう。知人に言わせるとあれは複合カテゴリーかと誤解させる元になる。ここはコロンではなく、見た目にも親子を示す「>」「»」などのほうがよい。
で、仕方がないので手を入れることになる。
インポートマネジャー(移行ツール)の作成も終わったので、当サイト2モジュールをD3化完了し、さっそく本番移行した。続いて「スペイン通信」をD3化する予定です。
「XOOPS関連TIPS集」「ホダぶろぐる」のディレクトリがそれぞれweblogからxoopstips、weblog8からhodablogとなっていることを確認してほしい。セキュリティ面の大幅改善、容易なソース管理、複製ブロックのテンプレ自在などなど、D3化の意義なり目的、メリットは多いが、僕にとって最も嬉しいのはモジュール命名が規則から完全に解放され自由になったことだ。
検索結果から訪問される方のためにmod_rewriteで誘導も忘れずに行っておこう。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/modules/weblog/(.*)$ /modules/xoopstips/$1 [R=301,L]
RewriteRule ^/modules/weblog1/(.*)$ /modules/espana/$1 [R=301,L]
RewriteRule ^/modules/weblog8/(.*)$ /modules/hodablog/$1 [R=301,L]
</IfModule>
前回「やることを書こう」で宣言したweblogD3化の月内作動が間に合った。GIJOE氏提唱の方法に従えばいとも簡単。ただ、weblogのコードが多いうえ、いくつかの機能見直しを入れたので手間取ってしまった。
いくつか関門があったのだけれど、やはり「イベント通知」「コメント」をどう実現するかが問題となった。つまり、コールバック関数の場所をいかにfakeするか。とくにコメント時のイベント通知はマジックみたいに、あっけない方法で実現できるので紹介しておこう。
とminahitoさんが日本公式で呼びかけている。あちらに書くほどもない小さい話なのでこちらで密かに宣言(笑) シンプルでいながら、blogとして必要かつ十分な機能を持つweblog-1.42の愛用者として今後も長く使いたいので、これを
- legacy2.1互換(これは簡単です)
- GIJOE版D3対応
- XOOPS_TRUST_PATH対応
することを誓います。
モジュール名は既にweblogd3と決定してまして、現在改造実験進行中。
2007.3.8 トラックバックspamを撃退するには、機械的に狙い撃ちされるモジュールディレクトリ名weblogXを変えるのが一番です。weblogのD3版を試してください。やつらに肩すかしを食らわせてやりましょう。
これまで日本語のないトラックバックはご遠慮願う「なんちゃってハック」でしのいできたが、どうやら限界のようである。わが「スペイン通信」に日本語トラックバックが到来し始めたので、本腰を入れることにした。それが昨日公開したweblog-1.42トラックバックspam対策(RBL版) 。
どの程度功を奏すかもしれないが、いわゆるRBLチェックなるブラックリストの導入。これがなかなか優秀で、かつDNSのqueryを発行して答えを得るだけという、つまり世間のDNSサーバーのキャッシュも利用してしまうコストのかからない方法なのがいい。
ホダ塾サイトリニューアルで使った小技。
ブロックにidをつけて識別する方法の派生だけど、付けられたブロックのIDが仮に「BlockMultimenu1」だとすると:
#BlockMultimenu1 { display:none; }
でお仕舞い。
もしかしてFedora固有の話ではないかもしれないけど、TurboLinux7という超安定版ディストリに長く慣れ親しんでいるので、いくつかの違いがあって最初は右往左往したものだ。なかでも、apacheやphplのconf関係には、振り回されてしまった。
php.iniのmbstring関係の設定は適正。
なのに、記事によってはタイトルとか本体が文字化けしてしまう。
長く気づかずにいたが、ある方からの指摘で分かったことだ。
いろいろ調査したが、結局EUC-JPからの変換時文字コード検出そのものに失敗しているようだ。
特選(?)の〆て198のDELLサーバーに飛びついた。だが、使い慣れたTurboserver7のインストールがうまくいかない。 それもそのはず、diskがSATAになっていた。古参ディストリビューションTLS7には合うドライバーがない。
いろいろ試したが、結局FedoraCore4を使うことにした。 だがapache2はいいとして、mysqlが4.1シリーズ、phpが5.0にすっ飛んでるではないか。xoopsにとっては何かと問題の多いバージョンらしいけど仕方がない。できるだけRPMのまま使うのを前提に挑戦してみた。
We'd be very happy with our article enabled to publish on the very time we want. Why don't you to try it as webLog-1.42 enables us to specify the publish date.
First of all, you must modify the sql statements as follows:
$criteria = new criteriaCompo(new criteria('user_id', $currentuid));
//criteria->add(new criteria('private', 'N'), 'OR');
$criteria2 = new criteriaCompo(new criteria('private', 'N'));
$criteria2->add(new criteria('created', time(), '<'));
$criteria->add($criteria2,'OR');
or
//$sql .= " where private='N' or (private='Y' and user_id=$currentuid)";
$sql .= " where (private='N' and created < ".time().") or user_id=$currentuid";
- just turn around within the category or the month that was selected in the category block or the archive block.
- 'not found' returns if a parent category has no article, we need ariticles belonging to all the children.
- another cosmetic change, make inlude/search.inc.php compatible to the 'search' module, Suin's wok, more secured than search.php.
weblogをニュースモジュールの代替として使う場合など、あらかじめ原稿を用意しておいて、指定日になったら公開できる機能があれば便利だ。ver1.42では作成日の欄を自由に書き換えられるようになったので、これを利用して実現してみよう。