Пагинация внутри поста [Решено]

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
svil
Сообщения: 563
Зарегистрирован: 2018.02.12, 22:41

Пагинация внутри поста [Решено]

Сообщение svil »

В DetailView (action view) выводится большое ОДНО текстовое поле content, чтобы вниз его не прокручивать нужная пагинация по его страницам. В документации есть возможность пагинации отдельных записей, здесь текстовое поле разбивается на части и выводится.

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

<?= DetailView::widget([
        'model' => $model,
        'template'=>'<tr><td>{value}</td></tr>',
        'attributes' => [
            [
                'attribute' => 'content',
                'format' => 'html',
            ],
        ],
    ]) ?>
Контроллер

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

public function actionView($id)
    {
     
        return $this->render('view', [
            'model' => $this->findModel($id),
        ]);
    }
Последний раз редактировалось svil 2019.09.05, 10:08, всего редактировалось 1 раз.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Пагинация внутри поста

Сообщение yiiliveext »

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

$contentProvider = new ArrayDataProvider([
            'allModels' => preg_split('/\n|\r\n?/', $model->content),
            'pagination' => [
                'pageSize' => 40
            ]
        ]);

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

<?= \yii\widgets\ListView::widget([
        'dataProvider' => $contentProvider,
        'itemView' => function ($model, $key, $index, $widget) {
            return $model;
        }]) ?>
Аватара пользователя
svil
Сообщения: 563
Зарегистрирован: 2018.02.12, 22:41

Re: Пагинация внутри поста

Сообщение svil »

Спасибо, разбираюсь.

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

 <?= \yii\widgets\ListView::widget([
        'dataProvider' => $contentProvider,
     
        'layout' => "{items}\n<table><tr><td>{pager}</td></tr></table>",
        'options' => [
            'tag' => 'table',
        
        ],
        'itemOptions' => [
            'tag' => false,
        ],
        'summary' => false,
        'itemView' => function ($model, $key, $index, $widget) {
            return $model;
        }]) ?>
Ответить