ブロックのテンプレートで閲覧者の$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
| <?phpclass 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); } }}?>
|