@caijinlin
2015-12-17T06:34:08.000000Z
字数 4709
阅读 641
灵析
1.config.php中增加
'plugin/:plugin_name/:plugin_action/:plugin_operation' => "plugin/dispatch/index"
;
2.config.php中APP_GROUP_LIST 里面增加 Plugin
'APP_GROUP_LIST'=>"Frontend,Common,Admin,Feature,Maintenance,Plugin"
3.config.php中LOAD_EXT_FILE 里面增加plugin
"LOAD_EXT_FILE"=>"json,widget,form_widget,mail,snoopy,sms,plugin"
4.config.php中加入灵析插件项目名称配置
'PLUGIN_PROJECT_NAME' => 'lingxi_plugin'
5.在Tpl里增加Plugin的软连接,指向lingxi_plugin/Tpl/Plugin
ln -s
/wwwroot/lingxi_plugin/Tpl/ /wwwroot/lingxi/Tpl/Plugin
6.在dist里面加入软链接,引入css文件
ln -s /Users/caijinlin/www/lingxi_plugin/styles/ plugin
1.lingxi_config => plugins
CREATE TABLE `plugins` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`code` varchar(32) NOT NULL COMMENT '唯一标示',
`title` varchar(256) DEFAULT NULL,
`summary` text,
`desc` text COMMENT '如何使用之类的,富文本',
`icon` varchar(512) DEFAULT NULL,
`link` int(11) DEFAULT NULL,
`price` float DEFAULT NULL,
`free_version` varchar(128) DEFAULT NULL COMMENT '对哪些版本免费,免费版本中间用逗号隔开',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_code` (`code`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
2.lingxi_local => custom_plugins
CREATE TABLE `custom_plugins` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`code` varchar(32) DEFAULT NULL,
`title` varchar(256) DEFAULT NULL,
`summary` text,
`desc` text NOT NULL,
`price` float DEFAULT NULL,
`icon` varchar(512) DEFAULT NULL,
`link` varchar(50) NOT NULL,
`free_version` varchar(128) DEFAULT NULL COMMENT '对哪些版本免费,免费版本中间用逗号隔开',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
3.lingxi_local => installed_plugins
CREATE TABLE `installed_plugins` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`code` varchar(32) DEFAULT NULL,
`type` enum('SYSTEM','CUSTOM') DEFAULT 'SYSTEM',
`create_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=122 DEFAULT CHARSET=utf8
4.lingxi_local => smartag_contact_mapping
CREATE TABLE `smartag_contact_mapping` ( `id` INT NOT NULL AUTO_INCREMENT, `smartag_id` INT(10) NOT NULL , `contact_id` INT(10) NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = '智能标签联系人关联表'
5.lingxi_local => smart_tag
CREATE TABLE `smart_tag` ( `id` INT(10) NOT NULL AUTO_INCREMENT , `name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '标签名称' , `desc` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '标签描述' , `icon` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '标签图标' , `condition` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '贴标签条件', PRIMARY KEY (`id`) ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = '智能标签'
6.lingxi_local => jobs
CREATE TABLE `jobs` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(64) DEFAULT NULL,
`desc` varchar(512) DEFAULT NULL,
`run_type` enum('ONETIME','INTERVAL','TRIGGER') DEFAULT NULL COMMENT '一次性的还是周期性的,还是通过其他地方触发的',
`trigger_code` varchar(32) DEFAULT NULL COMMENT '如果是触发型,那么这里是什么时候触发',
`interval` int(16) DEFAULT NULL COMMENT '如果是周期性的,那么这里是执行周期',
`last_run_time` datetime DEFAULT NULL COMMENT '上次执行时间',
`create_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
7.lingxi_local => job_reqs
CREATE TABLE `job_reqs` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`job_id` int(11) NOT NULL,
`worker_code` varchar(128) NOT NULL DEFAULT '',
`seq` int(11) DEFAULT '10' COMMENT '执行顺序',
`params` longtext,
PRIMARY KEY (`id`),
KEY `job_id_and_seq_idx` (`job_id`,`seq`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
8.lingxi_local => job_ops
CREATE TABLE `job_ops` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`job_id` int(11) NOT NULL,
`worker_code` varchar(128) NOT NULL DEFAULT '',
`seq` int(11) DEFAULT '10' COMMENT '执行顺序',
`params` longtext,
PRIMARY KEY (`id`),
KEY `job_id_and_seq_idx` (`job_id`,`seq`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
9.lingxi_config => job_workers
CREATE TABLE `job_workers` (
`code` varchar(128) NOT NULL DEFAULT '' COMMENT '唯一识别',
`desc` varchar(512) DEFAULT NULL,
`type` enum('REQ','OP') NOT NULL DEFAULT 'REQ' COMMENT '条件和操作的区分',
`class` varchar(64) DEFAULT NULL,
`function` varchar(64) DEFAULT NULL,
`input` varchar(128) DEFAULT NULL,
`output` varchar(128) DEFAULT NULL,
PRIMARY KEY (`code`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1.plugin/DispatchAction =>分发插件操作
2.common/plugin.php =>PD('SmarTtag/SmartTag'):跨项目调用model
3.pluginBaseAction =>display/fetch:跨项目显示
智能标签启用:并未默认开启list_views需要手动设置启用->update custom_list_views
显示该列,才显示。
智能标签启用不显示:update->custom_list_views
智能标签停用:unset()
,不出现所有显示列中,unset()
,不出现显示列中
联系人列表:unset
联系人详情:if else
代码层面的封装,tag与smart_tag很多功能是联系在一起的
1.job机制
2.删除时要删除job表
3.linux下用cron定时执行任务的方法
4.job_worker将SmartTagOp改为了EditSmartTag(class)
1.插件市场相关
2.智能标签列表,编辑,更新
3.皮肤作为插件已到插件市场中
4. 智能标签的搜索:带role_id
5. 新建智能标签js文件,处理智能标签列表页逻辑
6 customcolumnsModel加入smart_tag,widget.php加入smart_tag
7.jquery.plugin.js 中封装simplecolorpicker改变智能标签页图标
8.联系人详情:智能标签启用显示配置
9.安装插件中数据库设计没有考虑team_id, InstalledPlugins, 智能标签区分teamid,role_id
10.邮件和短信,查找联系人,根据智能标签搜索
11.and so on.