Attacher des fichiers d'image à des nœuds par programmation dans Drupal 7
Est-il possible d'ajouter une image à un nœud par programmation?
Vous devez vous connecter pour publier un commentaire.
Est-il possible d'ajouter une image à un nœud par programmation?
Vous devez vous connecter pour publier un commentaire.
Voici un exemple de code à l'aide duquel vous pouvez utiliser avec node_save
'display' => 1
$pour le fichier de tableau, ou bien j'ai eu une violation de contrainte que field_doc_file_display était NULLE. C'était pour un fichier plutôt qu'une image, qui peut-être la différence.Un moyen plus facile:
C'est ce qui a fonctionné pour moi:
file_usage_add($file, 'file', 'node', $node->nid);
doit aussi être fait en faisant cela.Voici un bit supplémentaire qui a déclenché moi pendant un certain temps: cela permettra de joindre l'image au nœud, et si vous ajoutez l'image, puis vous êtes d'accord. Toutefois, si vous êtes mise à jour une image, et vous vous souciez de l'afficher sur une page, puis une étape supplémentaire est nécessaire avant d'appeler node_save():
Cela permettra de restaurer tous de cette image de styles.
$node->field_image[LANGUAGE_NONE][0] = (array)$file;
J'ai essayé cela avec un site multilingue. Il a échoué d'assez... mais horriblement.
J'ai eu de spécifier la langue en question. Tout simplement, cela fonctionnait plutôt:
$node->field_image['en'][0] = (array)$file;
Sans elle, le fichier joint est visible dans l'affichage de l'écran mais pas dans le "modifier" de l'écran.
Oui, faire partie de l' $nœud de l'objet lorsque vous l'enregistrez. Enregistrer à l'aide des node_save().
Cela fonctionne pour moi:
Juste coller ma solution ici aussi, j'avais besoin de créer un nouveau nœud, et de télécharger une image par programmation.