Smf Manşet Haber 2

Başlatan snrj, 19 May 2014 02:08

« önceki - sonraki »

0 Üye ve 2 Ziyaretçi konuyu incelemekte.

snrj

19 May 2014 02:08 Son düzenlenme: 22 Mar 2016 23:08 snrj

Yine teknoromi.com farkıyla smfde ilk :D reklamlar bitti
demo http://portal.teknoromi.com/
evet arkadaşlar belirlediğimiz bölümden haberleri çekip anasayfada gayet şık bir şekilde gösterebilceğimiz
smf manşet eklentisi lütfen emeğe saygı bir teşekkürü bir alıntı linkini çok görmeyelim
hemen kodları veriyorum
boardindex.template.php bul
Kod [Seç]
echo '
 <div id="boardindex_table">
üstüne ekle
Kod [Seç]
//teknoromi.com manşet haber code
teknoromicom_manset($board = 1, $limit = 4, $start = null, $length = 300, $output_method = 'echo');
//teknoromi.com manşet haber code
bul (sayfa sonunda)
Kod [Seç]
?>üstüne ekle
Kod [Seç]
//teknoromi.com manşet haber code
function teknoromicom_manset($board = null, $limit = null, $start = null, $length = null, $output_method = 'echo')
{
 global $scripturl, $txt, $settings, $modSettings, $context;
 global $smcFunc;
 
 loadLanguage('Stats');

 // Must be integers....
 if ($limit === null)
 $limit = isset($_GET['limit']) ? (int) $_GET['limit'] : 0;
 else
 $limit = (int) $limit;

 if ($start === null)
 $start = isset($_GET['start']) ? (int) $_GET['start'] : 0;
 else
 $start = (int) $start;

 if ($board !== null)
 $board = (int) $board;
 elseif (isset($_GET['board']))
 $board = (int) $_GET['board'];

 if ($length === null)
 $length = isset($_GET['length']) ? (int) $_GET['length'] : 0;
 else
 $length = (int) $length;

 $limit = max(0, $limit);
 $start = max(0, $start);
 
 // Make sure guests can see this board.
 $request = $smcFunc['db_query']('', '
 SELECT id_board
 FROM {db_prefix}boards
 WHERE ' . ($board === null ? '' : 'id_board = {int:current_board}
 AND ') . 'FIND_IN_SET(-1, member_groups) != 0
 LIMIT 1',
 array(
 'current_board' => $board,
 )
 );
 if ($smcFunc['db_num_rows']($request) == 0)
 {
 if ($output_method == 'echo')
 die($txt['ssi_no_guests']);
 else
 return array();
 }
 list ($board) = $smcFunc['db_fetch_row']($request);
 $smcFunc['db_free_result']($request);

 // Load the message icons - the usual suspects.
 $stable_icons = array('xx', 'thumbup', 'thumbdown', 'exclamation', 'question', 'lamp', 'smiley', 'angry', 'cheesy', 'grin', 'sad', 'wink', 'poll', 'moved', 'recycled', 'wireless');
 $icon_sources = array();
 foreach ($stable_icons as $icon)
 $icon_sources[$icon] = 'images_url';
 
 // Find the post ids.
 $request = $smcFunc['db_query']('', '
 SELECT t.id_first_msg
 FROM {db_prefix}topics as t
 LEFT JOIN {db_prefix}boards as b ON (b.id_board = t.id_board)
 WHERE t.id_board = {int:current_board}' . ($modSettings['postmod_active'] ? '
 AND t.approved = {int:is_approved}' : '') . '
 AND {query_see_board}
 ORDER BY t.id_first_msg DESC
 LIMIT ' . $start . ', ' . $limit,
 array(
 'current_board' => $board,
 'is_approved' => 1,
 )
 );
 
 $posts = array();
 while ($row = $smcFunc['db_fetch_assoc']($request))
 $posts[] = $row['id_first_msg'];
 $smcFunc['db_free_result']($request);

 if (empty($posts))
 return array();

 // Find the posts.
 $request = $smcFunc['db_query']('', '
 SELECT
 m.icon, m.subject, m.body, IFNULL(mem.real_name, m.poster_name) AS poster_name, m.poster_time,
 t.num_replies, t.id_topic, m.id_member, m.smileys_enabled, m.id_msg, t.locked, t.id_last_msg, m.id_board
 FROM {db_prefix}topics AS t
 INNER JOIN {db_prefix}messages AS m ON (m.id_msg = t.id_first_msg)
 LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = m.id_member)
 WHERE t.id_first_msg IN ({array_int:post_list})
 ORDER BY t.id_first_msg DESC
 LIMIT ' . count($posts),
 array(
 'post_list' => $posts,
 )
 );
 $return = array();
 $recycle_board = !empty($modSettings['recycle_enable']) && !empty($modSettings['recycle_board']) ? (int) $modSettings['recycle_board'] : 0;
 while ($row = $smcFunc['db_fetch_assoc']($request))
 {
 // If we want to limit the length of the post.
 if (!empty($length) && $smcFunc['strlen']($row['body']) > $length)
{
$row['body'] = $smcFunc['substr']($row['body'], 0, $length);
$cutoff = false;

$last_space = strrpos($row['body'], ' ');
$last_open = strrpos($row['body'], '<');
$last_close = strrpos($row['body'], '>');
if (empty($last_space) || ($last_space == $last_open + 3 && (empty($last_close) || (!empty($last_close) && $last_close < $last_open))) || $last_space < $last_open || $last_open == $length - 6)
$cutoff = $last_open;
elseif (empty($last_close) || $last_close < $last_open)
$cutoff = $last_space;

if ($cutoff !== false)
$row['body'] = $smcFunc['substr']($row['body'], 0, $cutoff);
$row['body'] .= '...';
}

 $row['body'] = parse_bbc($row['body'], $row['smileys_enabled'], $row['id_msg']);

 if (!empty($recycle_board) && $row['id_board'] == $recycle_board)
 $row['icon'] = 'recycled';

 // Check that this message icon is there...
 if (!empty($modSettings['messageIconChecks_enable']) && !isset($icon_sources[$row['icon']]))
 $icon_sources[$row['icon']] = file_exists($settings['theme_dir'] . '/images/post/' . $row['icon'] . '.png') ? 'images_url' : 'default_images_url';
 // $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 = $settings['theme_url'] . '/images/resimyok.jpg';
   } censorText($row['subject']);
 censorText($row['body']);

 $return[] = array(
 'id' => $row['id_topic'],
 'message_id' => $row['id_msg'],
 'icon' => '<img src="' . $settings[$icon_sources[$row['icon']]] . '/post/' . $row['icon'] . '.png" alt="' . $row['icon'] . '">',
 'subject' => $row['subject'],
 'short_subject' => shorten_subject($row['subject'], 37),
 'resim' => $ilkresim,
 'time' => timeformat($row['poster_time']),
 'timestamp' => forum_time(true, $row['poster_time']),
 'body' => $row['body'],
 'href' => $scripturl . '?topic=' . $row['id_topic'] . '.0',
 'link' => '<a class="yorum" href="' . $scripturl . '?topic=' . $row['id_topic'] . '.0">' . $row['num_replies'] . ' ' . ($row['num_replies'] == 1 ? $txt['ssi_comment'] : $txt['ssi_comments']) . '</a>',
 'replies' => $row['num_replies'],
 'comment_href' => !empty($row['locked']) ? '' : $scripturl . '?action=post;topic=' . $row['id_topic'] . '.' . $row['num_replies'] . ';last_msg=' . $row['id_last_msg'],
 'comment_link' => !empty($row['locked']) ? '' : '<a class="yorum" href="' . $scripturl . '?action=post;topic=' . $row['id_topic'] . '.' . $row['num_replies'] . ';last_msg=' . $row['id_last_msg'] . '">' . $txt['ssi_write_comment'] . '</a>',
 'new_comment' => !empty($row['locked']) ? '' : '<a href="' . $scripturl . '?action=post;topic=' . $row['id_topic'] . '.' . $row['num_replies'] . '">' . $txt['ssi_write_comment'] . '</a>',
 'poster' => array(
 'id' => $row['id_member'],
 'name' => $row['poster_name'],
 'href' => !empty($row['id_member']) ? $scripturl . '?action=profile;u=' . $row['id_member'] : '',
 'link' => !empty($row['id_member']) ? '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['poster_name'] . '</a>' : $row['poster_name']
 ),
 'locked' => !empty($row['locked']),
 'is_last' => false
 );
 }
 $smcFunc['db_free_result']($request);

 if (empty($return))
 return $return;

 $return[count($return) - 1]['is_last'] = true;

 if ($output_method != 'echo')
 return $return;
       echo '<style type="text/css" >
 #featured .ui-tabs-panel .info{
 display:none;
 }
</style>  <script type="text/javascript" src="', $settings['default_theme_url'], '/scripts/jquery-1.3.2.min.js" ></script>
<script type="text/javascript" src="', $settings['default_theme_url'], '/scripts/jquery-ui-1.7.2.custom.min.js" ></script>
<script type="text/javascript">
 $(document).ready(function(){
 $("#featured").tabs({fx:[{opacity: "toggle", duration: \'slow\'}, {opacity: "toggle", duration: \'normal\'}],
 show: function(event, ui){
 $(\'#featured .ui-tabs-panel .info\').hide();
 var infoheight=$(\'.info\', ui.panel).height();
 $(\'.info\', ui.panel).css(\'height\', \'0px\').animate({ \'height\': infoheight }, 500);
 }
 }).tabs("rotate", 5000, true);
 $(\'#featured\').hover(
 function(){ $(\'#featured\').tabs(\'rotate\', 0, true); },
 function(){ $(\'#featured\').tabs(\'rotate\', 5000, true); }
 );
 $(\'#featured .ui-tabs-panel a.hideshow\').click(function(){
 if($(this).text()==\'Hide\'){
 $(this).parent(\'.info\').animate({ \'height\': \'0px\' }, 500);
 $(this).text(\'Show\');
 }
 else{
 $(this).parent(\'.info\').animate({ \'height\': \'70px\' }, 500);
 $(this).text(\'Hide\');
 }
 return false;
 });
 });
</script>
   <div id="featured" >
  <ul class="ui-tabs-nav"> ';
         foreach ($return as $news)
          {
  echo '      <li class="ui-tabs-nav-item" id="nav-fragment-', $news['id'], '"><a href="#fragment-', $news['id'], '"><img src="', $news['resim'], '" alt="', $news['subject'], '" class="smallimg"/><span>', $news['short_subject'], '</span></a></li> ';
  }       
  echo '  </ul>';
 foreach ($return as $news)
     {
  echo '
  <div id="fragment-', $news['id'], '" class="ui-tabs-panel" style="">
 <a  href="', $news['href'], '"><img src="', $news['resim'], '" alt="', $news['subject'], '" class="bigimg"/></a>
 <div class="info" >
 <a  href="', $news['href'], '">', $news['subject'], '</a>
 <p>', temizle($news['body']), ' </p>
 </div></div>';
     }
          echo'</div>

 ';
}

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);   
 }
 //teknoromi.com manşet haber code
index.css de en alta ekle
Kod [Seç]
#featured{
 width:400px;
 padding-right:250px;
 position:relative;
 border:5px solid #ccc;
 height:250px; overflow:hidden;
 background:#fff;
}
#featured ul.ui-tabs-nav{
 position:absolute;
 top:0; left:400px;
 list-style:none;
 padding:0; margin:0;
 width:250px; height:250px;
 overflow:auto;
 overflow-x:hidden;
}
#featured ul.ui-tabs-nav li{
 padding:1px 0; padding-left:13px; 
 font-size:12px;
 color:#666;
}
#featured ul.ui-tabs-nav li img{
 float:left; margin:2px 5px;
 background:#fff;
 padding:2px;
 border:1px solid #eee;
}
#featured ul.ui-tabs-nav li span{
 font-size:11px; font-family:Verdana;
 line-height:18px;
}
#featured li.ui-tabs-nav-item a{
 display:block;
 height:60px; text-decoration:none;
 color:#333;  background:#fff;
 line-height:20px; outline:none;
}
#featured li.ui-tabs-nav-item a:hover{
 background:#f2f2f2;
}
#featured li.ui-tabs-selected, #featured li.ui-tabs-active{
 background:url(../images/selected-item.gif) top left no-repeat; 
}
#featured ul.ui-tabs-nav li.ui-tabs-selected a, #featured ul.ui-tabs-nav li.ui-tabs-active a{
 background:#ccc;
}
#featured .ui-tabs-panel{
 width:400px; height:250px;
 background:#999; position:relative;
}
#featured .ui-tabs-panel .info{
 position:absolute;
 bottom:0; left:0;
 height:70px;
 background: url(../images/transparent-bg.png);
}


#featured .info p{
 margin:0 5px;
 font-family:Verdana; font-size:11px;
 line-height:15px; color:#fff;
}
#featured .info a{
 font-size:1.2em; font-family:Georgia, serif;
 color:wheat; padding:5px; margin:0; font-weight:normal;
 overflow:hidden;
}
#featured .info a:hover{
 text-decoration:underline;
}
#featured .ui-tabs-hide{
 display:none;
}
.smallimg{width:60px;height: 50px;}
.bigimg{width:400px;height: 250px;}

ekte verdiğim js dosylarını themes/default/scripts klasörüne
ekte verdiğim resim dosyalarınıda  kullandığınız temanın images klasörüne atınız
son olarak şu koddaki kısımı
Kod [Seç]
teknoromicom_manset($board = 1, $limit = 4, $start = null, $length = 300, $output_method = 'echo');$board = 1, istediğiniz board numarasını giriniz
teknoromi.com

cangenc

çok güzel olmuş ancak bazı sıkıntılarım var.

bende demo sitemde denedim . çalıştı Allah a şükür .

manşet haber kısmında her ileti listeleniyor. ben haberler kısmı yapmak istiyorum . benim istediğim haberlerin dışında bir haber listelenmesin. tıkladıklarında da benim istediğim yere gitsin. herşeyin listelenmesini istemiyorum özetle.

bu dediklerimi yapmam mümkünmüdür bilemedim aslında.

aslında board diye bir ayardan bahsetmişsiniz belki oradan dır ama ben ne işe yarar anlamış değilim.

görsel şahane ötesi. inşallah geliştirirsiniz. tam olarak kullanmasını öğreneyim herkese söyleyeceğim.

snrj

03 Haz 2014 22:54 #2 Son düzenlenme: 30 Tem 2014 08:24 Smfci
eklentileri sadece üyeler görebilir

haberler diye bir bölüm oluşturcaksınız işte o bölümün numarası board kısmına gireceksiniz
her bölümün  kendine ait numarası vardır

örnek benim sitede teknoloji haberleri linkinin üstüne geldiğinizde sol altta link kısayolu gözüküyor board 95 diye

cangenc

çok teşekkürler board meselesini öğrendim. dediğiniz gibi sadece benim istediklerimin manşete geçmesi içinse haberler kısmı yaptım ve yönetici harici sadece okunabilir şeklinde izin ayarlarını yaptım.

fakat bir sorun daha var . manşet sitede ortalanmıyor.

sola yatık çıkıyor . çözünürlük ayarları ne olursa olsun sayfada ortalamak mümkünmüdür ? sizin portal sitenizde ki gibi herkesin sağ tarafta son haberler kısmı yokturç o yüzden sağ taraf boş kalıyor. ortalama imkanı varmıdır ? yada sayfanın en sağdan en sola tamamını kaplayacak şekilde ayarlamak içn hangi kodlarda oynamak gerekli


saygılar

demo sitem edacan.besaba.com

snrj

index.css de bulun
Kod [Seç]
#featured {
    width: 400px;
    padding-right: 250px;
    position: relative;
    border: 5px solid #CCC;
    height: 250px;
    overflow: hidden;
    background: none repeat scroll 0% 0% #FFF;
}


değiştirin
Kod [Seç]
#featured {
    width: 400px;
    padding-right: 250px;
    position: relative;
    border: 5px solid #CCC;
    height: 250px;
    overflow: hidden;
    background: none repeat scroll 0% 0% #FFF;
    margin-left: auto;
    margin-right: auto;
}


gülegüle kullanın

cangenc

ortalandı . teşekküler

Ali1980

hocam aray degistirioyom numaralari iszedigim konular cikmiyor neden acaba  :-[

snrj

doğru board  numarasını girdiğinize eminmisiniz

snrj