Drupal 7 İçerik Eki Resimlerinin Özelleştirilmesi - Mini Gallery (Resimli Anlatım)

Blog Kategori: 

Drupal 7 ile hazırladığınız bir site var ve içeriğe eklediğiniz resimler hep alt alta görünüyor.

Bu da sizi rahatsız ediyor.

Ne yapalım böyle çıkıyor! diye kendinizi üzmeyin.

Aynı sıkıntıyı bende çok yaşadım ve maalesef Drupal'in Türkçe desteği pek yeterli sayılmadığından yabancı sitelerde gezdim gezdim, en sonunda buldum.

Yapmamız gerekenler adım adım şu şekilde;

1- Bir not defteri sayfası açalım (ya da php dosyası oluşturabileceğimiz başka düzenleyicilerde yeni bir dosya açalım).

2- Dosyamızı content-field-field_mini_gallery.tpl.php adıyla kaydedelim.

3- Bu dosyanın içerisine aşağıdaki kodları yapıştıralım:

<?php
// $Id:$

/**
* @file content-field-field_mini-gallery.tpl.php
* Theme implementation to display multiple values in the mini-gallery 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()
*/
  $columns = 4;
  $rows = array_chunk($items, $columns);
?>
<?php if (!$field_empty) : ?>
<table class="mini-gallery">
  <tbody>
    <?php foreach ($rows as $row_number => $columns): ?>
      <?php
        $row_class = 'row-' . ($row_number + 1);
        if ($row_number == 0) {
          $row_class .= ' row-first';
        }
        if (count($rows) == ($row_number + 1)) {
          $row_class .= ' row-last';
        }
      ?>
      <tr class="<?php print $row_class; ?>">
        <?php foreach ($columns as $column_number => $item): ?>
          <td class="<?php print 'col-'. ($column_number + 1); ?>">
            <div class="photo-image"><?php print $item['view']; ?></div>
            <div class="photo-title"><?php print $item['data']['title']; ?><div>
          </td>
        <?php endforeach; ?>
      </tr>
    <?php endforeach; ?>
  </tbody>
</table>
<?php endif; ?>

5- 27. satırdaki $columns = 4 bizim kaç sütunlu bir gösterim yapacağımızın ayarı. Kaç sütun istiyorsak ona göre değiştirelim.

6- Daha sonra Admin Panelden > Yapı > İçerik Türleri > Hangi İçerik Türüne Bağlı Alanı İstiyorsanız > Alanları Yönet Seçeneğini Seçiniz

7- Açılan sayfadaki görsel field (alan) adını yeni dosyada kullanacağımız için not ediyoruz.

8- Yeni bir php dosyası oluşturmak için editörümüzü açıyoruz ve dosyaya şu kodları yapıştırıyoruz:

<?php
  $columns = 2;
  $rows = array_chunk($items, $columns);
?>

<table class="mini-gallery">
  <tbody>
    <?php foreach ($rows as $row_number => $columns): ?>
      <?php
        $row_class = 'row-' . ($row_number + 1);
        if ($row_number == 0) {
          $row_class .= ' row-first';
        }
        if (count($rows) == ($row_number + 1)) {
          $row_class .= ' row-last';
        }
      ?>
      <tr class="<?php print $row_class; ?>">
        <?php foreach ($columns as $column_number => $item): ?>
          <td class="<?php print 'col-'. ($column_number + 1); ?>">
      <div class="photo-image"><?php print render($item); ?></div>
      <div class="photo-title"><?php print($item['#item']['title']); ?>

      <div>
          </td>
        <?php endforeach; ?>
      </tr>
    <?php endforeach; ?>
  </tbody>
</table>

9- İkinci satırdaki columns değerini yine kaç sütun istiyorsak ona göre değiştiriyoruz.

10- Dosyamızı field--NOT ALDIĞIMIZ FIELD DEĞERİ.tpl.php adıyla kaydediyoruz. Yukarıdaki resimde alan adı field_galeri_resmi olduğundan dosya field--field_galeri_resmi.tpl.php adıyla kaydedilmesi gerekir.

11- Daha sonra kaydettiğimiz php dosyalarını FileZilla gibi bir FTP programı vasıtası ile /sites/all/themes/TEMANIZ/templates klasörü içerisine atıyoruz. Önbellekleri temizleyip sayfayı yenilediğinizde yeni düzene kavuşmuş olacaksınız... Örnek için: http://www.turkelicumhuriyet.k12.tr/?q=foto-galeri/anneler-g%C3%BCn%C3%BC-kutlamas%C4%B1 adresini ziyaret edebilirsiniz...

Yeni yorum ekle