Discuz插件开发中的困惑】的更多相关文章

1.关于缓存 这几天一直纠结于Discuz的缓存问题,今天终于有点小发现:首先Discuz的缓存可以通过数据库.文件等方式进行!在Discuz的配置文件config_global.php中有一个配置项,  $_config['cache']['type'] = 'sql';就我目前的理解,type为sql时是缓存在数据库中的表名称为common_syscache的表中.以二进制的方式存储的!当type类型为file的时候,Discuz的缓存会存放在Discuz的data/cache目录下.当然D…
首先请修改global里的配载文件$_config['plugindeveloper'] = 2; 然后应用中心,点击设计插件 模块选择管理中心即可在应用里面显示链接 开发资料参考:http://faq.comsenz.com/library/plug/construct/construct_template.htm Discuz插件开发首先要明白一个嵌入点机制其实就是Hook, 页面嵌入脚本格式 //全局嵌入点类(必须存在) class plugin_identifier { function…
XSS攻击在最近很是流行,往往在某段代码里一不小心就会被人放上XSS攻击的代码,看到国外有人写上了函数,咱也偷偷懒,悄悄的贴上来... 原文如下: The goal of this function is to be a generic function that can be used to parse almost any input and render it XSS safe. For more information on actual XSS attacks, check out h…
目的:Eclipse插件开发中,经常要引用第三方包或者是引用其他插件中的类,由于插件开发环境引用类路径的设置和运行平台引用类路径的设置不同,经常导致开发过程OK,一旦运行则出现NoClassDefFoundError的问题.本文的目的是全面分析各种情况下类路径的设置,以避免这个问题的出现.   说明:Jar包和类路径实际上是一个概念,比如类com.bbebfe.Test.class打包为test.jar包,添加类引用就直接添加test.jar包.而如果是添加类文件路径,则添加包目录的上级目录,比…
Eclipse插件开发中的选择监听机制(Selection Provider-Listener) 监听机制是eclipse插件开发或rcp应用开发中经常使用的技术,比方点击TableViewer或TreeViewer中的某个元素,须要针对当前selection做出某些处理. 实现方式一般有两种情况.即selection provider 和listener在一个视图中.或在不同的视图中: 1.selection provider自己添加监听进行处理 前者直接让selection provider…
在VS2010中进行ArcMap Add-in插件开发(ArcEngine10.1,ArcGIS10.1),运行时为.NET4.0,在程序中设置了断点进行调试,但是运行后程序并不会在断点处停止,且原来深褐色的断点圆圈标记变成了白色,还有个警告的符号,提示:当前不会命中断点,还没有为该文档加载任何符号. 网上搜索这句警告提示的解决办法发现这个问题很常见,解决办法也有好多.我按照网上的办法一一试了一遍结果都不能解决我的问题.又临近崩溃的边缘,差点想重装VS了. 由于运行程序时会自动启动ArcMap,…
作为一个新手,目前也是刚刚玩转discuz的插件功能,好东西不敢独享,就拿出来大家一起分享入门的过程.现在网上很多关于discuz的插件教程都是很简单的教程,原因可能是这个东西是商业化的东西,本着分享的精神,今天我就自己做了一个教程,discuz新手入门的教程.很详细的介绍我是怎样入门的.问题1.discuz后台没有设计新插件!解决方案:在config\config_global.php 最下面添加 $_config['plugindeveloper'] = 2; 刷新后台应用即可问题2.怎么知…
在之前的Discuz!NT缓存的架构方案中,曾说过Discuz!NT采用了两级缓存方式,即本地缓存+memcached方式.在近半年多的实际运行环境下,该方案经受住了检验.现在为了提供多样式的解决方案,我在企业版里引入了Redis这个目前炙手可热的缓存架构产品,即将memcached与Redis作为可选插件方式来提供了最终用户,尽管目前测试的结果两者的差异不是很大(毫秒级),但我想多一种选择对用户来说也是好的. 闲话不多说了,开始今天的正文吧.         熟悉我们产品的开发者都知道,我们的…
大约在两年前我写过一篇关于Discuz!NT缓存架构的文章,在那篇文章的结尾介绍了在IIS中如果开启多个应用程序池会造成多个缓存实例之间数据同步的问题.虽然给出了一个解决方案,但无形中却把压力转移到了磁盘I/O上(多个进程并发访问cache.config文件).其实从那时起我就开始关注有什么更好的方案,当然今天本文中所说的Memcached,以及Velocity等这类的分布式缓存方案之前都考虑过,但一直未能决定该使用那个.起码Velocity要在.net 4.0之后才会提供,虽然是原生态,但有些…
作为一个新手,目前也是刚刚玩转discuz的插件功能,好东西不敢独享,就拿出来大家一起分享入门的过程.现在网上很多关于discuz的插件教程都是很简单的教程,原因可能是这个东西是商业化的东西,本着分享的精神,今天我就自己做了一个教程,discuz新手入门的教程.很详细的介绍我是怎样入门的.问题1.discuz后台没有设计新插件!解决方案:在config\config_global.php 最下面添加 $_config['plugindeveloper'] = 2; 刷新后台应用即可问题2.怎么知…
一.如何调用方法? 关于模板中eval的使用{eval php 语句} 比如:<!--{eval echo "Hello World!"}--> 例如在discuz的手机模板中,需要切换收藏和取消收藏. 取消收藏,需要找到forum/viewthread.htm .forum/viewthread_node.htm 模板,在viewthread_node模板中修改: 取消收藏的 最低层代码 /source/include/spacecp/spacecp_favorite.p…
第一个问题:如何调用方法? 关于模板中eval的使用{eval php 语句}比如:<!--{eval echo "Hello World!"}--> 工作中遇到一个小问题,discuz的手机模板中,需要切换收藏和取消收藏. 取消收藏,需要找到forum/viewthread.htm .forum/viewthread_node.htm 模板,在viewthread_node模板中修改取消收藏的 最低层代码 /source/include/spacecp/spacecp_f…
jQuery插件开发分为两种:   1 类级别 类级别你可以理解为拓展jquery类,最明显的例子是$.ajax(...),相当于静态方法. 开发扩展其方法时使用$.extend方法,即jQuery.extend(object);  $.extend({ add:function(a,b){return a+b;} , minus:function(a,b){return a-b;} }); 页面中调用: var i = $.add(3,2); var j = $.minus(3,2); 2 对…
如果在DZ中增加一个新的页面,并且取得DZ中相关的用户等乱七八糟的属性,在旧的版本中只要引用一个 -. comm.php 文件就可以,但是在 X 版本以后好像就没.还好,X版本中还是有办法解决的,使用如下代码.     require_once './source/class/class_core.php';   $discuz = & discuz_core::instance (); // 以下代码为创建及初始化对象 $discuz->init ();   //下面是你要增加任何业务代码…
今天修改discuz代码遇到一个问题,就是标题栏中的Powered by Discuz!,很不美观.查资料后得到了解决方法!介绍给大家. 那么如何去掉标题里面的Powered by Discuz!呢? 打开目录templatedefaultcommon下的header_common.htm文件, 找到下面的代码 <title><!--{if !empty($navtitle)}-->$navtitle - <!--{/if}--><!--{if empty($no…
需要对wps写一个小的插件,也就是几行代码的事情,但却碰到了一个坑 wps中的com组件的调用和MSoffice非常的相似,几乎只需要把包的头修改一下就可以用了. 比如开发wps文档的插件,需要引用 Kingsoft Add-In Designer Kingsoft Wps 2.0 Object Library kingsoft Office 2.0(1.0) Object Library (选2.0的的时候会勾选1.0) 然后继承一个IDTExtensibility2接口并设置一个[ComVi…
1.request.getContextPath()详解 <%=request.getContextPath()%>是为了解决相对路径的问题,可返回站点的根路径. 但不用也可以,比如<a href="<%=request.getContextPath()%>/catalog.jsp">,可以直接用<a href="catalog.jsp"> 2.<meta http-equiv="refresh&quo…
在 @vue/cli-plugin-babel/index.js 中: api.genCacheConfig('babel-loader', {}, []) 我们看一下 api.genCacheConfig 在文件:@vue/cli-service/lib/PluginAPI.js 中被定义: Generate a cache identifier from a number of variables 在函数一开始接受 3 个参数: id partialIdentifier configFile…
将很久之前的论坛重新放在网络上,发现首页打开非常慢,用 Web Inspector 检查,发现 insenz.com 已失效导致. 解决办法: 1.进入数据库:执行 SELECT * FROM cdb_settings WHERE variable='insenz' 2.将 setting 的 key 修改,改 insenz 为 kill-insenz,保存退出,首页将不再调用    …
转自:http://blog.csdn.net/liaomin416100569/article/details/7165425 1.获取系统默认的ShellShell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();2.获取其他的插件Activetor对象Plugin p=Platform.getPlugin("org.liaomin.huqun.ftptool");3.获取某个插件的首选…
基本上新版本的discuzX系列目录结构都差不多,刚好大神整理出来了,就拿来看吧. |-- /api        uc.php   UCenter通信文件        |-- /api/addons  应用中心        |-- /api/connect  腾讯互联        |-- /api/google  Google引擎接口处理        |-- /api/javascript  数据和广告的 JS调用        |-- /api/manyou  manyou应用及搜索…
(1) File转IFile 第一种方法: IFile[] ifile = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocationURI(file.toURI()); 第二种方法: String filepath =file.getPath(); IProject proj =ResourcesPlugin.getWorkspace().getRoot().getProject(projName); String path =f…
discuz作为国内流行的论坛系统,可谓造福了不少趣味相投的网友们.它让天南地北.国内外有着共同兴趣爱好的人们聚集在一起,分享彼此的喜怒哀乐.心得体会.然而作为discuz的使用者之一,还是个码农,然而对discuz的系统架构和二次开发了解得并不多.前段时间有个朋友找到我说能不能帮忙开发一个特殊主题插件,虽然自己没开发过discuz的插件,但就discuz的流行程度而言,相信开发资料和开发群体应该不少,于是就答应了. 开发之前网上搜索了一通资料,找到discuz官方二次开发文档看了看,然后又找来…
  文件命名规范 Discuz! 按照如下的规范对程序和模板进行命名,请在设计插件时尽量遵循此命名规范: 可以直接通过浏览器访问的普通程序文件,以 .php 后缀命名. 被普通程序文件引用的程序文件,以 .inc.php 后缀命名. 被普通程序文件,或引用程序文件引用的函数库或类库,以 .func.php(函数库) 或 .class.php(类库) 后缀命名. 模板文件,以 .htm 后缀命名,插件模板文件存在于 source/plugin/identifier/template/ 目录中. 模…
discuz目录结构 api 外部接口功能实现 archiver 静态文档,静态化所用 config 配置 data 生成的数据 install 安装目录 source 源代码核心目录 |--module 功能模块 static 静态资源 template 页面模板 uc_client ucenter客户端代码 uc_server ucenter server目录 admin.php 后台入口文件 api.php 接口 forum.php 论坛 group.php 组 home.php 家园 m…
接触了Discuz NT! 一段时间了,是时候做个总结了,标题好霸气,有木有? 都是托园子里的大牛代振军的福啊,哈哈哈哈. 首先论坛的信息不是完全存储在数据库里面的,一部分信息存储在config文件里面,一部分信息存储在数据库里面. 这些信息都是在后台进行配置的信息,比如论坛的基础信息,不同的CONFIG文件,有不同的组合方式.那么你可能会问,这些CONFIG文件是怎么被取到的呢? 在Discuz.Config里面有相应的介绍,我们打开一个名为APIConfig的类 public class A…
通过使用该源码,开发者可以迅速地将Discuz论坛迁移到Android客户端中.不需要任何的开发工作即可拥有属于自己论坛的Android客户端 源码下载:http://code.662p.com/view/13266.html 准备工作 在使用源码之前必须先在Discuz论坛中安装BigApp插件. 一.插件安装 应用中心 -> 插件 -> 搜索bigapp -> 点击BigApp手机客户端 -> 安装应用即可 安装步骤参考 Bigapp安装方法 二.配置插件 1.登录注册模式(原…
一:导言 有些WEB开发者,会引用一个JQuery类库,然后在网页上写一写$("#"),$("."),写了几年就对别人说非常熟悉JQuery.我曾经也是这样的人,直到有一次公司里的技术交流,我才改变了自己对自己的看法. 二:普及JQuery知识 知识1:用JQuery写插件时,最核心的方法有如下两个: $.extend(object) 可以理解为JQuery 添加一个静态方法. $.fn.extend(object) 可以理解为JQuery实例添加一个方法. 基本的…
采用VSTO或者Shared Add-in等技术开发Excel插件,其实是在与Excel提供的API在打交道,Excel本身的组件大多数都是COM组件,也就是说通过Excel PIA来与COM进行交互.这其中会存在一些问题,这些问题如果处理不好,通常会导致在运行的时候会抛出难以调试的COM异常,从而导致我们开发出的Excel插件的不稳定. 和普通的WinForm程序一样,Excel也是一种STA(Single Thread Apartment)线程的应用程序,Excel插件是寄宿在Excel中运…
这篇文章主要介绍了jQuery插件开发的五种形态小结,具体的内容就是解决javascript插件的8种特征,非常的详细. 关于jQuery插件的开发自己也做了少许研究,自己也写过多个插件,在自己的团队了也分享过一次关于插件的课.开始的时候整觉的很复杂的代码,现在再次看的时候就清晰了许多.这里我把我自己总结出来的东西分享出来,帮助那些和我一样曾经遇到过同样问题的人. 我要做什么 我想要得到的javascript 插件应该会有以下几个特征: [ ] 代码相对独立 [ ] 链式操作 [ ] 插件可配置…