Seite 1 von 1

Objektverzeichnis während we:write erstellen

Verfasst: Mo 17. Okt 2022, 15:19
von Finn
Moin Moin,
ich würde vor dem Schreiben von Objekten mit we:write gerne prüfen, ob ein Objektverzeichnis vorhanden ist und falls nicht dieses anlegen.

Bin ich richtig in der Annahme, dass es mit WE Bordmitteln nicht möglich ist Objektverzeichnisse zu erstellen?

Generell gibt es so eine Funktion wie das automatische generieren von Verzeichnissen bei Dokumenten (Definiert im Dokumenten-Typ), nicht bei Objekten, richtig?

Lieben Gruß
Finn

Re: Objektverzeichnis während we:write erstellen

Verfasst: Mo 17. Okt 2022, 15:33
von blickfang
Hi Finn,
nope, gibt es so nicht. Du könntest mit path_to_id prüfen, ob du eine Ids bekommts, dann gibt es das Verzeichnis, Wenn nicht, musst du das Verzeichnis anlegen. Müsste so in diese Richtung funktionieren.

Code: Alles auswählen

$dir = new we_folder_objectFile();
$dir->we_new($parentId, (string)$name);
$dir->we_save();
VG, Timo

Re: Objektverzeichnis während we:write erstellen

Verfasst: Mo 17. Okt 2022, 16:15
von Finn
Moin Timo,
danke für die Anregung. Allerdings prüft path_to_id nur die Dokumentenverzeichnisse oder auch Objekte?

LG
Finn

Re: Objektverzeichnis während we:write erstellen

Verfasst: Mo 17. Okt 2022, 16:49
von blickfang
berechtigte Frage ;-)
die Funktion hat einen zweiten Parameter, da kann man den Table mitgeben, den man abfragen möchte

Code: Alles auswählen

path_to_id(string $path, string $table = FILE_TABLE)
Für Objekte müsste das dann OBJECT_TABLE sein

Code: Alles auswählen

path_to_id('meinpfad/such/es', 'OBJECT_TABLE')
Grüße, Timo

Re: Objektverzeichnis während we:write erstellen

Verfasst: Mo 17. Okt 2022, 17:33
von Finn
So funktioniert es:

Code: Alles auswählen

path_to_id('/pfad/den/ich/suche', 'tblObjectFiles');

Re: Objektverzeichnis während we:write erstellen

Verfasst: Mo 17. Okt 2022, 17:35
von blickfang
wenn die Table als Constante übergeben wird, sollte es auch klappen, war als String gecastet, sorry ;-)

Code: Alles auswählen

path_to_id('meinpfad/such/es', OBJECT_TABLE)
Damit bist du updatesicerer, sollte sich die Bezeichnung der Tabelle einmal ändern

Re: Objektverzeichnis während we:write erstellen

Verfasst: Mo 17. Okt 2022, 17:59
von Finn
biwaMedia hat geschrieben: Mo 17. Okt 2022, 15:33 Hi Finn,
nope, gibt es so nicht. Du könntest mit path_to_id prüfen, ob du eine Ids bekommts, dann gibt es das Verzeichnis, Wenn nicht, musst du das Verzeichnis anlegen. Müsste so in diese Richtung funktionieren.

Code: Alles auswählen

$dir = new we_folder_objectFile();
$dir->we_new($parentId, (string)$name);
$dir->we_save();
VG, Timo
Passt, danke!

Re: Objektverzeichnis während we:write erstellen

Verfasst: Mo 17. Okt 2022, 20:52
von WBTMagnum
Hey,

In einem wE8 Projekt haben wir das mit initByPath() gelöst:

Code: Alles auswählen

// get object folder or create it on the fly
$objFolder = new we_class_folder();
$objFolder->initByPath('/pfad/zum/objekt');
$objFolder->we_save();
$folderId = $objFolder->ID;
Ist der Pfad noch nicht vorhanden, wird er damit gleich angelegt. Ob das mit wE9 noch funktioniert, habe ich noch nicht probiert.


Liebe Grüße,
Sascha

Re: Objektverzeichnis während we:write erstellen

Verfasst: Mo 17. Okt 2022, 20:58
von blickfang
Hey Sascha,
hab grad nachgeschaut, die initByPath gibts ind er we9 auch und ist auch public, kann also funktionieren! Das ist noch schicker als vorher selbst abzufragen. Der Folder wird laut methode angelegt wenn er noch nicht existiert und das sogar recursiv.

Als Rückgabe müsste das object zur Verfügung stehen, so dass man darüber dann auch wieder direkt die Id bekommen kann, die der Folder verpasst bekommen hat.

Gruß, Timo

Re: Objektverzeichnis während we:write erstellen

Verfasst: Di 18. Okt 2022, 16:57
von Finn
Das wäre natürlich sexy, guck ich mir nochmal an!

Re: Objektverzeichnis während we:write erstellen

Verfasst: Mi 19. Okt 2022, 16:47
von Finn
biwaMedia hat geschrieben: Mo 17. Okt 2022, 17:35 wenn die Table als Constante übergeben wird, sollte es auch klappen, war als String gecastet, sorry ;-)

Code: Alles auswählen

path_to_id('meinpfad/such/es', OBJECT_TABLE)
Damit bist du updatesicerer, sollte sich die Bezeichnung der Tabelle einmal ändern
Die Konstante geht aus irgendeinem Grund nicht...