Website lay-out wijzigen afhankelijk van de paginainhoud
Posted: Thu Feb 23, 2012 8:55 am
De websites die ik maak probeer ik altijd met zo weinig mogelijk templates te maken. Simpelweg omdat de technische kant van de website overzichtelijker blijft en daardoor voor de developer, maar ook voor de eindgebruiker eenvoudiger is bij te werken.
Zo moest ik voor mijn schoonvader een website maken met verschillende pagina lay-outs, dat willen zeggen 1, 2 óf 3 kolommen met content.
Met wat Smarty heb ik het toen zo gemaakt dat afhankelijk van het vullen van de drie beschikbare Content blokken de pagina lay-out automatisch wordt aangepast...
Stylesheet
HTML Template
Niet helemaal W3c valid, maar erg flexibel 
Grtz. Rolf
Zo moest ik voor mijn schoonvader een website maken met verschillende pagina lay-outs, dat willen zeggen 1, 2 óf 3 kolommen met content.
Met wat Smarty heb ik het toen zo gemaakt dat afhankelijk van het vullen van de drie beschikbare Content blokken de pagina lay-out automatisch wordt aangepast...
Stylesheet
Code: Select all
div#content {
min-height: 300px;
border: #ccc 2px solid;
background: #fff;
}
div#sidebar-left {
float: left;
width: 375px;
padding: 10px 15px;
}
div#sidebar-right {
float: right;
width: 375px;
padding: 10px 15px;
}
Code: Select all
{* Start Content *}
<div id="content">
{content block="content_left" wysiwyg="true" label="Left column" assign="content_left"}
{content label="Main content (Required)" assign="content_main"}
{content block="content_right" wysiwyg="true" label="Right column" assign="content_right"}
{* Start sidebar left *}
{if $content_left}
{literal}
<style type="text/css">
div#main {
padding-left: 410px;
}
</style>
{/literal}
<div id="sidebar-left">
{$content_left}
</div>
{/if}
{* End sidebar left *}
{* Start sidebar right *}
{if $content_right}
{literal}
<style type="text/css">
div#main {
padding-right: 410px;
}
</style>
{/literal}
<div id="sidebar-right">
{$content_right}
</div>
{/if}
{* End sidebar right *}
{* Start Content *}
<div id="main">
{$content_main}
</div>
{* End Content Area *}
<div class="clear"></div>
</div>
{* End Content *}

Grtz. Rolf
