Как сделать разное отображение автора и текста статьи в тизере и полной версии

Главные вкладки

Аватар пользователя grew grew 8 января 2014 в 15:35

Здравствуйте! Возможно я выразилась не понятно, попробую объяснить. Дело в том, что я хочу чтобы в тизере шел сначала автор, а потом отрывок текста, а в полной версии наоборот, сначала весь текст, а в конце автор и дата. Если поменять местами переменные в файте tpl.php, то они меняются местами и там, и там, а мне надо чтобы было по разному. Подскажите пожалуйста, что же делать.

Комментарии

Аватар пользователя vortex vortex 8 января 2014 в 15:45

1. css position:absolute для page, и обычно для всего остального?
2. views и переопределить там?
3. node--.tpl.php
4. Хуками (тут не помогу)

Аватар пользователя grew grew 8 января 2014 в 16:08

Torvild, это нужно прописать в файле node.tpl.php? В каком именно месте? И внутри дописывать только submitted или еще что-либо?
ХулиGUN, про переменную слышала, но из-за моего почти нулевого знания php этот способ, к сожалению, отпадает.
vortex, CSS, как мне кажется, тут не поможет, т.к. мне нужно поменять местами эти строки(в тизере автор над текстом, в полной версии под), а в CSS и такого способа не знаю. Views начинаю сейчас изучать, как я поняла он специализируется на выводе блоков, или можно сделать для всех страниц? Вариант с node для меня сильно осложнен, т.к. там нужно писать с нуля. Может есть какие-нибудь готовые решения или уроки, на форуме я вроде бы ничего такого не нашла. Прошу извинить за глупые вопросы, но что поделать...

Аватар пользователя Torvild Torvild 8 января 2014 в 16:40

Моё решение такое же как и у ХулиGUN,только переменные разные.

Вместо дефолтного вывода автора и даты:


<?php

global $user;
$user user_load($user->$uid);

if(

$teaser){
  if (
$display_submitted): ?>
    <div class="submitted">
      <?php print $submitted?>
    </div>
  <?php endif; ?>

  <div class="author">
      <?php print l(t($user->name), 'user/'.$uid); ?>
  </div>

<?php

}
else{ 
?>
  <div class="author">
      <?php print l(t($user->name), 'user/'.$uid); ?>
  </div>

<?php if ($display_submitted): ?>
    <div class="submitted">
      <?php print $submitted?>
    </div>
  <?php endif;
?>

Возможно для автора есть своя залинкованая переменная,не помню..

А вообще,правильный путь - это переопределить это всё в preprocess_node и в шаблон передавать только переменную.
Или покопаться в настройках view mode.