好了,所以我還是設法解決這個使用驗證:
<?php
function validator_Blacklist($input, $parameter = '', $message = '')
{
$trklib = TikiLib::lib('trk');
$query = strtoupper(trim($input)); //$input has a trailing space which affects the query, strtoupper probably not needed
$result = $trklib->get_item_id(4,14,$query,false); //usage: get_item_id(tracker_id,field_id,string_query,partial_match);
$info = $trklib->get_tracker_item($result); //pass item id retrieved above to get all it's fields
$status = intval($info[204]); //array item 204 has the customer service status, 205 has a descriptive comment
if ($status==1) {
return tra("<strong><font color=red>DO NOT SERVICE: " . $info[205] . "</font></strong>");
}
return true;
}
?>
還有在我的字段類型(項鍊接)路過未定義$輸入的問題。一些挖顯示validatorslib.php沒有處理項目鏈接的下拉類型(項鍊接是「R」字母鍵):
if ($field_value['type'] == 'g' or $field_value['type'] == 'e' or $field_value['type'] == 'y' or $field_value['type'] == 'd' or $field_value['type'] == 'D') {
// Let's handle drop-down style fields
$validationjs .= 'return $(\'select[name="'.$prefix.$field_value['fieldId'].'"] option:selected\').text(); ';
} else { // Let's handle text style fields
$validationjs .= 'return $("#'.$prefix.$field_value['fieldId'].'").val(); ';
我改變了第一行:
if ($field_value['type'] == 'g' or $field_value['type'] == 'e' or $field_value['type'] == 'y' or $field_value['type'] == 'd' or $field_value['type'] == 'D' or $field_value['type'] == 'r') {
現在一切似乎都在奏效(我不認爲我在這個過程中打破了其他任何功能)。當我有時間的時候,我可能會讓這更強大(以跟蹤器和字段爲參數等)。
更確切地說是什麼問題? – Alioza
基本上我該如何做到這一點?上面的代碼不起作用。我一直在尋找詳細說明PHP函數無用的文檔。 – mrtc