XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   PHP-Skript zum Entfernen von "Deppenlinks" in den Navi-Menüs (http://xhtmlforum.de/showthread.php?t=73433)

AndreasB 26.02.2018 09:28

PHP-Skript zum Entfernen von "Deppenlinks" in den Navi-Menüs
 
Moin.

Könnt ihr ein gutes, robustes, leicht verwendbares PHP-Skript empfehlen, welches die sog. "Deppenlinks" entfernt?

Aus dem Homepage-Logo, aus der Hauptnavigation, aus der Navi im Fuß.

Beispiel:

HTML-Code:

<li><a href="/lorem/">Lorem</a><li>
wird zu
HTML-Code:

<li class="current" title="Hier befinden Sie sich gerade."><strong>Lorem</strong><li>
Dito für die Startseite:

HTML-Code:

<div class="logo"><a href="/">Textlogo</a></div>
wird zu
HTML-Code:

<div class="logo" >Textlogo</div>
Danke füre euren Rat.

cloned 26.02.2018 10:22

Wieso werden diese Links hier überhaupt ausgespielt? Das kommt doch bestimmt von einer Logik im Backend, hier muss der Link einfach nicht ausgespielt werden.
Auch kann es durchaus sinn machen das Logo mit der Hauptseite zu verlinken, das erwarte ich mir als Nutzer von der Seite.

AndreasB 28.02.2018 00:55

@cloned
Es gibt kein Backend in Form einer CMS-Admin-GUI.

Die Navi soll einfach als PHP-Include hinzugefügt werden.

Schön wäre es, wenn sie frei von Deppenlinks wäre.

cloned 28.02.2018 08:30

PHP ist ebenso backend, backend heißt nicht automatisch, dass es eine GUI gibt. Dann muss im PHP file (welches inkludiert wird) eine Logik eingebaut werden, die den Link nur dann ausspielt, wenn er benötigt wird. wie genau die Logik aussieht kann man nicht sagen, da man deine Seitenstruktur/Logik nicht kennt.

Woher kommt eigentlich der Ausdruck Deppenlink? Habe den noch nie gehört.

AndreasB 28.02.2018 08:51

Ich bin mit der genauen Abgrenzung und Bedeutung der Begriffe Back End und Front End in den verschiedensten Umgebungen noch nicht firm.

Das von mir gesuchte PHP-Skript soll möglichst universell funktionieren.

Woher der Begriff Deppenlink kommt?
Ich meine, dass ich ihn hier im Forum vor einigen Jahren mal aufgeschnappt habe.

Ich vermute, es handelt sich um eine Analogie zum Deppen-Apostroph.

Warum so eine Funktionalität bei weit verbreiteten CMS wie Wordpress z.B. nicht zum Default gehört, weiß ich nicht.

cloned 28.02.2018 09:15

Zitat:

Zitat von AndreasB (Beitrag 551926)
Ich bin mit der genauen Abgrenzung und Bedeutung der Begriffe Back End und Front End in den verschiedensten Umgebungen noch nicht firm.

Das ist auch nicht immer so einfach. frontend passiert auch oft "im Backend" (zb in php Files), dann kann man das schon durchaus zum Frontend zählen. Das hier also nicht als Angriff oder so verstehen, ich verwende hier im Forum generell eine eher lockeren Bedeutung: Alles, was wirklich HTML/CSS/JS ist === frontend, der Rest ist Backend. Das bei einem richtigen Projekt das dann auch durchaus anders definiert sein kann ist klar.


Danke auch für die Aufklärung des Begriffes.

Zitat:

Zitat von AndreasB (Beitrag 551926)
Warum so eine Funktionalität bei weit verbreiteten CMS wie Wordpress z.B. nicht zum Default gehört, weiß ich nicht.

Weil es sinnvoll ist, das Logo etc. immer zu verlinken. Auch auf der Startseite. Als User erwartet man es sich einfach. Und es ist nicht im geringsten schlimm wenn er auf der selben Seite landet. Schließlich holt er sich diese dann sowieso aus dem Cache und es kommt nicht wirklich zu einer Verzögerung.
Ich sehe also Seiten, wo zB das Logo nicht verlinkt ist, als schlecht an.


Um dir auch weiterzuhelfen, der code müsste im php file so in etwa aussehen (sehr rudimentärer Pseudocode)

Code:

if (url === "abc" ) echo "link with <a> Tag"
else "echo link without wrapping Tag


MrMurphy 28.02.2018 09:15

Hallo

Tatsache ist: Es gibt überhaupt keine Deppenlinks.

Es ist vollkommen normal das Webseiten auf sich selbst verlinken und Besucher haben damit überhaupt keine Schwierigkeiten.

Die Ursache sind einige wichtigtuerische Webseitenersteller, die Anderen ihre Meinung aufdrängen wollen, dazu Probleme erfinden und anschließend Lösungen anbieten, die vollkommen überflüssig sind, da es die Probleme überhaupt nicht gibt.

Da die Wichtigtuer das sehr laut und wichtig tun (Helmut Schmidt: Selbstsicheres Auftreten bei völliger Ahnungslosigkeit) fallen unwissende Dritte darauf immer wieder mal rein.

Bei Umfragen, was Besucher an Webseiten stört, sind sogenannte Deppenlinks (also Verlinkungen einer Webseite auf sich selbst) noch nie als wichtig genannt worden.

Wenn Sie überhaupt ein Problem wären, würde es dazu in HTML und CSS selbst bereits Lösungen geben. Oder zumindest Forderungen Lösungen zu finden. Die Arbeitspapiere sind öffentlich zugänglich. Dort sind Deppenlinks nicht mal als Problem aufgeführt. Warum wohl nicht?

Gruss

MrMurphy

AndreasB 28.02.2018 09:24

@cloned
Dass User wirklich erwarten, dass sie auf der Seite auf der sie sich gerade befinden "nochmal klicken können", glaube ich erst, wenn ich dazu eine Usability-Studie finde.
Mir erscheint das sehr schräg.
Insbesondere, wenn man den User sogar via title-Attribut beim Hovern darüber informiert "Sie befinden sich hier auf der Homepage".

Zum Skript:
Da ich kein PHP beherrsche, bin ich darauf angewiesen ein voll funktionsfähiges praxiserprobtes vollständiges Skript zu finden, welches ich dann ggfs. nur noch geringfügig anpassen muss.
So ist meine Frage gemeint.

cloned 28.02.2018 09:52

Zitat:

Zitat von AndreasB (Beitrag 551931)
@cloned
Dass User wirklich erwarten, dass sie auf der Seite auf der sie sich gerade befinden "nochmal klicken können", glaube ich erst, wenn ich dazu eine Usability-Studie finde.

Da hast du mich missverstanden: Ich erwarte, dass mich ein Klick aufs Logo zur Startseite führt. Bin ich auf der Startseite und ich klicke aufs Logo dann lädt die Seite neu -> Ich weiß jetzt, dass ich auf der Startseite bin.
Passiert nichts, dann suche ich weiter nach dem Link zur Startseite.
Ich erwarte also nicht direkt einen Link zur gleichen Seite, ich erwarte hier also einen Link zur Startseite.
Beim breadcrumb sieht es anders aus, da sollte der letzte Punkt zb nicht verlinkt sein.
Auch wird in der Navigation meistens mit "bold" oder anderen Methoden der aktive Link gekennzeichnet.


Zitat:

Zitat von AndreasB (Beitrag 551931)
Zum Skript:
Da ich kein PHP beherrsche, bin ich darauf angewiesen ein voll funktionsfähiges praxiserprobtes vollständiges Skript zu finden, welches ich dann ggfs. nur noch geringfügig anpassen muss.
So ist meine Frage gemeint.

Da wird es kein einziges Skript geben. Ein Logo braucht eine andere Logik als die breadcrumbs und die brauchen eventuell eine andere Logik als Bildlinks und Artikellinks...
Bzw. Logik ist eventuell die gleiche, aber der Output ist je nach Komponente dann eine komplett eigene. (Andere Elemente, andere Klassen, andere Kindelemente)

AndreasB 28.02.2018 10:01

Ich hatte gehofft, dass es in PHP Methoden gibt wie:

"Vergleiche den ausgelieferten URL mit allen URLs in den A-Elementen."
"Wenn ein URL übereinstimmt, entferne das A-Element und ersetze es durch strong."

cloned 28.02.2018 10:14

Zitat:

Zitat von AndreasB (Beitrag 551933)
"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.

AndreasB 28.02.2018 10:53

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.

protonenbeschleuniger 28.02.2018 21:36

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.

AndreasB 28.02.2018 23:03

@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?

cloned 01.03.2018 08:20

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.

protonenbeschleuniger 01.03.2018 08:43

Zitat:

Zitat von AndreasB (Beitrag 551945)
@protonenbeschleuniger
Ich glaube in diesem Fall, dass ich nichts durcheinander werfe.

Das glaube ich aber schon.

Zitat:

Zitat von AndreasB (Beitrag 551945)
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 551945)
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 551945)
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 551945)
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 551945)
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.

AndreasB 01.03.2018 08:45

@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.

protonenbeschleuniger 01.03.2018 09:03

Zitat:

Zitat von AndreasB (Beitrag 551948)
@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 551948)
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 551948)
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.

AndreasB 03.03.2018 08:47

@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.

protonenbeschleuniger 03.03.2018 09:48

Zitat:

Zitat von AndreasB (Beitrag 551955)
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 551955)

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 551955)
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 551955)
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.

AndreasB 03.03.2018 10:12

Zitat:

Zitat von protonenbeschleuniger (Beitrag 551956)
Nein, ich deute an, dass du mit WP alles machen kannst.

Theoretisch vielleicht. Praktisch ist mir bisher noch nicht ein einzige Site untergekommen, die schlankes HTMl ausgibt. Entweder ist WP-Verwendern schlanker und schöner HTML-Code völlig wumpe oder es wäre extrem aufwändig, WP den Kuddelmuddelcode auszutreiben.
Hinweis: hier spreche ich nicht vom Deppenlink, sondern ganz allgemein von der Codequalität von WP.

Zitat:

Aber ich glaube nicht das es so ein Plugin wirklich schon gibt, weil es eben keinen Nutzen für sowas gibt.
Findest Du selber es denn gut und richtig einen Link zu zeigen, obwohl man sich auf der Seite gerade befindet?


Zitat:

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.

Ich verstehe nicht genau worauf du hinaus willst.
Ich will darauf hinaus, ob sich in WP die "nötigen PHP-Klassen" integrieren lassen, damit ein RegEx nur den Inhalt nicht aber Tags trifft.

Beispiel:
HTML-Code:

<p class="lorem">Lorem</p>
Ein regulärer Ausdruck "lorem" darf nur den Inhalt treffen, keinesfalls den Wert des Attributes.
Ist jetzt klar, was ich meine? Es geht um typografische Ersetzungen.

Mit den Deppenlinks hat diese Sache nichts zu tun.

Vielleicht ist es zu kompliziert hier weiterzumachen. Das Verständigen ist so mühsam und ich möchte Dich nicht weiter nerven.

MrMurphy 03.03.2018 10:19

Hallo

Zitat:

Findest Du selber es denn gut und richtig einen Link zu zeigen, obwohl man sich auf der Seite gerade befindet?
Ich - ja. Hast du denn mal eine Beispielseite wo es besonders stört?

Du willst einfach nicht erkennen, dass es überhaupt keine Deppenlinks gibt.

Die wurden von einer unwissenden Minderheit erfunden und zu einem Problem erklärt, dass es in der Praxis überhaupt nicht gibt.

Gruss

MrMurphy

protonenbeschleuniger 03.03.2018 11:10

Zitat:

Zitat von AndreasB (Beitrag 551957)
Theoretisch vielleicht. Praktisch ist mir bisher noch nicht ein einzige Site untergekommen, die schlankes HTMl ausgibt. Entweder ist WP-Verwendern schlanker und schöner HTML-Code völlig wumpe oder es wäre extrem aufwändig, WP den Kuddelmuddelcode auszutreiben.
Hinweis: hier spreche ich nicht vom Deppenlink, sondern ganz allgemein von der Codequalität von WP.

Das kommt von den Templates. WP gibt relativ wenig HTML Code aus. Insofern hat das nichts mit WP an sich zu tun, sondern mit den Wünschen der Leute die diese Templates benutzen.

Zitat:

Zitat von AndreasB (Beitrag 551957)
Findest Du selber es denn gut und richtig einen Link zu zeigen, obwohl man sich auf der Seite gerade befindet?

Was meinst du den mit zeigen?

Ich rede vom Inhalt, wenn diu Texte einginbst die einen Link auf die aktuelle Seite enthalten ist das merkwürdig. Wenn im Menü auch der Link zur aktuellen Seite ist, würde ich diesen markieren (was WP ohne Probleme zuläßt, das dieser mit einer eigenen CSS Klasse markiert wird). Ansonsten sehe ich das Problem nicht. Woher soll denn dieser ominöse Links sonst kommen?


Zitat:

Zitat von AndreasB (Beitrag 551957)
Ich will darauf hinaus, ob sich in WP die "nötigen PHP-Klassen" integrieren lassen, damit ein RegEx nur den Inhalt nicht aber Tags trifft.

Beispiel:
HTML-Code:

<p class="lorem">Lorem</p>
Ein regulärer Ausdruck "lorem" darf nur den Inhalt treffen, keinesfalls den Wert des Attributes.
Ist jetzt klar, was ich meine? Es geht um typografische Ersetzungen.

Das ist Inhalt, wieso willst den parsen?
"Typografisch" kannst du darauf mit CSS zugreifen.

Warum willst du denn das HTML Dokument mit PHP parsen? Das macht für uns keinen Sinn.

protonenbeschleuniger 03.03.2018 11:14

Zitat:

Zitat von AndreasB (Beitrag 551957)
Ich will darauf hinaus, ob sich in WP die "nötigen PHP-Klassen" integrieren lassen, damit ein RegEx nur den Inhalt nicht aber Tags trifft.

Beispiel:
HTML-Code:

<p class="lorem">Lorem</p>
Ein regulärer Ausdruck "lorem" darf nur den Inhalt treffen, keinesfalls den Wert des Attributes.

Dazu noch einen Satz. Das macht doppelt keinen Sinn.

Du baust ein Template, das ist die HTML Grundstruktur. Dieses wird von WP mit dem Inhalt gefüllt. D.h. du hast im Template so etwas stehen:

Code:

<p class="lorem"><?php the_text(); ?></p>
Dann nachträglich am erzeugten HTML Code etwas ändern macht wenig Sinn. Warum willst du das tun?
Du solltest dich wirklich mal mit einem CMS beschäftigen und wenn du die Muse aufbringst ein einfaches Template basteln. Dann siehst du die Dinge bestimmt klarer.

etux 04.03.2018 10:52

@AndreasB
Zum Links ersetzen im Logo und in der Navigation.

Wenn Du mit Wordpress arbeitest, ist das relativ einfach. Du fragst ab, ob es die Frontpage ist oder eine andere:

- Logo
https://codex.wordpress.org/Function.../is_front_page

Frontpage → kein Link
Alle Andere → Link

-Menüs
Die Wordpress Menus verwende ich nie. Ich lasse mir die IDs der Seiten als Array ausgeben und dann baue ich mir die Navi, so wie ich sie haben möchte. Dann eben ohne auf sich selbst zeigende Links.

In einer Wordpress-Instalation habe ich beispielsweise folgende Konfiguration in der functions.php:
PHP-Code:

<?php

// Custom Wordpress-Menu
function custom_menu($menu_name) {
    
    
$locations get_nav_menu_locations();
    
$menu wp_get_nav_menu_object$locations$menu_name ] );
    
$menu_items wp_get_nav_menu_items($menu->term_id);
    foreach (
$menu_items as $key => $value) {
        
$include_pages[] = get_post_meta($value->ID'_menu_item_object_id'true);
    }

  
$pages get_pages(array(
        
'include' => $include_pages,
        
'sort_column' => 'menu_order'
    
));
    
    foreach(
$pages as &$page) :
        
        
$li_class $page->post_name;
        
$a_title get_post_meta$page->ID'page_subtitle'true );
        
        
$custom_menu .= '<li class="' $li_class '" role="menuitem">';
        
        
$cur get_the_ID();
        
$cur_par get_post$cur )->post_parent;
        
        
$article get_page_by_title'Artikel' );
        
        if ( 
is_single() && $page->ID == $article->ID ) :
            
$custom_menu .= '<a href="' get_page_link($page->ID) . '" title="' $a_title '"><em>' $page->post_title '</em></a><span class="hidden">. </span>';
        elseif ( 
$page->ID == $cur ) :
            
$custom_menu .= '<strong title="Die aktuelle Seite">' $page->post_title '</strong><span class="hidden">. </span>';
        else :
            
$custom_menu .= '<a href="' get_page_link($page->ID) . '" title="' $a_title '">' $page->post_title '</a><span class="hidden">. </span>';
        endif;
        
$custom_menu .= '</li>';
    endforeach;
    
    
print_r($custom_menu);
}

Eingebunden wird das Menü mit:
PHP-Code:

<ul id="custom-menu" role="menu">
    <?php echo custom_menu('menuname'); ?>
</ul>


‚menuname‘ - ist der Name, den Du im Wordpress-Backend für das Menü festgelegt hast („Design“ → „Menüs“)


.

AndreasB 04.03.2018 11:07

Hallo Emil.
Herzlichen Dank für Dein Beispiel :)

Ich muss mich noch näher mit PHP beschäftigen um es verwenden zu können.

Aus Neugier:
Worin vermutet ihr den Grund, dass die Entwickler des WP-Core solche Basisfunktionalität nicht integrieren?

Mir fällt zumindest keine Situation ein, wo dadurch der Code nicht aufgewertet würde.

Am Rande zur Barrierearmut:
Können Screenreader mittlerweile ein bestimmtes Markup innerhalb einer Nav als "Hier bin ich gerade" interpretieren?

class="current" ist ja nicht in der Spezifikation definiert, sondern frei gewählt.

MrMurphy 04.03.2018 12:10

Hallo

Auch wenn du damit überfordert bist:

Du siehst Probleme die es überhaupt nicht gibt. Für Probleme, die es nicht gibt braucht es auch keine Lösungen.

Ähnlich wie Verschwörungstheoretiker bist du leider auch nicht in der Lage die Realität zu erkennen und zu akzeptieren.

Gruss

MrMurphy

AndreasB 04.03.2018 12:22

@MrMurphy
Du argumentierst bisher gar nicht, sondern behauptest einfach nur.

Kein Problem, Dich interessiert die Sache einfach nicht. Ich suche keinen Streit.

MrMurphy 04.03.2018 12:56

Hallo

Was für eine Argumentation zu nicht existierenden Problemen erwartest du denn? Geht gar nicht. Ich kann dir deshalb nur Realitäten aufzeigen, die du nicht akzeptieren wirst.

Es geht mir auch nicht darum dich zu bekehren, sondern Dritten aufzuzeigen, dass du falsch liegst.

Realität ist, dass du meine Frage nach einer Seite mit störenden Deppenlinks nicht beantwortet hast.

Realität ist, dass dich die vielen Deppenlinks hier im Forum (Logo, Kontrollzentrum, Mitgliederkarte, Hilfe - um nur einige zu nennen) offensichtlich nicht stören und du keine Probleme hast das Forum trotzdem zu nutzen.

Realität ist, dass es zu so einem wichtigen Thema wie Deppenlinks keinen Eintrag in Wikipedia gibt.

Realität ist, dass in keiner Userumfrage zu Problemen oder Verbesserungswünschen mit Webseiten Deppenlinks genannt werden.

Realität ist, dass Deppenlinks nur von einer Minderheit von Webseitenerstellern als vermeintliches Problem erkannt werden, nicht aber von Besuchern von Webseiten.

Realität ist, dass in den komplett frei zugänglichen Unterlagen der Regelersteller von HTML und CSS (WHATWG und W3C) Deppenlinks nicht genannt werden und deshalb auch keine Lösungen von Deppenlinks in Arbeit oder auch nur geplant sind.

Realität ist, das alle bekannten und teilweise millionenfach verbreiteten Content Management Systeme, Weblogs und andere Deppenlinks enthalten, die weder die Anwender noch die Besucher stören. Sonst würden sich die Anwender ja für Anwendungen ohne Deppenlinks entscheiden.

Gruss

MrMurphy

AndreasB 04.03.2018 13:42

@MrMurphy
Fakt ist, dass ein Link zur gleichen Seite, auf der man sich befindet, für einen Screenreadernutzer innerhalb seiner Linkliste(n) auftaucht.

Ob er das billigend in Kauf nimmt, weil es so weithin üblich ist, weil er eh weiß, dass beschweren nichts nützt, heißt nicht, dass er ohne diesen sinnlosen Link nicht besser klar käme.

Leider finde ich in meinen alten Aufzeichnung zu Barrierearmut den entsprechenden Artikel nicht.
Wenn ich ihn wiederfinde, berichte ich hier.

Eine Plattform, wo man Blinde direkt nach so etwas fragen kann, kenne ich leider nicht.

Du argumentierst hier vor allem mit der Verbreitung einer Praxis und leitest daraus ab, dass es daher "doch schon OK sein wird".

Du argumentierst nicht aus Nutzungsszenarien heraus und vergleichst Variante A mit Variante B.

inta 04.03.2018 13:57

Abgesehen davon, dass ich einen Link auf die Seite auf der man sich eh gerade schon befindet für überflüssig halte, ist man nach BITV und ähnlichen Anforderungen verpflichtet die aktuelle Seite in der Navigation zu markieren (rein visuell reicht nicht aus), daher muss man das HTML eh schon anpassen und könnte auch gleich den Link entfernen/weglassen.

Es ist nicht immer sinnvoll einfach das zu machen was „alle“ tun. Ehrlich gesagt hat mich bisher kein Argument für das Verlinken der aktuellen Seite überzeugt. Da ich dazu neige mich bei den Auszeichnungen auf das Notwendige zu beschränken, würde ich den Link nicht setzen. Ich finde Andreas Anliegen nicht sonderlich abwegig, sondern im Gegenteil nachvollziehbar.

MrMurphy 04.03.2018 14:00

Hallo

Zitat:

Eine Plattform, wo man Blinde direkt nach so etwas fragen kann, kenne ich leider nicht.
Einfach mal selbst mit entsprechenden Anwendern sprechen.

Die empfinden arrogante Einordnungen wie von dir als diskriminierend.

Die sind nämlich nicht zu blöd sich zu merken, auf welcher Seite sie sich grade befinden. Wovon du offensichtlich ausgehst.

Die bittere Wahrheit: Webseitenersteller sind nicht klüger als ihre Besucher. Und zwar alle ihre Besucher.

Gruss

MrMurphy

AndreasB 04.03.2018 14:19

@inta
Danke für Deine Bewertung.

@McMurphy
Du merkst offenbar gerade nicht, wie sehr Du hier typische Verhaltensweisen eines Verschwörungsanhängers zeigst.

Die anderen sind arrogant.
Die anderen sind diskriminierend.

Ich habe ganz sicher nicht die Web-Accessibility-Weisheit mit Löffeln gefressen und lasse mich gerne mit guten Argumenten von einer sinnvollen Praxis überzeugen. Dafür bin ich hier.

Deine aggressive und mich persönlich diskreditierende "Argumentation" mit dem Kern "Es machen doch fast alle so" ist dafür ungeeignet.

fricca 04.03.2018 14:34

Es gibt inzwischen das aria-current-Attribut. Mehr dazu:
https://tink.uk/using-the-aria-current-attribute/
https://www.w3.org/TR/wai-aria-1.1/#aria-current
Die Unterstützung ist leider noch eher mau.

Ich persönlich finde die Bezeichnung "Deppenlink" (einst von toscho geprägt*) ebenso unglücklich wie die Beschimpfung derjenigen, die sich über die Usability des "aktuellen Links" Gedanken machen.
[*] toscho hat auch ein entsprechendes Wordpress-Plugin bereitgestellt: https://wordpress.org/plugins/remove-redundant-links/
Keine Ahnung, ob das noch verwendbar ist.

protonenbeschleuniger 04.03.2018 16:05

Zitat:

Zitat von AndreasB (Beitrag 551965)
Aus Neugier:
Worin vermutet ihr den Grund, dass die Entwickler des WP-Core solche Basisfunktionalität nicht integrieren?

Ich hatte dich ja merhmals gefragt aber du antwortest mir nicht, warum willst du denn in deinem Text den Link auf die aktuelle Seite eingeben?
Das macht keinen Sinn, insofern ist die Frage so merkwürdig und führt jetzt zu einer langen sinlosen Diskussion.

Niemand hat einen Link auf die aktuelle Seite in seinem Inhalt. Im Menü ist es wie ich dir schon mehrmals gesagt habe so, dass du die aktuelle Seite markieren kannst, bzw. ist das eine "Basisfunktionalität" die z.b. WP von Haus anbietet.

Mir ist nach wie vor nicht klar um welche Links es dir eigentlich geht und wo diese herkommen sollen.

EDIT: Ach so, weil du es gefragt hast. Es ist umgekehrt, es entsteht kein Nachteil wenn im Menü dieser Links noch vorhanden ist. Und wodurch die "Aufwertung" entsteht ist mir ein Rätsel.

Gerade Heute, wo z.b. Teile nachträglich durch JS nachgeladen werden, können solche Links nützlich sein, weil sie wieder den Ursprungszustand herstellen. Dieses starke Bedürfniss nach sowas, wie du es hier äußerst, hat sonst niemand

protonenbeschleuniger 04.03.2018 16:17

Zitat:

Zitat von AndreasB (Beitrag 551972)
Deine aggressive und mich persönlich diskreditierende "Argumentation" mit dem Kern "Es machen doch fast alle so" ist dafür ungeeignet.

Naja, jemand der die Bezeichnung "Deppenlink" benutzt, zeigt damit zumindet nicht unbedingt, das ihm an einer möglichst wenig diskriminierender Sprache liegt.

Ansonsten habe ich bisher auch wenig Argumente dafür gelesen, dass das "Deppen" machen. Wie gesagt auf den meisten Seiten werden diese nicht rausgefiltert und die meisten Benutzer stört es auch nicht. Interessant wäre es zu erfahren, warum es ausgerechnet dich so stört?

Auch ein Edit: Soweit ich den thread gelesen habe, ist das dein "Argument":
Zitat:

Zitat von AndreasB (Beitrag 551931)
@cloned
Dass User wirklich erwarten, dass sie auf der Seite auf der sie sich gerade befinden "nochmal klicken können", glaube ich erst, wenn ich dazu eine Usability-Studie finde.
Mir erscheint das sehr schräg.

So formuliert stimmt das, kein Nutzer "erwartet" das, aber es gibt durchaus Situationen wo so ein Link Sinn macht und ob der Nuzter erwartet dass dieser Link nicht da ist, halte ich für "schräg", aber du kennst sicher eine Studie die das rausgefunden hat?

AndreasB 04.03.2018 16:37

@fricca
Danke für den Hinweis zu dem "aria-current".
Ja, Du hast Recht. Den Begriff "Deppenlink" hatte ich von Toscho übernommen. Er ist unglücklich, ich werde ihn in Zukunft nicht mehr verwenden.
Toschos alte Website ist nicht mehr erreichbar. Er scheint sich ganz auf seinen Tätigkeit als Ruby-on-Rails-Entwickler zu fokussieren.

Ich habe das aria-current="page" mal auf Gäste-Etage · Ihre Unterkunft in Berlin eingebaut. Das Markup habe ich in einem Thread hier vor einigen Tagen zur Diskussion gestellt.

@protonenbeschleuniger
In meinem Ausgangsposting findest Du, worüber ich spreche.
Ich "will also gerade keinen Link auf die gerade aktuelle Seite" aufführen. Es geht, siehe auch der Titel des Posts, um ein Entfernen.

protonenbeschleuniger 04.03.2018 17:17

Zitat:

Zitat von AndreasB (Beitrag 551977)
@protonenbeschleuniger
In meinem Ausgangsposting findest Du, worüber ich spreche.
Ich "will also gerade keinen Link auf die gerade aktuelle Seite" aufführen. Es geht, siehe auch der Titel des Posts, um ein Entfernen.

Das habe ich schon verstanden, aber du sagst nicht woher dieser Link kommt oder warum du ihn unbedingt in deinem Inhalt haben möchtest. Das war die Frage.

Und wenn es dir nur um einen Link im Menü geht, habe ich jetzt auch beschrieben warum dieser Link sinnvoll sein kann und du hast immer noch nicht gesagt WARUM du diesen Link weg haben wilst und dir nicht ausreicht diesen einfach zu markieren, wie es WP macht?

Du sagst "es ist schräg" - das ist bisher das einzige Argument. Und du sprichst von Studien die etwas untersuchen sollen, was keiner gesagt hat. Daher ist es merkwürdig, dass eine kleine Frage so ausartet, ohne das wir Wissen warum du dich da so hinsteigerst.

AndreasB 04.03.2018 18:00

Zitat:

Zitat von protonenbeschleuniger (Beitrag 551978)
aber du sagst nicht woher dieser Link kommt oder warum du ihn unbedingt in deinem Inhalt haben möchtest.

Ich weiß nicht, was Du damit meinst.
Ich möchte "keinen Link unbedingt in meinem Inhalt haben", sondern das Gegenteil: ich möchte ihn entfernen.

Woher der Link kommt?
Aus einem CMS.

protonenbeschleuniger 04.03.2018 18:22

Zitat:

Zitat von AndreasB (Beitrag 551979)
Ich weiß nicht, was Du damit meinst.
Ich möchte "keinen Link unbedingt in meinem Inhalt haben", sondern das Gegenteil: ich möchte ihn entfernen.

Warum?
Es gibt eigentlich keinen Grund ihn zu entfernen, aber es gäbe Gründe ihn zu behalten.

Zitat:

Zitat von AndreasB (Beitrag 551979)
Woher der Link kommt?
Aus einem CMS.

Dann läßt sich dieser auch nicht ausgeben, er muss nicht entfernt werden. Dieses "entfernt werden" ist das Problem. Das stimmt nicht - du willst das dieser Link nicht erzeugt wird.

Wie das geht wurde dir ja schon gezeigt.

Deutlich einfacher wäre es z.b. per CSS ihn so auszuzeichnen das er nicht mehr als Link erkennbar ist. Er hat ja in WP eine eigene Klasse.


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:25 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2022, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2022