Ergebnis 1 bis 6 von 6

Thema: Inhalte nur für bestimmte Mitglieder online und URL behalten.

  1. #1
    Contao-Nutzer
    Registriert seit
    13.07.2009.
    Beiträge
    135

    Standard Inhalte nur für bestimmte Mitglieder online und URL behalten.

    Ich bin gerade auf ein kniffliges Problem gestoßen:

    Auf einer Seite mit Produkten (die über eine Liste generiert werden) sind manche Produkte nur für Mitglieder der Gruppe 2 sichtbar. In der Katalog-Liste (wird als Menü verwendet) werden diese Produkte für Gäste über die Bedingungen gefiltert.

    Der Katalog-Leser, egal für welches Produkt, befindet sich immer auf der selben Seite.

    Ein Gast sieht folgende Liste:
    Produkt 1
    Produkt 3
    Produkt 4


    Ein Mitglied der Gruppe 2 sieht:
    Produkt 1
    Geheimes Produkt 2
    Produkt 3
    Produkt 4

    Die URLS für beide Produkte lauten immer: www.meineseite.com/item/produkt-x.html

    Wenn nun das angemeldete Mitglied, die URL des geheimen Produktes an einen Gast weiterleitet, kann dieser das Produkt sehen, da es ja nur in der Katalog-Liste ausgeblendet wird.
    Ich weiß, dass man für die Mitglieder eine eigene geschützte Seite erstellen könnte auf die man von einer geschützen Katalog-Liste (mit allen Einträgen) weitergeleitet werden kann.
    Was mir aber nicht gefällt ist, dass dann die URL des angemeldeten Users www.meineseite.com/logged-in-item/produkt-x.html heißt.
    Wenn nun der User angemeldet ist und die URL eines "öffentlichen" Produktes weiterleiten will, dann bekommt der Gast beim klicken der URL eine Fehlermeldung.

    Okay, ich hoffe, dass Problem ist verständlich.

    Ich hab´s inzwischen auf diese Arten probiert:

    1.) Zuerst habe ich es mit den geschützten Seiten probiert, was mir aber wegen der URL Sache nicht gefiel.

    2.) Wie schon in diesem Thread beschrieben habe ich ein Template gebaut, dass alle Felder nur ausgibt, wenn das Mitglied angemeldet ist.
    Das war ziemlich blöd von mir, weil ja das angemeldete Mitglied das gleiche Template verwendet wie ein Gast. Nun hat halt der Gast keine Inhalte mehr gesehen.

    -------

    Irgendwie komme ich auf keine Lösung. Hat jemand einen Vorschlag?

  2. #2
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Mach ein einfaches Checkbox Feld am Produkt, wo du festhältst dass das Produkt "geheim" ist.

    Im Template prüfst du ob das Feld gesetzt ist und ob der User eingeloggt ist... Falls ja, zeigst du das Produkt an, falls nein, schickst du den Benutzer per Redirect auf eine andere Seite.

  3. #3
    Contao-Nutzer
    Registriert seit
    13.07.2009.
    Beiträge
    135

    Standard

    Zitat Zitat von Flex Beitrag anzeigen
    Mach ein einfaches Checkbox Feld am Produkt, wo du festhältst dass das Produkt "geheim" ist.

    Im Template prüfst du ob das Feld gesetzt ist und ob der User eingeloggt ist... Falls ja, zeigst du das Produkt an, falls nein, schickst du den Benutzer per Redirect auf eine andere Seite.
    Hallo Flex, danke für die Antwort.

    Aber genau das ist ja auch der Hund begraben. Ich verwende das Template ja auch für die öffentlichen Einträge. Wenn also nun ein Gast auf ein Produkt will, dass zwar öffentlich ist, aber er selbst nicht angemeldet, dann wird er ja auch hier weitergeleitet...

    Ich weiß, das wäre einfach zu lösen, wenn ich zwei verschiedene Seiten verwenden würde, aber mir ist es eben wichtig, dass die URL gleich bleibt...

    Nach deiner Methode habe ich auch schon überlegt zwei Module mit verschiedenen Templates anzulegen. Ein Modul zeigt alles an, eines nicht. Eines ist öffentlich, eines geschützt. Aber auch in dem Fall, könnte dann der Gast die URL www.meineseite.com/item/produkt-geheim.html aufrufen und anschauen.

  4. #4
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Aber das deckt doch alle Fälle ab?

    Fall A:
    Geheimes Produkt, Benutzer ist eingeloggt => Produkt anzeigen

    Fall B:
    Geheimes Produkt, Benutzer ist nicht eingeloggt => Weiterleiten

    Fall C:
    Produkt, Benutzer ist eingeloggt => Anzeigen

    Fall D:
    Produkt, Benutzer ist nicht eingeloggt => Anzeigen

    Gibt es noch mehr Fälle die mir entgangen sind? Ich meine nein...

    Du musst das ganze halt im Template abfragen, das geht nicht direkt über die Bordmittel in Contao.

  5. #5
    Contao-Nutzer
    Registriert seit
    13.07.2009.
    Beiträge
    135

    Standard

    Stimmt, das könnte so gehen.
    Und es schaut in der Theorie ja ganz einfach aus! ;-)
    Mal sehen ob es mir gelingt!

    Danke!

  6. #6
    Contao-Nutzer
    Registriert seit
    13.07.2009.
    Beiträge
    135

    Standard

    Okay, meine PHP Kenntnisse reichen eindeutig nicht aus.

    Ich habe es mal folgendermaßen probiert:


    PHP-Code:
    <?php if($entry['data']['archive']['raw']):?><?php $this->import('FrontendUser','User');if (in_array(2$this->User->groups)): ?><?php echo 'hallo'?><?php endif; ?><?php endif; ?>
    Archive ist die checkbox.
    Aber ich komme da zu keine Ausgabe...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •