Вопрос

Я столкнулся с глупой ситуацией.Клиент попросил меня изменить его страницу «расширенного поиска», добавив несколько опций.URL-адрес этой страницы похож на http://www.domainname.com/index.php/catalogsearch/advanced/

Это магазин Magento, и у меня нет опыта работы с этим фреймворком.Я пытался изучить его, но обнаружил, что кривая обучения слишком крутая, чтобы получить достаточно знаний и завершить проект вовремя.

Поэтому я сначала создал небольшой инструмент PHP, который ищет во всех исходных файлах поисковый запрос и сообщает о количестве совпадений.Я использовал этот инструмент для поиска уникальных строк, которые появляются на странице расширенного поиска.Но текста нигде нет!

Моя следующая попытка заключалась в поиске строки в базе данных.Поэтому я экспортировал все данные БД, скопировал полученные запросы в свой редактор кода, снова поискал и ничего не нашел!

Это очень неловко и сводит меня с ума.Я не могу найти блок кода, который выводит параметры расширенного поиска!

'Любая помощь приветствуется.

Спасибо, Маджид

Это было полезно?

Решение

URL-адреса в Magento сообщают вам, где находятся файлы шаблонов для определенного модуля.

Например, когда вы ищете catalogsearch/advanced/, все файлы шаблонов находятся в приложении/design/frontend/default/your-theme/.

Загляните в эту папку, и это должно быть очевидно.У вас будет папка с названием catalogsearch и внутри нее папка под названием advanced;внутри которого есть два файла:

  • form.phtml
  • result.phtml

Другие советы

До сих пор я использовал следующую тактику на локальном компьютере для разработчиков — очевидно, не пытайтесь использовать ее в реальном магазине!:

  1. Включите подсказки пути к шаблону + имена блоков в разделе «Система» -> «Конфигурация» -> «Разработчик».Это приведет вас к файлу phtml, который выполняет окончательную визуализацию, а также к типу объекта блока, который он использует.Если вы не ограничили IP-адрес, их увидит каждый посетитель!
  2. Затем в файлах phtml для дальнейшего копания вы можете легко использовать Zend_Debug::dump($var), чтобы проверить рассматриваемую переменную/объект и найти тип объекта и т. д.
  3. Выполните поиск в своем редакторе или просмотрите каталоги /app/code, чтобы найти файлы, определяющие тип объекта, который вы только что нашли - хотя, поскольку он основан на Zend, правильный путь к файлу в большинстве случаев можно определить из класса объекта.

Также

  • Удобный трюк — намеренно вставить ошибку в файл php/phtml. Magento предоставляет вам красиво отформатированный экран ошибок со стеком вызовов, который интересно читать.
  • Операторы echo() в основных файлах обычно работают довольно хорошо, в настройке Magento они обычно не вызывают отправку заголовков html в неподходящее время.
  • Используйте IDE, например Netbeans/Eclipse/Zend studio и т. д., и поместите весь код Magento в свой проект. Полученная информация phpdoc, «открытое объявление» и помощь по коду сэкономят вам часы поиска.
  • Потратьте время на то, чтобы заставить Xdebug работать на вашем тестовом сервере с помощью IDE, которая позволит вам его использовать.Самый простой вариант настройки с нуля (на Mac), который я нашел, — это локальная установка Mamp с использованием Netbeans в качестве IDE. Сайт Netbeans проведет вас через все это. Как только все будет работать хорошо, вы сможете забыть о большинстве другие трюки!

Это только то, что я пробовал до сих пор — пожалуйста, больше предложений!Я до сих пор не нашел способа отладки проблем с конфигурацией из-за проблем с XML во множестве XML-файлов, которые использует Magento, проблемы здесь, как правило, терпят неудачу незаметно, и в результате их действительно трудно отследить + документация xml ужасна.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top