2009-10-13 1 views
1

Оператор print $content в node.tpl.php приводит к тому, что мой весь макет ломается, возможно, из-за неправильной вложенности DIV.

Я хочу проверить и исправить это, но я не могу понять, что/где является источником переменной $content в файле node.tpl.php.

Буду признателен за любую помощь. Благодарю.

+0

Как уже было сказано, переменная $ content собирается из многих источников и поэтому ее трудно отлаживать. Можете ли вы опубликовать 'print_r' или' var_dump' переменной $ content с одной из сломанных страниц? –

ответ

1

Переменная в узлах Drupal не имеет ни одного места. Все включенные модули могут добавлять, удалять и настраивать переменную $content, используя крючки Drupal, такие как hook_nodeapi и hook_view.

Зная, какие модули вы включили, и точный HTML-код, вызывающий проблемы, может помочь людям помочь вам больше. Как есть, ответ на ваш вопрос «зависит от этого».

-1

Попробуйте использовать отладчик, чтобы увидеть, что содержит переменную в данный момент времени. Если я правильно помню, что $ content - это сгенерированное содержимое html для текущего узла.

+0

Есть много «узлов» или «сообщений», которые трудно отлаживать. Я бы предпочел найти и отладить исходный html. – 3zzy

0

The $content является то, что возвращается из hook_view()

Если многие узлы поражаются это звучит, как это может быть функция специальная тема, которая вызывает проблемы.

+0

Мне просто нужно найти содержимое блока/функции/файла, чтобы я мог проверить и исправить ошибки проверки. hook_view в каком файле? Он содержит html, который может иметь неправильное вложение? – 3zzy

+2

'hook_view' не находится в определенном файле. 'hook_view' - это крючок, который любой модуль может использовать для добавления в' $ content'. Многие модули делают разные вещи для '$ content'. – ceejayoz

1

Нет ни одного места, которое будет источником $ content, оно может содержать сгенерированный контент практически из любого места.

Способ отладки заключается в отключении модулей, пока проблема не исчезнет, ​​а затем выясните, что в этом модуле вызывает проблему.

+0

Правильно, это то, что мне нужно знать, какие узлы распечатывают контент и где я могу найти их для отслеживания ошибки. – 3zzy

+0

В любом модуле могут быть крючки, которые вызывают появление или изменение в $ content. В результате этого $ content может содержать что угодно. Обычно это будут пользовательские, которые вызывают ошибку, но не всегда. Как только вы изолируете модуль, вы, вероятно, сможете увидеть, что вызвало проблему. ps почему downvote? –

2

$ content - это переменная, содержащая весь контент. Поэтому трудно указать точное местоположение ошибки с вложенными div.

Однако проблема, скорее всего, связана с настраиваемой функцией темы, расположенной в вашей теме, или с помощью настраиваемого модуля. Модули из d.o обычно не содержат таких ошибок, поэтому, надеюсь, вы сможете быстро найти проблему с ограниченными возможностями.

Еще одна проблема может заключаться в шаблонах, которые используются для генерации некоторого контента, и вы должны смотреть только на пользовательские в своей теме.