-
-
Save facine/35bb291811c146b6fc9e to your computer and use it in GitHub Desktop.
| # Taxonomy terms: | |
| - https://gist.github.com/facine/35bb291811c146b6fc9e#file-create_taxonomy_term-php | |
| # Menu links: | |
| - https://gist.github.com/facine/35bb291811c146b6fc9e#file-create_menu_link-php | |
| # File items: | |
| - https://gist.github.com/facine/35bb291811c146b6fc9e#file-create_file-php | |
| # Nodes: | |
| # Simple node: | |
| - https://gist.github.com/facine/35bb291811c146b6fc9e#file-create_node-php | |
| # Node with image field: | |
| - https://gist.github.com/facine/35bb291811c146b6fc9e#file-create_node_with_image-php |
| <?php | |
| // Programmatically create files. | |
| use Drupal\file\Entity\File; | |
| $file = File::create([ | |
| 'uid' => 1, | |
| 'filename' => 'logo.svg', | |
| 'uri' => 'public://page/logo.svg', | |
| 'status' => 1, | |
| ]); | |
| $file->save(); |
| <?php | |
| // Programmatically create and translate nodes. | |
| use Drupal\node\Entity\Node; | |
| $node = Node::create([ | |
| // The node entity bundle. | |
| 'type' => 'article', | |
| 'langcode' => 'en', | |
| 'created' => REQUEST_TIME, | |
| 'changed' => REQUEST_TIME, | |
| // The user ID. | |
| 'uid' => 1, | |
| 'title' => 'My test!', | |
| // An array with taxonomy terms. | |
| 'field_tags' =>[2], | |
| 'body' => [ | |
| 'summary' => '', | |
| 'value' => '<p>The body of my node.</p>', | |
| 'format' => 'full_html', | |
| ], | |
| ]); | |
| $node->save(); | |
| \Drupal::service('path.alias_storage')->save("/node/" . $node->id(), "/my/path", "en"); | |
| $node_es = $node->addTranslation('es'); | |
| $node_es->title = 'Mi prueba!'; | |
| $node_es->body->value = '<p>El cuerpo de mi nodo.</p>'; | |
| $node_es->body->format = 'full_html'; | |
| $node_es->save(); | |
| \Drupal::service('path.alias_storage')->save("/node/" . $node->id(), "/mi/ruta", "es"); |
| <?php | |
| // Programmatically create node with image fields. | |
| use Drupal\file\Entity\File; | |
| use Drupal\node\Entity\Node; | |
| $file = File::create([ | |
| 'uid' => 1, | |
| 'uri' => 'public://page/logo.png', | |
| 'status' => 1, | |
| ]); | |
| $file->save(); | |
| $node = Node::create([ | |
| 'type' => 'article', | |
| 'langcode' => 'en', | |
| 'created' => REQUEST_TIME, | |
| 'changed' => REQUEST_TIME, | |
| 'uid' => 1, | |
| 'title' => 'My title', | |
| 'field_tags' =>[2], | |
| 'body' => [ | |
| 'summary' => '', | |
| 'value' => 'My node!', | |
| 'format' => 'full_html', | |
| ], | |
| 'field_images' => [ | |
| [ | |
| 'target_id' => $file->id(), | |
| 'alt' => "My 'alt'", | |
| 'title' => "My 'title'", | |
| ], | |
| ], | |
| ]); | |
| $node->save(); | |
| \Drupal::service('path.alias_storage')->save('/node/' . $node->id(), '/my-path', 'en'); |
| <?php | |
| // Programmatically create and translate taxonomy terms. | |
| use Drupal\taxonomy\Entity\Term; | |
| $term = Term::create([ | |
| 'vid' => 'sport_activity', | |
| 'langcode' => 'en', | |
| 'name' => 'My tag', | |
| 'description' => [ | |
| 'value' => '<p>My description.</p>', | |
| 'format' => 'full_html', | |
| ], | |
| 'weight' => -1 | |
| 'parent' => array (0); | |
| ]); | |
| $term->save(); | |
| \Drupal::service('path.alias_storage')->save("/taxonomy/term/" . $term->id(), "/tags/my-tag", "en"); | |
| $term_es = $term->addTranslation('es'); | |
| $term_es->name = 'Mi etiqueta'; | |
| $term_es->description->value = '<p>Mi descripción.</p>'; | |
| $term_es->description->format = 'full_html'; | |
| $term_es->save(); | |
| \Drupal::service('path.alias_storage')->save("/taxonomy/term/" . $term->id(), "/etiquetas/mi-etiqueta", "es"); |
Thanks for these snippets, @facine!
@facine I love you :-*
Hi, small errors in create_taxonomy_term.php :
(...)
'weight' => -1,
'parent' => array (0)
(...)
Many thanks :-)
Great work! Thanks for the help. Just so you know, as of Drupal 8.3.x, REQUEST_TIME has been deprecated. They ask use now to use \Drupal::time()->getRequestTime().
FACINE
<3
How do I add a taxonomy term to an image?
Thanks for the gist. I'm new to Drupal 8 (not php), but I copied create_node.php into a file and tried to run it. I'm getting the following error.
Fatal error: Uncaught Error: Class 'Drupal\node\Entity\Node' not found in /var/www/html/drupal/web/load_it.php:6 Stack trace: #0 {main} thrown in /var/www/html/drupal/web/load_it.php on line 6
Line 6:
$node = Node::create([The function I want to access (create) seems to be in core/lib/Drupal/Core/Entity/entity.php
So I'm confused, thanks.
I'm so late, but did you put use Drupal\node\Entity\Node; at the top of your PHP file?
Thanks for the gist. I'm new to Drupal 8 (not php), but I copied create_node.php into a file and tried to run it. I'm getting the following error.
Line 6:
$node = Node::create([The function I want to access (create) seems to be in core/lib/Drupal/Core/Entity/entity.php
So I'm confused, thanks.