zoukankan      html  css  js  c++  java
  • PHPCMS v9构建模块

    下面开始第一个实例,企业服务模块,这是个比较简单的模块,做一个抛砖的作用。
     
    模块功能分析:企业服务,企业填写招聘申请表,管理审核之后,展示作为招聘通知的功能。
     
    1.文件分布
    modules文件夹和model文件夹,这是我们的文件范围。在modules下建立qiye这个文件夹
    地址:F:wwwphpcmsmodulesqiye
     
    2.实例图
    PHPCMS <wbr>v9构建模块 <wbr>- <wbr>实例之企业服务模块

    上面的文件作用,在之前第一篇文章已经介绍过了,这里我再说一下,index.php 和 qiyi.php 的作用,分别是前台和后台的控制器control。
     
    3.前台控制器 index.php(class名必须与文件名一致)
     
    地址:F:wwwphpcmsmodulesqiyeindex.php
     
     
    <?php
    defined('IN_PHPCMS') or exit('No permission resources.');
    class index {
    private $db,$ip;
    function __construct() {
    pc_base::load_app_func('global');
    $this->db = pc_base::load_model('qiye_model');
    $this->ip = ip();
    $siteid = isset($_GET['siteid']) ? intval($_GET['siteid']) : get_siteid();
      define("SITEID",$siteid);
      }
    public function init() {
    $siteid = SITEID;
    $page = intval($_GET['page'])<=0 ? 1 :  intval($_GET['page']);
          include template('qiye', 'index');
    }
    public function lists() {
      $siteid = SITEID;
      $page = intval($_GET['page']);
    $page = max($page,1);
    $r = $this->db->select(array('siteid'=>$siteid));
    if($r) extract($r);
          include template('qiye', 'list');
    }
    public function show(){
    $siteid = SITEID;
    $comid = intval($_GET['comid']);
     
    if(!$comid) showmessage(L('information_does_not_exist'),'blank');
    $r = $this->db->get_one(array('comid'=>$comid));
    if(!$r) showmessage(L('info_does_not_exists'),'blank');
    extract($r);
    include template('qiye', 'show');
      }
    public function reg(){
    if(isset($_POST['comname'])){
    //如果用户提交申请
      if($_POST['comname']==''){
      showmessage(L('qiye_noname'),"?m=qiye&c=index&a=reg&siteid=$siteid");
      }
      $db = pc_base::load_model('qiye_model');//加载模型
     
    //接收数据并存储
    $s = array();
    $num = array();
    $num = $_POST['zp_num'];
    $s['siteid']         = SITEID;
    $s['comname']       = safe_replace($_POST['comname']);
    $s['dw_name']       = safe_replace($_POST['dw_name']);
    $s['dw_department'] = safe_replace($_POST['dw_department']);
    $s['dw_area'] = safe_replace($_POST['dw_area']);
    $s['dw_property'] = safe_replace($_POST['dw_property']);
    $s['dw_economic'] = safe_replace($_POST['dw_economic']);
    $s['dw_contact'] = safe_replace($_POST['dw_contact']);
    $s['dw_zipcode'] = safe_replace($_POST['dw_zipcode']);
    $s['dw_address'] = safe_replace($_POST['dw_address']);
    $s['dw_telphone'] = safe_replace($_POST['dw_telphone']);
    $s['dw_fax']     = safe_replace($_POST['dw_fax']);
    $s['dw_email'] = safe_replace($_POST['dw_email']);
    $s['zp_hr']   = safe_replace($_POST['zp_hr']);
    $s['zp_tel']   = safe_replace($_POST['zp_tel']);
    $s['zp_email'] = safe_replace($_POST['zp_email']);
    $s['zp_property'] = safe_replace($_POST['zp_property']);
    $s['zp_industry'] = safe_replace($_POST['zp_industry']);
    $s['zp_post']     = safe_replace($_POST['zp_post']);
    $s['zp_area']     = safe_replace($_POST['zp_area']);
    $s['zp_major']   = safe_replace($_POST['zp_major']);
    $s['zp_salary']   = safe_replace($_POST['zp_salary']);
    $s['zp_num']   = array2string($num);
    $s['attr_commercial'] = safe_replace($_POST['attr_commercial']);
    $s['attr_information'] = safe_replace($_POST['attr_information']);
    $s['url'] = 'index.php?m=qiye&c=index&a=show&id=`id`';
    $s['ip'] = $this->ip;
    $s['inputtime'] = SYS_TIME;
    $s['updatetime'] = SYS_TIME;
     
      $comid = $db->insert($s,true);
    if($comid){
    showmessage(L('qiye_success'), "?m=qiye&c=index&a=init&siteid=$siteid");
    }
      } else {
    //默认显示申请页面
      pc_base::load_sys_class('form', '', 0);
      $SEO = seo(SITEID, '', L('qiye_apply'), '', '');
        include template('qiye', 'register');
      }
    }
     
    }
    ?>
     
    4.后台控制器 qiye.php(class名必须与文件名一致)
     
    地址:F:wwwphpcmsmodulesqiyeqiye.php
     
    <?php
    defined('IN_PHPCMS') or exit('No permission resources.');
    pc_base::load_app_class('admin','admin',0);
    class qiye extends admin {
    private $db;
    function __construct() {
    parent::__construct();
    $this->db = pc_base::load_model('qiye_model');
    $siteid = isset($_GET['siteid']) ? intval($_GET['siteid']) : get_siteid();
      define("SITEID",$siteid);
    }
     
    //默认动作
    public function init() {
    $where = array('siteid'=>$this->get_siteid(),'status'=>0);
      $page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1;
    $infos = $this->db->listinfo($where,$order = 'listorder DESC',$page, $pages = '9');
    $pages = $this->db->pages;
    extract($infos);
    include $this->admin_tpl('list');
    }
    public function show() {
    $comid = intval($_GET['comid']);
    if(!$comid) showmessage(L('information_does_not_exist'),'blank');
    $infos = $this->db->get_one(array('comid'=>$comid));
    if(!$infos) showmessage(L('info_does_not_exists'),'blank');
    extract($infos);
    include $this->admin_tpl('show');
    }
    public function list_pass() {
    $where = array('siteid'=>$this->get_siteid(),'status'=>1);
      $page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1;
    $infos = $this->db->listinfo($where,$order = 'listorder DESC',$page, $pages = '9');
    $pages = $this->db->pages;
    extract($infos);
    include $this->admin_tpl('list_pass');
    }
    public function pass() {
    if((!isset($_GET['comid']) || empty($_GET['comid'])) && (!isset($_POST['comid']) || empty($_POST['comid']))) {
    showmessage(L('illegal_parameters'), HTTP_REFERER);
    } else { 
    $comid = intval($_GET['comid']);
    if($comid < 1) return false;
    $result = $this->db->update(array('status'=>'1'),array('comid'=>$comid));
    $infos = $this->db->get_one(array('comid'=>$comid));
    if($result){
    if(is_email($infos['zp_email'])){
    pc_base::load_sys_func('mail');
    $siteinfo = siteinfo(SITEID);
    $sitename = $siteinfo['site_title'];
    $toemail = $infos['zp_email']; //发送通知邮件
    $subject = '信息审核通知';
    $message .= '尊敬的'.$infos['zp_hr'].':<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;您好!';
    $message .= '很高兴的通知您,您在'.date('Y年m月d日',$infos['inputtime']).'在我们网站['.$sitename.']发布的信息已经通过审核。';
    $message .= '<br /><br />祝好!<br /><br />-----------------------------------------<br />';
    $message .= '<font color=green>这是一封由系统发送的邮件,请勿回复此邮件!</font>';
    sendmail($toemail,$subject,$message);
    }
    exit('1');
    } else {
    exit('0');
    }
    }
    }
      public function listorder() {
    if(isset($_POST['dosubmit'])) {
    foreach($_POST['listorders'] as $comid => $listorder) {
    $this->db->update(array('listorder'=>$listorder),array('comid'=>$comid));
    }
    showmessage(L('operation_success'),HTTP_REFERER);
    }
    }
     
     
    public function delete() {
      if((!isset($_GET['comid']) || empty($_GET['comid'])) && (!isset($_POST['comid']) || empty($_POST['comid']))) {
    showmessage(L('illegal_parameters'), HTTP_REFERER);
    } else {
    if(is_array($_POST['comid'])){ //1.批量删除
    foreach($_POST['comid'] as $comid) {
    $this->db->delete(array('comid'=>$comid));
    //删除附件
    if(pc_base::load_config('system','attachment_stat')) {
    $this->attachment_db = pc_base::load_model('attachment_model');
    $this->attachment_db->api_delete($comid);
    }
    }
    showmessage(L('operation_success'),'?m=qiye&c=qiye');
    }else{ //2.单条删除
    $comid = intval($_GET['comid']);
    if($comid < 1) return false;
    $result = $this->db->delete(array('comid'=>$comid));
    //删除附件
    if(pc_base::load_config('system','attachment_stat')) {
    $this->attachment_db = pc_base::load_model('attachment_model');
    $this->attachment_db->api_delete($comid);
    }
    if($result){
    exit('1');
    showmessage(L('operation_success'),'?m=qiye&c=qiye');
    }else {
    exit('0');
    showmessage(L("operation_failure"),'?m=qiye&c=qiye');
    }
    }
    showmessage(L('operation_success'), HTTP_REFERER);
    }
    }
     
    public function setting() {
      include $this->admin_tpl('setting');
    }
     
     
    }
    ?>
     
    5.PC标签方法 qiye_tag.class.php (为模版数据调用而设置)
     
    地址: F:wwwphpcmsmodulesqiyeclassesqiye_tag.class.php
     
    <?php
    defined('IN_PHPCMS') or exit('No permission resources.');
    class qiye_tag {
      private $db;
    public function __construct() {
    $this->db = pc_base::load_model('qiye_model');
      }
    public function lists($data) {
    $siteid = $data['siteid'] ? intval($data['siteid']) : get_siteid();
     
    $sql = array('siteid'=>$siteid);
      $data = $this->db->select($sql, '*', $data['limit'], $data['order']);
    return $data;
    }
    public function pc_tag() {
    $sites = pc_base::load_app_class('sites','admin');
    $sitelist = $sites->pc_tag_list();
    return array(
    'action'=>array('lists'=>L('lists', '', 'qiye')),
    'lists'=>array(
    'catid'=>array('name'=>L('catid', '', 'qiye'),'htmltype'=>'input_select_category','data'=>array('type'=>0),'validator'=>array('min'=>1)),
    'order'=>array(
    'name'=>L('sort', '', 'qiye'),
    'htmltype'=>'select',
    'data'=>array(
    'id DESC'=>L('id_desc', '', 'qiye'),
    'inputtime DESC'=>L('inputtime_desc', '', 'qiye'),
    'updatetime DESC'=>L('updatetime_desc', '', 'qiye'),
    'listorder ASC'=>L('listorder_asc', '', 'qiye')
    )
    )
    ),
    );
    }
    }
     
    这里设置了一个方法,lists内容列表。在模版的时候调用如下:
    {pc:qiye action="lists" catid="$catid" order="listorder desc" num="8"}
     
    6.函数方法库 functions (因为我这里都用到的是系统的方法,所以里面是空的)
     
    7.模块安装文件夹 地址 F:wwwphpcmsmodulesqiyeinstall
     
    PHPCMS <wbr>v9构建模块 <wbr>- <wbr>实例之企业服务模块

    7.1 语言文件 qiye.lang.php (我这里只做了中文的语言)
    地址: F:wwwphpcmsmodulesqiyeinstalllanguageszh-cnqiye.lang.php
     
    <?php
    $LANG['qiye_apply'] = '企业服务申请';
    $LANG['qiye_noname'] = '企业名称不能为空!';
    $LANG['qiye_success'] = '申请填写成功!';
     
    $LANG['comname'] = '单位名称';
    $LANG['attr_commercial'] = '营业执照';
    $LANG['dw_name'] = '签约名称';
    $LANG['dw_department'] = '隶属部门';
    $LANG['dw_area'] = '单位地区';
    $LANG['dw_property'] = '单位性质';
    $LANG['dw_contact'] = '信息负责人';
    $LANG['dw_telphone'] = '负责人手机号';
    $LANG['zp_email'] = '负责人邮箱';
    $LANG['attr_information'] = '招聘信息';
    $LANG['qiye_download'] = '点击下载';
    $LANG['qiye_control'] = '操作';
    $LANG['qiye_look'] = '查看';
    $LANG['click_open'] = '点击下载';
    $LANG['remove_all_selected'] = '删除选择';
    $LANG['confirm_del'] = '确定删除吗?';
    $LANG['del_confirm'] = '确定删除吗?';
    $LANG['delete'] = '删除';
    $LANG['pass'] = '通过';
    $LANG['pass_true'] = '确定通过吗?';
    ?>
     
    7.2 前台模版文件夹
    地址: F:wwwphpcmsmodulesqiyeinstall emplates
     
    PHPCMS <wbr>v9构建模块 <wbr>- <wbr>实例之企业服务模块

    name.inc.php 模版安装文件,安装模块时把模版文件复制到默认的default目录下的控制文件。
     
    <?php 
    defined('IN_PHPCMS') or exit('Access Denied');
    defined('INSTALL') or exit('Access Denied');
    return array (
    'index.html' => '企业信息首页',
    'list.html' => '企业信息列表页',
    'show.html' => '企业信息内容页',
    'register.html' => '企业信息申请页',
        );
    ?>
     
    7.3 模块配置文件 config.inc.php 地址 F:wwwphpcmsmodulesqiyeinstallconfig.inc.php
     
    <?php 
    defined('IN_PHPCMS') or exit('Access Denied');
    defined('INSTALL') or exit('Access Denied');
    $module = 'qiye';
    $modulename = '企业服务';
    $introduce = '企业服务模块';
    $author = 'novalue';
    $authorsite = 'http://www.liaochuanyou.name/';
    $authoremail = 'novalue@qq.com';
    ?>
     
     
    7.4 模块菜单扩展文件 extention.inc.php (添加后台菜单栏功能)
    地址:F:wwwphpcmsmodulesqiyeinstallextention.inc.php
     
    <?php
    defined('IN_PHPCMS') or exit('Access Denied');
    defined('INSTALL') or exit('Access Denied');
     
    $parentid = $menu_db->insert(array('name'=>'qiye', 'parentid'=>29, 'm'=>'qiye', 'c'=>'qiye', 'a'=>'init', 'data'=>'', 'listorder'=>0, 'display'=>'1'), true);
    $menu_db->insert(array('name'=>'qiye_list', 'parentid'=>$parentid, 'm'=>'qiye', 'c'=>'qiye', 'a'=>'list_pass', 'data'=>'', 'listorder'=>1, 'display'=>'1'));
    $menu_db->insert(array('name'=>'qiye_setting', 'parentid'=>$parentid, 'm'=>'qiye', 'c'=>'qiye', 'a'=>'setting', 'data'=>'', 'listorder'=>2, 'display'=>'1'));
    $language = array('qiye'=>'企业服务','qiye_list'=>'审核通过','qiye_setting'=>'模块配置');
    ?>
     
    大家知道为什么parentid=29吗?我在前一篇补课时讲过的(因为后台模块菜单的id默认为29)
     
    7.5 安装文件夹下的 model.php (安装模块时返回所使用的模型名)
    地址: F:wwwphpcmsmodulesqiyeinstallmodel.php
     
    <?php  
    defined('IN_PHPCMS') or exit('Access Denied');
    defined('INSTALL') or exit('Access Denied');
    return array('qiye');
    ?>
     
    7.6 安装文件夹下的 module.sql (里面只有一句sql语句
    地址: F:wwwphpcmsmodulesqiyeinstallmodule.sql
     
    INSERT INTO `phpcms_module` VALUES ('qiye', '企业服务', '', '0', '1.0', '企业服务', '', '0', '0', '2012-06-18', '2012-06-18');
     
     
     
    7.7 企业服务模块安装数据库文件 qiye.sql (安装模型的数据库文件,哈哈好啰嗦啊(☆_☆))
    地址: F:wwwphpcmsmodulesqiyeinstallqiye.sql
     
    DROP TABLE IF EXISTS `phpcms_qiye`;
    CREATE TABLE `phpcms_qiye` (
    `comid`  int(11) NOT NULL AUTO_INCREMENT ,
    `siteid`  int(11) NULL DEFAULT NULL ,
    `comname`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位名称' ,
    `dw_name`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '签约名称' ,
    `dw_department`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '隶属部门' ,
    `dw_area`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位地区' ,
    `dw_property`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位性质' ,
    `dw_economic`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '经济类型' ,
    `dw_contact`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位联系人' ,
    `dw_zipcode`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位邮编' ,
    `dw_address`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位地址' ,
    `dw_telphone`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位电话' ,
    `dw_fax`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位传真' ,
    `dw_email`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位邮箱' ,
    `zp_hr`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '负责人' ,
    `zp_tel`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `zp_email`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `zp_property`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `zp_industry`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `zp_post`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `zp_area`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `zp_major`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `zp_salary`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '招聘薪水' ,
    `zp_num`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '招聘人数' ,
    `attr_commercial`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '营业执照' ,
    `attr_information`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '招聘信息' ,
    `url`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `ip`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `status`  int(11) NULL DEFAULT 0 ,
    `listorder`  int(11) NULL DEFAULT 0 ,
    `inputtime`  int(11) NULL DEFAULT NULL ,
    `updatetime`  int(11) NULL DEFAULT NULL ,
    PRIMARY KEY (`comid`)
    )
    ENGINE=InnoDB DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=32 ROW_FORMAT=COMPACT;
     
    8.后台管理模版文件 (后台操作是源码方式并没有使用control和view分离)
    地址:F:wwwphpcmsmodulesqiye emplates
     
    PHPCMS <wbr>v9构建模块 <wbr>- <wbr>实例之企业服务模块
     
    这里需要对应 qiye.php control文件的方法,一个方法一般是一个模版文件(有可能有两个哦 (☆_☆))
     
    这里的命名请看 qiye.php control文件的方法里面include语句里面的对象名。具体内容可以根据其他模块的写法(例如 vote 和 link 模块),大家可以自己去看,因为代码太多我就不帖上来了^*(- -)*^
     
    9.模块卸载文件
    地址:F:wwwphpcmsmodulesqiyeuninstall
     
    三个文件extention.inc.php、qiye.sql、model.php 里面的语句比较简单,大家可以看其他模块的写法,修改里面对应的模块名即可。
     
    10.模型的model (这里和上面要注意了,不在同一个目录下面了,在系统的model目录了($ _ $))
    地址:F:wwwphpcmsmodelqiye_model.class.php
     
     
    <?php
    defined('IN_PHPCMS') or exit('No permission resources.');
    pc_base::load_sys_class('model', '', 0);
    class qiye_model extends model {
    function __construct() {
    $this->db_config = pc_base::load_config('database');
    $this->db_setting = 'default';
    $this->table_name = 'qiye';
    parent::__construct();
    }
    }
    ?>
     
     
    (完)终于写完了,这个ctrl+c 、ctrl+v的工作也不好做啊!
     
    说明:这是我的第一个模型例子,以后大家会看到更多的例子,可能不会讲那么详细了,所以呢这是一个有相关联的系列文字,希望大家细心联系前后文读完他。
  • 相关阅读:
    移动端图片懒加载插件
    Animate.css 教程
    git使用图解
    React-Native学习指南
    react-native 环境配置及hello world
    修改文件后浏览器自动刷新解决方案
    react-native 布局基础
    MongoDB数据库安装及配置环境(windows10系统)
    MongoDb windows环境安装,附百度云链接
    常用的几类npm依赖包管理
  • 原文地址:https://www.cnblogs.com/semcoding/p/3358765.html
Copyright © 2011-2022 走看看