Problem mit DirectURL v3

  • Hallo,


    zunächst einmal frohes neues Jahr!
    Ich möchte gerne im Template einen bestimmten Teil nur auf der Startseite anzeigen lassen, soweit mir bekannt ist, kann man das generell wie folgt lösen:

    HTML
    1. {if strstr ($smarty.server.PHP_SELF, 'index')}
    2. Quelltext oder Box
    3. {/if}


    leider funktioniert das mit den DirectURL nicht einwandfrei. Zwar wird der eingeschlossene Quelltext nur auf der index.php angezeigt, allerdings ist beim direkten URL-Aufruf keine Ausgabe zu sehen. Das ist natürlich nicht ganz in meinem Sinne, da der Shop im Zweifel meist ohne den Zusatz /index.php aufgerufen wird.
    Eine Verlagerung in die Datei /module/main_content.html im Templateverzeichnis ist leider nicht möglich.
    Kann mir jemand von Euch weiterhelfen?


    Lg cerevisiam

  • Das ist eigentlich recht simpel. Der Shop arbeitet nur mit $_GET Befehlen. Also Prüfen ob diese leer sind, wenn ja -> Startseite ist geladen.


    Das könnte etwa so aussehen:

    HTML
    1. {php} if($_GET['coID']=='' && $_GET['cat']=='' && $_GET['cPath']=='' && $_GET['products_id']=='' && $_GET['manufacturers_id']=='' && $_GET['blog_id']=='' && $_GET['blog_cat']=='') { {/php}
    2. Dieser Text erscheint nur wenn die Startseite geladen wurde.
    3. {php} } {/php}

    Ist zwar ein bissel mehr Code, aber ne bombensichere Lösung.

  • Hallo Siekiera,


    vielen Dank für die schnelle Hilfestellung.
    Das funktioniert schon mal sehr viel besser, allerdings müsste ich jetzt noch den Bestellprozess, alle Account-Seiten und den Warenkorb ebenfalls auschliessen.
    Dort wird der Inhalt noch angezeigt.


    Ergänzung:
    Da die Zeit ein wenig drängt, habe ich es jetzt wie folgt gelöst:
    - Zweite, modifizierte index-Datei im Verzeichnis Templates angelegt (index2.html)
    - Alle relevanten Dateien im Rootverzeichnis des Shops (z.B. account.php) wie folgt geändert:

    HTML
    1. $smarty->display(CURRENT_TEMPLATE.'/index.html');


    geändert in:

    HTML
    1. $smarty->display(CURRENT_TEMPLATE.'/index2.html');


    Die Kombination der beiden Änderungen (Lösungsansatz von Siekiera, Nachbearbeitung der php-Dateien im Root) hat zum gewünschten Erfolg geführt.
    Vielleicht ist das ja für den einen oder anderen commerce:SEO Nutzer ebenfalls interessant.


    Lg cerevisiam