Taksonomideki sözlük listesindeki terimler

Simuzer's picture

Ana sayfaya, orta yukarıya doğru bir blok olsa;

Bu blokta, taksonomide seçtiğim bir sözlükteki terimleri 2'li, 3'lü, x'li sütun şeklinde (yanyana virgülle ayrılmış da olabilir) sıralanacak... Bu şekilde sıralanan terimlere tıkladığımızda, o kategoride yayımlanmış yazılar listelenecek...

Bir diğer konu da navigatioın kısmı...

O kategoriye ve o kategorideki yazıya tıkladığımızda navigasyonda

ana sayfa -> Köşe Yazıları -> Simuz ER

gibi olmasını istiyorum. Şayet hep sadece "ana sayfa" yazmakta, hangi kategoride olduğu bu navigasyonda yazmamaktadır.

Groups:
Login to post comments

eğer yanlış anlamadıysam

onderd - Wed, 2008-07-23 21:05

eğer yanlış anlamadıysam istediğin tag cloud(etiket bulutu) gibi bişey. öyleyse tagadelic eklentisine bi bak. eğer tam olarak bu değilse bile biraz kurclayarak istediğini yapabilirsin


Daha çok dizin gibi...

Simuzer's picture
Simuzer - Thu, 2008-07-24 04:04

Yarım yamalak İngilizcemle directory eklentisine ulaştım. Kısmen de olsa işimi görür.

Teşekkür ederim.


Tagadelic eklentisi ile

bluebee's picture
bluebee - Thu, 2008-07-24 06:22

Tagadelic eklentisi ile birinci ihtiyacını karşılarsın bence de onderd'nin dediği gibi.

İkinci dediğin içinse Taxonomy breadcrumb eklentisini kurcalamanı öneririm.


Maalesef..

Simuzer's picture
Simuzer - Thu, 2008-07-24 17:38

Maalesef, 1. isteğimle etiket (daha doğrusu kelime) bulutu'nun uzaktan yakından alakası yok... Üstelik, bazı kelimeler büyük, bazıları kelimeler küçük... :D

  1. istediğim, dediğim gibi daha çok dizin ile alakalı. Ve istediğim şeyi de directory kısmen veriyor. Ancak, vocabulary'deki term'leri alt alta listeliyor. Ben bunu yan yana listelemek istiyorum...

  2. Taxonomy breadcrumb ise, 6. sürümü yok. geliştirme aşamasında olanını indirdim... O da maalesef tam istediğimi yerine getirmiyor.


italik kapanmamış galiba yukarıda

pembeci's picture
pembeci - Tue, 2008-07-29 11:08

sayfanın gerisi de o yüzden italikleşiyor gibime geldi. fena gözükmüyor gerçi ama merak ettim hakkaten
öyle mi?


Öyle olmuş galiba.. O

Simuzer's picture
Simuzer - Tue, 2008-07-29 17:52

Öyle olmuş galiba.. O zaman burdan açmadan kapatalım...


Küçük bir sıkıntı

Simuzer's picture
Simuzer - Thu, 2008-07-24 19:59

Directory eklentisi içerisinde şöyle bir kod var...
// -------------------------
// --[+] Kod ---------------
// -------------------------
$output = '

vid . '">';
$output .= theme('directory_list_terms', $terms, t('!vocabulary-name',
array('!vocabulary-name' => l($vocabulary->name, 'directory/vocabulary/'. $vocabulary->vid))));
$output .= '

';
// -------------------------
// --[-] Kod ---------------
// -------------------------

Burada ortadaki output değişkeninden, vocabulary'ye ait term'ler dönmektedir. Ancak burada iu şekilde dönüyor;

// -------------------------
// --[+] Kod ---------------
// -------------------------
< li>< span class="directory-category-nochildren">< a href="/category/dini-bilgiler/denemelik111">Deneme 1111< /a>< /span>< /li>
< li>< span class="directory-category-nochildren">< a href="/category/dini-bilgiler/denemelik222">Deneme 2222< /a>< /span>< /li>
// -------------------------
// --[-] Kod ---------------
// -------------------------

Oysa ben, ortadaki $output'un şu şekilde döndürmesini istiyorum...

// -------------------------
// --[+] Kod ---------------
// -------------------------
< a href="/category/dini-bilgiler/denemelik111">Deneme 1111< /a>,
< a href="/category/dini-bilgiler/denemelik222">Deneme 2222< /a>,
< a href="/category/dini-bilgiler/denemelik333">Deneme 3333< /a>,
< a href="/category/dini-bilgiler/denemelik444">Deneme 4444< /a>,
// -------------------------
// --[-] Kod ---------------
// -------------------------


theme fonksiyonu nasıl çalışır

pembeci's picture
pembeci - Tue, 2008-07-29 11:04

drupal 6 ve directory yüklü değil bende. o yüzden test etmeden gönderiyorum.

<?php
function aaaaa_directory_list_terms($terms, $title = '', $parent = 0) {
 
$output = '';
 
$showcounts = variable_get('directory_show_child_counts', TRUE);
 
$hideempty = variable_get('directory_hide_empty_terms', FALSE);

 
$item_span = '';

 
// Build a list of categories (taxonomy terms) and child counts.
 
foreach ($terms as $term) {
   
$nodecount = array('count_own' => 0, 'count_children' => 0);
    if (
$showcounts || $hideempty) {
     
$nodecount = directory_taxonomy_term_count_nodes($term->tid);
    }

   
$nodecount_span = '';
    if (
$showcounts) {
     
$item_span = '<span class="directory-category-nochildren">';
      if (
$nodecount['count_own'] || $nodecount['count_children']) {
       
$item_span = '<span class="directory-category-haschildren">';
       
$nodecount_span = theme('directory_node_count', $nodecount, $term);
      }
    }

   
// if desired, exclude items
   
if ((!$hideempty) || ($nodecount['count_own'] || $nodecount['count_children'])) {
     
$children = taxonomy_get_children($term->tid);
      if (
is_array($children)) {
       
$children = theme('directory_list_subterms', $children);
      }
     
$items[] = array('data' => $item_span . l($term->name, "taxonomy/term/$term->tid", (($term->description) ? array('title' => $term->description) : array())) . $nodecount_span . '</span>', 'children' => $children);
    }
  }

 
// $output = theme('item_list', $items, $title);
 
$output = implode(", ",$items); // biz ekledik
 
return $output;
}
?>

yukaridaki kodda aaaaa olan kısmı theme isminle değiştirip theme dizinindeki template.php dosyana ekle. yani mesela theme olarak garland kullanıyorsan fonksiyonunun ismi garland_directory_list_terms olacak. olan biteni izah etmek gerekirse değiştirmek istediğin html kodu theme('directory_list_terms', ....) fonksiyonunun döndürdüğü bir string (detekifliği doğru yaptığını varsayıyorum). theme fonksiyonunu ise bir çeşit dağıtıcı olarak düşünebilirsin. drupal'in başka yerlerde de php'nin bir dil olarak eksikliğini aşmak için başvurduğu bir taktikle çalışıyor. kendisi hesap kitap yapmıyor sadece tüm kodlar içindeki uygun olan fonksiyona karar verip çağırıyor ve onun döndürdüğünü kendisini çağırana döndürüyor. bunu da şöyle yapıyor, ilk iş olarak theme_ ön takısını bir string olan ilk argumanına ekliyor. bizim örneğimizde ne bulduk: "theme_directory_list_terms". daha yüksek öncelikli bir fonksiyon yoksa geriye kalan argumanlarla (.... olarak bıraktığım kısım) bu fonksiyonu çağırıyor. peki bu fonksiyon nerede? directory.module dosyasında (bendeki sürümünde) 359. satırda başlıyor. zaten yukarıdaki kod da en sondaki $output = implode ... değişikliği hariç oradan alıntı. peki daha yüksek öncelikli fonksiyon ne olabilirdi? bunun için drupal (theme fonksiyonu yani) theme ismini öne ekleyip öyle bir fonksiyon var mı diye bakıyor. yani garland_directory_list_terms varsa, theme_directory_list_terms yerine onu çağırıyor. template.php dosyasına biz bu fonksiyonu ekleyerek drupal kod tabanına bu fonksiyonu eklemiş oluyoruz ve onun çağrılmasını sağlıyoruz.

yaptığımız değişikliği de şöyle anlatayım. directory eklentisindeki fonksiyon, ayrıntısına bile göz atmadığım bir şekilde terimler listesini $items array değişkenine topluyor ve bunu formatlamak için de theme('item_list' ....) fonksiyonunu çağırıyor. item_list tam da senin değiştirmek istediğini yapar yani ul etiketinin içinde dizinin her elemanını bir li olarak ekler (bkz. theme_item_list fonksiyonu). biz ise php'nin implode fonksiyonunu çağırarak bu dizideki stringleri ", " ile ayrılmış olarak tek bir büyük string'de sıralarını koruyarak birleştirmiş olduk. bir dikkat edilecek şey, theme_item_list, listelemek istenilen şeylerde bir hiyerarşi (parent-child ilişkisi) varsa, içiçe (nested) listeler döndürerek bu ilişkileri görsel olarak yansıtmana imkan verir. implode ile bu hiyerarşiyi düzleştirmiş, her elemanı aynı düzeye çekmiş olursun.

şimdi tabii çoğumuzun aklına şu gelecek. madem değişiklik böyle sadece tek bir satır ve directory.module dosyasındaki fonksiyonu değiştirerek de aynı sonuca ulaşabilirim, neden orayı değiştirmiyorum da bir sürü template.php'yle filan uğraşıyorum. aynı sonuca ulaşılacağı doğru. ama bu temiz bir çözüm değil. güncelleme sırasında directory.module dosyası değişirse değişikliğiniz çöpe gider. her seferinde aynı değişikliği yapmanız gerekir ki nerede neyi değiştirdiğinizi hatırlamakta zorlanmanız da mümkün. özetle directory.module dosyasını değiştirmek hackish bir çözüm olur. yılların bana verdiği kod yazma tecrübesi der ki hackish çözümler kısa vadede birkaç dakika kazandırsa da size uzun vadede bir ara mutlaka çok daha pahalıya, baş ağrısına sebep olur. bir kez bu tip davranmaya alışınca insan gitgide daha kirletir ortamı ve bu size daha kötü sonuçlar olarak daha kısa vadede döner. drupal'i tasarlayanlar da zaten bu hackish tavırların iyi programcılık, temiz çalışan bir uygulama açısından zararlı olduklarını bildikleri için hemen her yerde bu tip var olanı değiştirmek, esneklik sağlamak için theme fonksiyonu benzeri güzellikleri bize sağlamışlar.


Öncelikle, oldukça uzun ve

Simuzer's picture
Simuzer - Tue, 2008-07-29 18:11

Öncelikle, oldukça uzun ve uzun olduğu kadar da baymayan açıklayıcı bir lisan ile cevap yazdığınız için teşekkür ediyorum...

Ben şöyle bir çözüm yapmıştım...

Taksonomi'de "bolum" isminde sözlük ekledim. Daha sonra "deneme 111", "deneme 222", "deneme 333", "deneme 444", "deneme 555" ve "deneme 666" isimlerinde terim ekledim.

Öncelikle css dosyasına DIV'lerin sol ve sağ blok şeklinde olmasını sağlamak için bi kaç satırlık kod ekledim.

Daha sonra, sayfa oluşturdan;

< div class="sol-blok">
< ul>< li>deneme 111< /li>
< li>deneme 222< /li>
< li>deneme 333< /li>
< /ul>< /div>
< div class="sag-blok">
< ul>< li>deneme 444< /li>
< li>deneme 555< /li>
< li>deneme 666< /li>
< /ul>< /div>

şeklinde sayfa eklerken, menü olarak da gösterdim: autopath ile url adresini de www.site.com/bolum şeklinde ayarladım.

autopath ile "bolum" sözlüğündeki terimlerin url adreslerini "bolum/deneme-111" şeklinde olacak şekilde bu 6 bölümü düzenledim...

Bu şekilde, tek sıkıntı şu gibi görünüyor; "bolum" sözlüğüne terim eklerken "bolum" sayfasını düzenleyerek yeni eklediğim terimi buraya eklemeyi unutmak :)

Şimdilik kendi sistemimde phpBB3 kullanıyorum. Ancak, istediğim sistem bir forum sayfasından çok, makale ve yazı arşivi olmasını istediğimden dolayı drupal'ı incelemeye aldım... Ve denemelerimi http://drupal.simuzer.com adresinde yapmaktayım.


birden çok yol var tabii

pembeci's picture
pembeci - Tue, 2008-07-29 21:47

biraz da referans olsun diye öyle ayrıntılı yazmaya çalıştım. forum formatı soru-cevap ağırlıklı, teknik destek gibi şeyler için güzel hoş da bir kez -illa drupal şart değil- içerik yönetim sistemlerine (content management systems niyetine) alışınca siteyi hazırlayanı da kesmiyor, okuyanı da bana göre. phpBB tabii bir forum yazılımı olarak hayli gelişmiş imkanlar sunuyor ama bir İYS'de ana öğe olan kimi şeyler için taklalar atmak gerekebiliyor benim tecrübeme göre. okuyucu olarak da zorlanıyorum ben forum sayfalarında. ana sayfaya gelince insan ekstra tıklara gerek kalmadan son gelişmeleri görmek, yazılar arasında bir ön eleme yapabilmek istiyor mesela. forum sayfalarında bu zor. arşivsel kullanımı olacaksa sitenin, yine drupal'ın phpBB3'e göre birçok avantajını göreceksindir.


İstediğim işi yapan çok

Simuzer's picture
Simuzer - Wed, 2008-07-30 18:00

İstediğim işi yapan çok güzel bir modül buldum :)

taxonomy_list Üstelik sütun olarak da istediğiniz kadar sayıda ayarlayabiliyorsunuz. Ve daha bir kaç ayarı daha var.


Simuzer bu eklenti

khanmurat's picture
khanmurat - Thu, 2008-10-23 13:27

Simuzer bu eklenti kategorilerin sıralandığı sayfa içinde aynı ayarları yapıyormu?Bende aynı dertten muzdaribim ve bu eklenti işime yarayacak gibi ama ben kategorileri tablo yapısında sıraladıktan sonra, kategori sayfasında gönderileride tablo yapısında sıralamak istiyorm.


Views -> Grid

drupaloSa's picture
drupaloSa - Thu, 2008-10-23 13:33

Taksonomi sayfasını Views ile özelleştirebilirsin. Views 2'de Grid görünüm tipi mevcut, sayfayı sütunlara bölebiliyorsun. 5.x'te ise benzer bir uygulamayı Views Bonus Pack'teki grid görünüm tipi ile yapmak mümkün.
---
drupaldersleri.org - Türkçe Drupal bilgi kaynağı


Views Bonus Pack çok işime

khanmurat's picture
khanmurat - Thu, 2008-11-13 13:42

Views Bonus Pack çok işime yaradı teşekkür ederim, 5x kullanmaya devam edince böyle arayışlarada giriyoruz haliyle.