日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

不知道各位有沒有在使用phpcms過程中發現,建模型字段時單選復選的值只能手寫,不能從其他表獲取這個問題;在這個方面,五指CMS更勝一籌,在字段的時候有“自定義SQL”這一選項。只要略加修改,也可以實現同樣的功能。

解決方案:

方案一:

(1)在phpcms/modules/content/sitemodel_field.php文件下,add方法和edit方法中增加(注意看一下代碼,要增加在給$setting重復賦值之前)

$field_type = $_POST['info']['formtype'];
$setting = $_POST['setting'] ?  $_POST['setting'] : '';
if ($field_type == 'box' && !empty($setting)) {
    // 如果是選項
    // 判斷選項值是否是SQL語句
    if(strpos($setting['options'],'|') == false){
        $options = $this->db->query($setting['options']);
        $option_arr = $this->db->fetch_array();
        $option_str = "";
        foreach ($option_arr as $key => $value) {
            $option_str .= $value['title'].'|'.$value['id']."\r\n";
        }
        $_POST['setting']['options'] = rtrim($option_str);
        $_POST['setting']['sql'] = $setting['options'];
    }
}

(2)在phpcms/modules/content/fields/box/field_edit_form.inc.php文件下修改文本框顯示值,并在新增和編輯頁面增加提醒語句

<tr> 
    <td width="100">選項列表</td>
    <td><textarea name="setting[options]" rows="2" cols="20" id="options" style="height:100px;width:200px;"><?php if(!empty($setting['sql'])) { echo $setting['sql']; } else { echo $setting['options']; } ?></textarea><br><span style="color: grey;">如果需要其他表數據,直接填寫SQL語句,格式按照"SELECT `filed1` as id,`field2` as title FROM table_name WHERE ..."</span></td>
</tr>

效果展示:

(1)字段新增與編輯


PHPCMS模型字段單選復選只能填寫不能使用SQL語句查詢


(2)內容管理


PHPCMS模型字段單選復選只能填寫不能使用SQL語句查詢


方案二:與方案一相同原理,不直接填寫SQL,將SQL整理成參數形式

(1)在 phpcms/modules/content/fields/box/field_edit_form.inc.php 文件下,增加是否是SQL語句的選項按鈕

<tr>
    <td width="100">是否為SQL</td>
    <td>
        <input type="radio" name="setting[is_sql]" value="1" <?php if($setting['is_sql']) echo 'checked';?> /> 是
        <input type="radio" name="setting[is_sql]" value="0" <?php if(!$setting['is_sql']) echo 'checked';?> /> 否
    </td>
</tr>
<tr> 
    <td width="100">選項列表</td>
    <td><textarea name="setting[options]" rows="2" cols="20" id="options" style="height:100px;width:400px;"><?php if(!empty($setting['sql'])) { echo $setting['sql']; } else { echo $setting['options']; } ?></textarea>
    </td>  
</tr>

(2)在phpcms/modules/content/sitemodel_field.php文件下,add方法和edit方法中增加(注意看一下代碼,要增加在給$setting重復賦值之前)

$setting = $_POST['setting'] ?  $_POST['setting'] : '';
if ($field_type == 'box' && !empty($setting)) {
    // 如果是選項
    // 判斷選項值是否是SQL語句
    if($setting['is_sql'] == 1){
        $options = explode("\n",$setting['options']);
        $sql = "SELECT ".$options[1]." FROM ".$options[0];
        if (!empty($options[2])) $sql .= " WHERE ".$options[2];//條件
        if (!empty($options[3])) $sql .= " ORDER BY ".$options[3];//排序
        if (!empty($options[4])) $sql .= " LIMIT ".$options[4];//條數限制
        
        $option = $this->db->query($sql);
        $option_array = $this->db->fetch_array();
        $option_str = "";
        foreach ($option_array as $key => $value) {
            $option_str .= $value['title'].'|'.$value['id']."\r\n";
        }
        $_POST['setting']['options'] = rtrim($option_str);
        $_POST['setting']['sql'] = $setting['options'];
    }
}



分享到:
標簽:PHPCMS 模型字段單選復選 不能使用SQL語句查詢
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定