第一个问题:如何调用方法?

关于模板中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' => '取消收藏',

关于多语言包如何使用,需要再研究。

discuz 模板中如何使用方法和语言标签?的更多相关文章

  1. ThinkPHP问题收集:模板中使用U方法时无法嵌套大括号,For标签,插入数据,新增的表字段缓存问题

    ThinkPHP模板中使用U方法时无法嵌套大括号需要在control里面用U方法赋值给变量传到模版如:{:U('/Blog/comment/',array('id'=>$id)}$comment ...

  2. discuz 模板中使用方法和语言标签

    一.如何调用方法? 关于模板中eval的使用{eval php 语句} 比如:<!--{eval echo "Hello World!"}--> 例如在discuz的手 ...

  3. thinkphp 5 count()方法在控制器,模板中的使用方法

    thinkphp中关于count()方法的使用: 控制器中:echo count($arr)模板中:{$arr | count}模板中if判断语句中 <if condition="co ...

  4. Django模板语言 标签整理

    Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...

  5. Ember模板中的操作指向

    模板中的链接操作指向有三个地方,该模板对应的控制器和路由以及视图,默认是先跳转到控制器,如果控制器里没有定义模板中动作的方法,就去该模板对应的路由里找,如果还没找到,就去父级路由找,直到顶级路由,如果 ...

  6. [.NET WebAPI系列03] WebAPI Controller 中标准CRUD方法

    [因] WebAPI的Controller中,一般都是下面四种方法: 对应于数据操作是我们通常所说的CRUD. C对应post,R对应Get,U对应Put,D对应Delete. 直接模仿VS 2012 ...

  7. ThinkPHP第五天(提交类型判定常量IS_POST等,错误页面种类,Model实例化方式,模板中使用函数,foreach循环,模板中.语法配置)

    1.IS_GET.IS_POST.IS_PUT.IS_DELETE.IS_AJAX常量,方便快捷实现各个判断. 在Action类中还可以使用$this->isPost()等进行判断. 2.错误页 ...

  8. thinkPHP 模板中的语法

    一.导入CSS和JS文件   1.css link       js  scr        <link rel='stylesheet' type='text/css' href='__PUB ...

  9. Flask08 包含(include)、继承(extends)、宏???、模板中变量的来源、利用bootstrap构建自己的网页结构

    1 包含 直接把另一个文件的内容,复制粘贴过来 {% include "模板路径" %} 注意:模板都是放在 templates 这个文件夹下面的,可以在里面新建文件夹来进行分离: ...

随机推荐

  1. 【Fiddler】Fiddler抓包

    简述 在调试H5页面.APP的网络请求时,常用Fiddler进行抓包,查看网络报文是否如我们设想.当然,Fiddler也可对我们电脑端发出HTTP请求进行抓包. Fiddler是以代理的形式运行的,即 ...

  2. FIDDLER的使用方法及技巧总结(连载三)FIDDLER使用技巧及方法

    (接上篇!~~~~) 三.FIDDLER使用技巧及方法 1.AutoResponder选项卡的使用 Fiddler的AutoResponder 选项卡允许你使用本地硬盘的文件来作为返回内容,而不是把请 ...

  3. 【机器学习】随机森林(Random Forest)

    随机森林是一个最近比较火的算法 它有很多的优点: 在数据集上表现良好 在当前的很多数据集上,相对其他算法有着很大的优势 它能够处理很高维度(feature很多)的数据,并且不用做特征选择 在训练完后, ...

  4. Python中斐波那契数列的四种写法

    在这些时候,我可以附和着笑,项目经理是决不责备的.而且项目经理见了孔乙己,也每每这样问他,引人发笑.孔乙己自己知道不能和他们谈天,便只好向新人说话.有一回对我说道,“你学过数据结构吗?”我略略点一点头 ...

  5. python read file(f,csv)

    import csv def readfile0(): print('test read file') in_file = open('C:\python\demo\LiaoXueFeng\data\ ...

  6. java基础篇---网络编程(UDP程序设计)

    UDP程序设计 在TCP的索引操作都必须建立可靠地连接,这样一来肯定会浪费大量的系统性能,为了减少这种开销,在网络中又提供了另外一种传输协议---UDP,不可靠的连接,这种协议在各个聊天工具中被广泛的 ...

  7. EF中的1:0或1:1关系以及1:n关系

    先给出1:0关系 User表包括用户名和密码 public class User { public int ID { get; set; } public string UserName { get; ...

  8. [转]Extjs中的迭代方法

    原文地址:http://www.veryhuo.com/a/view/36701.html EXTJS 有很多的迭代方法,例如,你也许已知道的Ext.each,但还有另外一些不为人知且很有用的方法.首 ...

  9. Java编程的逻辑 (47) - 堆和PriorityQueue的应用

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  10. vmware 8 完美支持UEFI+GPT模式虚拟机

    http://www.cn-dos.net/forum/viewthread.php?tid=54271提及新版vmware支持uefi启动,于是安装了最新版vmware 8.0.2,发现vmware ...