返信する: その他の趣味etc
- Re: picalについて
- 投稿者: なーお 投稿日時: 2013/1/19 10:26
katsumiさん、こんにちは。
遅くなりましたが、簡単なsmartyプラグインを書いてみました。
XCL限定です。
テンプレートからsmartyのfunctionプラグインを呼ぶことでuidの変数にアサインし、同じテンプレート上でその変数を使う、という流れです。
function.pical_eventuser.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
<?php /* * function.pical_eventuser.php 2013-01-19 by naao * Smarty plugin * ------------------------------------------------------------- * Type: function * Name: pical_eventuser * Purpose: assign uid of specified event_id on pical_event * ------------------------------------------------------------- */ function smarty_function_pical_eventuser( $params, $smarty ) { $root = XCube_Root::getSingleton(); $db = $root->mController->getDB(); $sql = "SELECT uid FROM ".$db->prefix('pical_event'). " WHERE id=".(int)$params['event_id']; $result = $db->query($sql); list($uid) = $db->fetchRow($result); $smarty->assign( $params['var'] , (int)$uid ) ; } ?>
これを、(html側でもtrust側でもどちらかの)smartyフォルダに放り込んでおき、「pical_event_detail.html」テンプレートに
<{pical_eventuser var=uid event_id=$com_itemid}> <{$uid}>
と記載してみてください。 uidの数値が取れると思います。
var=uid の部分は、アサインする変数名ですので、もし$uidという変数が使われているような場面では、これを他の変数に変更、例えばvar=event_uid と換えることで、<{$event_uid}> で引けます。
このあとは、他のプラグインにパイプで渡すなり、ご自由にどうぞ。
(追伸)
ハックをお勧めしないのは、X-updateで上書きされるため管理が煩雑になることと、piCalがあまりに古いモジュールで、ハックすることで潜在的な不都合が表面化する可能性が少しあるかな、というのが理由です。 私自身、コメント統合ハックはしましたが、他はあまり手を入れたくないと思っています。