ブログ - 最新エントリー
D3モジュールに notification を実装する際の問題点
標準では mail_template を公開側から取得しようとするため、テンプレートが取得できない...
altsys-0.61以上に追加されている D3NotificationHandler を使えばOK
ただ、lookup_func による以下の変数の埋め込みはサポートされていない。
というか
となっているので敢えてなくしているようだ...
おそらく、triggerEventの第4引数に extra_tag を与えればすむことだからか。
そういう訳で、xoops_version.php の $modversion にも lookup_file, lookup_func は不要である。
しかし、これには少し問題がある...
D3 モジュールによる notification (2)へ続く
標準では mail_template を公開側から取得しようとするため、テンプレートが取得できない...
altsys-0.61以上に追加されている D3NotificationHandler を使えばOK
ただ、lookup_func による以下の変数の埋め込みはサポートされていない。
X_ITEM_NAME
X_ITEM_URL
X_ITEM_TYPE
というか
// Add some tag substitutions here
$tags = array();
// {X_ITEM_NAME} {X_ITEM_URL} {X_ITEM_TYPE} from lookup_func are disabled
となっているので敢えてなくしているようだ...
おそらく、triggerEventの第4引数に extra_tag を与えればすむことだからか。
そういう訳で、xoops_version.php の $modversion にも lookup_file, lookup_func は不要である。
しかし、これには少し問題がある...
D3 モジュールによる notification (2)へ続く
pico[1.80a] で既存のデータを編集したら、カテゴリがTOPになってしまった。
編集画面を開いてみると、カテゴリのドロップダウンにTOP以外のカテゴリが出てこない。
そのためそのまま保存すると、カテゴリがTOPに変わってしまう。
とりあえずコンテンツ一括管理で修正することにしたが、これでは困ってしまう。
原因はテンプレートにありそうなので、チェック。
だいぶテンプレートが変わっているみたいだ。
とりあえずテンプレート(pico_main_content_form.html)を新しいものにしたら直った。
編集画面を開いてみると、カテゴリのドロップダウンにTOP以外のカテゴリが出てこない。
そのためそのまま保存すると、カテゴリがTOPに変わってしまう。
とりあえずコンテンツ一括管理で修正することにしたが、これでは困ってしまう。
原因はテンプレートにありそうなので、チェック。
だいぶテンプレートが変わっているみたいだ。
とりあえずテンプレート(pico_main_content_form.html)を新しいものにしたら直った。
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?
すごく久しぶり...ずいぶんサボっていた。
pico 1.62=>1.80a
d3form 0.84=>0.85
テストしてみると、コメント統合している pico の画面が崩れてしまう...
おそらくテンプレートをいじっているせいか?
altsys でチェックする。
該当のテンプレートはおそらく
pico_main_viewcontent.html
差分をみてみるとコメント統合のタグが変わっていた。
該当部分を
<{d3comment mydirname=$mydirname class="PicoD3commentContent"}>
に修正したら直った。
あぁ、よかった。
pico 1.62=>1.80a
d3form 0.84=>0.85
テストしてみると、コメント統合している pico の画面が崩れてしまう...
おそらくテンプレートをいじっているせいか?
altsys でチェックする。
該当のテンプレートはおそらく
pico_main_viewcontent.html
差分をみてみるとコメント統合のタグが変わっていた。
該当部分を
<{d3comment mydirname=$mydirname class="PicoD3commentContent"}>
に修正したら直った。
あぁ、よかった。
久々に AnalyzerXC をバージョンアップした。(0.43 -> 0.51)
メニュー画面に
_AD_ANALYZER_NEW_INIFILE
と表示される
定数が定義されていないということか?
うーん。ファイルの展開に失敗したのかなぁ...
language ファイルを確認してみる。
むむ。ja_utf8 側には定義されているみたいだ。
japanese にないのか...
もう euc の時代じゃないんだね。
メッセージは「新しいbrowsecap.iniがリリースされています。」だった。
メニュー画面に
_AD_ANALYZER_NEW_INIFILE
と表示される
定数が定義されていないということか?
うーん。ファイルの展開に失敗したのかなぁ...
language ファイルを確認してみる。
むむ。ja_utf8 側には定義されているみたいだ。
japanese にないのか...
もう euc の時代じゃないんだね。
メッセージは「新しいbrowsecap.iniがリリースされています。」だった。
inquiry の preload が行うこと
PreBlockFilter で
FrontController.PostFilter というデリゲートをセットする。
postFilter 時に
_FRONTCONTROLLER が定義されていなければ
FrontController.PostFilter を raise する。
このデリゲート中では
モジュールの情報をロード ($module->loadInfo()) し、
_SESSION['INQUIRY'] を unset している?
mod_info['mcl_update'] == 'inquiry' なら smarty プラグインをインストールする?
うーーーん。
まず
が気になる。
これをすると、キャッシュされた modinfo を使わずに xoops_version.php は確実に再読み込みされる。
確かに、他への影響を減らすにはよいのだろうが...
PreBlockFilter で
FrontController.PostFilter というデリゲートをセットする。
postFilter 時に
_FRONTCONTROLLER が定義されていなければ
FrontController.PostFilter を raise する。
このデリゲート中では
モジュールの情報をロード ($module->loadInfo()) し、
_SESSION['INQUIRY'] を unset している?
mod_info['mcl_update'] == 'inquiry' なら smarty プラグインをインストールする?
うーーーん。
まず
$module=new XoopsModule();
$module->loadInfo(...)
が気になる。
これをすると、キャッシュされた modinfo を使わずに xoops_version.php は確実に再読み込みされる。
確かに、他への影響を減らすにはよいのだろうが...
■サイト関連
xoops_sitename
サイト名
xoops_slogan
サイト副題
xoops_pagetitle
ページタイトル
■テーマ関連
xoops_theme
テーマ名
xoops_imageurl
テーマurl
xoops_themecss
テーマCSS url
xoops_modulename
xoops_dirname
xoops_isadmin
xoops_banner
xoops_sitename
サイト名
xoops_slogan
サイト副題
xoops_pagetitle
ページタイトル
■テーマ関連
xoops_theme
テーマ名
xoops_imageurl
テーマurl
xoops_themecss
テーマCSS url
xoops_modulename
xoops_dirname
xoops_isadmin
xoops_banner
wizmobile [0.31] + Softbank(p1emu) href のurlencodeされて動かない...
- 執筆 :
- masa 2008/11/24
p1エミュレータで softbank端末を試す。
どうもアンカータグの href のパラメタが urlencode されていると、うまく動作しない...
実機がないので、p1emuのせいなのか不明...
ただ、docomo や au では動くようなので、p1emuは確信的にエラーにしているのだと思うが......
wizmobile はエンコード変換のために <a href="..."> を書き換えてくれるのだが、これのおかげで urlencode も自動的に行われてしまう...
(これはwizmobileのせいではなく、softbank 端末(p1emu)のせいなのだが...)
この変換は wizin/src/filter/Common.class.php の Wizin_Filter_Common::filterOutputEncoding() 中で行われているようで、
試しに
をコメントアウトしてみると、動作してくれた。
うーん。どうしましょう........
どうもアンカータグの href のパラメタが urlencode されていると、うまく動作しない...
実機がないので、p1emuのせいなのか不明...
ただ、docomo や au では動くようなので、p1emuは確信的にエラーにしているのだと思うが......
wizmobile はエンコード変換のために <a href="..."> を書き換えてくれるのだが、これのおかげで urlencode も自動的に行われてしまう...
(これはwizmobileのせいではなく、softbank 端末(p1emu)のせいなのだが...)
この変換は wizin/src/filter/Common.class.php の Wizin_Filter_Common::filterOutputEncoding() 中で行われているようで、
試しに
$queryValue = urlencode( $queryValue );
をコメントアウトしてみると、動作してくれた。
うーん。どうしましょう........
(未確認)
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 のように渡してあげると、正しくセッションを保ってくれる。
i-mode(エミュレータ)から wizmobile で pico のコンテンツにアクセスしたときに、勝手にログアウトされてしまうことがあった。
HTTPレベルで確認すると、PHPSESSID が送出されていないために、セッションが継続できなかったようだ。
なぜ?
調べてみたら状況が確認できた。
pico のコンテンツとして TOP カテゴリの下にコンテンツを置いてあると、pico は modules/pico/ にアクセスされたときに
HTTP/1.1 302 Found で、Location: pico/index.php?content_id=N を返すようだ(これは通常の redirect ということ?)。
そのため、PHPSESSID が渡らなくなってしまっている。
これは pico 側の問題なのだろうか?それとも wizmobile 側?
とりあえず、ここから先はまた今度調査しよう...(?)
HTTPレベルで確認すると、PHPSESSID が送出されていないために、セッションが継続できなかったようだ。
なぜ?
調べてみたら状況が確認できた。
pico のコンテンツとして TOP カテゴリの下にコンテンツを置いてあると、pico は modules/pico/ にアクセスされたときに
HTTP/1.1 302 Found で、Location: pico/index.php?content_id=N を返すようだ(これは通常の redirect ということ?)。
そのため、PHPSESSID が渡らなくなってしまっている。
これは pico 側の問題なのだろうか?それとも wizmobile 側?
とりあえず、ここから先はまた今度調査しよう...(?)