wiederkehrenden Begriff durch Variable ersetzen

Post custom hacks and enhancements for phpwcms here only. Maybe some of these things will be included in official release later.
Post Reply
torquemada
Posts: 24
Joined: Thu 20. Jul 2006, 12:44
Location: Las Palmas de Gran Canaria
Contact:

wiederkehrenden Begriff durch Variable ersetzen

Post by torquemada »

Hallo zusammen,
gibt es eine Möglichkeit, einen wiederkehrenden Begriff, wie z.B. ein Städtename (Bsp. "Hamburg") durch eine Variable zu ersetzen, die pro Seitenstruktur festgelegt wird? Habe Mustertexte für Seiten, die sich im Vergleich größtenteils nur durch Städtenamen unterscheiden.

Ich stelle es mir ungefähr so vor: die Variable wird z.B. schon in der Seitenstruktur oder in einem CP festgelegt (z.B. $city = "Hamburg"),
überall im Content auf einer Seitenstruktur, wo ich das Tag {city} sitzen habe, wird dann Hamburg eingesetzt, auf einer anderen Seite dann z.B "Frankfurt".

Noch besser wäre dann, wenn diese Variable sich nicht nur im Content, sondern auch für die Meta-Bereiche verwenden lassen würde, d.h. sie lässt sich auch für die Keywords, "Title" oder Meta Description einsetzen und wird dann entsprechend ersetzt.

Machbar?
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Re: wiederkehrenden Begriff durch Variable ersetzen

Post by flip-flop »

Ja das geht.

Mit einem frontend_render script sicher machbar.

Tag: {CITY}
der dann je nach Seitenstruktur mit entsprechendem Inhalt gefüllt wird.
In der einfachen Version stünden die Städte und die oberen Level-Ids auch im Script. Das ließe sich sicher auch komfortabler machen, bedarf dann etwas Aufwand.


Zumindest der title kann recht einfach geändert/erweitert werden (dann auch in dem selben Script im frontend_render).


Wird in $content["pagetitle"] festgehalten.

(Description und Keywords weiß ich im Moment nicht, ist SUMAtechnisch eigentlich unwichtig).

Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
User avatar
Oliver Georgi
Site Admin
Posts: 9918
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: wiederkehrenden Begriff durch Variable ersetzen

Post by Oliver Georgi »

Ja, Du kannst so etwas recht einfach machen.

Am besten nutze dazu frontend_render. Mehrere Möglichkeiten hast Du.

ID-basiert:
Sagen wir mal Du hast Deine Städte in der 2. Menüebene liegen
  • Root (Level 0)
    • Städte (Level 1, ID3)
      • Hamburg (Level 2, ID5)
      • München (Level 2, ID6)

Code: Select all

<?php

// Standardwert
$city = 'Stadt';

// hier prüfen ob wir uns gerade in der Stadtebene befinden - deswegen auch Test auf ID3 (Städte)
if(isset($LEVEL[2]) && $LEVEL[1] == 3) {
  switch($LEVEL[2])
    case 5: //Hamburg
      $city = 'Hamburg'; break;
    case 6: //München
      $city = 'M&uuml;chen'; break;
  }
}

$content['all'] = str_replace('{city}', $city, $content['all'];

?>
Einfacher würde es aber einfach gehen, wenn Du schlicht den Titel der Struktur nehmen kannst, falls dieser passt und genau so heißt, wie Du es benötigts - also "Hamburg".

Code: Select all

<?php

// Standardwert
$city = 'Stadt';

// Stadtnamen direkt auf Basis des Ebenennamens
if(isset($LEVEL[2]) && $LEVEL[1] == 3) {
  $city = html_entities($content['struct'][ $LEVEL[2] ]['acat_name']);
}

$content['all'] = str_replace('{city}', $city, $content['all'];

?>
Oliver
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Re: wiederkehrenden Begriff durch Variable ersetzen

Post by flip-flop »

Er könntest sicher auch das Feld "Seitentitel:" in der Seitenstruktur verwenden um sich vom Titel der Struktur zu lösen. (Wird bisher nicht anderweitig verwendet, wenn ich das richtig sehe).

Code: Select all

$city = html_entities($content['struct'][ $LEVEL[2] ]['acat_pagetitle']);
Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
User avatar
Oliver Georgi
Site Admin
Posts: 9918
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: wiederkehrenden Begriff durch Variable ersetzen

Post by Oliver Georgi »

Natürlich wird Seitentitel benutzt - überschreibt den Seitentitel.

Oliver
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Re: wiederkehrenden Begriff durch Variable ersetzen

Post by flip-flop »

Mhh, der "Seitentitel" unter -> "Artikel Basisinformation bearbeiten" verhält sich so. :?

Jedoch

-> "Seitenstruktur (enthalten in): Home" -> "Seitentitel:"

wird scheinbar nicht genutzt. Und den meine ich eigentlich.

Wenn dann noch

Code: Select all

$GLOBALS['content']["pagetitle"] .= '|' . $city;
gesetzt wird, ist das schon ziemlich perfekt für seine Bedürfnisse.

Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Re: wiederkehrenden Begriff durch Variable ersetzen

Post by flip-flop »

(Auf)Klärung:

Der [Seitentitel] unter "Seitenstruktur" wird bei einer einfachen Artikelausgabe nicht in den Titel der Seite übernommen.
Bei der "Artikelausgabe im Listenmodus" ersetzt der [Seitentitel] den gesamten Titel der Seite.

Der [Seitentitel] in der Artikelbasisinformation überschreibt immer den Titel der Seite.

Also lässt sich der Seitentitel gut für das angesprochene Problem verwenden. (Im HowTo mal nach "Wiederkehrenden Begriff" suchen).

Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
torquemada
Posts: 24
Joined: Thu 20. Jul 2006, 12:44
Location: Las Palmas de Gran Canaria
Contact:

Funktioniert!

Post by torquemada »

Hallo und vielen Dank erstmal an Oli & Flip-Flop,

besonders auch für die Aufbereitung auf der "How-To"-Seite – wirklich eine großartige Hilfe.
habe jetzt mal die zweite Version unter Gebrauch des Seitentitels aus der Seitentsruktur gewählt, so bleibe ich erstmal flexibel.
ID basiert wäre es noch effizienter, aber dann muß ich mich beim Aufbau allerstrengstens an die Struktur halten.

Ein kleines Problem am Rande habe ich aber noch:
ich habe den RT zusammen mit dem "{CANONICAL}" und dem Replacern {CATEGORY}, {PAGETITEL}{ARTICLE_TITLE} etc. (siehe How-To Seite zusammen in eine Frontendrender Datei gesteckt, jedoch der {ARTICLE_TITLE} , {ARTICLE_ID} giebt leider keinen Inhalt aus, obwohl die Felder aufgefüllt sind. (PAGETITLE, & CATEGORY geben schon Inhalte aus, der {CITY) auch ...
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Re: wiederkehrenden Begriff durch Variable ersetzen

Post by flip-flop »

{ARTICLE_TITLE} , {ARTICLE_ID}

Kann es sein, dass du gerade im Artikellistenmodus stehst und die Ausgaben erwartest?
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
Post Reply