Joomla: добавление нумерации страниц в режим редактирования

Я хотел бы добавить разбивку на страницы в режиме редактирования моего компонента в бэкэнде.

Есть 2 взгляда:

  • электронные письма
  • Эл. адрес

Разбивка на страницы работает в представлении «электронная почта», но не в представлении «электронная почта». Представление «электронная почта» показывает различные разговоры, представление «электронная почта» показывает электронные письма, которые связаны с разговором.

Если писем больше 10, я бы хотел добавить разбиение на страницы, но не знаю, как это сделать.


person user3755325    schedule 22.07.2014    source источник


Ответы (1)


В вашем view.html.php добавьте что-то вроде:

$this->pagination = $this->get('Pagination');

Это создает объект разбивки на страницы и назначает его представлению, чтобы затем он был доступен в шаблоне. Это также предполагает, что ваша модель расширяет JModelList, у которого есть метод getPagination.

Затем в файле шаблона вы можете сделать:

<?php echo $this->pagination->getListFooter(); ?>

и это должно вывести вашу разбивку на страницы.

Работает на меня! ;-)

person Adam Rifat    schedule 22.07.2014
comment
Привет, это работает, только если я использую JModelList, но в этом случае я должен использовать JModelAdmin, потому что мне нужно переопределить getItem(), которого нет в JModelList. Я попробовал это, и он показывает разбиение на страницы, но если вы нажмете на ссылку, вы будете перенаправлены в стандартный вид, который определен в контроллере. Это учебник, который я пробовал: tutsforu.com/pagination-in-joomla-component. .html - person user3755325; 22.07.2014
comment
Но если вы переопределяете getItem, я предполагаю, что это потому, что вы возвращаете более одной строки? В противном случае вам не понадобилась бы нумерация страниц, верно? Так почему бы не расширить JModelList и не заменить getListQuery кодом из getItem? Я делаю это в своем компоненте, и он работает нормально. - person Adam Rifat; 22.07.2014
comment
Привет, Адам, проблема в том, что моя модель извлекает данные из разных таблиц базы данных. Пока это мой код: d.pr/n/5Wpl Я не знаю, возможно ли это. с JModelList и getListQuery... - person user3755325; 23.07.2014
comment
Вы берете элемент и добавляете к нему новые свойства (метаданные и сообщения). Но вы по-прежнему получаете только один элемент из getItem и не можете разбивать один элемент на страницы! Что вам нужно сделать, так это расширить JModelList и написать новый метод getListQuery. Разница в том, что метод getListQuery будет содержать SQL для извлечения интересующих вас записей. Он будет содержать SQL, который вы уже написали (ссылаясь на таблицу __bestia_mails_messages) и присоединение к другим таблицам, где это необходимо (например, к той, на которую ссылается исходный вызов parent::getItem() Имеет ли это какой-то смысл? - person Adam Rifat; 23.07.2014
comment
Привет, Адам, так что ваше предложение, просто чтобы убедиться, что я правильно вас понимаю, состоит в том, чтобы расширить getListQuery и левое соединение элементов во второй таблице, верно? Разбивка на страницы - это вещь: разбивка на страницы должна просто обрабатывать элементы из 2-й базы данных, почты. - person user3755325; 23.07.2014
comment
Да. Просто измените свою модель, чтобы она расширялась от JModelList, а затем переопределите метод getListQuery с помощью необходимого SQL. Затем в вашем view.html.php измените $this-›item = $this-›get('Item') на $this-›items = $this-›get('Items'). Возможно, вам придется настроить несколько других битов здесь и там для маршрутизации и фильтрации, но это определенно работает, поскольку я сделал это сам ;-) - person Adam Rifat; 24.07.2014
comment
Привет Адам, я попробовал это вчера. Но мне нужна функция checkout() и разрешения, которые, как только я получил сейчас, предоставляются JModelAdmin :-( - person user3755325; 24.07.2014
comment
Не видя больше кода и экранов, над которыми вы работаете, трудно понять, как решить. Сколько просмотров вы имеете дело, 2 или 3? Разрешения и проверка, вероятно, могут быть решены в контроллере, не так ли? - person Adam Rifat; 24.07.2014
comment
Привет, Адам, у меня только что возникла идея, может быть, вы можете сказать мне, если это возможно: почему бы не использовать более 1 модели? Могу добавить еще одну модель в контроллер. 1 представляет беседу 1 представляет почту Модель беседы использует JModelAdmin, модель почты JModelList. Что вы думаете? - person user3755325; 24.07.2014
comment
Да, но я думал, что проблема в том, что может быть больше одного разговора? Иначе зачем вам пагинация? Вероятно, лучше всего, если вы откроете новый вопрос с более подробной информацией или отредактируете исходный вопрос. - person Adam Rifat; 24.07.2014
comment
Давайте продолжим обсуждение в чате. - person Adam Rifat; 24.07.2014