Ich habe einige unveröffentlichte Knoten, für die ich ihre Knoten-IDs habe. Wie kann ich sie programmatisch veröffentlichen? Ist es richtig, dies in einem benutzerdefinierten Modul mit einer Abfrage wie der folgenden zu erreichen?
db_query("UPDATE {node} SET status = 1 WHERE nid = %d", $nid)
node_revision
, sodass es zu Inkonsistenzen kommt.Antworten:
Verwenden
db_query()
ist eine Drupal 6-Methode, die in Drupal 7 nicht verwendet wird. Um Ihre Arbeit zu erledigen, empfehle ich diesen Code (ohne manuelle Abfrage).Wenn Sie über mehr Knoten-ID verfügen und alle diese Knoten veröffentlichen möchten, können Sie den folgenden Code verwenden.
quelle
db_query
ist auch eine Drupal 7 Methode. Nimmt einfach andere Argumente.submit
Handler zu deinem von da an benutzerdefinierten Submit-Handler hinzu. Du kannst so etwas verwenden.Wenn Sie node_load (), node_load_multiple () zum Laden von (mehreren) Noads verwenden, werden von Modulen viele Hooks aufgerufen, z. B. hook_node_load , hook_node_operations , hook_node_prepare , hook_node_accesse . Wenn Sie jedoch eine Abfrage direkt im Drupal-Schema durchführen, werden diese Hooks ignoriert und führen zu vielen Problemen.
Die Abfragen sind:
Verwenden Sie einfach den obigen Code, wenn node_load () oder node_load_multiple () nicht funktionieren, weil der verfügbare Speicher knapp wird.
quelle