記事のURLに全角を使えるようにする
提供: Geeklog Japan
2017年3月13日 (月) 18:08時点におけるGeeklog Japan (トーク | 投稿記録)による版 (ページの作成:「Geeklogでは、全角など、特殊なURLを許可していませんが,以下のハックで全角を許可し、さらにIDの長さも変更できます。 by ...」)
Geeklogでは、全角など、特殊なURLを許可していませんが,以下のハックで全角を許可し、さらにIDの長さも変更できます。
全角を許可する
lib-common.php
COM_sanitizeID()で、記事IDをサニタイズしています。この処理を一部コメントアウトします。
修正前:
function COM_sanitizeID( $id, $new_id = true ) { $id = str_replace( ' ', '', $id ); $id = str_replace( array( '/', '\\', ':', '+' ), '-', $id ); $id = preg_replace( '/[^a-zA-Z0-9\-_\.]/', '', $id );
修正後:
function COM_sanitizeID( $id, $new_id = true ) { $id = str_replace( ' ', '', $id ); $id = str_replace( array( '/', '\\', ':', '+' ), '-', $id ); // $id = preg_replace( '/[^a-zA-Z0-9\-_\.]/', '', $id );
IDの長さを変更する
IDの長さの定義を変更する
/system/lib-story.php:
修正前:
// this must be kept in sync with the actual size of 'sid' in the db ... define('STORY_MAX_ID_LENGTH', 40);
修正後:
// this must be kept in sync with the actual size of 'sid' in the db ... define('STORY_MAX_ID_LENGTH', 100);
DBのIDの長さを変更する
上記英語のコメントで注意書きがあるように、テーブルのgl_story のsid のサイズを 変更後の数値にしてください。phpMyAdmin等で変更します。
なお、Geeklog 2.1以降では128に、大きくなっており、変更は不要です。
テンプレートのフォームを変更する
また、テーマの記事編集用テンプレートも、入力フォームの制限値を40から100に ひろげてください。
/layout/テーマ/admin/story/*.thtml:
修正前:
maxlength="40" value="{story_id}"
修正後:
maxlength="100" value="{story_id}"