Друпал 8

$pr = \Drupal\commerce_product\Entity\Product::load($v->entity_id);

$varID = $pr->getVariationIds()[0];

$var = \Drupal\commerce_product\Entity\ProductVariation::load($varID);

print round($var->price->number);

-----------

foreach($rez as $v){
//print $v->product_id;

$pr = \Drupal\commerce_product\Entity\Product::load($v->product_id);

//print $pr->field_foto[0]->target_id;

//print_r ($pr->field_foto[0]);

$fid = $pr->field_foto[0]->target_id;
$file_storage = \Drupal::entityTypeManager()->getStorage('file');
$file = $file_storage->load($fid);

//print $file->createFileUrl(false); // Полный путь
$src = $file->createFileUrl();
//print $file->filename->value;
?>

--------
-------------------

use \Drupal\taxonomy\Entity\Term;

$term = Term::create([
'name' => $_GET['gorod'],
'vid' => 'gorod',

]);

$term->save();

--------------------

$terms = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadTree('gorod');

------------

$pr = \Drupal\commerce_product\Entity\Product::load($s[2]);

-----------

\Drupal\taxonomy\Entity\Term::load($nik2)->name->value
------------
use Symfony\Component\HttpFoundation\RedirectResponse;

return new RedirectResponse('/uu.php');

-----------
if($soob) {

$verh = '<a href="#" onclick="';

$verh .= "window.document.querySelector('.system-messages.clearfix').innerHTML = ''";

$verh .= '">Закрыть</a><p>';
\Drupal::messenger()->addWarning(['#markup' => \Drupal\Core\Render\Markup::create($verh.$soob)]);
}

----------
//$term = Drupal\taxonomy\Entity\Term::load(1);
//print $term->name; // Название термина
//print $term->vid; // Идентификатор словаря таксономии, к которому принадлежит данный термин

-------

function _form_validation_number_title_validate(&$form, \Drupal\Core\Form\FormStateInterface $form_state) {

$vadr = $form_state->getValue('field_vvedite_adr')[0]['value'];

if($vadr){
$zapr = "SELECT entity_id FROM node__field_vvedite_adr WHERE field_vvedite_adr_value = '$vadr'";

$rr = \Drupal::database()->query($zapr)->fetchField();
//$rr = db_query($zapr)->fetchField();
if($rr) {

$sozzak = '<div id="sozzak" >
По данному адресу уже были работы, создать заказчика?

<button type="button" id="da">Да</button>
<button type="button" id="net">Нет</button>

</div>';

$rendered_message = \Drupal\Core\Render\Markup::create($sozzak);

$form_state->setErrorByName('field_vvedite_adr', $rendered_message);
return;
}}

========
return ['#markup' => \Drupal\Core\Render\Markup::create($mytab), '#theme' => 'sablontemy',]; // В контроллере

<?php
// В Модулес

function sablontemy_theme($existing, $type, $theme, $path) {
return [

'sablontemy' => [
'variables' => ['u2' => NULL, 'u3' => NULL, 'rez' => NULL, 'osh' => NULL],
],
];
}

------------
class VseController extends ControllerBase {

public function build() {

ob_start();
?>
Что угодно. Хоть Принт. Любой смешанный PHP-HTML код
<?php

$mytab = ob_get_contents();
ob_end_clean();

return ['#markup' => \Drupal\Core\Render\Markup::create($mytab)];
}
---
$build['content'] = [
'#type' => 'item',
'#markup' => $rez,
];
---
//$u['verx']=['#markup' => \Drupal\Core\Render\Markup::create($mytab)];
//$u['niz'] = ['#markup' => 'rrrrrrrrrr'];
return [['#markup' => \Drupal\Core\Render\Markup::create($mytab)],['#markup' => 'rrrrr555']];

---------------------------------
ob_start();
$mytab = ob_get_contents();

ob_end_clean();

$element = array(
'#markup' => $mytab,
);
return $element;

--------------

$rez = \Drupal\Core\Render\Markup::create('tttвввддд <input name="dd">');

$build['content'] = [
'#type' => 'item',
'#markup' => $rez,
];

--------------------

\Drupal::messenger()->addStatus(t('This is a successful message.'));
\Drupal::messenger()->addWarning(t('This is a warning message.'));
\Drupal::messenger()->addError(t('This is an error message.'));

--------------------

\Drupal\user\Entity\User::load($u->_entity->uid->target_id)->name->value

zapis.first_page:
path: '/zapis'
defaults:
_controller: '\Drupal\zapis\Controller\FirstPageController::content'
_title: 'Календарь записи на приём'
requirements:
_permission: 'access content'
options:
no_cache: 'TRUE'

print \Drupal::currentUser()->id();

$current_user = \Drupal::currentUser();
$roles = $current_user->getRoles();

print_r($roles);

$form['nikgg'] = [
'#type' => 'html_tag',
'#tag' => 'a',
'#attributes' => [
'href' => '/uuu'],

'#value' => $this
->t('Hello Worlddd'),
];

$form['stoim'] = array(
'#type' => 'item',
'#title' => '',
'#markup' => '<a href="/">hhhh</a>',
);

$form['from'] = array(
'#type' => 'item',
'#title' => t('Заголовок как над полем'),
'#markup' => '<a href="">jjjjjjjj</a>',
);

use Drupal\Core\Url;

$url = Url::fromUserInput("/node/$node->nid");
$nidA = \Drupal::l($node->nid, $url);

$url = Url::fromUri('http://www.example.com/');
$external_link = \Drupal::l(t('External link'), $url);

$url = Url::fromRoute('collect_phone2.form');
$internal_link = \Drupal::l(t('Book admin'), $url);

$form['nikgg'] = [
'#type' => 'html_tag',
'#tag' => 'a',
'#attributes' => [
'href' => '/uuu'],

'#value' => $this
->t('Hello Worlddd'),
];

$form['stoim'] = array(
'#type' => 'item',
'#title' => '',
'#markup' => 'Стоимость печати = ',
);

$form['entity_id'] = array(
'#type' => 'hidden',
'#value' => 'hhhh',
);

Форма с галочками:

$h = [5,6];

$o= [];

$o[0] = [1,2,3];
$o[1] = [1,2,3];
$o[2] = [1,2,3];

$form['izmenenie_oplaty'] = [
'#type' => 'tableselect',
'#header' => $h,
'#options' => $o,
'#empty' => t('No users found'),
];
-----------------------

$form['contacts'] = array(
'#type' => 'table',
'#caption' => $this
->t('Sample Table'),
'#header' => array(
$this
->t('Name'),
$this
->t('Phone'),
),
);
for ($i = 1; $i <= 4; $i++) {
$form['contacts'][$i]['#attributes'] = array(
'class' => array(
'foo',
'baz',
),
);
$form['contacts'][$i]['name'] = array(
'#type' => 'textfield',
'#title' => $this
->t('Name'),
'#title_display' => 'invisible',
);
$form['contacts'][$i]['phone'] = array(
'#type' => 'tel',
'#title' => $this
->t('Phone'),
'#title_display' => 'invisible',
);
}
$form['contacts'][]['colspan_example'] = array(
'#plain_text' => 'Colspan Example',
'#wrapper_attributes' => array(
'colspan' => 2,
'class' => array(
'foo',
'bar',
),
),
);

--------------------

$rr = views_get_view_result('miltorgkranovschik', 'page_1');

foreach($rr as $u){
$kr = $u->_entity->field_kranovschik->target_id;

}

Получение Ноды:

$node = node_load(3043);
//print_r($node);
print $node->id(); - именно со скобками только и работает

https://drupal.ru/docs/videouroki/drupalbookru/12111-obrashchenie-k-poly...

Загрузка ноды по ID:
<?php
$nid = 234;
$node_storage = \Drupal::entityTypeManager()->getStorage('node');
$node = $node_storage->load($nid);?>

Получение ID ноды:

<?php $node->id();?>

Получение бандла (типа материала) ноды:
<?php$node->bundle(); // Работает для нод и многих типов сущностей, но не для всех
$entity->getType(); // Работает для всех типов сущностей?>

Получение значений полей:
<?php$node->get('title')->value; // Заголовок ноды
$node->get('created')->value; // Timestamp создания ноды
$node->get('body')->value; // Поле Содержимое
$node->get('body')->summary; // Тизер поля Содержимое
$node->get('field_foo')->value; // Обычные текстовые или числовые поля
$node->get('field_image')->target_id; // Reference поля на другие сущности, например файл, изображения, термины таксономии, поля entity reference.
?>

Также можно использовать короткую запись для получения значений:
<?php$node->title->value;
$node->created->value;
$node->body->value;
$node->body->summary;
$node->field_foo->value;
$node->field_image->target_id;
?>

Layout Builder позволяет настраивать отображение любых сущностей с использованием Layout API.

зачем это всё, если есть Page Manager, Panels, Display suite и Panelizer?

gavias-content-builder Gavias Vitaco 8.x ???