Suche: Keywords neu anlegen

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
kemweb
Beiträge: 4
Registriert: Di 10. Jun 2014, 10:09
Kontaktdaten:

Suche: Keywords neu anlegen

Beitrag von kemweb » Di 10. Jun 2014, 10:16

Ich hatte bei mir einen Bug in der Suche (Umlaute) behoben. Jedoch werden die Keywords immer nur neu erstellt, wenn man eine Seite speichert. Da wir jedoch viele Seiten haben, kommt das manuelle neu speichern aller Seiten nicht in Frage.

Wie erstelle ich con_keywords für alle Seiten neu?

Update zum oben erwähnten Bugfix:

in contenido/classes/class.search.php Zeile 500 ist die Funktion:

Code: Alles auswählen

public function removeSpecialChars($key) {
//...
        $sEncoding = getEncodingByLanguage($this->db, $this->lang);

        if (strtolower($sEncoding) != 'iso-8859-2') {
            // KEMWEB UTF-8 Bugfix
            // $key = conHtmlentities($key, NULL, $sEncoding);
            $key = htmlentities($key, NULL, 'ISO-8859-1');
        } else {
            $key = htmlentities_iso88592($key);
        }
//...
Zuletzt geändert von kemweb am Do 8. Okt 2015, 12:35, insgesamt 1-mal geändert.

mischa.holz
Beiträge: 86
Registriert: Do 28. Jun 2012, 15:30
Wohnort: Darmstadt
Kontaktdaten:

Re: Suche: Keywords neu anlegen

Beitrag von mischa.holz » Mi 11. Jun 2014, 09:43

Ich befürchte, dass es im Moment keine Möglichkeit gibt die Generierung irgendwie manuell anzustoßen :/

Eventuell könntest du ein Modul schreiben, dass die Generierung für alle Artikel übernimmt (wobei du aber aufpassen musst, innerhalb der erlaubten Ausführungszeit von PHP zu bleiben...)

Schau dir mal die Funktion conMakeArticleIndex an. Mit den cApi Klassen bist du in der Lage die id's für alle Sprachen und Artikel herauszubekommen.

Ansonsten sollte es dafür vielleicht wirklich einen Knopf im Backend geben...
CONTENIDO Doku - API Doku - Git Repo - Bug Tracker - CONTENIDO 4.9.4!!
Arbeitet nicht mehr bei 4fb

kemweb
Beiträge: 4
Registriert: Di 10. Jun 2014, 10:09
Kontaktdaten:

Re: Suche: Keywords neu anlegen

Beitrag von kemweb » Do 12. Jun 2014, 10:31

Ich hab mir aus der Tabelle con_art_lang die Werte für idartlang und idart rausgesucht, aber der Aufruf von conMakeArticleIndex scheint nichts zu bewirken:

Code: Alles auswählen

    if (!defined('CON_FRAMEWORK')) {
        define('CON_FRAMEWORK', true);
    }

    $articles = ConArtLang::where('idartlang', 488)->first();
    var_dump($articles->idartlang);
    var_dump($articles->idart);
    include_once ('/var/www/web1/html/contenido/includes/startup.php');
    include_once ('/var/www/web1/html/contenido/includes/functions.con.php');
    conMakeArticleIndex($articles->idartlang, $articles->idart);
Update: ok, er ist schon bei startup.php hängen geblieben. Wenn ich dort cInclude('includes', 'functions.i18n.php'); raus nehme kommt er durch, aber conMakeArticleIndex erstellt immer noch keine Keywords.

kemweb
Beiträge: 4
Registriert: Di 10. Jun 2014, 10:09
Kontaktdaten:

Re: Suche: Keywords neu anlegen

Beitrag von kemweb » Di 17. Jun 2014, 09:18

Ok, jetzt geht es. conMakeArticleIndex war der absolute Holzweg...
Nachdem ich wieder zurück zu cSearchIndex gewechselt bin konnte ich so Keywords generieren:

Code: Alles auswählen

    if (!defined('CON_FRAMEWORK')) {
        define('CON_FRAMEWORK', true);
    }

    include_once ('/var/www/web1/html/contenido/includes/startup.php');
    include_once ('/var/www/web1/html/contenido/includes/functions.con.php');

    $db = cRegistry::getDb();
    $lang = 1;

    foreach ($articles as $article)
    {
        $content = conGetContentFromArticle($article->idartlang);
        $cms_options = array(
            'img',
            'link',
            'linktarget',
            'swf'
        );
        $search = new cSearchIndex($db);
        $search->start($article->idart, $content, 'auto', $cms_options);
    }
Sehr intuitiv, besonders die globale Variable $lang...

Update: Gerade noch einen Bug gefunden. Die Suche cSearchIndex hat irgendwelche Variablen die es benutzt ohne zu initialisieren, darum muss man das Objekt immer neu erzeugen.

dermicha
Beiträge: 95
Registriert: Mi 9. Dez 2009, 17:57
Kontaktdaten:

Re: Suche: Keywords neu anlegen

Beitrag von dermicha » Mi 18. Nov 2015, 14:42

Hallo,

ich hatte auch gerade das Problem, dass ein System, das nach der Erfassung des großteils der Inhalte auf 4.9.7 upgedatet worden war, nachträglich eine Suchfunktion bekommen hat. Es wurden aber nur sehr wenige Artikel (seit dem Update?) bei der Suche gefunden. Offensichtlich also das gleiche Problem...

Ist aber nicht folgende Funktion genau dafür gedacht?:
conGenerateKeywords($client, $language);

http://api.contenido.org/con490/source- ... ml#139-171

Die kann man sogar einfach in einem Modul benutzen, hat allerdings eine recht lange Laufzeit. Jetzt werden aber alle Artikel gefunden...

Wäre das nicht eine gute Funktion im Bereich "System/Bereinigung"?

Grüße
Michael

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Suche: Keywords neu anlegen

Beitrag von rethus » Do 19. Nov 2015, 10:23

dermicha hat geschrieben: Wäre das nicht eine gute Funktion im Bereich "System/Bereinigung"?
:idea: +1
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Antworten