开发专用插件示意文档手册,后期将使用文档来存储

有人问,或者老鸟问,为什么要写这玩意,没办法 我是新手,一般需要对照着手册。

其中我看某些插件文件时,有很多方法都不知道咋回事。比如

自己是新手,一般都是靠文档手册,最新想转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里面是啥

DB操作以及lecms模型部分

根据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个,其他自行开发者自行查看。

 

 

特别声明:本站所有资源均为学习测试使用,请在下载后48小时之内自主删除,本站以学习为目的不承担任何法律责任!