[Решено]Проблема с темизацией ноды - создание шаблона для типа материалов

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

Аватар пользователя kazkarate kazkarate 29 сентября 2011 в 18:13

Здравствуйте, помогите в следующем вопросе:
Создал тип материала новости, сделал к нему node-news.tpl.php, но при этом когда смотрю код - класс "main" и кдасс "node" расположенны в рядом стоящих div'ках, а должно быть чтобы node был в main. И какая то абракадабра получается(

Комментарии

Аватар пользователя kazkarate kazkarate 29 сентября 2011 в 19:07

<?php if ($teaser) :?>
<div class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?>">

<div style="float:left"><?php echo $node->field_imgnews[0]['view']; ?></div>
    
    <h2 class="title">
    <a href="<?php print $node_url ?>"><?php print $title?></a>
    </h2>
    
    <div class="content">
    <?php  echo $node->field_newsteaser[0]['view']; ?>
    </div>  

    <div style="clear:both">&nbsp;</div>
<div class="about">
             <span class="submitted">
  <?php 
    
if ($submitted): 
    print 
t('Опубликовано ') .format_date($node->created'custom'"j/F/Y");
        
$pred " in ";
    else:
        
$pred "Filed in ";
    endif;     
?>   </span> 
    
             <span class="commentscount">Комментариев  <?php print $comment_count ?></span>
             <span class="readmore"><a href="<?php print $node_url ?>" >Подробнее</a></span>

     
</div>
<div style="clear:both">&nbsp;</div>
<?php endif; ?>        

</div>

<?php if ($page) :?>
<div class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?>">

<div class="submitted">
  <?php 
    
if ($submitted): 
    print 
t('Опубликовано ') .format_date($node->created'custom'"j/F/Y");
        
$pred " in ";
    else:
        
$pred "Filed in ";
    endif;     
?>   </div> 

    

<div class="content">
    <?php print $node->body ?>
</div>
  

</div>

<?php endif; ?>

Аватар пользователя msidiagnos01 msidiagnos01 29 сентября 2011 в 19:14

В листинге для полного материала не вижу вывода заголовка. Он берется из родного node.tpl.php?

<div id="full"> видимо берется оттуда же?

Аватар пользователя kazkarate kazkarate 29 сентября 2011 в 19:34
<div class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?>">
  <?php if ($page == 0): ?>
    <h3 class="title">
      <a href="<?php print $node_url ?>"><?php print $title; ?></a>
    </h3>
  <?php endif; ?>

  <?php if ($picture) print $picture; ?>  
 
  <div class="submitted">
  <?php
        if ($submitted):
                print t('Опубликовано ') . theme('username', $node) .' on ' .format_date($node->created, 'custom', "F jS, Y") ;
                $pred = " in ";
        else:
                $pred = "Filed in ";
        endif;
       
        if (count($taxonomy)):
                print $pred.andreas02_print_terms($node);
        endif; ?>
   </div>
 
  <div class="content">
    <?php print $content; ?>
  </div>
 
  <?php if ($links): ?>
    <div class="links">
      <?php print $links; ?>
    </div>
  <?php endif; ?>
</div>
<div style="clear:both">&nbsp;</div>

Аватар пользователя msidiagnos01 msidiagnos01 29 сентября 2011 в 19:50
<?php if ($page) :?>
<div class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?>">
<h3 class="title"><a href="<?php print $node_url ?>"><?php print $title; ?></a></h3>
<div class="submitted">
  <?php
    if ($submitted):
    print t('Опубликовано ') .format_date($node->created, 'custom', "j/F/Y");
        $pred = " in ";
    else:
        $pred = "Filed in ";
    endif;     ?>   </div>
<div class="content">
    <?php print $content; ?>
</div>
</div>
<?php endif; ?>

Это вставь вместо своей части кода в node-news.tpl.php
заголовок при необходимости заверни в контейнер.
Ищи, откуда у тебя заголовки новостей выводятся в h2, ибо согласно твоим листингам ни в node.tpl.php ни в node-neww.tpl.php нет h2 без класса.

Аватар пользователя kazkarate kazkarate 29 сентября 2011 в 20:13

Благодарю вас msidiagnos01 за помощь!
заработало...
Вот конечный листинг node-news.tpl.php(может кому то пригодится)

<?php if ($teaser) :?>
<div class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?>">

<div style="float:left"><?php echo $node->field_imgnews[0]['view']; ?></div>
    
    <h2 class="title">
    <a href="<?php print $node_url ?>"><?php print $title?></a>
    </h2>
    
    <div class="content">
    <?php  echo $node->field_newsteaser[0]['view']; ?>
    </div>  

    <div style="clear:both">&nbsp;</div>
<div class="about">
             <span class="submitted">
  <?php 
    
if ($submitted): 
    print 
t('Опубликовано ') .format_date($node->created'custom'"j/F/Y");
        
$pred " in ";
    else:
        
$pred "Filed in ";
    endif;     
?>   </span> 
    
             <span class="commentscount">Комментариев  <?php print $comment_count ?></span>
             <span class="readmore"><a href="<?php print $node_url ?>" >Подробнее</a></span>

     
</div>
</div>
<div style="clear:both">&nbsp;</div>
<?php endif; ?>        

<?php if ($page) :?>
<div class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?>">

<div class="submitted">
  <?php 
    
if ($submitted): 
    print 
t('Опубликовано ') .format_date($node->created'custom'"j/F/Y");
        
$pred " in ";
    else:
        
$pred "Filed in ";
    endif;     
?>   </div> 
<div class="content">
    <?php print $content?>
</div>
</div>
<?php endif; ?>

Аватар пользователя bsyomov bsyomov 29 сентября 2011 в 21:00

Потому что оригинальным языком является английский. И если мало-ли вы захотите сделать англоязычную версию, то там будет Опубликовано, а не Published. Если уж пользоваться функцией t() (что безусловно хорошо), то тогда надо привыкать делать это правильно.