Ich arbeite viel mit FTP und damit wergeben sich einige "Fehler" sollte ich eine Verzeichnis in "Uploads\" von Contenido syncronisieren und verwenden. werden die Dateien in "con_upl" gespeichert.
Das ist auch sehr schön den so kann ich eine Download-Liste mit Filtern usw. simpel generieren. (Stefan Seifarth <info@polycoder.de>)
Leider ist es so das wenn ich über FTP ein Verzeichnis inkl. Unterverzeichnisse lösche, dieses Verzeichnis bzw. die Datein des Unterverzeichnis beim Aufruf der uplSyncDirectory()-Function nicht aus der DB entfernt werden.
(Aufgerufen wird die uplSyncDirectory() in dem ich ein Verzeichnis über Contenido->Dateiverwaltung)
Dirty?-Lösung: - Lösche alle Unterverzeichnisse des aktuellen aber nicht die existierenden.
Anfang der Existierenden Funktion.
Code: Alles auswählen
function uplSyncDirectory ($path)
{
// ... BLA BLA BLA ...
while ($property = $properties->next())
{
if (!file_exists($cfgClient[$client]["upl"]["path"].$property->get("itemid")))
{
$properties->delete($property->get("idproperty"));
}
}
Code: Alles auswählen
$aAllDir = array();
while ($file = readdir ($dirhandle))
{
if ($file != "." && $file != "..")
{
if( is_dir($file) ) {
if( !in_array($path.$file, $aAllDir) ) $aAllDir[] = $path.$file;
}
}
}
$uploads->select("dirname LIKE '".$path."%'
AND dirname NOT LIKE '".implode("/%' AND dirname NOT LIKE '",$aAllDir )."/%'
AND idclient = '$client'");
while ($upload = $uploads->next())
{
if (!file_exists($cfgClient[$client]["upl"]["path"].$upload->get("dirname").$upload->get("filename")))
{
$uploads->delete($upload->get("idupl"));
}
}
Code: Alles auswählen
chdir($olddir);
}