首页 > CMS > PhpCMS > 正文

【phpcms-v9】自己动手构建一个企业服务模块

2024-09-10 07:15:47
字体:
来源:转载
供稿:网友

模块功能分析:企业服务,企业填写招聘申请表,管理审核之后,展示作为招聘通知的功能.

1.文件分布:

modules文件夹和model文件夹,这是我们的文件范围,在modules下建立qiye这个文件夹,地址:F:/www/phpcms/modules/qiye

2.实例图:

3.前台控制器 index.php(class名必须与文件名一致),路径:F:/www/phpcms/modules/qiye/index.php

  1. <?php   
  2. defined('IN_PHPCMS'or exit('No permission resources.');   
  3. class index {   
  4. private $db,$ip;   
  5. function __construct() {   
  6. pc_base::load_app_func('global');   
  7. $this->db = pc_base::load_model('qiye_model');   
  8. $this->ip = ip();   
  9. $siteid = isset($_GET['siteid']) ? intval($_GET['siteid']) : get_siteid();   
  10.   define("SITEID",$siteid);   
  11.   }   
  12. public function init() {   
  13. $siteid = SITEID;   
  14. $page = intval($_GET['page'])<=0 ? 1 :  intval($_GET['page']);   
  15.       include template('qiye''index');   
  16. }   
  17. public function lists() {   
  18.   $siteid = SITEID;   
  19.   $page = intval($_GET['page']);   
  20. $page = max($page,1);   
  21. $r = $this->db->select(array('siteid'=>$siteid));   
  22. if($r) extract($r);   
  23.       include template('qiye''list');   
  24. }   
  25. public function show(){   
  26. $siteid = SITEID;   
  27. $comid = intval($_GET['comid']);   
  28.    
  29. if(!$comid) showmessage(L('information_does_not_exist'),'blank');   
  30. $r = $this->db->get_one(array('comid'=>$comid));   
  31. if(!$r) showmessage(L('info_does_not_exists'),'blank');   
  32. extract($r);   
  33. include template('qiye''show');   
  34.   }   
  35. public function reg(){   
  36. if(isset($_POST['comname'])){   
  37. //如果用户提交申请   
  38.   if($_POST['comname']==''){   
  39.   showmessage(L('qiye_noname'),"?m=qiye&c=index&a=reg&siteid=$siteid");   
  40.   }   
  41.   $db = pc_base::load_model('qiye_model');//加载模型   
  42.    
  43. //接收数据并存储   
  44. $s = array();   
  45. $num = array();   
  46. $num = $_POST['zp_num'];   
  47. $s['siteid']         = SITEID;   
  48. $s['comname']       = safe_replace($_POST['comname']);   
  49. $s['dw_name']       = safe_replace($_POST['dw_name']);   
  50. $s['dw_department'] = safe_replace($_POST['dw_department']);   
  51. $s['dw_area'] = safe_replace($_POST['dw_area']);   
  52. $s['dw_property'] = safe_replace($_POST['dw_property']);   
  53. $s['dw_economic'] = safe_replace($_POST['dw_economic']);   
  54. $s['dw_contact'] = safe_replace($_POST['dw_contact']);   
  55. $s['dw_zipcode'] = safe_replace($_POST['dw_zipcode']);   
  56. $s['dw_address'] = safe_replace($_POST['dw_address']);   
  57. $s['dw_telphone'] = safe_replace($_POST['dw_telphone']);   
  58. $s['dw_fax']     = safe_replace($_POST['dw_fax']);   
  59. $s['dw_email'] = safe_replace($_POST['dw_email']);   
  60. $s['zp_hr']   = safe_replace($_POST['zp_hr']);   
  61. $s['zp_tel']   = safe_replace($_POST['zp_tel']);   
  62. $s['zp_email'] = safe_replace($_POST['zp_email']);   
  63. $s['zp_property'] = safe_replace($_POST['zp_property']);   
  64. $s['zp_industry'] = safe_replace($_POST['zp_industry']);   
  65. $s['zp_post']     = safe_replace($_POST['zp_post']);   
  66. $s['zp_area']     = safe_replace($_POST['zp_area']);   
  67. $s['zp_major']   = safe_replace($_POST['zp_major']);   
  68. $s['zp_salary']   = safe_replace($_POST['zp_salary']);   
  69. $s['zp_num']   = array2string($num);   
  70. $s['attr_commercial'] = safe_replace($_POST['attr_commercial']);   
  71. $s['attr_information'] = safe_replace($_POST['attr_information']);   
  72. $s['url'] = 'index.php?m=qiye&c=index&a=show&id=`id`';   
  73. $s['ip'] = $this->ip;   
  74. $s['inputtime'] = SYS_TIME;   
  75. $s['updatetime'] = SYS_TIME;   
  76.    
  77.   $comid = $db->insert($s,true);   
  78. if($comid){   
  79. showmessage(L('qiye_success'), "?m=qiye&c=index&a=init&siteid=$siteid");   
  80. }   
  81.   } else {   
  82. //默认显示申请页面   
  83.   pc_base::load_sys_class('form''', 0);   
  84.   $SEO = seo(SITEID, '', L('qiye_apply'), '''');   
  85.     include template('qiye''register');   
  86.   }   
  87. }   
  88.    
  89. }   
  90. ?> 

4.后台控制器 qiye.php,class名必须与文件名一致,路径:F:/www/phpcms/modules/qiye/qiye.php:

  1. <?php   
  2. defined('IN_PHPCMS'or exit('No permission resources.');   
  3. pc_base::load_app_class('admin','admin',0);   
  4. class qiye extends admin {   
  5. private $db;   
  6. function __construct() {   
  7. parent::__construct();   
  8. $this->db = pc_base::load_model('qiye_model');   
  9. $siteid = isset($_GET['siteid']) ? intval($_GET['siteid']) : get_siteid();   
  10.   define("SITEID",$siteid);   
  11. }   
  12.    
  13. //默认动作   
  14. public function init() {   
  15. $where = array('siteid'=>$this->get_siteid(),'status'=>0);   
  16.   $page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1;   
  17. $infos = $this->db->listinfo($where,$order = 'listorder DESC',$page$pages = '9');   
  18. $pages = $this->db->pages;   
  19. extract($infos);   
  20. include $this->admin_tpl('list');   
  21. }   
  22. public function show() {   
  23. $comid = intval($_GET['comid']);   
  24. if(!$comid) showmessage(L('information_does_not_exist'),'blank');   
  25. $infos = $this->db->get_one(array('comid'=>$comid));   
  26. if(!$infos) showmessage(L('info_does_not_exists'),'blank');   
  27. extract($infos);   
  28. include $this->admin_tpl('show');   
  29. }   
  30. public function list_pass() {   
  31. $where = array('siteid'=>$this->get_siteid(),'status'=>1);   
  32.   $page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1;   
  33. $infos = $this->db->listinfo($where,$order = 'listorder DESC',$page$pages = '9');   
  34. $pages = $this->db->pages;   
  35. extract($infos);   
  36. include $this->admin_tpl('list_pass');   
  37. }   
  38. public function pass() {   
  39. if((!isset($_GET['comid']) || emptyempty($_GET['comid'])) && (!isset($_POST['comid']) || emptyempty($_POST['comid']))) {   
  40. showmessage(L('illegal_parameters'), HTTP_REFERER);   
  41. else {    
  42. $comid = intval($_GET['comid']);   
  43. if($comid < 1) return false;   
  44. $result = $this->db->update(array('status'=>'1'),array('comid'=>$comid));   
  45. $infos = $this->db->get_one(array('comid'=>$comid));   
  46. if($result){   
  47. if(is_email($infos['zp_email'])){   
  48. pc_base::load_sys_func('mail');   
  49. $siteinfo = siteinfo(SITEID);   
  50. $sitename = $siteinfo['site_title'];   
  51. $toemail = $infos['zp_email']; //发送通知邮件   
  52. $subject = '信息审核通知';   
  53. $message .= '尊敬的'.$infos['zp_hr'].':<br />     您好!';   
  54. $message .= '很高兴的通知您,您在'.date('Y年m月d日',$infos['inputtime']).'在我们网站['.$sitename.']发布的信息已经通过审核。';   
  55. $message .= '<br /><br />祝好!<br /><br />-----------------------------------------<br />';   
  56. $message .= '<font color=green>这是一封由系统发送的邮件,请勿回复此邮件!</font>';   
  57. sendmail($toemail,$subject,$message);   
  58. }   
  59. exit('1');   
  60. else {   
  61. exit('0');   
  62. }   
  63. }   
  64. }   
  65.   public function listorder() {   
  66. if(isset($_POST['dosubmit'])) {   
  67. foreach($_POST['listorders'as $comid => $listorder) {   
  68. $this->db->update(array('listorder'=>$listorder),array('comid'=>$comid));   
  69. }   
  70. showmessage(L('operation_success'),HTTP_REFERER);   
  71. }   
  72. }   
  73.    
  74.    
  75. public function delete() {   
  76.   if((!isset($_GET['comid']) || emptyempty($_GET['comid'])) && (!isset($_POST['comid']) || emptyempty($_POST['comid']))) {   
  77. showmessage(L('illegal_parameters'), HTTP_REFERER);   
  78. else {   
  79. if(is_array($_POST['comid'])){ //1.批量删除   
  80. foreach($_POST['comid'as $comid) {   
  81. $this->db->delete(array('comid'=>$comid));   
  82. //删除附件   
  83. if(pc_base::load_config('system','attachment_stat')) {   
  84. $this->attachment_db = pc_base::load_model('attachment_model');   
  85. $this->attachment_db->api_delete($comid);   
  86. }   
  87. }   
  88. showmessage(L('operation_success'),'?m=qiye&c=qiye');   
  89. }else//2.单条删除   
  90. $comid = intval($_GET['comid']);   
  91. if($comid < 1) return false;   
  92. $result = $this->db->delete(array('comid'=>$comid));   
  93. //删除附件   
  94. if(pc_base::load_config('system','attachment_stat')) {   
  95. $this->attachment_db = pc_base::load_model('attachment_model');   
  96. $this->attachment_db->api_delete($comid);   
  97. }   
  98. if($result){   
  99. exit('1');   
  100. showmessage(L('operation_success'),'?m=qiye&c=qiye');   
  101. }else {   
  102. exit('0');   
  103. showmessage(L("operation_failure"),'?m=qiye&c=qiye');   
  104. }  //开源软件:Vevb.com 
  105. }   
  106. showmessage(L('operation_success'), HTTP_REFERER);   
  107. }   
  108. }   
  109.    
  110. public function setting() {   
  111.   include $this->admin_tpl('setting');   
  112. }   
  113.    
  114.    
  115. }   
  116. ?> 

5.PC标签方法:qiye_tag.class.php,为模板数据调用而设置,路径:F:/www/phpcms/modules/qiye/classes/qiye_tag.class.php:

  1. <?php   
  2. defined('IN_PHPCMS'or exit('No permission resources.');   
  3. class qiye_tag {   
  4.   private $db;   
  5. public function __construct() {   
  6. $this->db = pc_base::load_model('qiye_model');   
  7.   }   
  8. public function lists($data) {   
  9. $siteid = $data['siteid'] ? intval($data['siteid']) : get_siteid();   
  10.    
  11. $sql = array('siteid'=>$siteid);   
  12.   $data = $this->db->select($sql'*'$data['limit'], $data['order']);   
  13. return $data;   
  14. }   
  15. public function pc_tag() {   
  16. $sites = pc_base::load_app_class('sites','admin');   
  17. $sitelist = $sites->pc_tag_list();   
  18. return array(   
  19. 'action'=>array('lists'=>L('lists''''qiye')),   
  20. 'lists'=>array(   
  21. 'catid'=>array('name'=>L('catid''''qiye'),'htmltype'=>'input_select_category','data'=>array('type'=>0),'validator'=>array('min'=>1)),   
  22. 'order'=>array(   
  23. 'name'=>L('sort''''qiye'),   
  24. 'htmltype'=>'select',   
  25. 'data'=>array(   
  26. 'id DESC'=>L('id_desc''''qiye'),   
  27. 'inputtime DESC'=>L('inputtime_desc''''qiye'),   
  28. 'updatetime DESC'=>L('updatetime_desc''''qiye'),   
  29. 'listorder ASC'=>L('listorder_asc''''qiye')   
  30. )   
  31. )   
  32. ),   
  33. );   
  34. }   
  35. }   
  36. ?> 

这里设置了一个方法,lists内容列表,在模版的时候调用如下:

{pc:qiye action="lists" catid="$catid"order="listorder desc" num="8"}

6.函数方法库

functions,因为我这里都用到的是系统的方法,所以里面是空的.

7.模块安装文件夹地址 F:/www/phpcms/modules/qiye/install

7.1 语言文件 qiye.lang.php(我这里只做了中文的语言),路径:F:/www/phpcms/modules/qiye/install/languages/zh-cn/qiye.lang.php:

  1. <?php   
  2. $LANG['qiye_apply'] = '企业服务申请';   
  3. $LANG['qiye_noname'] = '企业名称不能为空!';   
  4. $LANG['qiye_success'] = '申请填写成功!';   
  5.    
  6. $LANG['comname'] = '单位名称';   
  7. $LANG['attr_commercial'] = '营业执照';   
  8. $LANG['dw_name'] = '签约名称';   
  9. $LANG['dw_department'] = '隶属部门';   
  10. $LANG['dw_area'] = '单位地区';   
  11. $LANG['dw_property'] = '单位性质';   
  12. $LANG['dw_contact'] = '信息负责人';   
  13. $LANG['dw_telphone'] = '负责人手机号';   
  14. $LANG['zp_email'] = '负责人邮箱';   
  15. $LANG['attr_information'] = '招聘信息';   
  16. $LANG['qiye_download'] = '点击下载';   
  17. $LANG['qiye_control'] = '操作';   
  18. $LANG['qiye_look'] = '查看';   
  19. $LANG['click_open'] = '点击下载';   
  20. $LANG['remove_all_selected'] = '删除选择';   
  21. $LANG['confirm_del'] = '确定删除吗?';   
  22. $LANG['del_confirm'] = '确定删除吗?';   
  23. $LANG['delete'] = '删除';   
  24. $LANG['pass'] = '通过';   
  25. $LANG['pass_true'] = '确定通过吗?';   
  26. ?> 

7.2 前台模版文件夹,路径:F:/www/phpcms/modules/qiye/install/templates

name.inc.php 模版安装文件,安装模块时把模版文件复制到默认的default目录下的控制文件:

  1. <?php    
  2. defined('IN_PHPCMS'or exit('Access Denied');   
  3. defined('INSTALL'or exit('Access Denied');   
  4. return array (   
  5. 'index.html' => '企业信息首页',   
  6. 'list.html' => '企业信息列表页',   
  7. 'show.html' => '企业信息内容页',   
  8. 'register.html' => '企业信息申请页',   
  9.     );   
  10. ?> 

7.3 模块配置文件 config.inc.php地址 F:/www/phpcms/modules/qiye/install/config.inc.php:

  1. <?php    
  2. defined('IN_PHPCMS'or exit('Access Denied');   
  3. defined('INSTALL'or exit('Access Denied');   
  4. $module = 'qiye';   
  5. $modulename = '企业服务';   
  6. $introduce = '企业服务模块';   
  7. $author = 'novalue';   
  8. $authorsite = 'http://www.liaochuanyou.name/';   
  9. $authoremail = 'novalue@qq.com';   
  10. ?> 

7.4模块菜单扩展文件 extention.inc.php(添加后台菜单栏功能),路径:F:/www/phpcms/modules/qiye/install/extention.inc.php:

  1. <?php   
  2. defined('IN_PHPCMS'or exit('Access Denied');   
  3. defined('INSTALL'or exit('Access Denied');   
  4.    
  5. $parentid = $menu_db->insert(array('name'=>'qiye''parentid'=>29, 'm'=>'qiye''c'=>'qiye''a'=>'init''data'=>'''listorder'=>0, 'display'=>'1'), true);   
  6. $menu_db->insert(array('name'=>'qiye_list''parentid'=>$parentid'm'=>'qiye''c'=>'qiye''a'=>'list_pass''data'=>'''listorder'=>1, 'display'=>'1'));   
  7. $menu_db->insert(array('name'=>'qiye_setting''parentid'=>$parentid'm'=>'qiye''c'=>'qiye''a'=>'setting''data'=>'''listorder'=>2, 'display'=>'1'));   
  8. $language = array('qiye'=>'企业服务','qiye_list'=>'审核通过','qiye_setting'=>'模块配置');   
  9. ?> 

7.5 安装文件夹下的 model.php,安装模块时返回所使用的模型名,路径:F:/www/phpcms/modules/qiye/install/model.php:

  1. <?php     
  2. defined('IN_PHPCMS'or exit('Access Denied');   
  3. defined('INSTALL'or exit('Access Denied');   
  4. return array('qiye');   
  5. ?> 

7.6 安装文件夹下的 module.sql,里面只有一句sql语句,路径:F:/www/phpcms/modules/qiye/install/module.sql:

  1. INSERT INTO `phpcms_module` VALUES ('qiye''企业服务''''0''1.0''企业服务''''0''0''2012-06-18''2012-06-18'); 

7.7 企业服务模块安装数据库文件 qiye.sql,路径:F:/www/phpcms/modules/qiye/install/qiye.sql:

  1. DROP TABLE IF EXISTS `phpcms_qiye`;   
  2. CREATE TABLE `phpcms_qiye` (   
  3. `comid`  int(11) NOT NULL AUTO_INCREMENT ,   
  4. `siteid`  int(11) NULL DEFAULT NULL ,   
  5. `comname`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位名称' ,   
  6. `dw_name`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '签约名称' ,   
  7. `dw_department`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '隶属部门' ,   
  8. `dw_area`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位地区' ,   
  9. `dw_property`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位性质' ,   
  10. `dw_economic`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '经济类型' ,   
  11. `dw_contact`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位联系人' ,   
  12. `dw_zipcode`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位邮编' ,   
  13. `dw_address`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位地址' ,   
  14. `dw_telphone`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位电话' ,   
  15. `dw_fax`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位传真' ,   
  16. `dw_email`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位邮箱' ,   
  17. `zp_hr`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '负责人' ,   
  18. `zp_tel`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,   
  19. `zp_email`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,   
  20. `zp_property`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,   
  21. `zp_industry`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,   
  22. `zp_post`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,   
  23. `zp_area`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,   
  24. `zp_major`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,   
  25. `zp_salary`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '招聘薪水' ,   
  26. `zp_num`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '招聘人数' ,   
  27. `attr_commercial`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '营业执照' ,   
  28. `attr_information`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '招聘信息' ,   
  29. `url`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,   
  30. `ip`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,   
  31. `status`  int(11) NULL DEFAULT 0 ,   
  32. `listorder`  int(11) NULL DEFAULT 0 ,   
  33. `inputtime`  int(11) NULL DEFAULT NULL ,   
  34. `updatetime`  int(11) NULL DEFAULT NULL ,   
  35. PRIMARY KEY (`comid`)   
  36. )   
  37. ENGINE=InnoDB DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=32 ROW_FORMAT=COMPACT; 

8.后台管理模版文件,路径:F:/www/phpcms/modules/qiye/templates/

9.模块卸载文件,路径:F:/www/phpcms/modules/qiye/uninstall

三个文件extention.inc.php、qiye.sql、model.php里面的语句比较简单,大家可以看其他模块的写法,修改里面对应的模块名即可.

10.模型的model,这里和上面要注意了,不在同一个目录下面了,在系统的model目录了($ _ $)),路径:F:/www/phpcms/model/qiye_model.class.php:

  1. <?php   
  2. defined('IN_PHPCMS'or exit('No permission resources.');   
  3. pc_base::load_sys_class('model''', 0);   
  4. class qiye_model extends model {   
  5. function __construct() {   
  6. $this->db_config = pc_base::load_config('database');   
  7. $this->db_setting = 'default';   
  8. $this->table_name = 'qiye';   
  9. parent::__construct();   
  10. }   
  11. }   
  12. ?>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表