什麼是最有效的方式來通過和更新Drupal站點中的每個節點,例如機械添加標籤? Drupal 6有一個閃亮的新批API,但在Drupal 5中該做什麼?Drupal 5中的批量節點操作
我開始編寫一個腳本來保存指針,然後繞過cron上的所有節點,加載它們然後保存它們,但我不知道還有什麼可以做的。
什麼是最有效的方式來通過和更新Drupal站點中的每個節點,例如機械添加標籤? Drupal 6有一個閃亮的新批API,但在Drupal 5中該做什麼?Drupal 5中的批量節點操作
我開始編寫一個腳本來保存指針,然後繞過cron上的所有節點,加載它們然後保存它們,但我不知道還有什麼可以做的。
我不建議直接在數據庫級別上工作,因爲某些模塊可能想要更新其他一些相關的表。最可靠和靈活的方法是編寫一個腳本來加載,更改和保存循環中的節點。您也可以嘗試使用額外的特殊模塊爲Drupal 5:
嗯我不熟悉drupal 5的數據庫結構,但是如果它與drupal 6相似,那麼只需修改term_node
即可。它的節點ID的足月ID的一個映射:
term_node
- nid
- vid
- tid
NID是當然的節點ID,VID是修訂ID,如果你使用的修訂,以及TID是術語ID。條款都存儲在term_data
term_data
- tid
- name
是更有趣的列。所以如果你已經有了現有的術語,你可以創建一個現有tid的快速映射,然後添加到term_node中你想要的任何節點。無論如何,在這方面粗心大意可能會導致奇怪的數據問題,所以我不會建議這種方法,除非你對原始數據庫感覺很舒服。
考慮Job queue模塊。下面是一個關於它的報價(來自模塊的項目頁面):
...被模塊用來排隊函數調用在cron上執行。模塊使用job_queue_add()函數將作業添加到隊列中
此模塊是Drupal 7的生命週期結束,它有一個queue in core。
在db級別上做事情並不是我想做的事情 - 有更多的風險以微妙的方式混淆所有事情,然後在通知太晚之前不會注意到。 – deadprogrammer 2008-10-13 20:04:06