Компонент подготавливает данные, шаблон показывает их
Представьте список, в котором нужны заголовок новости, дата и короткое описание. Компонент выполняет предусмотренную им работу с данными и передаёт подготовленный результат шаблону. Шаблон компонента преобразует этот результат в представление, которое получает посетитель. Отсюда полезное диагностическое различие. Если описание вообще не получено или не передано в результат, одной перестановкой элементов оформления проблему не решить. Если нужное значение уже есть, но выводится не в том месте, стоит исследовать представление. Это схема для рассуждения, а не запрет любой обработки внутри шаблона. В системе предусмотрены средства подготовки результата под конкретный шаблон. Важно понимать, на каком этапе возникает наблюдаемое расхождение.
Название файла ещё не доказывает, что он используется
У компонента может быть несколько шаблонов. При его подключении выбирается конкретный вариант. Кроме того, пользовательское оформление и системный шаблон могут находиться в разных местах. Поэтому существование знакомого файла не означает, что текущая страница использует именно его. Сначала установите, какой компонент формирует нужный блок и какой шаблон выбран. У комплексного компонента представление может включать шаблоны вложенных компонентов, что добавляет ещё один уровень поиска. Для изменения системного оформления под проект документация предусматривает копирование шаблона целиком в область пользовательских шаблонов. Это помогает отделить изменения проекта от поставляемого оформления. На учебной копии полезно фиксировать исходное состояние и проверять одно небольшое изменение, прежде чем переходить к следующему.
Сохранённый результат может скрыть новую проверку
Если компонент использует кеширование, часть работы или результата может повторно использоваться из кеша. Поэтому одинаковая страница после изменения ещё не доказывает, что правка неверна. Но объяснять любую проблему кешем тоже неправильно: можно очищать его много раз, продолжая редактировать неиспользуемый шаблон. Удобна последовательность вопросов: тот ли блок найден, те ли параметры переданы, есть ли нужные данные, выбран ли ожидаемый шаблон, влияет ли кеширование в этом случае? Затем отдельно проверяют, какой результат получил браузер. Например, в учебном списке заголовок обновился, а описание осталось прежним. Запишите именно это наблюдение. Оно точнее предположения, что сломалась вся страница, и помогает проверить разницу между обработкой двух полей.
Попробуйте на практике
Разберите на бумаге вымышленную неисправность: в списке новостей виден заголовок, но отсутствует краткое описание.
- Нарисуйте четыре последовательных этапа: исходные сведения, подготовленный результат компонента, выбранный шаблон, страница в браузере. Отметьте, где описание должно присутствовать.
- Придумайте два объяснения: описание не попало в подготовленные данные или оно есть, но не выводится. Для каждого укажите отдельное наблюдение, позволяющее их различить.
- Добавьте проверку выбранного шаблона. Запишите, почему наличие похожего файла в другой папке ещё ничего не подтверждает.
- Составьте порядок проверки для учебной копии проекта. Отведите кешированию отдельный пункт и предусмотрите фиксацию результата после каждого изменения.
Как проверить результат. План различает получение данных и их отображение. Для каждого предположения есть проверяемое наблюдение. Проверка кеша не заменяет установление компонента и шаблона, а несколько параметров не меняются одновременно.
Частые вопросы
Шаблон сайта и шаблон компонента означают одно и то же?
Нет. Шаблон сайта задаёт общее оформление, а шаблон компонента отвечает за представление результата конкретного компонента. При поиске файла важно различать эти уровни.
Можно ли начать с проверки прямо на рабочем сайте?
Для учебного эксперимента разумнее использовать отдельную копию с подходящими тестовыми данными. Так наблюдение за ошибкой не превращается в непредсказуемое изменение страницы для посетителей.
Самостоятельный разбор темы. Содержание конкретной обучающей программы здесь не представлено.