2024年4月26日(金) 14:43 JST

Geeklog

Geeklog の文字化け対策

  • 2006年4月 6日(木) 13:59 JST
  • 投稿者:
  • 表示回数 5,967
Geeklog //=================================================//
// 表示用には COM_truncate($text, length, '...') を,データベースへの保存用    //
// には mb_strcut($text, 0, length) を使うのが基本。EUC-JPの場合は全角文字は  //
// 2バイトなので,COM_truncate() を使ってもうまくいくが,UTF-8の場合は全角文    //
// 字は 3バイトなので,失敗する。                                  //
//=================================================//

・ファイル管理(FileMgmtプラグイン)

private/plugins/filemgmt/fuction.inc の733行目を

$str .= stripslashes(substr($title,0,$filemgmtWhatsNewTitleLength));

から

$str .= COM_truncate(stripslashes($title),$filemgmtWhatsNewTitleLength.'...');

に変更。

同じく 757 行目を

$str .= stripslashes(substr($title,0,$titleLength));

から

$str .= COM_truncate(stripslashes($title),$titleLength,'...');

に変更。
-------------------------------------------------------------------------------

・RSS フィード
lib-syndication.php の 713行目を

$text = substr( $text, 0, $length - 3 ) . '...';

から

$text = COM_truncate( $text, $length, '...');

に変更。
-------------------------------------------------------------------------------

・新着情報
lib-common.php の 4131行目を

$titletouse = substr( $titletouse, 0, 17 ) . '...';

から

$titletouse = COM_truncate( $titletouse, 20, '...');

に変更。
-------------------------------------------------------------------------------

・記事中のリンクを AutoTag で抜き出すときのリンクテキスト
lib-story.php の 490行目を

$matches[2][$i] = substr( $matches[2][$i], 0, $maxlength - 3 ) . '...';

から

$matches[2][$i] = COM_truncate( $matches[2][$i], $maxlength, '...');

に変更。
-------------------------------------------------------------------------------

・記事のタイトル

/admin/story.php の DB_save の前に

$title = mb_strcut($title, 0, 128); // COM_truncate()ではダメ

を追加。

「新着情報」の文字切れ対策

  • 2006年4月 6日(木) 12:31 JST
  • 投稿者:
  • 表示回数 5,546
Geeklog lib-common.php の 4131行目を

$titletouse = substr( $titletouse, 0, 17 ) . '...';

から

$titletouse = COM_truncate( $titletouse, 20, '...');

に変更するだけ。

Bad Behaviorプラグインをインストール

  • 2006年4月 6日(木) 10:31 JST
  • 投稿者:
  • 表示回数 5,141
プラグイン install.txt に沿ってやってみると,難なくインストールできた。前回挑戦した時には,たぶん lib-common.php の require_once( $_CONF['path_system'] . 'lib-database.php' );
の後に require_once( $_CONF['path_html'] . '/bad_behavior/bad-behavior-geeklog.php' );
を追加していなかったので失敗したようだ。日本語ファイルを作り,時刻表示を UTC から JST に変更した。

register_globals = off でもきちんと動作する。index.php を覗いていると「自己診断」という機能があったので,試しに index.php?mode=test でアクセスすると自分がブロックされてしまった。ファイヤウォールの設定を変えたり,ブラウザを変えてもアクセスできない。

かなり焦ったが, install.txt をよく読むと「自己診断ではわざと悪意のあるリクエストをサーバーに送り,ブロックされるのを確認します。でも,このブロックを Geeklog から解除する方法がないので,この機能は無効にしてあります」と書いてあった^^;。しかたないので,phpMyAdmin を起動し,bad_behavior_log から該当レコードを削除すると,復活できた。主人であっても,お行儀の悪いものには容赦なく門前払いをくらわすとは... Bad Behavior 恐るべし!

ha! ha! ha!

  • 2006年3月10日(金) 17:43 JST
  • 投稿者:
  • 表示回数 4,226
Geeklog Geeklogの完成度はまだ十分高いとは言えないが,確かにセキュリティの面では堅固そうだ。しかし,マルチバイト文字への対応度はいまいちで,かなりカスタマイズしなければなるまい。

ページナビゲーション