Правка оформления "Содержимого"

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

Аватар пользователя KaTana KaTana 5 января 2013 в 13:52

Здравствуйте. Прошу помощи - подскажите, пожалуйста, куда копать для того, чтобы изменить оформление ноды?
Например, содержимое статьи сформировано с помощью ряда полей (скрин 1), и на выходе мы имеем - скрин 2. А хотелось бы сделать - скрин 3.

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

Скажите пожалуйста в какие файлы необходимо внести изменения? и если не тяжело - примеры.
На всякий случай: интересуют 2 темы Bartik (в котором оформление совсем кошмарное, т.к. применяются разные стили, на по идее, одинаковые заголовки - скрин 4)и Pixture Reloaded.

ВложениеРазмер
Иконка изображения s1.png58.55 КБ
Иконка изображения s2.png1.19 МБ
Иконка изображения s3.png565.27 КБ
Иконка изображения s4.png82.43 КБ

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 5 января 2013 в 14:09

"KaTana" wrote:
А хотелось бы сделать - скрин 3

Делается через .css вашей темы, используется для просмотра и поиска нужных селекторов FF + FireBug

Аватар пользователя KaTana KaTana 6 января 2013 в 4:25

не много не правильно я видимо сформулировала. мне нужно не css стили, я хочу поправить структуру ноды..например в phpbb есть страница viewtopic.php с переменными и их выводом в тпл, в файле viewtopic.tpl приведены показные переменные и уже они оформляются посредством css стилей, так вот там можно объединить ряд параметров в блоки и расположить их на странице. это уже не совсем правка стилей, это если можно сказать верстка страницы. так вот именно это мне и нужно.
Для того чтобы получить, что хочу в друпале, мне по-видимому придется оформление ноды приводить в табличном варианте и располагать определенные переменные в отдельных ячейках, и мне кажется что css в этом случае не помощник (опять же возможно я не права, но повторюсь имею опыт только с phpbb).

Аватар пользователя Слава Юдаков Слава Юдаков 6 января 2013 в 5:01

"KaTana" wrote:

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

конечно! вообще, правильнее всегда делать так: в файле название_темы.info к списку подключаемых css файлов добавить в конец строчку с указанием своего файла css. типа :

stylesheets[all][] = my_local.css

и ВСЕ изменения вносить в него.

Аватар пользователя KaTana KaTana 6 января 2013 в 8:36

ну в общем и в целом решила так:
создала файл node--pref_xbox360.tpl.php такого содержания:

<?php
<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes?>>

  <?php print $user_picture?>

  <?php print render($title_prefix); ?>
  <?php if (!$page): ?>
    <h2<?php print $title_attributes?>><a href="<?php print $node_url?>"><?php print $title?></a></h2>
  <?php endif; ?>
  <?php print render($title_suffix); ?>

  <?php if ($display_submitted): ?>
    <div class="submitted">
      <?php print $submitted?>
    </div>
  <?php endif; ?>
  <div class="content"<?php print $content_attributes?>>
    <?php
    
if ($teaser) {
    print 
render($content ['body']);
    }else{
    
?>    
    <div class="content">    
    <div class="peremen">
        <div class="dev">
<? print render($content['field_dev']);?>        
        </div>
        <div class="publ">
<? print render($content['field_publ']);?>        
        </div>
        <div class="publ_rf">
<? print render($content['field_publ_rf']);?>        
        </div>
        <div class="genre">
<? print render($content['field_genre']);?>        
        </div>
        <div class="offsite">
<? print render($content['field_offsite']);?>        
        </div>
        <div class="offsite_rf">
<? print render($content['field_offsite_rf']);?>        
        </div>
        <div class="release">
<? print render($content['field_release']);?>        
        </div>
        <div class="release_rf">
<? print render($content['field_release_rf']);?>        
        </div>
        <div class="lang">
<? print render($content['field_lang']);?>        
        </div>
        <div class="age_rating">
<? print render($content['field_age_rating']);?>        
        </div>
        <div class="other_platf">
<? print render($content['field_other_platf']);?>        
        </div>    
    </div>
<div class="obloga">
<? print render($content['field_cover']);?>
    </div>
    </div>    
<br />
   <div class="tekst">
<? print render($content['body']);?>        
    </div>        
  <div class="video">
<? print render($content['field_video']);?>    
    </div>            
  <div class="co-ops">
        <div class="modes_features">
<? print render($content['field_modes_features']);?>            
        </div>
        <div class="co_op">
<? print render($content['field_co_op']);?>                
        </div>
    </div>    
<div class="screens-all">
        <div class="screens-one">
<? print render($content['field_screen'][0]);?>        
        </div>
        <div class="screens-one">
<? print render($content['field_screen'][1]);?>                
        </div>
        <div class="screens-one">
<? print render($content['field_screen'][2]);?>                
        </div>
        <div class="screens-one">
<? print render($content['field_screen'][3]);?>                
        </div>    
        <div class="screens-one">
<? print render($content['field_screen'][4]);?>                
        </div>
        <div class="screens-one">
<? print render($content['field_screen'][5]);?>                
        </div>
        <div class="screens-one">
<? print render($content['field_screen'][6]);?>                
        </div>
        <div class="screens-one">
<? print render($content['field_screen'][7]);?>                
        </div>                            
</div>
<div class="news">
        <div class="news1">
<? print render($content['field_news'][0]);?>        
        </div>
        <div class="news2">
<? print render($content['field_news'][1]);?>                
        </div>
        <div class="news3">
<? print render($content['field_news'][2]);?>                
        </div>
        <div class="news4">
<? print render($content['field_news'][3]);?>                
        </div>    
        <div class="news5">
<? print render($content['field_news'][4]);?>                
        </div>            
</div>
<div class="obz">
        <div class="obz1">
<? print render($content['field_reviews'][0]);?>        
        </div>
        <div class="obz2">
<? print render($content['field_reviews'][1]);?>                
        </div>
        <div class="obz3">
<? print render($content['field_reviews'][2]);?>                
        </div>
        <div class="obz4">
<? print render($content['field_reviews'][3]);?>                
        </div>    
        <div class="obz5">
<? print render($content['field_reviews'][4]);?>                
        </div>            
</div>
   <? } ?>
  </div>
</div>
?>

и подключила, по совету выше, свой css

.obloga{
        width:30%;
        float:left;
}
.peremen{
        width:70%;
        float:left;
}
.tekst{
        width:100%;
        clear: both;
}
.video{
        width:70%;
        float:left;
}
.co-ops{
        width:30%;
        float:left;
}
.screens-all{
        width:100%;
        clear: both;
}      
.screens-all .screens-one{
        width:25%;
        float:left;
}      
.news{
        width:50%;
        clear: both;   
        float:left;
}      
.obz{
        width:50%;
        float:left;
}

вроде бы получила что хотела, однако, теперь меня интересует как задать неопределенное кол-во для переменной из примера - 'field_screen', которая выводится
<? print render($content['field_screen'][0]);?>
<? print render($content['field_screen'][1]);?>
и т.д.

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

подскажите, пожалуйста, кому не сложно

Аватар пользователя Слава Юдаков Слава Юдаков 6 января 2013 в 8:51

"KaTana" wrote:
создала файл node--pref_xbox360.tpl.php такого содержания:

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

для примера страница сайта, который я делал: http://staraqua.ru/content/aponogeton-boyvinianus

все как у вас, только полей поменьше...

Аватар пользователя KaTana KaTana 6 января 2013 в 9:14

"Слава Юдаков" wrote:

все как у вас, только полей поменьше...

мне так не дано Smile

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

Пока я с друпалом на ВЫ, буду делать вкривь и вкось, главное чтобы хоть как-то ... и большое спасибо за совет, я его конечно немного модернизировала, но все же по крайней мере поняла откуда можно начать