Si recibimos un error al crear un layout personalizado para nuestra tienda magento similar al siguiente:
Trace:
#0 \lib\Zend\Cache\Core.php(545): Zend_Cache::throwException(’Invalid id or t...’)
#1 \lib\Zend\Cache\Core.php(564): Zend_Cache_Core::_validateIdOrTag(’’)
#2 \lib\Zend\Cache\Core.php(322): Zend_Cache_Core::_validateTagsArray(Array)
#3 \app\code\core\Mage\Core\Model\App.php(1045): Zend_Cache_Core->save(’saveCache()
#6 \app\code\core\Mage\Core\Controller\Varien\Action.php(265): Mage_Core_Model_Layout_Update->load()
#7 \app\code\core\Mage\Cms\Helper\Page.php(83): Mage_Core_Controller_Varien_Action->loadLayoutUpdates()
#8 \app\code\core\Mage\Cms\controllers\IndexController.php(45): Mage_Cms_Helper_Page->renderPage(Object(Mage_Cms_IndexController), ‘home-german’)
#9 \app\code\core\Mage\Core\Controller\Varien\Action.php(376): Mage_Cms_IndexController->indexAction()
#10 \app\code\core\Mage\Core\Controller\Varien\Router\Standard.php(248): Mage_Core_Controller_Varien_Action->dispatch(’index’)
#11 \app\code\core\Mage\Core\Controller\Varien\Front.php(158): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#12 \app\Mage.php(459): Mage_Core_Controller_Varien_Front->dispatch()
#13 \index.php(65): Mage::run()
#14 {main}
Lo que debemos hacer es seguir 2 simples pasos, el primero será buscar nuestro archivo use_cache.ser (que puede que no tengamos si lo hemos trasteado anteriormente).
1.- en caso de no tenerlo lo crearemos, si lo tenemos pasamos al punto 2
touch use_cache.ser
2.- y ahora le cambiaremos los permisos de escritura
(es muy frecuente encontrar el problema por haber puesto permisos 777 que son incorrectos para este archivo).
Una vez ya tenemos el archivo bien configurado, nos vamos a ir al fichero en el que agregamos nuestro layout, en este caso
y buscamos la parte del código, por ejemplo:
<layouts>
<redirect>
<label>Limpio</label>
<template>page/0column.phtml</template>
</redirect>
</layouts>
</cms>
Pues bien, el problema reside en que hay que definir una etiqueta layout, con lo que quedaría así:
<layouts>
<redirect>
<label>Limpio</label>
<template>page/0column.phtml</template>
<layout_handle>page_0column</layout_handle>
</redirect>
</layouts>
</cms>
Veremos que el nombre sería page/0column.phtml = page_0column si tenemos page/mitemplate.phtml pondremos page_mitemplate.
Con esto nos debería quedar resuelto el problema de código, ahora solo nos queda irnos a la administración y refrescar el caché, la próxima vez que entremos en la página que nos daba error debería funcionar.