Posted by captix on December 17, 2010 at 9:55am

resim sitem var.
siyah çerçeveli olanlar(sol kısım)da resimlerim bulunuyor, sağ tarafta ise bloklar mevcut
Resimler herkese gözüküyor ancak içi kırmızı boyalı resimleri sadece üyeler görebilsin. Kısaca içi kırmızı olan resimleri ziyaretçiler, benim belirledigim bi resmi görecek şekilde ama üye girişi yapınca orjinalin thumbunu görebilsin.
Bu üyelere içerikler sistemini nasıl yapabilirim? Sanırım derdimi anlatabildim.
Comments
Anonim kullanıcıyı test etme
Anonim (giriş yapmamış) kullanıcıların uid'si 0. Yani bir yerlerde şöyle bir kod kullanman gerekiyor:
<?phpglobal $user; // şayet bir fonksiyon içine yazıyorsan bu lazım
if ($user->uid == 0) {
// anonim kullanıcılar için kod
}
else {
// girişi yapmışlar için olan kod
}
// sadece bir değer atayacaksan bu teste göre, kısaca şunu da kullanabilirsin:
$resim_src = ($uid == 0) ? "please_login_to_see_picture.jpg" : /* resmin normalde olması gereken patikası */;
?>
Ha bunu nereye yazacaksın, o yukarıdaki görünümü nasıl elde ettiğine bağlı.
demek aradığım şey üstün kod
demek aradığım şey üstün kod bilgisi gerektiriyor :|
eğer girdiğim içerik türü "uyelereozel" ise ve sitedeki "ziyaretçi" ise onlara loginpic.jpg gözüksün
içerik türüyle nası bağdaştırabiliriz bunu? çünkü tek viewste 2içerik türünü listeleyip yapacam bu dediginizi
TurkVideo my drupal video site ;)
hallettim birazını fakat if
hallettim birazını fakat else kısmında takıldım
if (ziyaretçiyse) { belirledigim resmi göster }
else {
burayı nasıl yapıcaz? $content'in tamamını gösterebilirmiyiz?
}
TurkVideo my drupal video site ;)
else { print $submitted;
else {
print $submitted;
}
print $content;
print $date; print yerine echo vs aklınıza ne gelirse denedim fakat sonuç yok. http://drupal.org/node/11816 daki örnekleri denedim fakat bir türlü else'yi tutturamıyorum :s
TurkVideo my drupal video site ;)
content template
content template eklentisi kurup orada içerik türlerinin template bölümünde farklı değişkenlerin ne ifade ettiğini görebilirsin.
Ayrıca bahsettiğin $content gibi değişkenler, temaların template.php dosyasında tanımlanır. Belki orada da yardımcı olacak şeyler bulabilirsin.mesela $vars['body'] gibi bir değişken varsa onu node.tpl.php dosyasında $body olarak çağırabilirsin.
Tema dosyalarıyla muhatap
Tema dosyalarıyla muhatap olmak en son tercihim, hatta ona kadar düşsem, o işten vazgeçerim. O derece tema dosyalarıyla oynamayı istemiyorum.
contemplate ye bi bakayım ama content'i alamıyorum bi türlü. Tamam contemplate işimi gördü teşekkürler.
peki viewste "ozelicerik" içerik türündeki resimleri views ile oluşturduğum ana sayfadan nasıl gizliyecem? content içinde yaptık tamam ama views ana sayfada?
TurkVideo my drupal video site ;)
views ayarlarında style
views ayarlarında style bölümünde theme:information diye bişi var. onu tıklayınca altta bu viewsta kullanabileceğin tpl dosyaları görünür.
Row style output seçeneğini tıkla. Açılan yeni sayfada senin için örnek views verecektir. Bu views ta foreach ile bütün alanları göstermektedir. Örneğin sende resim 2. alansa bir kontrolle ($sayac vb.) o alana geldiğinde kullanıcının üye/ziyaretçi olup olmadığını kontrol edersin. Ona göre istediğini gösterirsin. aslında field output daha mantıklı ama hiç kullanmadığım için değişkenlerinin ne olduğunu bilmiyorum.
Ben aşağıdaki kodda ilk iki alanı anasol div inin içine koydum.
Sonra bu dosyayı Row style output seçeneğinin yanında yer alan önerilerden biri olarak (bende:"views-view-fields--anasayfa.tpl.php" gibi) tema klasörüne kaydet.
<?php$sayac=0; //EKLEME
?>
<?php foreach ($fields as $id => $field): ?>
<?php if ($sayac==0): ?> /EKLEME/
<?php print '<div class="anasol">'; ?> /EKLEME/
<?php endif; ?> //EKLEME
<?php if ($sayac==2): ?> /EKLEME/
<?php print '</div>'; ?> /EKLEME/
<?php endif; ?> /EKLEME/
<?php if (!empty($field->separator)): ?>
<?php print $field->separator; ?>
<?php endif; ?>
<<?php print $field->inline_html;?> class="views-field-<?php print $field->class; ?>">
<?php if ($field->label): ?> <label class="views-label-<?php print $field->class; ?>">
<?php print $field->label; ?>: </label> <?php endif; ?>
<<?php print $field->element_type; ?> class="field-content">
<?php print $field->content; ?>
</<?php print $field->element_type; ?>>
</<?php print $field->inline_html;?>>
<?php $sayac++; ?> /EKLEME/
<?php endforeach; ?>
views ayarlarında style
views ayarlarında style bölümünde theme:information diye bişi var. onu tıklayınca altta bu viewsta kullanabileceğin tpl dosyaları görünür.
Row style output seçeneğini tıkla. Açılan yeni sayfada senin için örnek views verecektir. Bu views ta foreach ile bütün alanları göstermektedir. Örneğin sende resim 2. alansa bir kontrolle ($sayac vb.) o alana geldiğinde kullanıcının üye/ziyaretçi olup olmadığını kontrol edersin. Ona göre istediğini gösterirsin. aslında field output daha mantıklı ama hiç kullanmadığım için değişkenlerinin ne olduğunu bilmiyorum.
Ben aşağıdaki kodda ilk iki alanı anasol div inin içine koydum.
Sonra bu dosyayı Row style output seçeneğinin yanında yer alan önerilerden biri olarak (bende:"views-view-fields--anasayfa.tpl.php" gibi) tema klasörüne kaydet.
<?php$sayac=0; //EKLEME
?>
<?php foreach ($fields as $id => $field): ?>
<?php if ($sayac==0): ?>
<?php print '<div class="anasol">'; ?> //EKLEME
<?php endif; ?> //EKLEME
<?php if ($sayac==2): ?> //EKLEME
<?php print '</div>'; ?> //EKLEME
<?php endif; ?> //EKLEME
<?php if (!empty($field->separator)): ?>
<?php print $field->separator; ?>
<?php endif; ?>
<<?php print $field->inline_html;?> class="views-field-<?php print $field->class; ?>">
<?php if ($field->label): ?> <label class="views-label-<?php print $field->class; ?>">
<?php print $field->label; ?>: </label> <?php endif; ?>
<<?php print $field->element_type; ?> class="field-content">
<?php print $field->content; ?>
</<?php print $field->element_type; ?>>
</<?php print $field->inline_html;?>>
<?php $sayac++; ?> //EKLEME
<?php endforeach; ?>
ille diyosun ki tema
ille diyosun ki tema dosyalarıyla oyna :/
biraz daha araştıracam son çare olarak dediğinizi yapmayı düşünüyorum. Şimdilik anasayfadakiler görünebilir node içindekiler görünmemesi iyi oldu
TurkVideo my drupal video site ;)
Bence girmeye başla :) Çünkü
Bence girmeye başla :)
Çünkü çoğu problemi tema yoluyla ya da css hileleriyle çok daha kolay çözebilirsin.
css neyse de tema dosyaları
css neyse de tema dosyaları bana göre değil yahu:)
TurkVideo my drupal video site ;)