Arhn - архитектура программирования

Помощь с отображением типа контента

Я новичок в Drupal и пытаюсь понять, как оформить тип контента. Я создаю сайт риэлтора для клиента, в котором моим основным типом контента будет что-то вроде «Список свойств». Я установил все необходимые модули, которые помогут мне загружать изображения, и все работает правильно. Мне нужно иметь возможность отображать ОБА изображения в полном размере и миниатюры, чтобы создать слайд-шоу (или галерею) для каждого свойства.

Пример:

// Fullsize Images
<ul class="gallery-output">
    <li><img src="example.png" /></li>
    <li><img src="example-two.png" /></li>
</ul>
// Thumbnail Images
<ul class="gallery-nav">
    <li><a href="#"><img src="example_thumb.png" /></a></li>
    <li><a href="#"><img src="example-two_thumb.png" /></a></li>
</ul>

Теперь я знаю, что вы должны создать файл node- [content-type] .tpl.php, чтобы внести изменения. Что я не знаю, так это где. Так что, пожалуйста, помогите мне.

В моем скопированном файле node -what.tpl.php у меня есть:

<div class="content clear-block">
    <?php print $content ?>
</div>

Могу ли я удалить это и заменить своим собственным решением? Или мне внести изменения в файл template.php? Если оба варианта возможны, какое решение предпочтительнее? Я использую: cck, filefield, imageapi, imagecache и imagefield. Если изменение функции препроцессора является решением, каков наилучший метод поиска правильного?

Пожалуйста помоги! (О, и если кто-то скажет «Использовать представления», я думаю, что сойду с ума - так что, пожалуйста, не надо, это не то решение, которое я ищу) :)


Ответы:


1

Ваш подход с node -with.tpl.php абсолютно правильный. $content содержит содержимое COMPLETE по мере его обработки. Если вы хотите стилизовать свои поля CCK или что-то подобное, вам необходимо получить эти переменные. Они присутствуют на странице, они вам просто не показываются, так как все находится внутри $content.

В качестве хорошего подспорья установите Devel и (что более важно) Разработчик темы. Разработчик темы позволяет вам проверять ВСЕ варианты, доступные на сайте, какие блоки вызываются, какие функции используются для рендеринга какой части и так далее. Это очень полезно. Вы увидите, что у вас есть все необходимые данные, и вы можете работать с ними так, как хотите.

Если вы хотите изменить размер некоторых изображений в соответствии с настройкой ImageCache, вы используете ее внутри шаблона, как показано ниже:

theme('imagecache', 'your_preset', $field_fromcck[0]['filepath']);

Предположим, у вас есть поле CCK с именами fromcck. Но эта информация станет вам доступна после того, как вы познакомитесь с Devel и Theme Developer.

28.07.2010
  • спасибо DrColossos, вы указали мне правильное направление. Я знал о Devel, но обнаружил, что это бесполезно - я не знал о Theme Developer. Еще раз спасибо. Ознакомьтесь с моим ответом на решение, которое я использовал. 28.07.2010

  • 2

    В вашем файле node- [content-type] .tpl.php замените:

    <div class="content clear-block">
      <?php print $content ?>
    </div>
    

    с участием:

    <div class="content clear-block">
    <?php
    
        // Large and Thumbnail are my Imagecache Presets
    
    $cck_images = $node->field_image;
    if (count($cck_images) > 0) :
      // Fullsize
      foreach ($cck_images as $cck_image) :
        $image = theme('imagecache', 'large', $cck_image['filepath'], $cck_image['data']['alt'], $cck_image['data']['title']);
        print $image;
      endforeach;
      // Thumbnails
      foreach ($cck_images as $cck_image) :
        $image = theme('imagecache', 'thumbnail', $cck_image['filepath'], $cck_image['data']['alt'], $cck_image['data']['title']);
        print $image;
      endforeach;
    endif;
    
    ?>
    
    <?php // All Content except for images ?> 
    <?php print $content ?>
    </div>
    

    И исключите изображения из отображения (администрирование -> тип содержимого -> ваш [тип содержимого] -> управление полями -> поля отображения).

    Настройте свои изображения соответствующим образом!

    28.07.2010
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..