Empfehlungen: Erweiterte Suche

Lexikon - Glossar mit Keywords

Fragen zur Konzeptionierung und womit man am besten anfäng? Hier rein...

Lexikon - Glossar mit Keywords

Beitragvon Jörg » So 24. Okt 2010, 18:21

Hallo zusammen,

aktuell bin ich am überlegen wie man sinnvoll, ohne viel Ressourcen zu verbrauchen, ein Glossar / Lexikon in CakePHP 1.3.x entwickelt.

Das Lexikon ist grundsätzlich kein Problem, jedoch überlege ich wie man eine Art "Highlight" von Schlüsselwörtern / Begriffen mittels Links zu weiteren bzw. alternativen Artikeln verknüpfen kann.

Ungern würde ich einen WYSIWYG-Editor einsetzen und die Links "hart" in die Datenbank schreiben.
Lieber wäre es mir, wenn die Verlinkungen von Begriffen in Texten dynamisch durchgeführt werden.
Zum Beispiel im "afterFind()" oder ähnlich.

Habt ihr eine Idee?

Bin über jeden Tipp dankbar.
Jörg
 
Beiträge: 130
Registriert: Di 13. Mai 2008, 13:45
Wohnort: Bremen
CakePHP-Version: 2.0.3, 1.3.x
OS: Win7/Ubuntu

Re: Lexikon - Glossar mit Keywords

Beitragvon havanna » Do 4. Nov 2010, 21:07

Hallo Jörg,

da du über jeden Tipp dankbar bist - als eine Anregung: Ich habe vor kurzem eine Funktion erstellt, in der ich Keywords (metatags) generiere. Die speichere ich dann in einer Spalte. Bestimmte Wörter (sein, werden, kann, möchte, etc.) grenze ich über eine .txt Datei aus, die die Stopwords enthält.
Ähnlich würde ich das bei einer solchen Funktion auch machen.
Im AfterFind() könntest du dann prüfen, ob es andere Einträge gibt, die im Titel eines der Keywörter enthalten. Den Link drum rum bauen könnte man vielleicht auch mit regex (wg. Geschwindigkeit).

ciao Thomas
Benutzeravatar
havanna
 
Beiträge: 191
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN

Re: Lexikon - Glossar mit Keywords

Beitragvon Jörg » Fr 5. Nov 2010, 00:29

Hi Thomas,

vielen Dank für deine Rückmeldung.
Hast du vielleicht noch ein paar Weblinks für solche Umsetzungen in z.B. CakePhP für mich?
Ich möchte gerade was die Performance angeht, die Programmierung durchführen.
Jörg
 
Beiträge: 130
Registriert: Di 13. Mai 2008, 13:45
Wohnort: Bremen
CakePHP-Version: 2.0.3, 1.3.x
OS: Win7/Ubuntu

Re: Lexikon - Glossar mit Keywords

Beitragvon havanna » Fr 5. Nov 2010, 13:00

Hallo Jörg,

als erster Ansatz hier meine Funktion zur Generierung der Keywords. Du kannst auch den umgekehrten Weg gehen in dem du in der Textdatei (stopwords_de) nur die Wörter aufzählst, die du verlinken möchtest. Dann hättest du den ersten Schritt getan.

Dem aufmerksamen Leser wird die Funktion mb_internal_encoding("UTF-8"); auffallen...

Eigentlich geht man davon aus, wenn in der core.php utf-8 steht, das CakePHP komplett mit utf-8 arbeitet. Dem ist aber nicht so. Das betrifft wohl nur die Datenbankverbindung.
Mark hatte dazu wohl auch mal ein Ticket offen (fand ich bei meiner Recherche) und vor kurzem hatte jemand auch das Problem in der Mail-Funktion.

Ciao Thomas

Code: Alles auswählen

  function _getKeywords($words) {
 
    $nMinLength = 0;
    $i = 0;
    $svKeywords = '';
    $saStopwords = array();
   
    if(Configure::read('Settings.MINKEYLENGTH') == null){
        Configure::write('Settings.MINKEYLENGTH', '4');
    }
    $nMinLength = Configure::read('Settings.MINKEYLENGTH');
 
    $file = new File(CONFIGS . DS . 'stopwords_de.txt');
   
    if($file->exists()) {
      $file->open('r',false);
      $svStopwords = $file->read();
      $svStopwords = strtolower($svStopwords);
      $words       = strtolower($words);
      $saStopwords = explode(',', $svStopwords);
     
      $svCleanwords = preg_replace('/[^a-zA-Z-äöüÄÜÖß \/]/i','',$words);
      mb_internal_encoding("UTF-8");
      $svCleanwords = mb_strtolower($svCleanwords);
      $saCleanwords = explode(' ', $svCleanwords);
      foreach($saCleanwords as $word) {
        $i++;
        if (strlen($word) > $nMinLength) {
          if (!in_array($word, $saStopwords)) {
            $svKeywords = $svKeywords . $word . ',';
          }
        }
        if ($i > 50)
          break;
        }
    }
   
    return $svKeywords;
  }
 
Benutzeravatar
havanna
 
Beiträge: 191
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN

Re: Lexikon - Glossar mit Keywords

Beitragvon havanna » Sa 6. Nov 2010, 11:45

Hallo Jörg,

nun der zweite Teil. Ich denke eine mögliche Antwort, was auch die Perfomance betrifft, findest du hier:
http://forums.codewalkers.com/php-codin ... 71205.html

Da geht es auch darum, Wörter "on-the-fly" zu verlinken.

Ciao Thomas
Benutzeravatar
havanna
 
Beiträge: 191
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN


Zurück zu Konzeption und Vorgehensweise

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron