Zum Inhalt springen

Prüfen ob eine Seite versteckt ist

Erstellt am 19. April 2010 · 1 Antwort · letzte Antwort am 20. April 2010

Tags: Frage

Chrissli ·

Hallo miteinander,

bin jetzt neu hier dabei, wenn ich doch auch schon des öfteren auf einige nützliche Informationen hier zurückgegriffen habe. Werde natürlich auch mein Bestes tun um andere hier zu unterstützen. Leider muss ich mein dasein hier im Forum trotzdem mit einer Frage beginnen.

Ich habe einen Typo-Auftritt, auf dessen Homeseite ein Javascript-Popup mit jquery/fancybox hochgezogen wird, jedes mal wenn die Homeseite geladen wird.
Der Header-Code hierfür sieht in etwa so aus:

page.headerData.6 = TEXT
page.headerData.6.value (
  <script type="text/javascript"> 

  $(document).ready(function() {
  
    /* This is basic - uses default settings */
  
    $("a#single_image").fancybox();
  
    /* Using custom settings */
  
    $("a#inline").fancybox({
      'hideOnContentClick': true
    });
    
    $("a.iframe").fancybox({
      'hideOnContentClick': false,
      'hideOnOverlayClick': false,
      'autoDimensions'    : false,
      'width'             : 500,
      'height'            : 100,
      'overlayColor'      : '#0f0'
    }).trigger('click');
  
    /* Apply fancybox to multiple items */
  
    $("a.group").fancybox({
      'transitionIn'	:	'elastic',
      'transitionOut'	:	'elastic',
      'speedIn'  :	600, 
      'speedOut'  :	200, 
      'overlayShow'	:	false
    });
  
  });
  </script>
)

Das Ganze landet irgendwann noch in einer externen Scriptdatei.
Auf der Homeseite befindet sich nun ein unsichtbarer iframe, der per fancybox hochgezogen wird, sobald die Seite geladen wird.
Das Problem ist nun, dass dieses Popup nicht immer benötigt wird, und quasi "per Schalter" aktiviert/deaktiviert werden soll.
Ich habe mir überlegt, diesen Code nur zu laden, wenn die per iframe referenzierte Typo-Seite auch gezeigt wird sprich in den Seiteneinstellungen der "hide page"-flag nicht gesetzt ist.
Nur wie kann ich prüfen ob dies der Fall ist, bzw. geht das überhaupt?
Ich dachte etwas in der Art ( Mir ist natürlich klar, dass das SO nicht geht):

[page.id.12.hidden == 0]
//Füge den HeaderCodehinzu
[global]

Kann an dieser Stelle leider keinen Link zu der Seite setzen, da diese noch nicht online ist und ich auch zuerst die Genehmigung des Kunden einholen müsste. Hoffe mir kann trotzdem jemand weiterhelfen.

Julian.​Hofmann ·

Hallo.

Chrissli schrieb

Ich habe mir überlegt, diesen Code nur zu laden, wenn die per iframe referenzierte Typo-Seite auch gezeigt wird sprich in den Seiteneinstellungen der "hide page"-flag nicht gesetzt ist.

Ganz so einfach ist es nicht - zumindestw ennD u wirklich sauber arbeiten willst. Denn eine Seite wird nicht nur nicht angezeigt,w enn sie hidden ist, sondern auch, falls der User nicht ind er passenden FE-Gruppe ist oder die Seite eine Zeitbeschränkung hat (Stichwort enableFields).

Das würde eine direkte Abfrage verkomplizieren, weil mit TS-Logik if-Abfragen nicht sonderlich intuitiv sind. Eine Einfachere Möglichkeit dürfte sein, dass Du mit typolink-Funktion die URL der referenzierten Seite ermittelst (returnLast = url). Falls hier nichts zurückkommt, ist die Seite nicht zugreifbar, ansonsten kann das JS gebastelt werden.

Mal ganz grob und ungetestet als Ansatz:

jsOderNicht = TEXT
jsOderNicht.override = TEXT
jsOderNicht.override.typolink.parameter.field = feld_mit_id_der_iframe-seite
jsOderNicht.override.typolink.returnLast = url
jsOderNicht.override.stdWrap.required = 1
jsOderNicht.override.stdWrap.wrap = <script type="text/javascript">var url =|</script>

Mit einer Condition, wie in Deinem ungefähr-Beispiel kannst Du nicht auf verlinkte Seiten oder Inhalte (Contentelemente) zugreifen, sondern nur auf die Seiteneigenschaften der aktuellen Seite sowie Umgebungsvariablen, URL-Parameter und Session-Daten - also grob gesagt, alles, was während eines Seitenaufrufs nicht mehr verändert wird.

Viele Grüße
Julian