【提案】Dittoのextender機能について  【解決済み】

質問全般・改善要望
返信する
Ralph
メンバー
メンバー
記事: 24
登録日時: 2012年8月09日(木) 11:42

【提案】Dittoのextender機能について  【解決済み】

投稿記事 by Ralph »

お世話になっております。

最近、Dittoのextender機能を利用して、カスタムプレースホルダを作成しました。
現在、本機能を利用する場合、「XXXX.extender.inc.php」ファイルを作成して、
Dittoスニペット内でインクルードする形をとっていますが、「@FILE:」で任意ファイルのパスを指定できるようにも見受けられます。

そこで、さらに「@CHUNK:」機能を追加してチャンクでextender機能を追加できる様にするのはいかがでしょうか?
簡単ではありますが、Dittoスニペットを改造してみました。
【Dittoスニペット 229行目より】

コード: 全て選択

//---Initiate Extenders---------------------------------------------- //
if (isset($tagData)) {
    $extenders[] = "tagging";
}
if(count($extenders) > 0) {
    $extenders = array_unique($extenders);
    foreach ($extenders as $extender) {
        if( substr($extender, 0, 7) != "@CHUNK:" ) {
            if(substr($extender, 0, 6) != "@FILE:") {
                $extender_path = $ditto_base."extenders/".$extender.".extender.inc.php";
            } else {
                $extender_path = $modx->config['base_path'].trim(substr($extender, 6));
            }
            
            if (file_exists($extender_path)){
                include($extender_path);
            } else {
                $modx->logEvent(1, 3, $extender . " " . $_lang['extender_does_not_exist'], "Ditto ".$ditto_version);
                return $extender . " " . $_lang['extender_does_not_exist'];
            }
        } else {
            $extender_chunk = $modx->getChunk( trim(substr($extender, 7) ) );
            eval( $extender_chunk );
        }
    }
}
稚拙なコードで申し訳ありません。
上記コードでチャンクでextender用プログラムを作成し利用することが可能になりました。

よろしくお願いいたします。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 【提案】Dittoのextender機能について

投稿記事 by yama »

提案ありがとうございます。

http://forum.modx.jp/viewtopic.php?p=5829#p5829
もしかしたら上記のベータ版で対応してるかも?
返信する