{{vtScript}} ### Diese Funktion legt zu einem Verzeichnis auf dem Server eine neue Galerie in Pixtacy an. ### PARAMETER: ### Dir: relativer Pfad zum Verzeichnis auf dem Server (mit Schrägstrich am Anfang) ### PagePath: Seitenpfad zur obersten Galerie in Pixtacy (optional) ### InheritSharing: Angabe, ob Freigabeeinstellung geerbt werden soll (1) oder nicht ### InheritProducts: Angabe, ob Produktzuordnung geerbt werden soll (1) oder nicht ### UserSetting: die gewünschte Freigabeeinstellung ### DownloadAllowed: Kennzeichen, ob für Benutzer der High-res-Download erlaubt ist (1) oder nicht ### ViewType: die gewünschte Darstellungsart ### SortField: Sortierfeld ### SortOrderDesc: Kennzeichen, ob absteigende Sortierung gewünscht ist (1) oder nicht ### Assortment: Sortiment, das zugeordnet werden soll ### Products: Liste der Produkte, die zugeordnet werden sollen ### GLOBALE VARIABLEN: ### ID_Home: Seiten-ID der Startseite ### ID_Bilder: Seiten-ID der Seite "Bilder" ### thumbnailPath: Pfad zum Thumbnail-Verzeichnis {{vtFunction: create_imagelist}} {{vtIf: {vtArg:Dir} .cn. .. }} {{vtReturn: 0 }} {{vtEndIf}} {{vtIf: {vtArg:PagePath} .neq. }} {{vtSet: PagePath="{vtArg:PagePath}"}} {{vtElse}} {{vtUse: {vtGet:ID_Home} }} {{vtSet: PagePath="//{vtName}"}} {{vtEndUse}} {{vtUse: {vtGet:ID_Bilder} }} {{vtSet: PagePath="{vtGet:PagePath,raw}/{vtName}"}} {{vtEndUse}} {{vtEndIf}} {{vtIf: {vtArg:Dir} .eq. / }} {{vtSet: folder=""}} {{vtSet: pfad="{vtGlobal:pxtcPathLores}/"}} {{vtElse}} {{vtCalc: substr( '{vtArg:Dir,escaped}', 1 ) }} {{vtSet: folder}} {{vtSet: pfad="{vtGlobal:pxtcPathLores}/{vtGet:folder,raw}/"}} {{vtEndIf}} {{vtCalc: getFileInfo('{vtGet:pfad,escaped}', 'mtime') }} {{vtSet: mtime}} {{vtIf: {vtArg:UserSetting} .eq. -1}} {{vtSet: user="0"}} {{vtSet: privileges="111000000"}} {{vtElseIf: {vtArg:UserSetting} .eq. 0}} {{vtSet: user="0"}} {{vtSet: privileges="111100100"}} {{vtElseIf: {vtArg:UserSetting} .eq. -2}} {{vtSet: user="52"}} {{vtSet: privileges="111100100"}} {{vtCalc: md5( microtime() . rand(0,9999) ) }} {{vtSet: token}} {{vtElse}} {{vtSet: user="{vtArg:UserSetting}"}} {{vtSet: privileges="111100000"}} {{vtEndIf}} {{vtIf: {vtArg:UserSetting} .in. 0|-1 }} {{vtElse}} {{vtSet: DownloadAllowed="{vtArg:DownloadAllowed}"}} {{vtEndIf}} {{vtCalc: basename( '{vtGet:folder,escaped}' ) }} {{vtSet: foldername}} {{vtCalc: dirname( '{vtGet:folder,escaped}' ) }} {{vtIf: {vtResult} .neq. . }} {{vtSet: parent}} {{vtElse}} {{vtSet: parent=""}} {{vtEndIf}} {{vtSet: Assortment="{vtArg:Assortment}"}} {{vtSet: Products="{vtArg:Products}"}} {{vtUse: {vtGet:PagePath,raw}/{vtGet:parent,raw} }} {{vtSet: ParentID="{vtID}"}} {{vtIf: {vtPageType} .eq. imagelist}} {{vtIf: {istKategorie} .nin. 1|2 }} {{vtIf: {vtGlobal:pxtcCategoryListType} .eq. 1 }} {{vtDo:-act="update",-obj="{vtID}", istKategorie="2"}} {{vtElse}} {{vtDo:-act="update",-obj="{vtID}", istKategorie="1"}} {{vtEndIf}} {{vtEndIf}} {{vtIf: {vtArg:InheritSharing} .eq. 1 .and. {vtID} .neq. {vtGet:ID_Bilder} }} {{vtSet: DownloadAllowed="{DownloadAllowed}"}} {{vtSet: token="{Token}"}} {{vtEndIf}} {{vtIf: {vtArg:InheritProducts} .eq. 1 .and. {vtID} .neq. {vtGet:ID_Bilder} }} {{vtSet: Assortment="{Sortiment}"}} {{vtSet: Products="{Produkte}"}} {{vtEndIf}} {{vtEndIf}} {{vtEndUse}} {{vtCalc: mkdir('{vtGet:thumbnailPath,escaped}') }} {{vtCalc: chmod('{vtGet:thumbnailPath,escaped}',0777) }} {{vtCalc: mkdir('{vtGet:thumbnailPath,escaped}/{vtGet:folder,escaped}') }} {{vtCalc: chmod('{vtGet:thumbnailPath,escaped}/{vtGet:folder,escaped}',0777) }} {{vtDo: -act="create", -template="imagelist", -target="{vtGet:ParentID}", Titel="{vtGet:foldername}", Verzeichnis="{vtArg:Dir}", token="{vtGet:token}", DownloadAllowed="{vtGet:DownloadAllowed}", istKategorie="{vtArg:ViewType}", Sortierfeld="{vtArg:SortField}", Sortierung_absteigend="{vtArg:SortOrderDesc}", Sortiment="{vtGet:Assortment}", Produkte="{vtGet:Products}", fs_status="1", Timestamp="{vtGet:mtime}", -properties[name]="{vtGet:foldername}", -properties[protected]="1" }} {{vtSet: newpage="{vtResult}"}} {{vtIf: {vtArg:InheritSharing} .neq. 1 .or. {vtGet:ParentID} .eq. {vtGet:ID_Bilder} }} {{vtDo:-act="update",-obj="{vtGet:newpage}", -properties[userID]="{vtGet:user}", -properties[accessRights]="{vtGet:privileges}"}} {{vtEndIf}} {{vtReturn: {vtGet:newpage} }} {{vtEndFunction}} ### Diese Funktion legt zu einer Bilddatei einen neuen Datensatz in Pixtacy an. ### PARAMETER: ### Path: relativer Pfad zur Bilddatei auf dem Server (mit Schrägstrich am Anfang) ### PagePath: Seitenpfad zur obersten Galerie in Pixtacy (optional) ### Charset: Zeichencodierung für die IPTC-Daten ### AdditionalKeywords: Stichwörter, die zusätzlich hinzugefügt werden sollen ### GLOBALE VARIABLEN: ### ID_Home: Seiten-ID der Startseite ### ID_Bilder: Seiten-ID der Seite "Bilder" ### thumbnailPath: Pfad zum Thumbnail-Verzeichnis ### Unlimited: Kennzeichen, ob die Zahl der Bilder begrenzt ist ### GlobalCount: aktuelle Gesamtzahl der Bilder ### GlobalLimit: Grenze für die Gesamtzahl der Bilder {{vtFunction: create_image }} {{vtIf: {vtGet:Unlimited} .neq. 1 .and. {vtGet:GlobalCount} .gte. {vtGet:GlobalLimit} }} {{vtReturn: ERROR-1 }} {{vtEndIf}} {{vtIf: {vtArg:PagePath} .neq. }} {{vtSet: PagePath="{vtArg:PagePath}"}} {{vtElse}} {{vtUse: {vtGet:ID_Home} }} {{vtSet: PagePath="//{vtName}"}} {{vtEndUse}} {{vtUse: {vtGet:ID_Bilder} }} {{vtSet: PagePath="{vtGet:PagePath}/{vtName}"}} {{vtEndUse}} {{vtEndIf}} {{vtCalc: dirname( '{vtArg:Path,escaped}' ) }} {{vtSet: folder}} {{vtUse: {vtGet:PagePath}{vtGet:folder} }} {{vtSet: ImagelistID="{vtID}"}} {{vtEndUse}} {{vtIf: {vtGet:ImagelistID} .eq. }} {{vtReturn: ERROR-2 }} {{vtEndIf}} {{vtSet: ImagePath="{vtConfig:pathToVirthos}{vtGlobal:pxtcPathLores}{vtArg:Path}"}} {{vtCalc: trim( basename('{vtGet:ImagePath,escaped}') ) }} {{vtSet: FileName}} {{vtCalc: getImageOrientation( '{vtGet:ImagePath,escaped}', 0.01 ) }} {{vtSet: Format}} {{vtCalc: makeThumbnail( '{vtArg:Path,escaped}' ) }} {{vtIf: {vtArg:Charset} .eq. latin1}} {{vtSet:Charset=""}} {{vtElseIf: {vtArg:Charset} .eq.}} {{vtSet:Charset="{vtGlobal:pxtcIPTCCharset}"}} {{vtElse}} {{vtSet:Charset="{vtArg:Charset}"}} {{vtEndIf}} {{vtRepeat: Category, Keywords, ReferenceNumber, CreationDate, CreationTime, Photographer, City, State, CountryCode, Country, Title, Credit, Copyright, Description, Instructions, Rating }} {{vtSet: {vtItem}=""}} {{vtCalc: getIPTCHeader('{vtGet:ImagePath,escaped}', '{vtItem}', '{vtGet:Charset}' ) }} {{vtSet: {vtItem}="{vtResult}"}} {{vtEndRepeat}} {{vtIf: {vtArg:AdditionalKeywords} .neq.}} {{vtIf: {vtGet:Keywords} .neq.}} {{vtSet: Keywords="{vtGet:Keywords}, {vtArg:AdditionalKeywords}"}} {{vtElse}} {{vtSet: Keywords="{vtArg:AdditionalKeywords}"}} {{vtEndIf}} {{vtEndIf}} {{vtCalc: filemtime( '{vtGet:ImagePath,escaped}' ) }} {{vtSet: Timestamp}} {{vtDo:-act="create",-template="image",-target="{vtGet:ImagelistID}", Name="{vtGet:Title}", Verzeichnis="{vtGet:folder}", Format="{vtGet:Format}", Remarks="{vtGet:Description}", Keywords="{vtGet:Keywords}", Dateiname="{vtGet:FileName}", CreationDate="{vtGet:CreationDate}", Photographer="{vtGet:Photographer}", City="{vtGet:City}", State="{vtGet:State}", Country="{vtGet:Country}", CountryCode="{vtGet:CountryCode}", Credit="{vtGet:Credit}", Copyright="{vtGet:Copyright}", Category="{vtGet:Category}", ReferenceNumber="{vtGet:ReferenceNumber}", CreationTime="{vtGet:CreationTime}", Instructions="{vtGet:Instructions}", Rating="{vtGet:Rating}", -properties[name]="{vtGet:FileName}", -properties[protected]="1" }} {{vtReturn: {vtResult} }} {{vtEndFunction}} ### Diese Funktion importiert alle neuen Bilddateien zu einer bestehenden Galerie. ### PARAMETER: ### Imagelist: ID oder Seitenpfad der Galerie ### IsEmpty: Kennzeichen, ob Galerie mit Sicherheit leer ist (1); erspart zusätzliche Prüfung ### PagePath: Seitenpfad zur obersten Galerie in Pixtacy (optional) ### Source: "hires" oder "lores" ### Charset: Zeichencodierung für die IPTC-Daten ### AdditionalKeywords: Stichwörter, die zusätzlich hinzugefügt werden sollen ### GLOBALE VARIABLEN: ### ID_Home: Seiten-ID der Startseite ### ID_Bilder: Seiten-ID der Seite "Bilder" ### thumbnailPath: Pfad zum Thumbnail-Verzeichnis ### Unlimited: Kennzeichen, ob die Zahl der Bilder begrenzt ist ### GlobalCount: aktuelle Gesamtzahl der Bilder ### GlobalLimit: Grenze für die Gesamtzahl der Bilder {{vtFunction: create_new_images }} {{vtSet: ExistingImages="" }} {{vtSet: Counter="0" }} {{vtUse: {vtArg:Imagelist} }} {{vtIf: {vtArg:IsEmpty} .eq. 1 }} {{vtSet: ExistingImages="" }} {{vtElse}} {{vtDBQuery: SELECT `name` FROM {vtDbTable:content} WHERE `containerID` = {vtID} AND `type` = 'image' }} {{vtDBLoop}} {{vtSet:ExistingImages="{vtGet:ExistingImages},{vtDbRow:name}"}} {{vtEndDBLoop}} {{vtEndDBSelect}} {{vtEndIf}} {{vtSet: istKategorie="{istKategorie}"}} {{vtSet: Source="{vtArg:Source}"}} {{vtIf: {vtGet:Source} .eq. hires }} {{vtSet: pfad="{vtGlobal:pxtcPathHires}/{Verzeichnis}/"}} {{vtElse}} {{vtSet: pfad="{vtGlobal:pxtcPathLores}/{Verzeichnis}/"}} {{vtEndIf}} {{vtCalc: getFileList( '{vtGet:pfad}', '^.+\.(jpg|JPG)$' ) }} {{vtIf: {vtResult} .neq. -1 }} {{vtRepeat: {vtResult} }} {{vtIf: {vtItem} .nin. {vtGet:ExistingImages} }} {{vtSet: istKategorie=""}} {{vtIf: {vtGet:Source} .eq. hires }} {{vtCalc: update_lores_image( utf8_encode('{Verzeichnis}/{vtItem}'), TRUE ) }} {{vtEndIf}} {{vtCall: -name="create_image", Path="{Verzeichnis}/{vtItem}", Charset="{vtArg:Charset}", AdditionalKeywords="{vtArg:AdditionalKeywords}" }} {{vtIf: {vtResult} .bw. ERROR }} {{vtReturn: {vtResult} }} {{vtElse}} {{vtCalc: {vtGet:Counter} + 1 }} {{vtSet: Counter}} {{vtEndIf}} {{vtEndIf}} {{vtEndRepeat}} {{vtCalc: getFileInfo('{vtGet:pfad}', 'mtime') }} {{vtDo: -act="update", -obj="{vtID}", Timestamp="{vtResult}", istKategorie="{vtGet:istKategorie}"}} {{vtEndIf}} {{vtEndUse}} {{vtReturn: {vtGet:Counter} }} {{vtEndFunction}} ### Diese Funktion verschiebt ein Bild oder eine Galerie in eine andere Galerie. ### PARAMETER: ### Object_ID: Seiten-ID des Bildes bzw. der Galerie ### Object_Path: Pfad zur Datei bzw. zum Verzeichnis auf dem Server (ausgehend vom lores-Verzeichnis, beginnend mit /) ### Target_ID: Seiten-ID der Zielgalerie ### Target_Path: Pfad zur Zielgalerie auf dem Server (ausgehend vom lores-Verzeichnis, beginnend mit /) ### GLOBALE VARIABLEN: ### ftpBasePath: FTP-Pfad zum Pixtacy-Verzeichnis ### ID_Bilder: Seiten-ID der Seite "Bilder" {{vtFunction: move_image_object }} {{vtCalc: basename( '{vtArg:Object_Path}' ) }} {{vtSet: Object_Name }} # Parameter prüfen {{vtIf: {vtArg:Object_ID} .eq. {vtArg:Target_ID} }} {{vtReturn: ERROR-01 }} {{vtEndIf}} {{vtIf: {vtArg:Object_ID} .eq. {vtGet:ID_Bilder} }} {{vtReturn: ERROR-02 }} {{vtEndIf}} {{vtUse: {vtArg:Object_ID} }} {{vtIf: {vtContainerId} .eq. {vtArg:Target_ID} }} {{vtReturn: ERROR-03 }} {{vtEndIf}} {{vtIf: {vtPathIDs} .ncn. {vtGet:ID_Bilder} }} {{vtReturn: ERROR-04 }} {{vtEndIf}} {{vtIf: {vtPageType} .nin. image|imagelist }} {{vtReturn: ERROR-05 }} {{vtEndIf}} {{vtIf: {vtPageType} .eq. image .and. {vtCurrentAccessRights} .ncn. update }} {{vtReturn: ERROR-91 }} {{vtEndIf}} {{vtSet: PageType = "{vtPageType}" }} {{vtEndUse}} {{vtUse: {vtArg:Target_ID} }} {{vtIf: {vtPageType} .neq. imagelist }} {{vtReturn: ERROR-06 }} {{vtEndIf}} {{vtIf: {vtPathIDs} .ncn. {vtGet:ID_Bilder} .and. {vtID} .neq. {vtGet:ID_Bilder} }} {{vtReturn: ERROR-07 }} {{vtEndIf}} {{vtIf: {Verzeichnis} .neq. {vtArg:Target_Path} .and. {Verzeichnis} .neq. - }} {{vtReturn: ERROR-08 }} {{vtEndIf}} {{vtIf: {vtCurrentAccessRights} .ncn. add }} {{vtReturn: ERROR-92 }} {{vtEndIf}} {{vtSet: UserID="{vtPageUserId}" }} {{vtSet: AccessRights="111{vtIf:UserViewAccess}1{vtElse}0{vtEndIf}{vtIf:UserUpdateAccess}1{vtElse}0{vtEndIf}{vtIf:UserAddAccess}1{vtElse}0{vtEndIf}{vtIf:OthersViewAccess}1{vtElse}0{vtEndIf}{vtIf:OthersUpdateAccess}1{vtElse}0{vtEndIf}{vtIf:OthersAddAccess}1{vtElse}0{vtEndIf}"}} {{vtIf: {vtGet:PageType} .eq. imagelist .and. {vtCountPages} .eq. 0 .and. {istKategorie} .eq.}} {{vtSet: UpdateViewType="1"}} {{vtEndIf}} {{vtEndUse}} {{vtIf: {vtGet:PageType} .eq. image }} {{vtUse: .. }} {{vtSet: ContainerVerzeichnis = "{Verzeichnis}" }} {{vtEndUse}} {{vtSelect: -origin="{vtGet:ID_Bilder}", -type="image", -filter="{Verzeichnis} .eq. {vtArg:Target_Path}, {vtName} .eq. {vtGet:Object_Name}" }} {{vtSet: Found = "{vtCountSelection}"}} {{vtEndSelect}} {{vtElse}} {{vtSet: ContainerVerzeichnis = "{Verzeichnis}" }} {{vtIf: {vtArg:Target_Path} .ew. / }} {{vtSet: Verzeichnis = "{vtArg:Target_Path}{vtGet:Object_Name}" }} {{vtElse}} {{vtSet: Verzeichnis = "{vtArg:Target_Path}/{vtGet:Object_Name}" }} {{vtEndIf}} {{vtSelect: -origin="{vtGet:ID_Bilder}", -type="imagelist", -filter="{Verzeichnis} .eq. {vtGet:Verzeichnis}" }} {{vtSet: Found = "{vtCountSelection}"}} {{vtEndSelect}} {{vtEndIf}} {{vtUse: .. }} {{vtIf: {vtCurrentAccessRights} .ncn. add }} {{vtReturn: ERROR-93 }} {{vtEndIf}} {{vtEndUse}} {{vtIf: {vtGet:Found} .gt. 0 }} {{vtReturn: ERROR-09 }} {{vtEndIf}} {{vtIf: {vtGet:ContainerVerzeichnis} .neq. - }} ## Low-res verschieben ## {{vtIf: {vtGlobal:pxtcLocalAccess} .eq. direct .or. {vtFtpCheck} .neq. 1 }} {{vtCalc: rename( '{vtGlobal:pxtcPathLores}{vtArg:Object_Path}', '{vtGlobal:pxtcPathLores}{vtArg:Target_Path}/{vtGet:Object_Name}' ) ? 1 : 0 }} {{vtIf: {vtResult} .eq. 0 }} {{vtReturn: ERROR-13 {vtGlobal:pxtcPathLores}{vtArg:Object_Path} -> {vtArg:Target_Path}/{vtGet:Object_Name} }} {{vtEndIf}} {{vtElse}} {{vtSet: Target = "{vtGet:ftpBasePath}/{vtGlobal:pxtcPathLores}{vtArg:Target_Path}" }} {{vtDo: -act="ftp", -cmd="mkdir", -remote="{vtGet:Target,raw}", -recursive="1" }} {{vtIf: {vtResult} .lt. 0 }} {{vtReturn: ERROR-11 ({vtResult}) }} {{vtEndIf}} {{vtSet: Source = "{vtGet:ftpBasePath}/{vtGlobal:pxtcPathLores}{vtArg:Object_Path}" }} {{vtDo: -act="ftp", -cmd="rename", -remote="{vtGet:Source,raw}", -new="{vtGet:Target,raw}/{vtGet:Object_Name,raw}" }} {{vtIf: {vtResult} .lt. 0 }} {{vtReturn: ERROR-12 ({vtResult}) }} {{vtEndIf}} {{vtEndIf}} ## High-res verschieben ## {{vtCalc: file_exists( '{vtGlobal:pxtcPathHires}/{vtArg:Object_Path}' ) ? '1' : '0' }} {{vtIf: {vtResult} .eq. 1 }} {{vtIf: {vtGlobal:pxtcLocalAccess} .eq. direct .or. {vtFtpCheck} .neq. 1 }} {{vtCalc: mkdir( '{vtGlobal:pxtcPathHires}{vtArg:Target_Path}', 0777, TRUE ) }} {{vtCalc: chmod( '{vtGlobal:pxtcPathHires}{vtArg:Target_Path}', 0777 ) }} {{vtCalc: rename( '{vtGlobal:pxtcPathHires}{vtArg:Object_Path}', '{vtGlobal:pxtcPathHires}{vtArg:Target_Path}/{vtGet:Object_Name}' ) ? 1 : 0 }} {{vtIf: {vtResult} .eq. 0 }} {{vtCalc: rename( '{vtGlobal:pxtcPathLores}{vtArg:Target_Path}/{vtGet:Object_Name}', '{vtGlobal:pxtcPathLores}{vtArg:Object_Path}' ) }} {{vtReturn: ERROR-23 {vtGlobal:pxtcPathHires}{vtArg:Object_Path} -> {vtArg:Target_Path}/{vtGet:Object_Name} }} {{vtEndIf}} {{vtElse}} {{vtSet: Target = "{vtGet:ftpBasePath}/{vtGlobal:pxtcPathHires}{vtArg:Target_Path}" }} {{vtDo: -act="ftp", -cmd="mkdir", -remote="{vtGet:Target,raw}", -recursive="1" }} {{vtIf: {vtResult} .lt. 0 }} {{vtReturn: ERROR-21 ({vtResult}) }} {{vtEndIf}} {{vtSet: Source = "{vtGet:ftpBasePath}/{vtGlobal:pxtcPathHires}{vtArg:Object_Path}" }} {{vtDo: -act="ftp", -cmd="rename", -remote="{vtGet:Source,raw}", -new="{vtGet:Target,raw}/{vtGet:Object_Name}" }} {{vtIf: {vtResult} .lt. 0 }} {{vtReturn: ERROR-22 ({vtResult}) }} {{vtEndIf}} {{vtEndIf}} {{vtEndIf}} ## Thumbnail verschieben ## {{vtIf: {vtGlobal:pxtcLocalAccess} .eq. direct .or. {vtFtpCheck} .neq. 1 }} {{vtCalc: mkdir( '{vtGet:thumbnailPath}{vtArg:Target_Path}', 0777, TRUE ) }} {{vtCalc: chmod( '{vtGet:thumbnailPath}{vtArg:Target_Path}', 0777 ) }} {{vtCalc: rename( '{vtGet:thumbnailPath}{vtArg:Object_Path}', '{vtGet:thumbnailPath}{vtArg:Target_Path}/{vtGet:Object_Name}' ) }} {{vtElse}} {{vtSet: Target = "{vtGet:ftpBasePath}/data/pixtacy_thumbnails{vtArg:Target_Path}" }} {{vtDo: -act="ftp", -cmd="mkdir", -remote="{vtGet:Target,raw}", -recursive="1" }} {{vtSet: Source = "{vtGet:ftpBasePath}/data/pixtacy_thumbnails{vtArg:Object_Path}" }} {{vtDo: -act="ftp", -cmd="rename", -remote="{vtGet:Source,raw}", -new="{vtGet:Target,raw}/{vtGet:Object_Name}" }} {{vtEndIf}} {{vtEndIf}} ## Datensatz verschieben und aktualisieren {{vtDo: -act="move", -obj="{vtArg:Object_ID}", -target="{vtArg:Target_ID}", -force="1" }} {{vtIf: {vtGet:PageType} .eq. image }} {{vtIf: {vtGet:ContainerVerzeichnis} .eq. - }} {{vtDo: -act="update", -obj="{vtArg:Object_ID}", -properties[accessRights]="{vtGet:AccessRights}", -properties[userID]="{vtGet:UserID}" }} {{vtElse}} {{vtDo: -act="update", -obj="{vtArg:Object_ID}", Verzeichnis="{vtArg:Target_Path}", -properties[accessRights]="{vtGet:AccessRights}", -properties[userID]="{vtGet:UserID}" }} {{vtEndIf}} {{vtElseIf: {vtGet:ContainerVerzeichnis} .neq. - }} {{vtDo: -act="update", -obj="{vtArg:Object_ID}", Verzeichnis="{vtGet:Verzeichnis}" }} {{vtCalc: strlen( '{vtArg:Object_Path,escaped}' ) }} {{vtSet: Length}} {{vtSet: Query = " UPDATE {vtDbTable:data_image} d, {vtDbTable:content} c SET d.`verzeichnis` = CONCAT( '{vtGet:Verzeichnis,escaped}', SUBSTR( `verzeichnis`, {vtGet:Length} + 1 ) ) WHERE c.`id`= d.`vtid` AND SUBSTR( d.`verzeichnis`, 1, {vtGet:Length} ) = '{vtArg:Object_Path,escaped}' AND ( c.`containerID` = {vtArg:Object_ID} OR c.`path` LIKE '%,{vtArg:Object_ID},%' ) " }} {{vtDBQuery: {vtGet:Query} }} {{vtSet: Query = " UPDATE {vtDbTable:data_imagelist} d, {vtDbTable:content} c SET d.`verzeichnis` = CONCAT( '{vtGet:Verzeichnis,escaped}', SUBSTR( `verzeichnis`, {vtGet:Length} + 1 ) ) WHERE c.`id`= d.`vtid` AND SUBSTR( d.`verzeichnis`, 1, {vtGet:Length} ) = '{vtArg:Object_Path,escaped}' AND ( c.`containerID` = {vtArg:Object_ID} OR c.`path` LIKE '%,{vtArg:Object_ID},%' ) " }} {{vtDBQuery: {vtGet:Query} }} {{vtIf: {vtGet:UpdateViewType} .eq. 1}} {{vtDo: -act="update", -obj="{vtArg:Target_ID}", istKategorie="1"}} {{vtEndIf}} {{vtEndIf}} {{vtReturn: 1 }} {{vtEndFunction}} {{vtEndScript}}