Как найти блок кода, который вы ищете в Magento? - PullRequest
1 голос
/ 24 октября 2009

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

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

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

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

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

«ЛЮБАЯ» помощь будет ОЧЕНЬ признательна.

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

Ответы [ 2 ]

6 голосов
/ 24 октября 2009

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

  1. Включите Подсказки к шаблонам + Имена блоков в Система -> Конфигурация -> Разработчик. Это приведет вас к phtml-файлу, который выполняет окончательный рендеринг, а также к типу блочного объекта, который он использует. Если это не ограничено вашим IP, каждый посетитель увидит это!
  2. Затем в phtml-файлах, чтобы копать дальше, вы можете легко использовать Zend_Debug :: dump ($ var) для проверки рассматриваемой переменной / объекта и поиска типа объекта и т. Д.
  3. Поиск в вашем редакторе или в директориях / app / code grep, чтобы найти, какие файлы определяют тип объекта, который вы только что нашли - хотя, поскольку он основан на 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 ужасна.

1 голос
/ 25 октября 2009

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

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

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

  • form.phtml
  • result.phtml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...