Seite 1 von 1

<we:categorySelect> im Backend

Verfasst: Mo 8. Okt 2018, 13:04
von eSKa
Meine webEdition-Version: 8.0.3

Hallo zusammen,

ich hätte da mal eine Frage, da ich mir nicht wirklich erklären kann, wie das funktionieren soll.
Vielleicht sehe ich auch nur den Wald auch vor lauter ... usw.

Ich habe in der Dokumentation folgendes Beispiel zum Tag <we:categorySelect> gefunden
Auswahl/Filter Kategorien für listview

Code: Alles auswählen

<we:form id="self">
  Kategorie:<br>
  <we:categorySelect name="category" type="request" showpath="true" onchange="this.form.submit()">
  </we:categorySelect>
</we:form>
<we:setVar from="request" to="global" namefrom="category" nameto="mycategory"/>
Weiter steht dort
Wenn das Attribut "name" nicht gesetzt ist, dann wird categorySelect zum Auswählen einer Kategorie beim Anlegen bzw. Editieren eines webEdition-Dokuments oder Objekts benutzt.
Ich würde die Funktion gerne im Backend verwenden, damit der Redakteur eine Kategorie für eine Listview auswählen kann.
Bzw. würde ich diese Funktion in einen <we:block> setzen, damit mehrere listviews hintereinander mit verschieden Kategorien gelistet werden können.

Der Code oben funktioniert so im Backend nicht. Besonders das "nicht setzen" des Attributes "name" macht es mir natürlich unmöglich, auf die gewählte Kategorie für das listview-Tag zuzugreifen.

ich hoffe, mein Problem ist jetzt überhaupt klar geworden.

Generell die Frage: Ist das Tag <we:categorySelect> zur Verwendung im Backend in Verbindung im <we:block> überhaupt geeignet?

Ich bin für jeden Tipp dankbar und in diesem Fall schon für das Lesen des ganzen Textes.

Re: <we:categorySelect> im Backend

Verfasst: Mo 8. Okt 2018, 15:44
von eSKa
Kurzer Nachtrag:

Mit folgendem Schnipsel kann ich im Backend die Kategorien zumindest händisch eintragen und diese werden auch für die listview berücksichtigt.
Eine verwendbare Auflistung der Kategorien per DropDown, weder per listview type=category (es werden keine Pfade angezeigt), noch per we:categorySelect (werden nicht übernommen), habe ich leider noch nicht erreichen können

Code: Alles auswählen

<we:block name="MyPartnerList">
<we:ifEditmode><we:input type="text" name="cat"/></we:ifEditmode>
<we:setVar from="block" to="global" namefrom="cat" nameto="mycategory" />
<we:listview type="object" classid="4" name="Sponsoren" categories="\$mycategory" order="SortierungSponsor">
[...]

Re: <we:categorySelect> im Backend

Verfasst: Do 11. Okt 2018, 10:42
von haydi
Huhuu,

also mit

Code: Alles auswählen

<we:categorySelect name="mycat" multiple="false" />
werden die Kategorien auswählbar gemacht für den Redakteur im Backend. Jedoch ist es eigentlich so gedacht, dass man mit diesem Wert dann etwas im Frontend ausführt. Also bspw. eine Listview im Frontend ausgibt...

Code: Alles auswählen

<we:ifEditmode>
<we:categorySelect name="mycat" multiple="false" />
<we:else />
<we:categorySelect name="mycat" to="global" nameto="mycategory" />
<we:listview type="object" classid="4" name="Sponsoren" categories="\$mycategory" order="SortierungSponsor">
</we:ifEditmode>
Hilft das?

ciao
heidi

Re: <we:categorySelect> im Backend

Verfasst: Do 11. Okt 2018, 11:29
von eSKa
Hallo haydi,

vielen Dank für deine Antwort.
Ja, soweit konnte ich mich auch schon durchwurschteln.

Das Einzige, was gar nicht funktioniert, ist die Verwendung im we:block. Sobald eine 2. we:block-Zeile geöffnet wird und eine Kategorie ausgewählt wird, ändert sich die Auswahl in der 1. Zeile mit um.
Hier muss man wohl den Namen des categorySelect manipulieren.
Aufgrund von Zeitmangel kam ich hier aber leider noch nicht weiter.

Danke :-)

Re: <we:categorySelect> im Backend

Verfasst: Do 11. Okt 2018, 11:41
von haydi
Oha, verstehe. Wobei, verstehe ich nicht. Müsste doch dennoch funktionieren. Denn in der Ausgabe arbeitet man ja wieder mit dem we:block außenrum....
Aber egal.
Wenn das tatsächlich ein Issue sein sollte, dann kannst du ja mit Arrays arbeiten...

Code: Alles auswählen

<we:categorySelect name="mycat" to="global" nameto="mycategory[]" />
und dann bei der listview kannste dann ....

Code: Alles auswählen

<we:block name="xy">
<we:categorySelect name="mycat" to="global" nameto="mycategory[]" />
<we:position .... to="global" nameto="mypos" />
<?php 
$tmpMyCatId = $GLOBALS['mycategory'][$GLOBALS['mypos']-1]; /* sorry für php, geht bestimmt anders :) */
?>
<we:listview type="object" classid="4" name="Sponsoren" categories="$tmpMyCatId" order="SortierungSponsor">
</we:block>
Nicht getestet; syntaxfehler möglich ... Nur so als Idee-Ansatz.

ciao
heidi

Re: <we:categorySelect> im Backend

Verfasst: Do 11. Okt 2018, 12:31
von eSKa
... das scheint mir ein guter Ansatz zu sein. Werde ich mal ausprobieren.

Danke :-)

Re: <we:categorySelect> im Backend

Verfasst: Do 11. Okt 2018, 12:33
von eSKa
Oha, verstehe. Wobei, verstehe ich nicht. Müsste doch dennoch funktionieren. Denn in der Ausgabe arbeitet man ja wieder mit dem we:block außenrum....
Das dachte ich auch. Die Praxis zeigte (bei mir zumindest) allerdings ein anderes Ergebnis