Я использую партиал paginationControl и передаю параметры через 4-й параметр, чтобы я мог разбивать на страницы «отфильтрованные» результаты. Это работает нормально, но я хотел бы иметь возможность использовать один и тот же партиал для всех экземпляров разбивки на страницы, даже если они будут использовать разные параметры.
например "свойства" фильтруются по нет. спальни
давая 4-й параметр в экземпляре элемента управления разбиением на страницы в скрипте просмотра ...
array('beds' => '$beds')
и используется в частичном ...
$this->beds
тогда как «клиенты» фильтруются по местоположению
давая 4-й параметр в экземпляре элемента управления разбиением на страницы в скрипте просмотра ...
array('location' => '$location')
и используется в частичном ...
$this->location
Как лучше всего этого добиться? Я мог бы получить доступ к 4-му параметру как к массиву ключей и значений, перебрать массив и построить аргументы для вспомогательной функции просмотра URL-адреса в частичном элементе paginationControl. ЕСЛИ я мог бы решить, как получить доступ к массиву. Но, возможно, в любом случае это не тот подход ...
Спасибо.
РЕДАКТИРОВАТЬ:
Вот часть, которую я использую для вывода элементов управления разбиением на страницы, как указано в комментариях.
<div class="pagination">
<div class="pages">
<!-- First page link -->
<?php if (isset($this->previous)): ?>
<a href="<?= $this->url() . "?" . http_build_query(array('group_id' => $this->group_id, 'page' => $this->first)); ?>">Start</a>
<?php else: ?>
<span class="disabled">Start</span>
<?php endif; ?>
<!-- Previous page link -->
<?php if (isset($this->previous)): ?>
<a href="<?= $this->url() . "?" . http_build_query(array('group_id' => $this->group_id, 'page' => $this->previous)); ?>">Previous</a>
<?php else: ?>
<span class="disabled">Previous</span>
<?php endif; ?>
<!-- Numbered page links -->
<?php foreach ($this->pagesInRange as $page): ?>
<?php if ($page != $this->current): ?>
<a href="<?= $this->url() . "?" . http_build_query(array('group_id' => $this->group_id, 'page' => $page)); ?>"><?= $page; ?></a>
<?php else: ?>
<span class="current"><?= $page; ?></span>
<?php endif; ?>
<?php endforeach; ?>
<!-- Next page link -->
<?php if (isset($this->next)): ?>
<a href="<?= $this->url() . "?" . http_build_query(array('group_id' => $this->group_id, 'page' => $this->next)); ?>">Next</a>
<?php else: ?>
<span class="disabled">Next</span>
<?php endif; ?>
<!-- Last page link -->
<?php if (isset($this->next)): ?>
<a href="<?= $this->url() . "?" . http_build_query(array('group_id' => $this->group_id, 'page' => $this->last)); ?>">End</a>
<?php else: ?>
<span class="disabled">End</span>
<?php endif; ?>
</div>
</div>
ОБНОВЛЕНИЕ:
Я принял решение RockyFords, потому что оно отвечает на основной вопрос о доступе к параметрам, переданным через 4-й параметр при создании экземпляра элементов управления разбиением на страницы. Тем не менее, я включаю здесь свою полную финальную часть на тот случай, если другой читатель захочет, чтобы результирующие параметры сгенерировали строку запроса.
<div class="pagination">
<div class="pages">
<?php
$params = Zend_Controller_Front::getInstance()->getRequest()->getParams();
unset($params['controller']);
unset($params['action']);
?>
<?= $this->first ?>
<!-- First page link -->
<?php if (isset($this->previous)): ?>
<a href="<?= $this->url() . "?" . http_build_query(array_merge($params , array('page' => $this->first))); ?>">Start</a>
<?php else: ?>
<span class="disabled">Start</span>
<?php endif; ?>
<!-- Previous page link -->
<?php if (isset($this->previous)): ?>
<a href="<?= $this->url() . "?" . http_build_query(array_merge($params , array('page' => $this->previous))); ?>">Previous</a>
<?php else: ?>
<span class="disabled">Previous</span>
<?php endif; ?>
<!-- Numbered page links -->
<?php foreach ($this->pagesInRange as $page): ?>
<?php if ($page != $this->current): ?>
<a href="<?= $this->url() . "?" . http_build_query(array_merge($params , array('page' => $page))); ?>"><?= $page; ?></a>
<?php else: ?>
<span class="current"><?= $page; ?></span>
<?php endif; ?>
<?php endforeach; ?>
<!-- Next page link -->
<?php if (isset($this->next)): ?>
<a href="<?= $this->url() . "?" . http_build_query(array_merge($params , array('page' => $this->next))); ?>">Next</a>
<?php else: ?>
<span class="disabled">Next</span>
<?php endif; ?>
<!-- Last page link -->
<?php if (isset($this->next)): ?>
<a href="<?= $this->url() . "?" . http_build_query(array_merge($params , array('page' => $this->last))); ?>">End</a>
<?php else: ?>
<span class="disabled">End</span>
<?php endif; ?>
isset($this->first)
вместоisset($this->previous)
- person RockyFord   schedule 25.07.2012