URL base en xml de actualización del diseño de página cms
-
13-12-2019 - |
Pregunta
En este momento tengo un problema para configurar la URL base en el diseño de página de Magento CMS.En este momento estoy haciendo esto, pero no obtengo la URL base:
<action method="addCrumb">
<crumbName>Home</crumbName>
<crumbInfo>
<label>Home</label>
<title>Home</title>
<link> {{store url}} </link>
</crumbInfo>
</action>
Solución
Probablemente esté utilizando la referencia incorrecta.Solo el Mage_Page_Block_Html_Breadcrumbs
la clase tiene laaddCrumb
método.Ejemplo:
<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>
EDITAR:
Para obtener información dinámica sobre la nueva migaja agregada, vuelva a escribir Mage_Page_Block_Html_Breadcrumbs
.Las migajas se almacenan en una matriz como esta:
/**
* Array of breadcrumbs
*
* array(
* [$index] => array(
* ['label']
* ['title']
* ['link']
* ['first']
* ['last']
* )
* )
*
* @var array
*/
Creando el addCrumbCms
método:
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;
}
Y use el nuevo método en la última migaja, como este:
<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>
Nota:Crea una extensión para hacerlo, no cambies el núcleo.
Otros consejos
He intentado así:
<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>
Pero mi / IN para mi casa, me lleva a proyectar la carpeta raíz, no a la página de inicio de Magento.