Page 1 of 1

[customContent] Die Logic verstehen

Posted: Tue Mar 03, 2009 5:49 pm
by amh
Hallo Zusammen!
Nach einer längeren Pause sitze ich mal wieder an CMSms und komm' bei der Implementierung eines Logins nicht weiter.  :'( Je nachdem welche Gruppe sich anmeldet, sollen unterschiedliche Inhalt angezeigt werden. Also bei dem Menü, bei den News usw. Nun habe ich die Schleife brav aus der Hilfe kopiert und zum Testen den Inhalt mal für alle sichtbar gemacht. Wenn ich als »Mitglieder« eingeloggt bin soll vorerst mal nix (eben Test) erscheinen.

Beim Testen fiel mir nun auf, dass ich mich nach dem Login nicht mehr ausloggen kann :-(

Ist der Code komplett falsch? Hier ist der body:

Code: Select all

… <__html><head> …
</__body>
{cms_module module='CustomContent'}
<div id="container" class="{content block='colour' wysiwyg='false' oneline='true'}">

<div id="header">...</div>

{if $ccuser->loggedin() && $ccuser->memberof('Mitglieder')}
<!-- Inhalte für Mitglieder -->
	{menu template='fsp_menu' collapse='1'}
	<div class="box" id="login">
			<h3><span>Login</span></h3>
			{cms_module module="FrontEndUsers"}
		</div>
	<hr />
	{news number='5' detailpage='news' category='Mitglieder'}
	
{elseif $ccuser->loggedin() && $ccuser->memberof('Ausbildung')}
<!-- Inhalte für Auszubildende -->
	{menu template='fsp_menu' collapse='1' excludeprefix='mitglieder-'}
{else}
<!-- Inhalte für alle -->
	<div id="leftColumn">
		{menu template='fsp_menu' collapse='1' excludeprefix='mitglieder-,ausbildung-'}
		<div class="box" id="login">
			<h3><span>Login</span></h3>
			{cms_module module="FrontEndUsers"}
		</div>
		
		{global_content name='mim-links'}
	</div>

	<div id="cntWrapper">
		<h1>{content block='Headline' wysiwyg='false'}</h1>
		<hr class="gap" />
		{content}
		<hr class="bottom" />
	</div>

	<div id="rightColumn">
		{news number='5' detailpage='news' category='Allgemein,Ausbildung'}
	</div>
{/if}

<br class="clear" />
{global_content name='mim-footer'}
<!-- end container -->
</div>
<__body>

Re: [customContent] Die Logic verstehen

Posted: Tue Mar 03, 2009 5:57 pm
by cyberman
Hast du mal versucht, den Aufruf des FrontendUsers-Moduls aus den if-Zweigen raus zu nehmen (oberhalb des CustomContent-Moduls)?

Re: [customContent] Die Logic verstehen

Posted: Tue Mar 03, 2009 9:46 pm
by NaN
Genau.
Ohne FontendUsers kein Logout-Formular.
Wenn das Formular nur bei einer bestimmten Gruppe angezeigt wird, kann sich die andere Gruppe nicht ausloggen.
Also entweder fügst hier noch ein FrontendUsers ein:

Code: Select all


{elseif $ccuser->loggedin() && $ccuser->memberof('Ausbildung')}
<!-- Inhalte für Auszubildende -->
	{menu template='fsp_menu' collapse='1' excludeprefix='mitglieder-'}
	{cms_module module="FrontEndUsers"}
{else}

Oder Du machst es so wie Cyberman gesagt hat und platzierst das FrontendUsers generell vor die if-Abfrage.
Da es ja sowieso auch für die nicht eingeloggten User das Login-Formular anzeigen soll, kannst Du es dann weiter unten für den öffentlichen Bereich rausnehmen (sonst isses doppelt).

Re: [customContent] Die Logic verstehen

Posted: Wed Mar 04, 2009 10:09 am
by amh
Danke Euch beiden, aber es will nicht  :'(

Wenn ich in jeder Schleife FEU aufrufe klappt nix. Der Logout wird aufgerufen (Parameter in der URL), aber es passiert nix. Und wenn es über Allem ist irgendwie auch nicht. Ich beschreibe mal kurz was ich vor habe / ich denke:

header (für alle)

linke Spalte
** menü – hier gibt es drei Gruppen, demnach sollen die Inhalte ausgegeben werden)
** login – hier können sich alle einloggen, aber eben – vom Design her – hier und nicht oben)

Inhalt
** hier werden dann je nach Gruppe die Inhalte angezeigt oder ein Hinweis auf den Login

rechte Spalte
** news – je nach Gruppe werden hier unterschiedliche News (also die Kategorien) angezeigt
** kalender – je nach Gruppe werden hier unterschiedliche Termine angezeigt

footer (für alle)


Also dachte ich:

header (für alle)

{if $ccuser->loggedin() && $ccuser->memberof('Mitglieder')}

        linke Spalte
        ** menü für Mitglieder {menu template='fsp_menu' collapse='1'}
        ** login

        Inhalt
        ** für Mitglieder

        rechte Spalte
        ** news für Mitglieder
        ** kalender für Mitglieder

{elseif $ccuser->loggedin() && $ccuser->memberof('Ausbildung')}

        linke Spalte
        ** menü für Auszubildende {menu template='fsp_menu' collapse='1' excludeprefix='mitglieder-'}
        ** login

        Inhalt
        ** für Auszubildende

        rechte Spalte
        ** news für Auszubildende
        ** kalender für Auszubildende
{else}

        linke Spalte
        ** menü für Alle {menu template='fsp_menu' collapse='1' excludeprefix='innung-,-ausbildung'}
        ** login

        Inhalt
        ** für Alle

        rechte Spalte
        ** news für Alle
        ** kalender für Alle
{/if}

footer (für alle)
Die Inhalte sind html-Tags und die eigentliche Inhalte. Ich dachte ich kann das Layout dreimal machen und habe somit nur ein Template.
Verständlich? Ich habe leider alles lokal.

Vielen Dank für Anregungen … ich teste auch mal weiter.

Viele Grüße Andreas

Re: [customContent] Die Logic verstehen

Posted: Wed Mar 04, 2009 2:29 pm
by amh
Servus!

Nachdem ich nun getestet und gespielt habe, ist die einzige Lösung um jedes Element die mächtige Schleife zu machen. IMHO nicht sehr elegant, aber das kann ich ja gar nicht einschätzen.

Danke für die Versuche. Ich denke so sollte es klappen.

Noch eine Frage: Im HTML-Quellcode fällt mir auf, dass an der Stelle wo im Template folgendes steht
{cms_module module='FrontEndUsers' form='silent'}
{cms_module module='CustomContent'}
das ausgegeben wird.
Ich habe es noch nicht weggelöscht, da alles gerade funktioniert. Was bedeutet das?


Viele Grüße Andreas

Re: [customContent] Die Logic verstehen

Posted: Wed Mar 04, 2009 3:39 pm
by NaN
Das habe ich auch immer stehen.
Ich denke ein kleiner Fehler im Modul.
Hab ihn aber bislang nicht finden können.
Diese Meldung wird ausgegeben, wenn ein Modul nicht als Tag im Frontend verwendet werden kann.
Was hier aber nicht der Fall ist zumal es problemlos zu funktionieren scheint.

Re: [customContent] Die Logic verstehen

Posted: Fri Mar 06, 2009 4:59 pm
by skibby
ich hab da auch ein kleines Problem: Dürfte aber eigentlich leicht sein

Ich habe 3 Gruppen (Verwaltung, Mitarbeiter, Kunden). Das ganze hab ich in eine Abfrage gepackt. Die funktioniert auch. Allerdings gibt es auch die Geschäftsführung bzw. Admins, die Zugriff auf alle gruppen haben wollen.

Bis jetzt bricht der nach dem ersten treffen ab. Ist ja auch richtig. Ich bräuchte allerdings sowas wie ein ODER.

Logik: Admin = Verwaltung ODER Mitarbeiter ODER Kunden

Code: Select all

{if $ccuser->loggedin() && $ccuser->memberof('Verwaltung')}
{content}		
{content block="Verwaltung"} 

{elseif $ccuser->loggedin() && $ccuser->memberof('Mitarbeiter')}
{content}		 
{content block="Mitarbeiter"}

{elseif $ccuser->loggedin() && $ccuser->memberof('Kunden')}
{content}
{content  block="kunden"} 
 
{else}

Bitte melden Sie sich zuerst an!
{/if}
Einen ODER Befehl hab ich leider noch garnicht gefunden. Gibts sowas überhaupt?

Re: [customContent] Die Logic verstehen

Posted: Fri Mar 06, 2009 5:14 pm
by cyberman
&& = AND

|| = OR

Kannst genau wie in PHP beides verwenden ;).

Re: [customContent] Die Logic verstehen

Posted: Fri Mar 06, 2009 5:47 pm
by skibby
ich habs einfacher gelöst :o)

Code: Select all

{if $ccuser->loggedin() && $ccuser->memberof('Admin')}
{content}			
{content block="Verwaltung"} <br /><br />
{content block="Mitarbeiter"}<br /><br />
{content  block="kunden"}<br /><br />
klappt genauso  ::)