Jquery Layout и виджет диалога

Всем добрый день!

Использую Jquery Layout.

views/layouts/main.php




<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <meta name="language" content="ru" />


    <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->theme->baseUrl; ?>/css/default.css" />

    <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->theme->baseUrl; ?>/css/bootstrap/hack.css" />

    <?php Yii::app()->clientScript->registerScriptFile('/js/jquery.layout.js'); ?>

    <?php Yii::app()->getClientScript()->registerScriptFile(

        Yii::app()->clientScript->getCoreScriptUrl() . '/jui/js/jquery-ui.min.js'); ?>

    <?php Yii::app()->clientScript->registerCssFile(

        Yii::app()->clientScript->getCoreScriptUrl() . '/jui/css/base/jquery-ui.css'); ?>


    <title><?php echo CHtml::encode($this->pageTitle); ?></title>

</head>

<body>

    <div id="container">

        <div class="ui-layout-north" onmouseover="myLayout.allowOverflow(this)" onmouseout="myLayout.resetOverflow(this)">

            <?php $this->renderPartial('//layouts/navBar'); ?>


            <?php if (isset($this->breadcrumbs)): ?>

                <div id="breadcrumbs">

                <?php $this->widget('bootstrap.widgets.BootCrumb', array('links' => $this->breadcrumbs,)); ?>

                </div>

            <?php endif ?>

        </div>


        <?php echo $content; ?>

    </div>

</body>



views\layouts\column2.php




<?php $this->beginContent('//layouts/main'); ?>


<div id="content" class="ui-layout-center">

    <?php echo $content; ?>

</div>


<div class="ui-layout-east">

    <?php $this->widget('bootstrap.widgets.BootMenu', array(

        'type'=>'list',

        'items'=>$this->menu,

    )); ?>

</div>


<?php Yii::app()->clientScript->registerScript(

    'myLayout', "myLayout = $('#container').layout({ 

        zIndex: 0,

        east__applyDefaultStyles: true, east__resizable: true, east__closable: true, east__size: 250,

        north__resizable: false, north__closable: false, north__spacing_open: -18

    });

    myLayout.panes.center.css('overflow','auto');

    myLayout.panes.east.css('overflow-y','none');

    myLayout.panes.east.css('border-top','none');

    myLayout.panes.east.css('border-bottom','none');"

); ?>


<?php $this->endContent(); ?>



И использую диалог (из виджета bootstrap)

Когда дилог находится в представлении, внтури layout_center, то он и выводится только в этом layout.

Мне необходимо, чтоб диалог отображался поверх всех layout, т.е., мне необходимо чтобы на странице он был добавлен после ui-layout-east.

Приведу пример.

В JSF есть такие теги

<ui:insert name="dialog"/>

и

<ui:define name="dialog">

Диалог

</ui:define>

ui:insert - определяется в шаблоне.

ui:define - в представлении.

При обработке представления, из него берутся указанные теги и подставляются в шаблон в соответствующее место.

Вот хотелось бы узнать, есть ли реализации чего-то подобного в Yii?

Т.е., чтобы я в макете main (или в column2) указал, что внизу должен быть диалог. И при рендеринге, если он указан в представлении, диалог был туда подставлен.

Если есть какие-то другие варианты решения данной задачи, хотелось бы их выслушать, если вас не затруднит поделиться.

Пока сделал так.

В контроллер добавил св-во


public $dialog = null;

Изменил views\layouts\column2.php




<?php $this->beginContent('//layouts/main'); ?>


<div id="content" class="ui-layout-center">

	<?php echo $content; ?>

</div>


<div class="ui-layout-east">

	<?php $this->widget('bootstrap.widgets.BootMenu', array(

		'type'=>'list',

		'items'=>$this->menu,

	)); ?>

</div>


<?php echo $this->dialog ?>


<?php $this->endContent(); ?>



Вывод диалога в конце страницы.

И в представлении, в котором мне нужен диалог




<?php $this->dialog = $this->renderInternal(Yii::app()->theme->baseUrl . '/views/clients/modal.php', array('clients'=>$clients), true); ?>



Работает.

Пока не знаю, на какие грабли придется наступить из-за такого костыля. Придется решать проблемы по мере их поступления.