ppypp伦理天堂,91手机在线视频,免费在线观看黄色毛片,夜夜穞天天穞狠狠穞AV美女按摩

適用于3.5.1以上版本

POSCMS自帶的字段類別有:

image.png

除了這些字段外,還需要一些特殊字段來滿足項目的需求怎么辦?開發者可以使用DIY類別來寫一些簡單化的程序,如果過于復雜的字段,DIY也滿足不了的。

或者是這種情況,當默認的類別需要自己修改調整時,怎么辦?因為不建議直接修改poscms目錄文件,會影響后期的程序穩定性和升級問題。

本教材來講解如何定義自己的字段類別


自定義字段類別目錄:

diy/my/field/

默認是未創建的,開發者可以創建這個目錄。


自定義字段類別文件命名:

diy/my/field/Text2.php

首字母必須大寫


自定義字段類別內容格式:

<?php


class F_Text2 extends A_Field {
   
   /**
     * 構造函數
     */
    public function __construct() {
      parent::__construct();
      $this->name = IS_ADMIN ? fc_lang('單行文本') : ''; // 字段名稱
      $this->fieldtype = TRUE; // TRUE表全部可用字段類型,自定義格式為 array('可用字段類型名稱' => '默認長度', ... )
      $this->defaulttype = 'VARCHAR'; // 當用戶沒有選擇字段類型時的缺省值
    }
   
   /**
    * 字段相關屬性參數
    *
    * @param  array  $value 值
    * @return  string
    */
   public function option($option) {
        
   }

    /**
     * 字段入庫值
     *
     * @param  array  $field 字段信息
     * @return  void
     */
    public function insert_value($field) {
      // 格式化入庫值
      $value = $this->ci->post[$field['fieldname']];
      if (in_array($field['setting']['option']['fieldtype'], array('INT', 'TINYINT', 'SMALLINT'))) {
         $this->ci->data[$field['ismain']][$field['fieldname']] = $value ? (int)$value : 0;
      } elseif (in_array($field['setting']['option']['fieldtype'], array('DECIMAL', 'FLOAT'))) {
         $this->ci->data[$field['ismain']][$field['fieldname']] = $value ? (float)$value : 0;
      } elseif ($field['setting']['option']['fieldtype'] == 'MEDIUMINT') {
         $this->ci->data[$field['ismain']][$field['fieldname']] = $value ? $value : 0;
      } else {
         $this->ci->data[$field['ismain']][$field['fieldname']] = htmlspecialchars($value);
      }
    }

   /**
    * 字段表單輸入
    *
    * @param  string $cname 字段別名
    * @param  string $name  字段名稱
    * @param  array  $cfg   字段配置
    * @param  array  $value 值
    * @param  array  $id       當前內容表的id(表示非發布操作)
    * @return  string
    */
   public function input($cname, $name, $cfg, $value = NULL, $id = 0) {
      // 字段顯示名稱
      $text = (isset($cfg['validate']['required']) && $cfg['validate']['required'] == 1 ? '<font color="red">*</font>' : '').''.$cname.':';
        // 是否密碼框
        $type = isset($cfg['option']['ispwd']) && $cfg['option']['ispwd'] ? 'password' : 'text';
      // 表單寬度設置
        if (IS_MOBILE && empty($cfg['option']['is_mb_auto'])) {
            $width = '100%';
        } else {
            $width = isset($cfg['option']['width']) && $cfg['option']['width'] ? $cfg['option']['width'] : '200';
        }
      $style = 'style="width:'.$width.(is_numeric($width) ? 'px' : '').';"';
      // 表單附加參數
      $attr = isset($cfg['validate']['formattr']) && $cfg['validate']['formattr'] ? $cfg['validate']['formattr'] : '';
      // 字段提示信息
      $tips = ($name == 'title' && APP_DIR) || (isset($cfg['validate']['tips']) && $cfg['validate']['tips']) ? '<span class="help-block" id="dr_'.$name.'_tips">'.$cfg['validate']['tips'].'</span>' : '';
      // 字段默認值
      $value = (@strlen($value) ? $value : $this->get_default_value($cfg['option']['value']));
      // 禁止修改
        if (!IS_ADMIN && $id && $value && isset($cfg['validate']['isedit']) && $cfg['validate']['isedit']) {
            $str = '<input type="hidden" name="data['.$name.']" id="dr_'.$name.'" value="'.$value.'"> <div class="form-control-static">'.$value.'</div>'.($cfg['validate']['append'] ? $cfg['validate']['append'] : '');
        } else {
            // 當字段必填時,加入html5驗證標簽
            $required = isset($cfg['validate']['required']) && $cfg['validate']['required'] == 1 ? ' required="required"' : '';
            if (in_array($name, array('order_quantity', 'order_volume'))) {
                $required = '';
            }
         $str = '<input class="form-control" type="'.$type.'" name="data['.$name.']" id="dr_'.$name.'" value="'.$value.'" '.$style.$required.' '.$attr.' />';
         if ($cfg['validate']['append']) {
            $str = '<label>'.$str.'</label>'.$cfg['validate']['append'];
         }
        }
      return $this->input_format($name, $text, $str.$tips);
   }
   
}

上面類是按默認的Text.php類型文件。


為模塊單獨創建自定義字段類別目錄:

diy/app/模塊目錄/config/field/***.php

這樣定義的話,這個字段只能在本模塊的自定義字段中有效!

文檔最后更新時間:2019-03-11 07:58:17