ブログ - Customize/Hackメモカテゴリのエントリ
■eucからutf-8 へ移行したときに必要なこと
言語定数を変更していた場合、そのままでは言語定数が表示されない。
altsys で言語定数を見てみると「消えている!」と叫ぶのは焦りすぎ...
同じ日本語といっても、altsys からすれば japanese と ja_utf8 ではまったく違う言語なのだから当然だ。
言語を japanese に切換えてみれば、以前に設定した値が表示されるだろう。
ここで一生懸命手でコピーするのは耐えられないので、DB上から作業することにしよう。
SQLで
のようにすれば、一発で設定を移動することができる。
あとは、言語キャッシュを作成してもらうために「更新」ボタンを押しまくればOK
言語定数を変更していた場合、そのままでは言語定数が表示されない。
altsys で言語定数を見てみると「消えている!」と叫ぶのは焦りすぎ...
同じ日本語といっても、altsys からすれば japanese と ja_utf8 ではまったく違う言語なのだから当然だ。
言語を japanese に切換えてみれば、以前に設定した値が表示されるだろう。
ここで一生懸命手でコピーするのは耐えられないので、DB上から作業することにしよう。
SQLで
update `XXXX_altsys_language_constants` set language='ja_utf8' WHERE language='japanese'
のようにすれば、一発で設定を移動することができる。
あとは、言語キャッシュを作成してもらうために「更新」ボタンを押しまくればOK
mod_rewrite でいつもつまずいて忘れてしまうのでメモメモ...
開発環境などで apache の alias を使ってサイトを構築している場合
pico で wraps モードを使おうとして設定しても正しく表示されない。
これの原因は mod_rewrite にある。
pico の wraps モードをONにしてmod_rewrite を有効にする。
このとき pico の .htaccess を .htaccess_rewrite_wraps の内容に設定するのだが、これだけだと base が違うので、ファイルが見つかりませんとなってしまうのだ。
仕方がないので .htaccess に RewriteBase を追加する。
たとえば
DocumentRoot が /var/www
Alias に /vvlab /home/user/www/vvlab
となっている場合、
RewriteBase がないと
/var/www/home/user/www/vvlab/.... へ INTERNAL REDIRECT されてしまうため、ファイルが見つかりませんとなる。
このときエラーログには /var/www/home がない!と書かれている。
(もちろんそんなパスはない)
そこで RewriteBase を設定する
RewriteBase /home/user/www/vvlab/modules/pico
これでめでたくうまく行く
でもこれはこれでポーティングするときに困るんだけどね...
開発環境などで apache の alias を使ってサイトを構築している場合
pico で wraps モードを使おうとして設定しても正しく表示されない。
これの原因は mod_rewrite にある。
pico の wraps モードをONにしてmod_rewrite を有効にする。
このとき pico の .htaccess を .htaccess_rewrite_wraps の内容に設定するのだが、これだけだと base が違うので、ファイルが見つかりませんとなってしまうのだ。
仕方がないので .htaccess に RewriteBase を追加する。
たとえば
DocumentRoot が /var/www
Alias に /vvlab /home/user/www/vvlab
となっている場合、
RewriteBase がないと
/var/www/home/user/www/vvlab/.... へ INTERNAL REDIRECT されてしまうため、ファイルが見つかりませんとなる。
このときエラーログには /var/www/home がない!と書かれている。
(もちろんそんなパスはない)
そこで RewriteBase を設定する
RewriteBase /home/user/www/vvlab/modules/pico
これでめでたくうまく行く
でもこれはこれでポーティングするときに困るんだけどね...
pico をバージョンアップしたら、コンテンツのメニューに違和感を感じた...(1.62=>1.80a)
以前のpico はカテゴリ内にメニューに表示するものがない場合に、カテゴリ自体もメニューに表示されなかったのだが、新しいものでは表示されるようになっている?
本当に仕様変更があったのかはわからないが、これではちょっと困るので何とか元のように表示したい。
というわけでテンプレートをいじる。
pico_block_menu.html
の部分を次のように変更してみた。
とりあえずこれでOK?
以前のpico はカテゴリ内にメニューに表示するものがない場合に、カテゴリ自体もメニューに表示されなかったのだが、新しいものでは表示されるようになっている?
本当に仕様変更があったのかはわからないが、これではちょっと困るので何とか元のように表示したい。
というわけでテンプレートをいじる。
pico_block_menu.html
<{foreach item=category from=$block.categories}>
...
<{/foreach}>
の部分を次のように変更してみた。
<{foreach item=category from=$block.categories}>
<{if $category.contents|@count > 0 }>
...
<{/if}>
<{/foreach}>
とりあえずこれでOK?
(未確認)
wizmobile は session を保つために努力してくれるが、モジュール側の問題でうまくセッションを保てないことがあるようだ。
controller->executeRedirect に index.php のような url を渡してしまうと、そのまま location: index.php のようになる...
このような場合、url は./index.php のように渡してあげると、正しくセッションを保ってくれる。
wizmobile は session を保つために努力してくれるが、モジュール側の問題でうまくセッションを保てないことがあるようだ。
controller->executeRedirect に index.php のような url を渡してしまうと、そのまま location: index.php のようになる...
このような場合、url は./index.php のように渡してあげると、正しくセッションを保ってくれる。
(その2から続いています)
■バリデーションの順番を制御したい...
さて、その2までで無事カスタマイズできたわけだが、ちょっと気になることがひとつ。
それは、required チェックの順番の問題。
■バリデーションの順番を制御したい...
さて、その2までで無事カスタマイズできたわけだが、ちょっと気になることがひとつ。
それは、required チェックの順番の問題。
以前ユーザ登録画面のカスタマイズをHackで対応してみた。「ユーザー登録画面のカスタマイズ」
今回はプリロードを使ってHackなしで対応してみる。
以下は [XCL 2.1.4] [XCL 2.1.5] で試してみたもの...
今回はプリロードを使ってHackなしで対応してみる。
以下は [XCL 2.1.4] [XCL 2.1.5] で試してみたもの...
ログに若干手を入れたくて XoopsLogger を差し替え
まずは XoopsLogger を継承したクラスを作る。
続いて Legacy_Controller の _setupLogger をオーバーライドする。
これで完璧!簡単で良いなぁ... と思ったら、うまく動かない....
まずは XoopsLogger を継承したクラスを作る。
続いて Legacy_Controller の _setupLogger をオーバーライドする。
これで完璧!簡単で良いなぁ... と思ったら、うまく動かない....
■ファイルの展開
・XCL 2.1.5 を適当な場所で解凍する。
% unzip Package_Legacy_2_1_5.zip
・上書きしたくない不要なファイルを削除する
% cd Package_Legacy_2_1_5/html
% rm mainfile.php
% rm favicon.php
% rm -r templates_c cache uploads
% rm -r install
% cd ..
・ファイルを上書きコピーする
% tar -cf - html | (cd ターゲットディレクトリ; tar -xf -)
■管理画面からモジュールをアップデートする
互換モジュール
ユーザー管理
互換レンダーシステム
標準キャッシュモジュール
(プライベートメッセージ)
・XCL 2.1.5 を適当な場所で解凍する。
% unzip Package_Legacy_2_1_5.zip
・上書きしたくない不要なファイルを削除する
% cd Package_Legacy_2_1_5/html
% rm mainfile.php
% rm favicon.php
% rm -r templates_c cache uploads
% rm -r install
% cd ..
・ファイルを上書きコピーする
% tar -cf - html | (cd ターゲットディレクトリ; tar -xf -)
■管理画面からモジュールをアップデートする
互換モジュール
ユーザー管理
互換レンダーシステム
標準キャッシュモジュール
(プライベートメッセージ)
・system/
XOOPS 2.0.x JP互換?のsystemモジュール
・XUpgrade/
XOOPS 2.0.x JPからのアップグレードをする際に使用するモジュール
・extra_preload/
extra なプリロード
・extra_languages/
extra な言語ファイル(UTF-8系)
・make_release.sh
リリース版作成用スクリプト
・login.php
。。。
・Package_Legacy.Doxyfile
???
XOOPS 2.0.x JP互換?のsystemモジュール
・XUpgrade/
XOOPS 2.0.x JPからのアップグレードをする際に使用するモジュール
・extra_preload/
extra なプリロード
・extra_languages/
extra な言語ファイル(UTF-8系)
・make_release.sh
リリース版作成用スクリプト
・login.php
。。。
・Package_Legacy.Doxyfile
???