janiweb: Automatische Linkerzeugung in Content aus Content

Moin,
ich arbeite zurzeit an der Erneuerung der Website eines Bekannten/Freundes.
http://www.liporal.de"
Die Seite basiert auf dem CMS Joomla (1.0.12), genau wie meine "neue" Version (Joomla 3.3.6).
Zu dieser Website gehört eine weitere mit Joomla generierte Seite
http://www.biolexikon.com

Soweit so gut...

Erstellt man nun einen neuen Eintrag im "Biolexikon", so werden automatisch (durch ein Skript oder ähnliches, welches ich nicht finden kann... -.-) alle Wörter im Content der www.Liporal.de Seite die mit dem Titel des Biolexikon Eintrages/Artikels übereinstimmen auf diesen Artikel verlinkt.

Da ich leider das ganze nur als Hobby betreibe beschränken sich meine Fähigkeiten im Harcoding leider auf das minimum (HTML, CSS und minimales (verständnis) von PHP und javascript).

Könnt ihr mir da eventuell weiterhelfen, wie ich diese Funktion auf die neue Seite integrieren kann?

  1. Aloha ;)

    Erstellt man nun einen neuen Eintrag im "Biolexikon", so werden automatisch (durch ein Skript oder ähnliches, welches ich nicht finden kann... -.-) alle Wörter im Content der www.Liporal.de Seite die mit dem Titel des Biolexikon Eintrages/Artikels übereinstimmen auf diesen Artikel verlinkt.

    Da ich leider das ganze nur als Hobby betreibe beschränken sich meine Fähigkeiten im Harcoding leider auf das minimum (HTML, CSS und minimales (verständnis) von PHP und javascript).

    Könnt ihr mir da eventuell weiterhelfen, wie ich diese Funktion auf die neue Seite integrieren kann?

    Es führt wohl nichts drum herum, das verantwortliche Skript oder Plugin zu finden. Sofern da irgendwas mit JavaScript passiert, kann ich dir vielleicht später weiterhelfen, sobald ich meinem Desktop-PC angeworfen habe. Wenn das Ganze php-basiert läuft, kann dir wohl extern keiner bei der Suche direkt helfen. Was wahrscheinlicher ist - keine Ahnung. Ich werfe nachher mal einen (ausführlichen) Blick darauf...

    In der Zwischenzeit: Schon mal geschaut, welche Plugins/Erweiterungen/... in Joomla installiert sind und ob eine davon verantwortlich sein könnte? Selbst wenn die Funktionalität selbstgebastelt ist, ist es aus meiner Erfahrung mit CMS und Joomla eher so, dass man ein Plugin zusammenschweißt, anstatt ein einzelnes Skript irgendwo im Nirgendwo (und da kennt das joomla-Ordnersystem einige Stellen...) abzulegen.

    Grüße,

    RIDER

    --
    Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
    ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
    1. Aloha ;)

      Erstellt man nun einen neuen Eintrag im "Biolexikon", so werden automatisch (durch ein Skript oder ähnliches, welches ich nicht finden kann... -.-) alle Wörter im Content der www.Liporal.de Seite die mit dem Titel des Biolexikon Eintrages/Artikels übereinstimmen auf diesen Artikel verlinkt.

      Da ich leider das ganze nur als Hobby betreibe beschränken sich meine Fähigkeiten im Harcoding leider auf das minimum (HTML, CSS und minimales (verständnis) von PHP und javascript).

      Könnt ihr mir da eventuell weiterhelfen, wie ich diese Funktion auf die neue Seite integrieren kann?

      Es führt wohl nichts drum herum, das verantwortliche Skript oder Plugin zu finden. Sofern da irgendwas mit JavaScript passiert, kann ich dir vielleicht später weiterhelfen, sobald ich meinem Desktop-PC angeworfen habe. Wenn das Ganze php-basiert läuft, kann dir wohl extern keiner bei der Suche direkt helfen. Was wahrscheinlicher ist - keine Ahnung. Ich werfe nachher mal einen (ausführlichen) Blick darauf...

      In der Zwischenzeit: Schon mal geschaut, welche Plugins/Erweiterungen/... in Joomla installiert sind und ob eine davon verantwortlich sein könnte? Selbst wenn die Funktionalität selbstgebastelt ist, ist es aus meiner Erfahrung mit CMS und Joomla eher so, dass man ein Plugin zusammenschweißt, anstatt ein einzelnes Skript irgendwo im Nirgendwo (und da kennt das joomla-Ordnersystem einige Stellen...) abzulegen.

      Grüße,

      RIDER

      dankeschön, für die schnelle Antwort :)
      ja ich hab bereits die Plug-Ins durchsucht, jedoch leider nichts finden können...

      1. Aloha ;)

        Tut mir leid - ich hatte dich jetzt auf die lange Bank geschoben.

        Und leider habe ich auch keine guten Nachrichten für dich.

        JavaScript ist NICHT für die Verlinkung zuständig, so viel ist nach meinem Test sicher.

        Das bedeutet aber im Gegenzug, dass bei dir ein php-Skript am Laufen ist, das entweder nach der Texteingabe oder vor der Textausgabe entsprechende Links einfügt, du müsstest also dieses PHP-Skript identifizieren.

        Wenn das Ersetzen vor der Ausgabe passiert, findest du eventuell Hinweise im verwendeten Joomla-Template. Afaik sind die im Unterordner /templates/. Dort muss es eine template.php oder vergleichbares geben, die für Joomla die zentrale Ausgabekontrolle für HTML-Daten darstellt. Wenn also ein Skript vor der Ausgabe der Daten tätig wird, müsst es imho in der template.php per include/require eingebunden sein und direkt an dieser Stelle die Ausgabedaten manipulieren.

        Diagnosetechnisch interessant ist dann auch die Datenbankinterne Speicherung. Log dich in deiner MySQL-Datenbank ein (wahrscheinlich über phpmyadmin?) und checke die gespeicherten Daten daraufhin, ob die Links schon in der Datenbank mit eingespeichert sind. Wenn das der Fall ist, kannst du davon ausgehen, dass die Ersetzung nicht bei Ausgabe sondern während des Speichervorgangs passiert.

        Wenn die Ersetzung beim Speichervorgang passiert, wäre interessant, welchen (WYSIWYG-)Editor dein Joomla einsetzt? TinyMCE oder einen anderen? (Herauszufinden in den allgemeinen Joomla-Einstellungen) Weiterhin würde ich dann noch einmal die Liste der Erweiterungen durchchecken, insbesondere auf Erweiterungen für den Editor oder Eingabefunktionen. Zu guter Letzt kann noch untersucht werden, wie dein WYSIWYG-Editor die Daten verarbeitet und ob da irgendwo ein eigenes Skript dazwischengepfuscht wurde.

        Grüße,

        RIDER

        --
        Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
        ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
        1. Vielen Dank!
          Ne menge Ideen/Anregungen,
          Sobald ich wd am Rechner bin setz ich mich da gleich mal ran.
          Vielen Vielen Dank schon schon mal!

        2. so, hab nun alle deine vorschläge abgearbeitet...
          im template.php und jeder weiteren php datei die ich durchgeschaut habe (zu viele um sie alle durchzusehen) habe ich leider nichts finden können...
          In der Datenbank ist der Kontent OHNE links gespeichert sprich diese werden wohl beim aufrufen? eingefügt...
          Hast du/habt ihr sonst evtl eine Idee/Möglichkeit wie ich das umsetzen kann, ohne das Original SKript zu besitzen? oder kennt ihr ien Plug-In welches genau diese Aufgabe abdeckt?
          Ich konnte bisher nur auto-link generator Plug-Ins finden welcvhe Automatisch zuvor definierte Stichworte in Links umwandeln, ist es evtl möglich die Titel der Seiten aus dem Lexikon automatisch in diese Stichwort Liste zu laden?
          Vielen Dank!

          1. Aloha ;)

            In der Datenbank ist der Kontent OHNE links gespeichert sprich diese werden wohl beim aufrufen? eingefügt...

            Das sagt eigentlich schon alles. Dann musst du in der template.php wohl etwas übersehen haben. Eine andere Möglichkeit gibt es m.E.n. nicht. Beim Suchen helfen können wir dir in dem Fall aber nur dann, wenn du uns die fragliche Datei, z.B. als Codeschnipsel, zur Verfügung stellst...

            Ich habe noch einmal nachgesehen, die zu überprüfende Datei ist

            /templates/DEINTEMPLATE/index.php

            Hast du/habt ihr sonst evtl eine Idee/Möglichkeit wie ich das umsetzen kann, ohne das Original SKript zu besitzen? oder kennt ihr ien Plug-In welches genau diese Aufgabe abdeckt?

            Naja, klar... Das Skript, das bisher läuft, kocht ja auch nur mit Wasser... Ich schätze mal, dass das Skript, das läuft in etwa so arbeitet: Der Content wird vor der Ausgabe Wort für Wort mit der Datenbank des biolexikon abgeglichen und falls ein übereinstimmender Artikelname gefunden wird, wird ein Link gesetzt...

            Ich konnte bisher nur auto-link generator Plug-Ins finden welcvhe Automatisch zuvor definierte Stichworte in Links umwandeln, ist es evtl möglich die Titel der Seiten aus dem Lexikon automatisch in diese Stichwort Liste zu laden?

            Das Problem ist, dass es sich bei deiner Situation um eine sehr spezielle Geschichte handelt. Vermutlich laufen biolexikon und die andere Seite sogar über dieselbe Datenbank? Ich glaube nicht, dass du für diesen Spezialfall tatsächlich eine vorgefertigte Lösung findest.

            Vielen Dank!

            Halt, noch nicht auflegen :D Mir kam grad noch was... Wenn der Hund tatsächlich im template begraben sein SOLLTE... Schonmal überlegt, einfach testweise ein neues Joomla (3.x) zu den Bedingungen des Alten aufzusetzen und dann das Template zu übertragen? Wenn auch da dann schon Links erzeugt werden, wäre ja alles in Ordnung...

            Aufgrund des dadurch entstehenden Aufwands würde ich eine weitere Suche nach dem alten Skript wahrscheinlich aber vorziehen...

            Grüße,

            RIDER

            --
            Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
            ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
            1. Aloha ;)

              Das sagt eigentlich schon alles. Dann musst du in der template.php wohl etwas übersehen haben.

              Okay, mist... Vergiss alles, was ich gesagt habe.

              Ich hab soeben meine eigene Joomla-Installation nochmal scharf angesehen. Und alles, was im Template passiert, ist das Einfügen eines Platzhalters

              <jdoc:include type="component" />

              Dabei gibt es keine Möglichkeit zur Content-Manipulation...

              Damit muss dann tatsächlich ein Plugin verantwortlich sein. Die können das wohl. Okay, du nimmst dir also besser noch einmal die Plugin-Liste vor.

              Ich weiß, das ist nervig... Meine Plugin-Liste geht über drei Seiten. Aber da MUSS das Ding eigentlich mit drinstehen. Zur Eingrenzung kannst du auch nur Plugins listen lassen, die aktiviert sind...

              Wenn du's nicht findest kannst du mir hier die Pluginliste auch durchreichen, z.B. per Screenshot, und ich schau auch mal mit drüber...

              Grüße,

              RIDER

              --
              Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
              ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
              1. kann sein dass ich mich grade zu blöd anstelle, aber in joomla 1.8 konnte ich den abschnitt Plug-Ins nicht finden O.o lediglicb Mamwbots (die dort angezeigten Objekte sehen aus als seien es plug-ins....)
                sind mambots plug-ins?

                1. Aloha ;)

                  kann sein dass ich mich grade zu blöd anstelle, aber in joomla 1.8 konnte ich den abschnitt Plug-Ins nicht finden O.o lediglicb Mamwbots (die dort angezeigten Objekte sehen aus als seien es plug-ins....)
                  sind mambots plug-ins?

                  Hehe, da fragst du den falschen. Ich hab bisher vergeblich versucht das zu verschleiern, aber meine ersten Erfahrungen waren mit joomla 2.x...

                  Gezielt kann ich dir also nicht sagen, wo du sowas in joomla 1.x findest :/

                  Vielleicht hilft dir das hier? Vielleicht musst du nach extensions statt plugins suchen?

                  Grüße,

                  RIDER

                  --
                  Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                  ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
                  1. so...
                    hab grad mit dem kerl geschnackt der das früher gemacht hat...
                    er hat dazu die joomla core modifiziert, dort die dartenbank des lexikons ausgelesen und die gefundenen einträge auf der Liporal Seite gesucht und durhc die passenden aus der Datenbank entnommenen Links ersetzt...
                    -.-
                    Er hat jedoch inzwischen selbst keine Ahnung mehr wo er diesen Code versteckt hat weswegen ich entweder stundenlang alle joomla files durchsuchen oder das ganze neu schreiben muss...
                    Zum neu schreiben reichen meine Fähigkeiten leider nicht aus... (ich komme einfach nicht mit datenbankabfragen klar :D )
                    Habt ihr/hast du evtl. snippets oder Hilfeseiten mit denen ich mir die passenden Teile zusammenschustern kann?

                    1. Aloha ;)

                      Habt ihr/hast du evtl. snippets oder Hilfeseiten mit denen ich mir die passenden Teile zusammenschustern kann?

                      Ideen - ja. Snippets - eingeschränkt vielleicht auch noch. Das mit dem Zusammenschustern ist so eine Sache - wie gesagt ist dein Problem ein sehr spezielles Problem.

                      Machbar auf jeden Fall, nicht mal die kompliziertest vorstellbare Aufgabe, aber vorgefertigt wird es - auch in Teilstücken - wohl eher nichts geben...

                      Imho führt nichts dran vorbei, dass ein Joomla-Plugin für diesen Zweck geschrieben wird. Dazu muss grundlegende PHP-Kenntnis vorhanden sein und ein minimales Verständnis der Joomla-API und Datenbankstruktur, letzteres kann sich aber wohl auch an der Dokumentation entlanghangeln.

                      Wenn du derjenige bist, der das schreiben soll, dann findest du eine PHP-Referenz zum Erlernen der Syntax und ein gutes Nachschlagewerk im PHP-Handbuch. Die joomla-API und insbesondere, wie man ein Plugin schreibt, findest du in der joomla-Dokumentation.

                      Zur Funktionsweise - vorstellen könnte ich mir das so (ohne Garantie, dass das 1 zu 1 umsetzbar ist): Dein Plugin greift die Ausgabe ab (dass das geht habe ich weiter oben verlinkt), dann geschieht eine Datenbankabfrage, die alle Beitragsnamen aus dem Biolexikon liefert. Daraufhin wird Wort für Wort der Ausgabe abgegriffen und auf Übereinstimmungen überprüft, wenn ja, wird das Wort durch einen Link ersetzt. Die Schwierigkeit besteht vor allem darin, die Ausgabe, die ja auch HTML-Elemente enthält, richtig zu interpretieren. Z.B. könnte man nur Worte/Begriffe prüfen, die innerhalb <p> oder anderer zu definierender Elemente, die sinnvollerwiese Text enthalten, stehen. Wie man mit eventuellen <span> o.ä. umgeht ist dann auch noch festzulegen. z.B. sollten Begriffe in <a> oder in <label> oder in <button> ... ignoriert werden. Dann bleibt die Frage, ob nur einzelne Worte verlinkt sein können oder ob die zu verlinkenden Begriffe über mehrere Worte gehen...

                      Viel Aufwand für eine Komfortfunktion. Ist sie das wert? Um es anders zu formulieren: Gibt es dermaßen viele Neueinträge im Biolexikon bzw. dermaßen viele zu verlinkende Begriffe, dass es nicht einfacher und sinnvoller ist, die Links ins Biolexikon direkt bei der Eingabe per Hand zu setzen?

                      Grüße,

                      RIDER

                      --
                      Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                      ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
                      1. Viel Aufwand für eine Komfortfunktion. Ist sie das wert? Um es anders zu formulieren: Gibt es dermaßen viele Neueinträge im Biolexikon bzw. dermaßen viele zu verlinkende Begriffe, dass es nicht einfacher und sinnvoller ist, die Links ins Biolexikon direkt bei der Eingabe per Hand zu setzen?

                        Nein, das lohnt sich absolut NICHT! jedoch ist Chef zu bequem das per Hand zu machen... weswegen wohl kein weg drum rum führt...
                        Naja was solls... ran ans lernen (war sowieso mein nächstes Ziel "Fortbildung" -> php, java, jquery, etc.)
                        Vielen Dank Rider :)

                        1. Aloha ;)

                          Nein, das lohnt sich absolut NICHT! jedoch ist Chef zu bequem das per Hand zu machen... weswegen wohl kein weg drum rum führt...

                          Naja - da du hoffentlich nach Arbeitszeit bezahlt wirst, muss dein Chef das selbst mit seiner Geldbörse ausmachen :D Dein Schaden solls ja dann nicht sein ;)

                          Naja was solls... ran ans lernen (war sowieso mein nächstes Ziel "Fortbildung" -> php, java, jquery, etc.)

                          Du hast JavaScript vergessen, welches mit Java so viel zu tun hat wie der Buchstabe phi mit einem Philosophen... (entschuldige, Matthias, ich weiß, das ist dein Part und du kannst das besser^^)

                          Überhaupt, ich hör überall nur noch jQuery :D was ist aus dem guten, alten Vanilla-JavaScript geworden :D

                          Vielen Dank Rider :)

                          Gern geschehen ;)

                          Grüße,

                          RIDER

                          --
                          Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                          ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
                          1. Hallo

                            Überhaupt, ich hör überall nur noch jQuery :D was ist aus dem guten, alten Vanilla-JavaScript geworden :D

                            Ist das eine Frage

                            *scnr*

                            Tschö, Auge

                            --
                            Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
                            Terry Pratchett, "Wachen! Wachen!"
                            ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
                            Veranstaltungsdatenbank Vdb 0.3
                2. Aloha ;)

                  sind mambots plug-ins?

                  Imho nicht direkt... vielleicht ist das aber trotzdem zielführend?

                  Grüße,

                  RIDER

                  --
                  Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                  ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[