Automatische Links erzeugen

Fragen zur Implementierung und/oder Anpassung von ConPresso 3.x werden in diesem Forum diskutiert.
Frank Besemer

Automatische Links erzeugen

Beitrag von Frank Besemer »

Wir wollen für unsere Webseiten ein Glossar erstellen, in dem wir Begriffe aufnehmen und erklären wollen. Die Begriffe sollen in einer Datenbanktabelle abgelegt werden.

Innerhalb der Webseiten wollen wir die Begriffe des Glossars automatisch anzeigen lassen. D. h. wenn ein Begriff in einem Artikel vorkommt, dann soll er als Link dargestellt werden und auf eine Seite verweisen, in der der Begriff erklärt wird.

An welcher Stelle im Quellcode kann man eine derartige Änderung am einfachsten machen?
Hat schon jemand etwas ähnliches gemacht und kann hier den Ansatz beschreiben, wie er es realisiert hat?
Benutzeravatar
semf
Modul-Entwickler
Beiträge: 1853
Registriert: 01.01.1970 01:00
Wohnort: Gütersloh-Friedrichsdorf
Hat sich bedankt: 14 Mal
Danksagung erhalten: 40 Mal
Kontaktdaten:

Re: Automatische Links erzeugen

Beitrag von semf »

hallo frank,

beim speichern wird die funktion check_string in der datei _include/function.php ausgeführt. dort
wird u.a. auch aus http://www.domain.de/conpress/ ein ../ gemacht. vielleicht ein punkt, wo man
versuchen könnte anzusetzen!?

Viel Erfolg!

Module ConPresso 4.x
Latest News
Tell-a-friend

Module ConPresso 3.4.x
Index_X
Kontakt
RSS-Feed
Umfrage
Gästebuch
Tell-a-Friend

Modul-Download
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Re: Automatische Links erzeugen

Beitrag von MarkusR »

Hm... das würde aber bei jedem Speichern gemacht, d.h. immer mehr Links ineinander verschachtelt.

Ich würde stattdessen lieber am Ende von parser.php die $template_datei nochmals mit ensprechenden arrays durcharbeiten lassen...

Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
semf
Modul-Entwickler
Beiträge: 1853
Registriert: 01.01.1970 01:00
Wohnort: Gütersloh-Friedrichsdorf
Hat sich bedankt: 14 Mal
Danksagung erhalten: 40 Mal
Kontaktdaten:

Re: Automatische Links erzeugen

Beitrag von semf »

sowas hatte ich auch in meine überlegungen einbezogen!

ich würde dann mit str_replace nach ' wort ' suchen, also mit vorgestelltem und angehängten leerzeichen. da es sich ja um den quelltext handelt, dürfte aus ' wort ' dann ja <a href="">wort</a> werden!? dann würden auch nur ganze worte ersetzt!

hintergrund:
ich persönlich würde aus performance-gründen ein lösung bevorzugen, die nicht beim abruf aktiv wird.

Viel Erfolg!

Module ConPresso 4.x
Latest News
Tell-a-friend

Module ConPresso 3.4.x
Index_X
Kontakt
RSS-Feed
Umfrage
Gästebuch
Tell-a-Friend

Modul-Download
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Re: Automatische Links erzeugen

Beitrag von MarkusR »

Damit schließt Du aber Worte, die an Satzzeichen angrenzen oder Gänsefüchen haben aus...

naja, vielleicht denkt sich da mal einer eine vollständige Lösung aus... scheint ja Bedarf zu bestehen... ;o)

Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Frank Besemer

Re: Automatische Links erzeugen

Beitrag von Frank Besemer »

Hallo Markus,
hallo semf,

danke für eure Anmerkungen und Infos. Ich würde eher den Ansatz von Markus verfolgen, die Seite dynamisch anzupassen. Allerdings ist das Suchen und Ersetzen für Worte des Glossars nicht ganz so einfach. Man muss z. B. auch darauf achten, dass man sich nicht schon innerhalb eines Hyperlinks befindet, wenn man einen Hyperlink einfügt. Ansonsten bekommt man sehr unschöne Ergebnisse.

Folgendes habe ich gemach:
1. Neue MySQL-Tabelle angelegt um Daten des Glossars abzulegen
2. Datei parser.php ergänzt, um alle gefundenen Glossarworte als Link einzufügen (noch nicht fertig gestellt)
3. Neue Datei glossar.php angelegt. Auf diese Datei zeigen alle Links. Als Parameter wird das Wort übergeben, es wird das gesamte Glossar angezeigt und das gesuchte Wort farbig hinterlegt.

Funktioniert soweit, allerdings muss ich das o. g. Problem noch lösen.

Danke und Gruß
Frank

Benutzeravatar
semf
Modul-Entwickler
Beiträge: 1853
Registriert: 01.01.1970 01:00
Wohnort: Gütersloh-Friedrichsdorf
Hat sich bedankt: 14 Mal
Danksagung erhalten: 40 Mal
Kontaktdaten:

Re: Automatische Links erzeugen

Beitrag von semf »

na, dann freut sich der ein oder andere hier sicher schon auf das skript ;-)

zu dem link im link problem:
grundsätzlich ist der abschchliessende </a>-tag immer ein guter anhaltspunkt. und mit ereg_replace kannst du
suchmuster angeben. evtl. ein ansatz!?

Viel Erfolg!

Module ConPresso 4.x
Latest News
Tell-a-friend

Module ConPresso 3.4.x
Index_X
Kontakt
RSS-Feed
Umfrage
Gästebuch
Tell-a-Friend

Modul-Download
Frank Besemer

Re: Automatische Links erzeugen

Beitrag von Frank Besemer »

Hallo semf,

das werde ich machen. Allerdings sind die Änderungen nicht sehr groß. Wichtig war für mich nur die Stelle zu finden, an der die Änderung tatsächlich gemacht wird.

Gruß
Frank
Lufine
ConPresso-Checker
Beiträge: 127
Registriert: 01.09.2006 10:15
Hat sich bedankt: 1 Mal

Glossar

Beitrag von Lufine »

Genau so eine Glossar-Funktion wie oben beschrieben brauche ich für die aktuelle CPO-Version!

Hat jemand spontan ;-) eine Lösung parat? Würde ungern auf ein anderes CMS umsteigen, aber leider lässt sich im Editor ja auch nicht komfortabel auf einen bestimmten Artikel (Glossarbegriff) sondern nur auf die Rubrik (Glossar) verlinken...

Oder gibt´s einen anderen Weg, eine Art Glossar redakteursfreundlich zu realisieren?

Lufine
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Hast Du Dir denn schon ein System zur Verwaltung des Glossars ausgedacht?

Wenn diese Tabelle und das Glossar selbst steht, dann ist der Rest einfach, weil er genauso funktioniert, wie die hier kürzlich beschriebene Maskierung von Umlauten, oder die bereits bekannte Maskierung von eMails oder eben auch mod_imagesize, daß ja auch den Seiteninhalt mit den passenden (Bild-) Links versieht.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Lufine
ConPresso-Checker
Beiträge: 127
Registriert: 01.09.2006 10:15
Hat sich bedankt: 1 Mal

Beitrag von Lufine »

System zur Verwaltung des Glossars? Bahnhof? :?

Ich hätte eine Rubrik "Glossar" eröffnet, einzelne Artikel mit den Glossarbegriffen und deren Erklärung erstellt.

Bei der Erstellung eines normalen Artikels hätte ich dann im Editor manuell einen internen Link auf die Glossar-Artikel gesetzt - nur geht das leider ja nicht...

Das System zur Maskierung von Umlauten ist natürlich viel, viel eleganter! Aber - s.o. - wie verwalte ich die Glossarbegriffe? Ich gebe die Frage zurück ans Forum ;-)

Lufine
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Du versiehst die Artikel in der Glossar-Rubrik einfach mit dem Begriff als Titel.

Dann muß Du nur noch das von mir beschriebene Aufrufen von Artikeln über ihren Titel statt über die Nummer benutzen und schon ist das Glossar fertig.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Lufine
ConPresso-Checker
Beiträge: 127
Registriert: 01.09.2006 10:15
Hat sich bedankt: 1 Mal

Beitrag von Lufine »

Ja, das habe ich verstanden. Aber was ist, wenn der Kunde einen neuen Glossar-Begriff hinzufügen möchte oder eine neue Rechtschreibreform in Kraft tritt ;-) ? Führt dann der Weg zwangsläufig zu mir und von da aus zur parser.php? Für mich natürlich gut, aber ob der Kunde davon so begeistert ist?

Wäre super, wenn die Begriffe innerhalb von CPO hinzugefügt/geändert werden könnten... Scheint mir aber doch eher ein komplett neues Modul zu sein, oder?
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Wozu ein Modul?

Wenn das Glossar erst mal steht, dann reicht ja eine einzelne Abfrage aus, um alle Begriffe zu sammeln.
Diese können nun im Parser-Prozess durch Links auf die entsprechenden Artikel im Glossar ersetzt werden.

Und neue Begriffe sind eben einfach neue Artikel in der Glossar-Rubrik.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Lufine
ConPresso-Checker
Beiträge: 127
Registriert: 01.09.2006 10:15
Hat sich bedankt: 1 Mal

Beitrag von Lufine »

Nee, bei genauerem Nachdenken hab ich´s glaub ich doch noch nicht so ganz kapiert...

Der Zusatz in der parser.php sieht doch dann z.B. so aus, oder?

Code: Alles auswählen

// codeschnipsel zur Konvertierung der Glossarbegriffe
$template_datei = preg_replace(
                array(
                    '@Sisal@',
                    '@Kokos@',
                    '@Hanf@',
                ),
                array(
                    '<a href=\"/_style/detail.php?nr=123&rubric=Glossar">Sisal</a>',
                    '<a href=\"/_style/detail.php?nr=456&rubric=Glossar">Kokos</a>',
                   '<a href=\"/_style/detail.php?nr=789&rubric=Glossar">Hanf</a>',
                ),
                $template_datei
            );
// ende codeschnipsel


Oder meinst Du noch etwas anderes?
Antworten