今天織夢無憂接了一個(gè)關(guān)于調(diào)用 城市聯(lián)動 的一個(gè)單子。如下圖
今天就把自己完整的操作過程記錄下來,分享給大家來使用
我們后臺開始從 核心--自定義表單開始,添加的時(shí)候,發(fā)現(xiàn)沒有找到 聯(lián)動的 選項(xiàng)。
我們就要找找 自定義表單 添加和編輯的文檔。diy_field_add.htm和diy_field_edit.htm
文件路徑 都是在 默認(rèn) /dede/templets/下。分別打開會發(fā)現(xiàn):聯(lián)動調(diào)用 給隱藏了,只需要去掉注釋就可以了
diy_field_add.htm 在146處 diy_field_edit.htm 在127處,如下圖
去掉注釋后,重新添加 所在城市,就出現(xiàn)聯(lián)動了。但是我們要找到城市的 聯(lián)動值 也就是
緩存組名 才可以。
核心---頻道模型--聯(lián)動類別管理 --地區(qū) 就看到 聯(lián)動組名 為:
nativeplace
我們從新返回自定義表單
添加所在城市:
其中注意:
字段名稱 一定要填寫:
nativeplace 數(shù)據(jù)類型 聯(lián)動類型,否則會調(diào)用不出來
確定保存,前臺調(diào)用就可以了。
前臺可以了不過發(fā)現(xiàn),后臺獲得的數(shù)據(jù)聯(lián)動類型只顯示枚舉值
1、找到dede/templets/ddiy_list.htm文件中(大約在41行):
else if($fielddata[1]=='addon')
{
$fields[$field] = "<a href='{$fields[$field]}' target='_blank'><img src='images/channeladd.gif' border='0' /> 其它附件</a>";
}
|
在下面加入
//聯(lián)動類型顯示修正開始
else if($fielddata[1]=='stepselect')
{
$db->Execute('me',"SELECT * FROM `dede_stepselect` WHERE egroup='{$field}'");
while($arr = $db->GetArray(me))
{
$egroup = $arr['egroup'];
}
$fields[$field] = Getenums("{$fields[$field]}",$egroup);
}
//聯(lián)動類型顯示修正結(jié)束
|
在本文件中繼續(xù)找到: {/dede:datalist}
在下面加入一下代碼:
<?php
function Getenums($evalue = 0, $egroup)
{
if (!isset($GLOBALS['em_' . $egroup . 's'])) {
$cachefile = DEDEDATA . '/enums/' . $egroup . '.php';
if (!file_exists($cachefile)) {
require_once DEDEINC . '/enums.func.php';
WriteEnumsCache();
}
if (!file_exists($cachefile)) {
return '';
} else {
require_once $cachefile;
}
}
if ($evalue >= 500) {
if ($evalue % 500 == 0) {
return isset($GLOBALS['em_' . $egroup . 's'][$evalue]) ? $GLOBALS['em_' . $egroup . 's'][$evalue] : '';
} else {
if (preg_match('#([0-9]{1,})\\.([0-9]{1,})#', $evalue, $matchs)) {
$esonvalue = $matchs[1];
$etopvalue = $esonvalue - $esonvalue % 500;
$esecvalue = preg_replace('/(?<=\.)[0]+/', '', $evalue);
$GLOBALS['em_' . $egroup . 's'][$etopvalue] = empty($GLOBALS['em_' . $egroup . 's'][$etopvalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$etopvalue];
$GLOBALS['em_' . $egroup . 's'][$esonvalue] = empty($GLOBALS['em_' . $egroup . 's'][$esonvalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$esonvalue];
$GLOBALS['em_' . $egroup . 's'][$esecvalue] = empty($GLOBALS['em_' . $egroup . 's'][$esecvalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$esecvalue];
return $GLOBALS['em_' . $egroup . 's'][$etopvalue] . ' - ' . $GLOBALS['em_' . $egroup . 's'][$esonvalue] . ' - ' . $GLOBALS['em_' . $egroup . 's'][$esecvalue];
}
else
{
$elimit = $evalue % 500;
$erevalue = $evalue - $elimit;
$GLOBALS['em_' . $egroup . 's'][$erevalue] = empty($GLOBALS['em_' . $egroup . 's'][$erevalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$erevalue];
$GLOBALS['em_' . $egroup . 's'][$evalue] = empty($GLOBALS['em_' . $egroup . 's'][$evalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$evalue];
return $GLOBALS['em_' . $egroup . 's'][$erevalue] . ' - ' . $GLOBALS['em_' . $egroup . 's'][$evalue];
}
}
}
}
?>
|