二次开发

二次开发

之前在官方群里说的一个设想实现了。

WeCenter 程序三叔 发表了文章 • 1 个评论 • 102 次浏览 • 1 天前 • 来自相关话题

之前在官方群里吹牛逼: 我最近在写桌面工具,我要让我的用户关注我公众号的可以用我的软件,凡是取消关注的都不可以再用! ...查看全部

之前在官方群里吹牛逼:



我最近在写桌面工具,我要让我的用户关注我公众号的可以用我的软件,凡是取消关注的都不可以再用!



好了,牛逼实现啦!!!



我来说说我的实现思路:



第一步:



我在数据库创建了一个表: aws_tool_weixin



里面有三个主要字段: mac, openid,subscribe  以及日期等辅助字段。



 



第二步:



我在我的winform程序里写了一个带参数的微信关注二维码生成.参数里是用的当前主机的mac地址。





第三步:



我修改了wecenter里和微信交互的那块。在event为 subscribe(是否关注)里增加获取第二步二维码自定义参数值的获取,也就是mac地址



并且判断openid是否存在,如果不存在,则插入一条 mac和openid以及 subscribe=1(1为关注,0为取消关注)



并且新增了 unsubscribe的event判断,这个判断是取消关注的通知。 微信会给我们两个参数: openid  unscribe。



我会根据openid查询是否有记录,有记录则把subscribe字段改为0





第四步:



用户在我的桌面程序里,关注完公众号开始操作。第一次操作的时候,会去查询我的接口,传入mac地址。 因为关注二维码我是不知道当前用户的openid的,但是第二步里我将mac地址和openid绑在一起了。 所以此时传入mac地址的时候,会从接口里读出对应的数据库了的openid。并且将openid保存到本地。下次查询就带着openid去查询了。



如果查询到的subscribe



如果是1 那就是已关注我的公众号且未取消



如果是0 那就是已经取消关注,那就直接弹出对话框:“因为你取消了关注,你已经不可以再使用本软件”



如果后端传来的是没有数据。那就弹出第二步的窗口 让用户关注。



 



最后



自此我的思路就好了。虽然如此 但是还是会有十分之一的人会取消关注。那就不好意思了。昨天还有人发语音问我:为什么我关注了,却用不了你们的软件。 我直接告诉他几点关注的 几点取消关注的。





 



目前我的公众号人数暴涨。




wecenter二开之微信ticket和access_token的获取

WeCenter 程序三叔 发表了文章 • 1 个评论 • 82 次浏览 • 4 天前 • 来自相关话题

//获取token $access_token = $this->model('openid_weixin_weixin')->get_access_token(get_setting( ...查看全部

//获取token



$access_token = $this->model('openid_weixin_weixin')->get_access_token(get_setting('weixin_app_id'), get_setting('weixin_app_secret'));



 



//获取ticket



$jsapi_ticket = $this->model('openid_weixin_weixin')->get_jsapi_ticket($access_token);


Wecenter插件系统开发规范

插件fanta 发表了文章 • 0 个评论 • 245 次浏览 • 2019-06-14 13:31 • 来自相关话题

1.命名规范



插件命名以wc_作为前缀+插件名,如插件test,即wc_test



2.目录新建



目录新建在根目录下plugin文件夹下,如插件名test,目录结构就是/plugins/wc_test/



3.目录结构



目录包含内容必须要有配置文件、核心类,非必要的有模型类、静态资源、第三方类、页面模板等,如test,则玩着目录如下



wc_test



|-config.php  配置文件



|-test.php   核心类



|-test_model  模型类



|-view     视图模板目录



|-static    静态资源目录



|-install.sql   安装sql



|-uninstall.sql  卸载sql



|-upgrade.sql  升级sql



4.配置文件



Config.php配置文件 返回一个多维数组,包含有:



name: 插件标识



title 插件标题名称



intro 插件介绍



author : 插件作者



version 插件版本



state  插件状态



config: 也是一个数组,包含所需的配置项,如:



  'config'=>[



  'ad_plugin_enable' =>



  array (



    'title' => '广告开启',



    'type' => 'radio',



    'value' => 'Y',



    'options' =>



    array (



      'Y' => '开启',



      'N' => '关闭',



    ),



  )



],



以上的配置config就是后台广告插件的配置显示效果,



'options' 对应的是配置项的值,



'value' 是默认值,



'type' 是配置类型,



'title' 是配置名称



常用的有textselectradioCheckBox



ad_plugin_enable是开发者自己定义,调用的时候调用此键名即可



5.核心类



核心类同样继承自AWS_CONTROLLER,包含5个固定方法,即构造方法 install安装,uninstall卸载,enable启用,disable禁用,构造方法获取插件的配置和插件相关信息,安装、卸载、启用、禁用四个方法默认是调用系统的方法,也可以自定义,在方法里自行处理相关逻辑。



除了这5个方法之外,开发者可以自定义其他的方法进行调用。



6.模型类



模型类的定义名称需后接_model方可,如test_model,内部的定义与使用与model目录下的模型相同,



另注意一点,此处的模型名不可与model目录下的模型重名,如果重名,会去调用model目录下的模型,从而会导致找不到相关的方法一类的错误。



调用方法还是$this->model()进行调用。



6.staticview静态资源、视图目录



Staic目录存放css\js等静态资源



View 视图目可存放后台以及前台的视图模板



后台视图的要在目录下新建子目录admin,前台的模板直接放在view下即可,在核心类中,通过 PLUTPL::output('ad/banner');渲染页面,其中ad是插件名或者标识,banner是页面名称



后台的只需加上admin即可,如PLUTPL::output('ad/admin/edit');



7.安装、卸载、升级



安装、卸载、升级在后台都有相对应的操作,对应相应的sql执行即可。



8.插件调用



正常的调用只需用公共方法hook()方法调用即可,在后台或者其他的页面需要调用插件方法进行页面调用或方法的时候,可以通过doact方法,前台explore/doact  后台admin/plugin/doact  ,



添加广告按钮需要调用插件添加广告的方法,此处是超链接,可以通过admin/plugin/doact/?p=ad&a=edit进行传参调用,其中pa是必传的,p是插件名,a是方法名。


在文章底部增加第三方社交分享功能

建站运营三叔 发表了文章 • 5 个评论 • 277 次浏览 • 2019-05-29 12:25 • 来自相关话题

第一步: 在 /views/default/global/下创建文件 socialshare.tpl.htm 写入代码: ...查看全部

第一步:



在 /views/default/global/下创建文件 socialshare.tpl.htm



写入代码:



<div class="social-share" data-mobile-sites="weibo,qq,qzone,tencent,wechat"></div>

<link href="//cdnjs.cloudflare.com/ajax/libs/social-share.js/1.0.16/css/share.min.css" rel="stylesheet">

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/social-share.js/1.0.16/js/jquery.share.min.js"></script>



 



第二步:



/views/模板/article/index.tpl.htm 你要放社交按钮的地方增加代码:



<?php TPL::output('global/socialshare.tpl.htm'); ?>



 



收功!



效果如:





 



参考网页:



http://www.bejson.com/a/12.html



 


发现wecenter后端有个很奇怪的问题,懂技术的都来看看。。。。。

回复

WeCenter 程序bennyyao 发起了问题 • 1 人关注 • 0 个回复 • 305 次浏览 • 2019-04-18 12:49 • 来自相关话题

瀑布流卡片风格,接受预定!先看图吧,这个是浏览器里随手搭的大概样子,实际会更精致

创意与设计bennyyao 发表了文章 • 5 个评论 • 456 次浏览 • 2019-04-18 09:53 • 来自相关话题

  ...查看全部


 


 


除了feed改为瀑布流卡片风格外,其他页面布局应该还会是原版布局。


另外,sidebar搬到左侧,也会有白色底,或透明底都可。


 


接受预定。如果有10人有意向买,我就开做。


 


你们还可以留言给出你的具体需求建议,我综合考虑。

做了个主题,已经初步完成,正在申请应用上架。如果您现在就想买,也可以私信我。

创意与设计bennyyao 发表了文章 • 8 个评论 • 527 次浏览 • 2019-04-10 22:50 • 来自相关话题

DEMO地址:https://unikpage.com ...查看全部


 


 


 


 




 



本模板特点:

1,提供三种主色调选择:淡紫,绿,橙。和原版一样,可以在用户菜单切换。每种色调都经过精心调制。

2,采用了波纹按钮效果,按钮点击时会有波纹特效。

3,采用了淡入淡出的浮动菜单效果。

4,整站尽可能都做了定制。但是有几个地方还没做,或者可能做得不够好:



——1)专栏部分,效果不是最满意。因为wecenter原版的专栏模块的代码相对独立,对第三方定制的支持度不高,模板定制难度较高。但是这部分,以后我们会继续完善。

——2)个人设置,其中手机修改部分,也定制得不够好。原因同上。

——3)手机版也做了定制,但是,手机版模板,不支持切换,一旦你覆盖了原版,手机版就无法再换回原版!切记!!!而且手机版没有三种颜色切换。



——4)活动、工单这俩模块,基本上没改。我们认为几乎没有人用这俩模块的,所以就不定制了。如果需要定制的,请联系我们,为您单独定制(收费)。

——5)对个别的system后端逻辑做了修改,主要是模板引入机制。原因是,wecenter目前的模板引入机制,更适合小修小改,新增样式,而对于大覆盖面、大范围的模板全面定制,支持度不够灵活,因此我们做了适当修改。但是请放心,使用我们修改后的文件,即使你再次切回原版风格,正常情况下,也不会受影响。



*** 对上述内容还不确定的,请去DEMO站  https://unikpage.com  使用体验 ***

*** 如果您对上述内容不满意,请勿购买! ***



使用条件



必须满足下列条件才可使用本模板。如果您不满足下列条件,请谨慎购买!或后果自负。



1,必须已经成功安装wecenter3.3.1及以上版本。网站可正常使用。



2,没有安装过其他模板,或您确认其他模板不会产生兼容性问题,或您确认可以自行解决任何模板兼容性问题。本模板不承诺对任何其他模板100%兼容不冲突。(当然,没有什么问题是不可以通过备份恢复来解决的!)



3,没有安装过其他任何可能对模板主题产生修改、影响的插件(或二次开发)。



4,您不是wecenter的新手小白用户。本团队不承诺提供wecenter本身的任何技术和使用咨询服务。



如何使用?



1,先备份好你的网站的三个部分:static,system,views做好备份!!!!务必!!

2,下载,解压,上传到你的网站根目录下。覆盖。

3,进入后台管理面板,在【全局设置】——【界面设置】——【用户界面风格】下拉选择 【kuaiban】,确定。

4,前端用户菜单里,可以随意切换 蓝紫、绿色、橙色三种风格。每种风格都经过我们重新设计定制,请尽情使用。

5,主题中一些地方使用了背景图片,这些图片是可以替换的。你购买之后,我会告诉你如何替换更适合你的背景,而且是同样颜色和风格的。







售后服务



1,请加入我们的版友QQ群:974189836 ,群内可提供本模板的使用咨询、技术咨询。仅限购买用户入群。

2,凡购买模板的朋友,享受半年内的升级、完善服务。这里的升级包含2个意思:

——第一,官方wecenter系统升级,我们提供免费模板升级适配。

——第二,模板本身还会承诺有若干次完善升级(代码上的、设计上的),免费提供给已购买的朋友。

3,凡购买模板的朋友,本团队后续推出的其他模板,可享50%半价优惠(如何实现折扣,再议)

4,上述好处,必须入群才有。



 



定价:



人民币¥128



请等待应用市场上架。或者联系私信我购买+入群。



wecenter一直闲置摆设的功能:界面风格切换,可以恢复出来了。以及,更好的切换主题方式。。。

创意与设计bennyyao 发表了文章 • 13 个评论 • 434 次浏览 • 2019-04-09 18:59 • 来自相关话题

    小伙伴们有多少人知道,wecenter后台的界面风格切换,这个摆设功能? &n ...查看全部
 


 


小伙伴们有多少人知道,wecenter后台的界面风格切换,这个摆设功能?


 




这里本应该可以下拉选择不同的主题。


 


可是,如何增加主题呢?有谁知道?


 


我们来看代码。


 


 




这里是系统引入CSS和模板HTML的控制脚本。


注意看,这里写死了,只能读取default,也就是默认风格。


 


可是,系统提供了一个读取风格的函数:get_setting('ui_style')


 


这个函数的返回结果,就是目前在管理后台那个地方,你选择的主题风格。


 


那么,主题风格从哪进去管理后台的呢?


 


============划重点了===================


其实很简单,就在系统的模板文件夹view/中共有几个子文件夹,现在只有一个default,如果你把default文件夹复制拷贝一份,改名为 new_style, 后台就能出现2个主题名称,一个default,一个是new_style,这时候,你就可以选择风格了。


============划重点了===================


 


但是,你选了风格,如何生效呢?


 


就是上面那段代码,wecenter官方给写死了!!!!!怎么办,我们就用get_setting('ui_style')来获取当前选定的主题。


 


我们来改一下代码:


 




 


好了,现在可以切换主题,并生效了!


 


 


 


============


 


 


 


等等,还少一件事:


 


 


除了拷贝一份 /view/default文件夹以外,你还要拷贝一个 /static/css/default文件夹。


 


换言之,这两个文件夹就构成了一个主题的所有文件——风格样式、模板HTML这两样东西。(其实,我认为还应该把javascript也包括进来,技术上是可行的,但先不用那么麻烦了,大多数的自制模板,也不会使用到动效部分,虽然理论上是可以的,而且真正的优秀的模板,应该在动效方面也有自己的新的表现。)


 


 


OK,现在,你可以尝试修改一下 new_style下的css样式,看前台是不是生效了?


然后,回到管理后台,你可以轻松的无损切换回默认主题了。


 


 

请问,现在的系统,对发布悬赏的判断,仅仅是有没有category参数吗? 有点困惑。。。

建站运营fanta 回复了问题 • 4 人关注 • 1 个回复 • 321 次浏览 • 2019-04-08 13:31 • 来自相关话题

【4-3更新进展】采用 Bootstrap4 和Material Design的wecenter 风格设计,导航栏演示

创意与设计bennyyao 发表了文章 • 5 个评论 • 310 次浏览 • 2019-04-03 17:57 • 来自相关话题

啥也不说了。上图。这个是今天刚装的3.3.1(右键新标签打开大图) ...查看全部
啥也不说了。上图。这个是今天刚装的3.3.1(右键新标签打开大图)


累!


 




 


先出来一个。然后。。。

这就是一个大套系。


这个总体还是比较素的,适合商务应用和社区平台。




完了以后,再来其他风格,可以弄点个性化强的,适合个人网站。

 

条新动态, 点击查看
飞想翼

飞想翼 回答了问题 • 2013-05-19 10:21 • 19 个回复 不感兴趣

wecenter核心代码注释,持续更新中

赞同来自:

支持,希望能坚持做下去!
支持,希望能坚持做下去!
其实很简单,就是你找的人不会WC的二次开发,学习成本高,自然问你要价就高咯..相反,他们熟悉WP,自然喜欢从WP入手..从内行的角度看待你这个问题,很简单,你从WP入手 几乎等于从零开始,内行都知道WP其实根本没有什么功能..既然如此,何不找个好的开发团队,用... 显示全部 »
其实很简单,就是你找的人不会WC的二次开发,学习成本高,自然问你要价就高咯..相反,他们熟悉WP,自然喜欢从WP入手..从内行的角度看待你这个问题,很简单,你从WP入手 几乎等于从零开始,内行都知道WP其实根本没有什么功能..既然如此,何不找个好的开发团队,用框架从零开始开发呢,还有自主版权呢.以后修改,升级,也方面不是
a279257725

a279257725 回答了问题 • 2015-10-22 09:36 • 23 个回复 不感兴趣

简单的文章打赏功能,来点评下

赞同来自:

很好,支持一下,期待分享
很好,支持一下,期待分享
战国乱

战国乱 回答了问题 • 2016-02-25 16:12 • 8 个回复 不感兴趣

怎么修改首页模板布局?

赞同来自:

首页的模版是\views\default\explore\index.tpl.htm   suprise
首页的模版是\views\default\explore\index.tpl.htm   suprise

手机模板开发修改对应文件基础认识,新手改模板可以看看

WeCenter 程序卓越膜结构 回复了问题 • 8 人关注 • 3 个回复 • 850 次浏览 • 2018-09-17 17:05 • 来自相关话题

专为WeCenter打造的云端采集器【神箭手】发布2.0版 五大贴心功能打造最流畅的采集体验

WeCenter 程序timilive 回复了问题 • 85 人关注 • 34 个回复 • 13252 次浏览 • 2018-05-22 17:58 • 来自相关话题

【WeCenter二次开发】不同分类的效果

小明明 发表了文章 • 8 个评论 • 4362 次浏览 • 2015-10-30 07:32 • 来自相关话题

【更正】 因为之前发布的是问题,不能编辑,在这更正。 第二篇,前端新建文件名,应改为新建 views/default/block/content_nav.tpl.htm。    【后台 分类设置】 ...查看全部
【更正】
因为之前发布的是问题,不能编辑,在这更正。
第二篇,前端新建文件名,应改为新建 views/default/block/content_nav.tpl.htm。
 
 【后台 分类设置】


搜狗截图15年10月30日0728_1.png


 
【文章页面】


QQ截图20151030073405.png


 
【问题页面】


QQ截图20151030073324.png



【活动页面】


QQ截图20151030073431.png



修改过程:
http://wenda.wecenter.com/question/27787
http://wenda.wecenter.com/question/27788
 

发福利了。。。小白实现问题置顶功能。。。

Mader 回复了问题 • 63 人关注 • 15 个回复 • 4726 次浏览 • 2016-01-11 14:29 • 来自相关话题

【WeCenter二次开发】你至少要知道的那些事

小明明 发表了文章 • 18 个评论 • 6178 次浏览 • 2015-06-24 21:33 • 来自相关话题

引言: 我仅仅是一个编程爱好者,遇到WeCenter的原因是想做个高考咨询的问答站。自己对PHP也只是略懂皮毛,更别说框架了。看了三天的ThinkPHP文档不太好消化。是WeCenter让我更好的理解了M ...查看全部


引言:
我仅仅是一个编程爱好者,遇到WeCenter的原因是想做个高考咨询的问答站。自己对PHP也只是略懂皮毛,更别说框架了。看了三天的ThinkPHP文档不太好消化。是WeCenter让我更好的理解了MVC的含义。


以下内容仅适合刚刚接触WeCenter准备二次开发的新同学,如果您是大神可以就此止步。如有说法不准确,请包涵,以下内容仅为个人理解。
=====================
 
 
1:框架结构有三层它们的作用及它们对应的文件夹如下:
控制器(程序流程,了解用户想要什么)--》APP
模型(数据库访问,提供用户需要的原材料)--》Model
视图(展示出来,也就是最后成品,由控制器放到用户面前)--》View
 
2:Wecenter的框架流程是什么样的?
控制器也就是app文件夹下的文件夹及文件,例如访问http://example.com/?/account/就是执行app/account/main.php 中 index_action 方法~再例如访问http://example.com/?/account/login/就是执行上述文件中login_action这个方法。
这(控制器函数/方法)里面会调用模型,即执行Model文件夹下的相关文件,访问数据库获得数据。例如$this->model('account')->get_user_info_by_uid($uid);就是在调用account这个用户模型,具体就是model/account.php里的相关方法~
调用完数据,要做的事情就是把数据展示出来。在控制器方法中一般都会以这样的语句结束:TPL::output("XXX");它所做的事情就是调用视图——我们通常所说的模板。
 
3:在调用模型之后输出视图,那么模型是怎么把数据传给视图的呢?
请注意这条语句:TPL::assign('AAA', 'BBB');,意思就是把BBB包装成AAA;BBB是由模型获得的数据,AAA是在视图展示的形式,在TPL::output("XXX");输出的模板中可通过<?php echo $this->AAA;?>来输出BBB这个值。
 
 Tip:研究BBB来充分发挥AAA的价值:
上文说到“把BBB包装成AAA”,其实AAA和BBB完全可以理解为等价。
前些日子活跃了一阵子,看到一个用户问,怎么显示加入时间。其实加入时间即注册时间,get_user_info_by_uid()返回的应该是用户信息绝大多数字段,或者就是用户表全部字段,我没有一一比较。同时还会有微信消息设置信息。我通过视图<?php print_r($this->user);//打印数组?>发现有reg_time这个字段的值,只要把时间戳转化成易理解的日期即可。
所以,在开发初期可以多打印几个数组,掌握成员组成,说不准什么时候就可以用到。默认模板只是把认为有必要展示的内容展示出来了,你想展示其他的,研究BBB的内容。


编后语:
第一次打这么多字,还没有插图。向全部读完的童鞋致敬!愿大家开发出自己的特色产品,愿WeCenter越来越好~


WeCenter 二次开发基础说明(模块开发)

jat 发表了文章 • 20 个评论 • 11297 次浏览 • 2015-02-05 12:23 • 来自相关话题

WeCenter组件,活动模块,工单模块等都是一个独立的模块,升级覆盖不影响功能使用,可以理解成一个需要执行sql的插件。  一. 组件文件目录结构说明 ...查看全部
WeCenter组件,活动模块,工单模块等都是一个独立的模块,升级覆盖不影响功能使用,可以理解成一个需要执行sql的插件。
 一. 组件文件目录结构说明
一般来说,一个模块需要下面几个文件,假设模块名为AA,则


app/AA – 应用目录
models/AA.php – 模型目录
static/css/default/AA.css – 静态文件
views/default/AA – 模板目录



二. URL 路由
WeCenter 有一个解析能力强大的 URL 路由,模块AA的访问设置如下
1. 动作访问:


/模块名/控制器/动作/ID
ID 为 id 查询, 例: 模块名/login/123, 则在 login 控制器中 $_GET['id'] 的值为 123
(*) 如果使用 /模块名/控制器/动作/ID 格式 Query string 的使用可以参照 兼容性的支持
(*) 如果动作在 main 控制器中可以省略, 例: 模块名/main/login/ 等同于 account/login/
(*) 如果动作名为 index 可以省略,  例: 模块名/login/index/ 等同于 account/login/



2. Query string
WeCenter 的查询字符串为使用 __ 分隔参数, 使用 – 为参数赋值, 在程序中直接使用 $_GET 取出内容


常规的: account/login/?return_url=1&callback=2
WeCenter 的: account/login/return_url-1__callback-2
(*) 在程序中输出 URL 请使用 get_js_url 函数, 因为这样会兼容 Rewrite 是否开启两种情况



3. 兼容性的支持
下面的几种 URL 形式在程序中都是被支持的:


http://domian/index.php?/question/id-320__column-log__source-doc
http://domian/index.php?/question/320?column=log&source=doc
http://domian/index.php?/question/?id=320&column=log&source=doc
http://domian/index.php?/question/320?column-log__source-doc
http://domian/index.php?/question/320&column-log__source-doc



三. 模板命名规则
程序中所有模板的存放规则为 模块/控制器/动作, 如果控制器为 main 则省略


如 account/main/login/ 对应的模板为 views/模板集/account/login.tpl.htm
如 account/setting/profile/ 对应的模板为 views/模板集/account/setting/profile.tpl.htm


 
四. 自动引入机制
WeCenter 类库, Model 的使用都是不需要事先引入文件的, 这使得在编程过程中变得方便快捷, 也避免了类库重复实例化的问题, 但是使用自动引入机制需要遵循下面的规则.
(*) 所有自动引入的类库都不需要事先实例化, 直接使用即可.
1. Model


放在 model 目录下, 文件名: name.inc.php
文件中需要有继承 AWS_MODEL 的 name_class
(*) 在程序中使用方法: $this->model('name')->action();
(*) 可用范围: CONTROLLER, Model



2. System 类库


放在 system 目录之下, 类名相对于 system 目录, 将 / 换成 _
例: Zend_Mail
路径: system/Zend/Mail.php
类名: Zend_Mail
(*) 在程序中使用方法: new, 静态调用, load_class('class_name');
(*) 可用范围: 任意, 不需要带参数实例化建议使用 load_class



3. 配置文件


放在 system/config 目录之下, 文件内容为一个 $config 数组, 命名为 配置名.php
(*) 在程序中使用方法: AWS_APP::config()->get('配置名')->数组下标
(*) 可用范围: 任意, 不需要带参数实例化建议使用 load_class
如需添加后台菜单,请在 system/config 目录下新建 admin_menu.extension.php 文件,格式与 admin_menu.php 一致。



五. 模板机制

WeCenter 的模板采用继承机制, 系统的 default 为主模板, 用户的自定义模板只需要更改很少的文件即可实现程序界面的定制.继承机制原理:


当管理员设定了一个 newstyle 模板, 用户访问首页

系统开始查找 views/newstyle/home/index.tpl.htm

找到相应文件                                               找不到文件
⬇                                                                   ⬇
读取内容并
解析后显示                ⬅        读取 views/default/home/index.tpl.htm



建立模板集的方法:
1. 在 views 下面建立模板集目录
2. 在 static/css/ 下建立与模板集相同的目录, 我们建议从 static/css/default/ 拷贝一份内容到新建的模板集中, 然后开始修改工作.

六. 常用开发指导
JavaScript:
我们使用 jQuery 作为主要 framework, 载入的插件有:
jQuery Form ( http://malsup.com/jquery/form/ )
AJAX Upload ( http://valums.com/ajax-upload/ )
Valums file Uploader (修改过)
jQuery.ScrollTo

(*) 在 Javascript 中判断用户是否登录判断全局变量 G_USER_ID 是否大于 0 即可
(*) 全局变量在 header 模板中
(*) 所有 JS 请求 URL 需要加上 G_BASE_URL 前缀
(*) 全局 ajax 列表函数使用 bp_load_more

PHP:
关于 Zend Framwork 类库的使用方法请参考官方文档
(*) 在控制器中判断用户是否登录判断 $this->user_id 是否大于 0 即可
(*) 控制器与模板中始终可用 $this->user_id 和 $this->user_info
(*) 控制器与 Model 中禁止使用构造函数, 可以用 setup() 函数替代
(*) 程序已经提供了两个中文处理函数 cjk_substr 和 cjk_strlen

Access Rule:
public function get_access_rule()
{
// 规则类型
// white: actions 里的 action 全部用户可见, 其余 action 需要登录
// black: actions 里的 action 需要登录, 其余 action 全部用户可见
$rule_action["rule_type"] = 'white';
$rule_action["actions"] = array(
'check_username',
'check_email',
'register_process',
'login_process',
'register_agreement',
'send_valid_mail',
'valid_email_active',
'request_find_password',
'find_password_modify'
);
return $rule_action;
}
(*) 控制器中不加此函数, 则所有 action 必需登录可见

模板:
(*) 在模板可以使用 PHP 代码, 全部静态类与 function, 但是不能使用 Model
(*) 模板中 $this-> 中的内容是全局通用变量, 可以在模板中引入的模板使用, 模板内部产生的变量则不能
(*) TPL::output 方法第二个参数为 false 时, 内容会返回给变量不会输出, 可以利用此方法做 JS 调用或者代码重用

注册页面和登陆页面弹出框处理

夏洛特 回复了问题 • 34 人关注 • 4 个回复 • 3212 次浏览 • 2014-09-17 19:54 • 来自相关话题

分享一个自定义WC首页的方法(修改默认首页)

Alu 发表了文章 • 18 个评论 • 10110 次浏览 • 2014-04-11 14:04 • 来自相关话题

有人问我,如果自定义自己写的应用为默认首页如何设置,我不再一一回了,在这里写出来大家互相学习。 在:system\core\uri.php有个默认控制器,修改这个参数 var $default_vars = array( ...查看全部
有人问我,如果自定义自己写的应用为默认首页如何设置,我不再一一回了,在这里写出来大家互相学习。

在:system\core\uri.php有个默认控制器,修改这个参数
var $default_vars = array(
'app_dir' => 'home', //应用名
'controller' => 'main', //文件名
'action' => 'index'//执行的程序
);

【二次开发教程】三、友情链接开发,后台处理页面,附插件下载。

___在路上____ 回复了问题 • 73 人关注 • 16 个回复 • 8300 次浏览 • 2014-12-07 22:09 • 来自相关话题

【二次开发教程】二、友情链接开发,前台申请页面。

buffonly 回复了问题 • 54 人关注 • 11 个回复 • 5126 次浏览 • 2014-04-24 14:45 • 来自相关话题

发现wecenter后端有个很奇怪的问题,懂技术的都来看看。。。。。

回复

WeCenter 程序bennyyao 发起了问题 • 1 人关注 • 0 个回复 • 305 次浏览 • 2019-04-18 12:49 • 来自相关话题

请问,现在的系统,对发布悬赏的判断,仅仅是有没有category参数吗? 有点困惑。。。

回复

建站运营fanta 回复了问题 • 4 人关注 • 1 个回复 • 321 次浏览 • 2019-04-08 13:31 • 来自相关话题

需要一个二开思路

回复

创意与设计marco_hsu 回复了问题 • 4 人关注 • 3 个回复 • 481 次浏览 • 2019-01-17 16:55 • 来自相关话题

关于wecenter上传图片的压缩质量问题,疑似BUG !

回复

WeCenter 程序 回复了问题 • 8 人关注 • 4 个回复 • 756 次浏览 • 2019-01-03 09:49 • 来自相关话题

如果增加了字段、修改过模板,升级怎么避免被覆盖?

回复

建站运营kaiheitv 回复了问题 • 6 人关注 • 4 个回复 • 529 次浏览 • 2018-12-25 12:46 • 来自相关话题

bootstrap自帶都有幻燈片功能官方首頁又去加載一個JS

回复

建议marco_hsu 回复了问题 • 5 人关注 • 4 个回复 • 736 次浏览 • 2018-12-13 11:39 • 来自相关话题

寻求插件功能开发,预算合理就可以开工了...........

回复

WeCenter 程序张三疯子 回复了问题 • 2 人关注 • 1 个回复 • 637 次浏览 • 2018-12-09 00:55 • 来自相关话题

把xunsearch集成到wecenter系统中,有没有做过的?

回复

问与答WhoCareWho 发起了问题 • 1 人关注 • 0 个回复 • 451 次浏览 • 2018-10-29 16:21 • 来自相关话题

感觉黑色的抬头比蓝色的好看

回复

建议风见雨下 回复了问题 • 2 人关注 • 1 个回复 • 644 次浏览 • 2018-10-11 13:36 • 来自相关话题

手机模板开发修改对应文件基础认识,新手改模板可以看看

回复

WeCenter 程序卓越膜结构 回复了问题 • 8 人关注 • 3 个回复 • 850 次浏览 • 2018-09-17 17:05 • 来自相关话题

之前在官方群里说的一个设想实现了。

WeCenter 程序三叔 发表了文章 • 1 个评论 • 102 次浏览 • 1 天前 • 来自相关话题

之前在官方群里吹牛逼: 我最近在写桌面工具,我要让我的用户关注我公众号的可以用我的软件,凡是取消关注的都不可以再用! ...查看全部

之前在官方群里吹牛逼:



我最近在写桌面工具,我要让我的用户关注我公众号的可以用我的软件,凡是取消关注的都不可以再用!



好了,牛逼实现啦!!!



我来说说我的实现思路:



第一步:



我在数据库创建了一个表: aws_tool_weixin



里面有三个主要字段: mac, openid,subscribe  以及日期等辅助字段。



 



第二步:



我在我的winform程序里写了一个带参数的微信关注二维码生成.参数里是用的当前主机的mac地址。





第三步:



我修改了wecenter里和微信交互的那块。在event为 subscribe(是否关注)里增加获取第二步二维码自定义参数值的获取,也就是mac地址



并且判断openid是否存在,如果不存在,则插入一条 mac和openid以及 subscribe=1(1为关注,0为取消关注)



并且新增了 unsubscribe的event判断,这个判断是取消关注的通知。 微信会给我们两个参数: openid  unscribe。



我会根据openid查询是否有记录,有记录则把subscribe字段改为0





第四步:



用户在我的桌面程序里,关注完公众号开始操作。第一次操作的时候,会去查询我的接口,传入mac地址。 因为关注二维码我是不知道当前用户的openid的,但是第二步里我将mac地址和openid绑在一起了。 所以此时传入mac地址的时候,会从接口里读出对应的数据库了的openid。并且将openid保存到本地。下次查询就带着openid去查询了。



如果查询到的subscribe



如果是1 那就是已关注我的公众号且未取消



如果是0 那就是已经取消关注,那就直接弹出对话框:“因为你取消了关注,你已经不可以再使用本软件”



如果后端传来的是没有数据。那就弹出第二步的窗口 让用户关注。



 



最后



自此我的思路就好了。虽然如此 但是还是会有十分之一的人会取消关注。那就不好意思了。昨天还有人发语音问我:为什么我关注了,却用不了你们的软件。 我直接告诉他几点关注的 几点取消关注的。





 



目前我的公众号人数暴涨。




wecenter二开之微信ticket和access_token的获取

WeCenter 程序三叔 发表了文章 • 1 个评论 • 82 次浏览 • 4 天前 • 来自相关话题

//获取token $access_token = $this->model('openid_weixin_weixin')->get_access_token(get_setting( ...查看全部

//获取token



$access_token = $this->model('openid_weixin_weixin')->get_access_token(get_setting('weixin_app_id'), get_setting('weixin_app_secret'));



 



//获取ticket



$jsapi_ticket = $this->model('openid_weixin_weixin')->get_jsapi_ticket($access_token);


Wecenter插件系统开发规范

插件fanta 发表了文章 • 0 个评论 • 245 次浏览 • 2019-06-14 13:31 • 来自相关话题

1.命名规范



插件命名以wc_作为前缀+插件名,如插件test,即wc_test



2.目录新建



目录新建在根目录下plugin文件夹下,如插件名test,目录结构就是/plugins/wc_test/



3.目录结构



目录包含内容必须要有配置文件、核心类,非必要的有模型类、静态资源、第三方类、页面模板等,如test,则玩着目录如下



wc_test



|-config.php  配置文件



|-test.php   核心类



|-test_model  模型类



|-view     视图模板目录



|-static    静态资源目录



|-install.sql   安装sql



|-uninstall.sql  卸载sql



|-upgrade.sql  升级sql



4.配置文件



Config.php配置文件 返回一个多维数组,包含有:



name: 插件标识



title 插件标题名称



intro 插件介绍



author : 插件作者



version 插件版本



state  插件状态



config: 也是一个数组,包含所需的配置项,如:



  'config'=>[



  'ad_plugin_enable' =>



  array (



    'title' => '广告开启',



    'type' => 'radio',



    'value' => 'Y',



    'options' =>



    array (



      'Y' => '开启',



      'N' => '关闭',



    ),



  )



],



以上的配置config就是后台广告插件的配置显示效果,



'options' 对应的是配置项的值,



'value' 是默认值,



'type' 是配置类型,



'title' 是配置名称



常用的有textselectradioCheckBox



ad_plugin_enable是开发者自己定义,调用的时候调用此键名即可



5.核心类



核心类同样继承自AWS_CONTROLLER,包含5个固定方法,即构造方法 install安装,uninstall卸载,enable启用,disable禁用,构造方法获取插件的配置和插件相关信息,安装、卸载、启用、禁用四个方法默认是调用系统的方法,也可以自定义,在方法里自行处理相关逻辑。



除了这5个方法之外,开发者可以自定义其他的方法进行调用。



6.模型类



模型类的定义名称需后接_model方可,如test_model,内部的定义与使用与model目录下的模型相同,



另注意一点,此处的模型名不可与model目录下的模型重名,如果重名,会去调用model目录下的模型,从而会导致找不到相关的方法一类的错误。



调用方法还是$this->model()进行调用。



6.staticview静态资源、视图目录



Staic目录存放css\js等静态资源



View 视图目可存放后台以及前台的视图模板



后台视图的要在目录下新建子目录admin,前台的模板直接放在view下即可,在核心类中,通过 PLUTPL::output('ad/banner');渲染页面,其中ad是插件名或者标识,banner是页面名称



后台的只需加上admin即可,如PLUTPL::output('ad/admin/edit');



7.安装、卸载、升级



安装、卸载、升级在后台都有相对应的操作,对应相应的sql执行即可。



8.插件调用



正常的调用只需用公共方法hook()方法调用即可,在后台或者其他的页面需要调用插件方法进行页面调用或方法的时候,可以通过doact方法,前台explore/doact  后台admin/plugin/doact  ,



添加广告按钮需要调用插件添加广告的方法,此处是超链接,可以通过admin/plugin/doact/?p=ad&a=edit进行传参调用,其中pa是必传的,p是插件名,a是方法名。


在文章底部增加第三方社交分享功能

建站运营三叔 发表了文章 • 5 个评论 • 277 次浏览 • 2019-05-29 12:25 • 来自相关话题

第一步: 在 /views/default/global/下创建文件 socialshare.tpl.htm 写入代码: ...查看全部

第一步:



在 /views/default/global/下创建文件 socialshare.tpl.htm



写入代码:



<div class="social-share" data-mobile-sites="weibo,qq,qzone,tencent,wechat"></div>

<link href="//cdnjs.cloudflare.com/ajax/libs/social-share.js/1.0.16/css/share.min.css" rel="stylesheet">

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/social-share.js/1.0.16/js/jquery.share.min.js"></script>



 



第二步:



/views/模板/article/index.tpl.htm 你要放社交按钮的地方增加代码:



<?php TPL::output('global/socialshare.tpl.htm'); ?>



 



收功!



效果如:





 



参考网页:



http://www.bejson.com/a/12.html



 


瀑布流卡片风格,接受预定!先看图吧,这个是浏览器里随手搭的大概样子,实际会更精致

创意与设计bennyyao 发表了文章 • 5 个评论 • 456 次浏览 • 2019-04-18 09:53 • 来自相关话题

  ...查看全部


 


 


除了feed改为瀑布流卡片风格外,其他页面布局应该还会是原版布局。


另外,sidebar搬到左侧,也会有白色底,或透明底都可。


 


接受预定。如果有10人有意向买,我就开做。


 


你们还可以留言给出你的具体需求建议,我综合考虑。

做了个主题,已经初步完成,正在申请应用上架。如果您现在就想买,也可以私信我。

创意与设计bennyyao 发表了文章 • 8 个评论 • 527 次浏览 • 2019-04-10 22:50 • 来自相关话题

DEMO地址:https://unikpage.com ...查看全部


 


 


 


 




 



本模板特点:

1,提供三种主色调选择:淡紫,绿,橙。和原版一样,可以在用户菜单切换。每种色调都经过精心调制。

2,采用了波纹按钮效果,按钮点击时会有波纹特效。

3,采用了淡入淡出的浮动菜单效果。

4,整站尽可能都做了定制。但是有几个地方还没做,或者可能做得不够好:



——1)专栏部分,效果不是最满意。因为wecenter原版的专栏模块的代码相对独立,对第三方定制的支持度不高,模板定制难度较高。但是这部分,以后我们会继续完善。

——2)个人设置,其中手机修改部分,也定制得不够好。原因同上。

——3)手机版也做了定制,但是,手机版模板,不支持切换,一旦你覆盖了原版,手机版就无法再换回原版!切记!!!而且手机版没有三种颜色切换。



——4)活动、工单这俩模块,基本上没改。我们认为几乎没有人用这俩模块的,所以就不定制了。如果需要定制的,请联系我们,为您单独定制(收费)。

——5)对个别的system后端逻辑做了修改,主要是模板引入机制。原因是,wecenter目前的模板引入机制,更适合小修小改,新增样式,而对于大覆盖面、大范围的模板全面定制,支持度不够灵活,因此我们做了适当修改。但是请放心,使用我们修改后的文件,即使你再次切回原版风格,正常情况下,也不会受影响。



*** 对上述内容还不确定的,请去DEMO站  https://unikpage.com  使用体验 ***

*** 如果您对上述内容不满意,请勿购买! ***



使用条件



必须满足下列条件才可使用本模板。如果您不满足下列条件,请谨慎购买!或后果自负。



1,必须已经成功安装wecenter3.3.1及以上版本。网站可正常使用。



2,没有安装过其他模板,或您确认其他模板不会产生兼容性问题,或您确认可以自行解决任何模板兼容性问题。本模板不承诺对任何其他模板100%兼容不冲突。(当然,没有什么问题是不可以通过备份恢复来解决的!)



3,没有安装过其他任何可能对模板主题产生修改、影响的插件(或二次开发)。



4,您不是wecenter的新手小白用户。本团队不承诺提供wecenter本身的任何技术和使用咨询服务。



如何使用?



1,先备份好你的网站的三个部分:static,system,views做好备份!!!!务必!!

2,下载,解压,上传到你的网站根目录下。覆盖。

3,进入后台管理面板,在【全局设置】——【界面设置】——【用户界面风格】下拉选择 【kuaiban】,确定。

4,前端用户菜单里,可以随意切换 蓝紫、绿色、橙色三种风格。每种风格都经过我们重新设计定制,请尽情使用。

5,主题中一些地方使用了背景图片,这些图片是可以替换的。你购买之后,我会告诉你如何替换更适合你的背景,而且是同样颜色和风格的。







售后服务



1,请加入我们的版友QQ群:974189836 ,群内可提供本模板的使用咨询、技术咨询。仅限购买用户入群。

2,凡购买模板的朋友,享受半年内的升级、完善服务。这里的升级包含2个意思:

——第一,官方wecenter系统升级,我们提供免费模板升级适配。

——第二,模板本身还会承诺有若干次完善升级(代码上的、设计上的),免费提供给已购买的朋友。

3,凡购买模板的朋友,本团队后续推出的其他模板,可享50%半价优惠(如何实现折扣,再议)

4,上述好处,必须入群才有。



 



定价:



人民币¥128



请等待应用市场上架。或者联系私信我购买+入群。



wecenter一直闲置摆设的功能:界面风格切换,可以恢复出来了。以及,更好的切换主题方式。。。

创意与设计bennyyao 发表了文章 • 13 个评论 • 434 次浏览 • 2019-04-09 18:59 • 来自相关话题

    小伙伴们有多少人知道,wecenter后台的界面风格切换,这个摆设功能? &n ...查看全部
 


 


小伙伴们有多少人知道,wecenter后台的界面风格切换,这个摆设功能?


 




这里本应该可以下拉选择不同的主题。


 


可是,如何增加主题呢?有谁知道?


 


我们来看代码。


 


 




这里是系统引入CSS和模板HTML的控制脚本。


注意看,这里写死了,只能读取default,也就是默认风格。


 


可是,系统提供了一个读取风格的函数:get_setting('ui_style')


 


这个函数的返回结果,就是目前在管理后台那个地方,你选择的主题风格。


 


那么,主题风格从哪进去管理后台的呢?


 


============划重点了===================


其实很简单,就在系统的模板文件夹view/中共有几个子文件夹,现在只有一个default,如果你把default文件夹复制拷贝一份,改名为 new_style, 后台就能出现2个主题名称,一个default,一个是new_style,这时候,你就可以选择风格了。


============划重点了===================


 


但是,你选了风格,如何生效呢?


 


就是上面那段代码,wecenter官方给写死了!!!!!怎么办,我们就用get_setting('ui_style')来获取当前选定的主题。


 


我们来改一下代码:


 




 


好了,现在可以切换主题,并生效了!


 


 


 


============


 


 


 


等等,还少一件事:


 


 


除了拷贝一份 /view/default文件夹以外,你还要拷贝一个 /static/css/default文件夹。


 


换言之,这两个文件夹就构成了一个主题的所有文件——风格样式、模板HTML这两样东西。(其实,我认为还应该把javascript也包括进来,技术上是可行的,但先不用那么麻烦了,大多数的自制模板,也不会使用到动效部分,虽然理论上是可以的,而且真正的优秀的模板,应该在动效方面也有自己的新的表现。)


 


 


OK,现在,你可以尝试修改一下 new_style下的css样式,看前台是不是生效了?


然后,回到管理后台,你可以轻松的无损切换回默认主题了。


 


 

【4-3更新进展】采用 Bootstrap4 和Material Design的wecenter 风格设计,导航栏演示

创意与设计bennyyao 发表了文章 • 5 个评论 • 310 次浏览 • 2019-04-03 17:57 • 来自相关话题

啥也不说了。上图。这个是今天刚装的3.3.1(右键新标签打开大图) ...查看全部
啥也不说了。上图。这个是今天刚装的3.3.1(右键新标签打开大图)


累!


 




 


先出来一个。然后。。。

这就是一个大套系。


这个总体还是比较素的,适合商务应用和社区平台。




完了以后,再来其他风格,可以弄点个性化强的,适合个人网站。

 

【4-1更新进展】采用 Bootstrap4 和Material Design的wecenter 风格设计,导航栏演示

创意与设计bennyyao 发表了文章 • 7 个评论 • 614 次浏览 • 2019-03-31 20:16 • 来自相关话题

  ...查看全部


 






 






玩wc那么多年了,也想为wc做点贡献。

我手头有一堆的最好、最新的设计素材和工具。我的想法是,先把wc的UI框架升到 bootstrap4+,使wc的设计风格跟上最新时代,然后在这个基础上为大家做一些主题模板。


 

我们的计划,


 


第一步,先把wc升级到bootstrap4,然后和官方谈,以后升级也采用BT4版,尽量让功能升级和UI样式分离。基于BT4风格的WC,我们一旦做出来,会和WC一样采取开源发布。




第二步,只要大家喜欢,我们可以大量出模板,不光是颜色,还可以对某些内容版式做定制。比如说,列表改为卡片阵列式、瀑布流。。。。这些在BT4的基础上,很容易做,也很容易维护。




这两步做到,而且大家愿意支付一些劳务费的话,我们可以稳定提供下去。只要wc不倒,我们就做下去。


 


这里先上一些示例,大家先看看。图片请右键新标签打开,可以看大图。


 


——————————————————————————————————


小科普,Bootstrap是什么?


 


bootstrap是一套全世界最流行的网站前端UI框架,它采用响应式设计,以及现代的扁平设计风格,用这套框架规范来开发的网站,可以自动适应桌面、移动端。


wecenter目前内置的是BT3版,无论从内核和设计风格,都与最新的前端技术以及最新的设计潮流有所脱节,所以wecenter现在安装后,看上去略微有点点土,像是10年前的网站。


 


最新的bootstrap是4.3+版,很快5.0版也会发布了。4.0版的bootstrap内核技术更先进,风格更优雅,不仅如此,国外有无数的公司、设计大神,都为它开发了很多扩展和插件。使之如虎添翼,几乎成为现代网页设计的标准。


 


另外,来自Google公司的Material Design是另一套覆盖网页、APP的设计规范,它的风格更绚丽,更扁平,更酷。原则上,Material Design 与 Bootstrap不矛盾,甚至可以结合叠加。


 


我们现在做的设计就是采用bootstrap框架,外加Material Design理念。


 




 




 




 




 




 


 


——————————————————————————————


 


4-1


 


今天我们反复调整了顶部导航栏,考虑再三,决定尽量贴合原版wecenter的代码结构,不做太大的变化(本来为了设计考虑,可以做很大的代码结构变化),所以废了好大的力气。


 


看图吧。(右键新标签可以看大图)


 




 


哦,对了,我们把【通知】栏目做成了图标效果。这么做不仅是出于美观、和流行的做法,也是为了优化导航栏的空间利用。


 


现在,我们可以实现在桌面、平板、手机三个终端下,导航栏能充分显示最多且最必须的内容,所以,现在,原本必须隐藏的工单和活动栏目,也可以不必再隐藏了。


 


下面是移动终端的效果(同一个页面,终端自适应)


 


为了适配移动端体验,我们在这里略微做了一些改善。原版wecenter的导航栏目,有些是隐藏的,如活动、工单啥的。而发布功能是独立的按钮。


 


我们决定在移动终端上,隐藏的导航栏目全部显示出来,作为正常的导航处理。同时,发布按钮也做到菜单里。如图。


 




宝塔面板中wecenter的伪静态设置

建站运营三叔 发表了文章 • 1 个评论 • 690 次浏览 • 2019-01-30 16:17 • 来自相关话题



微信截图_20190130161417.png


在宝塔面板里点击网站->域名->伪静态
选择当前:
加入: 
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
建议像我一样保存为模板,这样下次其他wecenter网站可以直接选择。
然后就OK了
二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能,一般来说都不会改变原有系统的内核。