Skip to content

Instantly share code, notes, and snippets.

View levmyshkin's full-sized avatar

Ivan Abramenko levmyshkin

View GitHub Profile
@levmyshkin
levmyshkin / entity.php
Created November 19, 2021 14:06
Add, update, delete Drupal Entity programmatically
<?php
// Create node programmatically.
use \Drupal\node\Entity\Node;
$node = Node::create([
'type' => 'article',
'title' => 'Druplicon test',
]);
$node->save();
@levmyshkin
levmyshkin / paragraph.php
Created November 19, 2021 14:03
Drupal Working with Paragraph fields programmatically
<?php
$my_paragraph = null;
foreach ($node->get('field_paragraph_reference') as $paragraph) {
if ($paragraph->entity->getType() == 'your_paragraph_type') {
$my_paragraph = $paragraph->entity;
}
}
@levmyshkin
levmyshkin / reference.php
Created November 19, 2021 14:02
Drupal Working with Entity Reference fields programmatically
<?php
// You can get multiple values from reference fields and process them through foreach:
foreach ($node->field_my_entity_reference as $reference) {
print $reference->target_id;
print $reference->entity->title->value;
}
// Modifying an entity reference multiple field:
$nids = [3,4,5,6];
@levmyshkin
levmyshkin / file.php
Created November 19, 2021 14:00
Drupal Working with file fields programmatically
<?php
//Getting a file by ID:
$fid = 42;
$file_storage = \Drupal::entityTypeManager()->getStorage('file');
$file = $file_storage->load($fid);
// Getting the file object from the node field:
$file = $node->field_image->entity;
@levmyshkin
levmyshkin / plugin.php
Created November 19, 2021 13:58
Drupal Working with node fields programmatically
<?php
// Load node by nid:
$nid = 234;
$node_storage = \Drupal::entityTypeManager()->getStorage('node');
$node = $node_storage->load($nid);
// Get node id:
$nid = $node->id();
@levmyshkin
levmyshkin / MultiStepForm.php
Last active November 19, 2021 13:52
Drupal Multistep popup form
<?php
// modules/custom/drupalbook/src/Form/MultiStepForm.php
namespace Drupal\drupalbook\Form;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
class MultiStepForm extends FormBase
{
@levmyshkin
levmyshkin / drupalbook.module
Created November 19, 2021 13:47
Drupal hook_form_alter() add submit and validate for existing form
<?php
/**
* Implements hook_form_alter().
*/
function drupalbook_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
if ($form_id == 'drupalbook_admin_settings') {
$form['drupalbook_api_key']['#attributes']['placeholder'] = 'API key';
$form['drupalbook_api_client_id']['#attributes']['placeholder'] = 'API client ID';
@levmyshkin
levmyshkin / DrupalbookSettingsForm.php
Created November 19, 2021 13:45
Add Drupal configuration form programmatically
<?php
// /modules/custom/drupalbook/src/Form/DrupalbookSettingsForm.php
namespace Drupal\drupalbook\Form;
use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;
/**
* Configure example settings for this site.
*/
@levmyshkin
levmyshkin / DisplayNode.php
Created November 19, 2021 13:42
Drupal Route with parameter
<?php
//modules/custom/drupalbook/src/Controller/DisplayNode.php
namespace Drupal\drupalbook\Controller;
use Drupal\Core\Access\AccessResult;
use Drupal\node\NodeInterface;
/**
* Provides route responses for the DrupalBook module.
@levmyshkin
levmyshkin / FirstPageController.php
Last active November 19, 2021 13:35
Drupal: Creating pages for a premium account programmatically
<?php
/**
* @file /modules/custom/drupalbook/src/Controller/FirstPageController.php
*/
namespace Drupal\drupalbook\Controller;
/**
* Provides route responses for the DrupalBook module.