-
cm_membergooglemaps
Hallo zusammen,
hat jemand von euch Erfahrung mit der Detailansicht der genannten Erweiterung und einer Abfrage der
Mitgliedergruppe, um bei einer entsprechenden Zugehörigkeit einen individuellen Text/Satz auszugeben?
Ich habe folgendes probiert ohne eine entsprechendes Resultat zu erzielen.
PHP-Code:
<?php $this->import('FrontendUser', 'User'); ?>
<?php if($this->User->isMemberOf(3)): ?>
<strong>Hallo</strong>
<?php endif; ?>
Die 3 steht für die Mitgleidergruppe.
Viele Grüße
Mirko
-
Es ist zwar nicht schön so viel Programmierung im Template unterzubringen, aber es funktioniert doch.
-
Also wenn ich den genannten PHP-Code in die mod_cm_memberlist_googlemaps_detail.html5 schreibe passiert
nichts, d.h. die Mitgliedergruppe bzw. "Hallo" wird nicht angezeigt.
Woran könnte das liegen?
-
bist du denn mit einem User aus der Gruppe im Frondend angemeldet?
-
Nein. Ich bilde die Adressen in einer Google-Maps ab und möchte bei den Adressen einer bestimmten
Mitgliedgruppe einen antsprechenden Hinweis einblenden.
Funktioniert die Abfrage der Mitgliedsgruppe nur wenn man als Frontend-User angemeldet ist?
-
In dem Template benötigst du die ID des Members, welches du abfragen möchtest. Damit kannst du dir dann alles holen.
PHP-Code:
$member = \MemberModel::findByPk($theMemberId);
$group = 3;
if(in_array($group, deserialize($member->groups)))
{
echo $member->street;
}
Wenn du ein eingeloggtes Mitglied abfragen möchtest, dann so ähnlich wie du es hattest.
PHP-Code:
$member = \FrontendUser::getInstance();
if($member->isMemberOf(3))
{
echo $member->street;
}
-
Hallo Anreads,
Du meinst ich muss
PHP-Code:
<?php $this->import('FrontendUser', 'User'); ?>
<?php if($this->User->isMemberOf(1)): ?>
<strong>Hallo</strong>
<?php endif; ?>
mit Deinen Angaben kombinieren?
Ich habe das mal ausprobiert und bin leider zu keinem Ergibnis gekommen!?
-
Nicht ganz. Du hast noch nicht gesagt, ob du irgendein Mitglied, oder nur das eingeloggte Mitglied hast. Der Code war nicht gedacht zum Ergänzen, sondern als alleiniger Code.
Da es hier um cm_membergooglemaps geht, gehe ich davon aus, dass du in der Liste oder der Detailseite bestimmte Member-Daten darstellen willst, also nicht nur vom eingeloggten Mitglied.
Da fällt mir ein, die Daten müssten doch eigentlich alle schon dort sein. Mach mal ein
PHP-Code:
dump($this->arrData);
Die Methode isMemberOf() kann man nur benutzen, wenn man auch ein FrontendUserObject hat, dies gibt es IMHO nur für ein eingeloggtes Mitglied. Ich habe meinen Code oben mal erweitert, mit der Suche nach Gruppenzugehörigkeit, für den Fall, dass man nur ein MemberModel vorliegen hat.
Aber wahrscheinlich benötigst du dies alles gar nicht. Was liefert denn folgende Variable?
PHP-Code:
dump($this->groups);
Wir benötigen ein Array mit den Gruppen-IDs (oder ein serialisiertes Array) um die Gruppenzugehörigkeit zu testen.
-
Hallo Andreas,
PHP-Code:
dump($this->arrData);
liefert mir u.a. die $groups mit den entsprechenden zugehörigkeiten des Mitgliedes.
PHP-Code:
dump($this->groups);
liefert mir ein "NULL"
Leider ergibt auch Dein geänderter PHP-Code kein Resultat und ich habe auch keine Ahnung wiese!?
-
Ja, habe gerade nachgesehen. Das steckt alles tief in dem Array $this->record. Du kannst die Gruppen ganz oben im Template erstmal so holen. (Ich bin hier im Template templates\mod_cm_memberlist_googlemaps_detail.html 5 und benutze das Modul "Mitglieder mit Google Maps")
PHP-Code:
<?php
$groups = deserialize($this->record[0]['raw']['groups']);
if(in_array(3, $groups))
{
$inGroup3 = true;
}
?>
Diese Variable kannst du dann im Template benutzen.
PHP-Code:
<?php if($inGroup3): ?>
My HTML or whatever only for group 3.
<?php endif; ?>
-
Hallo Andreas,
SUPER, das funktioniert :D
Vielen leibe Dank für Deine schnelle und kompetente Hilfe!!!!
Grüße
Mirko