當前位置:首頁 > CMS教程 > phpcms > 正文

自己動手構建一個企業服務模塊

模塊功能分析:企業服務,企業填寫招聘申請表,管理審核之后,展示作為招聘通知的功能。

1.文件分布:

 

modules文件夾和model文件夾,這是我們的文件范圍。在modules下建立qiye這個文件夾;地址:F:\www\phpcms\modules\qiye

 

2.實例圖:

\

3.前臺控制器 index.php(class名必須與文件名一致),路徑:F:\www\phpcms\modules\qiye\index.php

 

[php] view plain copy
 
 print?
  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

 

 

[php] view plain copy
 
 print?
  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']) || empty($_GET['comid'])) && (!isset($_POST['comid']) || empty($_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']) || empty($_GET['comid'])) && (!isset($_POST['comid']) || empty($_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. }  
  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

 

 

[php] view plain copy
 
 print?
  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. }  

 

這里設置了一個方法,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
[php] view plain copy
 
 print?
  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目錄下的控制文件。

 

[php] view plain copy
 
 print?
  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
 
[php] view plain copy
 
 print?
  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 = '[email protected]';  
  10. ?>  

7.4模塊菜單擴展文件 extention.inc.php(添加后臺菜單欄功能),路徑:F:\www\phpcms\modules\qiye\install\extention.inc.php

 

 

[php] view plain copy
 
 print?
  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

 

 

[php] view plain copy
 
 print?
  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
[php] view plain copy
 
 print?
  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
[php] view plain copy
 
 print?
  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
[php] view plain copy
 
 print?
  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. ?>  
  13.  

上一篇:phpcms數據庫操作 下一篇:最后一頁
四川快乐12走势图基本