Seite 1 von 1

Eingeloggten Redakteur ermitteln

Verfasst: Fr 4. Jan 2019, 11:14
von Revilo
Guten Tag we-Experten,
ich würde gerne den eingeloggten webEdition-Benutzer mit dem Hauptbesitzer eines Dokuments abgleichen, damit ich ihm per listview alle Dokumente anzeigen lassen kann, die von ihm erstellt wurden. Den Hauptbesitzer eines Dokuments (ID) würde ich so ermitteln:

Code: Alles auswählen

<?php echo $GLOBALS['we_doc']->CreatorID ?>
bzw. so (username), was bisher mit type="username" leider nicht funktioniert hat (type="name" usw. hingegen schon):

Code: Alles auswählen

<we:listview type="document" name="myDocs" order="we_moddate" desc="true">
	<table>
		<tr>
			<th>Dokument</th>
			<th>Zuletzt bearbeitet</th> 
		</tr>
		<we:repeat>
			<we:author creator="true" doc="listview" type="username" />
			<tr>
				<td><we:field type="text" name="we_title" alt="we_path" hyperlink="true"/></td>
				<td><we:field type="date" name="we_moddate" format="d. F Y" /></td>
			</tr>
		</we:repeat>
	</table>
</we:listview>
Nun meine Frage:
Gibt es eine Möglichkeit mithilfe von we:tags den eingeloggten webEdition-Benutzer zu ermitteln (ID oder username)? Wenn nicht, gibt es eine alternative Lösung?

Mit freundlichen Grüßen
Oliver

Re: Eingeloggten Redakteur ermitteln

Verfasst: Fr 4. Jan 2019, 11:48
von mokraemer
Also grundsätzlich lassen sich die Daten des Erstellers mittels <we:author> ausgeben. In der Liste fehlt allerdings tatsächlich die ID - gibt nur den Username (und da war ein Typo drin - ist in der nightly 8.0.5.1 ab 9811 korrigiert). Hatte wohl noch keiner das Problem.
Auch hat sich bisher noch keiner wirklich für die ID des eingeloggten Users interessiert, denn auch dafür haben wir keine Tag-Ausgabe. Du kommst mittels

Code: Alles auswählen

$_SESSION['user']['ID']
an den eingeloggten User.

Re: Eingeloggten Redakteur ermitteln

Verfasst: Fr 4. Jan 2019, 12:24
von Revilo
Guten Tag mokraemer,
danke für die schnelle Antwort! Das hilft mir weiter!

Mit freundlichen Grüßen
Oliver

Re: Eingeloggten Redakteur ermitteln

Verfasst: Fr 4. Jan 2019, 14:58
von Revilo
Nun stehe ich wieder vor einem Problem.
Und zwar möchte ich ja gerne den eingeloggten webEdition-Benutzer mit dem Hauptbesitzer eines Dokuments abgleichen, damit ich ihm per listview alle Dokumente anzeigen lassen kann, die von ihm erstellt wurden.
Allerdings gibt mir der Code:

Code: Alles auswählen

<?php $loggedInUserID = $_SESSION['user']['ID'] ?>
<we:setVar to="global" nameto="loggedInUserID" value="$loggedInUserID" />

<we:listview type="document" name="myDocs" order="we_moddate" desc="true">
	<table>
		<tr>
			<th>Dokument</th>
			<th>Zuletzt bearbeitet</th> 
		</tr>
		<we:repeat>
			<?php $creatorID = $GLOBALS['we_doc']->CreatorID ?>
			<we:setVar to="global" nameto="creatorID" value="$creatorID" />
			<?php echo $creatorID ?>
			<we:comment><we:ifVar match="creatorID" name="loggedInUserID" type="global"></we:comment>
				<tr>
					<td><we:field type="text" name="we_title" alt="we_path" hyperlink="true"/></td>
					<td><we:field type="date" name="we_moddate" format="d. F Y" /></td>
				</tr>
			<we:comment></we:ifVar></we:comment>
		</we:repeat>
	</table>
</we:listview>
nicht für jedes listview-Dokument die ID des Hauptbesitzers aus, sondern lediglich pro listview-Dokument immer wieder die ID des Hauptbesitzers des Dokuments, in welchem sich die listview befindet.

Ich freue mich auf eine Antwort!

Mit freundlichen Grüßen
Oliver

Re: Eingeloggten Redakteur ermitteln

Verfasst: Sa 5. Jan 2019, 13:06
von mokraemer
also wenn du nur die Doks des Benutzers anzeigen willst, solltest du der listview das als Condition mitgeben, sonst dauert die Abfrage ja ewig.

Re: Eingeloggten Redakteur ermitteln

Verfasst: Mo 7. Jan 2019, 10:48
von Revilo
Mit dem we-Condition Tag geht das aber nicht oder sehe ich das falsch?
Wie sähe denn eine php Condition aus, wenn ich die Eigenschaft CreatorID jedes Dokuments mit meiner $loggedInUserID vergleichen möchte?

EDIT:
Denkfehler.. mit

Code: Alles auswählen

<we:condition name="docFilter">
	<we:conditionAdd field="we_creatorid" type="global" var="loggedInUserID" />
</we:condition>
funktioniert alles. Danke nochmal mokraemer!

Mit freundlichen Grüßen
Oliver