Re: picalについて

投稿ツリー


このトピックの投稿一覧へ

なーお

なし Re: picalについて

msg# 1.2
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013/1/19 10:26 | 最終変更
なーお  長老   投稿数: 1744

katsumiさん、こんにちは。

遅くなりましたが、簡単なsmartyプラグインを書いてみました。

XCL限定です:-P

テンプレートから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」テンプレートに

Everything is expanded.Everything is shortened.
 
 
<{pical_eventuser var=uid event_id=$com_itemid}>
<{$uid}>

と記載してみてください。 uidの数値が取れると思います。

var=uid の部分は、アサインする変数名ですので、もし$uidという変数が使われているような場面では、これを他の変数に変更、例えばvar=event_uid と換えることで、<{$event_uid}> で引けます。

このあとは、他のプラグインにパイプで渡すなり、ご自由にどうぞ。 ;-)

(追伸)
ハックをお勧めしないのは、X-updateで上書きされるため管理が煩雑になることと、piCalがあまりに古いモジュールで、ハックすることで潜在的な不都合が表面化する可能性が少しあるかな、というのが理由です。 私自身、コメント統合ハックはしましたが、他はあまり手を入れたくないと思っています。

投票数:0 平均点:0.00
返信する

この投稿に返信する

題名
ゲスト名
投稿本文

  条件検索へ