У меня возник вот какой вопрос. Создаю поле "Изображение" в ССК для определенного вида материала. Потом когда создаю материал и погружаю к нему картинку, она появляется выше или выше или ниже основного текста. Возможно ли сделать так чтобы она появлялась слева от текста как при вставке изображения с помощью визуального редактора. Для чего мне это нужно? Во-первых хочу чтобы в анонсе выводилась картинка слева, а не в центре, а, во-вторых, при такой возможности можно сделать несколько картинок расположенных по вертикали с осонвным текстом справа. т.е. как бы галерея слева и текст справа. Возможно ли это реализовать?
Комментарии
Возможно.
Хороший исчерпывающий ответ... Спасибо! Хоть обнадежили...
Каков вопрос - таков ответ. Вот если бы Вы спросили «как», то ответ бы был примерно такой.
«CSS вашей темы. Что нибудь типа
img{float: left; clear: left;}
»Думаете в CSS темы и поля можно подправить. Мне кажется, что если и менять что-то то в CSS модуля ССК
Вам виднее. Дерзайте
в css модуля cck, мне кажется, менять не надо, т.к при обновлении модуля можно запросто затереть сделанные изменения.
Можно выводить примерно так:
Допустим имеется поле, в нем несколько изображений грузится. Нужно вывести в какую-нить галерею на jquery (или другую какую-то).
Перебираем все фотки в цикле
foreach((array)$node->field_foto as $item) {
$n_path = imagecache_create_url($pres2, $item['filepath'] );.......
ну а дальше в нужно месте применяете $n_path
Например
<img src="<? echo $n_path ?> ">
и уже для этого изображения в таблице стилей самой темы настраиваете всё что нужно
Только один момент:
перед тем, как Вы примените такой вариант вывода, необходимо в настройках отображения конкретно этого поля выбрать вариант "скрыто", иначе на странице получится дублирование
в папке темы создайте vasya-durak.css, зарегистрируйте его в файле ваша_тема.info . А дальше уже че хотите и делайте с полями в этом вася-дурак. В модули не надо лезть, тем более из-за такой ерунды css
1) попробовать все сделать через css (насчет css переопределяющего css модуля совсем недавно я делал как здесь http://www.drupal.ru/node/43655)
2) если css не даст нужного результата, то темизировать html вывод поля, то есть создать шаблон именно для этого поля. (http://www.drupal.ru/node/43954 , там 1-й первый пост ваш)
Вашу мать....
В style.css вашей темы
float: left;
margin: 0 5px;
}
И все!!!
Можно еще немного Апач поправить и в РНР пару операторов своих написатьТак я общий подход обозначил, а то я смотрю там целую галерею с картинками хотят распечатать, кто их знает чего еще там надо сделать
Если через CSS не получается, можно создать шаблон в теме для вывода CCK полей.
content-field.tpl.php
<?php
// $Id: content-field.tpl.php,v 1.1.2.6 2009/09/11 09:20:37 markuspetrux Exp $
/**
?>* file content-field.tpl.php
* Default theme implementation to display the value of a field.
*
* Available variables:
* - $node: The node object.
* - $field: The field array.
* - $items: An array of values for each item in the field array.
* - $teaser: Whether this is displayed as a teaser.
* - $page: Whether this is displayed as a page.
* - $field_name: The field name.
* - $field_type: The field type.
* - $field_name_css: The css-compatible field name.
* - $field_type_css: The css-compatible field type.
* - $label: The item label.
* - $label_display: Position of label display, inline, above, or hidden.
* - $field_empty: Whether the field has any valid value.
*
* Each $item in $items contains:
* - 'view' - the themed view for that item
*
* see template_preprocess_content_field()
*/
<?php if (!$field_empty) : ?>
<div class="field field-type-<?php print $field_type_css ?> field-<?php print $field_name_css ?>">
<?php if ($label_display == 'above') : ?>
<div class="field-label"><?php print t($label) ?>: </div>
<?php endif;?>
<div class="field-items">
<?php $count = 1;
foreach ($items as $delta => $item) :
if (!$item['empty']) : ?>
<div class="field-item <?php print ($count % 2 ? 'odd' : 'even') ?>">
<?php if ($label_display == 'inline') { ?>
<div class="field-label-inline<?php print($delta ? '' : '-first')?>">
<?php print t($label) ?>: </div>
<?php } ?>
<?php print $item['view'] ?>
</div>
<?php $count++;
endif;
endforeach;?>
</div>
</div>
<?php endif; ?>
Хотя CSS все равно придётся использовать.
Всем большое спасибо за ответы! Буду пробовать