Kategorien Multiselect

Fragen zu den Grundfunktionen der webEdition Oberfläche wie Backup, Import, ...
Fragen zu we:Tags bitte im Forum "Templates erstellen"
maurus.g
Junior Member
Beiträge: 23
Registriert: Do 8. Mär 2018, 14:15

Kategorien Multiselect

Beitragvon maurus.g » Sa 1. Mai 2021, 10:10

Guten Tag,

besteht die Möglichkeit für den Redakteur, mehrere Kategorien im Eigenschaften Bereich der Seite hinzuzufügen? Ich meine damit, dass er im Fenster mit gedrückter CMD Taste mehrere Kategorien auswählen kann? Bei mir mit Mac funktioniert das einfach nicht.

Eine andere Frage wäre, ob es irgend eine Möglichkeit gibt, die Kategorien im BEARBEITEN Fenster darzustellen, (evtl. in einem Overlay) um dort mehrere Kategorien auszuwählen.

Danke für Tipps

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Kategorien Multiselect

Beitragvon mokraemer » Sa 1. Mai 2021, 11:18

webEdition-Kern-Entwickler

NilSole
Senior Member
Beiträge: 303
Registriert: Mi 27. Mär 2019, 15:28

Re: Kategorien Multiselect

Beitragvon NilSole » Sa 1. Mai 2021, 19:43

Für die 2. Frage könnte evtl https://www.webedition.org/de/dokumenta ... z/category mit dem Attribut name infrage kommen.

maurus.g
Junior Member
Beiträge: 23
Registriert: Do 8. Mär 2018, 14:15

Re: Kategorien Multiselect

Beitragvon maurus.g » So 2. Mai 2021, 18:23

mokraemer hat geschrieben: Sa 1. Mai 2021, 11:18 schau mal
https://qa.webedition.org/tracker/view.php?id=12660
Ich hab für die Seite leider keinen Zugang :-(

NilSole
Senior Member
Beiträge: 303
Registriert: Mi 27. Mär 2019, 15:28

Re: Kategorien Multiselect

Beitragvon NilSole » So 2. Mai 2021, 22:12

Hier kannst du dich anmelden.

https://qa.webedition.org/tracker/login_page.php

Wenn du mal auf einen Bug triffst, kannst du den da reporten. In dem Fall geht es um das von dir beschriebene Verhalten. Leider sind gerade wir Entwickler noch dabei, die das Doku-Wiki zu schreiben (Mithilfe erwünscht :wink: ).

maurus.g
Junior Member
Beiträge: 23
Registriert: Do 8. Mär 2018, 14:15

Re: Kategorien Multiselect

Beitragvon maurus.g » Mo 3. Mai 2021, 15:56

NilSole hat geschrieben: So 2. Mai 2021, 22:12 Hier kannst du dich anmelden.

https://qa.webedition.org/tracker/login_page.php

Wenn du mal auf einen Bug triffst, kannst du den da reporten. In dem Fall geht es um das von dir beschriebene Verhalten. Leider sind gerade wir Entwickler noch dabei, die das Doku-Wiki zu schreiben (Mithilfe erwünscht :wink: ).
Hallo Nil,

ich bin da glaub ich keine grosse Hilfe, da ich grad mal so schaffe, meine Seite am Laufen zu halten, coden oder sonstige Fähigkeiten sind mir fremd. Sorry.

Das mit dem <we:category> Tag hab ich soweit verstanden, dass ich auf der Seite Kategorien ausgeben kann, wie ich es im Bearbeiten Modus schaffe daraus ein Auswahl Tool zu machen, erklärt sich mir nicht. Wäre aber cool, wenn es einen Code Schnipsel geben würde.

Ich denke eine solche Funktion wäre super cool, da die meisten meiner Vereinskameraden die Eigenschaften und gar Kategorien nicht anschauen.

Danke und Grüsse aus der Schweiz

NilSole
Senior Member
Beiträge: 303
Registriert: Mi 27. Mär 2019, 15:28

Re: Kategorien Multiselect

Beitragvon NilSole » Mo 3. Mai 2021, 19:13

Wieso? Deine Schreibfähigkeit ist doch ok. Es geht in der Doku ja nicht darum, Algorithmen zu implementieren. Es soll lediglich ein webEdition Dokument angelegt werden, in deinem Fall ja auch zum Beispiel die Sache mit den Klassen im TinyEditor. Da reicht doch schon eine kleine Einleitung + funktionierendes Codebeispiel (Schnipsel), das findet man häufig auch im Forum.

Vielleicht schaue ich später mal, ob ich dir ein konkretes Beispiel für die Kategorien zeigen kann.

maurus.g
Junior Member
Beiträge: 23
Registriert: Do 8. Mär 2018, 14:15

Re: Kategorien Multiselect

Beitragvon maurus.g » Mo 3. Mai 2021, 19:18

Hallo Nilsole

jetzt bin ich doch auf den Geschmack gekommen, eine Lösung zu finden.

Laut Beschreibung des Tags we:categorySelect sollte es ja so einfach sein.
Den Code einbauen und schauen was passiert.

Code: Alles auswählen

<we:categorySelect firstentry="Kategorie auswählen" multiple="true" name="we_ui__categories[]"></we:categorySelect>
Im Bearbeiten Modus wird die Box angezeigt, ich kann auswählen, aber nach dem Speichern sind keine Kategorien gesetzt.
Bildschirmfoto 2021-05-03 um 19.14.15.png
Bildschirmfoto 2021-05-03 um 19.14.15.png (19.32 KiB) 3781 mal betrachtet
Laut Beschreibung zum Tag sollte der Eintrag name sein, aber leer, dies wirft eine Fehlermeldung aus. Somit hab ich den Wert wie oben gesetzt, trotzdem kein Eintrag.

Wie weit bin ich von einer Lösung entfernt?

Maurus

NilSole
Senior Member
Beiträge: 303
Registriert: Mi 27. Mär 2019, 15:28

Re: Kategorien Multiselect

Beitragvon NilSole » Mo 3. Mai 2021, 21:41

Hmm, eventuell ist das Tag nicht wirklich getestet.

Eine Möglichkeit wäre es, das Slect aus einer Listview zu bauen... Kommt aber auch etwas darauf an, was du letztendlich vor hast.

Code: Alles auswählen

<we:listview type="category">
<we:ifFound>
	<we:select name="test" multiple="true">
		<we:repeat>
			<option value='<we:field name="we_id"/>'><we:field name="we_path"/></option>
		</we:repeat>
	</we:select>
	</we:ifFound>
</we:listview>

maurus.g
Junior Member
Beiträge: 23
Registriert: Do 8. Mär 2018, 14:15

Re: Kategorien Multiselect

Beitragvon maurus.g » Di 4. Mai 2021, 18:46

Hallo NilSole,

So wie du beschrieben hast kann ich mit we:category auf der BEARBEITENSEITE alle Kategorien anzeigen. // Soweit so gut.

Ich hätte jetzt geglaubt, dass ich nun die gewünschten Kategorien anklicken kann. (Funktioniert ja auch, zumindestens werden sie markiert) und wenn ich das Dokument speichere, sind diese Kategorien im Dokument gespeichert.

Hab ich das so richtig verstanden?

Grüsse aus der Schweiz.
Mauru

NilSole
Senior Member
Beiträge: 303
Registriert: Mi 27. Mär 2019, 15:28

Re: Kategorien Multiselect

Beitragvon NilSole » Mi 5. Mai 2021, 20:43

Hallo,

category mit Attribut name ist fast gleich mit categorySelect. Ich weiß nicht genau, was die beiden Tags mal bewirken sollten, scheinbar tun sie derzeit nichts, außer diesen Multiselektoren zu erzeugen.

Folglich wird da derzeit nichts gespeichert, ein Umweg mit setVar geht auch nicht. Mach doch mal einen Bug in https://qa.webedition.org dazu auf.

maurus.g
Junior Member
Beiträge: 23
Registriert: Do 8. Mär 2018, 14:15

Re: Kategorien Multiselect

Beitragvon maurus.g » Do 6. Mai 2021, 11:39

Danke für den Einsatz.

Wenn diese Tags so funktionieren würden, wie wir meinen, wäre das eine sehr grosse Hilfe.

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Kategorien Multiselect

Beitragvon WBTMagnum » Do 6. Mai 2021, 15:02

NilSole hat geschrieben: Mi 5. Mai 2021, 20:43category mit Attribut name ist fast gleich mit categorySelect. Ich weiß nicht genau, was die beiden Tags mal bewirken sollten, scheinbar tun sie derzeit nichts, außer diesen Multiselektoren zu erzeugen.
Hier mein Wissensstand dazu:

1. <we:category/>
Das Tag ist ursprünglich für das Frontend gedacht gewesen, um die einem Dokument zugeordneten Kategorien ausgeben zu können. Mit webEdition 6.3.9 bzw. 6.4.1 wurde die Möglichkeit geschaffen das Tag auch im Backend, im Bearbeiten-Tab zu nutzen. Dort werden allerdings auch nur die dem Dokument zugeordneten Kategorien angezeigt und über das Attribut "name" in einer Dokumentvariable gespeichert (nicht als Eigenschaft!!).
  • Test: In einer webEdition 8.0.6 Installation haben soeben sowohl Speichern als auch die Anzeige im Backend geklappt.
Code vom Test:

Code: Alles auswählen

<we:category name="assigned-categories" multiple="true" />

2. <we:categorySelect/>
Das Tag ist auch für die Nutzung im Frontend gedacht und soll die Auswahl einer oder mehrerer im System hinterlegter Kategorien im Frontend erlauben.
  • Test: In einer webEdition 8.0.6 Installation hat soeben die Anzeige aber nicht das Speichern im Backend geklappt.
  • Info: In der Tag-Referenz wird hier auch das Attribut "categoryidsPflichtfeld" erwähnt. Dabei handelt es sich meiner Ansicht nach um einen Fehler. Das gehört doch zur <we:listview/>.
Code vom Test:

Code: Alles auswählen

<we:categorySelect name="assign-category" multiple="true" indent="#" />

Vielleicht hilft das ja, etwas Klarheit in die Angelegenheit zu bringen. Das Thema hat ja schon öfters für Verwirrung gesorgt.


Liebe Grüße,
Sascha

Meg WF
Junior Member
Beiträge: 9
Registriert: Mo 17. Jun 2019, 16:00

Re: Kategorien Multiselect

Beitragvon Meg WF » Fr 7. Mai 2021, 09:16

Ich hab das schon umgesetzt:

We want to be able to assign categories to a we Document in the "Bearbeiten tab, not just in the Eigenschaften tab
I thought this would be possible with the <we:selectCategory> tag, but it is not (tag is for frontend use)
So I created a multi-select out of a <we:listview, to show all categories; and used <we:category to geht the current categories.
To save the new categories, I'm using two hooks, that are almost identical.

Template Code:

Code: Alles auswählen

<h3>Kategorie</h3>
<we:comment>Get the categories of the document (these are normaly set via the Eigenschaften Tab</we:comment>
<we:comment>Save categories with custom_hooks preSave and prePublish</we:comment>
<we:category field="ID" to="global" nameto="selected_cats"/>
<?php
$selected_cats = explode(',', $GLOBALS['selected_cats']);
?>
<select name="<?=$category_list_name?>" multiple="true" style="min-height: 495px;overflow: auto;padding: 2px;" onchange="_EditorFrame.setEditorIsHot(true);;">
    <we:listview type="category" name="catlv">
        <we:ifFound>
            <we:repeat>
                <we:field name="ID" to="global" nameto="catid"/>
                <option value="<we:field name="ID"/>" <?=in_array($GLOBALS['catid'], $selected_cats) ? 'selected="selected"':'';?>>
                    <we:field name="Title"/>
                </option>
                <we:listview type="category" name="subcatlv" parentid="\$catid">
                    <we:ifFound>
                        <we:repeat>
                            <we:field name="ID" to="global" nameto="subcatid"/>
                            <option value="<we:field name="ID"/>" <?=in_array($GLOBALS['subcatid'], $selected_cats) ? 'selected="selected"':'';?>>
                                &nbsp;&nbsp; &#129170; <we:field name="Title"/>
                            </option>
                        </we:repeat>
                    </we:ifFound>
                </we:listview>
            </we:repeat>
        </we:ifFound>
    </we:listview>
</select>
Hook weCustomHook_preSave.inc.php:

Code: Alles auswählen

function weCustomHook_preSave($param){
    global $GLOBALS;
    $hookHandler = $param['hookHandler'];
    $resave = $param['resave'];
    $obj = $param[0];

    switch(get_class($obj)){
        case 'we_webEditionDocument':
            if( $obj->TemplateID==XX ) {   // your template where you are using the new category code
                #t_e('notice','Save Hook', $obj, get_class($obj));
                //save the categories into the correct db field
                // - temp_category for save
                // - Category for publish
                $new_categories = $obj->getElement('Categories');
                $obj->temp_category = $new_categories;

                //also replace the cached values in $GLOBALS; otherwise parts of the we backend still show the old categories
                $GLOBALS['we_doc']->Category = $new_categories;
                #$GLOBALS['we']['main']['doc']->Category = $new_categories;
            }
        break;
    }
}

Hook weCustomHook_prePublish.inc.php:

Code: Alles auswählen

function weCustomHook_prePublish($param){
    global $GLOBALS;
    $hookHandler = $param['hookHandler'];
    $obj = $param[0];

    switch(get_class($obj)){
        case 'we_webEditionDocument':
            if( $obj->TemplateID==XX ) {  // your template where you are using the new category code
                //save the categories into the correct db field
                // - temp_category for save
                // - Category for publish
                $new_categories = $obj->getElement('Categories');
                $obj->temp_category = $new_categories;
                $obj->Category = $new_categories;

                //also replace the cached values in $GLOBALS; otherwise parts of the we backend still show the old categories
                $GLOBALS['we_doc']->Category = $new_categories;
                $GLOBALS['we']['main']['doc']->Category = $new_categories;
            }
        break;
    }
}

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Kategorien Multiselect

Beitragvon WBTMagnum » Fr 7. Mai 2021, 10:18

Danke Meg,

Folgenden Teil, zur Bestimmung des Formularnamens `category_list_name`, hast du noch vergessen:

Code: Alles auswählen

<?php
# needed for the category-select
$internal_form_name = 'we_' . ($GLOBALS['we_doc']->Name);
$category_list_name = $internal_form_name . '_select[Categories#multiple][]';
?>
Das ganze sieht dann im Bearbeiten-Tab wie folgt aus:
category-multiselect.png
category-multiselect.png (53.11 KiB) 3608 mal betrachtet
Die Umsetzung erfolgte in einer webEdition 8.0.6 Installation. Dh. für neuere Versionen braucht es vermutlich Anpassungen.


Liebe Grüße,
Sascha


Zurück zu „Basisversion“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste