-
-
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"); |
@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 these snippets, @facine!