Drupal blog posts https://montviso.de/ de Deep Fakes - Gefahren, Erkennung, Maßnahmen https://montviso.de/blog/deep-fakes-gefahren-erkennung-massnahmen <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog-post.html.twig x field--node--title.html.twig * field--node--blog-post.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">Deep Fakes - Gefahren, Erkennung, Maßnahmen</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-layout--blog-post.html.twig * field--node--field-layout.html.twig * field--node--blog-post.html.twig x field--field-layout.html.twig * field--entity-reference-revisions.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <div class="field field--name-field-layout field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="8" class="field__item">8/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-8 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h1>Deep Fakes - Gefahren, Erkennung, Maßnahmen</h1> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Bei Deep Fakes handelt es sich um manipulierte Videos oder Bilder, die mithilfe von Computertechnologie so täuschend echt gemacht werden, dass sie schwer von echten Aufnahmen zu unterscheiden sind.Diese Technologie wird sowohl für humorvolle als auch für betrügerische Zwecke genutzt, z. B. um Prominente in peinliche Situationen zu bringen oder Politiker falsch darzustellen. Dadurch haben sie enormes Potential, Demokratien zu schädigen. Wie kann man sie erkennen und welche Maßnahmen sind noch notwendig?</p> <h2>Was ist der Unterschied zwischen Fake News und Deep Fakes?</h2> <p>Fake News und Deep Fakes sind zwei verschiedene Phänomene, die jedoch beide mit der Verbreitung von irreführenden oder manipulierten Informationen zu tun haben. Hier sind die Hauptunterschiede zwischen ihnen:</p> <p><strong>Fake News: </strong><br /> Fake News beziehen sich auf falsche Informationen, die absichtlich verbreitet werden, um Menschen zu täuschen, Meinungen zu beeinflussen oder bestimmte Ziele zu erreichen. Diese falschen Informationen können entweder komplett erfunden sein oder aus dem Kontext gerissen und verzerrt werden.</p> <p><strong>Deep Fakes</strong>:<br /> Deep Fakes sind künstlich generierte Medien, typischerweise Videos oder Audiodateien, die mit Hilfe von fortgeschrittenen Technologien wie Deep Learning und KI erstellt werden. Diese Medieninhalte können täuschend echt aussehen oder klingen und Personen in Handlungen oder Aussagen zeigen, die sie nie getan oder gesagt haben.<br /> Besonders bekannt sind die Face-Swap-Techniken. Face-Swap tauscht - wie der Name schon sagt - Gesichter einfach aus.</p> <h2>Gefahren für Demokratien durch Deep Fakes</h2> <ul> <li> <p><strong>Manipulation von Wahlen</strong>: Deep Fakes könnten dazu verwendet werden, politische Kandidaten in schlechtem Licht darzustellen oder falsche Aussagen zu verbreiten, um das Wahlergebnis zu beeinflussen.</p> </li> <li> <p><strong>Verbreitung von Desinformation</strong>: Deep Fakes können dazu verwendet werden, Desinformationen zu verbreiten, indem sie falsche Inhalte erzeugen, die schwer von echten Inhalten zu unterscheiden sind.</p> </li> <li> <p><strong>Untergrabung des Vertrauens in Medien und Institutionen</strong>: Deep Fakes können das Vertrauen der Öffentlichkeit in Medien und Institutionen untergraben, indem sie Zweifel an der Echtheit von Informationen schüren.</p> </li> <li> <p><strong>Manipulation von öffentlichen Diskussionen und Debatten</strong>: Durch die Erstellung gefälschter Inhalte können Deep Fakes dazu verwendet werden, öffentliche Diskussionen und Debatten zu manipulieren.</p> </li> </ul> <h2>Erkennung von Deep Fakes</h2> <p>Es gibt verschiedene Methoden, sowohl technischer Art, als auch menschliche Kontrolle, um Deep Fakes zu erkennen.</p> <p><b>Technische Ansätze:</b><br /> Es gibt Software, die Medieninhalte auf bestimmte Merkmale oder Artefakte, die auf eine Manipulation hinweisen können, analysiert. Zum Beispiel können ungewöhnliche Muster oder Anomalien im Bild oder im Audio auf ein Deep Fake hinweisen. Diese Software wird ständig weiterentwickelt, um mit den neuesten Technologien Schritt zu halten.</p> <p><b>Möglichkeiten für Anwender:</b></p> <ul> <li> <p>Überprüfe die Herkunft des Videos oder Bildes. Ist es von einer vertrauenswürdigen Quelle oder einem bekannten Medienunternehmen?</p> </li> <li> <p>Suche nach dem gleichen Ereignis oder der gleichen Person in anderen Medienquellen, um die Echtheit zu verifizieren.</p> </li> <li> <p>Verwende Google Lens, um nach weiteren Fundstellen des Bildes und dessen Urheber zu fahnden.</p> </li> <li> <p>Untersuche den Kontext, in dem das Video auftaucht. Passt es zu anderen Informationen oder Ereignissen, die zu diesem Zeitpunkt bekannt sind?</p> </li> <li> <p>Achte auf unnatürliche Bewegungen<strong> </strong>der Personen im Video</p> </li> <li> <p>Achte auf Unregelmäßigkeiten oder Inkonsistenzen in den Gesichtszügen der Personen im Video. Sind die Augen, die Lippen oder andere Merkmale unnatürlich? Fehlendes Blinzeln oder ein leerer Blick sind verdächtig.</p> </li> <li> <p>Schau dir den Hintergrund des Videos an. Gibt es Anzeichen dafür, dass er nachträglich bearbeitet wurde, z.B. unnatürliche oder verschwommene Elemente?</p> </li> <li> <p>Achte darauf, ob die Lippenbewegungen mit den gesprochenen Worten übereinstimmen.</p> </li> <li> <p>Achte auf verpixelte Stellen, Unschärfe oder Artefakte im Gesicht, besonders an den Rändern von Haaren oder um die Augen herum. .</p> </li> <li> <p>Achte auf unnatürlich wirkende Haare oder Haut, z.B. fehlende Textur oder unrealistische Haarsträhnen.</p> </li> <li> <p>Überprüfe, ob die Lichtquellen im Video oder Bild mit der dargestellten Umgebung übereinstimmen. Deep Fakes können Beleuchtungsmängel aufweisen.</p> </li> <li> <p>Höre dir die Audioqualität des Videos an. Gibt es Anzeichen von Audiomanipulationen oder ungewöhnliche Hintergrundgeräusche?</p> </li> <li> <p>Prüfe die einzelnen Bilder (Frames) des Videos auf Unterschiede, Anomalien oder Inkonsistenzen, die auf eine Manipulation hinweisen könnten.</p> </li> <li> <p>Suche nach Analysen oder Einschätzungen von Experten, um eine unabhängige Bestätigung der Authentizität des Videos zu erhalten.</p> </li> <li> <p>Überprüfe, ob die im Video gezeigten Personen, Orte und Ereignisse zeitlich und räumlich konsistent sind.</p> </li> <li> <p>Prüfe die Metadaten des Videos, um festzustellen, ob sie Anzeichen von Bearbeitung oder Manipulation enthalten.</p> </li> <li> <p>Es gibt Online-Tools und Apps, die bei der Erkennung von Deep Fakes helfen können.</p> </li> </ul> <p>Die Technologie entwickelt sich ständig weiter, und manche Deep Fakes sind so gut gemacht und Manipulationen so gut verborgen, dass sie selbst für Experten schwer zu erkennen sind.</p> <p><strong>Deepfake-Erkennungstools</strong></p> <ul> <li> <p><a href="https://github.com/dfaker/dfaker" target="_blank">https://github.com/dfaker/dfaker</a>: Dieses Tool nutzt maschinelles Lernen, um Deep Fakes anhand von Merkmalen wie Hauttextur, Haar und Augen zu erkennen.</p> </li> </ul> <ul> <li> <p>Sensity: <a href="https://www.sensity.ai/" target="_blank">https://www.sensity.ai/</a>: Sensity bietet verschiedene Tools zur Erkennung von Deep Fakes und anderen Formen von synthetischen Medien.</p> </li> <li> <p>Truepic: <a href="https://www.truepic.com/" target="_blank">https://www.truepic.com/</a>: Truepic ist eine App, die Fotos und Videos mit einem kryptografischen Siegel versieht, um Manipulationen zu verhindern.</p> </li> <li> <p><a href="https://www.spektrum.de/news/wie-man-sich-gegen-das-klonen-der-eigenen-stimme-durch-ki-wehrt/2199860">https://www.spektrum.de/news/wie-man-sich-gegen-das-klonen-der-eigenen-stimme-durch-ki-wehrt/2199860</a></p> </li> </ul> <p><strong>Links zum Thema:</strong></p> <ul> <li> <p><a href="https://www.computerbild.de/artikel/cb-News-Internet-Intel-FakeCatcher-Tool-Erkennung-Deepfakes-Analyse-Blutfluss-34821201.html">https://www.computerbild.de/artikel/cb-News-Internet-Intel-FakeCatcher-Tool-Erkennung-Deepfakes-Analyse-Blutfluss-34821201.html</a></p> </li> <li> <p><a href="https://www.unite.ai/de/Die-besten-Deepfake-Detektor-Tools-und--Techniken/">https://www.unite.ai/de/Die-besten-Deepfake-Detektor-Tools-und--Techniken/</a></p> </li> <li> <p><a href="https://www.spektrum.de/news/deepfake-wie-lassen-sich-ki-generierte-bilder-enttarnen/2127222">https://www.spektrum.de/news/deepfake-wie-lassen-sich-ki-generierte-bilder-enttarnen/2127222</a></p> </li> </ul> <h2>Maßnahmen zur Bekämpfung von Deep Fakes</h2> <ul> <li> <p><strong>Gesetzliche Maßnahmen:</strong><br /> Wegen der Auswirkungen bis hin zu Gefahr für Globale Sicherheit, denken Regierungen auf der ganzen Welt darüber nach, wie sie Deep Fakes regulieren können. Das kann Verbote für die Verbreitung von Deep Fakes oder rechtliche Haftung für deren Erstellung umfassen. Durch klare Gesetze sollen diejenigen zur Verantwortung gezogen werden, die Deep Fakes erstellen oder verbreiten.</p> </li> <li> <p><strong>Technologische Lösungen: </strong><br /> Es gibt eine ganze Reihe von Technologien, die helfen können, Deep Fakes zu erkennen und zu verhindern. Dazu gehören zum Beispiel Wasserzeichen, die in Bilder oder Videos eingebettet werden können, um ihre Echtheit zu bestätigen. Auch die Blockchain-Technologie wird erforscht, um die Integrität von Medieninhalten zu schützen und deren Manipulation zu verhindern.</p> </li> <li> <p><strong>Ethische Überlegungen:</strong><br /> Zu den genannten Auswirkungen auf die Demokratie, können Deep Fakes massiv das Persönlichkeitsrecht von Personen verletzen und Personen oder Institutionen schädigen, indem sie sie in falsche oder kompromittierende Situationen bringen.<br /> Deep Fakes könnten dazu verwendet werden, Ungerechtigkeit und Ungleichheit zu verstärken, indem sie bestimmte Gruppen oder Personen gezielt diskreditieren oder diffamieren.<br /> Der Grad zwischen berechtigtem Eingreifen und Zensur ist dabei schmal, nicht alle gefälschten "Werke" sind ethisch fragwürdig oder gesetzwidrig.<br /> Aber wie meistens bei KI steht auch das Thema Urheberrecht im Raum.<br /> Dabei muss auch diskutiert werden, wo Verantwortlichkeiten liegen, z.B. wenn Deep Fake in sozialen Netzwerken geteilt wird.</p> </li> <li> <p><strong>Medienkompetenz:</strong><br /> Viele Aspekte zur Medienkompetenz sind nicht neu. Allgemeine Fähigkeit zu kritischem Denken und ein ethisches Bewusstsein sind Grundvoraussetzung.<br /> Dazu kommen viele technische Fähigkeiten, die notwendig sind, um Deep Fakes zu erkennen. Auch wer grundsätzlich KI ablehnt, sollte sich mit den ständig wachsenden Möglichkeiten beschäftigen und bei den Rechtsgrundlagen auf dem Laufenden halten.<br /> Damit kann in den Schulen nicht früh genug begonnen werden. Da die Methoden der Deep Fake Generierung immer besser werden und gleichzeitig die Anwendung und Erzeugung kinderleicht ist, lässt es sich kaum vermeiden, dass auch Kinder Opfer von Deep Fakes und gefälschten Bildern werden. Ein gesundes Selbstbewusstsein und Resilienz muss trainiert werden, um psychische Schäden gering zu halten, bei gleichzeitiger Sensibilisierung dafür, dass es sich um kein Kavaliersdelikt handelt, wenn Mitschüler*innen mit solchen Bildern gemobbt werden.<br /> Auch Erwachsene tun gut daran, sich zu vernetzen und gemeinsam zu lernen und sich vor neuen Möglichkeiten zu warnen bzw. gemeinsam abzuwägen, ob ein Werk echt ist, oder Deep Fake. Dies bedarf ständigen Trainings.</p> </li> </ul> <p><strong>Links zum Thema:</strong></p> <ul> <li> <p><a href="https://t3n.de/news/fake-ki-erkennen-blockchain-near-1593849/">https://t3n.de/news/fake-ki-erkennen-blockchain-near-1593849/</a></p> </li> <li> <p><a href="https://www.spektrum.de/news/wie-nationen-vorhaben-kuenstliche-intelligenz-in-schach-zu-halten/2171376">https://www.spektrum.de/news/wie-nationen-vorhaben-kuenstliche-intellig…</a></p> </li> <li> <p><a href="https://www.bsi.bund.de/DE/Themen/Unternehmen-und-Organisationen/Informationen-und-Empfehlungen/Kuenstliche-Intelligenz/Deepfakes/deepfakes_node.html">https://www.bsi.bund.de/DE/Themen/Unternehmen-und-Organisationen/Inform…</a></p> </li> <li> <p><a href="https://datascientest.com/de/deep-fake-gefahren-massnahmen-und-rechtslage">https://datascientest.com/de/deep-fake-gefahren-massnahmen-und-rechtsla…</a></p> </li> <li> <p><a href="https://www.spektrum.de/news/ai-safety-summit-ki-braucht-regeln-aber-wer-wird-sie-aufstellen/2197293">https://www.spektrum.de/news/ai-safety-summit-ki-braucht-regeln-aber-we…</a></p> </li> <li> <p><a href="https://taz.de/Forscherin-ueber-Fake-News/!5996038/">https://taz.de/Forscherin-ueber-Fake-News/!5996038/</a></p> </li> <li> <p><a href="https://deutsches-schulportal.de/schule-im-umfeld/wie-man-schuelerinnen-und-schueler-fuer-deepfakes-sensibilisiert/">https://deutsches-schulportal.de/schule-im-umfeld/wie-man-schuelerinnen…</a></p> </li> </ul> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog-post.html.twig x field--node--uid.html.twig * field--node--blog-post.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> <span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">admin</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog-post.html.twig x field--node--created.html.twig * field--node--blog-post.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Di., 19.03.2024 - 08:57</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> Tue, 19 Mar 2024 07:57:51 +0000 admin 71 at https://montviso.de KI-generierter Content in Drupal am Beispiel einer Tierarzt-Homepage https://montviso.de/blog/ki-generierter-content-drupal-am-beispiel-einer-tierarzt-homepage <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog-post.html.twig x field--node--title.html.twig * field--node--blog-post.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">KI-generierter Content in Drupal am Beispiel einer Tierarzt-Homepage</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-layout--blog-post.html.twig * field--node--field-layout.html.twig * field--node--blog-post.html.twig x field--field-layout.html.twig * field--entity-reference-revisions.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <div class="field field--name-field-layout field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="8" class="field__item">8/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-8 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h1>KI-generierter Content in Drupal am Beispiel einer Tierarzt-Homepage</h1> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p><strong>Warum KI für Tierarzt-Homepages?</strong></p> <p>Wir haben KI-unterstütztes Content Management mit kostenlosen Accounts verschiedener KI-Plattformen getestet und dazu eine <a href="https://tierarztdemo.montviso.de/">Demo-Webseite für Tierärzte</a> erstellt.<br /> KI-Unterstützung ermöglicht Tierärzten, sich mit umfangreichen Informationen über ihre Leistungen und die Tierkrankheiten, auf die sie sich spezialisiert haben, zu profilieren und beim Google-Ranking zu punkten.</p> <p>Die Tierärzte haben in der Regel wenig Zeit, wenn sie ihre Praxis eröffnen und eine neue Homepage benötigen und sind dankbar, wenn sie die Texte nicht selbst schreiben müssen.</p> <p>Aber auch die Web-Dienstleister können Texte im vorliegenden Umfang mangels Fachkenntnissen nicht selbst schreiben.</p> <p>Deshalb liegt die Idee nahe, eine KI einzubinden und die PraxisinhaberInnen können diese dann fachlich beurteilen und gegebenenfalls anpassen.</p> <p>Die Texte zur <a href="https://tierarztdemo.montviso.de/de/krankheiten-praxis-bovis">Beschreibung der Tierkrankheiten</a> sind besonders geeignet aus den folgenden Gründen:</p> <ul> <li> <p>Der Aufbau der Inhalte ist immer gleich. Wir haben z.B. gewählt: Symptome, die ein Tierhalter erkennt, Diagnoseverfahren des Tierarztes, Therapie und Tipps für Tierhalter zur Vorbeugung.</p> </li> <li> <p>Die Inhalte sind in der Regel nicht tagesaktuell</p> </li> <li> <p>Die Inhalte unterliegen keiner kreativen Schöpfungshöhe, so dass man keine Verstöße gegen Urheberrecht fürchten muss.</p> </li> <li> <p>Der Stand der Technik bei der Behandlung solcher Krankheiten ist bekannt und die Qualität der erzeugten Texte ist hoch.</p> </li> </ul> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--button--default.html.twig * paragraph--button.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--button paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-ausrichtung--button.html.twig * field--paragraph--field-ausrichtung.html.twig * field--paragraph--button.html.twig * field--field-ausrichtung.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-ausrichtung field--type-list-string field--label-inline"> <div class="field__label">Ausrichtung</div> <div class="field__item">Mittig</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-hintergrund--button.html.twig * field--paragraph--field-hintergrund.html.twig * field--paragraph--button.html.twig * field--field-hintergrund.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-hintergrund field--type-list-string field--label-hidden field__item"><span>bg-primary</span>Hintergrund 1</div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-buttonlink--button.html.twig x field--paragraph--field-buttonlink.html.twig * field--paragraph--button.html.twig * field--field-buttonlink.html.twig * field--link.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-buttonlink.html.twig' --> <div class="field text-center m-0 mt p-0 field--name-field-buttonlink field--type-link field--label-hidden field__items"> <div class="bg-primary field__item"><a href="https://tierarztdemo.montviso.de/">Zur Demo-Webseite für Tierärzte</a></div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-buttonlink.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p><strong>Gründe die gegen einen Einsatz von KI sprechen</strong></p> <p>Man kann von künstlicher Intelligenz und ihrer disruptiven Ausbreitung halten, was man will, man kommt kaum darum herum, sich damit zu beschäftigen.<br /> Die Gründe, keine KI zur Erzeugung von Texten für Webseiten einzusetzen, sind vielfältig und wir betrachten diese und prüfen, ob sie für unsere Situation relevant sind.</p> <ul> <li> <p><strong>Mangelnde Kreativität und Originalität</strong><br /> Texte über Tierkrankheiten sollten dem Stand der Technik entsprechen und Tierhalter objektiv informieren. Kreativität und Originalität sind hier weniger gefragt.</p> </li> <li> <p><strong>Fehlendes emotionales Verständnis</strong><br /> Wenn die Webseite eine emotionale Verbindung zu den Lesern herstellen soll, könnten menschliche Autoren besser in der Lage sein, dies durch ihre Erfahrung und Empathie zu erreichen. Da es sich dabei nur um Nuancen handelt, können die Texte diesbezüglich einfach angepasst werden.</p> </li> <li> <p><strong>Fehlende Anpassung an Zielgruppen</strong><br /> Jede Praxis hat eine spezielle Zielgruppe, die z.B. davon abhängt, ob sie sich auf dem Land oder in der Stadt befindet und ob ihre Kunden vorwiegend professionelle Tierhalter mit Vermarktungsabsichten sind, oder private Tierhalter mit enger emotionaler Bindung an das Tier. Hier kann man schon viel erreichen, wenn man den Prompt entsprechend anpasst.<br /> Da die Praxis von Dr. Maximilian Bovis mehrere Ärzte beschäftigt, die alle einen anderen fachlichen Schwerpunkt haben, werden mehrere Zielgruppen angesprochen und der Prompt ist deshalb neutral gehalten.<br /> Hier ist auch Feinarbeit angesagt und ein Beitrag über eine Katzenkrankheit kann anders formuliert werden, als ein solcher über eine Rinderkrankheit.<br /> Bei automatisierter Einbindung von KI mit API könnte man dem Prompt auch abhängig von der ausgewählten Kategorie Tierart, eine unterschiedliche Zielgruppen-Anweisung mitgeben.</p> </li> <li> <p><strong>Fehlende fachliche Qualität der Texte</strong><br /> Statistiken über KI zeigen oft eine erschreckend hohe Anzahl an Fehlern.<br /> Um fehlerhafte Daten zu vermeiden, macht es Sinn, wie oben beschrieben, die unterschiedlichen KI-Programme mit dem gleichen Prompt zu testen. In spezifischen Fachgebieten oder Nischen kann die Qualität bei der einen, oder bei der anderen KI besser sein, je nach Schwerpunkt der Daten, mit denen sie trainiert wurde.</p> <p>Wie schon geschrieben, benötigen die Texte eine achtsame Korrektur durch eine Person mit fachlicher Expertise. Natürlich sind Texte, die mit kostenpflichtigem Account erstellt wurden, schon alleine deshalb besser, weil sie auf neuerem Wissensstand sind. Aber auch dann sollte man sich nicht blind darauf verlassen.<br /> In unserem Fall, reicht ein Wissen über Tierkrankheiten in der Regel auch dann aus, wenn es schon zwei Jahre alt ist.</p> </li> <li> <p><strong>Kulturelle Nuancen</strong><br /> Die KI wird vorwiegend mit englischsprachigen Texten trainiert. Deshalb kann es vorkommen, dass in deutschen Texten kulturelle oder sprachliche Nuancen nicht berücksichtigt sind.<br /> Auch wird ein Tierarzt im Schweinegürtel Norddeutschlands evt. andere Nuancen setzen, als ein Tierarzt, der seine Praxis im Allgäu hat und Kunden auf Senn-Alpen besucht.<br /> Auch hier reichen schon wenige Anpassungen, um die Texte nachträglich zu verbessern.</p> </li> <li> <p><strong>Die Gefahren von Urheberrechtsverletzungen bei der Generierung von Webseitentexten mit KI</strong><br /> Diese Gefahren entstehen in der Regel, wenn die KI-Modelle auf trainierten Daten basieren, die urheberrechtlich geschützte Texte oder Inhalte enthalten.KI-Modelle lernen Muster und Strukturen aus den Trainingsdaten. Es kann sogar vorkommen, dass die generierten Texte aufgrund dieser Muster Ähnlichkeiten mit vorhandenen geschützten Inhalten aufweisen, selbst wenn dies unbeabsichtigt geschieht.<br /> Wie bereits geschrieben, unterliegen die Texte für Tierkrankheiten keiner besonderen Schöpfungshöhe und könnten ebenso händisch nach einer Google-Suche ausgewertet werden. In der Regel schreibt die KI die Texte jedesmal neu auf Basis von Wahrscheinlichkeiten bei der Wortwahl.</p> </li> <li> <p><strong>Doppelter Content und Verwendung von KI könnte durch Google &amp; Co abgestraft werden</strong><br /> Fragen wir doch einfach mal OpenAi, wie hoch die Gefahr ist, dass es durch diese generierten Texte zu Problemen mit Suchmaschinen-Ranking kommt:<br /> ChatGPT antwortet:<br /> <i>»Diese Prompts sind spezifisch für die Anforderungen der Tierarzt-Homepage, und es wird vermieden, bereits existierende Texte oder Inhalte direkt zu übernehmen. Die klare Steuerung minimiert die Wahrscheinlichkeit von generiertem Content, der bereits auf anderen Webseiten vorhanden ist.«</i></p> <p>Google selbst stellt klar, dass dies kein Problem darstellt, wenn die Texte mit der KI für Menschen geschrieben wurden und nicht für die Suchmaschinen.<br /> <a href="https://twitter.com/searchliaison/status/1613462881248448512">https://twitter.com/searchliaison/status/1613462881248448512</a><br /> Solange man mit der KI Texte produziert, die einen echten Mehrwert für Webseiten-Besucher bieten, ist man also auf der sicheren Seite.</p> </li> </ul> <p><strong>Vorgehen bei der Einrichtung des Systems mit Unterstützung durch kostenfreie KI:</strong></p> <p>An dieser Stelle punktet unser Content Management System Drupal wieder einmal mit densogenannten Inhaltstypen. In unserem Beispiel mit der Demo-Webseite für Tierärzte sind es die Inhaltstypen Krankheiten und Leistungen, für die wir jeweils eine Eingabemaske erzeugt haben.</p> <p>Betrachten wir die Maske für den Inhaltstyp Krankheiten näher:</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:15px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">15</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-rahmen-farbe--bild.html.twig * field--paragraph--field-rahmen-farbe.html.twig * field--paragraph--bild.html.twig * field--field-rahmen-farbe.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-rahmen-farbe field--type-list-string field--label-inline"> <div class="field__label">Rahmen-Farbe</div> <div class="field__item"><span>bg-secondary</span>Rahmen 2</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-ausrichtung--bild.html.twig * field--paragraph--field-ausrichtung.html.twig * field--paragraph--bild.html.twig * field--field-ausrichtung.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-ausrichtung field--type-list-string field--label-inline"> <div class="field__label">Ausrichtung</div> <div class="field__item">Mittig</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden text-center bordercolor-secondary field__items"> <div class="text-center bordercolor-secondary field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/eingabemaske.jpg" width="1023" height="768" alt="Eingabemaske für KI-generierter Content in Drupal am Beispiel einer Tierarzt-Homepage" title="Eingabemaske für KI-generierter Content in Drupal am Beispiel einer Tierarzt-Homepage" loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p><strong>So kann die Inhaltserzeugung ablaufen:</strong></p> <p>Entweder wir als Web-Diensthalter bekommen vom Tierarzt aus unserem Beispiel, Dr. Maximilian Bovis, der uns mit der Erstellung einer neuen Homepage beauftragt hat, eine Liste der Krankheiten aus dem Behandlungs-Portfolio der Praxis.<br /> Oder Herr Dr. Bovis bzw. eine Person aus seinem Team legt die Inhalte selbst an. Das ist ja in Drupal einfach möglich, auch wenn keine besonderen IT-Kenntnisse vorliegen.</p> <p>In der Eingabemaske wird der Titel eingegeben, der gleichzeitig die Krankheit darstellt.<br /> Es hat sich als vorteilhaft für die Qualität der erzeugten Texte erwiesen, im Prompt nicht nur den Namen der Krankheit, sondern auch noch die Tierart zu nennen, bei der die Krankheit bespnders häufig vorkommt.</p> <p>Für die spätere Darstellung haben wir eine Kategorie mit den Tierarten erstellt, die in der Praxis von Dr. Bovis bevorzugt behandelt werden. Wenn diese beiden Eingaben zum Titel und zur Tierart gemacht sind, wird der Inhalte einmal abgespeichert.</p> <p>Nun erscheint unter dem Feld für Symptome der Prompt, in dem der Platzhalter &lt;title&gt; mit Hilfe einer kleinen Programmierung durch die Krankheit im Titelfeld ersetzt wurde.<br /> Darunter gibt es eine Linkliste, aus der man die bevorzugte KI-Plattform ansteuern und den Prompt einfüttern kann.</p> <p>Das Ergebnis aus der KI wird in das Feld Symptome eingefügt und kann mit Text-Formatierungs-Werkzeugen des Drupal-Editors weiter angepasst werden.</p> <p><strong>Vergleich von KI-Plattformen: Warum ChatGPT?</strong></p> <p>Wir haben die folgenden KI-Plattformen getestet, die einen kostenlosen Account zur Verfügung stellen.</p> <ul> <li> <p><a href="https://chat.openai.com/" target="blank">Open AI</a></p> </li> <li> <p><a href="https://bard.google.com/" target="blank"><u>Google Bard</u></a></p> </li> <li> <p><a href="https://neuroflash.com/" target="blank"><u>Neuroflash</u></a></p> </li> <li> <p><a href="https://www.bing.com/search?q=Bing+AI&amp;showconv=1&amp;FORM=hpcodx" target="blank"><u>BING Chat</u></a></p> </li> </ul> <p>So kann man den gleichen Prompt mit den verschiedenen KI's testen.</p> <p>In unserem Beispiel zeigt sich, dass die Qualität bei ChatGPT am Besten ist.</p> <p>Nicht nur, was die fachlichen Ergebnisse angeht, sondern vor allem, weil unsere Formatierungswünsche 1:1 übernommen werden.<br /> Wenn diese Angaben fehlen, dann wird die Überschriften manchmal im Fettdruck erzeugt, manchmal mit Listen-Punkten oder Sternen und manchmal mit Nummerierung.<br /> Wir wünschen eine einheitliche Formatierungen auf allen Seiten zum Thema Krankheit und das erreichen wir bei ChatGPT mit dem gewählten Prompt sehr gut.</p> <p>Noch mal zur Erinnerung: Wir reden vom KI-Modell ChatGPT 3.5 von OpenAi, das kostenfrei genutzt werden kann.</p> <ul> </ul> <p><strong>Unser Beispiel-Prompt </strong></p> <p>Unser Beispielprompt für das Feld Symptome lautet:</p> <pre> »Bitte agiere als meine Web-Texterin und schreibe einen gut gegliederten Text zum Thema: Auf welche Symptome muss ein Tierhalter achten, wenn er bei seinem Tier Klassische Schweinepest (KSP) vermutet? Bitte schreibe einen Text in einfacher Sprache. Mache nach der Überschrift einen Zeilenumbruch und füge eine Leerzeile vor einer neuen Überschrift ein! Formatiere die Überschrift nicht als Aufzählung, mache keine Nummerierung und mache keine Sterne davor!«</pre> <p>Nun kann man sich streiten, ob man »Bitte« sagen muss, wenn man einen Prompt an die KI übergibt. Macht der Gewohnheit. ;-)</p> <p><strong>Zukunftsausblick: Integration mit Content Management Systemen (CMS):</strong></p> <p>Es ist schon ein enormer Vorteil, die Texte nicht selbst schreiben zu müssen, aber wäre es nicht schöner, sich auch das Copy + Paste in eine KI-Plattform zu sparen?</p> <p>Das geht in Drupal mit Modulen, von denen bereits zahlreiche für OpenAI, Google Cloud, Microsoft Face API, Azur Microsoft, NLP Cloud, OCR-Dienste wie Google Document AI und Stable Diffusion vorliegen.</p> <p>All diese Module benötigen einen kostenpflichtigen Account und einen API Key und die Integration verursacht wesentlich höhere Kosten, als oben beschriebenes Beispiel.</p> <p>Im Vorfeld wird man das Aufgabenfeld also mit dem Kunden möglichst präzise definieren und einen Anbieter wählen, der die Aufgabe in Relation zu anfallenden Kosten am Besten erledigt.</p> <p>Das kann dann neben der oben beschriebenen Textgenerierung auch Texterkennung, Bilderkennung, Bildgenerierung und vieles mehr sein.</p> <p>In einem späteren Blog-Artikel werden wir uns mit der Frage beschäftigen, welche Module für Drupal bereits stabil oder in einem fortgeschrittenen Stadium der Erstellung befinden und wie man sie für die unterschiedlichen Themenfelder einbinden kann.</p> <p><strong>Handlungsempfehlung und Anpassungsmöglichkeiten:</strong></p> <p>Auf der Demoversion haben wir die generierten KI-Texte bewusst unverändert gelassen, damit man die Qualität abschätzen kann. Die Texte sollten selbstverständlich überarbeitet werden, bevor man damit als Tierarztpraxis an die Öffentlichkeit geht.</p> <p>Der Sprachstil kann bereits im Prompt beeinflusst werden. Je nachdem, ob man ein Fachpublikum ansprechen möchte, oder Privatpersonen, beauftragt man eine einfache Sprache oder professionelle Ausdrucksweise. Man kann der KI auch mitgeben, ob die Besucher der Webseite mit Du oder Sie angesprochen werden sollen und ob der Text eher formal oder locker formuliert werden soll.</p> <p>Die Einhaltung dieser Stilvorgaben, der Formatierung und vor allem die Qualität der Fachinhalte, sollte eine Person mit entsprechender Expertise gegenlesen.</p> <p>Auch wenn Google ausdrücklich behauptet, KI Texte nicht im Ranking zu benachteiligen und die KI-Texte sich auch bei gleichem Fachinhalt immer etwas unterscheiden, kann es vorteilhaft sein, ganzen Text-Passagen einen individuellen Schreibstil aufzudrücken.</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--button--default.html.twig * paragraph--button.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--button paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-ausrichtung--button.html.twig * field--paragraph--field-ausrichtung.html.twig * field--paragraph--button.html.twig * field--field-ausrichtung.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-ausrichtung field--type-list-string field--label-inline"> <div class="field__label">Ausrichtung</div> <div class="field__item">Mittig</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-hintergrund--button.html.twig * field--paragraph--field-hintergrund.html.twig * field--paragraph--button.html.twig * field--field-hintergrund.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-hintergrund field--type-list-string field--label-hidden field__item"><span>bg-primary</span>Hintergrund 1</div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-buttonlink--button.html.twig x field--paragraph--field-buttonlink.html.twig * field--paragraph--button.html.twig * field--field-buttonlink.html.twig * field--link.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-buttonlink.html.twig' --> <div class="field text-center m-0 mt p-0 field--name-field-buttonlink field--type-link field--label-hidden field__items"> <div class="bg-primary field__item"><a href="https://tierarztdemo.montviso.de/">Zur Demo-Webseite für Tierärzte</a></div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-buttonlink.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog-post.html.twig x field--node--uid.html.twig * field--node--blog-post.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> <span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">admin</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog-post.html.twig x field--node--created.html.twig * field--node--blog-post.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Fr., 09.02.2024 - 11:03</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> Fri, 09 Feb 2024 10:03:46 +0000 admin 70 at https://montviso.de Ein Drupal Modul erstellen mit Hilfe von ChatGPT https://montviso.de/blog/ein-drupal-modul-erstellen-mit-hilfe-von-chatgpt <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog-post.html.twig x field--node--title.html.twig * field--node--blog-post.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">Ein Drupal Modul erstellen mit Hilfe von ChatGPT</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-layout--blog-post.html.twig * field--node--field-layout.html.twig * field--node--blog-post.html.twig x field--field-layout.html.twig * field--entity-reference-revisions.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <div class="field field--name-field-layout field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h1>Ein Drupal Modul erstellen mit Hilfe von ChatGPT</h1> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Man kann von der disruptiven Macht der Künstlichen Intelligenz halten, was man will, es macht auf jeden Fall Sinn, sich damit zu beschäftigen und die Grenzen auszuloten.<br /> Da ist auch spannend, wie viel ChatGPT von Drupal versteht, wenn man mit der kostenlosen Version ChatGPT 3.5 arbeitet.</p> <p>Dieser kleine Versuch zeigt auf, wie man den Prompt formulieren kann und auf welchem Stand der Drupal Versionen ChatGPT im Dezember 2023 ist.</p> <h2>Prompt:</h2> <p>Wir sagen ausdrücklich, dass das Modul mit drush erzeugt werden soll. Andernfalls wird Drupal Console empfohlen, was ich nicht nutze.<br /> Natürlich kann man auch damit arbeiten.</p> <blockquote> <p>Bitte entwickle ein Modul für Drupal, das jedes Vorkommen des Wortes "schließlich" in einem Textform rot färbt. Verwende dabei die Hilfsklassen von Bootstrap 5. Verwende zum Erstellen des Moduls drush.</p> </blockquote> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Ergebnis</h2> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Dies ist das unveränderte Ergebnis, das ChatGPT ausgibt, bzw. ich habe den Text so manipuliert, dass er den Namen des Moduls enthält, das ich "testchatgpt" genannt habe.</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite bg-danger paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="8" class="field__item">8/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-hintergrund--layout-paragraphs.html.twig * field--paragraph--field-hintergrund.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-hintergrund.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-hintergrund field--type-list-string field--label-inline"> <div class="field__label">Hintergrund</div> <div class="field__item"><span>bg-danger</span>Hintergrund 4</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-8 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Um ein Drupal-Modul mit Drush zu erstellen, das jedes Vorkommen des Wortes "schließlich" in einem Text rot färbt und dabei Bootstrap 5 Hilfsklassen verwendet, kannst du die folgenden Schritte befolgen:</p> <p><strong>1. Modul mit Drush erstellen:</strong></p> <p>Öffne dein Terminal und wechsle zum Drupal-Root-Verzeichnis. Führe dann den folgenden Befehl aus, um ein neues Modul mit Drush zu erstellen:</p> <pre> <code>drush generate module</code></pre> <p>Folge den Anweisungen, um die erforderlichen Informationen einzugeben, wie den Modulnamen, die Beschreibung usw.</p> <p><strong>2. Hinzufügen von JavaScript und CSS:</strong></p> <p>Öffne die generierte <code>.info.yml</code>-Datei in deinem Modulverzeichnis und füge die folgenden Zeilen hinzu, um deine JavaScript- und CSS-Dateien zu laden:</p> <pre> <code>name: 'testchatgpt'</code> <code>type: module</code> <code>description: 'Ein Modul, das das Wort "schließlich" rot färbt.'</code> <code>core_version_requirement: ^8 || ^9</code> <code>package: Custom</code> <code>libraries:</code> <code> </code><code>- 'testchatgpt/testchatgpt.libraries.yml'</code> <code>stylesheets:</code> <code> </code><code>- 'testchatgpt/css/style.css'</code> </pre> <p>Erstelle dann die Ordner <code>js</code> und <code>css</code> in deinem Modulverzeichnis. Füge die JavaScript-Datei <code>testchatgpt.js</code> in <code>js</code> und die CSS-Datei style<code>.css</code> in <code>css</code> hinzu.</p> <p><strong>3. JavaScript hinzufügen:</strong></p> <p>In der erstellten <code>testchatgpt</code><code>.js</code>-Datei füge den folgenden Code hinzu:</p> <pre> <code>(function ($, Drupal) {</code> <code> </code><code>Drupal.behaviors.deinModul = {</code> <code> </code><code>attach: function (context, settings) {</code> <code> </code><code>// Markiere das Wort "schließlich" rot.</code> <code> </code><code>$('body', context).once('deinModul').each(function () {</code> <code> </code><code>var content = $(this).html();</code> <code> </code><code>var markedContent = content.replace(/schließlich/g, '&lt;span class="text-danger"&gt;schließlich&lt;/span&gt;');</code> <code> </code><code>$(this).html(markedContent);</code> <code> </code><code>});</code> <code> </code><code>}</code> <code> </code><code>};</code> <code>})(jQuery, Drupal);</code></pre> <p><strong>4. CSS hinzufügen:</strong></p> <p>In der erstellten <code>dein_modul.css</code>-Datei füge den folgenden Code hinzu:</p> <pre> <code>/* Füge Bootstrap-Hilfsklassen hinzu, um die rote Farbe zu definieren */</code> <code>.text-danger {</code> <code> </code><code>color: #dc3545 !important;</code> <code>}</code></pre> <p><strong>5. Modul aktivieren:</strong></p> <p>Aktiviere das erstellte Modul mit Drush:</p> <pre> <code>drush en testchatgpt</code></pre> <p><strong>6. Cache leeren:</strong></p> <p>Leere den Drupal-Cache, um die Änderungen wirksam werden zu lassen:</p> <pre> <code>drush cr</code></pre> <p>Nach diesen Schritten sollte jedes Vorkommen des Wortes "schließlich" in einem Text rot markiert werden, und Bootstrap 5 Hilfsklassen werden für die rote Farbe verwendet. Beachte, dass dies eine einfache Lösung ist und möglicherweise Anpassungen erfordert, um spezielle Anforderungen zu erfüllen.</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Korrekturen</h2> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Die folgenden Änderungen habe ich gemacht:</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite bg-danger paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-hintergrund--layout-paragraphs.html.twig * field--paragraph--field-hintergrund.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-hintergrund.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-hintergrund field--type-list-string field--label-inline"> <div class="field__label">Hintergrund</div> <div class="field__item"><span>bg-danger</span>Hintergrund 4</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p><strong>1</strong>. <strong><code>info.yml</code>-Date</strong></p> <p>Die Version wurde von drush für Drupal 8 oder 9 angelegt.<br /> Drush macht es gleich richtig und schreibt stattdessen:</p> <pre> <code>core_version_requirement: ^9 || ^10</code></pre> <p>Die folgenden Zeilen sind nicht nötig und wurden weg gelassen:</p> <pre> <code>libraries:</code> <code> </code><code>- 'testchatgpt/testchatgpt.libraries.yml'</code> <code>stylesheets:</code> <code> </code><code>- 'testchatgpt/css/style.css'</code> </pre> <p><strong>2. JavaScript angepasst:</strong></p> <p>In der erstellten <code>testchatgpt</code><code>.js</code>-Datei habe ich alle Vorkommen von <code>$ durch jQuery ersetzt und außerdem die folgende Zeile</code></p> <pre> <code>$('body', context).once('deinModul').each(function () {</code><code> </code></pre> <p>durch</p> <pre> jQuery('.text-formatted .field__item').each(function () {</pre> <p>ersetzt.</p> <p><strong>3. Libraries-Datei angepasst:</strong></p> <pre> Die von ChatGPT hinzugefügten Zeilen habe ich durch diese ersetzt:<strong> </strong># Custom module library for general purposes. custom: version: 1.x css: theme: css/style.css: {} js: js/testchatgpt.js: {} </pre> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Testen</h2> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Bei einem Inhaltstyp mit formatiertem Textfeld wird ein Text eingefügt und die Ausgabe kontrolliert.<br /> Die sieht jetzt korrekt so aus:</p> <p><img alt="Drupal Modul mit Unterstützung von ChatGPT erzeugen" data-entity-type="file" data-entity-uuid="ebf188af-39cc-4a2a-91c7-bdcd1518de83" src="/sites/default/files/inline-images/testtext.png" width="482" height="48" loading="lazy" /></p> <h2>Fazit:</h2> <p>Noch kann ein Laie mit den Angaben wohl kaum ein Drupal Modul erstellen.<br /> Aber als kleine Erinnerungshilfe, was alles getan werden muss, um die Struktur für so ein Modul zu erstellen, ist die Angabe durchaus brauchbar.<br /> Mit der kostenpflichtigen PRO-Version, wären die Angaben auch aktueller.</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog-post.html.twig x field--node--uid.html.twig * field--node--blog-post.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> <span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">admin</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog-post.html.twig x field--node--created.html.twig * field--node--blog-post.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Mo., 11.12.2023 - 11:24</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> Mon, 11 Dec 2023 10:24:09 +0000 admin 67 at https://montviso.de Checkliste für Webseiten-Relaunch https://montviso.de/blog/checkliste-fuer-webseiten-relaunch <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog-post.html.twig x field--node--title.html.twig * field--node--blog-post.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">Checkliste für Webseiten-Relaunch</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-layout--blog-post.html.twig * field--node--field-layout.html.twig * field--node--blog-post.html.twig x field--field-layout.html.twig * field--entity-reference-revisions.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <div class="field field--name-field-layout field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="10" class="field__item">10/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-10 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h1>Checkliste für Webseiten-Relaunch</h1> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-ausrichtung--bild.html.twig * field--paragraph--field-ausrichtung.html.twig * field--paragraph--bild.html.twig * field--field-ausrichtung.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-ausrichtung field--type-list-string field--label-inline"> <div class="field__label">Ausrichtung</div> <div class="field__item">Mittig</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden text-center field__items"> <div class="text-center field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/checkliste-webseiten-relaunch.jpg" width="1200" height="627" alt="Checkliste für Webseiten-Relaunch" title="Checkliste für Webseiten-Relaunch" loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Bei Drupal stehen - wie bei anderen CMS auch - immer wieder Sicherheitsupdates an.<br /> Aktuell migrieren wir viele Webseiten von Drupal 6 / 7 / 8 / 9 auf Drupal 10 um.</p> <p>Solche Upgrades über Versionensprünge sind technisch anspruchsvoll und wenn der Aufwand schon anfällt, ist es Zeit, über einen umfangreicheren Relaunch nachzudenken.<br /> Dann tauchen immer wieder die gleichen Fragen auf, die wir hier in Form einer Checkliste zusammen fassen:</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Welche Arten von Website-Modernisierungen gibt es?</h2> <h3><strong>Rebrush: </strong></h3> <p>geringe Änderungen:</p> <ul> <li> <p>Technik, wie z.B. Sicherheitsupdates</p> </li> <li> <p>Usability und einfachere Pflegbarkeit</p> </li> <li> <p>Content<br /> &nbsp;</p> </li> </ul> <h3><strong>Redesign: </strong></h3> <p>Ein neues Corporate Design der Firma erfordert:</p> <ul> <li> <p>neues Logo</p> </li> <li> <p>andere Schriften</p> </li> <li> <p>frischere Farben</p> </li> <li> <p>Inhaltsblöcke werden anders angeordnet<br /> &nbsp;</p> </li> </ul> <h3><strong>Vollständiger Relaunch: </strong></h3> <p>Höhere Ansprüche an Prozess-Optimierung, neue Geschäftsfelder, Wechsel zu einem neues CMS erfordern einen vollständigen Umbau in Bezug auf:</p> <ul> <li> <p>Umfang</p> </li> <li> <p>Aufbau</p> </li> <li> <p>Design</p> </li> <li> <p>Technik</p> </li> <li> <p>Workflows innerhalb der Firma</p> </li> <li> <p>Kommunikation mit den Kunden</p> </li> </ul> <p>&nbsp;</p> <h2>Konzeptionierung des Relaunchs</h2> <h3><strong>Welche Fragen stellen sich ganz am Anfang? </strong></h3> <ul> <li> <p>Wer beteiligt sich auf Kunden- bzw. Agenturseite und wie sind die Aufgaben verteilt?</p> </li> <li> <p>Wie groß sind die Zeit-Ressourcen?</p> </li> <li> <p>Welche fachlichen Kenntnisse liegen im Unternehmen vor?</p> </li> <li> <p>Wie hoch ist das zur Verfügung stehende Budget?<br /> &nbsp;</p> </li> </ul> <h3><strong>Wie wird diese Phase abgewickelt? </strong></h3> <ul> <li> <p>Soll es einen Workshop geben? Vor Ort beim Kunden oder in Video-Konferenz?</p> </li> <li> <p>Lässt sich das Konzept mit guter Kommunikation per Email oder Telefonaten erstellen?<br /> &nbsp;</p> </li> </ul> <h3><strong>Inspirieren lassen </strong></h3> <ul> <li> <p>Wie hat sich die Branche geändert?</p> </li> <li> <p>Wie stellen sich Mitbewerber auf?</p> </li> <li> <p>Welche Ideen und Anforderungen in Bezug auf neue Feature, Verbesserungsvorschläge wurden von den Kunden genannt?</p> </li> </ul> <ul> <li> <p>Welche neuen Webtechniken gibt es in der Zwischenzeit?</p> </li> <li> <p>Welche neuen Moden im Webdesign gibt es?<br /> &nbsp;</p> </li> </ul> <h3><strong>Was ist an der aktuellen Website verbesserungswürdig? </strong></h3> <ul> <li> <p>Ist sie ein Sicherheitsrisiko?</p> </li> <li> <p>Gibt es konkrete Fehler?</p> </li> <li> <p>funktioniert sie nicht auf der neuen PHP-Version beim Hoster?</p> </li> <li> <p>Entspricht sie nicht mehr den Anforderungen an das deutsche / EU-Recht?</p> </li> <li> <p>Funktioniert sie nicht an mobilen Geräten?</p> </li> <li> <p>Gibt es viele fehlerhafte Links wegen ungepflegtem Wildwuchs?</p> </li> <li> <p>Funktionieren Vorschaubilder bei Social Medien nicht?</p> </li> <li> <p>Ist die Performance schlecht?</p> </li> <li> <p>Stimmt die Conversion nicht? (Verkäufe, Buchungen...)</p> </li> <li> <p>Ist das Ranking in den Suchmaschinen schlecht?</p> </li> <li> <p>Wird sie von den Suchmaschinen nicht gut Indiziert?</p> </li> <li> <p>Gibt es doppelten Content?</p> </li> <li> <p>Zeigt die Analyse der Log-Dateien Abbrüche an immer gleichen Stellen oder zu geringe Verweildauer?</p> </li> <li> <p>Passen die Inhalte nicht mehr zu den Geschäftsfeldern?</p> </li> <li> <p>Gibt es Inhalte, die nicht selbsterklärend sind?</p> </li> <li> <p>Brechen Kunden ab, weil Texte zu lang und nicht fürs Netz optimiert sind?</p> </li> <li> <p>Werden manche Inhalte nie betrachtet?</p> </li> <li> <p>Interagiert die Webseite nicht mit Kunden, sondern ist zu statisch?</p> </li> <li> <p>Welche Inhalte können ersatzlos gestrichen werden?</p> </li> <li> <p>Wirkt sie altbacken?</p> </li> <li> <p>Ist die Webseite nur von teuren Programmieren pflegbar, statt im eigenen Haus?<br /> &nbsp;</p> </li> </ul> <h3><strong>Welche Ziele hat der Relaunch?</strong></h3> <ul> <li> <p>Bessere Sicherheit</p> </li> <li> <p>Neue Rechtsgrundlagen abbilden</p> </li> <li> <p>Höhere Ladegeschwindigkeit</p> </li> <li> <p>Einstieg in Social Media ermöglichen</p> </li> <li> <p>Neue Geschäftsfelder integrieren</p> </li> <li> <p>Neue Zielgruppen ansprechen</p> </li> <li> <p>Kommunikation mit vorhandener Zielgruppe verbessern</p> </li> <li> <p>Nutzerführung verbessern</p> </li> <li> <p>Bessere Pflegbarkeit durch Firmenmitarbeiter ohne Programmierkenntnisse</p> </li> <li> <p>Prioritäten der Seiten neu setzen</p> </li> <li> <p>Bessere SEO-Tauglichkeit</p> </li> <li> <p>Mehr oder besseren Content schaffen</p> </li> <li> <p>Prozesse optimieren, um Arbeitsaufkommen zu verringern</p> </li> <li> <p>Automatisierungen einführen mit Hilfe von Chatbots</p> </li> <li> <p>Moderneres Design</p> </li> <li> <p>Kundendaten sammeln</p> </li> <li> <p>Mehrsprachigkeit einführen</p> </li> <li> <p>Komplett neue Technik / CMS<br /> &nbsp;</p> </li> </ul> <h3><strong>Wer ist die aktuelle oder neue Zielgruppe?</strong></h3> <ul> <li> <p>Liegt ein ausführliche Zielgruppenanalyse vor?</p> </li> <li> <p>Sind die Bedürfnisse der Wunsch-Kunden bekannt?</p> </li> <li> <p>Welche Kundentypen sind abgesprungen und sollen reaktiviert werden?</p> </li> <li> <p>Welche Kundengruppen sollen NICHT angesprochen werden, weil sie nur Arbeit machen?</p> </li> <li> <p>Welche Suchbegriffe nutzt der Wunsch-Kunde, um genau DIESE Webseite zu finden?</p> </li> <li> <p>Was sind die Top-Keywords, auf die die Webseite künftig optimiert werden soll und woran sich Texte und Design orientieren?</p> </li> </ul> <p>&nbsp;</p> <h2>Konkretisierung des Relaunchs</h2> <ul> <li> <p>Welche der genannten Ziele und Verbesserungswünsche haben Prio?</p> </li> <li> <p>Welche Personen sind entscheidungsbefugt und wer ist noch im Team (Im Unternehmen und auf Agenturseite)?</p> </li> <li> <p>Welcher Typ von Relaunch deckt die ermittelten Ziele ab?</p> </li> <li> <p>Gibt es einen Fixtermin, zu dem der Relaunch abgeschlossen sein MUSS?</p> </li> <li> <p>Gibt es externe Dienstleister, die mit ins Boot geholt werden müssen?</p> </li> <li> <p>Lässt sich das Projekt in mehrere Arbeitsphasen aufteilen, die getrennt durchgeführt und abgerechnet werden mit zwischenzeitlicher Livestellung?</p> </li> <li> <p>Lässt sich Künstliche Intelligenz verwenden, um neuen Content zu entwickeln oder vorhandenen Content zu verbessern? (Texte in leichterer Sprache, bessere Gliederung, straffere Texte)</p> </li> <li> <p>Braucht es Mehrsprachigkeit oder kann eine solche wegfallen und wer sorgt für Übersetzung?</p> </li> <li> <p>Werden vorhandene Filtermöglichkeiten genutzt oder können sie wegfallen</p> </li> <li> <p>Werden neue Suchmöglichkeiten benötigt?</p> </li> <li> <p>Ist die Farbpalette / Schriftart noch zeitgemäß bzw. was lässt sich im Rahmen der CI verändern?</p> </li> <li> <p>Gibt es Schnittstellen zu Drittanbietern, die berücksichtigt werden müssen?</p> </li> <li> <p>Wie viel Flexibilität verträgt der Relaunch. Ist im Vorfeld ein Fixpreis gewünscht oder besteht ein Spielraum für weitere Ideen?</p> </li> <li> <p>Welche regelmäßigen Meilensteine sollen mit dem Kunden kommuniziert werden?</p> </li> <li> <p>Nach welchen Meilensteinen braucht es umfangreichere Tests und wer führt diese durch?</p> </li> <li> <p>Wie lassen sich SEO Einbußen durch den Relaunch vermeiden?</p> </li> <li> <p>Braucht es eine Schulung der Kunden-Mitarbeiter auf neue Features?</p> </li> <li> <p>Steht im Rahmen des Relaunch ein Hosterwechsel ins Haus?</p> </li> <li> <p>Erfordert die Produktivstellung eine Aktualisierung der zwischenzeitlich auf der Produktiv-Webseite neu angelegten Inhalte oder User und wer macht diese?<br /> Erfolgt sie evt. mit einer automatischen Übernahme per Script?</p> </li> <li> <p>Wer sorgt für Dokumentationen?</p> </li> </ul> <p>Sind alle Fragen beantwortet, dann lässt sich in den meisten Fällen ein Fixpreis nennen und technisch notwendige Veränderungen an der Webseite sind mit echtem Mehrwert verbunden.</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog-post.html.twig x field--node--uid.html.twig * field--node--blog-post.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> <span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">admin</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog-post.html.twig x field--node--created.html.twig * field--node--blog-post.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Do., 26.10.2023 - 10:16</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> Thu, 26 Oct 2023 08:16:11 +0000 admin 66 at https://montviso.de Upgrade von Drupal 9 auf 10 https://montviso.de/blog/upgrade-von-drupal-9-auf-10 <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog-post.html.twig x field--node--title.html.twig * field--node--blog-post.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">Upgrade von Drupal 9 auf 10</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-layout--blog-post.html.twig * field--node--field-layout.html.twig * field--node--blog-post.html.twig x field--field-layout.html.twig * field--entity-reference-revisions.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <div class="field field--name-field-layout field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h1>Upgrade von Drupal 9 auf 10</h1> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Die Migration von Drupal 9 auf Drupal 10 steht an, weil Drupal 9 nach November 2023 nicht mehr aktualisiert wird.</p> <p>Drupal 10 bringt einige Neuerungen.<br /> Ein Upgrade ist also nicht nur alternativlos, sondern ein weiterer Fortschritt in Sachen Sicherheit, Performance, Barrierefreiheit und Bedienbarkeit.</p> <p>Das Upgrade ist einfacher, als bei früheren Versionssprüngen. Aber man muss schon auch wissen, was man tut.</p> <p>In diesem Blog-Artikel informieren wir über</p> <ul> <li>die Neuigkeiten</li> <li>welche Werkzeuge es gibt, die das Upgrade vereinfachen</li> <li>den Standard-Prozess des Upgrades</li> <li>Tipps, falls es zu Fehlermeldungen kommt.</li> </ul> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="4" class="field__item">4/12</div> <div content="4" class="field__item">4/12</div> <div content="2" class="field__item">2/12</div> <div content="2" class="field__item">2/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol4' --> <!-- FILE NAME SUGGESTIONS: x mycol4.html.twig x mycol4.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol4.html.twig' --> <div class="col-md-12 row mycol4"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Inhaltsverzeichnis</h2> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-4 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><ul> <li><a href="#neuindrupal10">Was ist neu in Drupal 10?</a></li> <li><a href="#neuindrupal10">Checkliste vor Upgrade</a></li> <li><a href="#updateaufaktuelledrupa9">Aktualisiere die Drupal Installation auf die letzte Version 9</a></li> <li><a href="#pruefeaufphpversion">Update der PHP Version</a></li> <li><a href="#upgradestatus">Vorarbeiten mit dem Modul Upgrade Status</a></li> <li><a href="#deprecatedmodule">Veraltete Module</a></li> <li><a href="#deprecatedthemes">Veraltete Themes</a></li> </ul> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-4 spalte2 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><ul> <li><a href="#deinstalliertemodule">Deinstallierte Module</a></li> <li><a href="#custommodulethemes">Benutzerinstallierte Module und Themes aktualisieren</a></li> <li><a href="#moduleaktualisieren">Comunity-Module auf neuen Stand bringen</a></li> <li><a href="#modulenichtkompatibel">Vorgehen bei nicht kompatiblen Modulen</a></li> <li><a href="#eigentlichesupgradedrupal10">Upgrade auf Drupal 10</a></li> <li><a href="#troubleshootingcomposer">Troubleshooting</a></li> </ul> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-2 spalte3 col-12"> </div> <div class="col-md-2 spalte4 col-12"> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol4.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default" id="neuindrupal10"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-css-id--layout-paragraphs.html.twig * field--paragraph--field-css-id.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-css-id.html.twig * field--string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-css-id field--type-string field--label-inline"> <div class="field__label">CSS-ID</div> <div class="field__item">neuindrupal10</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Was ist neu in Drupal 10?</h2> <p>u.a.</p> <ul> <li>Das Claro-Admin-Theme ersetzt das Seven Theme</li> <li>Neues Standardtheme Olivero ersetzt Bartik.</li> <li>CKEditor 5 bringt noch mehr Bedienfreundlichkeit beim Einpflegen von Texten und Medien..</li> <li>Es gibt die Theme Starter Kit Tools für die Erstellung von eigenen Themes.</li> <li>Symfony 6 ist obligatorisch und das erfordert PHP 8.1.</li> <li>Es gibt einen Projekt-Browser, um im Backend direkt neue Module zu finden</li> <li>Die Core-Updates laufen automatisiert (noch experimentell).</li> <li>Bessere Layout Builder Funktionen erlauben Laien die Pflege von Inhalten in Blöcken und Spalten ohne Programmierkenntnissen.</li> <li>Es gibt bessere Bibliotheken für die Front-End-Entwicklung.</li> </ul> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default" id="neuindrupal10"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-css-id--layout-paragraphs.html.twig * field--paragraph--field-css-id.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-css-id.html.twig * field--string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-css-id field--type-string field--label-inline"> <div class="field__label">CSS-ID</div> <div class="field__item">neuindrupal10</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h1>Checkliste vor Upgrade</h1> <ul> <li>Ist die Seite komplett unter Composer Kontrolle?</li> <li>Wurde die Core Version der Installation auf die neueste (zuletzt veröffentlichte) Version von Drupal 9 (mindestens 9.4) aktualisiert?</li> <li>Bietet der Hoster die notwendigen System Voraussetzungen für Drupal 10?<br /> <a href="https://www.drupal.org/docs/system-requirements/php-requirements">https://www.drupal.org/docs/system-requirements/php-requirements</a></li> <li>Ist PHP im Frontend, wie auch auf der Konsole, in Version mindestens 8.1 verfügbar?</li> <li>Wurde mit <span class="mymonospace">composer why-not php</span> 8.1 gecheckt, ob einzelne Pakete ein Update brauchen, um unter 8.1 zu laufen?</li> <li>Verwendet das Projekt <span class="mymonospace">drupal/core-recommended</span> oder <span class="mymonospace">drupal/core</span>?<br /> Prüfe mit<br /> <span class="mymonospace">composer show drupal/core-recommended</span><br /> Falls <span class="mymonospace">drupal/core-recommended</span> installiert ist, werden die Pakete aufgezählt, andernfalls kommt<br /> <span class="mymonospace">"Package drupal/core-recommended not found"</span><br /> Wir unterstellen im weiteren Verlauf die Verwendung von<span class="mymonospace"> drupal/core-recommended</span></li> </ul> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default" id="updateaufaktuelledrupa9"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-css-id--layout-paragraphs.html.twig * field--paragraph--field-css-id.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-css-id.html.twig * field--string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-css-id field--type-string field--label-inline"> <div class="field__label">CSS-ID</div> <div class="field__item">updateaufaktuelledrupa9</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Aktualisiere die Drupal Installation auf die letzte Version 9, mindestens 9.4.*</h2> <p><strong>Temporär Rechte verändern</strong></p> <p><span class="mymonospace">chmod 777 web/sites/default<br /> chmod 666 web/sites/default/*settings.php<br /> chmod 666 web/sites/default/*services.yml</span></p> <p><strong>Update zur aktuellen Drupal 9 Core Version</strong></p> <p><span class="mymonospace">composer require drupal/core-recommended:9.5.4 drupal/core-composer-scaffold:9.5. 4 drupal/core-project-message:9.5.4 --update-with-all-dependencies</span></p> <p><strong>Datenbank-Update</strong></p> <p><span class="mymonospace">drush updatedb</span></p> <p><strong>Rechte wieder zurück stellen</strong></p> <p><span class="mymonospace">chmod 755 web/sites/default<br /> chmod 644 web/sites/default/*settings.php<br /> chmod 644 web/sites/default/*services.yml</span></p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default" id="pruefeaufphpversion"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-css-id--layout-paragraphs.html.twig * field--paragraph--field-css-id.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-css-id.html.twig * field--string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-css-id field--type-string field--label-inline"> <div class="field__label">CSS-ID</div> <div class="field__item">pruefeaufphpversion</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Update der PHP Version</h2> <p>Prüfe mit</p> <p><span class="mymonospace">composer require php:"^8.1"&nbsp; --no-update</span></p> <p>ob alle installierten Pakete kompatibel sind zu PHP 8.1</p> <p>Diese Version kann auch in der composer.json im Bereich require eingetragen werden.</p> <p><span class="mymonospace">"require": {<br /> &nbsp; "php": "&gt;=8.1"<br /> }</span></p> <p>Und danach mit update installiert werden:</p> <p><span class="mymonospace">composer update php</span></p> <p>Auf der Konsole stelle ich ebenfalls die Version für PHP auf 8.1.<br /> Das funktioniert bei meinem Hoster All-inkl so:</p> <p><span class="mymonospace">ln -sfv /usr/bin/php81 /usr/bin/php</span></p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default" id="upgradestatus"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-css-id--layout-paragraphs.html.twig * field--paragraph--field-css-id.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-css-id.html.twig * field--string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-css-id field--type-string field--label-inline"> <div class="field__label">CSS-ID</div> <div class="field__item">upgradestatus</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Vorarbeiten mit dem Modul Upgrade Status</h2> <p>Installiere die aktuelle Version des Moduls mit Composer und Drush, wie hier beschrieben:<br /> <a href="https://www.drupal.org/project/upgrade_status">https://www.drupal.org/project/upgrade_status</a></p> <p>Das kann <strong>Upgrade Status:</strong></p> <ul> <li>Prüft, ob Du eine Version von Drupal verwendest, die ein Upgrade unterstützt.</li> <li>Prüft, ob das System die Systemanforderungen der nächsten Hauptversion erfüllt.</li> <li>Interagiert mit Update Status, um über die Versionen der installierten Module zu informieren.</li> <li>Führt phpstan-Prüfungen und eine ganze Reihe anderer Prüfungen durch, um eventuell noch vorhandene Kompatibilitätsprobleme mit der nächsten Drupal-Hauptversion zu finden</li> <li>Arbeitet mit drush zusammen</li> </ul> <p>Nach der Installation ist der <strong>Upgrade Status Report</strong> hier aufzurufen:<br /> <a href="http://www.deinedomain.de/admin/reports/upgrade-status">www.deinedomain.de/admin/reports/upgrade-status</a></p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/upgrade-status1.jpg" width="1799" height="548" alt="Upgrade Status Rubrik Drupal Core und Hosting-Umgebung" title="Upgrade Status Rubrik Drupal Core und Hosting-Umgebung" loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p><strong>Das sehen wir auf dem Bild:</strong></p> <p>Die roten Meldungen bezüglich<strong> Core-Version</strong> verschwinden nach oben beschriebenem Update auf aktuelle Drupal 9-Version.</p> <p>Die <strong>PHP-Version</strong> stellen wir beim Hoster für diese Domain auf mindestens 8.1.</p> <p>Die <strong>veralteten Berechtigungen</strong> für nicht mehr vorhandene Paragraphen oder deinstallierte Module müssen entfernt werden.<br /> Das funktioniert aber erst, wenn die entsprechenden Module und Themes deinstalliert und auch mit composer entfernt wurden.<br /> Deshalb überspringen wir diesen Punkt zuerst und kümmern uns erst um den nächsten Punkt im Upgrade Status Report.</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default" id="deprecatedmodule"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-css-id--layout-paragraphs.html.twig * field--paragraph--field-css-id.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-css-id.html.twig * field--string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-css-id field--type-string field--label-inline"> <div class="field__label">CSS-ID</div> <div class="field__item">deprecatedmodule</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Deprecated Modules</h2> <p>Im Upgrade Status Report werden auch veraltete Module angezeigt, die in Drupal 10 nicht mehr unterstützt werden.<br /> Das sind z.B. CKEditor 4, Color, Quick Edit, RDF, Bartik und Seven.<br /> Bei Dir können das weitere Module oder Themes sein.</p> <p>Hier gibt es weitere Infos dazu:<br /> <a href="https://www.drupal.org/node/3223395">https://www.drupal.org/node/3223395</a></p> <p>Je nach Art des Modules wird es beim Upgrade auf D10 automatisch entfernt, oder es muss vorab entfernt werden.</p> <p>Beim CKEditor ist folgendes Vorgehen die Lösung:</p> <ul> <li>Wir aktivieren im Backend den CKEditor 5, der in neueren D9 Versionen bereits zur Verfügung steht.</li> <li>Wir gehen in die Konfiguration der Text-Formate und stellen dort jedes Textformat, das bisher mit CKEditor bearbeitet wird, auf CKEditor 5 um und speichern diese Konfiguration.</li> <li>Danach deaktivieren wir ckeditor im Backend.</li> </ul> <p>Für Module, die auf CKEditor 4 basieren und für die es kein CKEditor 5-Äquivalent gibt, benötigenwir individuelle Lösungen.<br /> Dazu hier eine Übersicht:<br /> <a href="https://www.drupal.org/docs/core-modules-and-themes/core-modules/ckeditor-5-module/upgrade-coordination-for-modules-providing-ckeditor-4-plugins">https://www.drupal.org/docs/core-modules-and-themes/core-modules/ckedit…</a></p> <p>Im Backend werden seit dem Update auf die letzte Drupal 9-Version weitere Module als deprecated gekennzeichnet:</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/upgrade-status2.jpg" width="1520" height="301" alt="Deprecated Module vor Upgrade auf Drupal 10" title="Deprecated Module vor Upgrade auf Drupal 10" loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Wir deaktivieren diese Module und entfernen sie mit Composer:</p> <p><span class="mymonospace">composer remove drupal/quickedit<br /> composer remove drupal/color</span></p> <p>Falls z.B. Quickedit weiter benutzt werden soll, so gibt es dafür ein Modul, das man installieren kann. Es wurde nur aus dem Core entfernt.</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default" id="deprecatedthemes"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-css-id--layout-paragraphs.html.twig * field--paragraph--field-css-id.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-css-id.html.twig * field--string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-css-id field--type-string field--label-inline"> <div class="field__label">CSS-ID</div> <div class="field__item">deprecatedthemes</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Deprecated Themes</h2> <p>In unserem Fall betrifft das neben Seven und Bartik auch das Verwaltungstheme Adminimal, für das wir unter Drupal 9 ein angepasstes Subtheme verwendet haben.</p> <p>Das Theme Claro, das bereits installiert ist, aber noch nicht verwendet wird, setzen wir im Backend unter Design als Verwaltungstheme, anstelle von Adminimal Subtheme:</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/upgrade-status3.jpg" width="860" height="240" alt="Adminimal Subtheme entfernen" title="Adminimal Subtheme entfernen" loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Danach können wir sowohl das Admininmal Subtheme, als auch das Adminimal Theme deinstallieren.<br /> Ebenso deinstallieren wir Seven und Bartik - erst im Backend und dann mit Composer:</p> <p><span class="mymonospace">composer remove seven<br /> composer remove bartik<br /> composer remove adminimal</span></p> <p>Danach überzeugen wir uns in der composer.json, ob der Eintrag für</p> <p><span class="mymonospace">&nbsp;"drupal/admin_toolbar": "~3.1.0",</span></p> <p>im Bereich require verschwunden ist.<br /> Und prüfen, ob die Themes aus dem <span class="mymonospace">core/themes</span> bzw.<span class="mymonospace"> web/themes/contrib</span> Ordnern verschwunden sind.<br /> Andernfalls löschen wir die Einträge bzw. Ordner händisch und entfernen auch aus <span class="mymonospace">web/themes/custom</span> das Subtheme für adminimal.</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default" id="deinstalliertemodule"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-css-id--layout-paragraphs.html.twig * field--paragraph--field-css-id.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-css-id.html.twig * field--string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-css-id field--type-string field--label-inline"> <div class="field__label">CSS-ID</div> <div class="field__item">deinstalliertemodule</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2><span class="mymonospace"></span>Deinstallierte Module entfernen</h2> <p>Im Upgrade Status Report werden auch Module angezeigt, die irgendwann einmal aktiviert waren und sich noch im web/modules/contrib Ordner befinden, aber nicht mehr benötigt werden.<br /> Diese Module machen künftig nur Arbeit und sind evt. nicht mit Drupal 10 kompatibel.<br /> Deshalb entfernen wir sie restlos, auch mit <span class="mymonospace">composer remove &lt;modulname&gt;</span>.</p> <p>Danach führen wir ein Datenbank Update durch:</p> <p>drush updb</p> <p>Cache leeren ist nie verkehrt:</p> <p>drush cache-rebuild</p> <p>Nun können wir in den Upgrade Status Reports diese Meldungen ankreuzen:</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/upgrade-status5.jpg" width="848" height="426" alt="Meldungen unter Upgrade Status ankreuzen" title="Meldungen unter Upgrade Status ankreuzen" loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>und danach ganz unten</p> <p class="text-secondary"><img alt="Ausgewählte Elemente scannen - Upgrade status Drupal Upgrade" data-entity-type="file" data-entity-uuid="f9b8ce5e-7d50-4f74-a32b-a2fb1ecd534c" src="/sites/default/files/inline-images/upgrade-status6.jpg" class="align-left" width="263" height="28" loading="lazy" /></p> <p> </p> <p>wählen.<br /> Danach ist dieser Bereich verschwunden.</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default" id="custommodulethemes"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-css-id--layout-paragraphs.html.twig * field--paragraph--field-css-id.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-css-id.html.twig * field--string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-css-id field--type-string field--label-inline"> <div class="field__label">CSS-ID</div> <div class="field__item">custommodulethemes</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2><span class="mymonospace"></span>Custom Module und Themes aktualisieren</h2> <p>Die nächste Meldung betrifft die Individual-Module und Subthemes, die sich normalerweise in den Ordnern web/modules/custom bzw. web/themes/custom befinden.</p> <p>Je nachdem, welche Funktionen in den Modulen oder in der Datei subtheme/subtheme.theme verwendet werden, sind vielleicht weitergehende Aktionen notwendig, um die Kompatibilität mit Drupal 10 zu bekommen. In der Regel müssen hier nur die Zeilen</p> <p><span class="mymonospace">core_version_requirement: ^8 || ^9</span></p> <p>auf</p> <p><span class="mymonospace">core_version_requirement: ^9 || ^10</span></p> <p>aktualisiert werden.</p> <p>Falls es auch noch eine Zeile</p> <p><span class="mymonospace">core: 8.x</span></p> <p>gibt, so muss die unbedingt entfernt werden.</p> <p>Bei umfangreichen eigenen Modulen oder Theme-Funktionen rentiert ein Blick auf diese Seite, um veralteten Code zu finden:<br /> <a href="https://drupalize.me/tutorial/what-deprecated-code">https://drupalize.me/tutorial/what-deprecated-code</a></p> <p>Wenn wir in diesem Abschnitt Haken setzen und unten auf <em>Elemente Scannen</em> klicken, dann ändert sich häufig in der Ansicht nichts.<br /> Wir ignorieren das.</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default" id="moduleaktualisieren"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-css-id--layout-paragraphs.html.twig * field--paragraph--field-css-id.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-css-id.html.twig * field--string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-css-id field--type-string field--label-inline"> <div class="field__label">CSS-ID</div> <div class="field__item">moduleaktualisieren</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Module auf neuen Stand bringen</h2> <p>Im Bereich "Aktualisieren" werden im Upgrade Status Report alle Module angezeigt, für die es eine neuere Version gibt.</p> <p>So beherzigen wir den Hinweise, der hier steht "<em>Es ist ein Update verfügbar. Auch wenn dieses nicht vollständig mit der nächsten Hauptversion des Drupal.Kernsystems kompatibel ist, kann es kompatibler sein als die von Ihnen verwendete Version. Aktualisieren Sie das Modul deshalb dennoch.</em>"</p> <p><span class="mymonospace">composer update "drupal/*" --with-all-dependencies<br /> drush updatedb<br /> drush cache-rebuild</span></p> <p>Wenn wir danach die Standard-Übersicht für Aktualisierung der Module aufrufen, werden wir feststellen, dass einige Module noch als veraltet gekennzeichnet werden.<br /> Dies betrifft vor allem Module, für die noch keine stabile Version vorliegt, sondern alpha/beta/rc-Versionen, die mit Drupal 10 kompatibel sind.<br /> Hier geben wir die gewünschte Version ausdrücklich an.</p> <p><span class="mymonospace">composer require drupal/inline_entity_form:2.0.0-rc9</span></p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/upgrade-status7.jpg" width="839" height="684" alt="Update Module unter Angabe der gewünschten Version" title="Update Module unter Angabe der gewünschten Version" loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default" id="modulenichtkompatibel"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-css-id--layout-paragraphs.html.twig * field--paragraph--field-css-id.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-css-id.html.twig * field--string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-css-id field--type-string field--label-inline"> <div class="field__label">CSS-ID</div> <div class="field__item">modulenichtkompatibel</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Module, die nicht mit Drupal 10 kompatibel sind</h2> <p>Wir finden diese Module in einem bestimmten Bereich des Upgrade Status Reports.</p> <p>Zum jetzigen Zeitpunkt sind zu meiner großen Freude fast alle Module, die ich gerne verwende, in einer Version verfügbar, die mit Drupal 10 kompatibel sind.<br /> Es hat schon seine Gründe, warum ich seit mindestens Drupal 8 die Anzahl der Module möglichst beschränke und nur solche einsetze, die sich allgemeiner Beliebtheit und Verbreitung erfreuen.<br /> Bei diesen Modulen ist die Wahrscheinlichkeit groß, dass sie gepflegt werden oder eines Tages in den Core wandern.</p> <p>Zum Zeitpunkt meiner ersten Upgrades lagen viele Module noch nicht für Drupal 10 vor.</p> <p>Wie geht man nun mit solchen Modulen um?<br /> Hier ein Diagramm für die Entscheidungsfindung:</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:50px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">50</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="5" class="field__item">5/12</div> <div content="7" class="field__item">7/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol2' --> <!-- FILE NAME SUGGESTIONS: x mycol2.html.twig x mycol2.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol2.html.twig' --> <div class="col-md-12 row mycol2"> <div class="col-md-5 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/upgrade-status8.jpg" width="423" height="780" alt="Diagramm zur Entscheidungsfindung bei inkompatiblen Drupal-Modulen" title="Diagramm zur Entscheidungsfindung bei inkompatiblen Drupal-Modulen" loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-7 spalte2 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Es versteht sich von selbst, dass die Prüfung der Module auf Kompatibilität in einem sehr frühen Konzept-Stadium ansteht und mit dem Kunden abgestimmt werden muss, wenn solche Module installiert sind, die nicht kompatibel sind. Diese stehen auch einem Fixpreis für das Upgrade im Wege.</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol2.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default" id="eigentlichesupgradedrupal10"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-css-id--layout-paragraphs.html.twig * field--paragraph--field-css-id.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-css-id.html.twig * field--string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-css-id field--type-string field--label-inline"> <div class="field__label">CSS-ID</div> <div class="field__item">eigentlichesupgradedrupal10</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Upgrade auf Drupal <span class="mymonospace"></span>10</h2> <p>Wir unterstellen, dass unser Upgrade Status Report nun lauter grüne Bereiche hat und schreiten zum eigentlichen Upgrade.</p> <p>Bei mir hat sich eine ganz bestimmte Reihenfolge als sinnig erwiesen, um Fehlermeldungen zu vermeiden.<br /> Das variiert je nach Installation und beinhaltet immer etwas Ersuch und Irrtum.<br /> Ich kann nur dringend empfehlen, jeden vorherigen Schritt zu dokumentieren und an bestimmten Stellen - z.B. JETZT - ein vollständiges Backup von Dateien und Datenbank zu erstellen, um bei Problemen nicht alle vorherigen Schritte noch einmal durchführen zu müssen.</p> <p><strong>1. Schritt: Aktualisierung von Drush auf Version 11:</strong></p> <p><span class="mymonospace">composer require drush/drush:^11 </span></p> <p><strong>2. Schritt: Anpassung der Drupal Version in der composer.json ohne eigentliches Update:</strong></p> <p><span class="mymonospace">composer require&nbsp; drupal/core-recommended:^10&nbsp;&nbsp; drupal/core-composer-scaffold:^10&nbsp;&nbsp; drupal/core-project-message:^10&nbsp; --update-with-dependencies --no-update</span></p> <p>Die Verwendung des --no-update-Flags aktualisiert die composer.json-Einträge, ohne Dateien herunterzuladen.<br /> Dies ermöglicht es uns, Aktualisierungen von Projekten unter Umgehung eines "Henne-und-Ei"-Problems vorzubereiten.<br /> Alternativ könnten wir die Versionseinschränkungen in der composer.json-Datei auch manuell bearbeiten.</p> <p><strong>3. Schritt: Aktualisierung von Drush auf Version 12:</strong></p> <p><span class="mymonospace">composer require&nbsp; drush/drush:^12&nbsp; --no-update</span></p> <p>Auch dieser Schritt erfolgt mit dem no-update-Flag</p> <p><strong>4. Schritt: Aktualisierung der Composer-Version:</strong></p> <p>Vielleicht ist dieser Schritt bei Dir nicht notwendig.<br /> Bei mir kam es im Zuge des Updates zu einer Fehlermeldung bezüglich zu niedriger Composer 2.* Version.<br /> Deshalb machen wir das besser sofort.</p> <p><span class="mymonospace">composer self-update</span></p> <p>Den Schritt können wir bei Reue (oder Fehlermeldungen) jederzeit mit</p> <p><span class="mymonospace">composer self-update --rollback</span></p> <p>rückgängig machen.</p> <p><strong>5. Schritt: Gebe höhere Rechte auf bestimmte Dateien</strong></p> <p><span class="mymonospace">chmod 777 web/sites/default<br /> find web/sites/default -name "*settings.php" -exec chmod 777 {} \;<br /> find web/sites/default -name "*services.yml" -exec chmod 777 {} \;</span></p> <p><strong>6. Schritt: Eigentliches Update</strong></p> <p>Wir verwenden den Flag <span class="mymonospace">--with-all-dependencies</span>, um alle Abhängigkeiten zu berücksichtigen.</p> <p><span class="mymonospace">composer update&nbsp;--with-all-dependencies<br /> drush updatedb<br /> drush cache-rebuild</span></p> <p>Ohne Cache-rebuild kommt es oft zu einer hässlichen Fehlermeldung beim Aufruf im Frontend.<br /> Deshalb mache ich das zur Nervenschonung routinemäßig.</p> <p><strong>7. Schritt: Setze die Rechte wieder zurück</strong></p> <p><span class="mymonospace">chmod 755 web/sites/default<br /> find web/sites/default -name "*settings.php" -exec chmod 644 {} \;<br /> find web/sites/default -name "*services.yml" -exec chmod 644 {} \;</span></p> <p><strong>8. Schritt: Blick ins Backend auf die Reports</strong></p> <p>Wenn wir nun den Statusbericht bzw. die Seite mit den verfügbaren Aktualisierungen ansehen, sollten wir die Drupal Core Version 10.* sehen, sowie die Module alle in Grün.</p> <p><strong>9. Schritt: Testen, Testen, Testen!!!</strong></p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default" id="troubleshootingcomposer"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-css-id--layout-paragraphs.html.twig * field--paragraph--field-css-id.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-css-id.html.twig * field--string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-css-id field--type-string field--label-inline"> <div class="field__label">CSS-ID</div> <div class="field__item">troubleshootingcomposer</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Troubleshooting<span class="mymonospace"></span></h2> <p>Beschrieben wurde ein relativ einfaches Upgrade.<br /> In der Regel läuft es nicht so smart, sondern es kommt zu Meldungen auf der Konsole oder wie oben im Upgrade Status Report, denen man nach gehen muss.</p> <p><strong>1. Upgrade Status Report: Probleme mit Berechtigungen in der Konfiguration.</strong></p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/upgrade-status9.jpg" width="1770" height="327" alt="Upgrade Status Report: Probleme mit Berechtigungen in der Konfiguration" title="Upgrade Status Report: Probleme mit Berechtigungen in der Konfiguration" loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Diese veralteten Berechtigungen für nicht mehr vorhandene Paragraphen oder deinstallierte Module müssen entfernt werden.<br /> Das funktioniert aber erst, wenn die entsprechenden Module und Themes deinstalliert und auch mit composer entfernt wurden.</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/upgrade-status10.jpg" width="678" height="189" alt="Drupal Konfiguration in Dateien speichern" title="Drupal Konfiguration in Dateien speichern" loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Wenn wir diesen Ordner aufrufen, bzw. den Unterordner sync., so ist dieser unter Umständen leer oder enthält veraltete Konfigurationen.<br /> Den aktuellen Stand speichern wir per Drush dort hin:</p> <p><span class="mymonospace">drush config:export</span></p> <p>Uns interessieren diese drei Dateien:</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/upgrade-status11.jpg" width="201" height="78" alt="yml-Konfigurations-Dateien von Drupal " title="yml-Konfigurations-Dateien von Drupal " loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Sie enthalten die Berechtigungen der Benutzerrolle: "Gast", "angemeldeter Benutzer" und "Redakteur".<br /> In allen drei Dateien müssen die Zeilen mit Hinweis auf Rechte bezüglich&nbsp; "blockinhalte"&nbsp; gelöscht werden. Da gab es anfangs einen gleichnamigen Paragraphen, den ich dann aber gelöscht habe.</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/upgrade-status12.jpg" width="1142" height="692" alt="Eintrag in yml-Konfigurations-Datei von Drupal " title="Eintrag in yml-Konfigurations-Datei von Drupal " loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Wir suchen also in allen drei Dateien die entsprechenden Rechte, die im Upgrade Status Protokoll angemahnt werden.<br /> Nun sollen die so geänderten Konfigurations-Dateien wieder in die aktuelle Konfiguration importiert werden.</p> <p><span class="mymonospace">drush config:import</span></p> <p>Evt. kommt es beim Durchführen dieses Befehls zu Fehlermeldungen auf der Console.<br /> Bei mir betraf das eine Konfigurationsdatei bezüglich Seven-theme.<br /> Solche Dateien veralteter bzw. nicht mehr vorhandener Themes darf man einfach aus dem Konfigurationsordner entfernen.</p> <p>Dann Drush Import noch mal testen.</p> <p>&nbsp;</p> <p>Ich hatte auch schon den Fall, wo noch die gleichen Fehlermeldungen kamen.<br /> Da half es, den Drush Cache leeren.</p> <p><span class="mymonospace">drush cc</span></p> <p><span class="mymonospace"></span>Danach sollte der Abschnitt im Upgrade Status Report verschwunden sein.</p> <p><strong>2. Fehlermeldungen beim Update-Befehl</strong></p> <p>Manchmal führt <span class="mymonospace">composer update</span> in eine Vielfalt von Fehlermeldungen, die nicht aufgelöst werden können.<br /> In dem Fall machen wir erst mal einen Trockenversuch. Das geht mit:</p> <p><span class="mymonospace">composer why-not drupal/core-recommended 10.0</span></p> <p><span class="mymonospace"></span>oder</p> <p><span class="mymonospace">composer update "drupal/core:10.0" --dry-run</span></p> <p>Beide Befehle sollten die gleichen Ergebnisse der Analyse liefern, aber die Darstellung ist etwas unterschiedlich.<br /> Z.B. kommt es zu Fehlermeldungen dieser Art:</p> <p><span class="mymonospace">drupal/recommended-project - does not require symfony/console (but v4.4.49 is installed)</span></p> <p>Eine Suche im Netz führt zu dieser hilfreichen Seite:<br /> <a href="https://www.drupal.org/project/drupal/issues/3335486">https://www.drupal.org/project/drupal/issues/3335486</a> und wir führen diesen Befehl durch:</p> <p><span class="mymonospace">composer show --no-dev --direct --name-only | xargs</span></p> <p>Auf die damit erzeugte Liste an Paketen machen wir ein Update, wie vorgeschlagen.</p> <p><span class="mymonospace">composer require</span> &lt;Liste-der_Pakete-mit-Leerzeichen-getrennt&gt; <span class="mymonospace">--update-with-all-dependencies</span></p> <p>Und nun sollten die Updates alle erfolgen.</p> <p><strong>3. Module müssen gepatched werden</strong></p> <p>Meistens finden wir in den Issues eines Module, das nicht kompatibel ist zu Drupal 10 einen Link zu einem Artikel »Drupal 10 compatibility«.<br /> Vorausgesetzt, die Hinweise stimmen uns optimistisch, dass der Patch funktioniert, dann updaten wir das Modul mit Composer zuerst auf das genannte Release.<br /> z.B. <a href="https://www.drupal.org/project/tablefield/releases/8.x-2.x-dev">https://www.drupal.org/project/tablefield/releases/8.x-2.x-dev</a><br /> <br /> Dann schieben wir den Patch aus Kommentar #6 aus<br /> <a href="https://www.drupal.org/project/tablefield/issues/3289933#comment-14663319">https://www.drupal.org/project/tablefield/issues/3289933#comment-146633…</a><br /> in das Verzeichnis: <span class="mymonospace">/web/modules/contrib/tablefield</span></p> <p>Danach wechseln wir auf der Konsole in diesen Ordner und führen den Befehl</p> <p><span class="mymonospace">git apply &lt; namedespatches.patch </span></p> <p>aus.<br /> Kommt es dabei zu einer Fehlermeldung, probieren wir es mit:</p> <p><span class="mymonospace">patch -p1 &lt; namedespatches.patch</span></p> <p>Danach kontrollieren wir die info.yml Datei .<br /> Hier steh manchmalt noch die Zeile&nbsp; core: 8.x, die entfernt werden muss, was nicht jeder Patch berücksichtigt.</p> <p>Diese Module sollten nach einem Scann im Upgrade Status Report nun nicht mehr als inkompatibel gemeldet werden.</p> <p><strong>3. Gepatchte Module erzeugen beim Composer Update eine Fehlermeldung</strong></p> <p>Diese Fehlermeldung sieht z.B. so aus</p> <p><span class="mymonospace">- drupal/superfish dev-1.x requires drupal/core ^8 || ^9 -&gt; satisfiable by drupal/core[8.0.0, ..., 8.9.20, 9.0.0, ..., 9.5.3].</span></p> <p>In dem Fall beschäftige Dich mit Lenient.<br /> Das lenient composer plugin erlaubt, eine Liste von Paketen anzugeben, bei denen die Versionsbeschränkung außer acht gelassen werden.</p> <p><span class="mymonospace">composer config --merge --json extra.drupal-lenient.allowed-list '["drupal/superfish"]'</span></p> <p>Hier muss ich auf die entsprechende Webseite verweisen.<br /> In meinem Fall kam es nicht so weit, weil meine Wunschmodule dann alle in einer Drupal 10 kompatiblen Version vorlagen.<br /> <a href="https://www.drupal.org/docs/develop/using-composer/using-drupals-lenient-composer-endpoint">https://www.drupal.org/docs/develop/using-composer/using-drupals-lenien…</a></p> <p><strong>4. Manche Pakete benötigen PHP 7.* auf der Konsole</strong></p> <p>Wir bekommen eine Fehlermeldung beim Coomposer Update, dass manche Pakete eine alte PHP Version benötigen. Stellen wir <strong>zurück auf Drupal 7.*, dann scheitert das Update </strong>wegen anderen Paketen, die PHP 8.1 als Minimum benötigen.</p> <p>In diesem Fall kann der Flag<span class="mymonospace"> --ignore-platform-req=php</span> helfen, wie hier beschrieben.<br /> <a href="https://stackoverflow.com/questions/66368196/reference-composer-error-your-php-version-does-not-satisfy-requirements-afte">https://stackoverflow.com/questions/66368196/reference-composer-error-y…</a></p> <p><strong>5. Weitere Fehler</strong></p> <p>Hier hilft nur die Google Suche und viel Versuch+Irrtum mit Backups.</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog-post.html.twig x field--node--uid.html.twig * field--node--blog-post.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> <span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">admin</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog-post.html.twig x field--node--created.html.twig * field--node--blog-post.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Mo., 18.09.2023 - 14:29</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> Mon, 18 Sep 2023 12:29:54 +0000 admin 65 at https://montviso.de HTTP ERROR 500 beim Editieren eines Inhaltstyps mit vielen Feldern https://montviso.de/blog/http-error-500-beim-editieren-eines-inhaltstyps-mit-vielen-feldern <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog-post.html.twig x field--node--title.html.twig * field--node--blog-post.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">HTTP ERROR 500 beim Editieren eines Inhaltstyps mit vielen Feldern</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-layout--blog-post.html.twig * field--node--field-layout.html.twig * field--node--blog-post.html.twig x field--field-layout.html.twig * field--entity-reference-revisions.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <div class="field field--name-field-layout field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="8" class="field__item">8/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-8 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h1>HTTP ERROR 500 beim Editieren eines Inhaltstyps mit vielen Feldern</h1> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Regelmäßig passiert es, dass ich bei neuen Webseiten eine weiße Seite mit <strong>HTTP ERROR 500 </strong>bekomme.<br /> Das passiert dann, wenn ein Redakteuer mit Frontend-Theme eine Inhalt anlegen möchte, der sehr viele Felder hat.</p> <p><strong>Zum Glück gibt es einen einfachen Trick, der hier beschrieben ist:</strong><br /> <a href="https://www.drupal.org/project/paragraphs/issues/3197720">https://www.drupal.org/project/paragraphs/issues/3197720</a></p> <p>In Deiner Version der Datei</p> <pre> &lt;pfad_zu_drupal&gt;/web/sites development.services.yml</pre> <p>ändere die Zeile:</p> <pre> http.response.debug_cacheability_headers: true</pre> <p>in</p> <pre> http.response.debug_cacheability_headers: false</pre> <p>Danach muss man noch den Cache leeren, dann sollte die Seite wieder funktionieren.</p> <p>&nbsp;</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog-post.html.twig x field--node--uid.html.twig * field--node--blog-post.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> <span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">admin</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog-post.html.twig x field--node--created.html.twig * field--node--blog-post.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Do., 27.07.2023 - 08:45</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> Thu, 27 Jul 2023 06:45:57 +0000 admin 64 at https://montviso.de Falsche Verzeichnisstruktur bei Drupal 9 in composer.json korrigieren https://montviso.de/blog/falsche-verzeichnisstruktur-bei-drupal-9-composerjson-korrigieren <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog-post.html.twig x field--node--title.html.twig * field--node--blog-post.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">Falsche Verzeichnisstruktur bei Drupal 9 in composer.json korrigieren</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-layout--blog-post.html.twig * field--node--field-layout.html.twig * field--node--blog-post.html.twig x field--field-layout.html.twig * field--entity-reference-revisions.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <div class="field field--name-field-layout field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h1>Falsche Verzeichnisstruktur bei Drupal 9 in composer.json korrigieren</h1> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Manchmal passiert es, dass beim Erstellen einer neuen Drupal 9-Installation mit Composer die Verzeichnisstruktur nicht richtig angelegt werden.<br /> Auf root-Ebene befinden sich zahlreiche Ordner und Dateien, die sich eigentlich im Unterordner web befinden sollten.</p> <p>In der Praxis ist das kein großes Problem, weil die gleichen Ordner und die Dateien mit korrektem Inhalt in web auch angelegt werden.<br /> Man kann die Ordner und Dateien in der Root löschen, dann ist alles sauber.<br /> Aber sobald man mit Composer ein Update oder dgl. macht, sind sie wieder da.</p> <p>Und das nervt, weil man sich jedes zweit Mal verklickt und sich wundert, warum die Ordner modules oder themes leer sind.</p> <p>Die Ursache ist ein falscher Eintrag in der composer.json auf Root-Ebene.</p> <p>Dies zeigt uns dieser Vergleich mit Windiff:</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/falsche-verzeichnisstruktur-composer-json-drupal-9-composer.jpg" width="1200" height="242" alt="Falsche Verzeichnisstruktur bei Drupal 9 in composer.json korrigieren" title="Falsche Verzeichnisstruktur bei Drupal 9 in composer.json korrigieren" loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="6" class="field__item">6/12</div> <div content="6" class="field__item">6/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol2' --> <!-- FILE NAME SUGGESTIONS: x mycol2.html.twig x mycol2.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol2.html.twig' --> <div class="col-md-12 row mycol2"> <div class="col-md-6 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h3><strong>Falscher Eintrag:</strong></h3> <pre style="margin-bottom: 0cm;"> "drupal-scaffold": &nbsp;"drupal-scaffold": { &nbsp;&nbsp;"locations": { &nbsp;&nbsp;&nbsp;"web-root": "web/" &nbsp;&nbsp;}, &nbsp;&nbsp;"file-mapping": { &nbsp;&nbsp;&nbsp;"[web-root]/sites/development.services.yml": false &nbsp;&nbsp;} &nbsp;} } </pre> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-6 spalte2 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h3><strong>Richtiger Eintrag:</strong></h3> <pre style="margin-bottom: 0cm;"> "drupal-scaffold": { &nbsp;"locations": { &nbsp;&nbsp;"web-root": "web/" &nbsp;}, &nbsp;"file-mapping": { &nbsp;&nbsp;"[web-root]/sites/development.services.yml": false &nbsp;} } </pre> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol2.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Wenn die composer.json entsprechend angepasst wurde, kann man die überflüssigen Dateien im Root-Verzeichnis löschen und sie werden bei der nächsten Composer-Aktion nicht wieder erzeugt.</p> <p>Es erübrigt sich ja, zu erwähnen, dass man solche Operationen nur mit vorherigem Backup durchführt.</p> <p>&nbsp;</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog-post.html.twig x field--node--uid.html.twig * field--node--blog-post.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> <span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">admin</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog-post.html.twig x field--node--created.html.twig * field--node--blog-post.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Fr., 17.02.2023 - 11:20</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> Fri, 17 Feb 2023 10:20:01 +0000 admin 62 at https://montviso.de Ist Drupal auch für kleinere Web-Projekte geeignet? https://montviso.de/blog/ist-drupal-auch-fuer-kleinere-web-projekte-geeignet <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog-post.html.twig x field--node--title.html.twig * field--node--blog-post.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">Ist Drupal auch für kleinere Web-Projekte geeignet?</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-layout--blog-post.html.twig * field--node--field-layout.html.twig * field--node--blog-post.html.twig x field--field-layout.html.twig * field--entity-reference-revisions.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <div class="field field--name-field-layout field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default" id="drupalcss"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-css-id--layout-paragraphs.html.twig * field--paragraph--field-css-id.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-css-id.html.twig * field--string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-css-id field--type-string field--label-inline"> <div class="field__label">CSS-ID</div> <div class="field__item">drupalcss</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="8" class="field__item">8/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-8 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h1>Ist Drupal auch für kleinere Web-Projekte geeignet?</h1> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Wir haben uns in den letzten Monaten viele Gedanken gemacht, wie das Content Management System Drupal auch für kleinere Web-Projekte sinnvoll eingesetzt werden kann.</p> <p><strong>Es werden immer wieder die folgenden drei Gründe genannt, warum Drupal als CMS für höchste Ansprüche gilt:</strong></p> <ul> <li>Keine Composer-Unterstützung bei Shared-Hosting</li> <li>Pflege der Inhalte mit flexiblem Layout sei kompliziert</li> <li>Hoher Einstiegspreis des Content Management Systems</li> </ul> <p>Das ist schade.<br /> Die Vorteile von Drupal sollten allen Kunden - egal wie viele Mitarbeiter - und für Web-Projekte jeder Größenordnung und für jeden Einsatzzweck zur Verfügung stehen.</p> <p><strong>Ich nenne hier nur die Vorteile von Drupal, die aus meiner Sicht am meisten zählen:</strong></p> <ul> <li>Drupal bietet mit den individuell erstellen Editier-Formularen die Möglichkeit, ganz unterschiedliche Inhalte zu verpflegen.</li> <li>Das Views-System von Drupal ist eine ungemein flexible Möglichkeit, Reports mit Filtern, Sortierung und Seitennavigation zu generieren.</li> <li>Drupal ist sicher und sehr sauber zu erweitern.</li> </ul> <p><strong>In diesem Post fasse ich kurz zusammen, warum es aus unserer Sicht keinen Grund gibt, auf die Vorteile von Drupal zu verzichten.</strong></p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="8" class="field__item">8/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-8 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Composer-Unterstützung bei Shared-Hosting</h2> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p><strong>Wer will das Rad schon neu erfinden?</strong><br /> Moderne Content Management Systeme nutzen eine Vielfalt an vorgefertigten Code-Paketen, die immer wieder verwendet werden können.<br /> Solche Code-Pakete müssen verwaltet werden, damit es nicht zu Konflikten zwischen Paketen kommt.</p> <p><strong>Composer holt diese Pakete von Servern, die eine Sammlung bereit halten.</strong><br /> Früher hat dieser Vorgang von dem Server, auf dem die Webseite installiert ist, sehr viel Leistung abverlangt.<br /> Das ist bei kostengünstigen Hosting-Anbietern, wo mehrere Webseiten sich einen Server teilen (shared hosting), oft nicht gegeben.</p> <p><strong>Inzwischen gibt es Composer 2.x und diese Version benötigt einen Bruchteil an Server-Leistung.</strong><br /> Wir betreuen vor allem Kunden, deren Web-Pakete bei All-Inkl oder Ionos liegen und haben dort keine Probleme mit Composer.</p> <p><strong>Voraussetzung ist ein SSH-Zugang</strong>.<br /> Damit funktioniert auch das Verwaltungsprogramm Drush, mit dem ein Administrator viele Aufgaben während der Installation, Pflege und Aktualisierung von Drupal schnell durchführen kann.</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="8" class="field__item">8/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-8 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Einfache Pflege der Inhalte mit Layout-Paragraphs und Bootstrap Theme</h2> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p><strong>Wir verwenden das Theme Boostrap und haben die Zusatz-Module Layout-</strong>Paragraphs <strong>und Paragraphs auf Flexibilität und einfache Inhaltspflege angepasst.</strong></p> <p>Bootstrap ist ein sehr verbreitetes OpenSource-Theme, welches Inhalte in einem 12-Spalten-Raster platziert.<br /> Das bedeutet, Redakteure können entscheiden, ob die Inhalte, die sie einpflegen, über die ganze Seite reichen, oder nur 8 von 12 Raster-Spalten einnehmen.<br /> Oder ob es <a href="https://www.montviso.de/dokumentation-fuer-montviso-layout-bloecke#allgemeinerspaltenaufbau">zwei oder mehr Spalten mit Inhalt nebeneinander</a> geben kann.</p> <p><strong>Durch unsere Erweiterung der Module <a href="https://www.drupal.org/project/layout_paragraphs">Layout-Paragraphs</a> und <a href="https://www.drupal.org/docs/contributed-modules/paragraphs">Paragraphs</a>, können Kunden auch ohne spezielle Programmierkenntnisse:</strong></p> <ul> <li>Layout-Blöcke mit einer beliebigen Anzahl an Inhalts-Spalten von 1-6 anlegen</li> <li>diese Spalten unterschiedlich breit gestalten</li> <li>Inhalte über die ganze Seitenbreite oder auf schmalerer Fkläche platzieren</li> <li>beliebig viele dieser Layout-Blöcke angelegen und auf der Seite verschieben.</li> <li>Layout-Blöcken Hintergrundfarben zuweisen</li> <li>eine eindeutige ID vergeben, mit der abweichendes Styling programmiert werden kann</li> <li>aus einer von uns vorgefertigten Anzahl an <a href="https://www.montviso.de/dokumentation-fuer-montviso-layout-bloecke#layoutelemente">Inhaltselementen (Layout-Elemente)</a> auswählen und weitere beauftragen</li> <li>bei manchen Elementen weitere Formatierung, wie z.B. <a href="https://www.montviso.de/dokumentation-fuer-montviso-layout-bloecke#layoutelementbild">Rahmenfarbe</a>, Hintergrundfarbe oder Platzierung wählen</li> </ul> <p>Dabei steht ein Farben-Pool von neun Farben zur Verfügung, die von uns in Absprache mit dem Kunden passend zur Corporate Identity definiert wurden.</p> <p><strong>Für diese Erweiterungen kommen PHP-Funktionen und JavaScript in einem Modul und im Frontend-Theme Bootstrap, sowie im Verwaltungs-Theme Adminimal zum Einsatz.</strong></p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-ausrichtung--bild.html.twig * field--paragraph--field-ausrichtung.html.twig * field--paragraph--bild.html.twig * field--field-ausrichtung.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-ausrichtung field--type-list-string field--label-inline"> <div class="field__label">Ausrichtung</div> <div class="field__item">Mittig</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden text-center field__items"> <div class="text-center field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/layout-builder-drupal.jpg" width="1155" height="743" alt="Drupal Layout Builder und Paragraphs" title="Drupal Layout Builder und Paragraphs" loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:15px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">15</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h5><em>(Hier ein Einblick in die Verwaltungsoberfläche mit unseren individuellen Anpassungen für einen Layout-Block, der vier Spalten enthält, davon zwei mit Bild und zwei mit Text)</em></h5> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="region--bottom col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="8" class="field__item">8/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-8 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>Kostengünstiger Einstieg durch unser vorgefertigtes Drupal-Paket mit einer sinnvollen Auswahl an Zusatzmodulen</h2> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Im Normalfall installiert man Drupal 9 mit dem Composer-Befehl<code class="language-php"> composer create<span class="token operator">-</span>project drupal<span class="token operator">/</span>recommended<span class="token operator">-</span>project</code><code> </code>und wählt danach die notwendigen Module, um den Funktionsumfang des Drupal-Cores zu erweitern.</p> <p><strong>Da wir nach vielen Jahren Erfahrung eine sehr genaue Vorstellung davon haben, welche Module immer wieder gebraucht werden und stabil laufen</strong>, <strong>haben wir ein Standard-Paket aus Drupal-Core + Modulen geschnürt.</strong></p> <p>Dieses Start-Paket wird von uns lokal auf einem aktuellen Versionen-Stand gehalten und als Basis für die individuellen Anpassungen zum Hoster unserer Kunden übertragen.<br /> Hier sind auch schon Startseite, Fehlerseite, Fehlende-Rechte-Seite, Seiten für Impressum und Datenschutz, sowie ein Kontaktformular angelegt.</p> <p><strong>Um den Funktionsumfang zu demonstrieren, gibt es eine <a href="https://website.storyset.de/">Demo-Webseite für Autoren</a></strong>.<br /> Die Autoren können z.B. ihre Bücher vorstellen, einen Blog schreiben, oder Lesungen auf einem Kalender darstellen .<br /> Eine Beschreibung dieser Funktionen gibt es unter <a class="moz-txt-link-freetext" href="https://www.montviso.de/demo-webseite-fuer-autoren">https://www.montviso.de/demo-webseite-fuer-autoren</a>.</p> <p><strong>Diese Demo-Seite lässt sich einfach auf andere Branchen übertragen.</strong><br /> Sie enthält alles, was Einzel-UnternehmerInnen als Basis-Webseite benötigen und lassen sich mit den zahlreichen <a href="https://www.montviso.de/drupal-cms">Möglichkeiten und Vorteile von Drupal</a> jederzeit erweitern und erfüllen so auch Bedürfnisse für jede Unternehmensgröße.</p> <p><strong>Das Design passen wir nach Kundenwünschen bzw. Vorgaben externer DesignerInnen an. </strong><br /> So können wir ein gutes Basis-Paket mit notwendigen individuellen Anpassungen zu einem guten Preis-Leistung-Verhältnis anbieten und volle Flexibilität für die Zukunft garantieren.</p> <p>&nbsp;</p> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog-post.html.twig x field--node--uid.html.twig * field--node--blog-post.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> <span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">admin</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog-post.html.twig x field--node--created.html.twig * field--node--blog-post.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Mo., 14.11.2022 - 17:40</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> Mon, 14 Nov 2022 16:40:49 +0000 admin 58 at https://montviso.de Drupal Upgrade 8.9.7 > 9.0.0 - Mit composer create-project https://montviso.de/blog/drupal-upgrade-897-900-mit-composer-create-project <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog-post.html.twig x field--node--title.html.twig * field--node--blog-post.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">Drupal Upgrade 8.9.7 &gt; 9.0.0 - Mit composer create-project</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-layout--blog-post.html.twig * field--node--field-layout.html.twig * field--node--blog-post.html.twig x field--field-layout.html.twig * field--entity-reference-revisions.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <div class="field field--name-field-layout field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h1 class="text-primary">Drupal Upgrade 8.9.7 &gt; 9.0.0 - Mit composer create-project</h1> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><p>Bekanntlich ist end-of-life von Drupal 8 im November 2021.<br /> Die meisten Kundenprojekte und auch unsere eigenen Projekte haben Module, die noch nicht zu Drupal 9 kompatibel sind.<br /> Um frühzeitig Erfahrung zu sammeln, habe ich jetzt ein eigenes Projekt auf Drupal 9.0.0 aktualisiert.</p> <p><span style="color: rgb(5, 5, 5); font-family: &quot;Segoe UI Historic&quot;, &quot;Segoe UI&quot;, Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Ich habe ein neues Projekt unter Drupal 9 angelegt und die individuellen Änderungen und Dateien aus sites-, module- und theme-Ordner auf die neue Version übertragen und die alte Datenbank aktualisiert.</span></p> <h2>Der Prozess gliedert sich in folgende Teile:</h2> <p>Mit dem Link kommst Du zu einer näheren Beschreibung:</p> <ol> <li> <p><a href="#anker2">Erfülle die Systemvoraussetzungen für Drupal 9</a></p> </li> <li> <p><a href="#anker3">Update der Installation "Drupal 8" auf die letzte stabile Drupal 8 Version mit Composer</a></p> </li> <li> <p><a href="#anker4">Update der Module auf den neuesten Stand mit Composer</a></p> </li> <li> <p><a href="#anker5">Prüfen, ob alle Module kompatibel sind für Drupal 9</a></p> </li> <li> <p><a href="#anker6">Deinstallieren aller Module, die nicht kompatibel (zu machen) sind</a></p> </li> <li> <p><a href="#anker7">Prüfe, ob Themes kompatibel sind und mache evt. notwendige Anpassungen</a></p> </li> <li> <p><a href="#anker8">Prüfen ob Twig Templates kompatibel sind</a></p> </li> <li> <p><a href="#anker9">Erzeugen eine neue Installation "Drupal 9" mit Composer</a></p> </li> <li> <p><a href="#anker10">Kopiere den Inhalt diverser Ordner in die neue Installation</a></p> </li> <li> <p><a href="#anker11">Installiere die gewünschten Module mit Composer in aktueller Version</a></p> </li> <li> <p><a href="#anker">Lasse update.php oder drush Update laufen und debugge Fehlermeldungen einzeln</a></p> </li> <li> <p><a href="#anker13">Ausführliche Tests</a></p> </li> <li> <p><a href="#anker14">Fazit</a></p> </li> </ol> <h3>Standard-Prozess</h3> <p>Der Vollständigkeit halber hier eine kurze Zusammenfassung zum Standard-Prozess des Upgrades.<br /> Siehe dazu auch die Dokumentation auf drupal.org bzw. unten genannte Links.</p> <ol> <li> <p>Erfülle die Systemvoraussetzungen für Drupal 9</p> </li> <li> <p>Update der Installation auf die letzte stabile Drupal 8 Version mit Composer</p> </li> <li> <p>Update der Module auf den neuesten Stand mit Composer</p> </li> <li> <p>Prüfen, ob alle Module kompatibel sind für Drupal 9</p> </li> <li> <p>Deinstallieren aller Module, die nicht kompatibel sind</p> </li> <li> <p>Prüfe, ob Theme kompatibel ist und mache evt. notwendige Anpassungen</p> </li> <li> <p>Prüfen ob Twig Templates kompatibel sind</p> </li> <li> <p>checke Kompatibilität mit dem Modul <a href="https://www.drupal.org/project/upgrade_status">https://www.drupal.org/project/upgrade_status</a></p> </li> <li> <p>Gebe Schreibrecht auf<code> web/sites/default/settings.php </code>und <code>web/sites/default/services.yml</code></p> </li> <li> <p>Ausführen des Composer Befehls zum Upgrade auf Drupal 9 mit <code>core-recommended&nbsp;und&nbsp;dev-dependencies&nbsp;packages als Abhängigkeiten mit Parameter –no-update</code></p> </li> <li> <p>prüfe ob drupal/core-dev installiert ist. Falls ja, verwende: <code>composer require drupal/core-dev:^9.0.0 --dev --update-with-dependencies --no-update</code></p> </li> <li> <p>führe das eigentliche Update aus: <code>composer update</code></p> </li> <li> <p>Dateien <code>htaccess, settings.php</code> ect. händisch aktualisieren.</p> </li> <li> <p>Update der Datenbank</p> </li> <li> <p>Stelle Berechtigungen zurück</p> </li> <li> <p>Testen</p> </li> </ol> <p>Bei mir hat die Installation des Moduls upgrade-status nicht funktioniert oder ich habe einen wesentlichen Punkt nicht verstanden.<br /> Es ging auch ohne, aber sicher wäre es eine Hilfe.</p> <p>Beim Composer Update auf der Version Drupal 8.9.7 kam es zu Fehlermeldungen, die ich nicht einordnen konnte.</p> <p>Ich bin dann einen alternativen Weg gegangen, den ich hier näher beschreibe:</p> <h2>Alternativer Weg:</h2> <h3 id="anker2">Erfülle die Systemvoraussetzungen für Drupal 9</h3> <p>Die Systemvoraussetzungen findest Du hier:</p> <p><a href="https://www.drupal.org/docs/understanding-drupal/how-drupal-9-was-made-and-what-is-included/environment-requirements-of">https://www.drupal.org/docs/understanding-drupal/how-drupal-9-was-made-and-what-is-included/environment-requirements-of</a></p> <p>Kurz zusammengefasst sind das die Folgenden:</p> <ul> <li>Apache&nbsp;2.4.7</li> <li>PHP 7.3.</li> <li>MySQL Version 5.7.8+&gt;</li> <li>Drush 10</li> </ul> <h3>&nbsp;</h3> <h3 id="anker3">Update der Installation "Drupal 8" auf die letzte stabile Drupal 8 Version mit Composer</h3> <p>Wenn nicht schon passiert, dann sollte die letzte stabile Version von Drupal 8 unter Composer Kontrolle sein.</p> <p>Dazu habe ich hier einen Blog-Artikel geschrieben:</p> <p><a href="https://www.montviso.de/blog/drupal-update-von-8613-zu-893-unter-composer-kontrolle">https://www.montviso.de/blog/drupal-update-von-8613-zu-893-unter-composer-kontrolle</a></p> <h3>&nbsp;</h3> <h3 id="anker4">Update der Module auf den neuesten Stand mit Composer</h3> <p>Bringe alle Module auf einen neuen Stand und prüfe bei der Gelegenheit, ob sie mit D9 kompatibel sind.</p> <h3>&nbsp;</h3> <h3 id="anker5">Prüfen, ob alle Module kompatibel sind für Drupal 9</h3> <p>Dazu kannst Du dieses Modul verwenden:<br /> <a href="https://www.drupal.org/project/upgrade_status">https://www.drupal.org/project/upgrade_status</a></p> <p>Bei mir hat das nicht geklappt, aber das bedeutet nicht, dass ich es nicht beim nächsten Projekt wieder probieren würde.</p> <p>Ich habe einfach nicht gefunden, wie man den Report für Module / Themes erzeugt, der nicht kompatible Stellen anzeigen soll.</p> <p>Diese könnte man mit diesem Editor anpassen:<br /> <a href="https://www.drupal.org/docs/updating-drupal/how-to-prepare-your-drupal-7-or-8-site-for-drupal-9/deprecation-checking-and">https://www.drupal.org/docs/updating-drupal/how-to-prepare-your-drupal-7-or-8-site-for-drupal-9/deprecation-checking-and</a></p> <p>Man muss also nicht vorschnell verzweifeln, wenn ein Modul nicht als kompatible angezeigt wird, oft fehlt nur die Zeile</p> <p><code>core_version_requirement: ^8 || ^9</code></p> <p>in der Datei meinmodul.info.yml.</p> <p>Auf diese Art konnte ich z.B. Das Modul timepicker kompatibel bekommen.<br /> Andere erfordern etwas andere Patches. Dazu unter Troubleshooting mehr.</p> <p>Das gilt natürlich insbesondere auch für eigene Module, die auf jeden Fall um die o.g. Zeile erweitert werden müssen.</p> <h3>&nbsp;</h3> <h3 id="anker6">Deinstallieren aller Module, die nicht kompatibel sind</h3> <p>Gehe hier sehr vorsichtig vor, um später keine bösen Überraschungen zu erleben.<br /> Ein nicht kompatibles Modul, dass man übersehen hat, kann die schöne neue D9 Installation so verhauen, dass man sich nicht einloggen und nicht ohne weiteres deinstallieren kann.</p> <h3>&nbsp;</h3> <h3 id="anker7">Prüfe, ob Theme kompatibel ist und mache evt. notwendige Anpassungen</h3> <p>Auch ein Custom Theme / Sub-Theme benötigen diese Zeile:</p> <p><code>core_version_requirement: ^8 || ^9</code></p> <h3>&nbsp;</h3> <h3 id="anker8">Prüfen ob Twig Templates kompatibel sind:</h3> <p>Das war bei mir nicht nötig.<br /> Weitere Infos gibt es hier: <a href="https://www.drupal.org/docs/upgrading-drupal/how-to-prepare-your-drupal-7-or-8-site-for-drupal-9/preparing-for-use-of-twig">https://www.drupal.org/docs/upgrading-drupal/how-to-prepare-your-drupal-7-or-8-</a><a href="https://www.drupal.org/docs/upgrading-drupal/how-to-prepare-your-drupal-7-or-8-site-for-drupal-9/preparing-for-use-of-twig">site-for-drupal-9/preparing-for-use-of-twig</a></p> <h3>&nbsp;</h3> <h3 id="anker9">Erzeugen einer neuen Installation "Drupal 9" mit Composer</h3> <p>Lege einen neuen Ordner an <code>pfad/zu/deiner/d9installation </code>und installiere Hier D9 mit diesem Befehl:</p> <p><code>composer create-project drupal/recommended-project pfad/zu/deiner/d9installation "9.0.0"</code></p> <p>Du benötigst keine neue Datenbank und musst die Installation nicht im Frontend weiter ausführen.</p> <h3>&nbsp;</h3> <h3 id="anker10">Kopiere die Inhalt der Ordner von der alten in die neue Installation</h3> <ul> <li> <p>sites</p> </li> <li> <p>modules/custom</p> </li> <li> <p>themes/custom</p> </li> </ul> <p>Die Datei settings.php angepasst werden. Dazu von Drupal 9.0.0 die Original-Datei default.settings.php holen und mit Winmerge oder ähnlichem die Unterschiede abgleichen und die Datei mit den individuellen Anpassungen auf den neuen Stand bringen.</p> <p>Ebenso mit der .htaccess verfahren, falls hier Anpassungen gemacht wurden.</p> <h3>&nbsp;</h3> <h3 id="anker11">Installiere die gewünschten Module mit Composer in aktueller Version</h3> <p>Die Module aus der alten Version, die kompatibel sind mit Drupal 9 werden nun in der jeweils aktuellen Version installiert. Das geht auch in einem Befehl mit Leerzeichen zwischen den Modulen. Composer arbeitet die ganze Liste durch, meldet evt. Probleme mit einem Modul und macht evt. Änderungen in der composer.json rückgängig, falls es nicht klappt, weil wir z.B. Ein Modul übersehen haben, dass nicht kompatibel ist.</p> <p><code>composer require drupal/address drupal/admin_toolbar drupal/adminimal_theme drupal/anchor_link drupal/block_class drupal/bootstrap drupal/bootstrap_barrio drupal/colorbox drupal/crop drupal/ctools drupal/devel drupal/dropzonejs drupal/editor_advanced_link drupal/embed drupal/empty_fields drupal/entity_reference_revisions drupal/entity drupal/entity_browser drupal/entity_browser_enhanced drupal/entity_embed drupal/entity_print</code><br /> <br /> u.s.w</p> <p>Die Module sind automatisch enabled, weil wir ja mit der alten Datenbank arbeiten.</p> <p>Diese Liste an Modulen muss natürlich identisch sein mit den zuletzt installierten Modulen unter Drupal 8.9.7. Andernfalls gibt es eine Fehlermeldung Missing Module.</p> <h3>&nbsp;</h3> <h3 id="anker">Lasse update.php laufen und kläre Fehlermeldungen einzeln!</h3> <p>Nun kannst Du entweder mit Drush oder mit update.php ein Datenbank Update auf Core und die Module ausführen.</p> <p>Idealerweise läuft es einfach durch, aber vermutlich eher nicht.</p> <p>Es folgen ein paar Beispiele an Fehlermeldungen und was bei mir geholfen hat zur Beseitigung.<br /> Das ist natürlich keine objektive Aufstellung. Schließlich ist jede Drupal-Installation ein kleiner Kosmos für sich und es gibt selten zwei identische Installationen.</p> <p>Dazu ist die Kombinationsmöglichkeit an Modulen, Betriebssystem, Versionen, PHP Versionen, Themes, eigenen Erweiterungen ect. viel zu groß.</p> <p>Ich möchte Mut machen, dass hässliche Fehlermeldungen häufig einfache Lösungen haben.<br /> Es rentiert sich also, im Netz zu suchen, bzw. wenn das verursachende Modul bekannt ist, auch direkt in den Issues.</p> <h3>&nbsp;</h3> <h3 id="anker12">Troubleshooting</h3> <p><strong>1. Key 'core_version_requirement' </strong></p> <p><em>Drupal\Core\Extension\InfoParserException: The 'core_version_requirement' constraint (^8.8.0 || ^9.0) requires the 'core' key not be set in modules/contrib/menu_block/tests/modules/menu_block_test/menu_block_test.info.yml in Drupal\Core\Extension\InfoParserDynamic-&gt;parse() (line 88 of core\lib\Drupal\Core\Extension\InfoParserDynamic.php). </em></p> <p>In dem Fall betrifft es ein Modul, dass bereits als kompatibel gekennzeichnet war, nämlich das Modul menu_block. Dort fehlt allerdings im Sub-Modul menu_block_test der Key 'core_version_requirement'</p> <p>D.h. Im Klartext, man muss in die Datei</p> <p><code>modules/contrib/menu_block/tests/modules/menu_block_test/menu_block_test.info.yml </code></p> <p>gehen und dort die Zeile</p> <p><code>core: 8.x </code></p> <ol start="2"> </ol> <p>ersetzen durch</p> <p><code>core_version_requirement: ^8.8.0 || ^9.0</code></p> <ol start="2"> </ol> <p><strong>2. Modul fehlt</strong></p> <p><em>Drupal\Component\Plugin\Exception\PluginNotFoundException</em>: Unable to determine class for field type 'address' found in the 'field.storage.node.field_adresse' configuration in <em>Drupal\field\FieldStorageConfigStorage-&gt;mapFromStorageRecords()</em> (line <em>167</em> of <em>core\modules\field\src\FieldStorageConfigStorage.php</em>)</p> <ol start="2"> </ol> <p>Lösung: Installiere das Modul mit Composer.</p> <p><code>composer require drupal/adress</code></p> <ol start="2"> </ol> <p><strong>3. Syn directory anlegen</strong></p> <p><em>Configuration sync directory </em></p> <p><em>Nicht vorhanden Your /settings.php file must define the &gt;$settings['config_sync_directory'] setting as a string containing the directory in which configuration files can be found.</em></p> <ol> </ol> <p>Lege ein Verzeichnis im Files-Ordner mit Unterordner sync und verweise setze in der settings.php die Variable</p> <p><code>$settings['config_sync_directory']</code></p> <ol start="0"> </ol> <p><strong>4. Inkompatibles theme </strong></p> <p><em>The following theme is installed, but it is incompatible with Drupal 9.0.0:</em></p> <ol start="0"> </ol> <p>Öffne die deintheme.info.yml und ersetze dort die Zeile</p> <p><code>core: 8.x </code></p> <ol start="2"> </ol> <p>durch</p> <p><code>core_version_requirement: ^8.8.0 || ^9.0</code></p> <ol start="2"> </ol> <p><strong>5. Inkompatibler Code in einem der Module</strong></p> <p>Möglicherweise kann man sich in das Backend einloggen und sieht keinen Fehler, aber an irgendeiner Stelle erscheint im Frontend eine Fehlermeldung wie diese:</p> <p><em>Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: You have requested a non-existent service "path.alias_manager" </em></p> <ol start="0"> </ol> <p>Da hilft nur in Google nach genauem Wortlaut suchen, bzw. Teile der Fehlermeldung in Anführungszeichen setzen.</p> <p>Da erscheint z.B. ein Hinweis auf ein Modul, dass ich nicht installiert habe.</p> <p><a href="https://www.drupal.org/files/issues/2020-06-19/feeds_youtube-requested_a_non-existent_service_path_alias_manager-3153333-2.patch">https://www.drupal.org/files/issues/2020-06-19/feeds_youtube-requested_…</a><br /> Es ist naheliegend, dass die dort geänderte Syntax auch in einem der hier verwendeten Module zum Einsatz kommen muss.</p> <p>Ich suche also mit meinem TextPad-Editor in allen Dateien des Unterordners modules nach dem String <code>path.alias_manager</code>.</p> <p>Und siehe da, ich werde hier fündig:</p> <p><code>contrib\onomasticon\src\Plugin\Filter\FilterOnomasticon.php(319):</code></p> <ol start="0"> </ol> <p>Ich ersetze die Zeile</p> <p><code>$aliasManager = \Drupal::service('path.alias_manager');</code></p> <ol start="0"> </ol> <p><code>$aliasManager = \Drupal::service('path_alias.manager');</code></p> <ol start="0"> </ol> <p>Und schon verschwindet die Fehlermeldung.</p> <h3>&nbsp;</h3> <h3 id="anker13">Ausführliche Tests</h3> <p>Ganz klar, dass nach Beseitigung der ganz offensichtlichen Fehler, die z.B. Den Update-Befehl verhindern oder im Frontend eine Fehlermeldung die Darstellung komplett verhindern, die Tests noch nicht zu Ende sind.</p> <p>Ich rufe dann im Frontend und im Backend alle wichtigen Bereiche einmal auf, lege neue Inhalte an, erstelle Blöcke u.s.w. Und rufe nach jedem Schritt den Watchdog auf, um evt. Warnings oder Schlimmeres zu sehen.<br /> Natürlich kann auch ein PHP-Error-Log oder das Error-Log des Apache-Webservers&nbsp;noch zusätzlichen Aufschluss geben.</p> <h3>&nbsp;</h3> <h3 id="anker14">Fazit</h3> <p>Unterm Strich bin ich sehr zufrieden mit dem Upgrade auf Drupal 9.<br /> Verglichen mit Upgrades von Drupal 7 auf 8 ist es ein Kinderspiel, weil man ja schon etwas vertraut ist mit Composer.</p> <p>Bei diesem Beispiel Projekt waren nur drei von 50 Modulen nicht kompatibel.<br /> Die waren nicht unbedingt notwendig, was natürlich ein Glücksfall ist.</p> <p>Noch wird ja Drupal 8 gepflegt und in einem Jahr sind sicher alle wesentlichen Module, die es in Drupal 8 gibt, auch umgestellt worden.</p> <h3>&nbsp;</h3> <h3 id="anker15">Hilfreiche Linksammlung:</h3> <p><a href="https://www.drupal.org/docs/upgrading-drupal/how-to-prepare-your-drupal-7-or-8-site-for-drupal-9/upgrading-a-drupal-8-site">https://www.drupal.org/docs/upgrading-drupal/how-to-prepare-your-drupal-7-or-8-site-for-drupal-9/upgrading-a-drupal-8-site</a></p> <p><a href="https://drupalize.me/tutorial/upgrade-drupal-9?p=2766">https://drupalize.me/tutorial/upgrade-drupal-9?p=2766</a></p> <p><a href="https://lightning.acquia.com/blog/getting-ready-drupal-9">https://lightning.acquia.com/blog/getting-ready-drupal-9</a></p> <p><a href="https://www.drupal.org/docs/understanding-drupal/how-drupal-9-was-made-and-what-is-included/environment-requirements-of">https://www.drupal.org/docs/understanding-drupal/how-drupal-9-was-made-and-what-is-included/environment-requirements-of</a></p> <p><a href="https://www.drupal.org/docs/updating-drupal/how-to-prepare-your-drupal-7-or-8-site-for-drupal-9/deprecation-checking-and">https://www.drupal.org/docs/updating-drupal/how-to-prepare-your-drupal-7-or-8-site-for-drupal-9/deprecation-checking-and</a></p> <p><a href="https://www.drupal.org/docs/upgrading-drupal/how-to-prepare-your-drupal-7-or-8-site-for-drupal-9/preparing-for-use-of-twig">https://www.drupal.org/docs/upgrading-drupal/how-to-prepare-your-drupal-7-or-8-site-for-drupal-9/preparing-for-use-of-twig</a></p> <p><a href="https://www.drupal.org/docs/updating-drupal/troubleshooting-database-updates">https://www.drupal.org/docs/updating-drupal/troubleshooting-database-updates</a></p> <script src="chrome-extension://hhojmcideegachlhfgfdhailpfhgknjm/web_accessible_resources/index.js"></script> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog-post.html.twig x field--node--uid.html.twig * field--node--blog-post.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> <span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">admin</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog-post.html.twig x field--node--created.html.twig * field--node--blog-post.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Di., 27.10.2020 - 17:42</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> Tue, 27 Oct 2020 16:42:53 +0000 admin 49 at https://montviso.de Drupal Update von 8.6.13 zu 8.9.3 unter Composer-Kontrolle https://montviso.de/blog/drupal-update-von-8613-zu-893-unter-composer-kontrolle <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog-post.html.twig x field--node--title.html.twig * field--node--blog-post.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <span class="field field--name-title field--type-string field--label-hidden">Drupal Update von 8.6.13 zu 8.9.3 unter Composer-Kontrolle</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-layout--blog-post.html.twig * field--node--field-layout.html.twig * field--node--blog-post.html.twig x field--field-layout.html.twig * field--entity-reference-revisions.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <div class="field field--name-field-layout field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h1>Drupal Update von 8.6.13 zu 8.9.3 unter Composer-Kontrolle</h1> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h1>Inhaltsverzeichnis</h1> <ul> <li><a href="#__RefHeading__2882_139082490">Probleme der Installation</a> <ul> <li><a href="#__RefHeading__2884_139082490">Veraltete Module und Drupal 8 Versionen.</a></li> <li><a href="#__RefHeading__2886_139082490">Inhomogene Dateistruktur:</a></li> <li><a href="#__RefHeading__2888_139082490">Mismatched entity and/or field definitions</a></li> </ul> </li> <li><a href="#__RefHeading__2890_139082490">Bestehende Version 8.6.13 umbauen</a> <ul> <li><a href="#__RefHeading__2892_139082490">Update der aktuellen Datenbank und Verzeichnisse erstellen.</a></li> <li><a href="#__RefHeading__2894_139082490">Testverzeichnis einrichten</a></li> <li><a href="#__RefHeading__2896_139082490">Installation der Version 8.6.13 mit Composer</a></li> <li><a href="#__RefHeading__2898_139082490"> Wiederherstellen der individuellen Konfigurationen</a></li> <li><a href="#__RefHeading__2900_139082490">Module installieren, die Composer-Kontrolle benötigen</a></li> <li><a href="#__RefHeading__2902_139082490">Inhomogene Struktur im Modules-Ordner reparieren</a></li> <li><a href="#__RefHeading__2906_139082490">Installation testen</a></li> <li><a href="#__RefHeading__2908_139082490">Backup der bisherigen Version</a></li> </ul> </li> <li><a href="#__RefHeading__2910_139082490">Schrittweises Update bis zur aktuellen Version 8.9.3</a> <ul> <li><a href="#__RefHeading__2914_139082490">Zusammenfassung des Vorgangs beim Update:</a></li> <li><a href="#__RefHeading__2918_139082490">Vorgehen bei den einzelnen Update-Schritten:</a></li> <li><a href="#__RefHeading__2920_139082490">Spezielles Verfahren wegen pathauto ab Drupal 8.7.9</a></li> <li><a href="#__RefHeading__2922_139082490">Update der Module vor Installation von Drupal 8.8.0</a></li> <li><a href="#__RefHeading__2924_139082490">Umzug auf das Produktivsystem und finale Tests</a></li> </ul> </li> <li><a href="#__RefHeading__2926_139082490">Ausblick</a></li> </ul> <p>&nbsp;</p> <p>Viele Projekte kommen zu uns, weil der vorherige Programmierer in der Versenkung verschwunden ist. So auch in diesem Beispiel.</p> <p>Die Webseite wurde in einem sehr frühen Stadium von D7 auf D8 migriert, war jetzt nur bis Drupal 8.6.13 aktualisiert und nicht unter vollständiger Composer-Kontrolle.<br /> Zudem gab es Probleme mit Mismaching Entity.</p> <script src="chrome-extension://hhojmcideegachlhfgfdhailpfhgknjm/web_accessible_resources/index.js"></script></div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="6" class="field__item">6/12</div> <div content="6" class="field__item">6/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol2' --> <!-- FILE NAME SUGGESTIONS: x mycol2.html.twig x mycol2.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol2.html.twig' --> <div class="col-md-12 row mycol2"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-6 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>IST-STAND</h2> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/drupal-unter-composer-kontrolle-1.JPG" width="599" height="622" alt="Drupal Update von 8.6.13 zu 8.9.3 unter Composer-Kontrolle" title="Drupal Update von 8.6.13 zu 8.9.3 unter Composer-Kontrolle" loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-6 spalte2 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h2>ZIEL</h2> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--bild--default.html.twig * paragraph--bild.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--bild paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-bild--bild.html.twig x field--paragraph--field-bild.html.twig * field--paragraph--bild.html.twig * field--field-bild.html.twig * field--image.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> <div class="field field--name-field-bild field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <img src="/sites/default/files/bilder/drupal-unter-composer-kontrolle-2.JPG" width="411" height="618" alt="Drupal Update von 8.6.13 zu 8.9.3 unter Composer-Kontrolle" title="Drupal Update von 8.6.13 zu 8.9.3 unter Composer-Kontrolle" loading="lazy" typeof="foaf:Image" /> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--paragraph--field-bild.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol2.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--layout-paragraphs--default.html.twig * paragraph--layout-paragraphs.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="lp-innen row ganzebreite paragraph paragraph--type--layout-paragraphs paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite--layout-paragraphs.html.twig * field--paragraph--field-breite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite field--type-integer field--label-inline"> <div class="field__label">Breite Inhalt</div> <div content="12" class="field__item">12/12</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-breite-inhalt--layout-paragraphs.html.twig * field--paragraph--field-breite-inhalt.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-breite-inhalt.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-breite-inhalt field--type-list-string field--label-inline"> <div class="field__label">Breite Layout-Container</div> <div class="field__item">Ganze Breite</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-spaltenbreite--layout-paragraphs.html.twig * field--paragraph--field-spaltenbreite.html.twig * field--paragraph--layout-paragraphs.html.twig * field--field-spaltenbreite.html.twig * field--integer.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-spaltenbreite field--type-integer field--label-inline"> <div class="field__label">Spalten Inhalt</div> <div class='field__items'> <div content="12" class="field__item">12/12</div> </div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'mycol1' --> <!-- FILE NAME SUGGESTIONS: x mycol1.html.twig x mycol1.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> <div class="col-md-12 row mycol1"> <div class="region--top col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--abstand--default.html.twig * paragraph--abstand.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div style="height:30px;" class="paragraph paragraph--type--abstand paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-abstand-pixel--abstand.html.twig * field--paragraph--field-abstand-pixel.html.twig * field--paragraph--abstand.html.twig * field--field-abstand-pixel.html.twig * field--list-string.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> <div class="field field--name-field-abstand-pixel field--type-list-string field--label-above"> <div class="field__label">Abstand Pixel</div> <div class="field__item">30</div> </div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> <div class="col-md-12 spalte1 col-12"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'paragraph' --> <!-- FILE NAME SUGGESTIONS: * paragraph--textfeld--default.html.twig * paragraph--textfeld.html.twig * paragraph--default.html.twig x paragraph.html.twig --> <!-- BEGIN OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> <div class="paragraph paragraph--type--textfeld paragraph--view-mode--default"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--paragraph--field-text-mit-zusammenfassung--textfeld.html.twig * field--paragraph--field-text-mit-zusammenfassung.html.twig * field--paragraph--textfeld.html.twig * field--field-text-mit-zusammenfassung.html.twig x field--text-with-summary.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> <div class="clearfix text-formatted field field--name-field-text-mit-zusammenfassung field--type-text-with-summary field--label-hidden field__item"><h1><a name="__RefHeading__2882_139082490" id="__RefHeading__2882_139082490"> </a>Probleme der Installation</h1> <h2><a name="__RefHeading__2884_139082490" id="__RefHeading__2884_139082490"> </a>Veraltete Module und Drupal 8 Versionen.</h2> <p>Auch wenn es noch einige Zeit dauert bis zur Abschaltung von Drupal 8, konnte man natürlich die veralteten Module schon aus Sicherheitsgründen nicht so lassen.</p> <p>Wir werden die Webseite wegen fehlender Module noch lange nicht auf D9 updaten, aber zumindest sollten alle Probleme aus dem Weg geräumt werden, die einem problemlosen Upgrade von der letzten D8-Version auf D9 im Wege stehen könnten.</p> <p>Vor allem brannte unter den Fingern, dass das Projekt nicht unter sauberer Composer-Kontrolle war.</p> <h2><a name="__RefHeading__2886_139082490" id="__RefHeading__2886_139082490"> </a>Inhomogene Dateistruktur:</h2> <p>Bis zu einer bestimmten Version von Drupal 8 war es noch möglich, die Webseite mit bekanntem Prozedere ohne Composer-Unterstützung zu erstellen und Updates zu machen.</p> <p>Wer schon mit älteren Drupal-Versionen Erfahrung hat, kennt die Verzeichnisstruktur, wie sie auch unter Drupal 7 normal ist.<br /> Alles, was nicht vom Core kommt, lag im Ordner sites, also Module, Libraries und Themes sowie natürlich die Dateien.</p> <p>Module, die nicht per Composer, sondern über das Backend von Drupal mit der Ui erstellt wurden, waren nicht in der sauberen Struktur modules/contrib und modules/custom installiert, sondern lagen direkt im modules-Ordner.</p> <p>Da einige Module mangels Alternativen bereits mit Composer installiert worden waren (addresses + entity_print), gab es jetzt eine bunte Mischung aus Modulen im Contrib-Ordner bzw. eine Ebene höher.</p> <h2><a name="__RefHeading__2888_139082490" id="__RefHeading__2888_139082490"> </a>Mismatched entity and/or field definitions</h2> <p>Ein Blick auf die Seite <a href="http://www.diesedomain.de/admin/reports/status">www.diesedomain.de/admin/reports/status</a> zeigt einige Fehler.</p> <p>Bei einem der händischen Updates oder Update von addresses mit Composer kam es zur Fehlermeldung:</p> <p><img alt="Drupal mismatched entity" data-entity-type="file" data-entity-uuid="7009c0c7-6dbe-4281-a210-af0aba065780" src="/sites/default/files/inline-images/drupal-unter-composer-kontrolle-status-meldung-3.JPG" /></p> <p> </p> <p>Zwar hat die Fehlermeldung nicht direkt Probleme verursacht, die Adressfelder wurden korrekt angezeigt. Aber spätere Drupal 8 Versionen ließen sich dann nicht mit Composer installieren.</p> <p> </p> <h1><a name="__RefHeading__2890_139082490" id="__RefHeading__2890_139082490"> </a> Bestehende Version 8.6.13 umbauen</h1> <p>Der erste Schritt hat das Ziel, die aktuelle Version unter vollständige Composer-Kontrolle zu bekommen, mit einer Dateistruktur, wie sie auch bei composer create-project erzeugt wird.</p> <h2><a name="__RefHeading__2892_139082490" id="__RefHeading__2892_139082490"> </a>Update der aktuellen Datenbank und Verzeichnisse erstellen.</h2> <p>Ich erwähne es, auch wenn es eigentlich selbstverständlich ist. ;-)</p> <h2><a name="__RefHeading__2894_139082490" id="__RefHeading__2894_139082490"> </a>Testverzeichnis einrichten</h2> <p>Ich arbeite lokal mit Windows 10 und Apache.</p> <ul><li> <p>Zuerst wurde auf PHP 7.3 umgestellt, weil dies die empfohlene Version für die künftigen Versionen ist. Auch 8.6.13 läuft schon damit.</p> </li> <li> <p>Ich erstelle das Verzeichnis „kundexxx“ als Unterordner im Web-Root.</p> </li> <li> <p>In der Datei etc/host mache ich einen Eintrag<br /> 127.0.0.1 kundexxx.localhost<br /> Dann kann ich die lokale Installation mit <a href="http://kundexxx.localhost/">http://kundexxx.localhost</a> aufrufen</p> </li> <li> <p>in der Apache-Konfiguration lege ich ein virtuelles Verzeichnis an, bei dem ich die URL kundexxx.localhost auf das Verzeichnis<br /> C:\wwwroot\kundexxx\web mappe.<br /> Wichtig: Hier auch gleich eine Log-Datei angeben, damit die Fehlermeldungen, die da kommen werden, einsehbar sind.</p> </li> <li> <p>In der my.ini habe ich diverse Anpassungen für die Datenbank gemacht, damit Drupal auch unter Windows halbwegs performant läuft.</p> </li> <li> <p>Composer und Drush waren bereits installiert und laufen zufriedenstellend.</p> </li> </ul><h2><a name="__RefHeading__2896_139082490" id="__RefHeading__2896_139082490"> </a>Installation der Version 8.6.13 mit Composer</h2> <ul><li> <p>Auf der Konsole wechsle ich in das vorher angelegte Verzeichnis<br /><font face="Courier New, monospace">cd C:\wwwroot\kundexxx</font></p> </li> <li> <p>Nun muss ich den Composer überreden, ein Projekt mit einer vollkommen veralteten Version zu erstellen.<br />  </p> <ul><li> <p>Dazu lege ich das Projekt erst mal an, ohne zu installieren:<br /><font face="Courier New, monospace">composer create-project drupal-composer/drupal-project:8.x-dev C:\wwwroot\kundexxx --no-interaction --no-install</font><br /><br /> Danach sieht das Verzeichnis so aus:<br /><br /><img alt="drupal Update unter Composer Kontrolle" data-entity-type="file" data-entity-uuid="fd45b857-8b44-4b9d-9357-7ef6f1fdf011" src="/sites/default/files/inline-images/drupal-unter-composer-kontrolle-4.JPG" /></p> </li> <li> <p>Danach wird die dabei erstellte composer.json Datei im Verzeichnis manipuliert.<br /> Und zwar ändern wir alle Vorkommen von Drupal Core 8.8.0 (was Composers bevorzugte Version wäre) in 8.6.13.<br /> Die entsprechenden Zeilen sehen so aus:<br /> "drupal/core": "^8.8.0",</p> <p>"drupal/core-dev": "^8.8.0"<br /> und soll hinterher so aussehen:<br /> "drupal/core": "8.6.13",</p> </li> <li> <p>"drupal/core-dev"": "8.6.13"</p> <p>Seht Ihr den Unterschied? Das Hütchen muss unbedingt weg.<br /> Andernfalls bekommt Composer den Auftrag 8.6.13 ODER eine neuere Version zu installieren.<br /> Dann würde trotz der Manipulation die Version 8.9.3 installiert werden, was wir aber nicht wollen.<br />  </p> <p><strong>Vorher:</strong></p> <img alt="Drupal Composer Update composer.json" data-entity-type="file" data-entity-uuid="6e0928f2-3cfe-4d0e-9813-c6edefbc5b32" src="/sites/default/files/inline-images/drupal-unter-composer-kontrolle-5.JPG" /><br />  <br /><strong>Nachher</strong></li> <li> <p><img alt="Drupal Update composer.json manipulieren" data-entity-type="file" data-entity-uuid="5546477e-1757-4765-bffb-78bb68671f72" src="/sites/default/files/inline-images/drupal-unter-composer-kontrolle-composer-json-nach-manipulation6_0.JPG" /></p> </li> <li> <p>Die folgende Zeile muss gelöscht werden, falls vorhanden.<br /><font face="Courier New, monospace">drupal/core-composer-scaffold": "8.6.13" </font></p> </li> </ul></li> <li> <p>Nach der Manipulation der composer.json Datei kann man den Composer nun beauftragen, die Installation der Version 8.6.13 durchzuführen.<br /><font face="Courier New, monospace">composer install</font></p> <p>Nicht verzweifeln, das dauert. ;-)</p> </li> </ul><p>Hier Ausschnitte, wie das auf der Konsole aussieht:</p> <p><img alt="Drupal Composer install" data-entity-type="file" data-entity-uuid="b1f6aa05-8e04-416a-8571-8ad828e1dc4a" src="/sites/default/files/inline-images/drupal-unter-composer-kontrolle-7.JPG" /></p> <p>Entscheidend ist die Zeile mit Drupal Core und wir sehen, ja es wird die gewünschte Version installiert.</p> <p><img alt="Drupal Composer install" data-entity-type="file" data-entity-uuid="45dcf0d2-432e-40bd-bd16-834790da07d0" src="/sites/default/files/inline-images/drupal-unter-composer-kontrolle-8.JPG" /></p> <p>Kurz vor Ende gibt es gelb markierte Zeilen, die nun bei jedem Update angezeigt werden..<br /> Es handelt sich um Fehlermeldungen bezüglich "abandoned Packages".<br /> Nach Studium dieses Artikels bin ich zum Schluss gekommen, dass ich diese Hinweise ignorieren kann.<br /><a href="https://www.drupal.org/project/drupal/issues/3104015">https://www.drupal.org/project/drupal/issues/3104015</a><br /> Gegen Ende der Reise zu 8.9.3 werden die Hinweise immer weniger.</p> <p><img alt="Drupal Composer install" data-entity-type="file" data-entity-uuid="b170194d-0ffd-4b5b-aaac-9ca757f4f374" src="/sites/default/files/inline-images/drupal-unter-composer-kontrolle-9.JPG" /></p> <h2><a name="__RefHeading__2898_139082490" id="__RefHeading__2898_139082490"> </a> Wiederherstellen der individuellen Konfigurationen</h2> <p>Im Verzeichnis C:\wwwroot\kundexxx befindet sich nun die typische Verzeichnis-Struktur einer Drupal-Installation, die mit Composer - statt wie früher durch Download der Programmdateien - erzeugt wurde.</p> <p>Um individuelle Dateien und Datenbank-Einträge unter der neuen Verzeichnis-Struktur wieder herzustellen, führen wir Folgendes durch</p> <ul><li> <p>Aus dem Ordner "sites" des Backups werden die Dateien und der Ordner "default" in den neuen Sites-Ordner kopiert.<br /> In der Datei "settings.php" müssen die Datenbank-Verbindungen vom Produktivsystem auf das lokale System geändert werden.<br /> Außerdem muss trusted host auf "kundexxx\.localhost" geändert werden.<br /> Auch die Pfade auf "protected"-Verzeichnis und "config_sync_directory" müssen evt. angepasst werden.</p> </li> <li> <p>Den Ordner "libraries" vom Backup kopieren wir direkt in "C:\wwwroot\kundexxx\web".</p> </li> <li> <p>Ebenso kopieren wir die Ordner aus "themes" und "modules" in die bereits angelegten Ordner gleichen Namens unter "C:\wwwroot\kundexxx\web".</p> </li> <li> <p>In der neuen Verzeichnisstruktur gibt es keine Dateien unter "C:\wwwroot\kundexxx\web", sondern nur Ordner.<br /> Deshalb kopieren wir die alten Dateien aus dem Root-Verzeichnis hier her.<br /> Das betrifft die folgenden Dateien:<br /><br /><img alt="Drupal Verzeichnisstruktur Root" data-entity-type="file" data-entity-uuid="8355f7bd-22c2-42bf-9d43-974429b9fc51" src="/sites/default/files/inline-images/drupal-unter-composer-kontrolle-10.JPG" /></p> </li> <li> <p>In der Datei ".htaccess" müssen wir die Weiterleitungen auf "https" und "www" auskommentieren, da vermutlich lokal nicht mit SSL zugegriffen wird und eine Weiterleitung auf "www" nicht gewünscht ist.</p> <ul><li> <p>In der Datei autoload.php steht eine Zeile:<br /><font face="Courier New, monospace">return require __DIR__ . '/vendor/autoload.php';</font><br /> Da das vendor Verzeichnis nun nicht mehr ein Ordner auf gleicher Ebene, sondern auf übergeordneter Ebene ist, muss diese Zeile so umgeschrieben werden:<br /><font face="Courier New, monospace">return require __DIR__ . '/../vendor/autoload.php';</font></p> </li> </ul></li> </ul><h2><a name="__RefHeading__2900_139082490" id="__RefHeading__2900_139082490"> </a>Module installieren, die Composer-Kontrolle benötigen</h2> <p>Die folgenden Module löschen wir aus dem Modul-Ordner und installieren sie mit Composer, damit die entsprechenden Libraries aus den Repositories geholt werden.<br /> Das ist nötig, weil ja unsere neue "composer.json" über der Root-Ebene nichts davon weiß, dass wir diese Module benötigen.</p> <p>Wir installieren die gleichen Programm-Versionen, die bereits installiert waren und folglich auch in der Datenbank aktiviert sind:</p> <ul></ul><ul><li><font face="Courier New, monospace">composer require "dompdf/dompdf:0.7.0-beta3"</font></li> <li> <p><font face="Courier New, monospace">composer require "drupal/entity_print:1.3"</font></p> </li> <li> <p><font face="Courier New, monospace">composer require "drupal/address:1.6"</font></p> </li> </ul><h2><a name="__RefHeading__2902_139082490" id="__RefHeading__2902_139082490"> </a>Inhomogene Struktur im Modules-Ordner reparieren</h2> <p>Ganz am Anfang habe ich erwähnt, dass mehrere Drupal-Module direkt im "modules"-Ordner, statt in "modules/contrib" liegen, weil sie über das Drupal Backend installiert wurden, statt händisch oder mit Composer.<br /> Das hat zwar bislang nicht gestört, soll aber nun vereinheitlicht werden.</p> <p>Wenn man die Modul-Ordner einfach in den Unterordner C:\wwwroot\kundexxx\web\modules\contrib schiebt und die Seite dann aufruft, kommt es zu einem White Screen und in den Logs gibt es eine entsprechende Fehlermeldung.</p> <p>Wir müssen den Cache erst leeren und zwar sehr gründlich.<br /> Über das Backend von Drupal ist das ja wegen der Fehlermeldung nicht möglich und erfahrungsgemäß reicht es nicht, die cache_* Tabellen in der Datenbank zu leeren.</p> <h2>Cache leeren</h2> <p>Wir leeren den Cache per Drush oder mit einem Aufruf von "<a href="http://kundenxxx.local/update.php">http://kundenxxx.local/update.php</a>", obwohl wir wissen, dass keine Datenbank-Aktualisierungen fällig sind.<br /> Der Aufruf der update.php löscht nach meiner Erfahrung zuverlässig alle Caches.</p> <h2><a name="__RefHeading__2906_139082490" id="__RefHeading__2906_139082490"> </a>Installation testen</h2> <p>Nun kommt der große Augenblick, wo wir unsere Installation mit neuer Verzeichnis-Struktur testen können.</p> <p>Wir rufen am Browser auf: <a href="http://kundexxx.localhost/">http://kundexxx.localhost</a></p> <p>Normalerweise müsste die Seite sofort angezeigt werden, wenn wir im Vorfeld alle Fehler umschifft haben.</p> <p>Da jede Installation individuell ist, würde es mich nicht wundern, wenn es bei Euch noch Hürden gibt und entweder sofort ein White Screen gezeigt wird, oder spätestens in den Protokolldateien von Drupal Fehler angezeigt werden.</p> <p>Im ersten Fall sehen wir im Apache Log-File nach, das bei mir unter Windows 10 für dieses Projekt so aufgerufen wird (weil ich das in der Config des virtuellen Verzeichnisses so gewünscht habe):</p> <p>C:\Program Files\Apache24\logs\kundenxxx-error.log</p> <p>Mit den Fehlermeldungen, die hier gefunden werden, muss man nun im Web auf Suche gehen und auch etwas Phantasie aufbringen.</p> <p>Wenn die Seite korrekt aufgerufen werden kann und die Homepage im Frontend angezeigt wird, dann loggen wir uns als Administratoren ein und besuchen als erstes den Status-Bericht. Hier sehen wir evt. Fehlermeldungen:</p> <p><a href="http://kundexxx.localhost/admin/reports/status">http://kundexxx.localhost/admin/reports/status</a></p> <p>Ich bin schon happy, wenn nur eine Fehlermeldung erscheint:<br /> "<font face="Courier New, monospace">PHP OPcode caching Nicht aktiviert "</font></p> <p>Da dieser PHP Opcode Cache momentan nicht gewünscht und nicht konfiguriert ist, ist die Fehlermeldung ja eher ein Hinweis, als ein Problem.</p> <p>Danach besuchen wir nach und nach die wichtigen Seiten unserer Homepage und beobachten danach, ob im Fehler-Protokoll (watchdog) Warnings oder gar Fatal Errors erscheinen: <a href="http://kundexxx.localhost/admin/reports/dblog">http://kundexxx.localhost/admin/reports/dblog</a></p> <p>Da muss dann im Einzelfall wieder überlegt bzw. im Netz nach der Fehlermeldung gesucht werden. Die Abhilfe ist individuell. In meinem Fall gab es an der Stelle keine Fehlermeldungen und die Webseite ist reif für die nächsten Update-Schritte.</p> <h2><a name="__RefHeading__2908_139082490" id="__RefHeading__2908_139082490"> </a>Backup der bisherigen Version</h2> <p>Da es wirklich viel Arbeit war, die Installation soweit sauber zu bekommen, dass wir künftig einfach per Composer auf der Konsole updaten können, machen wir an dieser Stelle ein Update von der Datenbank und allen Dateien im Ordner C:\wwwroot\kundexxx\.</p> <p>Es ist schon fast zu erwarten, dass bei den kommenden Updates etwas schief geht.<br /> Deshalb macht es Sinn, wenn wir nur bis zu diesem Schritt zurück gehen müssen.</p> <p> </p> <h1><a name="__RefHeading__2910_139082490" id="__RefHeading__2910_139082490"> </a>Schrittweises Update bis zur aktuellen Version 8.9.3</h1> <p>Ich gehöre ja nicht zur geduldigen Sorte Mensch.<br /> Deshalb habe ich früher gerne mal versucht, Update-Schritte auszulassen und nur die wichtigen "Minor Versions" einzuspielen.<br /> Mit dem Hintergedanken, dass ja einmal gemachte Patches auch im Code bleiben.<br /> Das ist aber ganz schnell an die Wand gefahren, weil Datenbank-Updates fehlen, die aufeinander aufbauen und letztendlich habe ich wirklich Schritt für Schritt jede Version sauber mit Composer aktualisiert und danach - sofern nötig - die Datenbank-Updates durch geführt bzw. Dateien wie .htacess, settings.php ect. unter Beibehaltung von individuellen Änderungen aktualisiert.</p> <p>Bevor man das Update mit Composer durchführt, empfiehlt es sich, die Änderungen für dieses Release genau zu studieren, aus denen z.B. auch hervorgeht, ob Änderungen an den Seiten .htaccess, web.config, robots.txt oder settings.php gemacht werden und ob ein Datenbank-Update fällig ist.</p> <p>Wir gehen dazu auf die Seite für unsere aktuell verbaute Version: <a href="https://www.drupal.org/project/drupal/releases/8.6.13">https://www.drupal.org/project/drupal/releases/8.6.13</a></p> <p>Hier können wir uns rechts einen Überblick über die anstehenden Updates verschaffen und jeweils darauf klicken, um zu erfahren, um welche der folgenden Typen es sich handelt:</p> <ul><li> <p>Patch release</p> </li> <li> <p>Maintenance and security release</p> </li> <li> <p>Minor version</p> </li> </ul><p>Hier kann man auch nachsehen, welche Änderungen am Programmcode oder in der Datenbank gemacht wurden.<br /> Das kann ein wichtiger Hinweis sein, wenn es bei Composer oder Datenbank-Update zu Fehlermeldungen kommt.</p> <p>Die gute Nachricht: Wenn man die Updates wirklich sauber und strukturiert Schritt für Schritt durchführt und vorher die Release-Notes liest, dann gibt es so gut wie keine Probleme.</p> <p>Wir gehen also wieder auf die Konsole, wo vermutlich noch angezeigt wird, dass wir uns im Verzeichnis "C:\wwwroot\kundexxx\" befinden, wo die Composer-Befehle ausgeführt werden.<br /> Evt. Datenbank-Updates mit drush werden dagegen im Unterordner "C:\wwwroot\kundexxx\web" ausgeführt.</p> <h2><a name="__RefHeading__2912_139082490" id="__RefHeading__2912_139082490"> </a>Wartungsmodus</h2> <p>Auch wenn Du alleine an der Installation arbeitest und diese nicht öffentlich zugänglich ist, macht es Sinn, unter</p> <p><a href="http://kundenxxx.localhost/admin/config/development/maintenance">http://kundenxxx.localhost/admin/config/development/maintenance</a></p> <p>den Wartungsmodus einzuschalten.</p> <h2><a name="__RefHeading__2914_139082490" id="__RefHeading__2914_139082490"> </a>Zusammenfassung des Vorgangs beim Update:</h2> <p>Hier eine kurze Raodmap, was uns erwartet:</p> <ul><li> <p>Drupal 8.6.14-8.6.18</p> </li> <li> <p>Drupal 8.7.0 – 8.7.9</p> <p>Installation von pathauto: 1:8</p> </li> <li> <p>Drupal 8.7.9 – 8.7.14</p> <p>Update aller Module auf den neuesten Stand</p> <p>Backup Datenbank und Verzeichnis</p> </li> <li> <p>Drupal 8.8.0- 8.9.3</p> <p>Ausführliche Tests und Debugging</p> <p>Backup der aktuellen sauberen Version und Live-Stellung</p> </li> </ul><h2>Status für die nächste Version checken</h2> <p>Wir können uns vor jedem Composer-Update anzeigen lassen, welche Abhängigkeiten aktualisiert werden können:<br /><font face="Courier New, monospace">composer outdated drupal/* </font></p> <p>Composer zeigt aber nur die Module an, die auch mit Composer installiert wurden.<br /> Ansonsten muss man sich per Hand über evt. zur Verfügung stehende Updates informieren.</p> <p>Und folgender Befehl zeigt an, warum ein Update nicht funktionieren könnte:<br /><font face="Courier New, monospace">composer prohibits drupal/core:8.6.14</font></p> <h2><a name="__RefHeading__2918_139082490" id="__RefHeading__2918_139082490"> </a>Vorgehen bei den einzelnen Update-Schritten:</h2> <p><b>1. Composer auf der Konsole ausführen</b></p> <p>composer require drupal/core:8.x.x –update-with-dependencies</p> <p>(Ersetze x durch die gewünschte Versionsnummer)</p> <p><b>2. Datenbank-Aktualisierung mit Drush oder update.php</b><br /> Ich führe sie nach jedem Composer-Update durch, auch wenn in der Release-Beschreibung nicht ausdrücklich steht, dass es notwendig ist.<br /><a href="http://kundexxx.localhost/update.php">http://kundexxx.localhost/update.php</a><br /> Damit ist dann auch gleich der Cache geleert.</p> <p><b>3. Evt Änderungen an Dateien wurden gemacht:</b><br /> Das betrifft .htaccess, web.config, robots.txt oder settings.php.<br /> Von diesen Dateien müssen wir die neuen Versionen holen und unter Beibehaltung individueller Anpassungen über die alten Versionen kopieren.</p> <p><b>3. Aufruf der Seite </b><br /><a href="http://kundexxx.localhost/admin/reports/status">http://kundexxx.localhost/admin/reports/status</a> und auf evt. Fehlermeldungen untersuchen.</p> <p><b>4. Aufruf des Fehlerberichtes auf gravierende Fehler:</b><br /><a href="http://kundexxx.localhost/admin/reports/dblog">http://kundexxx.localhost/admin/reports/dblog</a></p> <p><b>5. Apache Error Log kontrollieren</b><br /> Dieses habe ich immer offen im Editor mit laufen, der meldet, wenn sich Änderungen ergeben haben: C:\Program Files\Apache24\logs\kundenxxx-error.log</p> <p><b>6. Aktualisierungs-Status der Module checken</b><br /><a href="http://kundexxx.localhost/admin/reports/updates">http://kundexxx.localhost/admin/reports/updates</a><br /> Hier kann man kontrollieren, ob die installierten Module Probleme mit der installierten Drupal Version verursachen. Idealerweise hat man aber schon vorher bei jedem einzelnen Modul geprüft, bis zu welcher Version es kompatibel ist.</p> <p>Ob Du wirklich jeden der Kontroll-Möglichkeiten nach jedem Update-Schritt durch führst, hängt auch etwas von der Art des Releases, der eigenen Erfahrung und Deiner Risiko-Freude ab.</p> <h2><a name="__RefHeading__2920_139082490" id="__RefHeading__2920_139082490"> </a> Spezielles Verfahren wegen pathauto ab Drupal 8.7.9</h2> <p>Sobald wir uns zur Version Drupal 8.7.9 vorgearbeitet haben, muss eine neue Version des Modules pasth_auto zwingend vor dem nächsten Update installiert werden.<br /> Wenn man versucht unter 8.7.9 das Update von pathauto:1.8 mit Composer durchzuführen, kommt der Hinweis, dass mindestens Drupal 8.8.0 erforderlich ist.<br /> Also muss man im Dateiverzeichnis im Ordner web/modules/contrib den Ordner pathauto löschen und händisch durch die neue Version ersetzen und dann sofort das composer Update für 8.8.0 durchführen.</p> <h2><a name="__RefHeading__2922_139082490" id="__RefHeading__2922_139082490"> </a> Update der Module vor Installation von Drupal 8.8.0</h2> <p>Sehr viele Module liegen für Drupal 8.8.0 in neuer Version vor und sollten mit Composer upgedatet werden:</p> <pre> composer update drupal/modulename –with-dependencies</pre> <p>In meinem Fall bleiben diese Module alle aktuell bis zur Version 8.9.3. Das mag aber im Einzelfall anders sein und je nach Modulen, die zum Einsatz kommen, kann es auch bei vorherigen Versionen notwendig sein, Module vor dem nächsten Core-Update auf neuen Stand zu bringen. Deshalb bitte für jedes Modul prüfen, bis bzw. ab welcher Drupal Version es kompatibel ist. Diese Informationen findet sich auf der Release-Seite des betreffenden Moduls.</p> <h2><a name="__RefHeading__2924_139082490" id="__RefHeading__2924_139082490"> </a> Umzug auf das Produktivsystem und finale Tests</h2> <p>Nach Abschluss der Updates empfehlen sich weitere Tests, wie z.B. der Formulare oder individueller Programmierungen.<br /> Auch Details wie die Tokens für og:image von Metatags können nicht genau genug überprüft werden, weil manchmal Änderungen fällig sind.</p> <p>Die Tests sollten natürlich nicht nur auf der Entwicklungs-Umgebung durchgeführt werden, sondern auch auf dem zukünftigen Produktivsystem beim Hoster.</p> <p>Zuerst sollte man den Domainnamen auf den Unterordner /web mappen, um sich den Schrecken eines White Screens zu ersparen.</p> <p>Und nicht vergessen, auch auf der Produktiv-Umgebung auf PHP 7.3 umzustellen, falls es vorher nicht schon passiert ist.</p> <p>Außer dem Einspielen der neuen Datenbank, braucht es auch noch die Anpassungen bezüglch SSL in der htaccess, sowie trusted Host und Pfade in der settings.php.</p> <p>Individuelle Dateien wir google-Authentifzierung, sitemap.xml oder php.ini mit individuellen PHP-Konfigurationen müssen ebenfalls wieder eingespielt werden.</p> <h1><a name="__RefHeading__2926_139082490" id="__RefHeading__2926_139082490"> </a> Ausblick</h1> <p>Die Composer-Struktur bietet weitere Vorteile, die man vorher nicht hatte.<br /> Z.B. kann man in der Datei .env.example in .env umbenamen und nutzen, um Datenbank-Zugriff in der sites.php außerhalb der Root speichern, was natürlich deutlich sicherer ist.</p> <p>Das kann man auch so vornehmen, dass künftig mit einem Switch zwischen Produktiv-Umgebung und Entwicklungs-Umgebung gewechselt werden kann.<br /> Schließlich war das ja nicht unser letztes Update mit Transfer zur Entwicklungsumgebung. ;-)</p> <script src="chrome-extension://hhojmcideegachlhfgfdhailpfhgknjm/web_accessible_resources/index.js"></script></div> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--text-with-summary.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/layouts/mycol1.html.twig' --> </div> <!-- END OUTPUT from 'modules/contrib/paragraphs/templates/paragraph.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/custom/custom_barrio/templates/field--field-layout.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog-post.html.twig x field--node--uid.html.twig * field--node--blog-post.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <span class="field field--name-uid field--type-entity-reference field--label-hidden"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> <span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">admin</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/user/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog-post.html.twig x field--node--created.html.twig * field--node--blog-post.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> <span class="field field--name-created field--type-created field--label-hidden">Mi., 26.08.2020 - 17:30</span> <!-- END OUTPUT from 'themes/contrib/bootstrap_barrio/templates/field/field--node--created.html.twig' --> Wed, 26 Aug 2020 15:30:43 +0000 admin 48 at https://montviso.de