Sodale..dank euren Tipps habe ich schon mal einen Meilenstein erledigt. Wenn Ordner erzeugt werden, werde diese auch direkt in der tl_file Tabelle erfasst. Somit kann ich unmittelbar die uuid abfragen.
Leider mag er jetzt meinen Wert nicht den ich bei einem neuen Downloadelement als src angebe. Ich habe in der tl_files doch die uuid als binary Wert. Wenn ich dann per $uuid_string = String::binToUuid($uuid_db); das Tabellenfeld "uuid" ausgebe, wird die korrekte uuid z.B. 913a7030-845b-11e4-a5c7-001d60a40015 ausgegeben.
Ab hier hänge ich leider. Ich habe mir händisch mal ein "Downloads" Element angelegt und mir in der Datenbank den Feldwert angeschaut. Bei MultiSrc steht
Code:
a:1:{i:0;s:16:"‘:oþ„[ä¥Ç
Keine Ahnung warum das abschließende Anführungszeichen und die Klammer da nicht stehen.
Also mache ich einen DB Insert und baue mir diesen String nach:
PHP-Code:
$uuid_string = String::binToUuid($uuid);
$uuid_query = 'a:1:{i:0;s:16:"'.String::uuidToBin($uuid_string);
Leider klappt das nicht wie gewünscht ;-). Das Download-Element wird war angelegt...zeigt aber keine Dateien. Sprich die MultiSrcZuweisung stimmt nicht (siehe cron.jpg). Öffne ich dann das Element und weise den Ordner von Hand zu wird das Element auch korrekt angezeigt (manuell.jpg). Wenn ich ein vom Cron angelegtes Downloadelement bearbeite und den ORdner zuweise ändert sich in der Tabelle der Wert im MultiSrc nicht und es geht!
Eigentlich macht das ja irgendwie keinen Sinn die uuid vorher umzuwandeln. Ich könnte sie ja aus dem einen Feld tl_files -> uuid (binary) auslesen und tl_content-> src (binary) reinschreiben. Aber auch da ist das Feld nachher leer (cron.jpg)
Edit:
Hier noch die Query
PHP-Code:
$query = "INSERT INTO tl_content (pid, sorting, type, headline, sortOrder, multiSRC, perRow, numberOfItems, sortBy, protected, groups)
VALUES (28, ".$gruppe.", 'downloads', '".serialize($topic)."', 'ascending', '".$uuid_query."', 4, 0, 'name_asc', 1, '".serialize($benutzergruppe)."');";
VG
Lesezeichen