PepeFernandez Posted May 8 Share Posted May 8 (edited) Buenas, estoy intentando hacer que una característica no se vea en una parte de la tienda, anteriormente ya se había hecho y me encuentro este código en el tpl {foreach from=$product.grouped_features item=feature} {if $feature.id_feature !== $FEATURE_M2_CAJA_ID and $feature.id_feature !== $FEATURE_PIEZAS_CAJA_ID and $feature.id_feature !== $FEATURE_TIPOLOGIA_PRECIO_ID and $feature.id_feature !== $FEATURE_JUNTA_RECOMENDADA_ID and $feature.id_feature !== $FEATURE_DIAS_PLAZO_ENTREGA_ID and $feature.id_feature !== $FEATURE_TEXTO_MUESTRA_ID and $feature.id_feature !== $FEATURE_JUNTAS_ID and $feature.id_feature !== $FEATURE_HERRAMIENTAS_ID and $feature.id_feature !== $FEATURE_PRODUCTOS_ID and $feature.id_feature !== $FEATURE_MARCA_ID } <p> <span class="uppercase">{$feature.name}{l s=': ' d='Shop.Theme.Catalog'}</span> <span>{$feature.value|escape:'htmlall'|regex_replace:"/[\r\n]/" : ", " nofilter}</span> </p> {/if} {/foreach} por lo que digo, perfecto agrego la mia que sería agregar un "and $feature.id_feature !== $FEATURE_WEB_PRICE" al if, compruebo donde está declarada otra de las que aparecen, por ejemplo hago un ctrl+mayus+f de FEATURE_MARCA_ID para ver en mi ID todos los ficheros donde aparece y solo aparece en uno, en un override de FrontController en el que aparece 2 veces así que decido agregar mi variable justo debajo del mismo modo es decir: public const FEATURE_MARCA_ID = '39'; public const FEATURE_WEB_PRICE = '44'; ... $this->context->smarty->assign( 'FEATURE_MARCA_ID', self::FEATURE_MARCA_ID ); $this->context->smarty->assign( 'FEATURE_WEB_PRICE', self::FEATURE_WEB_PRICE ); Y ya no aparece en ningún sitio mas, por lo que pienso, genial ahora no se debe ver en el producto la categoría, pero cuando voy a comprobarlo me salta el siguiente error, diciendo que la variable no está definida: No lo entiendo, me falta algún paso? he borrado caché he reiniciado el servidor, pero por alguna razón no me pasa la variable al tpl. ¿Alquien sabe que pasa? Edited May 22 by PepeFernandez the topic is solved (see edit history) Link to comment Share on other sites More sharing options...
PepeFernandez Posted May 9 Author Share Posted May 9 Haciendo pruebas, he comentado otras variables del if en el override del FrontController y la página no da error, así que no se si es algo de que tiene en alguna caché el FrontController y no se resetearlo o que, pero es como si no me entrara en el override, he puesto algunos die() en la función que asigna las variables que es la de assignGeneralPurposeVariables() y no pasa nada, sin embargo si pongo el die en la misma función del FrontController que no es override si para la ejecución, por lo que creo que estoy en el lugar correcto para asignar las variables, pero no me las genera por otra razón Link to comment Share on other sites More sharing options...
PepeFernandez Posted May 9 Author Share Posted May 9 (edited) He probado también entrando en admin en rendimiento, poner el smarty en forzar compilación, borrando todas las caches y nada, sigue dando el mismo error, curioso que he probado también quitando el override del FrontController donde hay mas variables del if, pero da el mismo error, da fallo la que intento añadir yo, las demás no dan fallo incluso quitando el override. de momento soluciono el error cambiando el if de esta manera: {assign var="dontShowThisFeatures" value=[ $FEATURE_M2_CAJA_ID, $FEATURE_PIEZAS_CAJA_ID, $FEATURE_TIPOLOGIA_PRECIO_ID, 44, $FEATURE_JUNTA_RECOMENDADA_ID, $FEATURE_DIAS_PLAZO_ENTREGA_ID, $FEATURE_TEXTO_MUESTRA_ID, $FEATURE_JUNTAS_ID, $FEATURE_HERRAMIENTAS_ID, $FEATURE_PRODUCTOS_ID, $FEATURE_MARCA_ID ]} {foreach from=$product.grouped_features item=feature} {if !in_array($feature.id_feature, $dontShowThisFeatures)} <p> <span class="uppercase">{$feature.name}{l s=': ' d='Shop.Theme.Catalog'}</span> <span>{$feature.value|escape:'htmlall'|regex_replace:"/[\r\n]/" : ", " nofilter}</span> </p> {/if} {/foreach} pero claro, preferiría poder traerme el array desde el backend, pero no consigo que coja la variable ☹️ Edited May 9 by PepeFernandez (see edit history) Link to comment Share on other sites More sharing options...
PepeFernandez Posted May 14 Author Share Posted May 14 Esto me ha ido a mas, ahora por alguna razón en local no me lee los overrides Link to comment Share on other sites More sharing options...
PepeFernandez Posted May 22 Author Share Posted May 22 Creo que ya he descubierto que pasa, aunque no se muy bien porque, para evitar liarla en la web, yo en cada directorio de ficheros que estoy editando creo un directorio old y ahí descargo lo que está actual antes de subir los cambios por si pasa algo deshacerlo. bien, pues parece que prestashop cuando va a por el override si tengo uno en el old lo coge y claro ahí no están añadidas las variables de entorno Por Ejemplo: tengo un override/classes/controller/FrontController.php al que he agregado nuevas variables. Entonces descargo el FrontController actual en override/classes/controller/old/FrontController.php y ahora en local me dice que no están las variables definidas, solución renombrar el archivo: override/classes/controller/old/_FrontController.php Al renombrar la clase y vaciar la caché ya me coge de nuevo las variables que le había definido Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now