Поле изображение в ССК

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

Аватар пользователя deima deima 15 мая 2010 в 17:51

У меня возник вот какой вопрос. Создаю поле "Изображение" в ССК для определенного вида материала. Потом когда создаю материал и погружаю к нему картинку, она появляется выше или выше или ниже основного текста. Возможно ли сделать так чтобы она появлялась слева от текста как при вставке изображения с помощью визуального редактора. Для чего мне это нужно? Во-первых хочу чтобы в анонсе выводилась картинка слева, а не в центре, а, во-вторых, при такой возможности можно сделать несколько картинок расположенных по вертикали с осонвным текстом справа. т.е. как бы галерея слева и текст справа. Возможно ли это реализовать?

Комментарии

Аватар пользователя Serge66 Serge66 15 мая 2010 в 19:14

Каков вопрос - таков ответ. Вот если бы Вы спросили «как», то ответ бы был примерно такой.
«CSS вашей темы. Что нибудь типа
img{float: left; clear: left;}»

Аватар пользователя deima deima 15 мая 2010 в 19:38

"Serge66" wrote:
«CSS вашей темы. Что нибудь типа
img{float: left; clear: left;}»

Думаете в CSS темы и поля можно подправить. Мне кажется, что если и менять что-то то в CSS модуля ССК

Аватар пользователя SINN_S SINN_S 15 мая 2010 в 19:56

в css модуля cck, мне кажется, менять не надо, т.к при обновлении модуля можно запросто затереть сделанные изменения.
Можно выводить примерно так:
Допустим имеется поле, в нем несколько изображений грузится. Нужно вывести в какую-нить галерею на jquery (или другую какую-то).

Перебираем все фотки в цикле
foreach((array)$node->field_foto as $item) {

$pres2='noim';//это название нужного пресета в imagecache
  $n_path = imagecache_create_url($pres2, $item['filepath'] );.......

ну а дальше в нужно месте применяете $n_path
Например
<img src="<? echo $n_path ?> ">
и уже для этого изображения в таблице стилей самой темы настраиваете всё что нужно

Только один момент:
перед тем, как Вы примените такой вариант вывода, необходимо в настройках отображения конкретно этого поля выбрать вариант "скрыто", иначе на странице получится дублирование

Аватар пользователя wyatkins wyatkins 15 мая 2010 в 19:54

"deima" wrote:
Думаете в CSS темы и поля можно подправить. Мне кажется, что если и менять что-то то в CSS модуля ССК

в папке темы создайте vasya-durak.css, зарегистрируйте его в файле ваша_тема.info . А дальше уже че хотите и делайте с полями в этом вася-дурак. В модули не надо лезть, тем более из-за такой ерунды css

Аватар пользователя Xermit Xermit 15 мая 2010 в 20:24

1) попробовать все сделать через css (насчет css переопределяющего css модуля совсем недавно я делал как здесь http://www.drupal.ru/node/43655)
2) если css не даст нужного результата, то темизировать html вывод поля, то есть создать шаблон именно для этого поля. (http://www.drupal.ru/node/43954 , там 1-й первый пост ваш)

Аватар пользователя Serge66 Serge66 15 мая 2010 в 20:43

Вашу мать....
В style.css вашей темы

.field-field-ваша-картинка  .field-item img{
        float: left;
        margin: 0 5px;
}

И все!!!

"Xermit" wrote:
Xermit
Можно еще немного Апач поправить и в РНР пару операторов своих написать

Аватар пользователя Xermit Xermit 15 мая 2010 в 20:56

Так я общий подход обозначил, а то я смотрю там целую галерею с картинками хотят распечатать, кто их знает чего еще там надо сделать Biggrin

Аватар пользователя Ch Ch 16 мая 2010 в 9:57

Если через 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?>:&nbsp;</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 'odd' 'even'?>">
          <?php if ($label_display == 'inline') { ?>
            <div class="field-label-inline<?php print($delta '' '-first')?>">
              <?php print t($label?>:&nbsp;</div>
          <?php ?>
          <?php print $item['view'?>
        </div>
      <?php $count++;
      endif;
    endforeach;
?>
  </div>
</div>
<?php endif; ?>

Хотя CSS все равно придётся использовать.