Seite 1 von 1
Boxen nach Kategorietiefe Ein- bzw. Ausblenden
Verfasst: Fr 14. Okt 2011, 15:25
von Big Cheese
Hallo zusammen
War schon lange nicht mehr hier. Wird deshalb auch Zeit sich mal wieder zu melden - wenn auch mit einem Problemchen
Ich habe die Startseite so konfiguriert, dass diese ohne Boxen angezeigt wird. Dies habe ich mittels folgender Änderung in der httpdocs / webs / includes / application_bottom.php erreicht:
Code: Alles auswählen
if($category_depth == 'top'){
$smarty->display('frontpage.html');
}else{
$smarty->display('index.html');
}
Nun möchte ich das selbe Template gerne auch auf der Produkte-Detailseite verwenden bzw. auch dort die gesamte col_left (also nicht nur die Boxen) ausblenden. Kann mir jemand sagen, wie die category_depth entsprechend erweitern muss? Mit =="products" hats leider nicht geklappt.
Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden
Verfasst: Fr 14. Okt 2011, 15:42
von Xantiva
Mach doch mal ein ...
um zu sehen, was $category_depth denn tatsächlich beinhaltet. Und poste mal die gesamte if - Abfrage.
Ciao,
Mike
Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden
Verfasst: Mo 17. Okt 2011, 09:06
von Big Cheese
Hallo Mike
Besten Dank für deine Antwort. Ich habs mal in die application_bottom.php (wie unten beschrieben) eingebaut. Auf der Frontseite wird lediglich eine neue leere Zeile eingeblendet.
Code: Alles auswählen
$smarty->assign('messageStack', $messageStack);
$smarty->assign('main_content', $main_content);
$smarty->caching = 0;
var_dump($category_depth);
if($category_depth == 'top'){
$smarty->display('frontpage.html');
}else{
$smarty->display('index.html');
}
Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden
Verfasst: Mo 17. Okt 2011, 09:28
von Xantiva
Nur eine "leere" Zeile sollte nicht sein. Selbst wenn die Variable nicht definiert ist, müsste dort etwas stehen.
Dann verwende doch bitte mal:
Dann sollte auf jeden Fall der String "$category_depth" angezeigt werden (ggf. nur im Quelltext der Seite). Sonst wird der Code nicht ausgeführt.
Ciao,
Mike
Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden
Verfasst: Mo 17. Okt 2011, 09:38
von Big Cheese
Aha, im Quelltext. Ja stimmt, dort sehe ich's nun. Komisch ist nur, dass die Produktedetailseite nur mit
ausgegeben wird, während auf der Frontseite
ausgegeben wird. Kann die Produktedetailseite eventuell nicht definiert werden?
Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden
Verfasst: Mo 17. Okt 2011, 12:34
von Xantiva
grr, immer die doppelten Auführungszeichen mit dem $ zusammen
Jetzt sollte auch der Text "category_depth:" da stehen
Aber zum Thema: Ja, scheinbar wird die Produktseite da nicht korrekt übermittelt. Warum auch immer, kann ich im Moment auch nicht prüfen.
Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden
Verfasst: Mo 17. Okt 2011, 12:47
von Doc Olson
Auf der Produktebene wird $category_depth überhaupt nicht ermittelt. Das findet nur in der index.php statt. Hurra xtc... (*würg*)
Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden
Verfasst: Mo 17. Okt 2011, 16:11
von Xantiva
Dann probiers doch einfach mal mit
in der /products_info.php ... (z. B. nach den ganzen require_once)
Ciao,
Mike
Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden
Verfasst: Di 18. Okt 2011, 08:05
von yogi
Hallo BigCheese,
wie Ole ja nun schon rausgefunden hat wird die "category_depth" *nur* in der index.php gesetzt.
Somit sollte die von dir programmierte Abfrage wie folgt aussehen:
Code: Alles auswählen
if (isset($category_depth) and $category_depth == 'top') {
...
um nun festzustellen ob eine Produktseite angezeigt wird könntest Du diese Abfrage um das Script von dem es aufgerufen wurde erweitern:
die Umgebungsvariable
$_SERVER['SCRIPT_NAME'] enthält das was Du brauchst. Diese enthält den Scriptnamen der vom Apache aufgerufen wird, also entweder
- index.php oder
- products_info.php oder (eins der anderen...)
Nun könntest Du die Abfrage wie folgt bauen:
Code: Alles auswählen
if (basename($_SEVER['SCRIPT_NAME']) == FILENAME_DEFAULT and $category_depth == 'top' or basename($_SERVER['SCRIPT_NAME']) == FILENAME_PRODUCT_INFO) {
...
Um auch in der application_bottom.php updatefähig zu bleiben könnte man diese Abfrage nun auch ins Template "verlegen". Hierfür halt die index.html aus dem Template entsprechend anpassen. Hierfür musst Du die $_SERVER Variable natürlich über das äquivalent in Smarty aufrufen. Die Variable $category_depth gibt es jedoch nicht im Template - und wir wollen den CORE nicht anpassen. Es gibt jedoch die "_GET" und "_REQUEST" variablen, die mit "cat" oder manufacturers_id bei der index.php gefüllt sind. Wenn nun eine der beiden Variablen gesetzt ist so handelt es sich
nicht um die Startseite.
Benenne die index.html => index2.html um und erstelle eine index.html mit folgendem Inhalt (oder baue es entsprechend in die index.html ein):
Code: Alles auswählen
{if $smarty.server.SCRIPT_NAME|basename == $smarty.const.FILENAME_DEFAULT and
!$smarty.get.cat and !$smarty.request.manufacturers_id or
$smarty.server.SCRIPT_NAME|basename == $smarty.const.FILENAME_PRODUCT_INFO}
{* Sonderseite *}
{include frontpage.html}
{else}
{* normale Seite *}
{include index2.html}
{/if}
Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden
Verfasst: So 6. Nov 2011, 17:18
von Big Cheese
Hallo zusammen
Bitte entschuldigt meine späte Antwort. Eine Grippe kam mir damals leider in die Quere. So konnte ich mein Umbauprojekt erst heute wieder in Angriff nehmen. Ein grosses Dankeschön auch an yogi für die detaillierte Hilfeleistung. Ich werde den Einbau heute Abend mal testen.