Ein paar kleinere Probleme in 4.8.x

Gesperrt
xmurrix
Beiträge: 3147
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Ein paar kleinere Probleme in 4.8.x

Beitrag von xmurrix » Di 15. Sep 2009, 22:37

Hallo zusammen,

habe mich kürzlich mit einem Contenido-Update (4.6.24 -> 4.8.12) beschäftigt.

Dabei sind mir ein paar Probleme aufgefallen, die ich hier etwas näher beschreibe. Dann gehen diese Infos auch nicht verloren ;-)


Upgrade/Migration einer Contenido 4.6.x auf 4.8.12 Installation!
Problem bei er Übernahme der Modulhistorie von der Tabelle in die XML-Variante. Der Aufruf ist in /setup/dbupdate.php

Code: Alles auswählen

$oVersion = new VersionImport($cfg, $cfgClient, $db, $client, $area, $frame);
$oVersion->CreateHistoryVersion();
Die Klasse VersionImport (contenido/classes/class.versionImport.php) liest alle Datensätze aus der Tabelle
{prefix}_mod_history und exportiert diese in eine XML-Variante. Da alle Datensätze in den Speicher geladen werden,
kann es hier zu einem Speicherüberlauf und oder Überschreiten der maximalen Ausführzeit des Scriptes kommen.
Manche Contenido-Installationen laufen ein paar Jährchen und da kann sich mal 100 MB oder mehr in der {prefix}_mod_history sammeln. Möglich wäre der Export der neuesten 10 Versionen pro Modul mit der Ausgabe eines Hinweistextes an den User, oder VersionImport macht das Stück für Stück dann wird der Speicher nicht voll, wobei das Script hier auch in einen Timeout reinlaufen könnte.

Fehler in der Metatag Generierung:
contenido/plugins/chains/includes/include.chain.content.createmetatags.php
Funktion CheckIfMetaTagExists() soll die Position des Metatags liefern, falls dieser in der übergebenen Liste vorkommt.
Wird die Funktion aber mehrmals mit dem gleichen Metatag Namen aufgerufen, liefert die Funktion verschiedene Positionen.

Fehler in der Metatag Generierung, die 2.:
contenido/includes/functions.con2.php
In der Funktion conGenerateCode() kann es unter Umständen zu Fehlern beim Generieren der Metatag-Inhalte kommen, wenn Beschreibung oder Keywords Single-/Double Quotes enthalten.

Fehler in der Erstellung der Linkliste in TinyMCE
contenido/external/wysiwyg/tinymce3/list.php
Beim Generieren der URLs zu den Dateien, wird immmer der Mandantenpfad als URL angegeben, auch wenn es sich bei der Upload-Datei um eine in der DB abgelegten Datei handelt!

Dann steht dort

Code: Alles auswählen

if(!defined('CON_FRAMEWORK')) {
   die('Illegal call');
}
drin.

Muss aber lauten:

Code: Alles auswählen

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

Problem in der Dateiverwaltung
contenido/includes/include.upl_files_overview.php
Beim Aufruf eines Uploadordners wird der Ordnerinhalt mit der DB-Tabelle abgeglichen, und die Liste Generiert.
Hat der Ordner z. B. 1000 Dateien, werden pro Datei im Durchschnitt ca. 4 Queries an die DB abgesetzt, um den Abgleich zu machen und um die Liste auszugeben.
Apropos Liste: Auch wenn hier z. B. nur 25 Dateien angezeigt werden, laufen im Hintergrund für jede vorhandene Datei in dem Upload Ordner 2 Queries (1 zum Ermitteln der ID, eine zum Holen des Datensatzes). Problem ist hier die Verwendung von Klassen die von ItemCollection und Item erben.
Ob es Sinn macht, in einen Ordner 1000 oder mehr Dateien abzulegen, sei mal dahin gestellt. Dennoch sollte das nicht passieren.

Mit einem Pager, habe mal damit grob angefangen, kann man zumindest die Liste mit 2 Queries abfrühstücken. 1 Query für die Anzahl der Dateien und 1 Query mit Filter-/Sortier Bedingung inkl. Angabe des Bereichs (LIMIT).


So, das war alles, was mir so aufgefallen ist. Vielleicht ist einiges davon schon bekannt, habe es dennoch hier beschrieben.

Grüße
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Oldperl
Beiträge: 4254
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Ein paar kleinere Probleme in 4.8.x

Beitrag von Oldperl » Mi 16. Sep 2009, 09:54

:!: Verschoben nach Bugs.

Und einen Merker gesetzt. :-)
Danke für die Hinweise.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Gesperrt