Ищете лучшее решение Breadcrumb для проекта Zend Framework.
В настоящее время у меня есть navigation.xml, например
<?xml version="1.0" encoding="UTF-8"?>
<configdata>
<nav>
<home>
<label>Home</label>
<module>default</module>
<controller>index</controller>
<action>index</action>
<pages>
<countryurl>
<label>Spain</label>
<module>default</module>
<controller>country</controller>
<action>index</action>
<route>country_url</route>
<params>
<country>spain</country>
</params>
<pages>
<provinceurl>
<label>Madrid</label>
<module>default</module>
<controller>country</controller>
<action>province</action>
<route>province_url</route>
<params>
<country>spain</country>
<province>madrid</province>
</params>
<pages>
<cityurl>
<label>City</label>
<module>default</module>
<controller>country</controller>
<action>city</action>
<route>city_url</route>
<params>
<country>spain</country>
<province>madrid</province>
<city>madrid</city>
</params>
<pages>
<producturl>
<label>Product</label>
<module>default</module>
<controller>country</controller>
<action>product</action>
<route>product_url</route>
<params>
<country>spain</country>
<province>madrid</province>
<city>madrid</city>
<product>product</product>
</params>
</producturl>
</pages>
</cityurl>
</pages>
</provinceurl>
</pages>
</countryurl>
</pages>
</home>
</nav>
</configdata>
и такие маршруты
$router->addRoute(
'product_url',
new Zend_Controller_Router_Route(':lang/:country/:province/:city/:product', array(
'controller' => 'country',
'action' => 'product'
))
);
$router->addRoute(
'city_url',
new Zend_Controller_Router_Route(':lang/:country/:province/:city', array(
'controller' => 'country',
'action' => 'city'
))
);
$router->addRoute(
'province_url',
new Zend_Controller_Router_Route(':lang/:country/:province', array(
'controller' => 'country',
'action' => 'province'
))
);
$router->addRoute(
'country_url',
new Zend_Controller_Router_Route(':lang/:country', array(
'controller' => 'country',
'action' => 'index'
))
);
Я столкнулся с некоторыми проблемами / ищу некоторые предложения. Создание хлебных крошек с помощью Zend_Navigation
$config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'nav');
$container = new Zend_Navigation($config);
$view->navigation($container);
1 ) Запрос на http://example.com/en/spain/madrid/madrid/product
показывает хлебную крошку с помощью
$this->navigation()
->breadcrumbs()
->setMinDepth(0)
->setLinkLast(true)
->setSeparator(" > ");
as Home > Spain > Madrid > City > Product
Но все ссылки, указывающие на Испанию, Мадрид, Сити, ведут на http://example.com
. Что должно быть http://example.com/en/spain
, http://example.com/en/spain/madrid
, http://example.com/en/spain/madrid/madrid
соответственно.
2 ) В настоящее время, когда запрос на http://example.com/en/spain
хлебная крошка покажет Home >> Spain
<label>Spain</label>
<module>default</module>
<controller>country</controller>
<action>index</action>
<route>country_url</route>
<params>
<country>spain</country>
</params>
Но вы можете видеть, что param country
различается в зависимости от страны. Итак, мы хотим добавить ярлыки для всех стран?
Home >> Spain
Home >> India
У меня есть провинции, города и продукты, какие-нибудь предложения, как я могу построить для них?
Кроме того, это многоязычный веб-сайт, поэтому как мы можем внести необходимые изменения в этикетку? Я думаю, если мы используем Zend_Translate, он внесет необходимые изменения.
routeShutdown()
, так что вы можете добавить только нужный вам путь к стране/области/городу). Но это все еще не решает вашу основную проблему: кажется, что навигационные/хлебные крошки собирают URL-адреса, используя неправильный маршрут. - person David Weinraub   schedule 13.02.2012