Joomla нумерация страниц в ссылках на неправильные страницы - PullRequest
0 голосов
/ 01 ноября 2011

Я пытаюсь преобразовать 1,5 компонента в 1,7. До сих пор все работает, кроме нумерации страниц.

Что происходит, это:

  • Если щелкнуть пункт меню «направляющие» в компонентном меню, откроется страница обзора.
  • нажатие на кнопку, называемую «список-путеводитель», вызывает список направляющих и полосу пагинации внизу. Но всякий раз, когда я нажимаю что-либо на этой панели, я возвращаюсь на страницу обзора.

Что у меня есть в view.html.php:

function display($tpl = null) {

  $items = $this->get('Items');
  $pagination = $this->get('Pagination');
  $this->state = $this->get("State");

  if (count($errors = $this->get('Errors'))) {
     JError::raiseError(500, implode('<br />', $errors));
     return false;
  }

  $this->items = $items;
  $this->children = $items;
  $this->pagination = $pagination;

  $this->addToolBar();

  parent::display($tpl);

}

и в шаблоне default.php я просто положил:

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

согласно всем учебным пособиям и статьям, которые я прочитал о 1.6 и 1.7, это должно работать из коробки. Так что либо я ошибся, либо есть еще кое-что, что это?

ДОПОЛНИТЕЛЬНО: Пока я работал над другим аспектом, я где-то читал, что в шаблоне не следует использовать имя атрибута формы. Поэтому я изменил:

<form action="<?php echo JRoute::_('index.php?option=com_guides'); ?>" method="post" name="adminForm">

в

<form action="<?php echo JRoute::_('index.php?option=com_guides'); ?>" method="post" id="adminForm">

Как ни странно, это меняет поведение ссылок нумерации страниц. Старый атрибут name возвращает меня на страницу повторного просмотра, в то время как новый атрибут id сохраняет меня на той же странице. Эта проблема сводит меня с ума.

Ответы [ 3 ]

1 голос
/ 02 ноября 2011

Я сравнил свой собственный код с несколькими другими другими компонентами, и я не понимаю, почему это будет решением, но каким-то образом это неожиданно работает, когда я изменяю код в шаблоне default.php на:

<form action="<?php echo JRoute::_('index.php?option=com_guides&view=guides'); ?>" method="post" id="adminForm" name="adminForm">

Другими словами, я должен указать атрибуты id и name И включить руководства & view = в URL. Я вижу, что другие компоненты делают это так, но другие, кажется, работают нормально без этого. Поэтому я подозреваю, что это зависит и от чего-то еще.

0 голосов
/ 23 февраля 2012

я использовал

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

и мой был в порядке.просто нужно было добавить это в view.html.php, затем добавил

pagination-> getListFooter ();?>

в default.php, и он отлично работает, без дополнительного кодирования

0 голосов
/ 01 ноября 2011

Вы просматриваете код, который выглядит хорошо, поэтому я начну с предположения, что ваша проблема связана с вашей моделью данных. Похоже, что вы либо не сохраняете информацию о состоянии своего пользователя должным образом, либо перезаписываете состояние просмотра при отправке формы. Каковы ваши параметры POST, когда вы нажимаете на панель нумерации страниц? Убедитесь, что переменные «task» или «view» не передаются обратно в Joomla. Вы написали свои собственные методы getPagination () и populateState ()? Вы, скорее всего, будете перенаправлены на ваше «направляющее» представление вашим контроллером, который предположительно реагирует на изменение переменных «задача» или «представление», которое передается в Joomla.

...