「記事のURLに全角を使えるようにする」の版間の差分

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

2020年7月1日 (水) 07:25時点における最新版