0

状況は次のとおりです。私は 2 つの Tiki-Wiki トラッカーを持っています。1 つは Orders と呼ばれ、もう 1 つは Customers と呼ばれます。新しいアイテムが注文トラッカーに追加されると、必要なフィールドの 1 つが顧客トラッカーから選択された顧客です。ときどき滞納している顧客がいて、それらを「ブラックリストに登録」して、この顧客に対して新しい注文項目が作成されないようにする必要があります。これを達成するための最良の方法は何ですか?

https://doc.tiki.org/Tracker+Field+Validationに見られるように、カスタムバリデーターを構築するためにこれを行う最善の方法を考え出しました 。次に、ブラックリストに載っているかどうかを示す顧客トラッカーに新しいフィールドを作成します。バリデーターは顧客を検索し、ブラックリストに登録されている場合は、新しい注文の入力を許可しません。

これに対する私の(貧弱な)試みは以下のとおりです。

 <?php 


 function validator_Blacklist($input, $parameter = '', $message = '')
 {
    $trklib = TikiLib::lib('trk');
    //parse_str($parameter, $arr);  
    //$info = $trklib->get_tracker_field($arr['fieldId']);

     $bl = $trklib->get_item(4,204,$input);
    if($bl>=1)
       return tra("Customer is blacklisted.");

    return true;
 }
 ?>
4

2 に答える 2

0

バリデーターが正しい方法だとは思いません (申し訳ありませんが、コメントすることはできませんが、助けてくれることを望んでいます)。これは確かに許可の質問です。

顧客トラッカーが「ユーザー トラッカー」であり、これらのユーザーがログインしていると仮定すると、禁止システムを使用して、それらのユーザーが Tiki のさまざまな部分 (トラッカーなど) を使用できないようにすることができます。詳細はこちら: http://doc.tiki.org/Banning

または、それらを「ブラックリスト」グループに入れ、それらから新しいトラッカー アイテムを作成する権限を削除します (または、最初に注文フォームを表示しているのを見つけます)。

ただし、これらの顧客がログインしておらず (奇妙なことです)、Orders トラッカーの Customer フィールドが ItemLink の場合、フィールド オプションで「オープン」ステータスの顧客アイテムのみを受け入れるように設定し、ステータスをブラックリストに登録することができます。お客様は「閉店」。これにより、新しいコードを記述する必要なく、そのフィールドが事実上「検証」されます。

于 2015-06-13T14:13:31.713 に答える