Eigene Seite nur für registrierte Benutzer + für Gäste nicht anzeigen mit Hinweistext

13.04.2010 14:42 (zuletzt bearbeitet: 13.04.2010 14:44)
avatar  mihca02
#1 Eigene Seite nur für registrierte Benutzer + für Gäste nicht anzeigen mit Hinweistext
mi
Mitglied

Hallo,

ich komme hier mal auf dieses Thema zurück:
BUG ? zumindest für mich - eigene Seite nur für registrierte Benutzer

weil mir das irgendwie nicht gepasst hat, daß ich die eigene Seite nicht nur für registrierte Besucher machen kann, zumindest kann sich der Gast die Seite auch ansehen, wenn er die Adresse hat und nicht eingeloggt sind. Da greift ja die Einstellung aus der Navigation "nur für registrierte Benutzer anzeigen" zwar für den Link, aber nicht für die Seite. Ich möchte meinen Gästen aber durchaus die Gelegenheit geben, die Menüpunkte zu sehen und dadurch eventuell interessant zu machen, ihnen aber ohne Anmeldung den Zugriff auf die Information verwehren.
Dazu habe ich mir jetzt eine Konstruktion, die zumindest Testweise schon funktioniert.

Templateeingriffe sind notwendig, daher steht das Ganze hier:

Ich habe das Template Element "eigene Seiten" in dem folgenden Abschnitt verändert (Veränderungen in Farbe -werden nachher kurz erläutert):

{{user_registered==true.start}}
<div class="c_r_content1" >
<div class='default-css' >
{{page_output}}
{{link_editpage==true.start}}<br/><br/><hr/><a href="{{link_editpage}}" style='text-decoration: none;'><img alt="edit" src='https://files.homepagemodules.de/b2001010/a_330.png' style="vertical-align: middle; margin-right: 3px;" /><small><b>{[page_edit]}</b></small></a>{{link_editpage==true.end}}
</div>
</div>
{{user_registered==true.else}}
<div class="c_r_content1" >

{{global_guest_not_allowed==true.start}}
{{global_guest_not_allowed}}
{{global_guest_not_allowed==true.end}}


<div class='default-css' id="{{html_title}}">
{{page_output}}
{{link_editpage==true.start}}<br/><br/><hr/><a href="{{link_editpage}}" style='text-decoration: none;'><img alt="edit" src='https://files.homepagemodules.de/b2001010/a_330.png' style="vertical-align: middle; margin-right: 3px;" /><small><b>{[page_edit]}</b></small></a>{{link_editpage==true.end}}
</div>
</div>
{{user_registered==true.end}}

Rot ist die Abfrage nach dem Registrierten User mit Verzweigung für den Gast nach else
Grün ist der originalteil aus dem Template
Blau - Da habe ich eine Abfrage eines Textes eingebaut, der erscheint, wenn die Seite für den Gast aufgerufen wird. Diesen Text kann ich mittels der globalen Variablen {{global_guest_not_allowed}} im Layout-menü wahlweise eingeben.
Orange - Hier verpasse ich dem DIV eine ID, die ich späte rzum ausschalten der Anzeige benutze, weil ich die Variable html_title habe benutze ich dies auch als ID

Das wars im Teil "Eigene Seiten"

Ich verändere nun das Template Element "CSS-Vorlage" und füge folgendes hinzu:

/*Eigene Erweiterung Sperren einzelner eigener Seiten*/

{{global_site_not_allowed==true.start}}
{{global_site_not_allowed}}
{
display:none
}
{{global_site_not_allowed==true.end}}

rot - eine globale Variable, die ich nachher aus dem Layoutmenü mit den Seiten versorge, die ich sperren möchte
blau- schaltet diese Seiten aus

bei den globalen Variablen erzeuge ich die Variablen {{global_site_not_allowed}} und {{global_guest_not_allowed}} als Textvariablen, die ich späte rim Layoutmenü benutze.

Layoutmenü:

Siehe Bild 1 im Anhang
- dort habe ich jetzt einmal die Möglichkeit den Text für Gäste einzugeben, die die Seite betreten
- und beim zweiten Punkt kann ich die zu sperrenden Seitentitel eingeben im Format #Seitentitel, #Seitentitel2 .. usw was dann in der CSS Vorlage übersetzt wird in die Anweisung an die jeweilige ID:

#Seitentitel, #Seitentitel2
{
display:none
}


Dadurch wird die Seite für den Gast ausgeblendet und der Seitentext für Gäste erscheint.

Bild 2 im Anhang - So sieht es für den Gast aus
Bild 3 im Anhang - So sieht es für das Mitglied aus

Ihr dürft gern im Testboard 200269 auf "Projekt2009_Gast" klicken oder euch anmelden um den Unterschied zu sehen

Wie gesagt alles mit umfangreichen Änderungen am Template verbunden, die dazu führen, daß Updates vonm HPM nicht mehr automatisch eingespielt werden.

Da das alles Testphase ist, ist das sicher nicht optimal, funktioniert aber erstmal. Den Seitentitel bei eigenen Seite wähle ich ohne Leerzeichen etc. als einfach Seite1, Seite2 etc., die Bezeichnung in der Menüleiste kann ich ja bei der Navigation vergeben.

mit encode und decode müsste es aber auch irgendwie möglich sein den Seitetitel mit Leer- oder Sonderzeichen zu übergeben. Aber das kommt vielleicht noch

Für mich ist es erstmal ein Ansatz das so zu nutzen und es erfüllt meinen Zweck. MAcht mal Vorschläge wie man das vereinfachen kann, danke

Viele Grüße
Achim

-------------------------------------------------------------------


 Antworten

 Beitrag melden
13.04.2010 16:41 (zuletzt bearbeitet: 13.04.2010 16:41)
avatar  aemkey
#2 RE: Eigene Seite nur für registrierte Benutzer + für Gäste nicht anzeigen mit Hinweistext
ae
Mitglied

Hallo Achim
Danke für deine Riesen Arbeit. Mich hat das auch schon gestört, aber wir haben bis jetzt nicht unbedingt Dinge auf eigenen Seiten, die ich unbedingt verstecken möchte. Bei den einen blende ich einfach bei der Navgation den Link aus (wenns aber jemand trotzdem findet, auch egal).

Da verspricht deine Lösung doch sehr viel besser zu sein (auch wenn ich hoffe, dass dann in Zukunft die globalen Variablen auch auf den eigenen Seiten verwendbar sind, was auch sonst noch die eine oder andere Möglichkeit öffnen würde).

Allerdings ist auch bei deiner Version eine gewisse Vorsicht geboten. Mit display:none blendet es den Text ja lediglich aus, vorhanden ist er aber nach wie vor und im Quelltext einsehbar. Immerhin durchsuchen die Suchmaschinen ja (noch) keinen Quelltext, es bleibt also vor Google verborgen. Aber wenn jemand weiss wie, kommt er trotzdem an die Infos.

Obwohl, bei dem grausigen Quelltext, der der Htmleditor schreibt (siehe Bild), registriere ich mich doch lieber, um es lesen zu können.

Aber wieso bindest du überhaupt den Seitenaufruf nochmals ein (das Div mit der Id), wenn du es nachher sowieso wieder ausblendest?

Wäre es nicht einfache in der Art:

{{user_registered==true.start}}
<div class="c_r_content1" >
<div class='default-css' >
{{page_output}}
{{link_editpage==true.start}}<br/><br/><hr/><a href="{{link_editpage}}" style='text-decoration: none;'><img alt="edit" src='https://files.homepagemodules.de/b2001010/a_330.png' style="vertical-align: middle; margin-right: 3px;" /><small><b>{[page_edit]}</b></small></a>{{link_editpage==true.end}}
</div>
</div>{{user_registered==true.else}}
<div class="c_r_content1" >

{{global_guest_not_allowed==true.start}}
{{global_guest_not_allowed}}
{{global_guest_not_allowed==true.else}}

<div class="c_r_content1" >
<div class='default-css' >
{{page_output}}
{{link_editpage==true.start}}<br/><br/><hr/><a href="{{link_editpage}}" style='text-decoration: none;'><img alt="edit" src='https://files.homepagemodules.de/b2001010/a_330.png' style="vertical-align: middle; margin-right: 3px;" /><small><b>{[page_edit]}</b></small></a>{{link_editpage==true.end}}
</div>
</div>
{{user_registered==true.end}}


So fragt die erste Bedingung Registriert? Bei Ja wird der Text angezeigt, bei Nein fragts dann nach deiner Variable. Wenn die auf nicht erlaubt steht, kommt die Registrierungsseite, wenn sie auf ja steht (und nur dann) wird die Seite geladen.

Dann kannst du auch die Ergänzungen im CSS weglassen.
Gruss Aemkey


 Antworten

 Beitrag melden
13.04.2010 18:02 (zuletzt bearbeitet: 13.04.2010 18:27)
avatar  mihca02
#3 RE: Eigene Seite nur für registrierte Benutzer + für Gäste nicht anzeigen mit Hinweistext
mi
Mitglied

weil ich über dei ID ganz gezielt ausschalten möchte und das nicht pauschal für alle Seiten mit ja oder nein haben will..

Aber wie gesagt...alles noch testphase

An der Verbesserung der Nutzbarkeit wird noch gewerkelt..

Ist doch nur der erste Entwurf. Ich werde das weiter so machen, daß bei der Texteinblendung für Gast automatisch der "normale Text" auch im Quellcode draussen ist.

Grüße
Achim

-------------------------------------------------------------------


 Antworten

 Beitrag melden
13.04.2010 20:18
avatar  mihca02
#4 RE: Eigene Seite nur für registrierte Benutzer + für Gäste nicht anzeigen mit Hinweistext
mi
Mitglied

und auch die Abschaltung des Textes, der angzeigt wird für Gäste, wenn die Option gewählt ist, muss mit rein...

denn sonst erscheint er auch in Seiten die ich für Gäste und User anzeige..

Ist aber auch in der Mache

Achim

-------------------------------------------------------------------


 Antworten

 Beitrag melden
30.04.2010 10:28
avatar  mihca02
#5 RE: Eigene Seite nur für registrierte Benutzer + für Gäste nicht anzeigen mit Hinweistext
mi
Mitglied

Ausgehend von dem Thread hier

zusätzliche Forencodes ignoriert

habe ich das jetzt auch mal auf der eigenen Seite für verschiedene Div-Tags ausprobiert.

Ich weiß im Quellcode sind die Teile zu sehen, die ich ausblende, aber es geht mal um die erste Ansicht für den Gast, der bestimmte Bereiche oder Formulare nicht sehen soll.

Auf dem Anhang 1 ist der Screen für den Registrierten User zu sehen, die Ausblendung betrifft die roten Bereiche, diese werden auf dem Anhang 2 ersetzt durch Texte für den Gast und der Verlinkung zur Anmeldung (blaue Bereiche)

Das reicht mir erst mal

Viele Grüße
Achim

-------------------------------------------------------------------


 Antworten

 Beitrag melden
Bereits Mitglied?
Jetzt anmelden!
Mitglied werden?
Jetzt registrieren!