Pregunta

He estado luchando con una situación estúpida. Un cliente me ha pedido que modifique su página de 'búsqueda avanzada' para agregar algunas opciones. La URL de esta página es como http://www.domainname.com/index.php/catalogsearch/advanced/

Esta es una tienda Magento y no tengo experiencia con este marco. Intenté aprenderlo, pero encontré que la curva de aprendizaje era demasiado empinada para obtener el conocimiento suficiente para terminar el proyecto a tiempo.

Así que primero hice una pequeña herramienta PHP que busca en todos los archivos de origen un término de búsqueda y reporta el número de resultados. Utilicé esta herramienta para buscar cadenas únicas que aparecen en la página de búsqueda avanzada. ¡Pero el texto no se encuentra en ninguna parte!

Mi siguiente intento fue buscar en la base de datos para encontrar la cadena. Así que exporté todos los datos de la base de datos y copié las consultas resultantes en mi editor de código y busqué nuevamente, ¡y no encontré nada!

Esto es muy incómodo y me está volviendo loco. ¡No puedo encontrar el bloque de código que genera las opciones de búsqueda avanzada!

Se agradecería MUCHA ayuda 'CUALQUIER'.

Gracias, Majid

¿Fue útil?

Solución

Las URL en Magento te dicen dónde están los archivos de plantilla para un determinado módulo.

Por ejemplo, cuando busca catalogsearch / advanced / , todos los archivos de plantilla se encuentran en la aplicación / design / frontend / default / your-theme / .

Mira dentro de esa carpeta y debería ser obvio. Tendrá una carpeta llamada catalogsearch y dentro de ella una carpeta llamada advanced ; Dentro de los cuales hay dos archivos:

  • form.phtml
  • result.phtml

Otros consejos

Hasta ahora he estado usando las siguientes tácticas en una caja de desarrollo local. ¡No intentes esto en una tienda en vivo, obviamente !:

  1. Activar sugerencias de ruta de plantilla + nombres de bloque en el sistema - > Config - > Desarrollador. Esto lo llevará al archivo phtml que realiza el procesamiento final y también al tipo de objeto de bloque que utiliza. A menos que haya limitado su IP, ¡cada visitante verá esto!
  2. Luego, en los archivos phtml para seguir investigando, puedes fácilmente Zend_Debug :: dump ($ var) para inspeccionar la variable / objeto en cuestión y encontrar el tipo de objeto, etc.
  3. Busque en su editor o grep a través de los directorios / app / code para encontrar qué archivos definen el tipo de objeto que acaba de encontrar, aunque la ruta correcta de los archivos puede resolverse la mayor parte del tiempo a partir del objeto. clase.

También

  • Un truco útil es insertar deliberadamente un error en un archivo php / phtml, Magento le brinda una pantalla de error con un formato agradable con una pila de llamadas que es interesante leer
  • las declaraciones echo () en los archivos principales normalmente funcionan bastante bien, en la configuración de Magento normalmente no activan que los encabezados html se envíen en el momento equivocado
  • Use un IDE como Netbeans / Eclipse / Zend studio, etc. e incluya todo el código de Magento en su proyecto, la información resultante de phpdoc, la 'declaración abierta' y la asistencia de código le ahorrarán horas de búsqueda
  • Pase el tiempo para hacer que Xdebug trabaje en su servidor de prueba con un IDE que le permita usarlo. El más fácil de instalar desde cero (en una Mac) es una instalación local de Mamp con Netbeans como IDE. El sitio de Netbeans lo guiará a través de esto. Una vez que esté funcionando bien, puede olvidarse de la mayoría. los otros trucos!

Estas son solo las cosas que he probado hasta ahora. ¡Más sugerencias, por favor! Todavía no he encontrado una técnica para depurar problemas de configuración de problemas de XML en la multitud de archivos XML que usa Magento, los problemas aquí tienden a fallar en silencio y son realmente difíciles de rastrear como resultado + la documentación xml es terrible.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top