WordPress插件开发人力资源系统插件开发教程
2022-04-20
浏览次数 : 363
插件的英文名字是:HR System. slug 是 hr-system. 翻译名称是 hr-system.
插件开发测试的网站是 xmdn.net . 一步一步操作下去总能实现的。
插件主要依赖 form . datatable 的js 插件实现。 用的是 wp_ajax 的方法。wordpress自带的 rest_api方法会在第二版更新中实现。
首先第一版迅速完成,因为要用到官网用作员工信息统计。 其他都没问题,要确定花名册编辑功能的实现。
首先确定结构。
然后是创建表格。在插件启动的时候创建数据库表单。创建一个部门的表单,一个员工信息的表单。
管理页面分为dashbored,总览,可以查看当前多少员工,入职多少员工,离职多少员工。 还可以分性别,分年龄段呈现。
第二个管理页面是添加部门,添加部门必须的表格。表格上方要写出当前哪些部门有多少人。 需设置添加和删除还有编辑操作。
第三个管理页面是花名册的页面。首先是添加花名册。花名册包括字段有:工号、姓名、性别、年龄、手机号、身份证号、首次合同时间,首次合同到期时间,现在合同起始时间,现在合同到期时间。
然后设置花名册可以导入和导出excel表单的功能。
流程:
一:Create plugin menu: Hr Plugin
二:Create plugin submenu.: Departmen\Staff\former staff
三:Create 部门 table when plugin activate.
Department table fields: 部门表单的字段: id, 部门名称(name)、主管(director)、人数(count)、(操作 action)
四:在数据库后台创建好表之后, 执行sql 命令, show create table 表名字:点击选项,勾选提示完整文本,点击执行, 就可以查看创建的命令。
CREATE TABLE `wp_hr_system_department` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(150) DEFAULT NULL,
`director` varchar(150) DEFAULT NULL,
`count` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
create 花名册 table when plugin activate. 创建在职员工花名册数据表
在职员工花名册表单字段名:
序号ID、姓名name、性别gender、部门department、年龄age、手机号码phone、身份证号码ID card、身份证地址ID address、入职时间begin、首次合同时间first-contract、首次合同到期时间first-contract-end、现合同时间now-contract、现合同到期时间now-contract-end (操作action)
创建离职员工数据库花名册表
序号ID、姓名name、性别gender、年龄age、手机号码phone、身份证号码ID card、身份证地址ID address、入职时间begin、离职时间leave (操作action)
五:将创建数据表的命令粘贴到activate的函数里, 设置插件启动的时候执行创建数据表的命令。
insert data in tables when plugin activate
六:drop tables when plugin uninstall 插件禁止的时候删除数据表
七:create page when plugin activate 先通过查询wp_post表,SELECT * FROM wp_posts WHERE post_name = ‘hr-system’ 来查询是否在wp_posts 表里存在这么一行。 插件激活的时候创建页面。 用 wp_insert_post函数。
八: delete page when plugin deactivate ,用wp_delete_post
九: add style script file in plugin file. 添加特定的样式文件到管理页面。
添加bootstrapcss和js文件,datatable 样式文件,fontawesome 图标库等。
十:add plugin layout 添加后台管理页面的表格样式
十一:add ajax request 发送各类ajax post 请求 到 admin_ajax.php
首先创建admin_hook, 在 主要的class 文件夹里, define_admin_hook的函数里,添加钩子,
add_action(‘wp_ajax_hr_system_request’,$plugin_name,’hr_system_ajax_callback’);
然后去admin class 文件创建函数 hr_system_ajax_callback;
然后创建js的ajax的post 请求。
ajax store 部门 data to 部门 data table.
十二:将数据表信息数据添加到datable
首先要激活datatable表格、 创建表格的html .
<table id="table_id" class="display">
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>Row 1 Data 1</td>
<td>Row 1 Data 2</td>
</tr>
<tr>
<td>Row 2 Data 1</td>
<td>Row 2 Data 2</td>
</tr>
</tbody>
</table>
添加datatble.css和datatble.js 到指定页面。
点击官网zero configaration的demo. 可以查看实例。 首先去js 文件激活datatable的js.
$(document).ready(function() {
$('#example').DataTable();
} );
然后用$wpdb->get_results() 获取部门表所有数据, 默认是ARRAY 数组的形式, 通过foreach 循环出来, 循环的数据添加到datatable的tbody里面的tr就可以。
<?php
foreach ($department_data as $index=>$department) { ?>
<tr>
<td><?php echo $department->id ?></td>
<td><?php echo $department->name ?></td>
<td><?php echo $department->director ?></td>
<td><?php echo $department->duty ?></td>
<td><?php echo $department->foundation ?></td>
<td><i class="fa-solid text-danger fa-2x fa-trash-can btn-delete-book" data-id="<?php echo $book->id; ?>"></i></td>
</tr>
<?php
}
?>
十三:delete 部门表单row data 用wp_query->delete方法。
在设置delete数据表row信息的时候,有个需要注意的事项,就是实现js点击响应的时候,比方说你设置的删除button的id是delete, 当设置delete.on(‘click’ 时候设置的响应,你会发现,你表里原本有几十个delete button, 但是响应的永远只有第一个。那怎么办? 要用到 另一种选择dom的方法,也就是e.target , 也就是点击时候目前的dom , 意思就是 如果你的tbody id是 deletegroup , 当你点击这个deletegroup的时候, 上面有几十个dom,如果你设置了传递时候的参数的话,响应就会是当前点击的element. 6:
$("#deletegroup").on('click',(e)=>{console.log(e.target});
这样就会显示当前的dom。可以传递当前dom的数值到js进行操作。
add 部门 数据到添加员工信息表格中。
保存员工信息输入表格信息到database table.
从media gallery 上传图片信息到数据库。 (比如说员工身份证信息等, 方面后面随时可以打印)
list 员工花名册 在员工花名册的管理页面上。
用joins 链接两张表的字段来实现交互陈列。