第一個問題:如何調用方法?
關於模板中eval的使用{eval php 語句}
比如:<!--{eval echo "Hello World!"}-->
工作中遇到一個小問題,discuz的手機模板中,需要切換收藏和取消收藏。
取消收藏,需要找到forum/viewthread.htm 、forum/viewthread_node.htm 模板,在viewthread_node模板中修改
取消收藏的 最低層代碼 /source/include/spacecp/spacecp_favorite.php
方法是 $fav = C::t('home_favorite')->fetch_by_id_idtype($id, $idtype, $_G['uid']);
要想在模板頁面中應用的話,就需要通過eval來引用
<!--{eval $fav = C::t('home_favorite')->fetch_by_id_idtype($_G[tid], 'tid', $_G['uid']);}--> 其中tid是帖子,如果是版塊需要改成fid
模板viewthread_node需要替換的代碼:
<!--{if !$_G[setting][mobile][mobilesimpletype] && $post['first']}-->
<a href="home.php?mod=spacecp&ac=favorite&type=thread&id={$_G[tid]}" class="fav">{lang favorite}</a>
<!--{/if}-->
替換后的代碼如下:
<!--{eval $fav = C::t('home_favorite')->fetch_by_id_idtype($_G[tid], 'tid', $_G['uid']);}-->
<!--{if $fav['favid']}-->
<a href="home.php?mod=spacecp&ac=favorite&op=delete&favid={eval echo $fav['favid']}" class="fav">{echo m_lang(delete_favorite)}</a>
<!--{else}-->
<a href="home.php?mod=spacecp&ac=favorite&type=thread&id={$_G[tid]}" class="fav">{lang favorite}</a>
<!--{/if}-->
第二個問題:discuz語言標簽怎么使用和調取?
要是引用手機標簽,需要到mobile目錄下找對應的語言標簽
論壇對應的是: source\language\forum\lang_template.php
'thread_favorite' => '收藏',
家園對應的是:source/language/home/lang_template.php
'favorite' => '收藏',
手機對應的是:source/language/mobile/lang_template.php
'favorite' => '收藏',
'favorite_delete' => '取消收藏',
關於多語言包如何使用,需要再研究。
