Помощь с отображением типа контента - PullRequest
0 голосов
/ 28 июля 2010

Я новичок в 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.Если решение проблемы заключается в изменении функции препроцессора, каков наилучший способ найти правильный метод?

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

Ответы [ 2 ]

2 голосов
/ 28 июля 2010

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

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

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

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

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

0 голосов
/ 28 июля 2010

В вашем файле 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>

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

Стилизуйте свои изображения соответственно!

...