Sadece Üyelere Özel içerik

Events happening in the community are now at Drupal community events on www.drupal.org.
captix's picture

Only local images are allowed.

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

pembeci's picture

Anonim (giriş yapmamış) kullanıcıların uid'si 0. Yani bir yerlerde şöyle bir kod kullanman gerekiyor:

<?php
global $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

captix's picture

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

captix's picture

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;

captix's picture

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

bilvanisli's picture

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

captix's picture

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

bilvanisli's picture

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

bilvanisli's picture

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

captix's picture

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ü

bilvanisli's picture

Bence girmeye başla :)

Çünkü çoğu problemi tema yoluyla ya da css hileleriyle çok daha kolay çözebilirsin.

css neyse de tema dosyaları

captix's picture

css neyse de tema dosyaları bana göre değil yahu:)

TurkVideo my drupal video site ;)