PEAK XOOPS - News in englishin japanese

Archive | RSS |
  
Poster : GIJOE on 2008-06-13 16:24:49 (8721 reads)

in englishin japanese
EMLHはXCL2.1でもまったく問題なく動きますが、いろいろな意味でcubeUtilsの方がより使いやすい多言語処理と言えるでしょう。前者は一応Hackで、後者はモジュールだ、というのもあります。

ただ、この手の多言語処理は、ob_filterを利用しているので、メール送信処理などで、言語タグが未処理のまま送られてしまうことはままあります。

そのあたりの経験を積んでいるモジュール作者であれば、メールを送信する前、本文などに言語タグ書き換え処理を入れます。


if( function_exists('easiestml') ) {
	$body = easiestml( $body ) ;
}


実際に私が作ったモジュールにも、このようなコードを沢山使ってます。

ただ、このロジックでは、EMLHを入れている場合は良いのですが、cubeUtilsを入れている場合に効きません。そのため、例えばpicoのフォームメール機能を言語タグを利用して記述した場合、タグが未処理のままメール本文になってしまいます。

というわけで、cubeUtilsを利用していても、EMLHと同じ処理がされるようなpreloadを作ってみました。preloadフォルダに放りこんでください。この場合、ファイル名は何でも良いのですが、MultiLanguagePreLoad.class.php と併存する必要があるので、それっぽく名づけてあります。

MultiLanguageCompatibleEMLH.class.php

<?php
function easiestml( $s , $lang = '' )
{
	global $cubeUtilMlang ;

	if( is_object( @$cubeUtilMlang ) ) {
		if( $lang ) {
			$orig_lang = $cubeUtilMlang->mLanguage ;
			$cubeUtilMlang->mLanguage = $lang ;
			$ret = $cubeUtilMlang->obFilter( $s ) ;
			$cubeUtilMlang->mLanguage = $orig_lang ;
			return $ret ;
		} else {
			return $cubeUtilMlang->obFilter( $s ) ;
		}
	} else {
		return $s ;
	}
}

え? これだけ?
ええ。これだけです

「なんじゃそりゃ!」と突っ込みを受けそうなコードですが、cubeUtilsの言語切替機能を使っている人にはかなりお勧めです。
------------
(2008/06/22 更新)
EMLH 1.30互換とするために、2番目のパラメータ処理を追加しました


Poster : GIJOE on 2008-04-30 05:36:07 (12655 reads)

in englishin japanese
XUGJで質問されて気づいたのですが、XCL2.1のEmailログインpreloadって意外と見つからないですよね。
(もしかしたら、デベロッパーズバイブルあたりに書いてあったのかもしれませんが、今手元にないので確認できません)

絶対に誰かが作っているとは思うのですが、パッと見つからないのは不便なので、ささっと作ってみました。
もちろん、cubeUtilsのオートログインとも併用可能です。
(cubeUtilsはSite.CheckLogin.Successにクッキー処理を追加するだけ。このpreloadはSite.CheckLoginに認証方式を追加するだけだから)

こちらからダウンロードしてください。
http://www.peak.ne.jp/support/xoops/XCL_EmailLoginHack.tar.gz

0 comments

Poster : GIJOE on 2008-04-29 05:25:45 (9387 reads)

in englishin japanese
どうしてもd3pipesで取得できないRSS/Atomがあった場合、まずはそのフィードをRSS Validatorにかけてみると良いでしょう。
例えばこんな感じ。
http://feedanalyzer.com/?url=http%3A%2F%2Fwww.ec-cube.net%2Fec-cube.php

基本的なXMLに違反したフィードは意外と多くあります。

問題は、RSS/Atomはあくまで、先方が出力しているので、こちらが文句を言っても修正される保証がない点です。

そういう時に便利なのがtidyです。HTML用に使うことが多いようですが、XMLもちゃんと修正してくれます。

というわけで、d3pipes 0.61では、XML修正用のtidyジョイントも追加しました。
パーサの前に、tidy4xml を挿入してください。

XMLパーサでエラーが出ていたEC-CubeのRSSも、tidyによってちゃんと修正され、d3pipesに取り込むことができるようになります。

0 comments

Poster : GIJOE on 2008-01-10 04:53:50 (16322 reads)

in englishin japanese
前回、resouce.db.php をフックできると操作性・開発性などで大きな改善が出来るよ、などと気を持たせておきながら、2ヶ月以上も放置してしまいました。

まず resource.db.php とは何か一応説明しておきます。これは、Smartyのリソースプラグインと呼ばれるものです。中身には「どこからテンプレートを持ってくるか」「更新状況をどうチェックするか」という処理が記述されています。
XOOPSの場合、特に指定しなければ、"db:"テンプレートが呼ばれるために、"db"リソースプラグインが重要なのです。

次に、標準のresource.db.phpによって実装されているDBテンプレートの問題点・要改善点を下に列挙してみます。

(1) テーマがdefaultだとDBテンプレートのリセット処理が入ってしまう
(2) テーマ下テンプレートによってコンパイルキャッシュが作成されるとテーマを切り替えてもそのまま残ってしまう
(3) テーマ下テンプレートのパス themes/(theme)/templates/(dirname)/(block/)? という階層構造は面倒なだけではないか? しかもDBテンプレートの実態を反映していないので余計な混乱を招く恐れがある
(4) テーマ下テンプレートの置き場所がバラバラ 本家だと themes/(theme)/modules/(dirname)/(block/)? だったりする
(5) テーマ下テンプレートが削除されても認識しない
(6) テーマ下テンプレートが追加されてもコンパイルキャッシュより古いと認識しない

このうち、(1)〜(4)について対応した resource.db.php を作ってみました(下リスト参照)。

もちろん、XoopsTplフックのおかげで、このresource.db.phpの置き場所は、XOOPS_TRUST_PATH/libs/smartyplugins/ で良く、Hackではなくなります。

残った(5)と(6)についても、なんとか対応したいと考えてます。


ホダ塾ディストリビューションでは、jidaikoboさんが、skel_flexテーマに対して積極的にテーマ下テンプレートを導入してくれていますが、このresource.db.phpによって、テーマとテンプレートがうまく連動することがお判りいただけるでしょう。(もちろん従来もテーマ下テンプレートは有効でしたが、連動はしなかった)

最新のNightlyアーカイブで試せるはずです。

Read more... | 2881 bytes more |9 comments

Poster : GIJOE on 2008-01-08 06:31:56 (20897 reads)

in englishin japanese
http://projecthoneypot.org/

ここの提供するhttp:BLは、対コメント/トラックバックSPAMに特化したブラックリストのようです。

もともとは、スパマーをひっかけるためのHoneypotのプロジェクトであり、XOOPSサイト内にもpotを設置しましょう、というのが本来の流れですが、とりあえずはProtectorでhttp:BLを利用出来るようにしてみたので、使い方だけ説明しておきます。

まずは、http:BLを利用するための「キー」を取得する必要があります。(ユーザごとにキーが必要)
http://www.projecthoneypot.org/create_account.php
からアカウントを作ってログインし、Services → HTTP Blacklist からアルファベット12文字からなるキーを取得できます。

http:BLの利用は、Protectorのfilter機能として実装してますので、
XOOPS_TRUST_PATH/modules/protector/filters_disabled/
の中にある
postcommon_post_deny_by_httpbl.php
を、
XOOPS_TRUST_PATH/modules/protector/filters_enabled/
にコピーします。

その上で、このファイルをエディタで開き、最上部のこの行に、12文字のキーを書き入れます。(もちろん....の部分は消す)


// get your 12-character access key from http://www.projecthoneypot.org/
define( 'PROTECTOR_HTTPBL_KEY' , '............' ) ;


spamhausなどと比べて精度や更新頻度がどうなのかはテストしていないので不明です。
ただ、Honeypotの性格から、HTTP経由のSPAMしか取得していないでしょうから、他のBLよりはノイズが低いことは期待できそうです。

なお、このサイトは、ゲストコメントやトラックバックをONにしていないのでテストが出来ません。だれかテストしたらその結果を教えてください

もし次があれば、今度は本来のHoneypot設置について書いてみたいと思います。


« 1 2 3 4 (5) 6 7 8 ... 37 »
Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!