Zustände (Object states) debuggen

04.11.2011 | eZ Publish

Zustände sind ein neues Konzept zur Rechtevergabe, eingeführt mit eZ 4.2. Sie werden im Setup->Zustände eingerichtet. Danach können die Zustände den Contentnodes zugewiesen werden (linke Spalte) und im Rollenkonzept entsprechende Rechte vergeben werden.

Detaills gibts hier

Problematisch: wenn man die states in einem Fetch abfragen muß, z.B. für die xml-Sitemap. Angeblich soll das über einen attribute-filter möglich sein. Unklar ist aber, was genau abgefragt wird (ist die Abfrage attribute_filter, array(array('state', 'in', array(1,2,3,)) gleichbedeutend mit der Abfrage and(array('state', '=', 1 ), array('state','=', 2), etc...?

'attribute_filter', array( array( 'state', 'in', array(3,4,5,6,7) )),

Folgende Variablen kann man sich im Template ausgeben lassen:

<h2>Zustände</h2>
{$node.object.state_identifier_array|attribute('show')}<br/>
{$node.object.state_identifier_array.0}<br/>
{*$node.object|attribute('show')*}

Die Ausgabe sieht (efn-Projekt mit 5 custom states) so aus:

Zustände

Attribute

Type

Value

0

string

'anonym/bo_yes'

1

string

'archiviert/nein'

2

string

'bo_alumnus/bo_yes'

3

string

'bo_member/bo_yes'

4

string

'bo_stipendiat/bo_no'

5

string

'ez_lock/not_locked'

&nbsp;&nbsp;anonym/bo_yes

Es wäre also im Template eine Abfrage nach

eq($node.object.state_identifier_array.0, 'anonym/bo_yes') 

möglich, um festzustellen, ob das Contentobjekt für anonyme User freigegeben ist.

Weiter Infos und Möglichkeiten hier:&nbsp; eZ Publish Knowledge Series: Editorial workflow with Object States