phpcms在添加內容時,有時添加的數據是其他表中數據,比如我現在遇到的一個問題,A欄目是一個用來發(fā)布所有公司介紹的欄目,當前臺的會員注冊被后臺管理員批準可以進入后臺發(fā)布找到A欄目發(fā)布的新聞資訊,這時就不能在A欄目中修改,因為這個新聞資訊是一個動態(tài)的,而是需要做一個B欄目,B欄目添加數據和普通欄目沒區(qū)別,但是現在需要將A欄目和B欄目關聯起來,其實就是兩個表關聯起來,說白了,就是通過主外鍵關聯起來 ,所以,在B欄目中發(fā)布新聞時要對應發(fā)布的是哪家公司的新聞,這時就要在添加內容的頁面的表單里加一個表單框用來選數據關聯起來(比如一個 ),這時就要用到萬能字段,如果說為什么非要用萬能字段,可以參考發(fā)布內容頁面添加相關文章的那個表單,它就是用的萬能字段,接下來,就是重點了
這是phpcms的提示,
{FIELD_VALUE}就是所謂的表單值,可以完全不去在意。這個提示主要看的是在萬能字段中設置自定義表單時name值如何寫,為什么name值是個數組info[自定義的字段名],因為這是在添加數據的時候一個$_POST把所有表單獲取之后用foreach遍歷組成sql語句添加到數據庫。這里只要明白name的規(guī)范就行,其他無所謂,然后就是真正的使用方法了,caches/caches_model/caches_data/content_form.class.php約460行,(這是出自網上一個高手的解說截取片斷),仔細一看,這個萬能字段的萬能處就是可以用函數,{FUNC(函數名不要加括號~~{FIELD_VALUE})}或者{FUNC(函數名~~)},自定義函數的時候在 /phpcms/libs/functions/extention.func.php,所以,綜上所述,在設置萬能字段的表單時可以直接寫個函數,然后再函數里面查詢數據做表單最后通過頁面輸出,實現A和B欄目的關聯。
function select_cat(){
$ceshi= pc_base::load_model('ceshi_model');
$rs=$ceshi->query("select * from v9_news ");
if($rs->num_rows>0){
$str= "
foreach($rs as $a){
$str=$str. "";
}
$str=$str."";
}
else
{
$str="";
}
return $str;
}
該函數是我自定義的,只需要在萬能字段添加時,寫{FUNC(select_cat~~)}