Tengo algunos nodos no publicados, para los cuales tengo sus ID de nodo. ¿Cómo puedo publicarlos programáticamente? ¿Es correcto lograrlo en un módulo personalizado utilizando una consulta como la siguiente?
db_query("UPDATE {node} SET status = 1 WHERE nid = %d", $nid)
node_revision
, por lo que causará inconsistencia.Respuestas:
El uso
db_query()
es un método Drupal 6, que no se usa en Drupal 7. Para lograr su trabajo, sugiero este código (sin ninguna consulta manual).Si tiene más ID de nodo y desea publicar todos esos nodos, puede usar el siguiente código.
fuente
db_query
También es un método Drupal 7. Solo toma diferentes argumentos.submit
controlador personalizado a su desde entonces en el controlador de envío personalizado yu puede usar algo como esto.cuando utiliza node_load (), node_load_multiple () para cargar un (múltiple) nodo (s), los módulos invocarán muchos ganchos, como hook_node_load , hook_node_operations , hook_node_prepare , hook_node_accesse . Pero al realizar consultas directamente en el esquema de drupal, esos ganchos serán ignorados y generará muchos problemas.
Las consultas son:
Simplemente use el código anterior si node_load () o node_load_multiple () no funciona debido a la falta de memoria disponible.
fuente