Здравствуйте. Прошу помощи - подскажите, пожалуйста, куда копать для того, чтобы изменить оформление ноды?
Например, содержимое статьи сформировано с помощью ряда полей (скрин 1), и на выходе мы имеем - скрин 2. А хотелось бы сделать - скрин 3.
Пока занималась задействованием таксономии, думала что поправить шаб будет как два пальца - оказалось, что совсем наоборот (до этого занималась phpbb, где все примитивно просто, прям до неприличия), отсутствие тплок выносит мозг, при этом я даже представления не имею в какую сторону смотреть.
Скажите пожалуйста в какие файлы необходимо внести изменения? и если не тяжело - примеры.
На всякий случай: интересуют 2 темы Bartik (в котором оформление совсем кошмарное, т.к. применяются разные стили, на по идее, одинаковые заголовки - скрин 4)и Pixture Reloaded.
Комментарии
Делается через .css вашей темы, используется для просмотра и поиска нужных селекторов FF + FireBug
не много не правильно я видимо сформулировала. мне нужно не css стили, я хочу поправить структуру ноды..например в phpbb есть страница viewtopic.php с переменными и их выводом в тпл, в файле viewtopic.tpl приведены показные переменные и уже они оформляются посредством css стилей, так вот там можно объединить ряд параметров в блоки и расположить их на странице. это уже не совсем правка стилей, это если можно сказать верстка страницы. так вот именно это мне и нужно.
Для того чтобы получить, что хочу в друпале, мне по-видимому придется оформление ноды приводить в табличном варианте и располагать определенные переменные в отдельных ячейках, и мне кажется что css в этом случае не помощник (опять же возможно я не права, но повторюсь имею опыт только с phpbb).
тем не менее, камрад sas прав. чтобы из скрин2 сделать скрин3 вполне достаточно правки css.
еще может пригодиться модуль типа Field group
хорошо, возможно. тогда правильнее подключить новый ксс, чем править старый, я думаю?
конечно! вообще, правильнее всегда делать так: в файле название_темы.info к списку подключаемых css файлов добавить в конец строчку с указанием своего файла css. типа :
stylesheets[all][] = my_local.css
и ВСЕ изменения вносить в него.
ну в общем и в целом решила так:
создала файл 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
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 шт., какие подгрузят ладно, остальных не будет... но мне так не нравится
подскажите, пожалуйста, кому не сложно
это реально ужасный кошмар и куча ненужной лишней работы. я на полном серьезе — кроме css для решения вашей задачи не нужно ничего больше, тем более таких кривых темплейтов...
для примера страница сайта, который я делал: http://staraqua.ru/content/aponogeton-boyvinianus
все как у вас, только полей поменьше...
мне так не дано
я реально путаюсь в готовых стилях, мне проще с нуля делать, чем опираться на что-то. Я честно пыталась - нахожу параметр имейджа, хочу выравнять только верхнюю по левой, так он мне все картинки в ноде выравнивает по левой стороне - не могу я сообразить как сделать по другому.
Пока я с друпалом на ВЫ, буду делать вкривь и вкось, главное чтобы хоть как-то ... и большое спасибо за совет, я его конечно немного модернизировала, но все же по крайней мере поняла откуда можно начать