[Решено] Как передать массив из контроллера в шаблон

#
[Решено] Как передать массив из контроллера в шаблон
Есть задача передать в типовой шаблон "Регистрация пользователя" поле регион. Регион берется из бд (таблица regions).
Для этого пропатчил модель Siteuser_Model, в админке я могу задать регион пользователя.

Не знаю как передать из контроллера Siteuser_Controller_Show массив вариантов региона, чтобы потом их вывести в шаблоне "Регистрация пользователя" в виде select.


$oRegion_Model = Core_Entity::factory('Region');
        $aRegions = $oRegion_Model->findAll();
        $aRegionIds = array();
        $aRegionNames = array();
        foreach($aRegions as $oRegion) {
            $aRegionIds[] = $oRegion->id;
            $aRegionNames[] = $oRegion->name;
        }

        $this->addEntity(
            Core::factory('Core_Xml_Entity')
                ->name('region_ids')
                ->value(implode(',', $aRegionIds))
        );
        $this->addEntity(
            Core::factory('Core_Xml_Entity')
                ->name('region_names')
                ->value(implode(',', $aRegionNames))
        );


В итоге в шаблон передаются отдельно id регионов и их имена:

<region_ids>9,10</region_ids>
<region_names>Регион 1,Регион 2</region_names>


Эту структуру нужно преобразовать в

<select name="region_id">
    <option value="9">Регион 1</option>
    <option value="10">Регион 2</option>
</select>


Помогите, пожалуйста, кто может. Заранее спасибо.
#
Re: Как передать массив из контроллера в шаблон
Проблему решил.

В xlst-шаблоне после страны добавил:


<div class="row">
<div class="caption">Регион</div>
  <div class="field">
    <input id="siteuser-region-id" name="region_id" type="text" value="{region_id}" size="40"/>
    <input id="siteuser-region-ids" type="hidden" value="{region_ids}"/>
    <input id="siteuser-region-names" type="hidden" value="{region_names}"/>
  </div>
</div>


Далее в главный js-файл шаблона добавил функцию


/**
*  Cелект регионов для формы регистрации пользователя
*/
function siteuserRegionSelect() {
    var input = $('#siteuser-region-id');
    var inputIds = $('#siteuser-region-ids');
    var inputNames = $('#siteuser-region-names');
    // получаем параметры
    var id = input.val();
    var ids = inputIds.val().split(',');
    var names = inputNames.val().split(',');

    // формируем селект
    var select = '';
    $.each(ids, function (i, e) {
        var selected = ids[i] == id ? 'selected' : '';
        select += '<option value="' + ids[i] + '"' + ' ' + selected + '>' + names[i] + '</option>';
    });
    select = '<select style="width:192px;border: 1px solid #acabaa;" name="region_id"><option>Выберите регион</option>' + select + '</select>';

    // заменяем инпут на селект
    input.replaceWith(select);

    // удаляем временные данные
    inputIds.remove();
    inputNames.remove();
}


Функция вызывается где надо при загрузке dom. Может, кому-то пригодится
Авторизация