2010-08-20 119 views

回答

4

規則中有一個「添加到Nodequeue」的操作。我已經通過創建新規則解決了。

+1

截至今天這仍然是一項工作正在進行對於Nodequeue 7.x-2.x分支(不確定大約7.x-3.x):[規則集成](http://drupal.org/node/1125922)。 – thirdender 2013-04-19 22:40:41

+0

我無法找到在規則中添加到Nodequeue - 操作。 – Fahad 2014-04-13 13:58:06

0

你不能將其設置在管理界面中,但可以使用hook_nodeapi自定義模塊中做到這一點op insert

+0

我已經解決了通過創建一個新的規則,但是我也應該刪除節點,當它從隊列中刪除..並沒有條件觸發器.. – aneuryzm 2010-08-21 08:18:56

2

我使用的是沒有規則的drupal 5。這是我做到了,我沒有使用任何子隊列:

if($op == 'insert'){ 
    if($node->type == 'node_type'){ 
     $queue = nodequeue_load(4); 
     $subqueue = nodequeue_load_subqueue(4); 
     nodequeue_subqueue_add($queue, $subqueue, $node->nid); 
    } 
} 
9

我需要這個功能對於一個Drupal 7個網站,並採取了自定義模塊的解決方案。假設設置是一個節點隊列,並且每個「項目」節點都應該自動添加並移除到隊列中。在sites/all/modules /中創建一個空的nodequeue_auto_add目錄。這包含這兩個文件

nodequeue_auto_add.info

name = Nodequeue auto add/remove 
description = Automatically adds and remove nodes when they are created and deleted. 
core = 7.x 
version = 7.x-dev 
package = Nodequeue 

dependencies[] = nodequeue 

nodequeue_auto_add.module

<?php 
/** 
* Implements hook_node_insert(). 
*/ 
function nodequeue_auto_add_node_insert($node) { 
    $nid = $node->nid; 
    $type = $node->type; 
    // only process project node 
    if ($type != 'project') { 
    return FALSE; 
    } 
    // I've only one nodequeue where a specific node type should always be 
    // added so this is taken from the mysql nodequeue_queue table 
    $queue_id = 1; 

    // subqueue id, exists even if we created a really basic nodequeue (from nodequeue_subqueue table) 
    $sqid = 1; 
    $queue = nodequeue_load($queue_id); 
    $subqueue = nodequeue_load_subqueue($sqid); 

    if (function_exists('views_invalidate_cache')) { 
    views_invalidate_cache(); 
    } 

    nodequeue_subqueue_add($queue, $subqueue, $nid); 
} 

/** 
* Implements hook_node_delete(). 
*/ 
function nodequeue_auto_add_node_delete($node) { 
    $nid = $node->nid; 
    $type = $node->type; 
    // only process project node 
    if ($type != 'project') { 
    return FALSE; 
    } 

    if (function_exists('views_invalidate_cache')) { 
    views_invalidate_cache(); 
    } 

    // I've only one nodequeue where a specific node type should always be 
    // added so this is taken from the mysql nodequeue_queue table 
    $queue_id = 1; 

    // subqueue id, exists even if we created a really basic nodequeue (from nodequeue_subqueue table) 
    $sqid = 1; 

    nodequeue_subqueue_remove_node($sqid, $nid); 
} 
3

有此目的只是做一個簡單的模塊,兩者的Drupal 6和Drupal 7 :

http://drupal.org/project/auto_nodequeue

+1

從[Nodequeue 7.x-3.x](http://drupal.org/project/nodequeue)不起作用。我認爲這與這個問題有關[放棄所有使用$ qid](http://drupal.org/node/1160068)。嘗試將auto_nodequeue的設置保存爲「未定義的索引$ qid」錯誤... – thirdender 2013-04-19 22:31:11

0

儘管該模塊並不完全符合OP「自動添加」請求,但它確實允許您配置內容類型,以便您可以將其直接添加到隊列中:https://www.drupal.org/sandbox/rlhawk/1444496這是一個沙盒,但非常穩定,我使用它一直都很喜歡它。