Layout kezelés
#1
Posted 10 April 2012 - 08:17 AM
Lényegében 2 layoutot szeretnék, baloldalt egy sidebar, jobb oldalt a tartalom. Tehát a mostani ellentéte lenne.
#2
Posted 10 April 2012 - 10:09 AM
Speeedfire, on 10 April 2012 - 08:17 AM, said:
Pontosítanád egy kicsit a kérdést? Gondolom a yiic webapp által generált layout fájlokat már megtaláltad a views/layouts könytárban, és tudod, hogy ezeket tetszőlegesen módosíthatod/törölheted ill. új layoutokat készithetsz. Pontosan hol akadtál el? A css megírásánál?
#3
Posted 10 April 2012 - 10:23 AM
phtamas, on 10 April 2012 - 10:09 AM, said:
Igen, azokat megtaláltam, csak magára a működésére nem jöttem rá, hogy mit hova tesz. Illetve, hogy hol tudom ezeket méretezni, mert a css fájlban erre nem találok utalást.
Igazából, mint írtam azt szeretném, hogyha a sidabar bal oldalon lenne és a tartalmi rész lenne jobb oldalon.
#4
Posted 10 April 2012 - 10:40 AM
<div class="span-19">...</div>
és a
<div class="span-5 last">...</div>
elemek az érdekesek, ezeknek a tartalmát kell felcserélned, az oszlopok szélességét pedig a "span-" értéke határozza meg, de a blueprint oldalán megtalálod a részletes leírást.
#5
Posted 10 April 2012 - 03:13 PM
phtamas, on 10 April 2012 - 10:40 AM, said:
<div class="span-19">...</div>
és a
<div class="span-5 last">...</div>
elemek az érdekesek, ezeknek a tartalmát kell felcserélned, az oszlopok szélességét pedig a "span-" értéke határozza meg, de a blueprint oldalán megtalálod a részletes leírást.
Na, ennek jobban utána kell majd nézni akkor, mert nem ismerem még a blueprint frameworköt.
#6
Posted 10 April 2012 - 04:48 PM
The maker rests. The wheel’s in motion.
-- Imre Madách
check out Yii Themes at http://yiithemes.mehesz.net
#7
Posted 11 April 2012 - 07:52 AM
Amikor 2 layer van, hogy mondom meg neki, hogy melyikbe mi kerüljön?
Én ezt "választottam":
<?php $this->beginContent('//layouts/main'); ?>
<div class="span-5">
<div id="sidebar">
<?php
$this->beginWidget('zii.widgets.CPortlet', array(
'title'=>'Operations',
));
$this->widget('zii.widgets.CMenu', array(
'items'=>$this->menu,
'htmlOptions'=>array('class'=>'operations'),
));
$this->endWidget();
?>
</div><!-- sidebar -->
</div>
<div class="span-19 last">
<div id="content">
<?php echo $content; ?>
</div><!-- content -->
</div>
<?php $this->endContent(); ?>Itt bal oldalt van egy kisebb rész és a tartalmi rész jobb oldalt van. Hogy lehet dinamikus tartalomnál ezt megadni?
Pl ha renderelek több tartalmat, akkor mindegyik view résznél megadom, hogy $this->layout = 'valami';
Ez még nem egészen kerek, illetve ti ajaxos kéréseknél, a controllerbe íratjátok ki? Mert én próbáltam saját view-ot csinálni hozzá, de behúzta az egész oldalt, nekem pedig csak a renderelt view tartalmi része kellene.
#8
Posted 11 April 2012 - 10:50 AM
Speeedfire, on 11 April 2012 - 07:52 AM, said:
Amikor 2 layer van, hogy mondom meg neki, hogy melyikbe mi kerüljön?
Én ezt "választottam":
<?php $this->beginContent('//layouts/main'); ?>
<div class="span-5">
<div id="sidebar">
<?php
$this->beginWidget('zii.widgets.CPortlet', array(
'title'=>'Operations',
));
$this->widget('zii.widgets.CMenu', array(
'items'=>$this->menu,
'htmlOptions'=>array('class'=>'operations'),
));
$this->endWidget();
?>
</div><!-- sidebar -->
</div>
<div class="span-19 last">
<div id="content">
<?php echo $content; ?>
</div><!-- content -->
</div>
<?php $this->endContent(); ?>Itt bal oldalt van egy kisebb rész és a tartalmi rész jobb oldalt van. Hogy lehet dinamikus tartalomnál ezt megadni?
Pl ha renderelek több tartalmat, akkor mindegyik view résznél megadom, hogy $this->layout = 'valami';
Ha a dinamikus tartalom több egymástól független résztartalomból áll össze, akkor widgeteket vagy clipeket érdemes használni, a tartalom jellegétől és az oldal szerkezetétől függően.
Speeedfire, on 11 April 2012 - 07:52 AM, said:
Ajax kéréseknél használd a renderPartial()-t.
#9
Posted 11 April 2012 - 11:10 AM
phtamas, on 11 April 2012 - 10:50 AM, said:
Ez a második részt nem értem. Magában a controllerben használjam így? Ekkor nem fog a többi oldal rész betöltődni? Na ezt megnézem.
#10
Posted 11 April 2012 - 12:43 PM
Speeedfire, on 11 April 2012 - 11:10 AM, said:
Igen, a kontrollerben, a $this->render() helyett. Ha ugyanabból az actionból szeretnéd kiszolgálni az ajax és a nem ajax kéréseket is, akkor valahogy így:
if (Yii::app()->request->isAjaxRequest) {
$this->renderPartial('myView', array('data' => $data));
} else {
$this->render('myView', array('data' => $data));
}

Help














