Url de Base de la cms mise en page de mise à jour xml
-
13-12-2019 - |
Question
Maintenant, je me pose problème pour définir l'url de base de magento CMS mise en page.Maintenant je fais comme ça,mais je ne suis pas aller à l'url de base :
<action method="addCrumb">
<crumbName>Home</crumbName>
<crumbInfo>
<label>Home</label>
<title>Home</title>
<link> {{store url}} </link>
</crumbInfo>
</action>
La solution
Vous utilisez probablement une mauvaise référence.Seul le Mage_Page_Block_Html_Breadcrumbs
la classe a l'addCrumb
la méthode.Exemple:
<reference name="breadcrumbs">
<action method="addCrumb">
<crumbName>Home</crumbName>
<crumbInfo>
<label>Home</label>
<title>Home</title>
<link>/</link>
</crumbInfo>
</action>
<action method="addCrumb">
<crumbName>CMS Page</crumbName>
<crumbInfo>
<label>CMS Label Page</label>
<title>CMS Title Page</title>
</crumbInfo>
</action>
</reference>
EDIT:
Pour obtenir dinamic info à nouveau miette ajoutée, de réécriture Mage_Page_Block_Html_Breadcrumbs
.Les miettes de stockage dans un tableau comme ceci:
/**
* Array of breadcrumbs
*
* array(
* [$index] => array(
* ['label']
* ['title']
* ['link']
* ['first']
* ['last']
* )
* )
*
* @var array
*/
La création de la addCrumbCms
méthode:
function addCrumbCms($crumbName, $crumbInfo, $after = false)
{
$crumbInfo['link'] = Mage::getUrl() . Mage::getSingleton('cms/page')->getIdentifier();
$this->_prepareArray($crumbInfo, array('label', 'title', 'link', 'first', 'last', 'readonly'));
if ((!isset($this->_crumbs[$crumbName])) || (!$this->_crumbs[$crumbName]['readonly'])) {
$this->_crumbs[$crumbName] = $crumbInfo;
}
return $this;
}
Et utiliser la nouvelle méthode dans la dernière miette, comme ça:
<reference name="breadcrumbs">
<action method="addCrumb">
<crumbName>Home</crumbName>
<crumbInfo>
<label>Home</label>
<title>Home</title>
<link>/</link>
</crumbInfo>
</action>
<action method="addCrumbCms">
<crumbName>CMS Page</crumbName>
<crumbInfo>
<label>CMS Label Page</label>
<title>CMS Title Page</title>
</crumbInfo>
</action>
</reference>
Note:Créer une extension pour le faire, de ne pas modifier le noyau.
Autres conseils
J'ai essayé comme ceci:
<reference name="root">
<action method="unsetChild"><alias>breadcrumbs</alias></action>
<block type="page/html_breadcrumbs" name="breadcrumbs" as="breadcrumbs">
<action method="addCrumb">
<crumbName>Home</crumbName>
<crumbInfo>
<label>Home</label>
<title>Home</title>
<link>/</link>
</crumbInfo>
</action>
<action method="addCrumb">
<crumbName>Recipes</crumbName>
<crumbInfo>
<label>Recipes</label>
<title>Recipe Home Page</title>
<link>magenshop/recipe</link>
</crumbInfo>
</action>
<action method="addCrumb">
<crumbName>Current Page</crumbName>
<crumbInfo>
<label>Current Page</label>
<title>Current Page</title>
</crumbInfo>
</action>
</block>
</reference>
Mais mon / in chez moi, me prends pour projet Dossier racine, pas la page d'accueil de Magento.