Содержимое ноды не выводится на главной вообще. Помогите.

Прислано: atm

чт, 18/03/2010 - 11:24

Другие статьи по теме:

Приветствую всех.
У меня такая проблема - на сайте belankov.com/work/drupal не отображается контент ноды при выводе на главной странице тизерами. Шаблон создавал сам с нуля.

Вот содержимое node.tpl.php:

<?php<div class="node<?php if ($sticky) { print " sticky"; } ?><?php if (!$status) { print " node-unpublished"; } ?>">
    <?
php if ($picture) {
      print 
$picture;
    }
?>
    <?php if ($page == 0) { ?><h2 class="title"><a href="<?php print $node_url?>"><?php print $title?></a></h2><?php }; ?>
    <span class="submitted"><?php print $submitted?></span>
    <div class="taxonomy"><?php print $terms?></div>
    <div class="content"><?php print $content?></div>
    <?php if ($links) { ?><div class="links">&raquo; <?php print $links?></div><?php }; ?>
</div>?>

Что не так? Почему содержимое ноды не выводится?

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано riyuzakki в чт, 18/03/2010 - 11:56.

Напишите в node.tpl.php строчку:

<?php
print '<pre>'.print_r($variables,false).'</pre>';
?>

Думаю, все станет понятно.


Опубликовано atm в чт, 18/03/2010 - 12:24.

Спасибо за ответ, но я не понял. Вот что я знаю про вывод контента: если переменна $page равна нулю, то мы в состоянии вывода тизеров и выводим переменную $content, в которой и находится контент страницы (все содержимое).

Пожалуйста объясните мне про "pre" и "$variables, false".


Опубликовано riyuzakki в чт, 18/03/2010 - 12:37.

"atm" написал(а):

Пожалуйста объясните мне про "pre" и "$variables, false".

Вы что, полезли в друпал, не зная про PHP и HTML?


Опубликовано natbampo в чт, 18/03/2010 - 12:42.

Наверное все таки:
<?php print '<pre>' print_r($variablestrue) . '</pre>';?>
А делает этот код следующее:
выводит значение массива $variables прям на экран, в "нормальном" для просмотра виде.


Опубликовано atm в чт, 18/03/2010 - 12:42.

Я знаю синтаксис и основные понятия PHP. HTML знаю хорошо, но видимо не на столько.
Прошу прощение за школярство - уже прочитал про тег "pre". А "$variables, false" что то запрещает я так понимаю?

То есть в тег "pre" нужно заключить вывод "$content"? А что делать с "$variables, false"?


Опубликовано atm в чт, 18/03/2010 - 12:48.

Попробовал так:

<?php<div class="node<?php if ($sticky) { print " sticky"; } ?><?php if (!$status) { print " node-unpublished"; } ?>">
    <?
php if ($picture) {
      print 
$picture;
    }
?>
    <?php if ($page == 0) { ?><h2 class="title"><a href="<?php print $node_url?>"><?php print $title?></a></h2><?php }; ?>
    <span class="submitted"><?php print $submitted?></span>
    <div class="taxonomy"><?php print $terms?></div>
    <div class="content"><?php print '<pre>' print_r($contentfalse) . '</pre>';?></div>
    <?php if ($links) { ?><div class="links">&raquo; <?php print $links?></div><?php }; ?>
</div>?>

и так (изменил false на true):

<?php<div class="node<?php if ($sticky) { print " sticky"; } ?><?php if (!$status) { print " node-unpublished"; } ?>">
    <?
php if ($picture) {
      print 
$picture;
    }
?>
    <?php if ($page == 0) { ?><h2 class="title"><a href="<?php print $node_url?>"><?php print $title?></a></h2><?php }; ?>
    <span class="submitted"><?php print $submitted?></span>
    <div class="taxonomy"><?php print $terms?></div>
    <div class="content"><?php print '<pre>' print_r($contenttrue) . '</pre>';?></div>
    <?php if ($links) { ?><div class="links">&raquo; <?php print $links?></div><?php }; ?>
</div>?>

Все так же осталось.


Опубликовано natbampo в чт, 18/03/2010 - 13:01.

Прости по друпалу пока не могу тебе подсказать - сам только начал учить.
Но, зная php: Тот код, что подсказали выше - это не из разряда "вставить туда и все получится", а только чтобы посмотреть значение $variables и проанализировав исправить уже свой код. Видимо этого достаточно чтобы стало все понятно :) . Удачи.


Опубликовано atm в чт, 18/03/2010 - 13:05.

natbampo, спасибо =) и тебе удачи в изучении Drupal. Можем обменяться опытом пиши в личку.

Ребята, ну как же всетаки решить проблему эту? Я вроде бы когда делал свой шаблон, всю начинку node.tpl.php скопировал из стандартного шаблона.


Опубликовано RxB в чт, 18/03/2010 - 13:06.

"atm" написал(а):

Ребята, ну как же всетаки решить проблему эту? Я вроде бы когда делал свой шаблон, всю начинку node.tpl.php скопировал из стандартного шаблона.

Вам дали чтобы проверить есть ли вообще у вас переменная контент, вы проверили?


Опубликовано atm в чт, 18/03/2010 - 13:13.

Я не понимаю. Переменна $content же глобальная и стандартная - как $title, который выводит загаловок ноды.


Опубликовано RxB в чт, 18/03/2010 - 13:15.

я могу одной строчкой сделать, что не будет такой глобальной переменной.
И ещё раз: Вам код дали чтобы Вы проверили есть ли вообще у вас переменная $content, вы проверили?


Опубликовано atm в чт, 18/03/2010 - 13:20.

1) Какой из двух кодов? С true или с false который?
2) Куда его вставлять?


Опубликовано RxB в чт, 18/03/2010 - 13:21.

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


Опубликовано atm в чт, 18/03/2010 - 13:26.

RxB, стоило мне почитать мануал по функции print_r, я понял все.
Нет, эта функция не выводит ничего, значит переменная $content пуста.


Опубликовано natbampo в чт, 18/03/2010 - 13:41.

Так делал:

<?php 
print '<pre>' print_r($contenttrue) . '</pre>';
?>

?


Опубликовано atm в чт, 18/03/2010 - 13:42.

Да. В сходном коде на belankov.com/work/drupal можете смотреть.
Что дальше?


Опубликовано riyuzakki в чт, 18/03/2010 - 13:46.

"natbampo" написал(а):

Наверное все таки:
<?php print '<pre>' print_r($variablestrue) . '</pre>';?>

Ваша правда. Постоянно путаю этот параметр.

"atm" написал(а):

стоило мне почитать мануал по функции print_r, я понял все.
Нет, эта функция не выводит ничего, значит переменная $content пуста.

Отлично! Прогресс "на лице". А теперь, все таки, выведите так же переменную $variables.


Опубликовано atm в чт, 18/03/2010 - 13:51.

http://belankov.com/work/drupal/
вот что получилось


Опубликовано riyuzakki в чт, 18/03/2010 - 13:54.

И что? Вам еще разжевать? Или и так поймете?


Опубликовано atm в чт, 18/03/2010 - 13:59.

Разжуйте пожалуйста. По моему нет ничего постыдного в том что я не знаю что дальше делать. По аналогии с функцией print_r, которую я не удосужился погуглить.


Опубликовано riyuzakki в чт, 18/03/2010 - 14:12.

"atm" написал(а):

По аналогии с функцией print_r, которую я не удосужился погуглить.

В том то и дело.

Вот еще две подсказки:
1.

"atm" написал(а):

не отображается контент ноды при выводе на главной странице тизерами

2.  http://api.drupal.ru/api/function/template_preprocess_node/6


Опубликовано atm в чт, 18/03/2010 - 14:44.

Все перекопал. И так пробовал и эдак.
Вообще не понимаю вот чего:
эта строчка исключает название ноды (ссылкой) из полного представления ноды (не-тизера):

<?php if (!$page) { ?><h2 class="node_title"><a href="<?php print $node_url?>"><?php print $title ?></a></h2><?php }; ?>

Но название линком же выводится.

Не получается в итоге.
API почитал - там стандартный файл в modules/node node.tpl.php похож на мой. И вывод $content такой же..


Опубликовано riyuzakki в чт, 18/03/2010 - 14:52.

Но ведь не стараетесь же! Правда? Вы пробовали в редакторе ноды нажать кнопочку "Отделить тизер от основного текста"?


Опубликовано atm в чт, 18/03/2010 - 14:55.

Стараюсь я. А в редакторе я и без знания всего этого мог сделать. Я в курсе про сепаратор тизера, но ведь автоматом должен выводиться контент, кол-во символов которого определено в настройках публикации (где можно выбрать, сколько символов будет выводиться в тизере).


Опубликовано riyuzakki в чт, 18/03/2010 - 16:37.

"atm" написал(а):

Стараюсь я.

Пока не вижу.

"atm" написал(а):

автоматом должен выводиться контент, кол-во символов которого определено в настройках публикации

Должен. Но ведь Вы подали себя, как программиста, а значит, должны были за то время, пока я перемещался с работы домой, выяснить, какая функция формирует тизер. Выяснили?


Опубликовано atm в чт, 18/03/2010 - 16:52.

node_teaser($body, $format = NULL, $size = NULL)


Опубликовано riyuzakki в чт, 18/03/2010 - 17:22.

Вы делаете успехи! Осталось поигратся с этой функцией и выяснить, почему она может возвращать пустую строку ;)


Новое на сайте

Ссылки партнёров