Contemplate - что нужно поменять?

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

Аватар пользователя boodooboo boodooboo 29 марта 2009 в 3:08

Здравствуйте, уважаемые.
Есть новый тип материала, добавлено поле Image, все вроде хорошо, но в тизере и в тексте полной ноды картинка выводится над текстом. Внимание! Вопрос!
Подскажите пожалуйста неразумному, что нужно сделать (вставить, убрать, изменить) в шаблоне материала (использую Contemplate), чтобы картинка выводилась слева от текста. Прочитал кучу материалов, а догнать никак не могу.
Заранее благодарю.

Комментарии

Аватар пользователя alisa alisa 29 марта 2009 в 3:40

в html есть понятие "обтекание картинки текстом", нужно выбрать устраивающий Вас вариант, там ещё задаётся расстояние между картинкой и текстом (по горизонтали и вертикали).
Можно, в принципе, прописывать каждый раз при создании публикации. Можно автоматизировать, если Вы можете прописать это в шаблон.

img src="images/sample.gif" width="100" height="200" alt="Иллюстрация" align="left" vspace="5" hspace="5"

Аватар пользователя boodooboo boodooboo 29 марта 2009 в 3:47

Про обтекание текста в HTML я знаю. Я не могу понять как это применить в Contemplate.
Есть шаблон вывода тизера:

image

<?php print $node->field_image[0]['view'] ?>

Это шаблон выводит краткое содержание материала с картинкой, которая находится над текстом, а мне надо, чтобы картинка была слева от текста (как вариант справа). Что в данном шаблоне (если вообще здесь надо что-то менять) нужно изменить, чтобы получилось задуманное?
Спасибо.

Аватар пользователя boodooboo boodooboo 29 марта 2009 в 3:50

Что-то не то получилось, вот такой код:

<div class="field field-type-image field-field-image">
  <h3 class="field-label">image</h3>
  <div class="field-items">
      <div class="field-item"><?php print $node->field_image[0]['view'] ?></div>
  </div>
</div>

Это шаблон выводит краткое содержание материала с картинкой, которая находится над текстом, а мне надо, чтобы картинка была слева от текста (как вариант справа). Что в данном шаблоне (если вообще здесь надо что-то менять) нужно изменить, чтобы получилось задуманное?
Спасибо.

Аватар пользователя dfaker dfaker 29 марта 2009 в 13:51

Если нужна картинка, то нужно искать в объекте ноды не field_image[0]['view'], а только адрес картинки и вставлять ее тегом img куда требуется

Аватар пользователя boodooboo boodooboo 29 марта 2009 в 18:10

2dfaker, картинка вставляется через связку CCK, ImageField, ImageCache, чтобы в тизере был один размер (поменьше),а в полном тексте другой (побольше), не могу разобраться как сделать, чтобы картинки выводились рядом с текстом, а не над ним.

Аватар пользователя dfaker dfaker 29 марта 2009 в 18:30

Небольшой пример. В contemplate (field_b_description текстовое поле, field_b_cover imagefield):

$f_field_description = '<div class="field field-type-text"><div class="field-item field-item-description">%s</div></div>';
if (!empty($node->field_b_description[0]['value'])) {
    $description = '<p>' . check_plain($node->field_b_description[0]['value']) . '</p>';
    if (!empty($node->field_b_cover[0]['view'])) {
        $description = '<div>' . $node->field_b_cover[0]['view'] . '</div>' . $description;
    }
    $o .= sprintf($f_field_description, $description);
}

и css:

div.field-item-description {
        margin-top: 0.5em;
        float: left
}
div.field-item-description p {
        text-indent: 1.5em;
        text-align: justify;
        margin: 0;
}
div.field-item-description div {
        float: left;
        margin-right: 7px;
}
div.field-item-description div img {
        border: 1px solid #898E7F;
}
.field-field-a-description div.field-items div.field-item {
        text-align: justify;
}

картинка тут заворачивается в div, и для этого дива стоит float: left; (третий блок в css), в этом случае картинка расположена слева от текста field_b_description

Аватар пользователя boodooboo boodooboo 29 марта 2009 в 19:01

2Geldora, 2dfaker, спасибо. Я так понял, что в файл style.css, нужно добавить CSS код:
.field-field-image {
float: left;
и т.д.
}
Прописал, все получилось, спасибо, соратники. Проблема была в том, что не мог понять в каком файле и какие название стиля нужно прописать.

Аватар пользователя TEZZI TEZZI 28 июня 2012 в 15:45

Зд-те, подскажите пожалуйста, что должно быть в идеале в блоке с кодом?
Сейчас там у меня вот :

<?php<div class="field field-type-filefield field-field-kartinka">
<h3 class="field-label">kartinka</h3>
<div class="field-items">
<div class="field-item">&lt;?php print $node-&gt;field_kartinka[0]['view'] ?&gt;</div>
</div>
</div>?>

Я понимаю что нужно добавить в div и class добавить, в css прописать.
Все делаю, но у меня не отображается ни картинка ни текст.

Пожалуйста покажите что там должно быть чтоб картинка была слева и текст обтекал ее.
Заранее благодарю.