В поисках лучшего решения 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(" > ");
как 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
отличается в зависимости от страны.Итак, хотим ли мы добавить ярлыки для всех стран?
http://example.com/en/spain
Home >> Spain
http://example.com/en/india
Home >> India
У меня есть провинции, города и продуктыКроме того, какие-либо предложения, как я могу построить для этого?
Кроме того, это многоязычный веб-сайт, так как мы можем внести необходимые изменения в этикетку?Я думаю, что если мы используем Zend_Translate, он внесет необходимые изменения.