Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:im_gettemplates_pu

im_GetTemplates_Pu

Sucht für ein Element des Artikelbaums alle Templates zu einem „Source“-Template für eine bestimmte Sprache heraus. Wird kein Template zum angegebenen „Source“-Template gefunden, wird versucht, Templates zum Default-Source-Template (das die ID „0“ hat) zu ermitteln.

Optional können nur die Templates gesucht werden, die in einem bestimmten Bereich, sprich „Frame“ geladen werden sollen (typisch für Web-Applikationen).

Alternativ können auch die Templates zu einer „NodeID“ (ID eines Artikel-Elementes) oder zu einer Artikelnummer (d.h. einer Eigenschaft zum Merkmal mit der „NodeCharacteristicID“ „6“) ermittelt werden. Da es zu einer „NodeID“/Artikelnummer prinzipiell MEHRERE „TreeNodeID“s geben kann, wird die kleinste, aktive ID eines Elementes des Artikelbaums gewählt, die zur „NodeID“ korrespondiert bzw. die die angegebene Artikelnummer als Eigenschaft besitzt.

Sollte es für das Element keine direkt zugewiesenen Templates geben, werden die Templates des „Erblassers“ („InheritsFrom“-Spalte in der Tabelle „TreeView“) ermittelt. Sollte dieser auch keine Templates zugewiesen haben, versucht es die Prozedur beim nächsten „Erblasser“-Element usw. Im Gegensatz zum Vererbungs-Prinzip bei Eigenschaften bricht dieser Prozeß aber ab, sobald mindestens EIN Template gefunden wurde !

Hinweis:
Allgemein wird im „dStore“ unter einem Template einfach eine Datei verstanden, die (in was für einer Programmier-Sprache auch immer) Anweisungen (für die Client-Applikation) enthält, was für Informationen (zu einem „Element“) dargestellt werden sollen und wie das Layout aussehen soll (wie z.B. eine Produktansicht).
Die Datei wird immer in einem Fenster („Frame“) und zu einem „Source-Template“ geladen. Mit Source-Template ist eine Art „Kontext“ gemeint, unter der ein „Element“ angezeigt wird. Z.B. soll die Produktansicht eines Artikel-Elementes in einem Suchergebnis anders sein als in der „Normalansicht“.
Derzeit kommen „Templates“ nur im „Item Management“, genauer für „TreeNodeID“s (Elemente des Artikelbaums), zum Einsatz, allerdings ist das Konzept der Templates nicht von vornherein darauf beschränkt, sondern kann evtl. in zukünftigen „dStore“-Versionen auch noch in anderen Modulen zum Einsatz kommen.

HTTP-MethodGET
HTTP-AuthOptional
Tags
Engine-Kategorieitem management
Engine-TypDaten-Ermittlung
Letzte Aktualisierung5.1.1 (2006-04-05)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
Parameter Element, zu dem die zugewiesenen Templates ermittelt werden sollen. Enthält je nach „Type“ entweder die ID eines Artikelelementes („NodeID“) oder eines Elementes des Artikelbaums („TreeNodeID“) oder eine Artikelnummer.
varchar(100)3.5.0
Type'TreeNodeID' Gibt an, was in „Parameter“ enthalten ist.
'TreeNodeID' : ID eines Elementes des Artikelbaums
'NodeID' : ID eines Artikelelementes
'Artikelnummer' / 'ItemNo' : Eine Eigenschaft zum Merkmal mit der „NodeCharacteristicID“ „6“
varchar(20)3.5.0
LanguageIDNULL ID einer Sprache, die das Template unterstützen soll
tinyint3.5.0
SourceTemplateID0 ID eines „SourceTemplates“. Damit ist eine Art „Kontext“ gemeint, unter dem das Artikelelement angezeigt wird; z.B. soll die Produktansicht aus einem Suchergebnis heraus anders sein als in der „Normalansicht“.
smallint3.5.0
FrameNameNULL Optionale Einschränkung der Ausgabemenge auf Templates, die nur in einem bestimmten Bereich, sprich „Frame“, geladen werden sollen (z.B. in Web-Anwendungen relevant)
varchar(100)3.5.0

Rückgabe

(parameterunabhängig)

Spaltenname Beschreibung SQL-Datentyp4) ab Version
TemplateIDID des gefundenen Templates
integer3.5.0
DescriptionBezeichnung des gefundenen Templates
varchar(100)3.5.0
LanguageIDID der Sprache, für die das Template gilt
integer3.5.0
FrameNameBezeichnung des „Frames“ (oder auch : des „Fensters“), in der das Template geladen wird (also eine Einstellung, die eher an Web-Applikationen gedacht ist)
varchar(30)3.5.0
FileNameDateiname des Templates (in dem quasi der Source-Code des Templates gespeichert ist)
varchar(100)3.5.0
IsRealTimeTemplateFalls diese Spalte den Wert „1“ enthält, kann das Ergebnis der Ausführung des Templates NICHT ge„cache“t werden, d.h. alle verwendeten Prozeduraufrufe MÜSSEN bei jedem erneuten Laden des Templates ausgeführt werden.
bit3.5.0
TreeNodeIDDie ID des Elementes des Artikelbaums, das zum Wert in „Parameter“ korrespondiert, zu dem also die Templates ermittelt wurden. (Falls „Type = 'TreeNodeID' steht hier natürlich das gleiche wie in „Parameter“ !)
integer3.5.0
NodeIDID des zur „TreeNodeID“ korrespondierenden Artikel-Elementes
integer3.5.6

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 5)
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur indirekt
-550Fehlender oder falscher Eintrag in Settingsnur indirekt
-500Falsche Parameternur direkt

XML-Schema

Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.

Historie

5.1.1 2006-04-051. Optimierung des Zugriffs auf „NodeProperties“ (bedingt durch die Änderung dieser Tabelle in 5.1.0)
2. Konsequente Fehlerbehandlung
4.0.1 2003-05-16Ab jetzt wird berücksichtigt, daß in „NodeProperties“ auch Gültigkeitszeiträume in der Zukunft vorhanden sein können !
3.5.18 2002-05-15
3.5.6 2001-04-17
3.5.4 2001-03-11
3.5.0 2000-11-23Erstmalig in dieser Version erstellt

Code-Snippets

Engine Playground

Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:

cURL

Unformatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/im_GetTemplates_Pu?Parameter=<value>'

Mit xmllint 6) formatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/im_GetTemplates_Pu?Parameter=<value>' | xmllint --format -
dStore_php
use dStore_php\WebService;
 
$service = new WebService\Service( WebService\Scheme::HTTP,'<partner>-<project>.dstore.de', 80);
 
$request = new WebService\Requests\Engine\Procedure\Request(
			new WebService\Requests\AccessData('default'),
	'im_GetTemplates_Pu',
		array(
			'Parameter' => '<value>',
			// 'Type' => 'TreeNodeID',
			// 'LanguageID' => NULL,
			// 'SourceTemplateID' => 0,
			// 'FrameName' => NULL
		)
);
 
$service->execute($request);
 
			$xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument();
			$ResultSet = $xml_result->getRowsAsArray();
engine/execute

XML zur Ausführung mit der Methode engine/execute, z.B. per

curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>'
<?xml version="1.0" encoding="UTF-8"?>
<ListOfBatches>
	<Batch No="0">
		<Procedure Name="im_GetTemplates_Pu">
			<Parameters>
				<Parameter Name="Parameter"><!-- varchar value --></Parameter>
				<!-- <Parameter Name="Type">'TreeNodeID'</Parameter> -->
				<!-- <Parameter Name="LanguageID">NULL</Parameter> -->
				<!-- <Parameter Name="SourceTemplateID">0</Parameter> -->
				<!-- <Parameter Name="FrameName">NULL</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
5)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
6)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/im_gettemplates_pu.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)