Piszę skrypt, aby programowo dodawać węzły i nie znam właściwego sposobu dodawania / dołączania obrazu. Właściwie nie znam tak dobrze Drupala.
Oto (przykładowe) obiekty graficzne, które znalazłem podczas print_r
tworzenia istniejącego, $node
którego używam:
field_image: Array ([und] => Array ([0] => Array ([fxid] => 3089 [alt] => [title] => [width] => 95 [height] => 126 [uid] = > 249 [nazwa pliku] => helloworld.jpg [uri] => public: //helloworld.jpg [filemime] => image / jpeg [filesize] => 3694 [status] => 1 [datownik] => 1346748001 [typ ] => image [media_title] => Array () [media_description] => Array () [field_tags] => Array () [field_license] => Array ([und] => Array ([0] => Array ([ wartość] => nic))) [metatagi] => Array () [rdf_mapping] => Array ())))
Następny, który znalazłem, jest następujący.
field_temp_image: Array ([und] => Array ([0] => Array ([wartość] => http://www.example.com/sample-path/helloworld.jpg [format] => [safe_value] => http://www.example.com/sample-path/helloworld.jpg))) `
Jak w ten sposób dodać obraz do tego węzła?
file_usage_add($file, 'file', 'node', $n->nid);
na końcu, aby zapobiec przypadkowemu usunięciu pliku.node_save
uruchomieniu.Drupal 8
W przypadku Drupala 8 byłoby to następujące. Najpierw dodaj plik i uzyskaj identyfikator pliku. Następnie utwórz węzeł i dołącz podany identyfikator pliku.
źródło
Może nie być dokładnie tym, czego potrzebujesz, ale dlaczego po prostu nie dodać odniesienia do obrazu w polu, jak sugeruje Twój przykład 2? Następnie w pliku szablonu treści renderuj to pole jako obraz.
W strumieniu tworzenia węzłów:
W typie treści:
źródło