Puncte:1

Eroare la încercarea de a vizualiza revizuirile

drapel do

Folosind Drupal 8/9. Când încerc să văd revizuirile anterioare, primesc următoarea eroare:

Eroare: apel la o funcție membru getType() pe șir în clc_d8_theme_theme_suggestions_page_alter() (linia 13 din /var/www/html/wrc/web/themes/clc_d8_theme/clc_d8_theme.theme)

Se referă la acest cod:

function clc_d8_theme_theme_suggestions_page_alter(matrice &$sugestii, matrice $variabile) {
  // Adăugați sugestii de tip de conținut.
  if ($nod = \Drupal::request()->atribute->get('nod')) {
    array_splice($sugestii, 1, 0, 'page__node__' . $node->getType()); <-- eroare la această linie
  }
}

Am nevoie de sugestii de tip pentru tema mea. Cum repar asta? Am crezut că verificarea nodului ar fi suficientă pentru a evita problemele.

Puncte:3
drapel ve

"$node" poate varia puțin în funcție de context, dar iată câteva modalități de setare $node:

$routeName = \Drupal::routeMatch()->getRouteName();

$nod = NULL;

// $variabile['nod'].
if (isset($variabile['nod'])) {
  $nod = $variabile['nod'];
  dacă (este_numeric($variabile['nodul'])) {
    $nod = \Drupal::entityTypeManager()->getStorage('nod')->load($variables['node']);
  }
}

// $variabile['rând'].
if (isset($variabile['row']) && !empty($variables['row']->nid)) {
  $nod = \Drupal::entityTypeManager()->getStorage('nod')->load($variables['row']->nid);
}

// $routeName === 'entity.node.canonical'.
if ($routeName === 'entity.node.canonical') {
  $nod = \Drupal::routeMatch()->getParameter('nod');
}

// $routeName === 'entity.node.revision'.
if ($routeName === 'entity.node.revision') {
  $revisionId = \Drupal::routeMatch()->getParameter('node_revision');
  $nod = nod_revision_load($revisionId);
}

// $routeName === 'entity.node.preview'.
if ($routeName === 'entity.node.preview') {
  $node = \Drupal::routeMatch()->getParameter('node_preview');
}

dacă ($nod) {
  // rulați codul...
}

Mai exact, se pare că ești după:

// Obține numele rutei.
$routeName = \Drupal::routeMatch()->getRouteName();

// Verificați dacă ruta este revizuirea nodului.
if ($routeName === 'entity.node.revision') {
  $revisionId = \Drupal::routeMatch()->getParameter('node_revision');
  $nod = nod_revision_load($revisionId);
}

Acest lucru va încărca complet obiectul nod și ->getType() ar trebui să funcționeze fără eroare.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.