Yii CListView: как отключить все дополнительные HTML - PullRequest
2 голосов
/ 24 октября 2011

Я пытаюсь сгенерировать RSS-страницу с помощью CListView, но я получил дополнительный сгенерированный html в своих результатах:

<div id="yw0" class="list-view">
<div class="items">

и

<div class="keys" style="display:none" title="/index.php/rss"><span>2383</span><span>4743</span><span>1421</span></div>

Как я могу удалить его?

Ответы [ 3 ]

12 голосов
/ 09 февраля 2012

на самом деле это довольно просто, всего несколько строк кода.

ВМЕСТО использования CListView, просто используйте его внутренности:

$data = $dataProvider->getData();
foreach($data as $i => $item)
  Yii::app()->controller->renderPartial('your_item_view',
    array('index' => $i, 'data' => $item, 'widget' => $this));

вот и все.

1 голос
/ 24 октября 2011

Вы не можете сделать это без изменения класса CListView (yii v.1.1.8).

CListView расширяет CBaseListView http://code.google.com/p/yii/source/browse/tags/1.1.8/framework/zii/widgets/CBaseListView.php

    /**
     * Renders the view.
     * This is the main entry of the whole view rendering.
     * Child classes should mainly override {@link renderContent} method.
     */
    public function run()
    {
            $this->registerClientScript();

            echo CHtml::openTag($this->tagName,$this->htmlOptions)."\n";

            $this->renderContent();
            $this->renderKeys();

            echo CHtml::closeTag($this->tagName);
    }

    /**
     * Renders the key values of the data in a hidden tag.
     */
    public function renderKeys()
    {
            echo CHtml::openTag('div',array(
                    'class'=>'keys',
                    'style'=>'display:none',
                    'title'=>Yii::app()->getRequest()->getUrl(),
            ));
            foreach($this->dataProvider->getKeys() as $key)
                    echo "<span>".CHtml::encode($key)."</span>";
            echo "</div>\n";
    }
0 голосов
/ 24 января 2013

На сайте Yii есть очень хорошее вики-руководство о создании каналов .CListView предназначен для отображения списка элементов в формате html, а не в виде каналов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...