[EE]タイトルの長さの上限を変更する

expressionEngineのweblogでは、タイトルの長さ上限が100byteとなっています。

This field contains the title of your weblog entry. Titles can be up to 100 characters in length.

Publish Page – ExpressionEngine Documentation

実際には、日本語35文字を超えたあたりからおかしなことになるようです。

WS000.JPG

英語圏では十分なのでしょうけど、一文字に2byte3byteを消費するマルチバイト圏を考えると、ちょっと微妙な数字です。

実際、movabletypeでは255byte確保していますし、こんなところケチったって仕方なかろうと思うのですけど。

EEフォーラムを探してみると、同じことを考えている人がいました。

Change title maxlength | ExpressionEngine Community Forums

詳しいやり方を教えて頂いたので、ここでご紹介しておきます。

Be Like Water : Changing the Title Maxlength in Expression Engine

ExpressionEngineのテーブル定義を変更します。

[daisuke@snares /var/www/root/html] $ mysql -u expressionengine -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 193 to server version: 4.1.20



Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.



mysql> use expressionengine

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A



Database changed



mysql> show tables;

+—————————-+

| Tables_in_expressionengine |

+—————————-+

| exp_actions |

:

| exp_weblog_member_groups |

| exp_weblog_titles |

| exp_weblogs |

+—————————-+

68 rows in set (0.00 sec)



mysql> show create table exp_weblog_titles;

:

`ip_address` varchar(16) NOT NULL default ”,

`title` varchar(100) NOT NULL default ”,

`url_title` varchar(75) NOT NULL default ”,

:

1 row in set (0.00 sec)



mysql> alter table exp_weblog_titles modify title varchar(255);

Query OK, 4 rows affected (0.00 sec)

Records: 4 Duplicates: 0 Warnings: 0



mysql> show create table exp_weblog_titles;

:

`ip_address` varchar(16) NOT NULL default ”,

`title` varchar(255) default NULL,

`url_title` varchar(75) NOT NULL default ”,

:



mysql> exit

Bye

[daisuke@snares /var/www/root/html] $

で、ソースコード側も変更。

[daisuke@snares /var/www/root/html] $ emacs ee/cp/cp.publish.php

[daisuke@snares /var/www/root/html] $ diff ee/cp/cp.publish.php ee/cp/cp.publish.php~

670c670

input_text(‘title’, $title, ’20’, ‘256’, ‘input’, ‘100%’, ($which == ‘new’ OR $which == ‘preview’) ? ‘onkeyup=”liveUrlTitle();”‘ : ”, $convert_ascii)



> $DSP->input_text(‘title’, $title, ’20’, ‘100’, ‘input’, ‘100%’, ($which == ‘new’ OR $which == ‘preview’) ? ‘onkeyup=”liveUrlTitle();”‘ : ”, $convert_ascii)

以上。とくに再起動とか不要です。

WS002.JPG

動作中のシステムを変更しても大丈夫(変更後は256byteまでの長さが使えるようになります)が、非公式なやり方ですので、どうしても必要なときだけにするのがよいかと思います。

それにしても。

For example, one of my client wanted to write an article in Lao, but it turns out that they needed more than 100 characters for their title.



世界にはラオス語のブログを作る需要なんて存在するんですねぇ。