ブロックのテンプレートで閲覧者の$uidの取得、XOOPS2.0系で取得できたのにXOOPS Cube Legacyではできないので、困ることがあります。
今回、ランニングのポータルサイトを作っていて、全てのブロックの制御を変更する必要があたので、プリロードで簡単にやってみました。
こうしておけば、各ブロックテンプレートでも<{$uid}>で使えます。
AssignUid.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <?php
class AssignUid extends XCube_ActionFilter
{
function preBlockFilter()
{
$this->mRoot->mDelegateManager->add('XoopsTpl.New', array(&$this, 'assign'));
}
function assign(&$xoopsTpl)
{
$root =& XCube_Root::getSingleton();
if ($root->mContext->mUser->mIdentity->isAuthenticated()) {
$uid = $root->mContext->mXoopsUser->get('uid');
$xoopsTpl->assign('uid',$uid);
}
}
}
?>
|