Boxen nach Kategorietiefe Ein- bzw. Ausblenden

Du hast ein Problem gefunden und weißt nicht genau wo es hinpasst...
Antworten
Big Cheese
Beiträge: 76
Registriert: Sa 31. Jul 2010, 09:02

Boxen nach Kategorietiefe Ein- bzw. Ausblenden

Beitrag 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 :oops:

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.
Xantiva
Beiträge: 948
Registriert: Mo 10. Mai 2010, 16:26
Shop Version: 1.0.10 [dev]
Kontaktdaten:

Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden

Beitrag von Xantiva »

Mach doch mal ein ...

Code: Alles auswählen

var_dump($category_depth);
um zu sehen, was $category_depth denn tatsächlich beinhaltet. Und poste mal die gesamte if - Abfrage.

Ciao,
Mike
Mein Shop: http://www.basteln-selbermachen.de
Big Cheese
Beiträge: 76
Registriert: Sa 31. Jul 2010, 09:02

Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden

Beitrag 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');
}
Xantiva
Beiträge: 948
Registriert: Mo 10. Mai 2010, 16:26
Shop Version: 1.0.10 [dev]
Kontaktdaten:

Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden

Beitrag 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:

Code: Alles auswählen

var_dump("$category_depth:", $category_depth);
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
Mein Shop: http://www.basteln-selbermachen.de
Big Cheese
Beiträge: 76
Registriert: Sa 31. Jul 2010, 09:02

Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden

Beitrag von Big Cheese »

Aha, im Quelltext. Ja stimmt, dort sehe ich's nun. Komisch ist nur, dass die Produktedetailseite nur mit

Code: Alles auswählen

string(1) ":"
NULL
ausgegeben wird, während auf der Frontseite

Code: Alles auswählen

string(4) "top:"
string(3) "top"
ausgegeben wird. Kann die Produktedetailseite eventuell nicht definiert werden?
Xantiva
Beiträge: 948
Registriert: Mo 10. Mai 2010, 16:26
Shop Version: 1.0.10 [dev]
Kontaktdaten:

Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden

Beitrag von Xantiva »

grr, immer die doppelten Auführungszeichen mit dem $ zusammen ;)

Code: Alles auswählen

var_dump('category_depth:', $category_depth);
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.
Mein Shop: http://www.basteln-selbermachen.de
Doc Olson
Beiträge: 536
Registriert: Mo 10. Mai 2010, 08:54

Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden

Beitrag von Doc Olson »

Auf der Produktebene wird $category_depth überhaupt nicht ermittelt. Das findet nur in der index.php statt. Hurra xtc... (*würg*)
Xantiva
Beiträge: 948
Registriert: Mo 10. Mai 2010, 16:26
Shop Version: 1.0.10 [dev]
Kontaktdaten:

Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden

Beitrag von Xantiva »

:o :lol: :lol: :lol:

Dann probiers doch einfach mal mit

Code: Alles auswählen

$category_depth = 'products';
in der /products_info.php ... (z. B. nach den ganzen require_once)

Ciao,
Mike
Mein Shop: http://www.basteln-selbermachen.de
yogi
Administrator
Beiträge: 292
Registriert: Do 6. Mai 2010, 14:16
Shop Version: die aktuelle
Wohnort: Köln
Kontaktdaten:

Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden

Beitrag 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}
Big Cheese
Beiträge: 76
Registriert: Sa 31. Jul 2010, 09:02

Re: Boxen nach Kategorietiefe Ein- bzw. Ausblenden

Beitrag 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.
Antworten