Seite 2 von 2

Re: Dateiverwaltung - FTP - con_upl bei 4.8.14

Verfasst: Fr 4. Feb 2011, 16:52
von OliverL
Moin moin Mädels :)

1. leeren von "con_upl" ist nicht zuempfehlen da z.B. CMS_Link die ID der Datei in "con_content" speichert.
Und beim neu einlesen neue IDs vergeben werden.

2. Das Problem besteht auch in älteren Versionen. (4.8.6 - Mo Jun 30, 2008 1:25 pm)
Hier unten ist eine Lösung für das Problem mit der Sync-Function.
Der Fix wurde damals nicht eingebaut weill es größere Rechte-Probleme verursachen kann.
http://forum.contenido.org/viewtopic.ph ... 0&start=15
Wenn einige Leute das Testen und für gut befinden könnte man noch mal gucken ob das vielleicht doch einbaut wird.

Wir bekomme ich die alten Datenbankeinträge aus der DB? Gibt es hier irgendwo ein "Saubermach-Script"?
Wenn du den "Fix" einbaust musst du nur noch einmal den Hauptordner "referenzen" anlegen und direkt löschen.

mfg OliverL

@idea-tec: Keiner mag unbestätigte Bugs und stichel nicht immer so.

Re: [CON-401] Wird geprüft: Dateiverwaltung, FTP, con_upl 4.

Verfasst: Mi 29. Jun 2011, 22:56
von xmurrix
Bug ist gefixt.

Re: [CON-401] Gelöst: Dateiverwaltung, FTP, con_upl 4.8.14

Verfasst: Do 30. Jun 2011, 13:57
von CharlyBrown
xmurrix hat geschrieben:Bug ist gefixt.
Entschuldigt bitte diese peinliche Frage, aber wo finde ich denn jetzt die Lösung? :oops:

Hab das Problem aktuell auch in einer 4.8.15

Gibt es irgendwo eine Anlaufstelle, wo man sich diese Fixes holen kann?

Viele Grüße

Frank

Re: [CON-401] Gelöst: Dateiverwaltung, FTP, con_upl 4.8.14

Verfasst: Do 30. Jun 2011, 15:31
von xmurrix
CharlyBrown hat geschrieben:... Hab das Problem aktuell auch in einer 4.8.15

Gibt es irgendwo eine Anlaufstelle, wo man sich diese Fixes holen kann?...
Hallo Frank,

die Änderungen sind nicht ohne Weiteres verfügbar und auch einfach übernehmbar. Du kannst dir aber mit folgendem Codeschnipsel Abhilfe schaffen:

Code: Alles auswählen


cInclude("classes", "class.upload.php");
cInclude("classes", "class.properties.php");
cInclude("classes", "class.dbfs.php");

$bDebug = true;

$oUploadColl = new UploadCollection();
$oPropertiesColl = new PropertyCollection();

$oUploadColl->select("idclient='$client'");
while ($oUpload = $oUploadColl->next()) {
    $sPathName = $oUpload->get('dirname') . $oUpload->get('filename');
    $sFullPathName = $cfgClient[$client]['upl']['path'] . $sPathName;
    if (!file_exists($sFullPathName)) {
        if ($bDebug) {
            echo "Missing upload file {$sFullPathName}";
        } else {
            // delete upload item
            $oUploadColl->delete($oUpload->get('idupl'));

            // delete all upload item properties
            $oPropertiesColl->select("idclient='$client' AND itemtype='upload' AND type='file' AND itemid='{$sPathName}'");
            while ($oProperty = $oPropertiesColl->next()) {
                $oPropertiesColl->delete($oProperty->get("idproperty"));
            }
        }
    }
}
Den Code einfach in eine Modulausgabe einfügen und den entsprechenden Artikel aufrufen. Per default ist debugging aktiviert, es löscht also keine übriggebliebenen Einträge aus der Tabelle. Du kannst es also vorher testen.

Mach sicherheitshalber vorher eine Kopie der Upload- und Properties Tabelle (con_upl und con_properties). Der Beispiekcode ist nicht getestet, sollte aber funktionieren.

Gruß
xmurrix

Re: [CON-401] Gelöst: Dateiverwaltung, FTP, con_upl 4.8.14

Verfasst: Fr 1. Jul 2011, 08:19
von CharlyBrown
Hallo xmurrix,

vielen Dank, ich werde es mal testen!

Viele Grüße

Frank

Re: [CON-401] Gelöst: Dateiverwaltung, FTP, con_upl 4.8.14

Verfasst: Fr 1. Jul 2011, 10:25
von mete.or
Hallo xmurrix,

Du hast ein Dollarzeichen vergessen bei der Variable sFullPathName.

Code: Alles auswählen

    if (!file_exists(sFullPathName)) {
Daher hat das "if" ein "true" und würde restlos alle Einträge in der DB löschen für die Uploads...
Zum Glück hast Du den debug-mode eingebaut, der das drohende Unheil schon angekündigt hat.

Trotzdem vielen Dank für das Script - es hat geholfen!

VG

Re: [CON-401] Gelöst: Dateiverwaltung, FTP, con_upl 4.8.14

Verfasst: Fr 1. Jul 2011, 21:42
von xmurrix
mete.or hat geschrieben:...
Du hast ein Dollarzeichen vergessen bei der Variable sFullPathName.

Code: Alles auswählen

    if (!file_exists(sFullPathName)) {
...
Danke für den Hinweis, habe es gleich korrigiert.

Gruß
xmurrix