Advertisement:

Author Topic: SSI BoardNews Fonksiyonunda, ilk resmi alma.  (Read 23375 times)

Offline Özgür

  • SMF Hero
  • ******
  • Posts: 3,925
  • Gender: Male
  • Özgür | jQuery Lover
    • ozgurce on Facebook
    • @ozgurce on Twitter
    • Özgür Yalçın
SSI BoardNews Fonksiyonunda, ilk resmi alma.
« on: September 16, 2009, 05:39:09 AM »
Vakti zamanında ihtiyaç duyduğum ama çözümü aklıma gelmeyen, (hoş gelsede yapamazdım regex'i konusunda yeni yeni birşeyler çıkartıyorum) bu sorun için ufak ve kullanışlı bir çözüm buldum. Öncelikle bunun ne demek olduğunu açıklayayım.

Reklam yapmak gibi anlaşılmasın zira buna ihtiyaıcm olduğunu düşünmüyorum http://www.mnyk.net/ siteye girdiğinizde her yazının sol kısmında ufak bir önizleme resmi olduğunu görürsünüz. Peki bunu SSI ile portal yaptığımızda haberleri sıralarken nasıl kullanacağız? Çözüm basit. Çalışma mantığı şu; Mesaj içerisindeki ilk resmi buluyoruz ve bu resme bir isim veriyoruz. Sonrasında herşey sizin hayalinize kalıyor.

Yaptığımız değişiklikler finalde şu görünecek;

http://img44.imageshack.us/img44/5540/71532501.png

 
 SSI.php de öcelikle bunu bul
 
Code: [Select]
function ssi_boardNews($board = null, $limit = null, $start = null, $length = null, $output_method = 'echo')
 {
Ardından bu fonksiyon içerisindeki şu kodu bul
 
 
Code: [Select]
        // Check that this message icon is there...
         if (empty($modSettings['messageIconChecks_disable']) && !isset($icon_sources[$row['icon']]))
             $icon_sources[$row['icon']] = file_exists($settings['theme_dir'] . '/images/post/' . $row['icon'] . '.gif') ? 'images_url' : 'default_images_url';

 Altına Ekle
 
Code: [Select]
            // $row['body'] içerisinde <img> kodu ara
   $secimyap = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $row['body'], $sonuc);
   // src="" içindekini al.
 if(!empty($matches[0]) && !empty($matches[1]))
   $ilkresim = $sonuc [1] [0];
 
  else{ // Resim bulunmazsa default resim ekle
     $ilkresim = "http://www.site.com/images/default.jpg";
   }
 

 Bul
 
Code: [Select]
'subject' => $row['subject'], Altına Ekle
 
Code: [Select]
'resim' => $ilkresim,
 Ve işlememiz tamamlandı. Artık bu resmi haber kısmında kullanacağız. Örneğin eğer SSI.php deki boardnews fonksiyonu değiştirmeden kullanıyorsunuz; aynı fonksiyon içerisindeki şu kısmı bulun
 
 
Code: [Select]
    foreach ($return as $news)
     {
         echo '
             <div>
                 <a href="', $news['href'], '">', $news['icon'], '</a> <b>', $news['subject'], '</b>
                 <div class="smaller">', $news['time'], ' ', $txt['by'], ' ', $news['poster']['link'], '</div>
 
                 <div class="post" style="padding: 2ex 0;">', $news['body'], '</div>
 
                 ', $news['link'], $news['locked'] ? '' : ' | ' . $news['comment_link'], '
             </div>';
 
         if (!$news['is_last'])
             echo '
             <hr style="margin: 2ex 0;" width="100%" />';
     }

 Şöyle değiştirin,
 
Code: [Select]
foreach ($return as $news)
     {
         echo '
             <div>
                 <a href="', $news['href'], '">', $news['icon'], '</a> <b>', $news['subject'], '</b>
                 <div class="smaller">', $news['time'], ' ', $txt['by'], ' ', $news['poster']['link'], '</div>
 
                 <div class="post" style="padding: 2ex 0;"><div class="resim_cercevesi">
                 
                 <img src="', $news['image'], '" alt="', $news['subject'], '" class="haber_resmi" /></div>
                 
                 ', $news['body'], '</div>
 
                 ', $news['link'], $news['locked'] ? '' : ' | ' . $news['comment_link'], '
             </div>';
 
         if (!$news['is_last'])
             echo '
             <hr style="margin: 2ex 0;" width="100%" />';
     }

 Tabiki resim yazılarla bitişk gibi görünecek. Bundan kurtulmak için resme stil vermemiz gerekiyor. Yukarıdaki kodda zaten resme bir class atamıştım.
 Şimdiyse bu fonksiyonu kullandığınız alanın kullandığı css dosyasına şunları ekleyin;
 
 
Code: [Select]
.resim_cercevesi
 {
 float:left;
 background:#ddd;
 border:1px solid #ccc;}
 
 .haber_resmi{
 width:150px;
 height:150px;
 padding:5px;
 margin:3px;
 }
 

 Tamam herşey harika. Ama haber metninde resim iki kere çıkıyor. Küçük halini sol tarafa yerleştirdik ama haber metni kısmında kocaman bir resim daha var?
 
 Bunu ben şu şekilde çözüyorum; phpnin standar strip_tags fonksiyonunu veya kendi oluşturduğum bir betikle haber metninden tüm html kodlarını temizliyorum. Böylelikle, hem haber daha düzgün görünüyor hemde resim sadece bir kere görünüyor.
 
 Basitçe; SSI.php'nin en alt kısmına ekleyin;
 
Code: [Select]
function temizle($haber) {
     $strs=explode('<',$haber);
     $res=$strs[0];
     for($i=1;$i<count($strs);$i++)
     {
         if(!strpos($strs[$i],'>'))
             $res = $res.'&lt;'.$strs[$i];
         else
             $res = $res.'<'.$strs[$i];
     }
     return strip_tags($res);   
 }

 Şimdiyse daha önce düzenlediğimiz alana geri dönün ve
 
Code: [Select]
  ', $news['body'], '</div> kodunu bulun.
 
 Şu şekilde değiştirin
 
Code: [Select]
  ', temizle($news['body']), '</div>
İhtiyacı olanların görebilmesi için birkaç gün ana bölümde duracak. O yüzden neden gerekl bölüme taşınmadı diyse sormayın.
 
« Last Edit: September 16, 2009, 05:42:10 AM by [Daydreamer] »

Offline Yağız...

  • SMF Super Hero
  • *******
  • Posts: 10,809
  • Gender: Male
    • MMO Browser
Re: SSI BoardNews Fonksiyonunda, ilk resmi alma.
« Reply #1 on: September 16, 2009, 06:20:02 AM »
Bana söyleseydin, önceden yapmıştım kralrap.net için :)
http://www.kralrap.net/ Full Albümler bölümü.

Offline Alpay

  • Local Moderator
  • SMF Hero
  • *
  • Posts: 3,594
  • Gender: Male
  • test
    • Personal Web Page
Re: SSI BoardNews Fonksiyonunda, ilk resmi alma.
« Reply #2 on: September 16, 2009, 06:25:04 AM »
Güzel bir ipuçu , teşekkür ederiz.

Offline abdull@h

  • Full Member
  • ***
  • Posts: 436
  • Gender: Male
    • Arsivlik.Net
Re: SSI BoardNews Fonksiyonunda, ilk resmi alma.
« Reply #3 on: September 16, 2009, 04:29:28 PM »
teşekkürler paylaşımın için faydalanacağım bundan kesinlikle

Offline ayesoft

  • Sr. Member
  • ****
  • Posts: 909
  • Gender: Male
  • ayesoft
    • dizi izle
Re: SSI BoardNews Fonksiyonunda, ilk resmi alma.
« Reply #4 on: December 24, 2009, 01:17:45 PM »
Code: [Select]
         // $row['body'] içerisinde <img> kodu ara
   $secimyap = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $row['body'], $sonuc);
   // src="" içindekini al.
 if(!empty($matches[0]) && !empty($matches[1]))
   $ilkresim = $sonuc [1] [0];
 
  else{ // Resim bulunmazsa default resim ekle
     $ilkresim = "http://www.site.com/images/default.jpg";
   }
 

yanlış değişken sorgulanmış

Code: [Select]
         // $row['body'] içerisinde <img> kodu ara
   $secimyap = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $row['body'], $sonuc);
   // src="" içindekini al.
 if(!empty($sonuc[0]) && !empty($sonuc[1]))
   $ilkresim = $sonuc [1] [0];
 
  else{ // Resim bulunmazsa default resim ekle
     $ilkresim = "http://www.site.com/images/default.jpg";
   }

bu şekilde olması gerekmiyormu?
http://www.simplemachines.org/community/index.php?topic=337240 burda doğru eklemişsin
« Last Edit: December 24, 2009, 01:53:25 PM by ayesoft »

Offline Özgür

  • SMF Hero
  • ******
  • Posts: 3,925
  • Gender: Male
  • Özgür | jQuery Lover
    • ozgurce on Facebook
    • @ozgurce on Twitter
    • Özgür Yalçın
Re: SSI BoardNews Fonksiyonunda, ilk resmi alma.
« Reply #5 on: December 24, 2009, 02:18:43 PM »
Değişkenlerin anlaşılması için türkçe kullanmıştım. İlk olarak tips/tricks e eklediğimden onu türkçeye çevirip koydum. Atlamışım demekki o kısmı. Yanlış değişken sorgulamışım yanlış değişkeni kontrol etmişim :)

Offline CILGINKRAL

  • Semi-Newbie
  • *
  • Posts: 44
  • Gender: Male
Re: SSI BoardNews Fonksiyonunda, ilk resmi alma.
« Reply #6 on: December 06, 2010, 09:38:09 AM »
Kodlamada bir düzenleme daha olmalı  <img src="', $news['image'], '" alt="', $news['subject'], '" class="haber_resmi" /></div>

 src="', $news['image'], '   bu  src="', $news['resim'], ' şeklinde değiştirilmeli çok yararli bir makale ;)

Offline Alpay

  • Local Moderator
  • SMF Hero
  • *
  • Posts: 3,594
  • Gender: Male
  • test
    • Personal Web Page
Re: SSI BoardNews Fonksiyonunda, ilk resmi alma.
« Reply #7 on: May 23, 2011, 01:10:30 AM »
evet özgür bunu özel bir etiketle cagırtsak resimi daha iyi olmaz mı ? Cünkü news ile birden çok yerde kullanıyorz ve orada resim istemiyorsak ille bir resimmi görecez :) Yoksa bunu default resimini bir kücük bir gif yapip atlatacakmıyız kücük bir pratiklik ile :)

Pardon zaten öyle yapıyormussun :)

Offline Özgür

  • SMF Hero
  • ******
  • Posts: 3,925
  • Gender: Male
  • Özgür | jQuery Lover
    • ozgurce on Facebook
    • @ozgurce on Twitter
    • Özgür Yalçın
Re: SSI BoardNews Fonksiyonunda, ilk resmi alma.
« Reply #8 on: May 25, 2011, 12:00:41 PM »
Attachment In MessageIndex yada Topic Desc In MessageIndex adında modifikasyonlar vardı onların kodlarından yararlanarak yapabilirsiniz.
Ama bence, "Topic Description" adlı modu kurun, hem gerekli izinleri de verebilirsiniz böylece, topic description kısmına resim urlsini girin, messageindex temasında da bu değişkeni çağırıp istediğiniz gibi stil ekleyin. Hem daha rahat hareket edersiniz, hemde daha kolay yoldan yaparsınız istediklerinizi.
Vaktim olsa yaparım diyeceğim ama yarın,30unda,3ünde ve 7sinde finallerim var. Dersler bittikten sonra belki bakalabilirim.

Offline dalga1

  • Jr. Member
  • **
  • Posts: 168
  • Gender: Male
  • Real Member
Re: SSI BoardNews Fonksiyonunda, ilk resmi alma.
« Reply #9 on: August 21, 2011, 09:03:25 AM »
bu kodu messageindex.php eklemek mümkünmü.

Bölümde bulunan konularin yaninda ilk resim cikmasini istiyorum

Offline gguneri

  • Newbie
  • *
  • Posts: 2
Re: SSI BoardNews Fonksiyonunda, ilk resmi alma.
« Reply #10 on: October 08, 2011, 04:47:02 PM »
arkadaşlar merhaba dosyayı ekte versem düzenleyebilir misiniz?

Offline Özgür

  • SMF Hero
  • ******
  • Posts: 3,925
  • Gender: Male
  • Özgür | jQuery Lover
    • ozgurce on Facebook
    • @ozgurce on Twitter
    • Özgür Yalçın
Re: SSI BoardNews Fonksiyonunda, ilk resmi alma.
« Reply #11 on: October 09, 2011, 08:59:26 PM »
Hazırcılık yapmayın. Deneyin kendinizi geliştirin. Yapamadığınız yerde sorun biz yardımcı olalım.

Offline CILGINKRAL

  • Semi-Newbie
  • *
  • Posts: 44
  • Gender: Male
Re: SSI BoardNews Fonksiyonunda, ilk resmi alma.
« Reply #12 on: November 08, 2011, 02:40:06 PM »
MessageIndex.php üzerinde çok çalıştım, fakat hiç sonuç alamadım.  Yardımcı olursanız çok iyi olur :) Eklentisi var fakat ek dosyadan veriyor, ben direk olarak ilk resmi çekmesini istiyorum.

Offline Alpay

  • Local Moderator
  • SMF Hero
  • *
  • Posts: 3,594
  • Gender: Male
  • test
    • Personal Web Page
Re: SSI BoardNews Fonksiyonunda, ilk resmi alma.
« Reply #13 on: March 12, 2015, 09:05:22 AM »
Bu olayi yine bir sitede yapıyorum bazen dönüp dönüp teşekkür ediyorum Master Özgür
Her nerde yaşatılıyor ve yaşıyorsan saygı ile selamlıyorum seni :)

Allah'a emanet..