Вопрос по пагинации

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Странник
Сообщения: 278
Зарегистрирован: 2013.04.08, 10:35
Откуда: Нижний Новгород

Вопрос по пагинации

Сообщение Странник »

Добрый день. Попросили кое-что изменить в админке сайта.
Сайт делался лет 5 назад на первой версии yii.
Нужно на первой странице выводить 100 фотографий. Без пагинации.
Вставил следующие кусочки.
В модель:

Код: Выделить всё

	public function search()
	{
		$criteria=new CDbCriteria;
		$criteria->compare('id',$this->id);
		$criteria->compare('keywords',$this->keywords,true);
		$criteria->limit='100';
		$criteria->order='id DESC';
		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}
В контроллер:

Код: Выделить всё

		$model=new Photo('search');
		$dataProvider=new CActiveDataProvider('Photo', array(
			'criteria'=>array(
				'order'=>'date DESC',
				'limit'=>'100',
			),
			'pagination'=>array(
				'pageSize'=>'100',
			),
		)); 
		$this->render('index',array(
			'model'=>$model,
			'dataProvider'=>$dataProvider,
		));
Во вьюхе:

Код: Выделить всё

<?php $this->widget('zii.widgets.CListView', array(
	'dataProvider'=>$dataProvider,
	'itemView'=>'_view',
	'template'=>"{pager}\n{items}",
	)); ?>
Но появляется пагинация на все снимки.
Посоветуйте, что я делаю не так?

Аватара пользователя
samdark
Администратор
Сообщения: 9262
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Вопрос по пагинации

Сообщение samdark »

Код: Выделить всё

'pagination'=>array(
				'pageSize'=>'100',
			),
Это убрать.

Странник
Сообщения: 278
Зарегистрирован: 2013.04.08, 10:35
Откуда: Нижний Новгород

Re: Вопрос по пагинации

Сообщение Странник »

Спасибо. С этим разобрался.
Появилась проблема с пагинацией в CListView.
Для каждого снимка генерится _view.php:

Код: Выделить всё

<div class="wind">
<div class="betterTip" id="div<?php echo $data->id?>">
	<a id="mylink<?php echo $data->id?>" href="$mydiv<?php echo $data->id?>" class="betterTip"></a>
	<a href='/site/view?id="<?php echo $data->id?>'><img src="/pic/photo<?php echo $data->id?>.JPG" alt="" />
</div>
<div id="mydiv<?php echo $data->id?>" style="display:none">
	<div class="Podp21">Кто изображён: <?php echo $data->keywords?></div>
	<div class="Podp22">Дата съёмки: <?php echo $data->date?></div>
</div> 
</div>
С помощью bettertip при наведении на превью снимка должны выводиться всплывающие сообщения на каждый снимок.
На первой странице всё прекрасно работает, а вот на следующих нет.
Сами div с кодом сообщения генерятся.
bettertip грузится через laiouts\main.php

Код: Выделить всё

<head>...
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/main.css" />
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/ui.all.css" />
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/jquery.bettertip.css" />
<?php
$jscss = Yii::app()->getClientScript()->registerCoreScript('jquery');
Yii::app()->clientScript->registerPackage('jquery')->registerScriptFile('/js/jquery.bettertip.js');
?>
</head>
Как заставить bettertip опять работать?

Странник
Сообщения: 278
Зарегистрирован: 2013.04.08, 10:35
Откуда: Нижний Новгород

Re: Вопрос по пагинации

Сообщение Странник »

Решено. Добавил 'ajaxUpdate'=>false, и всё заработало!

Ответить