WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 07.08.2025 16:39:28

mk70
Member

Seiten-Inhalte am Kopf per Platzhalter

hallo zusammen,

ich habe mal wieder eine Frage, wo ich mir den Weg noch nicht so richtig zurechtlegen konnte.

Ich komme von Themes mit html-Dateien und dort konnte ich Code reinpacken, der später z. B. auf allen Seiten (nicht Startseite) angezeigt wurde.

Viele basteln u. a. auf den einzelnen Unterseiten Headerbilder rein. Das als Bsp..
Ich brauche eher einen Streifen und später auch die Breadcrump-Leiste.

Nun habe ich überlegt, ob ich mir Plathalter basteln kann (in GlobalStrings), die ein paar Sachen beinhalten und ich den String einbinden kann.
Problem: GlobalString kann kein php.

Hier erstmal der Code, der im GlobalString eingebunden sein könnte, den ich mit dem Platzhalter "[[string?name=xxx]]" vor den jeweiligen Inhalt der einzelnen Seiten setzen könnte:

<!--Section Content-Title -->
<section id="cta-content" class="cta-content">
 <div class="container">
  <div class="row">
   <div class="col-12"><h2>{PAGE_TITLE}</h2></div>
   </div>
 </div>
</section><!-- Ende Section Content-Title -->

<!-- Breadcrumbs -->
<section id="breadcrumb" class="breadcrumbs">
 <div class="container pt-1 pb-3">
  <a href="{NODE_HOME}"><i class="bx bx-home"></i></a> > {NAVTREE} {NAVTITLE}
 </div>
</section><!-- End Breadcrumbs -->

-- PLATZHALTER PAGE-TITEL = echo page_title --

Ich habe mal ein paar Sachen versucht durchzuspielen, aber irgendwie bekomme ich das nicht hin.

- php im Editor funzt nicht.
- code2 angelegt und versucht die Abschnitts-ID in GlobalStrings einzubinden. Das klappt aber auch nicht.
- Kann man das als Droplet machen, wie beim Copyright?


So, ich schmeiße es mal rein und freue mich auf Anregungen zur Umsetzung.


Gruß Mac smile

... der hier noch viel lernen/herausfinden muss  cool

Offline

#2 07.08.2025 18:48:59

florian
Administrator

Re: Seiten-Inhalte am Kopf per Platzhalter

Wenn's nur darum geht, bestimmten Code nicht auf der Startseite anzuzeigen, hinterlegst Du im Template

<php if (PAGE_ID != 1) { ?>
<section id="cta-content" class="cta-content">
....usw...
</section><!-- Ende Section Content-Title -->
<?php } ?>

(wenn die Startseite die Page-ID 1 hat)

Analog geht das natürlich auch, wenn der Code auf bestimmten Seiten (nicht) angezeigt werden soll

<?php if (PAGE_ID != 42) { ... } ?>
<?php if (PAGE_ID == 23 || PAGE_ID == 42) {...} ?>
<?php 
$noHeaderPages = array (1,42,23);
if (in_array(PAGE_ID,$noHeaderPages)) {...} 
?>

Oder wenn der Code nur ausgegeben werden soll, wenn ein bestimmter Abschnitt Inhalt hat

info.php: $block{7] = "extraHeader";

index.php:
Initialisierung von $block wie im Template wbcezon

<?php if ($block[7]!="") {...} ?>

Mittels eines Droplets [[header]] geht das natürlich auch,

$returnValue='<section id="cta-content" class="cta-content">
 <div class="container">
  <div class="row">
   <div class="col-12"><h2>'.PAGE_TITLE.'</h2></div>
   </div>
 </div>
</section>';
return $returnValue;

oder auch [[header?h=Irgend eine individuelle Headline]]

if (!isset($h)) {$h = PAGE_TITLE;} // wenn keine Headline übergeben wurde nimm den Seitentitel
$returnValue='<section id="cta-content" class="cta-content">
 <div class="container">
  <div class="row">
   <div class="col-12"><h2>'.$h.'</h2></div>
   </div>
 </div>
</section>';
return $returnValue;

Wir Benötigen: Cents, Euros... jetzt spenden!

Offline

Liked by:

mk70, jean

#3 07.08.2025 19:46:40

mk70
Member

Re: Seiten-Inhalte am Kopf per Platzhalter

Oh, viel zu lesen - für am Handy nicht gut.
Danke schon mal dafür... wink

Den PC sehe ich Samstag morgen wieder, dann schau ich mal, was mir am besten für die Umsetzung gefällt.  cool


Gruß Mac smile

... der hier noch viel lernen/herausfinden muss  cool

Offline

#4 09.08.2025 13:08:47

mk70
Member

Re: Seiten-Inhalte am Kopf per Platzhalter

Mahlzeit smile

kurze Rückmeldung: Ich habe heute morgen die "Headline" erfolgreich per Droplet umgesetzt. Überall, wo sie sein soll, muss der Platzhalter rein.  wink

Bei den Breadcrumbs bin ich noch nicht weiter. Ich denke, da fehlt mir noch Code (z.B. bei showmenu2, oder so...)
Dazu aber erst wieder am Montag.  cool

Schönes WE. wink


Gruß Mac smile

... der hier noch viel lernen/herausfinden muss  cool

Offline

#5 11.08.2025 12:07:13

mk70
Member

Re: Seiten-Inhalte am Kopf per Platzhalter

Morgen... smile

ich konnte es gestern nicht lassen und habe nochmal rumbastelt. Das mit der Headline ist noch einfacher, als zuerst gedacht. Den Platzhalter (im Droplet erstellt), habe ich jetzt in der index.php verdrahtet. So muss ich ihn nicht auf jeder Seite einbinden. wink

**

Wäre für die Breadcrumbs wohl zu schön gewesen, wenn das auch so passen würde. lol
Daher statt per Droplet direkt in der index.php "gebastelt", weil es mir wegen dem php-Code immer einen Fehler angezeigt hat.

Das habe ich mir aus dem Theme "fg-grey" geholt und folgendes steht unterhalb dem "headline"-Platzhalters drin:

<!-- Breadcrumbs -->
 <section id="breadcrumb" class="breadcrumbs">
  <div class="container pt-1 pb-3">
   <?php  if (PAGE_ID != 1) {
    if (LEVEL > 2) {
     show_menu2(SM2_ALLMENU, SM2_ROOT, SM2_ALL, SM2_CRUMB, '<span class="[class]">[a][menu_title]</a></span>', '', '', '', '<b>...</b><span class="[class]">[a][menu_title]</a></span>');
    } else {
   show_menu2(SM2_ALLMENU, SM2_ROOT, SM2_ALL, SM2_CRUMB, '<span class="[class]">[a][menu_title]</a></span>', '', '', '', '<i class="bx bx-home"></i> &gt; <span class="[class]">[a][menu_title]</a></span>');
   }
  } ?>
 </div>
</section><!-- End Breadcrumbs -->

Ansich sieht das schon gut aus - NUR:
- Auf der Startseite muss ich noch was schieben, da er mir den Slider runterschiebt. Dabei wäre es gut, wenn Breadcrumb (gleich wie headline) dort nicht zum tragen käme.

- Bei den Unterseiten, hängt der Seitenname direkt an dem der Seite. Sieht so aus:
"> Seite1Seite2" statt
"> Seite 1 > Seite 2".
Da fehlen Leerzeichen und Trenner (html-Sonderzeichen für "größer als").
Wo muss ich das in dem Code einsetzen?  smile

Oder gehts insgesamt einfacher?

Danke Euch schon mal.  smile


Gruß Mac smile

... der hier noch viel lernen/herausfinden muss  cool

Offline

#6 11.08.2025 14:50:05

florian
Administrator

Re: Seiten-Inhalte am Kopf per Platzhalter

- Auf der Startseite muss ich noch was schieben, da er mir den Slider runterschiebt. Dabei wäre es gut, wenn Breadcrumb (gleich wie headline) dort nicht zum tragen käme.

Die Startseite hat icht zwangsläufig die Page-ID 1, schau im Seitenbaum nach, was du angeben musst, also z.B.

<?php  if (PAGE_ID !=23) {

wenn die Startseite die ID 23 hat.

   show_menu2(SM2_ALLMENU, SM2_ROOT, SM2_ALL, SM2_CRUMB, '<span class="[class]">[a][menu_title]</a></span>', '', '', '', '<i class="bx bx-home"></i> &gt; <span class="[class]">[a][menu_title]</a></span>');

ändern in

show_menu2(SM2_ALLMENU, SM2_ROOT, SM2_ALL, SM2_CRUMB, '&nbsp;&gt; <span class="[class]">[a][menu_title]</a></span>', '', '', '', '<i class="bx bx-home"></i> &gt; <span class="[class]">[a][menu_title]</a></span>');

Last edited by florian (11.08.2025 14:50:15)


Wir Benötigen: Cents, Euros... jetzt spenden!

Offline

Liked by:

mk70

#7 11.08.2025 15:17:21

jean
Member

Re: Seiten-Inhalte am Kopf per Platzhalter

(nur am Rande, wenn du schon am basteln bist: die breadcrumb solltest du besser semantisch korrekt als OL innerhalb eines <nav aria-label="Breadcrumb" ... einbauen, nicht als Span innerhalb von Div/Section)

Offline

#8 11.08.2025 15:43:14

mk70
Member

Re: Seiten-Inhalte am Kopf per Platzhalter

Zu Florian:
Die PAGE ID ist 1.
Bei der Headline habe ich die 1 auch drin, die verschiebt nichts.  neutral

Der geänderte Code funktioniert. thumb_up

Zu Jean:
hmm... Ich habe mir das aus einer WBCE Vorlage genommen. Haben wir denn eine, wo das anders eingebettet ist? smile
Hab heute früh mal die ein oder andere Vorlage durchkämmt, aber darin (erstmal) nichts "anderes" gefunden. neutral


Gruß Mac smile

... der hier noch viel lernen/herausfinden muss  cool

Offline

#9 11.08.2025 16:33:37

florian
Administrator

Re: Seiten-Inhalte am Kopf per Platzhalter

Wenn der gesamte Breadcrumbs-Bereich auf Seite #1 nicht angezeigt werden soll, muss er geändert werden wie folgt:

   <?php  if (PAGE_ID != 1) { ?>
<!-- Breadcrumbs -->
 <section id="breadcrumb" class="breadcrumbs">
  <div class="container pt-1 pb-3">
<?php
    if (LEVEL > 2) {
     show_menu2(SM2_ALLMENU, SM2_ROOT, SM2_ALL, SM2_CRUMB, '<span class="[class]">[a][menu_title]</a></span>', '', '', '', '<b>...</b><span class="[class]">[a][menu_title]</a></span>');
    } else {
   show_menu2(SM2_ALLMENU, SM2_ROOT, SM2_ALL, SM2_CRUMB, '<span class="[class]">[a][menu_title]</a></span>', '', '', '', '<i class="bx bx-home"></i> &gt; <span class="[class]">[a][menu_title]</a></span>');
   }
 ?>
 </div>
</section><!-- End Breadcrumbs -->
<?php } ?>

Was jean meinte:

index.php

<?php
$breadcrumbs = show_menu2(
$aMenu          = 0, 
$aStart         = SM2_ROOT, 
$aMaxLevel      = SM2_CURR, 
$aOptions       = SM2_CRUMB|SM2_BUFFER,
$aItemOpen      = '<li><a [if (class==menu-current) {aria-current="page"}] href="[url]">[menu_title]</a></li>',
$aItemClose     = '',
$aMenuOpen      = '',
$aMenuClose     = '',
$aTopItemOpen   = false,
$aTopMenuOpen   = '<ol>'
).'</ol>';

if (isset($post_id)) {				
	$breadcrumbs = str_replace(array('aria-current="page"','</ol>'),array('',''),$breadcrumbs);
	$news_table = TABLE_PREFIX . 'mod_news_img_posts';
	$sql = 'SELECT * FROM '.$news_table.' WHERE `post_id` = '.$post_id;
	$res = $database->query($sql);
	while ($row = $res->fetchRow()) {
		$breadcrumbs.='<li><a href="" aria-current="page">'.$row['title'].'</a></li></ol>';
	}

}
?>

...
<nav class ="breadcrumb" aria-label="Breadcrumb">
	<?php echo $breadcrumbs; ?>
</nav>

CSS

/* ----------------------------------------------Breadcrumbs ----------------------------------------*/
/*https://www.w3.org/WAI/ARIA/apg/patterns/breadcrumb/examples/breadcrumb/*/

nav.breadcrumb {
  padding: 1em 0;
font-size:75%;  
}

nav.breadcrumb ol {
  margin: 0;
  padding-left: 0;
  list-style: none;
}

nav.breadcrumb li {
  display: inline;
}

nav.breadcrumb li + li::before {
  display: inline-block;
  margin: 0 0.25em;
  transform: rotate(15deg);
  border-right: 0.1em solid currentcolor;
  height: 0.8em;
  content: "";
}

nav.breadcrumb [aria-current="page"] {
  color: #000;
  font-weight: 700;
  text-decoration: none;
}

Wir Benötigen: Cents, Euros... jetzt spenden!

Offline

Liked by:

mk70

#10 11.08.2025 17:47:51

mk70
Member

Re: Seiten-Inhalte am Kopf per Platzhalter

Ok, ich glaub das Zweite habe ich irgendwo schon mal gesehen. Ob das hier war, weiß ich gerade nicht.
Teste ich morgen mal.  smile

Danke Euch erstmal und ich sach Bescheid.  wink


Gruß Mac smile

... der hier noch viel lernen/herausfinden muss  cool

Offline

#11 11.08.2025 22:23:33

jean
Member

Re: Seiten-Inhalte am Kopf per Platzhalter

mk70 - es ging um die Barrierefreiheit, die man gerne mitbeachten sollte, wenn man eh schon am Basteln ist.

Die Auszeichnung der Navigation mit section / span (wie es in vielen älteren Templates zu finden ist) vermittelt keine bzw. nicht die richtige semantische Bedeutung - das ist dann einfach nur eine Abfolge von Links. Die Auszeichnung mit nav und ol bedeutet dann aber: hier kommt eine Navigationsstruktur mit einer Liste von Links. Das sieht zwar beides gleich aus, aber nur die 2te Variante erklärt und verdeutlich, worum es bei dem Code eigentlich geht ...

(Florian - danke für die Details)

Offline

Liked by:

mk70, beach

#12 12.08.2025 07:06:40

mk70
Member

Re: Seiten-Inhalte am Kopf per Platzhalter

Guten Morgen smile

ja, sowas dachte ich mir schon. smile
Ich habe jetzt die erste Seite, wo das drin ist, die ich auf WBCE umbaue. Sollte man gleich mitberücksichtigen.   thumb_up


Gruß Mac smile

... der hier noch viel lernen/herausfinden muss  cool

Offline

#13 13.08.2025 16:26:13

mk70
Member

Re: Seiten-Inhalte am Kopf per Platzhalter

Rückmeldung:
Ich habe mir im allgemeinen nochmal Gedanken bzgl. der Breadcrumbs gemacht.

Die fliegen auf den meisten Seiten raus. Ist ein nettes Gimik, aber man liest auch, dass das idR. nur bei einer unübersichtlichen Struktur (wie z.B. Shops, etc.) notwendig ist. Bei den Kundenwebsites sind fast alle Seiten direkt über das NavMenu erreichbar. wink
Zudem bläht es den oberen Teil bei mobiler Ansicht zusätzlich auf (wenn Sticky) und wenn scrollbar, sieht man es eh erst wieder, wenn man wieder rauf gescrollt hat.. tongue

Der Code bleibt trotzdem gesichert. Wer weiß wofür man den mal braucht.  smile


Gruß Mac smile

... der hier noch viel lernen/herausfinden muss  cool

Offline

Board footer

up