Posted by CyberDisposer on May 22, 2009 at 3:11pm
Event type:
User group meeting
Ben bir xhtml & css bir template hazırladım. Bu tasarımı drupala nasıl entegre ederim. Normalde page.tpl.php dosyasını düzenleyince birşeyler benziyor ama istediğim tam olarak bu değil.
Atıyorum tasarımda
<div class="kategori"><a href="#">Kategori Adı</a></div>
diye bir kod var. Ben aynı id ve aynı classları drupala nasıl entegre ederim. Yani php çıktısına bu tagları nasıl ekleyebilirim?
Mesela kategorilerin çıktısı
<div class="terms">
<ul class="links inline">
<li class="taxonomy_term_2 first last"><a href="#" rel="tag" title="">Kategori Adı</a></li>
</ul>
</div>oluyor.
Ben bunu
<div class="bilgi">
Kategori: <a href="#">Kategori Adı</a>
</div>olmasını istiyorum.
Acaba hangi modülün fonksiyonlarını değiştirmem gerekcek. Ben taxonomyye baktım ama birşey bulamadım.
Cevabınız için şimdiden teşekkürler.

Comments
Herhangi bir modülün
Herhangi bir modülün tasarımını değiştirmenize gerek olduğunu sanmıyorum. Tabi bazı modüllerin kendine özgü cssleri oluyor ama bunlar tasarımcıyı çok ilgilendirmeyen, standart sayılabilecek şeyler, örneğin: quictabs eklentisinin kendisine özel, modülle bütünleşik bazı css dosyaları vardır, class ve id atamaları da yapıyor kendine göre.
Asıl meseleye gelecek olursak,
Benim düşüncem orta yolu bulmaktan yana. Şöyle ki olmasını istediğiniz tasarım oldukça basit bir kodlama sunacak gibi ama modüller az öncede bahsettiğim gibi çok basit şeyleri kendi içerisinde yapabiliyorlar. Bunu yaparken de class ve id atamaları yapıyorlar haliyle. Bunları CSS dosyanızda esgeçmeden, standart bir drupal temasından da yararlanarak CSS dosyanıza eklemeniz ve ardından hangi contributed tema üzerinde çalışıyorsanız onun tpl.php dosyasını kendi tasarımınıza uyarlamanız, bu aklıma gelen en iyi yol. CSS önbelleklemesini kapatarak da hangi CSS bilgilerinin modüllerden(hem core hem de contributed) geldiğini görebilir ve onları tasarımınızın, CSS dosyanızın dışında tutabilirsiniz. Çünkü dediğim gibi görünümü çok ilgilendirmeyen basit bilgiler sunar bu çekirdekten gelen bilgiler. Elbette istisnaları da olacaktır, özellikle çekirdek dışı eklentilerde biraz sıkıntı çıkabiliyor, üzerine yazmayı da düşünebilirsiniz işinizi engelliyorlarsa.
Sayfanızda tüm taxonomy
Sayfanızda tüm taxonomy etiketlerini göstermek isterseniz aşağıdaki kodu kullanabilirsiniz:
<?phpif ($terms):
?>
<?php
$vocabularies = taxonomy_get_vocabularies();
foreach($vocabularies as $vocabulary) {
if ($vocabularies) {
$terms = taxonomy_node_get_terms_by_vocabulary($node, $vocabulary->vid);
if ($terms) {
print '<div class="terms"><h1>' . $vocabulary->name . ':</h1> ';
foreach ($terms as $term) {
print l($term->name, 'taxonomy/term/'.$term->tid, array('title' => $term->description) ) . ' ';
}
print '</div>';
}
}
}
?>
<?phpendif;
?>
Sayfadaki etiketlerin görünümü aşağıdaki şekilde olacaktır:
Sözlük1 adı:
etiket1,etiket2,etiket3,...
Sözlük2 adı:
etiket1,etiket2,etiket3,...
...
Sadece sözlük2 etiketlerini listelemek istersek, sözlük2'in id değerini belirtmeniz gerekmektedir. Sözlük2'in id değeri "2" olsun ve biz buna göre kodumuzu hazırlayalım.
Sözlüklerinizin id'leri genellikle oluşturulma sıralarına göre oluşturulmaktadır.
İşimize yarayacak kod bloğu aşağıdaki gibidir:
<?phpif ($terms):
?>
<?php
$terms = taxonomy_node_get_terms_by_vocabulary($node,2);
if ($terms) {
print '<div>';
print 'İlgili Konular: ';
foreach ($terms as $term) {
print l($term->name, 'taxonomy/term/'.$term->tid, array('title' => $term->description) ) . ' ';
}
print '<br /></div>';
}
?>
<?phpendif;
?>
Bu kod bölümünde 2 şeklinde belirtilen yere kullanmak istediğiniz sözlüğün id değerini girin ve node.tpl.php dosyasında yazdırmak istediğiniz yerde kullanın.
Kaynak: http://www.aratmedya.com/carat
www.aratmedya.com