Estoy escribiendo un script para agregar nodos mediante programación, y no sé la forma correcta de agregar / adjuntar una imagen. En realidad no estoy tan familiarizado con Drupal.
Estos son los objetos de imagen (de muestra) que encontré al print_r
crear los existentes $node
que estoy usando:
field_image: Array ([und] => Array ([0] => Array ([fxid] => 3089 [alt] => [title] => [width] => 95 [height] => 126 [uid] = > 249 [filename] => helloworld.jpg [uri] => public: //helloworld.jpg [filemime] => image / jpeg [filesize] => 3694 [status] => 1 [timestamp] => 1346748001 [type ] => image [media_title] => Array () [media_description] => Array () [field_tags] => Array () [field_license] => Array ([und] => Array ([0] => Array ([ valor] => nada))) [metatags] => Array () [rdf_mapping] => Array ())))
El siguiente que encontré es el siguiente.
field_temp_image: Array ([und] => Array ([0] => Array ([value] => http://www.example.com/sample-path/helloworld.jpg [format] => [safe_value] => http://www.example.com/sample-path/helloworld.jpg))) `
¿Cómo debo agregar una imagen a ese nodo de esa manera?
file_usage_add($file, 'file', 'node', $n->nid);
al final para evitar que el archivo se elimine accidentalmente.node_save
.Drupal 8
Para Drupal 8 sería como seguir. Primero agregue el archivo y obtenga una ID de archivo. Luego cree el nodo y adjunte la ID de archivo dada.
fuente
Puede que no sea exactamente lo que necesita, pero ¿por qué no simplemente agregar una referencia a una imagen en un campo, como sugiere su ejemplo 2? Y luego, en el archivo de plantilla de contenido, renderice ese campo como una imagen.
En la secuencia de creación de nodos:
En tipo de contenido:
fuente