Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 22. August 2011 17:54
- NashBridges
- Gast
[GELÖST] [GELÖST] FEUsers loginstatus abfragen
hallo leute
nach langer zeit hab ich mich entschlossen, an meinem kleinen projekt weiterzuarbeiten und da stellt sich mir jetzt folgende frage, die ich trotz intensiver forensuche nicht recht zu lösen weiß. ich verwende FEU und AdvancedContent, das funktioniert soweit auch ganz gut. jetzt möchte ich aber die startseite so konfigurieren, daß je nachdem ob ein user eingeloggt ist oder nicht und je nachdem in welcher gruppe er sich befindet, unterschiedliche inhalte angezeigt werden. also zb:
nicht eingeloggt: bitte loggen sie sich ein oder so
eingeloggt, user-gruppe standard: guten tag, sie sind in der user-gruppe standard
eingeloggt, user-gruppe admin: guten tag, sie sind in der user-gruppe admin
das ganze hab ich derweil über einen UDT gelöst, ich weiß aber eben nicht, wie ich dort
a) den login-status
b) die user-gruppen-berechtigung
abfragen kann!
kann mir da jemand weiterhelfen?
lg
christian
#2 22. August 2011 18:20
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
Du kannst auch im Template einfach verschiedene Inhaltsblöcke definieren und mit AdvancedContent via Parameter festlegen für welche Gruppe welcher Inhlatsblock ist.
Für solche etwas detailierteren Sachen kommt man dann wohl doch nicht um das Modul CustomContent herum. Damit geht sowas recht einfach. Das Problem ist aber, dass CMSms nicht korrekt funktioniert, wenn der Standard Inhaltsblock nicht ausgeführt wird.
D.h. dieses Beispiel wird nicht korrekt funktionieren:
{if $eingeloggt}
{content}
{else}
{content block="loggedout"}
{/if}
Man müsste es so schreiben:
{content assign="content"}
{if $eingeloggt}
{$content}
{else}
{content block="loggedout"}
{/if}
Konkreteres Beispiel von CustomContent fürs Template:
{content assign="content"}
{cms_module module='CustomContent'}
{if $ccuser->memberof('Gruppe A')}
{content block="group_a" label="Inhalt für Gruppe A"}
{elseif $ccuser->memberof('Gruppe B')}
{content block="group_b" label="Inhalt für Gruppe B"}
{else}
{$content}
{/if}
Im Backend hat man dann drei Inhaltsblöcke. Öffentliche Inhalte, Guppe A und Gruppe B.
Oder im Inhalt:
{if $customcontent_loggedin > 0}
Willkommen {$customcontent_loginname}!
{else}
Sie sind nicht eingeloggt.
{/if}
Das steht so auch alles in der Modulhilfe.
Diese $ccuser-> ... Sachen funktionieren im Inhalt leider nicht so richtig, weil der Editor da immer $ccuser-> ... draus macht.
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
#3 22. August 2011 18:27
- NashBridges
- Gast
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
hmmm... gut custom content verwend ich momentan nicht.
aber daher hab ich mir auch gedacht, daß das im UDT zu lösen wäre, ich kann ja beispielsweise auch mittels
$feuser->LoggedInId() die userid auslesen und mit LoggedInName den usernamen etc.
gibts da keinen befehl, der mir einfach den login-status bzw. eben die user-gruppe zurückgibt? irgendwie muss ja advanced content selber auch bei jedem pageaufruf genau diese abfragen starten...
(das problem ist ja an sich ein bissl komplexer, es soll nämlich nur diese eine seite so behandelt werden, alle anderen sind über AdvancedContent definiert. damit bau ich mir mittels sliding-boxes eine redundante menuführung auf, also quasi eine portal-seite zu allen wichtigen funktionen meiner applikation, und das soll eben nach usergruppen unterschiedlich befüllt werden)
edit:
Du kannst auch im Template einfach verschiedene Inhaltsblöcke definieren und mit AdvancedContent via Parameter festlegen für welche Gruppe welcher Inhlatsblock ist.
ja? wie? ich glaub das würd schon reichen...
Beitrag geändert von NashBridges (22. August 2011 18:32)
#4 22. August 2011 18:43
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
ja? wie? ich glaub das würd schon reichen...
{content block="A" feu_access="1,2,3"}
Wobei 1,2,3 die IDs der einzelnen Benutzergruppen sind, die diesen Inhaltsblock zu Gesicht bekommen sollen.
Die IDs stehen im FrontEndUsers Modul in der Tabelle vor jeder Gruppe.
Die Sache mir dem UDT stelle ich mir umständlich vor.
Was genau soll denn der UDT machen?
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
#5 22. August 2011 21:48
- NashBridges
- Gast
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
hm, na ich glaub so wie ich das machen will kann ich das mitn content-block gar net...
ich will folgendes: ich hab eine startseite, auf der is entweder eine willkommensnachricht oder eben je nach user-gruppe verschiedene buttons, über die inhalte der seite angesteuert werden können. und das macht eben momentan der udt:
echo '
<link rel="stylesheet" type="text/css" href="../css/boxes.css"/>
<script src="../js/boxes.js" type="text/javascript"></script>
<a href="index.php?page=kalender">
<div class="boxgrid caption" style="text-align: left;"><img src="uploads/images/boxes/calender.jpg" alt="" />
<div class="cover boxcaption">
<h3>Kalender</h3>
<p>Spiele bestätigen, Sperren eintragen</p>
</div>
</div>
</a>
<div class="boxgrid caption"><img style="float: left; background-color:white;" src="uploads/images/boxes/charts.jpg" alt="" />
<div class="cover boxcaption">
<h3>Statistiken</h3>
<p>Übersicht über alle Besetzungen</p>
</div>
</div>
<a href="index.php?page=profil">
<div class="boxgrid caption" style="text-align: left;"><img src="uploads/images/boxes/settings.jpg" alt=""/>
<div class="cover boxcaption">
<h3 style="text-align: left;">Profil</h3>
<p style="text-align: left;">Profildaten ändern</p>
</div>
</div>
</a>
<div class="boxgrid caption"><img style="float: left;" src="uploads/images/boxes/edit_yes.jpg" alt="" />
<div class="cover boxcaption">
<h3>Beobachtung</h3>
<p>Ihre Beobachtungen</p>
</div>
</div>
<div class="boxgrid caption"><img style="float: left;" src="uploads/images/boxes/book.jpg" alt="" />
<div class="cover boxcaption">
<h3>Verzeichnis</h3>
<p>Übersicht über alle Personen</p>
</div>
</div>
<div class="boxgrid caption"><img style="float: left;" src="uploads/images/boxes/download.jpg" alt="" />
<div class="cover boxcaption">
<h3>Download</h3>
<p>Wichtige Dokumente</p>
</div>
</div>
';
und ich stell mir das in pseudocode halt so vor:
if ($loggedin)
{
if ($usergroup="standard") {
echo '
<link rel="stylesheet" type="text/css" href="../css/boxes.css"/>
<script src="../js/boxes.js" type="text/javascript"></script>
<a href="index.php?page=kalender">
<div class="boxgrid caption" style="text-align: left;"><img src="uploads/images/boxes/calender.jpg" alt="" />
<div class="cover boxcaption">
<h3>Kalender</h3>
<p>Spiele bestätigen, Sperren eintragen</p>
</div>
</div>
</a>
<div class="boxgrid caption"><img style="float: left; background-color:white;" src="uploads/images/boxes/charts.jpg" alt="" />
<div class="cover boxcaption">
<h3>Statistiken</h3>
<p>Übersicht über alle Besetzungen</p>
</div>
</div>
<a href="index.php?page=profil">
<div class="boxgrid caption" style="text-align: left;"><img src="uploads/images/boxes/settings.jpg" alt=""/>
<div class="cover boxcaption">
<h3 style="text-align: left;">Profil</h3>
<p style="text-align: left;">Profildaten ändern</p>
</div>
</div>
</a>
<div class="boxgrid caption"><img style="float: left;" src="uploads/images/boxes/edit_yes.jpg" alt="" />
<div class="cover boxcaption">
<h3>Beobachtung</h3>
<p>Ihre Beobachtungen</p>
</div>
</div>
<div class="boxgrid caption"><img style="float: left;" src="uploads/images/boxes/book.jpg" alt="" />
<div class="cover boxcaption">
<h3>Verzeichnis</h3>
<p>Übersicht über alle Personen</p>
</div>
</div>
<div class="boxgrid caption"><img style="float: left;" src="uploads/images/boxes/download.jpg" alt="" />
<div class="cover boxcaption">
<h3>Download</h3>
<p>Wichtige Dokumente</p>
</div>
</div>
';
}
if (usergroup="admin") {
//andere zusätzliche buttons (boxes)
}
}
else
{
echo " you are not logged in!!";
}
daher wäre eben eine abfrage über advancedcontent das leichteste. ich kann da natürlich auch manuell machen, weil ich ja einen cookie über php auslesen kann und die userid habe und so auch berechtigungen und sessionid mit der datenbank vergleichen kann, aber das will ich eigentlich nicht, weil ich angst hab, so das session-management des cms zu umgehen (sicherheit). außerdem scheint mir das umständlich zu sein, zumal ja das advanced content modul bei jedem laden einer seite im prinzip irgendwo genau diese abfragen durchführen muss, zumindest wenn ich das richtig verstanden hab...
lg
#6 23. August 2011 22:19
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
Also um sich alle Gruppen zu holen, denen ein User angehört, hat FrontEndUsers die Funktion GetMemberGroupsArray($userid). Im UDT würde das dann so aussehen:
if( $feusers =& cms_utils::get_module('FrontEndUsers') )
{
$userid = $feusers->LoggedInId();
if($userid && $groups =& $feusers->GetMemberGroupsArray($userid))
{
foreach($groups as $onegroup)
{
switch($onegroup['groupid'])
{
case '1':
// hier die ausgabe für die gruppe mit der id 1 ...
break;
case '2':
// hier die ausgabe für die gruppe mit der id 2 ...
break;
...
default:
// hier die ausgabe, wenn er keiner der gruppen angehört bzw. nicht eingeloggt ist ...
break;
}
}
}
}
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
#7 23. August 2011 00:14
- NashBridges
- Gast
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
ja genau so eine lösung brauch ich... jetz krieg ich nur noch den fehler, daß er cms_utils nicht kennt????
#8 23. August 2011 06:03
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
Hmm, hatten wir nicht erst letztens dafür eine Lösung?
Offline
#9 23. August 2011 07:25
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
@cyber: ja, aber mit den Beispielen kann man nur festlegen, ob man überhaupt Zugriff hat. Man Muss dann eh wieder im Template entscheiden wem was angezeigt wird.
@Nash: Okay von welcher CMS Version reden wir hier? cms_utils müsste eigentlich immer verfügbar sein.
Wie lautet denn die Fehlermeldung?
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
#10 23. August 2011 08:12
- NashBridges
- Gast
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
also cms version ist 1.8.1 Mankara (MLE)
die fehlermeldung sagt:
Fatal error: Class 'cms_utils' not found in /home/center/public_html/cms/lib/content.functions.php(976) : eval()'d code on line 8
in anderen modulen hol ich mir die feusers über:
$feusers = &$gCms->modules['FrontEndUsers']['object'];
aber das funktioniert in dem fall auch nicht. weiß net warum...
#11 23. August 2011 08:19
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
Die cms_utils Klasse wurde erst in CMSms 1.9 eingeführt.
Und warum funktioniert die alte Variante nicht?
Gibt es da eine Fehlermeldung?
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
#12 23. August 2011 08:26
- NashBridges
- Gast
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
ah ok... vll mach ich noch ein update auf 1.9., muß i mir überlegen, weil das cmsms dient mir an sich nur als framework... mal schaun...
nein fehlermeldung gibts keine, nur feusers scheint immer false zu bleiben.
#13 23. August 2011 09:04
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
also cms version ist 1.8.1 Mankara (MLE)
Falls du die MLE Version einsetzt, kannst du nicht mehr auf 1.9.x updaten. Die MLE Version wurde eingestellt.
Wenn du MLE auf Modulebene (Babel, mleCMS) umgesetzt hast, kannst du problemlos updaten.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#14 23. August 2011 11:22
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
Die nächste AdvancedContent Version wird daher auch keine MLE Version mehr auf Core Ebene unterstützen. (Ist jetzt mit 0.8 eigentlich auch schon überflüssig)
Hast Du oben im UDT auch
global $gCms;
stehen?
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
#15 23. August 2011 13:54
- NashBridges
- Gast
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
@nockenfell: ja das ist der grund warum ich das damals nicht upgedatet hab, aber ich verwend die MLE momentan eh nicht... werd mir die mehrsprachigkeit irgendwann auf modulebene realisieren und das update versuchen.
@NaN: so jetz schäm ich mich... hatte das global $gCms; in einer echo zeile drinnen....DANKE FÜR DIE HILFE JEDENFALLS!!!!!!!!!
so sieht das jetz aus:
global $gCms;
echo '
<link rel="stylesheet" type="text/css" href="../css/boxes.css"/>
<script src="../js/boxes.js" type="text/javascript"></script>';
$feusers = &$gCms->modules['FrontEndUsers']['object'];
if ($feusers) {
$userid = $feusers->LoggedInID();
if($userid && $groups=&$feusers->GetMemberGroupsArray($userid))
{
foreach($groups as $onegroup)
{
switch($onegroup['groupid'])
{
case '1':
echo '<a href="index.php?page=kalender">
<div class="boxgrid caption" style="text-align: left;"><img src="uploads/images/boxes/calender.jpg" alt="" />
<div class="cover boxcaption">
<h3>Kalender</h3>
<p>Spiele bestätigen, Sperren eintragen</p>
</div>
</div>
</a>
<div class="boxgrid caption"><img style="float: left; background-color:white;" src="uploads/images/boxes/charts.jpg" alt="" />
<div class="cover boxcaption">
<h3>Statistiken</h3>
<p>Übersicht über alle Besetzungen</p>
</div>
</div>
<a href="index.php?page=profil">
<div class="boxgrid caption" style="text-align: left;"><img src="uploads/images/boxes/settings.jpg" alt=""/>
<div class="cover boxcaption">
<h3 style="text-align: left;">Profil</h3>
<p style="text-align: left;">Profildaten ändern</p>
</div>
</div>
</a>
<div class="boxgrid caption"><img style="float: left;" src="uploads/images/boxes/edit_yes.jpg" alt="" />
<div class="cover boxcaption">
<h3>Beobachtung</h3>
<p>Ihre Beobachtungen</p>
</div>
</div>
<div class="boxgrid caption"><img style="float: left;" src="uploads/images/boxes/book.jpg" alt="" />
<div class="cover boxcaption">
<h3>Verzeichnis</h3>
<p>Übersicht über alle Personen</p>
</div>
</div>
<div class="boxgrid caption"><img style="float: left;" src="uploads/images/boxes/download.jpg" alt="" />
<div class="cover boxcaption">
<h3>Download</h3>
<p>Wichtige Dokumente</p>
</div>
</div>
';
break;
echo "TEEEEEST";
case '2':
break;
default:
echo "Willkommen bei Referee Manager 2! Bitte melden Sie sich an!";
break;
}
}
}
}
else
{
echo "Bitte melden Sie sich an!";
}
aber weil ich mich noch nicht genug schäm und auch auf das risiko hin, eine saudumme frage zu stellen: des else am schluß scheint nicht zu funktionieren. er arbeitet zwar brav die if-schleife ab, wenn $feusers=true aber wenn er das else machen sollte, gibt er mir nichts aus... hmmmm... ich bin schon ein bissl betriebsblind glaub i... irgendeine idee??
#16 23. August 2011 14:01
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
Falls du nicht zu viele Seiten hast, würde ich parallel die neue Version installieren und die Daten von Hand zügeln. Allenfalls kann man auch darüber bügeln.
Ev hilft auch CGContentUtils für den Export der Seiten aus der MLE und den Import in die aktuelle Version.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#17 23. August 2011 14:08
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
Die if-Bedingung prüft ja auch nur, ob das FrontEndUsers Modul überhaupt da ist.
D.h. das Else wird nur ausgeführt, wenn Du FrontEndUsers deinstallierst. Und dann bringt das "Bitte melden Sie sich an" überhaupt nichts
Hab da außerdem einen Fehler gemacht. Das hier bringt auch nichts bzw. funktioniert nur dann, wenn der User zwar angemeldet, aber nicht der entsprechenden Gruppe angehört:
default:
echo "Willkommen bei Referee Manager 2! Bitte melden Sie sich an!";
break;
Wenn ein User nicht eingeloggt ist, musst Du das Else nach dem
if($userid && $groups =& $feusers->GetMemberGroupsArray($userid))
{
...
}
anhängen:
if( $feusers =& $gCms->modules['FrontEndUsers']['object'] )
{
$userid = $feusers->LoggedInId();
if($userid && $groups =& $feusers->GetMemberGroupsArray($userid))
{
foreach($groups as $onegroup)
{
switch($onegroup['groupid'])
{
case '1':
// hier die ausgabe für die gruppe mit der id 1 ...
break;
case '2':
// hier die ausgabe für die gruppe mit der id 2 ...
break;
... usw. ...
default:
// hier die ausgabe, wenn er zwar eingeloggt ist aber keiner der gruppen angehört
break;
}
}
}
else
{
echo 'Bitte melden Sie sich an.';
}
}
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
#18 23. August 2011 15:25
- NashBridges
- Gast
Re: [GELÖST] [GELÖST] FEUsers loginstatus abfragen
Die if-Bedingung prüft ja auch nur, ob das FrontEndUsers Modul überhaupt da ist.
[ ... Fullquote gekürzt ... ]
aaah deshalb! ok das werd ich dann am abend zu haus gleich testen... vielen dank einstweilen für die hilfe!!!
Seiten: 1