Mi-am actualizat Drupal de la 8 la 9 și am folosit PHP 7.4. Acum am ales momentul actualizării la PHP 8. Totul rulează până acum, doar cu un modul auto-construit primesc acum un mesaj de eroare:
Site-ul web a întâmpinat o eroare neașteptată. Vă rugăm să încercați din nou mai târziu.
Eroare: Încercați să atribuiți proprietatea „format” pe null în copy_fields_from_model_contract_node_edit_node_prepare_form() (linia 57 din modules/custom/copy_fields_from_model_contract_node_edit/copy_fields_from_model_contract_node_edit.module).
Aceasta se referă exact la această linie:
$node->body->format = 'full_html';
Codul modulului meu nu este elegant, dar și-a făcut treaba după dorință. Practic, copiez dintr-un alt nod conținutul câmpului de corp într-un câmp de corp al altui nod. Codul întregului modul arată astfel:
<?php
utilizați Drupal\node\NodeInterface;
utilizați Drupal\Core\Form\FormStateInterface;
/**
* Implementează hook_ENTITY_TYPE_prepare_form() pentru entitățile nod.
*/
funcția copy_fields_from_model_contract_node_edit_node_prepare_form(NodeInterface $nod, $operație, FormStateInterface $form_state)
{
//TODO Construiește NID ca matrice și continuă cu bucla
$arr_vertraege = array(6766, 6769, 6768, 6775, 6767, 6776, 6777, 6778, 6779, 6780, 6781, 6782);
foreach ($arr_vertraege ca $mustervertraege) {
$nid = $mustervertraege;
$node_storage = \Drupal::entityTypeManager()->getStorage('nod');
$nod = $node_storage->load($nid);
if ($nid == $mustervertraege) {
$getcontract = $node->field_vertragsinhalt->valoare;
}
//TODO Funcționează fără ($operațiune == „implicit”)
if ($operație == 'editare') {
/*dpm("Modulează și editează");*/
//TODO Va trage întotdeauna nodul curent și nid. Dar nu funcționează încă cu crearea nodului. Eroare: Apel la o funcție membru id() pe null in
$nod = \Drupal::routeMatch()->getParameter('nod');
$nid = $nod->id();
$node_storage = \Drupal::entityTypeManager()->getStorage('nod');
$nod = $node_storage->load($nid);
if ($node->getType() == 'buch_anlegen') {
if ($node->field_vertrag_updaten->valoare == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nod);
if ($mustervertraege == $arr_vertraege[0]) {
$nod->field_vertragsinhalt->valoare = $getcontract;
$node->body->format = 'full_html';
// nu salvați încă nodul, acesta va fi salvat după trimitere
}
}
if ($node->field_vertrag_updaten_2->valoare == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nod);
if ($mustervertraege == $arr_vertraege[1]) {
$nod->field_vertragsinhalt_2->valoare = $getcontract;
$node->body->format = 'full_html';
// nu salvați încă nodul, acesta va fi salvat după trimitere
}
}
if ($node->field_vertrag_updaten_3->valoare == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nod);
if ($mustervertraege == $arr_vertraege[2]) {
$nod->field_vertragsinhalt_3->valoare = $getcontract;
$node->body->format = 'full_html';
// nu salvați încă nodul, acesta va fi salvat după trimitere
}
}
if ($node->field_vertrag_updaten_4->valoare == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nod);
if ($mustervertraege == $arr_vertraege[3]) {
$nod->field_vertragsinhalt_4->valoare = $getcontract;
$node->body->format = 'full_html';
// nu salvați încă nodul, acesta va fi salvat după trimitere
}
}
if ($node->field_vertrag_updaten_5->valoare == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nod);
if ($mustervertraege == $arr_vertraege[4]) {
$nod->field_vertragsinhalt_5->valoare = $getcontract;
$node->body->format = 'full_html';
// nu salvați încă nodul, acesta va fi salvat după trimitere
}
}
if ($node->field_vertrag_updaten_6->valoare == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nod);
if ($mustervertraege == $arr_vertraege[5]) {
$nod->field_vertragsinhalt_6->valoare = $getcontract;
$node->body->format = 'full_html';
// nu salvați încă nodul, acesta va fi salvat după trimitere
}
}
if ($node->field_vertrag_updaten_7->valoare == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nod);
if ($mustervertraege == $arr_vertraege[6]) {
$nod->field_vertragsinhalt_7->valoare = $getcontract;
$node->body->format = 'full_html';
// nu salvați încă nodul, acesta va fi salvat după trimitere
}
}
if ($node->field_vertrag_updaten_8->valoare == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nod);
if ($mustervertraege == $arr_vertraege[7]) {
$nod->field_vertragsinhalt_8->valoare = $getcontract;
$node->body->format = 'full_html';
// nu salvați încă nodul, acesta va fi salvat după trimitere
}
}
if ($node->field_vertrag_updaten_9->valoare == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nod);
if ($mustervertraege == $arr_vertraege[8]) {
$nod->field_vertragsinhalt_9->valoare = $getcontract;
$node->body->format = 'full_html';
// nu salvați încă nodul, acesta va fi salvat după trimitere
}
}
if ($node->field_vertrag_updaten_10->valoare == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nod);
if ($mustervertraege == $arr_vertraege[9]) {
$nod->field_vertragsinhalt_10->valoare = $getcontract;
$node->body->format = 'full_html';
// nu salvați încă nodul, acesta va fi salvat după trimitere
}
}
if ($node->field_vertrag_updaten_11->valoare == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nod);
if ($mustervertraege == $arr_vertraege[10]) {
$node->field_vertragsinhalt_11->valoare = $getcontract;
$node->body->format = 'full_html';
// nu salvați încă nodul, acesta va fi salvat după trimitere
}
}
if ($node->field_vertrag_updaten_12->valoare == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nod);
if ($mustervertraege == $arr_vertraege[11]) {
$nod->field_vertragsinhalt_12->valoare = $getcontract;
$node->body->format = 'full_html';
// nu salvați încă nodul, acesta va fi salvat după trimitere
}
}
}
}
}
}
Are cineva un pont pentru mine? Aș fi foarte recunoscător.
Greetz Bavra
P.S.: Mesaj de eroare complet din jurnalele:
Eroare de mesaj: Încercarea de a atribui proprietatea „format” pe null în copy_fields_from_model_contract_node_edit_node_prepare_form() (linia 57 din /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/modules/custom/copy_model_modules_confrom_contract_model_modules_confromcoedit_model_modules_confromco_edit_model
#0 [funcție internă]: copy_fields_from_model_contract_node_edit_node_prepare_form(Object(Drupal\node\Entity\Node), „edit”, Object(Drupal\Core\Form\FormState))
#1 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Entity/EntityForm.php(397): call_user_func_array('copy_fields_fro...', Array)
#2 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Entity/EntityForm.php(129): Drupal\Core\Entity\EntityForm->prepareInvokeAll(' node_prepare_fo...', Object(Drupal\Core\Form\FormState))
#3 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Entity/ContentEntityForm.php(287): Drupal\Core\Entity\EntityForm->init(Object (Drupal\Core\Form\FormState))
#4 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Entity/EntityForm.php(96): Drupal\Core\Entity\ContentEntityForm->init(Object (Drupal\Core\Form\FormState))
#5 [funcție internă]: Drupal\Core\Entity\EntityForm->buildForm(Array, Object(Drupal\Core\Form\FormState))
#6 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Form/FormBuilder.php(531): call_user_func_array(Array, Array)
#7 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Form/FormBuilder.php(278): Drupal\Core\Form\FormBuilder->retrieveForm(' node_buch_anleg...', Object(Drupal\Core\Form\FormState))
#8 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Controller/FormController.php(73): Drupal\Core\Form\FormBuilder->buildForm(Object (Drupal\node\NodeForm), obiect(Drupal\Core\Form\FormState))
#9 [funcție internă]: Drupal\Core\Controller\FormController->getContentResult(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\RouteMatch))
#10 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array)
#11 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Render/Renderer.php(564): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core \EventSubscriber\{closure}()
#12 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(ObRenderContext (Drupal\Core\Render\RenderContext), Object(Closure))
#13 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingSubscriberControllerRenderingSubscriberWrapperControllerWrapper(97) , Matrice)
#14 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/vendor/symfony/http-kernel/HttpKernel.php(158): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Subscriber\{Evental\Coscriber\ închidere}()
#15 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/vendor/symfony/http-kernel/HttpKernel.php(80): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component) \HttpFoundation\Request), 1)
#16 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/modules/contrib/redirect_after_login/src/RedirectMiddleware.php(46): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony) \Component\HttpFoundation\Request), 1, adevărat)
#17 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Drupal\redirect_after_login\RedirectMiddleware->handle(Object(Symfony) \Component\HttpFoundation\Request), 1, adevărat)
#18 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object (Symfony\Component\HttpFoundation\Request), 1, adevărat)
#19 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object) (Symfony\Component\HttpFoundation\Request), 1, adevărat)
#20 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object) (Symfony\Component\HttpFoundation\Request), 1, adevărat)
#21 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/modules/ban/src/BanMiddleware.php(50): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony) \Component\HttpFoundation\Request), 1, adevărat)
#22 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\ban\BanMiddleware->handle(Object(Symfony) \Component\HttpFoundation\Request), 1, adevărat)
#23 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object) (Symfony\Component\HttpFoundation\Request), 1, adevărat)
#24 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony) \Component\HttpFoundation\Request), 1, adevărat)
#25 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/DrupalKernel.php(708): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation) \Solicitare), 1, adevărat)
#26 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#27 {principal}