Discuz开发 Discuz插件页面支持DIY调用的方法

[复制链接]
ARCHY明星会员实名认证 发表于 2014-7-21 10:26:18 [Discuz开发] 显示全部楼层 |阅读模式 上一主题 下一主题

马上注册,一起探讨正确快速的建站方法

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
默认插件是不支持DIY的,也尝试了很多方法都无法实现,今天在一个博客看到有人写一篇相关的博客,看上去和单页里面实现DIY的方法非常接近,下面我就来搬过来分享下,以后有机会再进行验证。

discuz x系列插件添加一个DIY的功能,看上去应该蛮简单,但是很少有插件支持DIY的功能。默认模板的diy的代码:
<!--[diy=diy1]--><div id="diy1" class="area"></div><!--[/diy]-->
如果要在该页面其它地方添加其它的DIY功能可以如下处理:
<!--[diy=diy2]--><div id="diy2" class="area"></div><!--[/diy]-->
但是把该代码copy到插件模板文件中,一打开插件页面,发现DIY功能没有显示。难道又缺少啥代码,当时想到的是diy功能的按钮,于是找到该位置的代码:
template/default/common/header.htm
代码:
  1. <!--{if CURMODULE != 'topic' && $_G['group']['allowdiy'] && !empty($_G['style']['tplfile']) || CURMODULE == 'topic' && !empty($_G['style']['tplfile']) && ($_G['group']['allowaddtopic'] && $topic['uid'] == $_G['uid'] || $_G['group']['allowmanagetopic'])}-->
  2. <a id="diy-tg" href="javascript:openDiy();" title="{lang open_diy}" class="xi1 xw1">DIY</a>
  3. <!--{/if}-->
复制代码

于是就找CURMODULE以及 $_G['style']['tplfile']对应的值是否通过?

CURMODULE: 是当前插件的名称

$_G['style']['tplfile']: 对应页面的路径

假如是门户首页该值显示为portal/index

现在的问题就是$_G['style']['tplfile']没有初始化,所以diy功能不能通过。

于是给$_G['style']['tplfile']赋值:

  1. loadcache('diytemplatename');
  2. $_G['style']['tplfile'] = "/../../source/plugin/zb7com_page/template/main";
  3. include template('zb7com_page:main');
复制代码


一测试,确实DIY按钮显示出来,然后再对应的地方添加DIY模块,然后保存,OK。通过了!




上一篇:IE下Adobe Flash 14不显示上传按钮的Bug解决方法
下一篇:Discuz模板中使用cutstr来截取字符串的方法和原理

大神点评4

远走高飞 发表于 2014-7-21 13:55:38 [Discuz开发] 显示全部楼层
支持一下
飘雪2014 发表于 2014-8-2 07:49:34 [Discuz开发] 显示全部楼层
可以告诉我赋值是个什么操作么?怎么操作 啊?添加在$_G['style']['tplfile']后面么?求速度回答下
精英策略 发表于 2014-8-5 14:57:19 [Discuz开发] 显示全部楼层
调用这个还是不行啊。
菠菜公社,10万球迷互动社区:www.1958a.com
HiSEN 发表于 2014-9-13 01:34:41 [Discuz开发] 显示全部楼层
是这样的,我用了广告如意投
它可以扩展一些广告位
但是我想在某个广告位那放一个可以diy的,因为我想放竞价排行
按这个办法,吧<!--[diy=diy1]--><div id="diy1" class="area"></div><!--[/diy]-->
这个当广告代码放进去,更新,是可以在那位置diy
但是diy之后保存就不见了,很奇怪

是不是这个代码位置存不住之后的数据,而是由插件控制内容
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

快速回复 返回顶部 返回列表