{{vtScript}} ### Diese Funktion legt zu einem Bilderordner eine neue Bilderserie in Pixtacy an. ### PARAMETER: ### Dir: relativer Pfad zum Bilderordner auf dem Server (mit Schrägstrich am Anfang) ### PagePath: Seitenpfad zum obersten Bilderordner 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 ### Products: Liste der Produkte, die zugeordnet werden sollen ### GLOBALE VARIABLEN: ### ID_Home: Seiten-ID der Startseite ### ID_Bilder: Seiten-ID der Seite "Bilder" ### thumbnailURL: relativer 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}/{vtName}"}} {{vtEndUse}} {{vtEndIf}} {{vtIf: {vtArg:Dir} .eq. / }} {{vtSet: folder=""}} {{vtSet: pfad="{vtGlobal:pxtcPathLores}/"}} {{vtElse}} {{vtCalc: substr( '{vtArg:Dir}', 1 ) }} {{vtSet: folder}} {{vtSet: pfad="{vtGlobal:pxtcPathLores}/{vtGet:folder}/"}} {{vtEndIf}} {{vtCalc: getFileInfo('{vtGet:pfad}', '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: {vtGet:userSetting} .in. 0|-1 }} {{vtElse}} {{vtIf: {vtSession:import_download_allowed} .eq. 1}} {{vtSet: DownloadAllowed="1"}} {{vtElse}} {{vtSet: DownloadAllowed="{vtGlobal:pxtcDownloadAllowed}"}} {{vtEndIf}} {{vtEndIf}} {{vtCalc: basename( '{vtGet:folder,escaped}' ) }} {{vtSet: foldername}} {{vtCalc: dirname( '{vtGet:folder,escaped}' ) }} {{vtIf: {vtResult} .neq. . }} {{vtSet: parent}} {{vtElse}} {{vtSet: parent=""}} {{vtEndIf}} {{vtSet: DownloadAllowed="{vtArg:DownloadAllowed}"}} {{vtSet: Products="{vtArg:Products}"}} {{vtUse: {vtGet:PagePath}/{vtGet:parent} }} {{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}} {{vtSet: Products="{Produkte}"}} {{vtEndIf}} {{vtEndIf}} {{vtEndUse}} {{vtCalc: mkdir('{vtGet:thumbnailURL}') }} {{vtCalc: chmod('{vtGet:thumbnailURL}',0777) }} {{vtCalc: mkdir('{vtGet:thumbnailURL}/{vtGet:folder}') }} {{vtCalc: chmod('{vtGet:thumbnailURL}/{vtGet:folder}',0777) }} {{vtDo: -act="create", -template="imagelist", -target="{vtGet:ParentID}", Titel="{vtGet:foldername}", Verzeichnis="{vtArg:Dir}", token="{vtGet:token}", DownloadAllowed="{vtGet:DownloadAllowed}", Produkte="{vtGet:Products}", Sortierfeld="name", 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 zum obersten Bilderordner 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" ### thumbnailURL: relativer 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}' ) }} {{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: basename('{vtGet:ImagePath}') }} {{vtSet: FileName}} {{vtCalc: getImageOrientation( '{vtGet:ImagePath,escaped}', 0.01 ) }} {{vtSet: Format}} {{vtCalc: makeThumbnail('{vtGet:ImagePath}','{vtGet:thumbnailURL}{vtArg:Path}') }} {{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 }} {{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}", -properties[name]="{vtGet:FileName}", -properties[protected]="1" }} {{vtReturn: {vtResult} }} {{vtEndFunction}} ### Diese Funktion importiert alle neuen Bilddateien zu einer bestehenden Bilderserie. ### PARAMETER: ### Imagelist: ID oder Seitenpfad der Bilderserie ### IsEmpty: Kennzeichen, ob Bilderserie mit Sicherheit leer ist (1); erspart zusätzliche Prüfung ### PagePath: Seitenpfad zum obersten Bilderordner 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" ### thumbnailURL: relativer 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},{vtDBField:name}"}} {{vtEndDBLoop}} {{vtEndDBSelect}} {{vtEndIf}} {{vtSet: istKategorie="{istKategorie}"}} {{vtSet: pfad="{vtGlobal:pxtcPathLores}/{Verzeichnis}/"}} {{vtCalc: getFileList( '{vtGet:pfad}', '^.+\.(jpg|JPG)$' ) }} {{vtIf: {vtResult} .neq. -1 }} {{vtRepeat: {vtResult} }} {{vtIf: {vtItem} .nin. {vtGet:ExistingImages} }} {{vtSet: istKategorie=""}} {{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}} {{vtEndScript}}