Skip to Content

İmageField e urlden resim eklemek

kaptan, Çrş, 23/03/2011 - 03:59 tarihinde.

Merhaba arkadaşlar,

Cck imagefield ile oluşturduğumuz resim alanı ile içeriğimize resim eklerken sadece pcden upload yapabiliyoruz. Upload yapmak yerine resimi urlden çekebilmek başka eklenti kurmadan imagefield ile mümkün mü?

Junik'inde yardımıyla http://drupal.org/project/filefield_sources eklentisini buldum upload ın yanına urlden resim almamızı sağlıyor ama aldığı resimi direk ana sunucuya transfer ediyor. Eklentiyi kurduktan sonra denedim ama bir türlü transfer yerine embed gibi resimi direk urlsini girdiğim yerden alamadım. Bu eklentiyi kullanan ve urlden transfer yerine resimi direk urlden gösterme özelliği varmı?

Resimlerin hem sunucuda yer kaplamaması ve azda olsa işlemciyi daha az kullanmamızı sağlamak için, imagefield ile başka urldeki resimi nasıl içeriğimizde ckk ile gösteririz?

Daha önce forumda böyle bir konu açılmış ama orda istenilen resimin urlden kendi sunucumuza transfer edilmesiymiş ve yukarda verdiğim eklenti ile halledilmiş...

İmageField ile ilgili bir diğer sorumda: her seferinde resim eklemek yerine daha önce eklediğimiz resimler içinden seçim yapabilme imkanımız var mı?

junik, Çrş, 23/03/2011 - 09:36 tarihinde.

İlk eklenti ile sanırım yüklemiş olduğun resimleri browse özelliği ile görmen mümkün ya da imceyi yüklemen gerekiyor olabilir. Direk resim almak için de şu eklentiyi bir dener misin?

mersoy, Çrş, 23/03/2011 - 21:25 tarihinde.

Tekrar yazmak istemediğim için sizi http://drupaldersleri.org/forum/k3182.html bu konuya yönlendirmek istiyorum. Kullandığım yöntemden bahsetmiştim. Tam olarak sizin istediğiniz cevap. Takıldığınız yerde bu konu altından devam edelim.

kaptan, Çrş, 23/03/2011 - 23:47 tarihinde.

Mersoy belirttiğin linki okudum ama sen denedim olmadı yazmışsın sonra uzun uzun yazılmış sanırım konu başka yerlerede kaymış filan.. Biraz karışık geldi. Yani verdiğin linkten bi çözüm bulamadım yinede teşekkürler

Teşekkürler Junik iki gündür bunun için uğraşıyorum az çok biliyorsun. Dün verdiğin eklentiye uzun bir zaman harcadıktan sonra hiç bi olumlu sonuç alamadım. Kendimde aradım bulamadım. Son söylediğin eklentiyi kurdum. Cck ile uyumlu yalnız resim urlsi eklediğimde içeriği kaydet dediğim zaman yaklaşık bir iki dk beklemem gerekiyor. Ayrıca eklentiyi kullanmak için bunuda http://drupal.org/project/emfield yükelemek gerekiyor ve daha sonra bir kaç eklentiyi daha aktif etmek gerekiyor.

İhtiyac duyanlar bu eklentinin için nasıl kurulacağını ve kullanılacağına anlatabilirim ama hala hızlı bir şekilde resim ekleme sorununu çözemedim. Cck imageFieldde urlden resim ekleme özelliği olmaması çok garip...

mersoy, Per, 24/03/2011 - 00:06 tarihinde.

CCK ile yeni bir text alanı ekleyerek ismini field_resim olarak girin. Herhangi bir içeriğe bir resmin adresini girin ve node.tpl.php dosyasındaki uygun bir yere aşağıdaki kodu ekleyin.

<?php if ($node->field_resim[0]['view']):?>
        <img class="haberresim" src="<?php print $node->field_resim[0]['view'] ?>"/>
<?php endif;?>

kaptan, Per, 24/03/2011 - 00:29 tarihinde.

Mersoy söylediğini yaptım gerçekten çok hızlı bir şekilde ekleme yapıyor. Yalnız biraz sorun var. Resim linkini text alanına yazıyorum resim resim tam boyurunda çıkıyor ama mesela taxt alanı adıma resimersoy dedim ve içerik görüntülenirken resimersoy: http://resimurlm.com/resimadim.jpg şeklinde yazıda resimle beraber çıkıyor. Bu arada php den pek anlamam ama class haberresim olarak belirtilmiş sanırım sen kendi siten için yazmışsın o yüzden ordaki class ı vermişsin bununla ilgili olabilir mi hem url hem resmin görünmesi?

Diğer sorum ise böyle eklediğimiz resime nasıl otomatik yada manuel olarak link verebiliriz?

Bu arada Junik'in önerdiği eklenti bir kaç eklentiyle beraber kullanılması gerektiği için siteyi yorar diye düşünüyorum. Zaten sanırım bu eklentiyle açtığım alana resim urlsi girdiğimde gecikmesinin sebebi urlden resimi kontrol ettikten sonra kaydetmesi. Çünkü internet olmazsa resimi eklemiyor.

mersoy, Per, 24/03/2011 - 00:34 tarihinde.

admin/content/node-type/story/display adresinden labeli hidden olarak ayarla, teaser exclude ve ful node exclude alanları seçili olsun

kaptan, Per, 24/03/2011 - 00:45 tarihinde.

resimersoy: alan adını yok ettik şimdi resime link verme ve resimi sayfanın en üstünde gösterme kaldı. Resim sayfanın en altında add new comment de altında görünüyor eklediğim text fieldi bütün fieldlerin en üstüne çıkardım ama yinede yorum eklenin bile altında kalıyor. Css ile daha sonra bütün fieldleri düzenleyecem ama bu diğer fieldler gibi sıralanmıyor.

kaptan, Per, 24/03/2011 - 01:30 tarihinde.

Mersoyun veridiği kodu node.tpl.php içinde üst sıralara ekleyerek resimi sayfanın üst tarafında gösterebildim ama hala resime nasıl başka nodelere link vereceğimi bulamadım

junik, Per, 24/03/2011 - 01:51 tarihinde.

Yahu kardeşim senle Mesut'un amacı Drupal'i yeniden yazmak sanırım :) Yahu kullanın işte eklentileri, yormaz yormaz merak etmeyin :)

kaptan, Per, 24/03/2011 - 03:07 tarihinde.

İçimiz dışımız eklenti oluyor o zamanda :)

mersoy, Per, 24/03/2011 - 09:47 tarihinde.

Kaptan, yukarıdaki kodları titleden sonraya koyarsan her node de çıkar. Yani <?php echo art_node_title_output($title, $node_url, $page); ?> bu veya buna benzer bir satır vardır mutlaka, bu satırın altına yapıştırın. İsterseniz ekleyin node.tpl.php dosyanızın içeriğini buraya bakalım.

kaptan, Per, 24/03/2011 - 16:04 tarihinde.

Olduğu gibi duruyor zaten şimdilik bir değişiklik yapmadım. Benim aklıma bir tane daha text field oluşturup bunuda php kodlarla node.tpl.php de tanımlayıp resim eklemek için kullandığımız resimle ilişkilendirebiliriz. Hatta php bilen arkadaşlar bunu nodereference ile ilişkilendirebilir diye düşünüyorum.

<?php
// $Id$
?>

<!-- start node.tpl.php -->
<div id="node-<?php print $node->nid; ?>" class="node <?php print $node_classes; ?>">
  <?php print $picture ?>

  <?php if ($page == 0): ?>
  <h2 class="title"><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
  <?php endif; ?>

    <div class="meta">
    <?php if ($submitted): ?>
    <span class="submitted"><?php print $submitted ?></span>
    <?php endif; ?>
  </div>

  <?php if ($node->field_resim[0]['view']):?>
        <img class="haberresim" src="<?php print $node->field_resim[0]['view'] ?>"/>
<?php endif;?>
 
  <div class="content">
    <?php print $content ?>
  </div>

  <?php if ($terms): ?>
  <div class="terms">
    <?php print $terms; ?>
  </div>
  <?php endif;?>
 
  <?php if ($links): ?>
  <div class="links">
    <?php print $links; ?>
  </div>
  <?php endif; ?>

  <?php if ($node_bottom && !$teaser): ?>
  <div id="node-bottom">
    <?php print $node_bottom; ?>
  </div>
  <?php endif; ?>
   
</div>
<!-- /#node-<?php print $node->nid; ?> -->

logox, Per, 24/03/2011 - 16:44 tarihinde.

Kullanmak istediğiniz yöntemi büyük bir gazete sitesi yapmıştı. Elin garip adamının hostunun bandwith'i hüp diye erimişti. Garip adam ne yaptı, resimi değiştirerek yerine garip(!) bir resim koydu. O gün bu gündür hep söylerim, "çekme elin resimini, çıkar aheste aheste"... Neyse efendim ben sizin durumunuzu anlıyorum, incelemek isterseniz http://bit.ly/fOx035

mersoy, Per, 24/03/2011 - 17:18 tarihinde.

Kodda bir yanlışlık yok. Site adresi ya da ekran çıktısı verirmisiniz ?

kaptan, Per, 24/03/2011 - 22:53 tarihinde.

Resimleri çekeceğim yer kendi subdomainim olacak o yüzden kimsenin hakkını yemiş olmuyoruz. Kendi sub domainimi başka servera bırakacam yakalaşık 50bin resim olduğu için bunların çok fazla trafik harcayacağını düşünüyorum.

Ekran çıktısını koyayım koymasınada resimin üst sıralarda çıkması olayını hallettim yazmıştım sanırım görmedin. Şuanki sorun resime link vermek. Çözüm yolunu yeni bir text alanı oluşturup daha sonra php kodu ile bu yeni text alanını phpden çekerek text alanı ile eklediğimiz resime link vererek her hangi bir nodeye resim ile bağlantı sağlamak.

kaptan, Per, 24/03/2011 - 23:27 tarihinde.

teşekkürler mersoy senin resim ekleme için php kodu önerinden sonra link verme olayınıda çözdüm.

Bir tane daha textfield ekliyoruz bunun adınada eklediğimiz resime link vereceğimiz için ona göre bir isim verebiriliriz. ekleyeceğimiz kodun son hali bu. Ben ikinci açtığım text field adına linkimm kodu kullanacak olursa açacağı field ismini ona göre belirlesin.

<?php if ($node->field_resim[0]['view']):?>
        <a href="<?php print $node->field_linkimm[0]['view']?>"> <img class="haberresim" src="<?php print $node->field_resim[0]['view'] ?>"/>
<?php endif;?>

Bu konu bence çok önemli bununla ilgili bir ders hazırlayabiliriz

mersoy, Per, 24/03/2011 - 23:53 tarihinde.

Kaptan o kadar uğraşmana gerek yoktu. Kodları şu şekilde uygularsan hem resmin link almış olur, hemde resim adresi eklemezsen default.jpg gösterilir.

<?php if ($node->field_resim[0]['view']):?>
<a href="<?php echo"$node_url";?>"><img class="haberresim" src="<?php print $node->field_resim[0]['view'] ?>"/></a>
<?php else: ?>
<img class="haberresim" src="http://www.domain.com/sites/default/files/default_haber.jpg"/>
<?php endif;?>

Bunuda stil dosyana ekleyip istediğin gibi değiştirirsin.

.haberresim {
        height: 75px;
        width: 75px;
        float: left;
        border: 1px solid #e6e6e6;
        margin: 5px 5px 0 5px;
}

kaptan, Cuma, 25/03/2011 - 01:14 tarihinde.

Mersoy, sanırım senin verdiğin kodda resmin ait olduğu içeriğe link veriyor. Ben bir içeriği katagori gibi kullanacağım için ayrı bir link vermem gerekiyor o yüzden textfield ekleyip link verdim. Nodereference deki linki alsam çok çok daha iyi olacak ama nodereference node ismine link verdiği için onu direk resime link olarak atayamadım.