Cuando trabajamos con magento a veces la cosa más simple nos puede volver locos. Si recibimos un error al crear un layout personalizado para nuestra tienda magento similar al siguiente:
Invalid id or tag ‘’ : must use only [a-zA-Z0-9_] Trace: #0 libZendCacheCore.php(545): Zend_Cache::throwException(’Invalid id or t...’) #1 libZendCacheCore.php(564): Zend_Cache_Core::_validateIdOrTag(’’) #2 libZendCacheCore.php(322): Zend_Cache_Core::_validateTagsArray(Array) #3 appcodecoreMageCoreModelApp.php(1045): Zend_Cache_Core->save(’saveCache() #6 appcodecoreMageCoreControllerVarienAction.php(265): Mage_Core_Model_Layout_Update->load() #7 appcodecoreMageCmsHelperPage.php(83): Mage_Core_Controller_Varien_Action->loadLayoutUpdates() #8 appcodecoreMageCmscontrollersIndexController.php(45): Mage_Cms_Helper_Page->renderPage(Object(Mage_Cms_IndexController), ‘home-german’) #9 appcodecoreMageCoreControllerVarienAction.php(376): Mage_Cms_IndexController->indexAction() #10 appcodecoreMageCoreControllerVarienRouterStandard.php(248): Mage_Core_Controller_Varien_Action->dispatch(’index’) #11 appcodecoreMageCoreControllerVarienFront.php(158): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http)) #12 appMage.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).
app/etc/use_cache.ser
1.- en caso de no tenerlo lo crearemos, si lo tenemos pasamos al punto 2
cd app/etc/use_cache.ser touch use_cache.ser
2.- y ahora le cambiaremos los permisos de escritura
chmod 666 use_cache.ser
(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
cd app/local/local.xml
y buscamos la parte del código, por ejemplo:
Limpio page/0column.phtml
Pues bien, el problema reside en que hay que definir una etiqueta layout, con lo que quedaría así:
Limpio page/0column.phtml page_0column
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.