WBCE CMS – Way Better Content Editing.
You are not logged in.
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
... der hier noch viel lernen/herausfinden muss 
Offline
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
mk70, jean
Oh, viel zu lesen - für am Handy nicht gut.
Danke schon mal dafür...
Den PC sehe ich Samstag morgen wieder, dann schau ich mal, was mir am besten für die Umsetzung gefällt. 
Gruß Mac
... der hier noch viel lernen/herausfinden muss 
Offline
Mahlzeit
kurze Rückmeldung: Ich habe heute morgen die "Headline" erfolgreich per Droplet umgesetzt. Überall, wo sie sein soll, muss der Platzhalter rein. 
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.
Schönes WE. 
Gruß Mac
... der hier noch viel lernen/herausfinden muss 
Offline
Morgen...
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.
**
Wäre für die Breadcrumbs wohl zu schön gewesen, wenn das auch so passen würde.
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> > <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? 
Oder gehts insgesamt einfacher?
Danke Euch schon mal. 
Gruß Mac
... der hier noch viel lernen/herausfinden muss 
Offline
- 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> > <span class="[class]">[a][menu_title]</a></span>');ändern in
show_menu2(SM2_ALLMENU, SM2_ROOT, SM2_ALL, SM2_CRUMB, ' > <span class="[class]">[a][menu_title]</a></span>', '', '', '', '<i class="bx bx-home"></i> > <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
mk70
(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
Zu Florian:
Die PAGE ID ist 1.
Bei der Headline habe ich die 1 auch drin, die verschiebt nichts.
Der geänderte Code funktioniert.
Zu Jean:
hmm... Ich habe mir das aus einer WBCE Vorlage genommen. Haben wir denn eine, wo das anders eingebettet ist?
Hab heute früh mal die ein oder andere Vorlage durchkämmt, aber darin (erstmal) nichts "anderes" gefunden. 
Gruß Mac
... der hier noch viel lernen/herausfinden muss 
Offline
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> > <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
mk70
Ok, ich glaub das Zweite habe ich irgendwo schon mal gesehen. Ob das hier war, weiß ich gerade nicht.
Teste ich morgen mal.
Danke Euch erstmal und ich sach Bescheid. 
Gruß Mac
... der hier noch viel lernen/herausfinden muss 
Offline
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
mk70, beach
Guten Morgen
ja, sowas dachte ich mir schon.
Ich habe jetzt die erste Seite, wo das drin ist, die ich auf WBCE umbaue. Sollte man gleich mitberücksichtigen. ![]()
Gruß Mac
... der hier noch viel lernen/herausfinden muss 
Offline
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. 
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..
Der Code bleibt trotzdem gesichert. Wer weiß wofür man den mal braucht. 
Gruß Mac
... der hier noch viel lernen/herausfinden muss 
Offline