zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden PHP-Skript zum Entfernen von "Deppenlinks" in den Navi-Menüs

Antwort
 
LinkBack Themen-Optionen Ansicht
  #11 (permalink)  
Alt 28.02.2018, 10:14
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 30.01.2014
Beiträge: 2.235
cloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von AndreasB Beitrag anzeigen
"Vergleiche den ausgelieferten URL mit allen URLs in den A-Elementen."
"Wenn ein URL übereinstimmt, entferne das A-Element und ersetze es durch strong."
PHP weiß nichts von a-Tags (nicht Elementen)
Das musst du an jeder Stelle wo ein Link ausgegeben wird direkt anpassen. In PHP bin ich auch nicht fit, aber irgendwie werden die Links ja in den PHP files generiert. Und genau an der Stelle weißt du einerseits: Die gerade aktuelle Seite und zweitens den Link der dort gesetzt wird. Dann musst du auch genau an der Stelle deine gewünschte Logik einbauen. Und zwar für jeden A-Tag separat. Außer du hast eine globale Funktion, die dir jeden A-Tag zusammenbastelt.
Mit Zitat antworten
Sponsored Links
  #12 (permalink)  
Alt 28.02.2018, 10:53
Benutzerbild von AndreasB
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 29.11.2005
Beiträge: 1.387
AndreasB wird schon bald berühmt werden
Standard

Dann wird es wohl nur via regulärer Ausdruck gehen.

Ich dachte, PHP kann mittlerweile zwischen HTML-Tags und Inhalt unterscheiden, so dass man direkt auf den DOM zugreifen kann.

Vielleicht liest hier ja noch jemand mit tiefern PHP-Kenntnissen mit und hat Lust zu antworten.
__________________

Mit Zitat antworten
Sponsored Links
  #13 (permalink)  
Alt 28.02.2018, 21:36
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.979
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Du wirfst einige durcheinader.

Natürlich kann PHP HTML Dokumente bearbeiten. Aber du erzeugst ja mit PHP ein HTML-Dokument das erst im Client vollständig ankommt.

Wenn du mit PHP ein HTML Dokument parsen willst kannst du es machen, dann musst dieses aber zuerst abrufen und dann parsen mit deinem Inhalt ersetzen und dem Browser schicken.
https://secure.php.net/manual/de/dom...adhtmlfile.php

Das umständlich und nicht wirklich sinnvoll.

Wordpress kann sowas natürlich, wie kommst du darauf das es das nicht kann?

Aber selbstverständlich nur mit den Inhalten, die es selbst erzeugt und wenn das Template entsprechend benutzt wird.

Die übliche Funktion, um ein Menü zu erzeugen, markiert den aktuell gewählten Eintrag nur mit einer Klasse
https://developer.wordpress.org/refe...wp_list_pages/

Du kannst dort aber leicht mit einem Filter das von dir gewünschte einbauen.

Solche Sachen sind für ein CMS Standard. Aber das alle Links der aktuellen Seite entfernt werden ist tatsächlich unüblich. Im Menü wird es meist einfach markiert.
Mit Zitat antworten
  #14 (permalink)  
Alt 28.02.2018, 23:03
Benutzerbild von AndreasB
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 29.11.2005
Beiträge: 1.387
AndreasB wird schon bald berühmt werden
Standard

@protonenbeschleuniger
Ich glaube in diesem Fall, dass ich nichts durcheinander werfe. Aber es ist natürlich nicht leicht sich in diesem komplexen Feld präzise zu verständigen. Und mir fehlen oft die passenden Begriffe.

Es geht mir nicht um "PHP kann Dokumente bearbeiten".

Ich erkläre genauer, um was es mir geht.

Zuerst zu den Begriffen. Was meine ich mit Inhalt?

<element attribut="wert">Lorem</element>

"Lorem" ist Inhalt. Der Rest sind Tags.

Was meine ich mit Artikelinhalt?
Alles was zum spezifischen Inhalt einer Seite gehört und nicht zum wiederkehrenden (Kopf, Navi, Fuß, Kommentarspalte).

Ich möchte reguläre Ausdrücke über die Gesamtheit des Artikelinhaltes laufen lassen, um z.B. typografische Ersetzungen automatisiert vorzunehmen.

Dafür dürfen die RegEx nicht durch Tags gestört werden. Und die Tags nicht durch die RegEx.

Im Artikel steht diverses HTML. Listen, Zitate, viele Überschriften, Tabellen.

Ein Bekannter verwendet die "DOMDocument-Klasse von PHP" in einem Projekt.

Dies erlaubt genau das, was ich beschrieben habe.

Mich interessiert, ob sich diese Klasse in Wordpress integrieren ließe.

Ist jetzt klarer, wovon ich spreche?
__________________

Mit Zitat antworten
  #15 (permalink)  
Alt 01.03.2018, 08:20
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 30.01.2014
Beiträge: 2.235
cloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblick
Standard

Auch ich gehe davon aus, dass du hier etwas durcheinander wirfst. Du kannst nicht eine universelle Lösung für dein Problem erwarten.

Beispiel (hier sei gesagt, ich kann nicht wirklich viel PHP, aber das sollte im groben so passen):

Man nehme an ich schreibe ein CMS wo die HTML ausgabe mittels "echo" realisiert wird, zb:
Code:
echo "<a href='target'> lorem </a>" .
Und dann gibt es ein CMS wie Wordpress, dass seine Elemente mit
Code:
wp_list_pages( "Lorem" )
erstellt. Angenommen, beides erstellt das selbe HTML. Wie soll da deine universelle PHP Lösung funktionieren?
Hier müsste bei "meinem CMS" das echo direkt umgeschrieben werden und bei Wordpress die Funktion wp_list_pages (bzw. die Funktion mit den richtigen Parametern aufgerufen werden)
Es kommt also alles nur darauf an, wie das Projekt von Beginn an aufgebaut wird und wie man es verändern kann/will. Bei Wordpress muss hier zB nur ein Template erstellt/verwendet werden, welches deine gewünschte Ausgabe liefert.

Regex auf HTML anzuwenden ist auch nicht zu empfehlen, das kann schnell zu komplex werden und das fehlerfrei hinzubekommen ist nicht im geringsten simpel.
Mit Zitat antworten
  #16 (permalink)  
Alt 01.03.2018, 08:43
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.979
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von AndreasB Beitrag anzeigen
@protonenbeschleuniger
Ich glaube in diesem Fall, dass ich nichts durcheinander werfe.
Das glaube ich aber schon.

Zitat:
Zitat von AndreasB Beitrag anzeigen
Es geht mir nicht um "PHP kann Dokumente bearbeiten".

Ich erkläre genauer, um was es mir geht.

Zuerst zu den Begriffen. Was meine ich mit Inhalt?

<element attribut="wert">Lorem</element>

"Lorem" ist Inhalt. Der Rest sind Tags.
und alles zusammen ist ein HTML Dokument.

Zitat:
Zitat von AndreasB Beitrag anzeigen
Was meine ich mit Artikelinhalt?
Alles was zum spezifischen Inhalt einer Seite gehört und nicht zum wiederkehrenden (Kopf, Navi, Fuß, Kommentarspalte).
Alles Sachen um die sihc ein CMS kümmert.

In deiner Beschreibung fehlt völlig woher diese wiederkehrenden Teile kommen sollen? Diese müssen ja aufgrund bestimmter Bedingungen erzeugt werden.

Zitat:
Zitat von AndreasB Beitrag anzeigen
Ich möchte reguläre Ausdrücke über die Gesamtheit des Artikelinhaltes laufen lassen, um z.B. typografische Ersetzungen automatisiert vorzunehmen.
Das mit dem durcheinanderwerfen ist hier.

Du zählst Bruchstücke auf, die z.b. von einem CMS generiert werden - wie du es machst Wissen wir nicht - aber dort liegen diese Bruchstücke nicht als HTML vor, sondern sind Einträge in einer Datenbank oder ähnlichen und werden dann dynamisch nach Bedarf erzeugt und im Template mit dem von dir gewünschtne HTML zsammengefügt.

Dein Denkansatz klingt merkwürdig und kompliziert, um da wirklich etwas konkretes sagen zu können müsste man genaueres Wissen.

Aber im Grunde klingt das so, als ob du dir ein eigenes CMS schreiben wilst. Ist sicher nicht verkehrt und haben schon viele vor dir versucht. Das Problem ist, irgendwann merkst du es wird so kompliziert und aufwändig, das es sich nicht lohnt.

Zitat:
Zitat von AndreasB Beitrag anzeigen
Ein Bekannter verwendet die "DOMDocument-Klasse von PHP" in einem Projekt.

Dies erlaubt genau das, was ich beschrieben habe.
Ich sehe du guckst dir nicht mal an was ich dir zeige, dann wird es schwierig mit dir zu kommunizieren.
Das ist exakt das worauf ich oben verlinkt habe und ich habe dir exakt beschrieben wie du damit arbeitest. Das geht nur wenn du ein HTML Dokument hast.

https://secure.php.net/manual/de/dom...adhtmlfile.php

Zitat:
DOMDocument::loadHTMLFile — Load HTML from a file ... returns a DOMDocument

Zitat:
Zitat von AndreasB Beitrag anzeigen
Mich interessiert, ob sich diese Klasse in Wordpress integrieren ließe.

Ist jetzt klarer, wovon ich spreche?
Nein. Glaub mir es gibt keinen Grund das zu wollen. Wordpress baut die Inhalte dynamisch zusammen und du hast, wenn du möchtest, nahezu die volle Kontrolle über das was an HTML hinten rauskommt. Du musst diesen nicht nachträglich verändern.

Zumal das so, wie du es dir vorstellst nicht geht, weil du immer noch einen Denkfehler hast. In einer dynamischen Umgebung exisiteren keine fertigen HTML Dokumente, diese existieren erst im Client. Aber das sagte ich bereits.

Das was du willst funktioniert 100% mit einem HTML Dokument, da kann man alles machen was du beschreibst. Aber dann hast du in diesem Dokument keine dynamischen Inhalte, wie z.b. ein Menü, Header, Logo, usw. usf.
Mit Zitat antworten
  #17 (permalink)  
Alt 01.03.2018, 08:45
Benutzerbild von AndreasB
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 29.11.2005
Beiträge: 1.387
AndreasB wird schon bald berühmt werden
Standard

@cloned
Zur Klarstellung:

Den Thread habe ich eröffnet um ein universelles PHP-Skript zu finden, welches auf handgeschriebenen Seiten (die also nicht von einem CMS erstellt wurden) läuft.

Dann gibt es einen Nebenstrang in die diesem Thread.
Da geht es um CMS.
Für ein CMS wünsche ich mir eine integrierte Lösung, welches Deppenlinks verhindert.

Dann gibt es einen weiteren Nebenstrang.
Da geht es um typografische Ersetzungen in Code, der auch Tags enthält. Damit die RegEx sinnvoll anwendbar sind, dürfen sie nur auf die Inhalte und nicht die Tags wirken.
Damit solche Methoden anwendbar sind, benötigt man eine spezielle (unübliche) PHP-Klasse.
Schön wäre es, wenn man so eine Klasse in Wordpress integrieren kann.
__________________

Mit Zitat antworten
  #18 (permalink)  
Alt 01.03.2018, 09:03
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.979
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von AndreasB Beitrag anzeigen
@cloned
Zur Klarstellung:

Den Thread habe ich eröffnet um ein universelles PHP-Skript zu finden, welches auf handgeschriebenen Seiten (die also nicht von einem CMS erstellt wurden) läuft.
Das haben wir auch verstanden und ich habe dir gezeigt womit das geht.

Du musst das Dokument mit der von mir gezeigten Funktion einlesen, durchsuchen, die entsprechenden Elemente entfernen und das neue Dokument ausgeben.

Zitat:
Zitat von AndreasB Beitrag anzeigen
Für ein CMS wünsche ich mir eine integrierte Lösung, welches Deppenlinks verhindert.
Eigentlich ging es ja mal darum welches für deine Zwecke am sinnvollsten ist. Wenn aber schon dieser eine winzig kleine Wunsch so enorm wichtig ist, frage ich mich wie du je eine Lösung finden willst.

Wobei ich dir aber auch schon irgendwo gesagt habe, dass das was du hier beschreibst, in Wordpress absolut kein Problem ist. Du kanst dort an nahezu jeder Stelle beim dynamischen Erzeugen von Inhalten eingreifen und selbstverständlich auch die Links auf die aktuelle Seite entfernen. Das ist kein grosses Ding.

Zitat:
Zitat von AndreasB Beitrag anzeigen
Da geht es um typografische Ersetzungen in Code, der auch Tags enthält. Damit die RegEx sinnvoll anwendbar sind, dürfen sie nur auf die Inhalte und nicht die Tags wirken.
Damit solche Methoden anwendbar sind, benötigt man eine spezielle (unübliche) PHP-Klasse.
Schön wäre es, wenn man so eine Klasse in Wordpress integrieren kann.
Das macht keinen Sinn. Von welchen "unüblichen" PHP Klassen sprichst du? Und wie gesagt - glaube mir doch endlich mal - du brauchst in Wordpress sowas nicht, da du die volle Kontrolle über die Inhalte hast.

Aber selbst wenn du es brauchst - weil du z.b. eine externe HTML Quelle anzapfen willst - geht das ohne Probleme mit einem Plugin.

Aber nur weil du auf eine spezielle Art in deinem Inhalt Links eingreifen willst um etwas nicht anzeigen lassen, dafür ist in einem CMS nichts Spezielles notwendig. Das geht mit Bordmittel.

Dein Problem ist, du hängst gedanklich noch voll in deinen HTML Dokumenten - diese gibt es nicht, wenn du ein CMS verwendest. Dort geht es um Inhalte, aus denen dann HTML Dokumente generiert werden.
Mit Zitat antworten
  #19 (permalink)  
Alt 03.03.2018, 08:47
Benutzerbild von AndreasB
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 29.11.2005
Beiträge: 1.387
AndreasB wird schon bald berühmt werden
Standard

@protonenbeschleuniger
Erstmal Danke für Deine Geduld.

Da ich kein PHP beherrsche ist es naturgemäß für mich erstmal schwer, Hinweise zu verstehen, die damit zu tun haben.

Zitat:
Eigentlich ging es ja mal darum welches für deine Zwecke am sinnvollsten ist. Wenn aber schon dieser eine winzig kleine Wunsch so enorm wichtig ist, frage ich mich wie du je eine Lösung finden willst.

Wobei ich dir aber auch schon irgendwo gesagt habe, dass das was du hier beschreibst, in Wordpress absolut kein Problem ist. Du kanst dort an nahezu jeder Stelle beim dynamischen Erzeugen von Inhalten eingreifen und selbstverständlich auch die Links auf die aktuelle Seite entfernen. Das ist kein grosses Ding.
Du deutest an, dass es kein CMS mit einer solchen integrierter Funktion gibt und es sich aber auch nicht lohnt danach zu suchen, weil die Funktion einfach per PHP nachgerüstet werden kann. Prima.
Falls jemand ein solches Plugin für Wordpress und Processwire kennt, freue ich mich über einen Hinweis.
Beide CMS sind jetzt auf meinem Server verfügbar und ich kann sie ausprobieren.

Zitat:
Dein Problem ist, du hängst gedanklich noch voll in deinen HTML Dokumenten - diese gibt es nicht, wenn du ein CMS verwendest. Dort geht es um Inhalte, aus denen dann HTML Dokumente generiert werden.
Wenn ich im Inhalt HTML verwende, weil es um reiches Markup geht, welches der GUI-Backendeditor nicht per Schaltfläche bereitstellt, dann "weiß" doch das CMS erstmal gar nicht, was Tag und was Inhalt ist.

In diesem Punkt verstehe entweder ich Dich oder Du mich miss.

Nochmal: ich möchte, wenn notwendig, im Artikel-Inhalt auch HTML verwenden können. Und dann möchte ich typografische Ersetzungen vornehmen können per RegEx.
Besser kann ich es nicht erklären, sorry.
__________________

Mit Zitat antworten
Sponsored Links
  #20 (permalink)  
Alt 03.03.2018, 09:48
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.979
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von AndreasB Beitrag anzeigen
Du deutest an, dass es kein CMS mit einer solchen integrierter Funktion gibt
Nein, ich deute an, dass du mit WP alles machen kannst. Aber ich glaube nicht das es so ein Plugin wirklich schon gibt, weil es eben keinen Nutzen für sowas gibt.

Zitat:
Zitat von AndreasB Beitrag anzeigen

Wenn ich im Inhalt HTML verwende, weil es um reiches Markup geht, welches der GUI-Backendeditor nicht per Schaltfläche bereitstellt, dann "weiß" doch das CMS erstmal gar nicht, was Tag und was Inhalt ist.
Das der Content auch mit HTML ausgezeichnet wird (z.b. Bilder, Tabellen, Listen oder auch einfach Absätze) ist nicht ungewöhnlich. Dafür hat WP auch einen Editor im Backend und zur Not kkannst du diesen auch auf Quelltextbearbeitung umstellen und HTML Code eingeben soviel du willst.

Zitat:
Zitat von AndreasB Beitrag anzeigen
In diesem Punkt verstehe entweder ich Dich oder Du mich miss.
Ich verstehe nicht genau worauf du hinaus willst.

HTML-Code im Content ist absolut kein Problem. Wenn du es tatsächlich für wichtig erachtest, dass Links in deinem Content existieren, die auf die aktuelle Seite zeigen könnten (ich kann mir dieses Szenario nicht vorstellen) dann kannst du das aber entsprechend Filtern. Dazu musst du aber PHP können. Vermutlich gibt es dafür kein Plugin, wiel dieses Szenario normalerweise nicht existiert. Warum gibst du denn in einem Text einen Link auf die aktuielle Seite an?

Zitat:
Zitat von AndreasB Beitrag anzeigen
Nochmal: ich möchte, wenn notwendig, im Artikel-Inhalt auch HTML verwenden können. Und dann möchte ich typografische Ersetzungen vornehmen können per RegEx.
Besser kann ich es nicht erklären, sorry.
Was sind denn "typografische" Ersetzungen?
Du hast doch von "Depppenlinks" gesprochen. Da ist nichts typografisches.

Aber HTML kannst du im Artikel natürlich verwenden.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
FAQ -- Häufig gestellte Fragen und häufig gegebene Antworten mazzo CSS 10 05.04.2012 17:32
grafische Navigation horizontal zentrieren, klappt nicht lila_3 CSS 4 30.11.2010 10:25
IE verschiebt Navi Menü macmensa CSS 7 17.08.2009 16:45
Probleme mit horizontaler Navi rechts lila_3 CSS 2 14.07.2009 21:36
Dateien auslagern - Include und PHP ArcVieh Serveradministration und serverseitige Scripte 17 27.03.2008 18:09


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:43 Uhr.