开发专用插件示意文档手册,后期将使用文档来存储
有人问,或者老鸟问,为什么要写这玩意,没办法 我是新手,一般需要对照着手册。
其中我看某些插件文件时,有很多方法都不知道咋回事。比如
自己是新手,一般都是靠文档手册,最新想转lecms,后期迁移的插件较多,暂时统计一下官方的类助手函数和语法。
友情链接为例:https://www.lecms.cc/?thread-6.htm(下载程序自带)
挂载菜单位置:https://www.lecms.cc/?thread-11.htm
菜单挂载的钩子文件admin_admin_control_init_nav_after.php
把插件菜单挂载到指定菜单下面,比如挂载到“插件主题”菜单下!
lang('友情链接')
// index.php?links-index 首页位置
// icon 插件图标
$menu['menuInfo']['plugin']['child'][] = array('title' => lang('f_links'), 'href' => 'index.php?links-index', 'icon' => 'fa fa-link', 'target' => '_self');
位置位于:
首页常用功能下:admin_my_control_get_used_after.php
跟菜单钩子类似,代码基本一样(一模一样)
示意图:
插件信息:
conf.php 插件基本说明
'友情链接', // 插件名
'brief' => '友情链接插件,简单的文字链接。',
'version' => '1.0.0', // 插件版本
'cms_version' => '3.0.0', // 插件支持的程序版本
'update' => '2022-12-16', // 插件最近更新
'author' => '大大的周', // 插件作者
'authorurl' => 'https://www.lecms.cc', // 插件作者主页
'setting' => '', // 插件设置URL
);
kp_block_links.lib.php 插件前台模板调用数据标签
实际文件名为:block_links.lib.php
代码示意:
links->find_fetch($where, array($orderby => $orderway), $start, $limit);//前台显示的
// hook block_links_after.php
return $arr;
}
代码返回的示例:
//-友情链接start-->
// array(2) {
// ["links-id-2"]=>
// array(5) {
// ["id"]=>
// string(1) "2"
// ["name"]=>
// string(6) "百度"
// ["url"]=>
// string(9) "baidu.com"
// ["orderby"]=>
// string(1) "0"
// ["dateline"]=>
// string(10) "1703770259"
// }
// ["links-id-1"]=>
// array(5) {
// ["id"]=>
// string(1) "1"
// ["name"]=>
// string(5) "baidu"
// ["url"]=>
// string(20) "http://www.baidu.com"
// ["orderby"]=>
// string(1) "0"
// ["dateline"]=>
// string(10) "1703770149"
// }
// }
在查看控制器和后台操作时现一个问题如下
在请求控制器方法时是:url/index.php?控制器类名(links2)_方法名(index)->传值
比如首页为:/admin/index.php?links2-index
请求列表页为:/admin/index.php?links2-get_list-&page=1&limit=15
控制器代码部分:
(代码部分有点长,就不贴代码了)
总结:
在lecms写插件时,插件的路由为:
在请求控制器方法时是:url/index.php?控制器类名(links2)_方法名(index)->传值
比如首页为:/admin/index.php?links2-index
请求列表页为:/admin/index.php?links2-get_list-&page=1&limit=15
其中$this->模型名->方法
【继续往下看会讲到】
$this->links->find_count($where);
$this->links->count();
$this->links->list_arr($where, 'id', -1, ($page-1)*$pagenum, $pagenum, $total);
$this->links->update($data)
$this->links->create($data);
$this->assign('data', $data);
$this->display('links_set.htm');
global $run;
$run->links->find_fetch();
官方回复:
$this是在控制器里面使用, $run是在block里面使用, ->模型名
其中控制器牵扯到模型文件中:
先这样,改天继续学习
有个疑问其中 其中block_links.lib.php和block_links方法啥关系?block_links方法又怎么映射到前台links这里的?
$run->links->find_fetch是嘛意思?要不官方给个文档吧。。。。。 hook里面是啥
根据lecms开发者提示,查看底层xiunophp代码发现:
常用数据库操作方法:
get($key);
multi_get($keys);
set($key, $data);
update($key, $data);
delete($key);
maxid($key, $val = FALSE);
count($key, $val = FALSE);
truncate($table);
version();
find_fetch($table, $pri, $where = array(), $order = array(), $start = 0, $limit = 0);
find_fetch_key($table, $pri, $where = array(), $order = array(), $start = 0, $limit = 0);
find_update($table, $where, $data, $order = array(), $limit = 0, $lowprority = FALSE);
find_delete($table, $where, $order = array(), $limit = 0, $lowprority = FALSE);
find_maxid($key);
find_count($table, $where = array());
//创建和删除索引
index_create($table, $index);
index_drop($table, $index);
//获取表字段、判断表是否存在
get_field($table);
exist_table($table);
//删除表、创建表、删除数据库
table_drop($table);
table_create($table, $cols);
delete_db();
也就是说以上方法均可以使用$this->moxing->方法调用,或者使用$run,也就是$run是在block里面使用。
例如$this->moxing->table_drop($table);
建议开发者直接查看路径:/lecms/xiunophp/db下的四个文件(仅需要查看db.interface.php和其他任意一个即可)即可。
lecms集成的模型文件位于:/lecms/model,也是使用$this->moxing->方法调用,例如$this->kv->xget('cfg');
$this->kv->xget('cfg');意思查询kv模型里面的,xget方法
lecms开发者kv模型给出的方法有以下几个:
get($k);//// 读取 kv 值 接受键名 比如查询link_keywords 就是get($link_keywords );
set($k, $s, $life = 0);// 写入 kv 值 在kv表新增键值对 也就是新增字段和字段值
xget($key = 'cfg');//读取整个字段cfg的值
xset($k, $v, $key = 'cfg');//修改 例如:xset(webmail, gebilaolu@qq.com); 其中cfg是可以改成其他的字段的。
xdelete($k, $key = 'cfg')//删除
xsave($key = 'cfg')//保存
save_changed()保存所有修改过的key 【以上所有的方法所有的修改,都要进行保存】
本人只查看了kv模型,具体的lecms模型文件有19个,其他自行开发者自行查看。
评论(0)