Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 23. November 2016 11:48

pWorker
probiert CMS/ms aus
Registriert: 20. Oktober 2016
Beiträge: 78

[GELÖST] Dropdown option values für CGUserDirectory browse action

Hi Allerseits,

ich habe ein Problem. Ich habe FEU User und entsprechende Eigenschaften angelegt. Dann habe ich ein Benutzerverzeichnis angelegt und alles lief problemlos, bis auf eine Ausnahme:

Eine dropdown Liste (prop="branche_auswahl") wird nicht richtig verarbeitet. Bei den Dropdown Listen, bekomme ich mit {get_template_vars} folgenden Aufbau:

.fieldtype (string) = select
      .options (array) = [
         .-1 (string) = Beliebig
         .Deutschland (string) = Deutschland
         .Österreich (string) = Österreich
         .Schweiz (string) = Schweiz
      ]

Und bei dem Problemdropdown:

.fieldtype (string) = select
      .options (array) = [
         .-1 (string) = Beliebig
         .Auto, Motorrad & Verkehr (string) = Auto, Motorrad & Verkehr
         .Bauen, Wohnen & Immobilien (string) = Bauen, Wohnen & Immobilien
         .Beruf, Karriere & Bildung (string) = Beruf, Karriere & Bildung
         .Computer, EDV & Telekommunikation (string) = Computer, EDV & Telekommunikation
         .Energie & Umwelt (string) = Energie & Umwelt
         .Essen, Trinken & Gastronomie (string) = Essen, Trinken & Gastronomie
         .Familie, Erziehung & Kinder (string) = Familie, Erziehung & Kinder
         .Freizeit & Hobby (string) = Freizeit & Hobby
         .Gesundheit, Medizin & Ernährung (string) = Gesundheit, Medizin & Ernährung
         .Handel & Dienstleistungen (string) = Handel & Dienstleistungen
         .Handwerk (string) = Handwerk
         .Haus & Garten (string) = Haus & Garten
         .Kunst, Kultur & Musik (string) = Kunst, Kultur & Musik
         .Mode, Trends & Lifestyle (string) = Mode, Trends & Lifestyle
         .Reisen & Tourismus (string) = Reisen & Tourismus
         .Senioren & Altenpflege (string) = Senioren & Altenpflege
         .Sonstiges (string) = Sonstiges
         .Sport & Bewegung (string) = Sport & Bewegung
         .Tiere & Tiernahrung (string) = Tiere & Tiernahrung
         .Vereine & Verbände (string) = Vereine & Verbände
         .Versicherung & Finanzen (string) = Versicherung & Finanzen
         .Wellness & Kosmetik (string) = Wellness & Kosmetik
      ]

Der einzige Unterschied ist, dass in dem letzteren array Sonderzeichen und Leerzeichen vorkommen. Wenn ich nun

{CGUserDirectory action="browse" prop="anrede" }

benutze, funktioniert alles, bei

{CGUserDirectory action="browse" prop="branche_auswahl" }

nicht.


Jemand ne Idee?

Offline

#2 23. November 2016 12:00

pWorker
probiert CMS/ms aus
Registriert: 20. Oktober 2016
Beiträge: 78

Re: [GELÖST] Dropdown option values für CGUserDirectory browse action

Nachtrag: Am Ende geht es mir um eine Dropdown Liste die auch folgende Struktur haben kann:

<form>
<label>Select Country:</label>
<select class="country">{html_options options=$properties.branche_auswahl.opts}</select>
</form>
[== .tpl ==]
{literal} <script type="text/javascript">
$(document).ready(function(){
    $("select.country").change(function(){
        var selectedCountry = $(".country option:selected").val();
        $("#branchenbutton").attr("href","{cms_action_url module=CGUserDirectory action=default prop=branche_auswahl propvalue="+selectedCountry+"}");});

});
</script>{/literal}

Mein Problem ist nun, dass zwar der richtige Link gecodet wird, dieser aber noch durch smarty verarbeitet werden müsste.
Ergebnis:

http://www.xxx.de/firmenverzeichnis/{cms_action_url module=CGUserDirectory action=default prop=branche_auswahl propvalue=Senioren & Altenpflege}

Beitrag geändert von pWorker (23. November 2016 12:04)

Offline

#3 23. November 2016 12:29

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] Dropdown option values für CGUserDirectory browse action

Problem #1: Optionname darf nicht gleich Optionwert sein.
Irgedwo definierst Du doch die Options für das Dropdown.
Und da musst Du darauf achten, dass der Wert des Feldes keine Umlaute enthält.
Weiterhin musst Du darauf achten, dass der Name der FEU-Eigenschaft ebenfalls nicht gleich seinem Wert entspricht. Also auch im FEU-Modul auf Umlaute etc. verzichten.

Problem #2: Dein Javascript steht zwischen {literal}-Tags (literal = engl. für "wörtlich" -> soll also nicht von Smarty interpretiert werden).

Entweder Du schließt die {literal}-Tags immer kurz vor dem Smarty-Code und öffnest sie danach erneut:

{literal} <script type="text/javascript">
$(document).ready(function(){
    $("select.country").change(function(){
        var selectedCountry = $(".country option:selected").val();
        $("#branchenbutton").attr("href","{/literal}{cms_action_url module=CGUserDirectory action=default prop=branche_auswahl propvalue="+selectedCountry+"}{literal}");});

});
</script>{/literal}

Oder Du lässt die {literal}-Tags weg und achtest darauf, dass geschweifte Klammern beim Javascript immer von einem Leerzeichen umgeben sind.

ABER: Dein grundsätzliches Problem ist, dass Smarty auf dem Server verarbeitet wird, Javascript beim Seitenbesucher. Du kannst also nicht das beim Besucher ausgewählte Element mit Smarty verarbeiten.

Du müsstest schon im Template als Wert für das Option-Element die URL verwenden. Dann kannst Du die Aktion des Buttons via Javascript steuern, weil die URL dann ja auch so im HTML-Code steht.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#4 23. November 2016 12:55

pWorker
probiert CMS/ms aus
Registriert: 20. Oktober 2016
Beiträge: 78

Re: [GELÖST] Dropdown option values für CGUserDirectory browse action

Hey NaN,

danke für die schnelle Antwort.

Zu den literal Tags, das Problem ist, dass auf diese Art und Weise die Variable "selectedcountry" nicht verarbeitet wird.

NaN schrieb:

Du müsstest schon im Template als Wert für das Option-Element die URL verwenden. Dann kannst Du die Aktion des Buttons via Javascript steuern, weil die URL dann ja auch so im HTML-Code steht.

Das ist quasi die Standardeingabemöglichkeit von cmsms. Ne Aufklappliste in der man getrennt durch ein "=" Wert und Optionen angeben kann und durch einen Absatz eine neue Option definiert. Smarty tags werden natürlich nicht verarbeitet (nicht so wie bei customcontent).

Liegt also die Lösung wirklich nur in der Angabe vor dem "=",
z.B.

Auto, Motorrad & Verkehr = automove

und dann arbeitet der mit den properties richtig?

Offline

#5 23. November 2016 13:08

pWorker
probiert CMS/ms aus
Registriert: 20. Oktober 2016
Beiträge: 78

Re: [GELÖST] Dropdown option values für CGUserDirectory browse action

Tausend Dank!

Mit den separaten values funktioniert`s (also z.B. Auto, Motorrad & Verkehr = aumove).
Ich war anfänglich sehr froh darüber, dass man in dieser dropdown Liste auch Kommata und Sonderzeichen ausgegeben bekommen hat.

Jetzt erstmal Kaffee!

Beitrag geändert von pWorker (23. November 2016 13:10)

Offline