Yii выводит дублированное содержимое

Фронтенд парень говорит о бэкенде — имейте в виду.

У нас есть модуль под названием Ideas который имеет какую-то временную шкалу с различными записями идей для проекта.

Первоначальный рендер, на IdeasProjectController.php проходит через actionView метод для отображения представления на экране, но я хотел повторно использовать это действие, чтобы вместо этого я мог запросить какое-то содержимое с разбивкой по страницам из этого метода действия.

Вот как это выглядит сейчас:

$data = array(
'user' => $user,
'project' => $project,
'ideas' => $ideas,
'myIdeas' => false,
'offset' => isset($offset) ? $offset : 0,
'isAjaxRequest' => $isAjaxRequest,
'isVotingActive' => $project->isVotingActive(),
'userHasIdeas' => count($userIdeas) > 0,
'teamInviteParams' => $teamInviteParams,
);

// renderPartial only if an ajax request
if ($isAjaxRequest) {
$this->renderPartial('view', $data, null, true);
} else {
$this->render('view', $data);
}

в view.php связанный файл мы используем isAjaxRequest параметр, чтобы, наконец, запустить рендеринг другого файла ветки, с аналогичным набором данных, зная, что файл запрашивается полной render содержит файл ветки, который я использую для renderPartial, В этом случае:

if( $isAjaxRequest ) {

Yii::app()->twig->render('blocks/l-ideas/b-ideas-list/b-ideas-list.twig', array(..)

} else {

Yii::app()->twig->render('blocks/l-ideas/l-ideas-project/l-ideas-project.twig', array(..)

Пока все хорошо. Но мне нужно b-ideas-list для использования в файле макета ветки, как это: {% use '/blocks/l-ideas/b-ideas-list/b-ideas-list.twig' %} с совершенно разными результатами, так что это как b-ideas-list.twig выглядит как внутри:

{% block bIdeasList %}

{% if not isAjaxRequest %}
<div class="b-ideas-list__wrap b-ideas-list__wrap_no-margin">
.. lots of boilerplate ..
</div>

<div class="b-ideas-list b-ideas-list_covers clearfix">

<div class="b-ideas-list__wrap">
<div class="clearfix b-ideas-list__wraper-fixed-box">

<div class="b-ideas-list__left">&#160;</div>
<div class="b-ideas-list__center">
{{ block('bIdeasList_') }}
{{ block('bIdeasMore_') }}
</div>

{{ block('bIdeasListPartners_') }}

</div>
{{ block('bIdeasListActiveIdeas_') }}
</div>

</div>

{% else %}
{{ block('bIdeasList_') }}
{{ block('bIdeasMore_') }}
{% endif %}
{% endblock %}

Таким образом, по запросу AJAX я просто получаю минимальный список идей и More кнопка, чтобы загрузить больше при следующем запросе AJAX. С некоторым смещением и т. Д.

Сейчас. Если я получу http доступ к полученному URL, что-то вроде /ideas/ideasProject/view/1?offset=5 имея всего 7 записей в базе данных, я получаю две новые идеи и полный макет. Но делая такой же доступ через AJAX-вызов к одному и тому же URL-адресу, я получаю две карты идей, лишенные макета, и ТОГДА шаблонный код, окружающий bIdeasList заблокировать, как будто я не получил доступ с isAjaxRequest правда, всего за один звонок.

Если вы все еще читаете это. Как вы думаете, вы можете помочь?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]