Pfade ohne Endung .php oder .html ausgeben

Fragen zum Erstellen von Templates für webEdition.
dipser
Member
Beiträge: 35
Registriert: Mi 4. Sep 2013, 22:04
Wohnort: Soltau
Kontaktdaten:

Pfade ohne Endung .php oder .html ausgeben

Beitragvon dipser » So 20. Sep 2015, 09:15

Ist es irgendwie möglich, die Pfade unter anderem bei <we:url id="" /> ohne die Endung auszugeben?

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Pfade ohne Endung .php oder .html ausgeben

Beitragvon WBTMagnum » So 20. Sep 2015, 22:44

Hallo dipser,

Ich denke hier musst du mit PHP nacharbeiten.

Wie sieht denn dein Anwendungsfall aus? Vielleicht gibt es ja einen anderen Ansatz.


Liebe Grüße,
Sascha

dipser
Member
Beiträge: 35
Registriert: Mi 4. Sep 2013, 22:04
Wohnort: Soltau
Kontaktdaten:

Re: Pfade ohne Endung .php oder .html ausgeben

Beitragvon dipser » Mo 21. Sep 2015, 01:20

Ich hätte einfach gerne Links ohne Endung. Ist auch besser lesbar: www.hotel.de/Buchung statt www.hotel.de/Buchung.php

Bei Objekten ist das ja Problemlos möglich, nur bei Dokumenten nicht.

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Pfade ohne Endung .php oder .html ausgeben

Beitragvon WBTMagnum » Mo 21. Sep 2015, 09:35

Hallo dipser,

Alles klar!

Hier ein Lösungsansatz der mir spontan dazu einfällt, sofern du hier im Kontext einer listview bist ...

In einer listview kannst du dir mit "<we:field name="wedoc_Extension"/> die Dateierweiterung holen und anschließend mittels PHP aus dem URL String werfen. Den URL String musst du natürlich vorher in eine Variable geben.

Könnte - in einer listview - dann so aussehen (ungetestet):

Code: Alles auswählen

<we:listview type="document" id="$weID">
  <we:field name="WE_URL" to="global" nameto="documentURL"/>
  <we:field name="wedoc_Extension" to="global" nameto="documentExtension"/>
<?php
  $GLOBALS['documentCleanURL'] = str_replace($GLOBALS['documentExtension'], '', $GLOBALS['documentURL']);
?>
  <we:var type="global" name="$GLOBALS['documentCleanURL']"/>
</we:listview>

Ohne listview würde ich das Ergebnis von <we:url> auch in eine Variable schieben und dann die Extension mittels PHP "abschneiden". Der Code dafür könnte wie folgt aussehen (ungetestet):

Code: Alles auswählen

<we:url id="$weID" to="global" nameto="documentURL"/>
<?php
  $GLOBALS['documentCleanURL'] = preg_replace('/\\.[^.\\s]{3,4}$/', '', $GLOBALS['documentURL']);
?>
<we:var type="global" name="$GLOBALS['documentCleanURL']"/>

Beide Lösungen nicht ganz sauber. Vielleicht hat da noch jemand einen schlaueren Ansatz (ohne PHP).


HTH,
Sascha

dipser
Member
Beiträge: 35
Registriert: Mi 4. Sep 2013, 22:04
Wohnort: Soltau
Kontaktdaten:

Re: Pfade ohne Endung .php oder .html ausgeben

Beitragvon dipser » Mo 21. Sep 2015, 09:43

Hi, danke für die Mühe, dass hätte nicht sein müssen, da mir diese Lösung zwar schon vorschwebte, aber mir nicht gerade gefällt.

Von Haus aus lässt webEdition dies leider nicht zu.

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Pfade ohne Endung .php oder .html ausgeben

Beitragvon mokraemer » Mo 21. Sep 2015, 12:02

Also innerhalb einer Seitenausgabe sieht das ja keiner.
Wenn es sich um zentrale Dokumente handelt, deren Seite man rausgeben will, kann man das ja mittels "Index-Dokument" und deren Ersetzung erreichen.
Selbst wenn WE die Endung unterdrückt - muß man dem Webserver ja auch noch mitteilen, daß dieser die Datei noch findet.
webEdition-Kern-Entwickler

dipser
Member
Beiträge: 35
Registriert: Mi 4. Sep 2013, 22:04
Wohnort: Soltau
Kontaktdaten:

Re: Pfade ohne Endung .php oder .html ausgeben

Beitragvon dipser » Mo 21. Sep 2015, 16:53

Das gleiche Prinzip ist aktuell in Objekten vorhanden mit:

Code: Alles auswählen

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ /webEdition/redirectSEOurls.php [L]
Ungetestet könnte ich mir sowas vorstellen bei Dokumenten:

Code: Alles auswählen

  # Ohne .php Endung
  RewriteCond %{REQUEST_URI} !/webEdition/.* [NC]
  RewriteCond %{REQUEST_FILENAME}.php -f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ /$1.php [L]
Fehlt halt nur die Ausgabe ohne Dateiendung. Die Lösung von WBTMagnum ist in Ordnung, aber nicht toll.
Ich will eigentlich auch nicht für jede Seite ein Ordner und ein Dokument anlegen müssen, bei der Pflege hat man dann nur noch index.php Dokumente. Der Nachteil ist dabei offensichtlich, dass man den Überblick verliert, wenn man 5 mal "index.php" auf hat.


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: Google [Bot], Semrush [Bot] und 14 Gäste