PDA

Zobacz pełną wersję : index.php - układ 3 kol. na głównej i 2 kol. na podstronach



meek76
17-12-2013, 20:12
Hej,

chcę zrobić szablon, bazujący na 12 gridach który na stronie głównej miałby układ 3 kolumnowy:
main(szer:6), sidebar-1(szer:2), sidebar-2(szer:4),

a na podstronach 2 kolumnowy:
main(6) sidebar-2(4)

i na jednej z podstron 1 kolumnowy:
main(12)

PHP znam tylko podstawy. Nie mam problemu ze zrobieniem szablonu o stałej szerokości kolumn, ale to mnie trochę przerasta.
Nie chcę przypisywać innego szablonu do poszczególnych podstron.

Czy ktoś może mi pomóc, wskazać jakieś istniejące rozwiązanie lub tutorial na którym można się wzorować?

Pozdrawiam

zwiastun
17-12-2013, 21:26
I chyba trochę jeszcze za małą wiedzę na temat projektowania szablonów dla Joomla, bo to, o co pytasz to "standard" od najdawniejszych joomlowych czasów. Najkrócej mówiąc, budujesz szablon trzykolumnowy z kolumną centralną dostosowująca swoją szerokość do szerokości pozostałej w oknie przeglądarki po wyłączeniu wszystkich modułów w kolumnach/kolumnie.

meek76
17-12-2013, 22:58
To mój pierwszy szablon Jooomla. Zrobiłem coś takiego:


<div class="container">
<div class="row">


<div id="main">
<jdoc:include type="message" />
<jdoc:include type="component" />
</div>


<?php if ($this->countModules('sidebar-1 and sidebar-2')) : ?>
<div class="col-lg-2 ">
<jdoc:include type="modules" name="sidebar-1" style="xhtml" />
</div>
<style type="text/css" media="screen">
#main{width:50%;float: left; }
</style>
<?php endif; ?>


<?php if ($this->countModules('sidebar-2')) : ?>
<div class="col-lg-4 ">
<jdoc:include type="modules" name="sidebar-2" style="xhtml" />
</div>
<?php endif; ?>


<?php if (!($this->countModules('sidebar-1'))) : ?>
<style type="text/css" media="screen">
#main{width:66%;float: left; }
</style>
<?php endif; ?>




</div>
</div>



W układzie 2 kolumnowym to działa i w 3 kolumnowym również
nie za bardzo wiem jak zrobić żeby w sytuacji gdy nie wyświetla się sidebar-1 i sidebar-2 main było na całą szerokość

W jakim szablonie mógłbym podejrzeć mniej przekombinowane rozwiązania?

zwiastun
17-12-2013, 23:53
W jakim szablonie mógłbym podejrzeć mniej przekombinowane rozwiązania?
W standardowym. to nie jest "przekombinowane. to jest póki co jeszcze szkielet, w którym masz trzy bloki oznaczone main (nie ma jeszcze potrzeby w przypadku tak prostego rozwiązania osadzać w odrębnym divie, choć pewno taki będzie potrzebny), sidebar-1 i sidebar-2.
Style wpisane w szablon to jest jakieś rozwiązanie, ale również nienajlepsze.
Siądź i przerób jakiś kurs projektowania szablonów dla Joomla, bo takowe są dostępne w Sieci, a trudno Cię tutaj prowadzić za rączkę.

meek76
18-12-2013, 00:12
Ok, spróbuje z tym: http://wiki.joomla.pl/Ukrywanie_kolumn wygląda to na jasno przedstawione, przepraszam za zawracanie głowy - od tego powinienem zacząć.
Szkielet szablonu wykorzystałem stąd: http://blank.vc/ wszystko fajnie działa tylko z tymi kolumnami nie ogarniałem tematu.
Pozdrawiam

zwiastun
18-12-2013, 09:59
Na te materiały patrz raczej jak na przedstawienie ogólnych zasad - powstały kilka lat temu, sporo się w projektowaniu stron ostatnimi laty zmieniło, mamy czas HTML5 i CSS3, a Joomla 2.5 i 3.2, natomiast materiały powstawały, gdy królował J 1.5

meek76
21-12-2013, 19:46
Ok, to działa tak jak chciałem, czyli układ 3 kolumnowy z sidebar-1 i sidebar-2 lub 2 kolumnowy z sidebar-2, lub jednokolumnowy, style z bootstrap:




<?php
$main = "col-lg-12";
if($this->countModules('sidebar-1 or sidebar-2') == 1) $main = "col-lg-8";
if($this->countModules('sidebar-1 and sidebar-2') == 1) $main = "col-lg-6";
?>


<div class="container">
<div class="row">


<div class="<?php echo $main; ?>">
<jdoc:include type="component" />
</div>


<?php if ($this->countModules('sidebar-1 and sidebar-2')) : ?>
<div class="col-lg-2 ">
<jdoc:include type="modules" name="sidebar-1" style="xhtml" />
</div>
<?php endif; ?>




<?php if ($this->countModules('sidebar-2')) : ?>
<div class="col-lg-4 ">
<jdoc:include type="modules" name="sidebar-2" style="xhtml" />
</div>
<?php endif; ?>


</div>
</div>

zwiastun
21-12-2013, 23:48
Gratulacje :)