2013-05-30 34 views
1

我不知道如何從JavaScript代碼觸發drupal規則。如何從javascript代碼觸發drupal規則

 lowerLayer[image.feature_nid].on("dragend", function() { 
       var position = kineticImage.getPosition(); 
       var layerPosition = this.getPosition(); 
       var slotNid = kineticImage.slot_nid; 
       positionX = position.x + layerPosition.x; 
       positionY = position.y + layerPosition.y; 
       //Here I want to call drupal rule 
     }); 

我評論了我需要觸發drupal規則的行。我可以調用這些參數(slotNid,位X,位置▲)就像我可以調用一些功能(someFunction(slotNid,位X,位置▲)一個Drupal的規則。

的任何解決方案都歡迎。

+0

沒有JavaScript規則API - 您需要使用AJAX調用來定義自己的自定義回調。在該回調中,您使用'rules_invoke_event()'調用規則,並準備要返回給客戶端的任何輸出。 – Clive

+0

你能給我寫一個小例子,它適用於我的情況,請.. –

回答

2

正如Clive提到,您可以通過AJAX調用實現這一目標。
您需要設置頁面回調menu hook下您的自定義模塊&那裏你可以提的函數,在頁面請求調用。

Example: 
// this code will go under menu hook 
$items['ajax/rule1.1'] = array(
    'title' => 'Rule 1.1', 
    'page callback' => 'custom_rule_trigger', 
    'access arguments' => array('access content'), 
    'file' => 'custom_rules.inc', 
); 

// then you can write php code which you want to execute under custom_rule_trigger function in custom_rules.inc file. 
function custom_rule_trigger(){ 
// write your rules here.. 
} 

在JavaScript中,你可以撥打www.example.com/ajax/rule1.1網址來觸發您的規則。

希望這會有所幫助。