Page 1 of 1

[Gelöst]Anfängerfrage - If Abfrage über ein Tag

Posted: Thu Jun 10, 2010 7:26 am
by markus0711
Hallo,

ich beschäftige mich erst seit kurzem mit cmsmadesimple und komme bei einer wie mir scheint einfachen Fragestellung nicht weiter:

Ich möchte in einem Template prüfen, auf welcher Seite des Internetauftrittes der User gerade ist, um ihm dementsprechende Newsblköcke zu zeigen oder eben nicht.

Ich habe als erste Idee zur Unterscheidung der Seiten das Tag {menu_text} genommen und dachte, mit einer einfachen If-Abfrage zu klären, ob der User auf der Startseite ist oder nicht. Wenn ja, dann soll ein bestimmter Newsblock erscheinen.

Ich habe leider nach längerem Suchen nicht herausgefunden, wie {menu_text} in der Bedingung anzusprechen ist.

Wie sieht die Lösung aus?

Vielen Dank für eure Hilfe.

Code:

{* Start left side *}

         
           
---------- Hier die If Bedingung --------------
         {if {menu_text} == "Startseite}

           
             Neuheiten
           
         
           
{* Start News *}
             
             {news number='3' detailpage='news' moretext="weiterlesen..." category="Produkt" summarytemplate='Produkt'}
             
            {/if}
----------------------------------------------------
           
             Aktuelles
           
             
             {news number='3' detailpage='news' moretext="weiterlesen..." category="General"}
             
             
{* End News *}

Re: Anfängerfrage - If Abfrage über ein Tag

Posted: Thu Jun 10, 2010 7:44 am
by uniqu3
Es könnte so gehen:

Code: Select all

        <div id="left" class="core-float-right">
           {if $page_alias == "home"} <------ für seiten alias home. also startseite
            <div class="sbar-top">
              <h2 class="sbar-title">Neuheiten</h2>
            </div>
              <div class="sbar-main">
              <div id="news">
              {news number='3' detailpage='news' moretext="weiterlesen..." category="Produkt" summarytemplate='Produkt'}
              </div>
          {elseif $page_alias == "andere seite"} <----- sonst für eine andere vordefinierte seite
                       <div class="sbar-top">
              <h2 class="sbar-title">Neuheiten</h2>
            </div>
              <div class="sbar-main">
              <div id="news">
              {news number='3' detailpage='news' moretext="weiterlesen..." category="Kategorie" summarytemplate='Was Anderes'}
              </div> 
             {else} <------ sonst für alle anderen seiten

            <div class="sbar-top">
              <h2 class="sbar-title">Aktuelles</h2>
            </div>
              <div id="news">
              {news number='3' detailpage='news' moretext="weiterlesen..." category="General"}
              </div>
{/if}

Re: Anfängerfrage - If Abfrage über ein Tag

Posted: Thu Jun 10, 2010 7:59 am
by markus0711
Danke für die Hilfe.
Habe im Template mit

{php}
echo " Seite: " . $page_alias;
{/php}

$page_alias ausgeben wollen, ist aber leer.

Wo oder wie wird der Variablen $page_alias der Wert zugewisen oder wie muss die Ansprache an die Variable lauten?

Re: Anfängerfrage - If Abfrage über ein Tag

Posted: Thu Jun 10, 2010 8:04 am
by uniqu3
$page_alias ist schon bestandteil des CMS. Jedenfalls funktionert es so bei mir.

Re: [Gelöst]Anfängerfrage - If Abfrage über ein Tag

Posted: Thu Jun 10, 2010 8:42 am
by markus0711
Bei mir auch, paßt. :)
Vielen Dank nochmals.

Re: [Gelöst]Anfängerfrage - If Abfrage über ein Tag

Posted: Thu Jun 10, 2010 10:22 am
by cyberman
Bin mir nicht sicher, ob du dies weisst / beachtet hattest:

1. PHP musst du zur Verwendung erst in der config.php explizit freigeben ($config['use_smarty_php_tags'])
2. Du kannst auch Smarty-viablen in php verwenden

http://www.smarty.net/manual/de/api.get ... e.vars.php

Re: [Gelöst]Anfängerfrage - If Abfrage über ein Tag

Posted: Thu Jun 10, 2010 11:20 am
by NaN
Du kannst auch einfach Newskategorien anlegen die genauso heißen wie das Seitenalias.
Dann kannst Du Dir die If Abfragen sparen und stattdessen einfach nur

Code: Select all


{news category="$page_alias"}

verwenden.

Oder:

verwende die Extra Felder im Tab "Optionen" beim Bearbeiten einer Seite.
Dann kannst Du bei jeder Seite einfach eine Newskategorie zuordnen und im Template dann so die News aufrufen:

Code: Select all


{page_attr key="extra1" assign="news_category"}
{news category="$news_category"}

Oder (mein persönlicher Favorit ;) ):

Installiere das Modul AdvancedContent (inklusive Patches im Bugtracker).
Füge im Template ein Inhaltsblock vom Typ dropdown oder select_multiple an der Stelle hinzu wo die News stehen sollen und gib als dropdown-Werte die Newskategorien an:

Code: Select all


{content block="news_category" type="dropdown" values=":::news browscat=1 browsecattemplate='category_values':::" assign="news_category" }
{news category="$news_category"}

Erstelle im NewsModul ein Browsecattemplate, das einfach nur die Kategorien auflistet und mit einem | Zeichen voneinander trennt:

Code: Select all


{foreach from=$cats item=node}|{$node.news_category_name}{/foreach}

Wenn Du jetzt eine Seite bearbeiten willst, musst Du nur als Inhaltstyp "AdvancedContent" auswählen.
Dann erscheint ein Dropdown mit allen News Kategorien.

Re: [Gelöst]Anfängerfrage - If Abfrage über ein Tag

Posted: Fri Jun 11, 2010 8:13 am
by markus0711
VIELEN DANK !!!!
Nochmals für die Anregungen. :)