请选择 进入手机版 | 继续访问电脑版
提问

#楼主# 2020-3-29

跳转到指定楼层
DZ默认插件是不支持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

代码:

<!--{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'])}-->
<a id="diy-tg" href="javascript:openDiy();" title="{lang open_diy}" class="xi1 xw1">DIY</a>
<!--{/if}-->

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

CURMODULE: 是当前插件的名称

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

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

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

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

loadcache('diytemplatename');
$_G['style']['tplfile'] = "/../../source/plugin/fenggeba_page/template/main";
include template('fenggeba_page:main');

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

成为第一个回答人

B Color Link Quote Code Smilies

关于作者

大掌柜

管理员

  • 主题

    43

  • 帖子

    67

  • 关注者

    0

Powered by Discuz! X3.4  © 2001-2017 Comsenz Inc.