Помощник по просмотру URL всегда выводит параметры как часть URL (разделенные косой чертой) и, насколько мне известно, не поддерживает формат параметра GET.
Я не знаю, что делает класс Routes_Categories, но, работая с классами маршрутов ZF по умолчанию, попробуйте это:
$route = new Zend_Controller_Router_Route(
'/:lang/:category/:age/:dep/:cat/:towns/*',
array(
"dep" => 0,
"cat" => 0,
"towns" => 0
),
array(
"dep" => "[0-9]+",
"cat" => "[0-9]+"
)
);
$router->addRoute('ajax_gallery', $route);
* поддерживает любые дополнительные именованные параметры после вашего маршрута. Вышеприведенное предполагает, что требуется lang, категория и возраст, а dep, cat и town необязательны. Имейте в виду, что если вы хотите установить cat, вы должны установить dep, иначе маршрут будет сбит с толку, какая именно переменная.
В вашем контроллере доступ к параметру страницы осуществляется через следующее, что устанавливает значение по умолчанию 1.
$page = $this->_getParam('page', 1);
Доступ к URL через AJAX как: http://localhost/en/gallery/2/9/27/1
Если вам нужен параметр страницы, используйте именованный параметр: http://localhost/en/gallery/2/9/27/1/page/2
Чтобы этот маршрут работал в вашей нумерации страниц, вам необходимо обновить элементы управления представлением пагинатора, чтобы использовать правильный маршрут. Смотри: http://framework.zend.com/manual/en/zend.paginator.usage.html#zend.paginator.usage.rendering.example-controls
Найдите код, по которому выводится URL, и добавьте имя маршрута в помощник просмотра URL. Поэтому замените код следующим образом:
<?php echo $this->url(array('page' => $this->previous)); ?>
С:
<?php echo $this->url(array('page' => $this->previous), 'ajax_gallery'); ?>