Sidepanel ausblenden falls keine Boxen

karabey

Sehr aktives Mitglied
28. November 2012
855
38
Hallo,

Wie kann ich Sidepanels mit PHP ausblenden falls keine Boxen vorhanden sind?

Ich wollte es mit dem PHP Code realisieren aber das war nicht der richtige weg

Code:
{if $cBoxLeft}<div id="sidepanel_left">...</div>{/if}

lg
karabey
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.385
262
AW: Sidepanel ausblenden falls keine Boxen

Denke nicht so kompliziert, das kannst du mit CSS sehr elegant lösen.

Code:
#content_wrapper {
    overflow: hidden;
    padding-left: 20px;


}
.panel_left #sidepanel_left {
    display: block;
    float: left;
    text-align: left;
    width: 180px;
    z-index: 2;


}

Dann musst du nur noch den gesamten <div id="content_wrapper">...</div> in der Reihenfolge hinter die beiden Sidepanels legen. Fertig.
 

karabey

Sehr aktives Mitglied
28. November 2012
855
38
AW: Sidepanel ausblenden falls keine Boxen

Danke für den Tip nur das Problem ist das ich mein Layout mit Bootstrap Framework überarbeitet wurde. Da die Sidepanels immer angezeigt werden, auch wenn keine Boxen drinnen sind, wird die Breite vom Content beeinflußt. Daher dachte ich mir das ich den DIV des Sidepanels komplett ausblende falls keine Box drinnen ist.
 

david

Administrator
Mitarbeiter
16. Juli 2010
2.309
169
AW: Sidepanel ausblenden falls keine Boxen

Und noch einfacher gehts über die Boxenverwaltung im Admin: Das Icon mit dem Auge und dem roten Minus-Symbol blendet das komplette Panel aus - wahlweise für alle Seiten oder nur für den selektierten Seitentyp.
 

karabey

Sehr aktives Mitglied
28. November 2012
855
38
AW: Sidepanel ausblenden falls keine Boxen

Mir geht es nicht nur um das ausblenden sondern um die If Anweisung damit ich den Content auch dementsprechende Breite angeben kann falls der Sidepanel ausgeblendet ist.

Content mit Sidepanel Links und Rechts = 60%
Content mit Sidepanel Links oder Rechts= 80%
Content ohne Sidepanels = 100%
 

david

Administrator
Mitarbeiter
16. Juli 2010
2.309
169
AW: Sidepanel ausblenden falls keine Boxen

Schau mal in die Datei functions.php im Tiny-Template, da gibt es noch eine Funktion "has_box_layout", die du für diese Zwecke nutzen kannst.
Als Parameter "position" mit dem Wert "left" oder "right" übergeben.
 

karabey

Sehr aktives Mitglied
28. November 2012
855
38
AW: Sidepanel ausblenden falls keine Boxen

Ich denke du meinst diese Funktion

PHP:
function get_box_layout($params, &$smarty)
{
   $cLayout = "";
   $bExclusive = $GLOBALS['smarty']->get_template_vars('bExclusive');

   if (boxAnzeigen('left') && !$bExclusive) $cLayout .= " panel_left ";
   if (boxAnzeigen('top') && !$bExclusive) $cLayout .= " panel_top ";
   if (boxAnzeigen('right') && !$bExclusive) $cLayout .= " panel_right ";
   if (boxAnzeigen('bottom') && !$bExclusive) $cLayout .= " panel_bottom ";
   
   return trim($cLayout);
}


Mein Aufruf der aber nicht funktioniert hat
PHP:
{if $get_box_layout =  position ( left );}Layout{/if}
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.385
262
AW: Sidepanel ausblenden falls keine Boxen

Mir geht es nicht nur um das ausblenden sondern um die If Anweisung damit ich den Content auch dementsprechende Breite angeben kann falls der Sidepanel ausgeblendet ist.

Content mit Sidepanel Links und Rechts = 60%
Content mit Sidepanel Links oder Rechts= 80%
Content ohne Sidepanels = 100%

Genau das macht mein genanntes CSS. Dank des Overflow hidden und der Platzierung am Ende ist es dem Content völlig wurscht wie breit die vorigen Elemente sind. Er wird immer den vorhandenen Platz voll ausnutzen. Das kannst du auch in dein Bootstrap Ding einbauen.
 

casim

Sehr aktives Mitglied
26. Juni 2012
5.934
9
AW: Sidepanel ausblenden falls keine Boxen

öhmmm ... entweder verstehe ich vor lauter Sommer-Hitze das Problem nicht .... oder ihr denkt zu kompliziert.

Wenn ich (siehe auch Beitrag von David) ... für eine Seite alle Boxen raus nehme UND für diesen Seitentyp auch das entsprechende sidepanel deaktiviere, dann macht der Shop doch eine Content-Breitenanpassung automatisch
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.385
262
AW: Sidepanel ausblenden falls keine Boxen

öhmmm ... entweder verstehe ich vor lauter Sommer-Hitze das Problem nicht .... oder ihr denkt zu kompliziert.

Wenn ich (siehe auch Beitrag von David) ... für eine Seite alle Boxen raus nehme UND für diesen Seitentyp auch das entsprechende sidepanel deaktiviere, dann macht der Shop doch eine Content-Breitenanpassung automatisch

Es geht ja darum die Sidepanels nicht generell zu deaktivieren, sondern lediglich deren Platz mit zu nutzen, sobald die Sidepanels leer sind. Das macht ja auch durchaus Sinn.
 

photoshop-becker

Aktives Mitglied
7. September 2011
29
0
"Dann musst du nur noch den gesamten <div id="content_wrapper">...</div> in der Reihenfolge hinter die beiden Sidepanels legen. Fertig. "

Wo finde ich die Template-Datei, in der ich die Reihenfolge ändern kann? Shop 4.06 , Theme "United".
 

Harald Weingaertner

Sehr aktives Mitglied
2. Oktober 2006
358
48

photoshop-becker

Aktives Mitglied
7. September 2011
29
0
Die Sidepanels sollen nicht generell deaktiviert werden, sondern lediglich den Platz nutzen, sobald die sie leer sind (siehe Screenshot). Die Kategorieliste soll 100% des Bildschirms in Anspruch nehmen. Wenn ich in der Boxenverwaltung den Container für die Artikeliste deaktiviere, werden keine Merkmale mehr in der in der Artikelliste angezeigt. Es gibt leider keinen Container "Kategorieliste", den ich deaktivieren könnte.
 

Anhänge

  • Beispiel.jpg
    Beispiel.jpg
    108,2 KB · Aufrufe: 7

Harald Weingaertner

Sehr aktives Mitglied
2. Oktober 2006
358
48

photoshop-becker

Aktives Mitglied
7. September 2011
29
0
Genau so wie es oben beschrieben ist, will ich es machen. Aber wo finde ich den <div id="content_wrapper">...</div>, damit ich ihn hinter die beiden Sidepanels legen kann?