1 sayfadan 1. sayfa

Display First Message as Hover Title - 1.1.1

İletiTarih: 04.01.2007, 09:18
sabri ünal
bu başlık canverde vardı fakat artık bulamıyorum... bütün mod başlıklarını bu hafta sonu güncelleştireceğim ya neyse... yeniden ekliyorum...

işlevi: vbulletin sitili, forum sayfasında mesajın üstüne gelince mesajı görüntülemeye başlar... eğer bu modu yüklerseniz forum sayfasında görüntülenecek başlık sayısını yarı yarıya azaltın, çünkü bu mod extra bir sorgu daha çekiyor, hızı böylece denkleştirmiş olursunuz... öneriler arasında topic sorgusu ile başlık sorgusunun birleştirilemi de vardı...

not: mod emrag'ın modlarından birisidir ben sadece izin kontrolü eklemiştim....

Kod: Tümünü seç
##############################################################
## MOD Title: Display First Message as Hover Title - 1.1.1
## MOD Author: emrag < emrah987@hotmail.com > (Emrah Türkmen)  www.canver.net  (TURKEY)
## MOD Modified: yakusha < yakusha@tnn.net > (Sabri Ünal)  www.canver.net  (TURKEY)
## MOD Description: with this hack when you hover the mouse on topic link you
## will see first message as hover title like vBulletin Boards ;)
##
## MOD Version: 1.1.1
##
## Installation Level: Easy
## Installation Time : ~5 minutes
## Files to Edit: viewforum.php
## templates/subsilver/viewforum_body.tpl
##
## Included Files: n/a
##############################################################
##
## Author Note:
## - The javascript you will add to viewforum_body.tpl comes from Mojavlinux's MyCalendar 2.2.6
## ( http://www.mojavelinux.com/ )
##
##############################################################
##
## MOD History: 25.09.2004 - 1.0.0
## - First release
##
## 07.10.2004 - 1.0.1
## - Fixed a bug - thanx to Clock
##
## 25.11.2004 - 1.0.2
## - added a character limit for hover title - you can change this value ;)
## (before if message is too long hover title won't be display. Now fixed)
##
## - EasyMod compitable
##
## 01.03.2005 - 1.1.0
## - compitable with bbcodes
## - now hover title show smilies :)
## - compitable with MODE "HIDE" - author: Philiweb
## - now using a javascript code for hover title - author: MojavLinux
## - fixed a bug about single and double quotes - ", '
## - i think this version is compitable with EasyMod but i didn't test it :(
##
## 27.08.2006 - 1.1.1 - [ by yakusha ]
## - added auth control
## - added auth control message
##
############################################################
##
## Before Adding This Hack To Your Forum, You Should Back Up All Files Related To This Hack
##
##############################################################
#
#-----[ OPEN ]------------------------------------------
#

viewforum.php

#
#----[ FIND ]------------------------------------------
#

include($phpbb_root_path . 'common.'.$phpEx);

#
#----[ AFTER, ADD ]------------------------------------------
#

include_once($phpbb_root_path . 'includes/bbcode.'.$phpEx);

#
#----[ FIND ]------------------------------------------
#

      $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
      $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

#
#-----[ AFTER, ADD ]------------------------------------------
#

//
// display first message as title by emrag ;)
//
if ( $is_auth['auth_read'] )
{
      //
      // character limit for hover title
      //
      $chr_limit = '1000';

      $sql = "SELECT p.*,  pt.post_text, pt.post_id, pt.bbcode_uid
         FROM " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt
         WHERE p.topic_id = $topic_id
            AND pt.post_id = p.post_id
         ORDER BY p.post_time
         LIMIT 1";
      if ( !($result = $db->sql_query($sql)) )
      {
         message_die(GENERAL_ERROR, 'Could not obtain topic information', '', __LINE__, __FILE__, $sql);
      }

      $row = $db->sql_fetchrow($result);
      $first_post = $row['post_text'];
      $first_post_bbcode_uid = $row['bbcode_uid'];

   //
   // if message is longer than character limit break message
   // and add "..." at the last of message
   //
   if (strlen($first_post) > $chr_limit)
   {
      $first_post = substr($first_post, 0, $chr_limit);
      $first_post .= '...';
   }

   //
   // If the board has HTML off but the post has HTML
   // on then we process it, else leave it alone
   //
   if ( !$board_config['allow_html'] )
   {
      if ( $row['enable_html'] )
      {
         $first_message = preg_replace('#(<)([\/]?.*?)(>)#is', "&lt;\\2&gt;", $first_post);
      }
   }

   //
   // Parse message for BBCode if required
   //
   if ( $board_config['allow_bbcode'] )
   {
      if ( $first_post_bbcode_uid != '' )
      {
         $first_post = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($first_post, $first_post_bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $first_post);
      }
   }

   //
   // Parse smilies
   //
   if ( $board_config['allow_smilies'] )
   {
      if ( $row['enable_smilies'] )
      {
         $first_post = smilies_pass($first_post);
      }
   }

   //
   // replace \n with <br />
   //
   $first_post = preg_replace("/[\n\r]{1,2}/", '<br />', $first_post);

   //
   // escape from double and/or single quotes
   //
   $first_post = str_replace(array('"', '\''), array('&quot;', '\\\''), $first_post);

   //
   // if message have [hide] [/hide] tags
   // there will be an error message instead of normal message
   //
   if ( preg_match("/\[hide\]/i", $first_post) && preg_match("/\[\/hide\]/i", $first_post))
   {
      $first_post = '<b>Protected message:</b><br>If you are a <b>*registered user*</b> :<br>you must post a reply to this topic to see the message';
   }

} // end of if auth read
else
{
    $first_post = 'Mesajın içeriğini okumak için lütfen giriş yapınız';
}

//
// display first message as title by emrag ;)
//

#
#----[ FIND ]------------------------------------------
#

         'TOPIC_FOLDER_IMG' => $folder_image,
         'TOPIC_AUTHOR' => $topic_author,

#
#-----[ BEFORE, ADD ]------------------------------------------
#

         'FIRST_POST' => $first_post,

#
#-----[ OPEN ]------------------------------------------
#

templates/subsilver/viewforum_body.tpl

#
#----[ FIND ]------------------------------------------
#
# at the top of the page

<form method="post" action="{S_POST_DAYS_ACTION}">
  <table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">

#
#----[ BEFORE, ADD ]------------------------------------------
#
# at the top of the page

<!-- The javascript presents here comes from MyCalendar 2.2.6 from MojavLinux -->
<script language="Javascript" type="text/javascript">
<!--
var agt = navigator.userAgent.toLowerCase();
var originalFirstChild;

function createTitle(which, string, x, y)
{
   // record the original first child (protection when deleting)
   if (typeof(originalFirstChild) == 'undefined')
   {
      originalFirstChild = document.body.firstChild;
   }

   x = document.all ? (event.clientX + document.body.scrollLeft) : x;
   y = document.all ? (event.clientY + document.body.scrollTop) : y;
   element = document.createElement('div');
   element.style.position = 'absolute';
   element.style.zIndex = 1000;
   element.style.visibility = 'hidden';
   excessWidth = 0;
   if (document.all)
   {
      excessWidth = 50;
   }
   excessHeight = 20;
   element.innerHTML = '<div class="bodyline"><table width="300" cellspacing="0" cellpadding="0" border="0"><tr><td><table width="100%"><tr><td><span class="gen">' + string + '</span></td></tr></table></td></tr></table></div>';
   renderedElement = document.body.insertBefore(element, document.body.firstChild);
   renderedWidth = renderedElement.offsetWidth;
   renderedHeight = renderedElement.offsetHeight;

   // fix overflowing off the right side of the screen
   overFlowX = x + renderedWidth + excessWidth - document.body.offsetWidth;
   x = overFlowX > 0 ? x - overFlowX : x;

   // fix overflowing off the bottom of the screen
   overFlowY = y + renderedHeight + excessHeight - window.innerHeight - window.pageYOffset;
   y = overFlowY > 0 ? y - overFlowY : y;

   renderedElement.style.top = (y + 15) + 'px';
   renderedElement.style.left = (x + 15) + 'px';

   // windows versions of mozilla are like too fast here...we have to slow it down
   if (agt.indexOf('gecko') != -1 && agt.indexOf('win') != -1)
   {
      setTimeout("renderedElement.style.visibility = 'visible'", 1);
   }
   else
   {
      renderedElement.style.visibility = 'visible';
   }
}

function destroyTitle()
{
   // make sure we don't delete the actual page contents (javascript can get out of alignment)
   if (document.body.firstChild != originalFirstChild)
   {
      document.body.removeChild(document.body.firstChild);
   }
}
//-->
</script>

#
#----[ FIND ]------------------------------------------
#

<a href="{topicrow.U_VIEW_TOPIC}" class="topictitle"

#
#----[ AFTER, ADD ]------------------------------------------
#

onmouseover="createTitle(this, '{topicrow.FIRST_POST}', event.pageX, event.pageY);" onmouseout="destroyTitle();"

#
#-----[ SAVE ALL FILES/CLOSE ]------------------------------------------
#
# EoM

İletiTarih: 04.01.2007, 22:42
ALEXIS
emrag izin alınmadan kendi modlarında oynama yapılmasından hoşlanmıyor. GPL lisansına rağmen.

İletiTarih: 05.01.2007, 02:36
sabri ünal
mod hatalıysa oynamak lazım, özellikle böylesi bir durumda, mesajın olduğu başlığı hatırlarsan, üyelerin erişim yetkisi olmayan mesajları görüntülemesini sağlıyordu :P bu arada emragın tam sayfa gösterme moduna modcp ve recent.php den sonra özel mesajı da dahil edeceğim... oynanmasını istemiyorsa taaa baştan hepsini yapsaydı da bizi uğraştırmasaydı :)

Cvp: Display First Message as Hover Title - 1.1.1

İletiTarih: 09.02.2007, 15:03
hope
Arkadaşlar bu moda şöyle bir özellik eklemeye çalıştım ama yapamadım :(

Mesela ziyaretçilere ilk mesajın sadece X kadarını göstericem mesela ilk mesajın 10 harfini
bunu nasıl yapabilirim?
Lütfen yardım edermisiniz?
bir hafta içinde sorduğum 5 yada 6. sorum ama nedense kimse cevap vermiyo

İletiTarih: 09.02.2007, 19:22
ALEXIS
Bunu portal için yazmıştım, ancak bu phpbb2 sürümü, includes/functions.php sonuna ekle bu kodu. Örnek kullanımını da yazmışım zaten.

angelside yazdı:Very simple character limiter, I use this function on my phpbb3 portal, recent topic, recent hot topic, etc.

Kod: Tümünü seç
// character limit
$CFG['recent_title_limit'] = '20';

// character limit
function character_limit($short_title, $limit)
{
   if (strlen($short_title) > $limit)
   {
      $short_title = substr(censor_text($short_title), 0, $limit)."...";
   }
   else
   {
      $short_title = censor_text($short_title);
   }
   // return the result
   return $short_title;
}

// usage
// 'TITLE'          => character_limit($row['topic_title'], $CFG['recent_title_limit']),


İletiTarih: 09.02.2007, 20:23
hope
angelside yazdı:Bunu portal için yazmıştım, ancak bu phpbb2 sürümü, includes/functions.php sonuna ekle bu kodu. Örnek kullanımını da yazmışım zaten.

angelside yazdı:Very simple character limiter, I use this function on my phpbb3 portal, recent topic, recent hot topic, etc.

Kod: Tümünü seç
// character limit
$CFG['recent_title_limit'] = '20';

// character limit
function character_limit($short_title, $limit)
{
   if (strlen($short_title) > $limit)
   {
      $short_title = substr(censor_text($short_title), 0, $limit)."...";
   }
   else
   {
      $short_title = censor_text($short_title);
   }
   // return the result
   return $short_title;
}

// usage
// 'TITLE'          => character_limit($row['topic_title'], $CFG['recent_title_limit']),



dediğin gibi kodu functions.php nin sonuna ekledim ama çalışmadı
hala ziyaretçiler konu başlığının üzerine gelince viewforumda verilen değere göre gösteriyo yani 1000 karakter

İletiTarih: 09.02.2007, 23:24
ALEXIS
angelside yazdı:Örnek kullanımını da yazmışım zaten.

İletiTarih: 10.02.2007, 00:11
hope
angelside yazdı:
angelside yazdı:Örnek kullanımını da yazmışım zaten.


ne demek istediğini anlamadım
biraz daha açık bir dille yazarmısın?

İletiTarih: 10.02.2007, 00:17
ALEXIS
Daha ne kadar açık olabilir, tüm kodları yazdım. Çalışmadı diye birşey sözkonusu olamaz, çalışmayan bir kod yazmam ben.

Kodlarda örnek var yazdım, eğer hala çalıştıramıyorsanız, geri adım atıp bilgilerinizi basitten zora doğru geliştirmelisiniz...


// usage
// 'TITLE' => character_limit($row['topic_title'], $CFG['recent_title_limit']),

Cvp: Display First Message as Hover Title - 1.1.1

İletiTarih: 10.02.2007, 08:31
hope
functions.php dosyasını ekledim ben hala bi yerde hata yaptığımı düşünmüyorum yine de bi bakabilirmisiniz kodlara

http://dosyam.net/?id=xvo898

İletiTarih: 11.02.2007, 19:55
yeniaykarama
#-----[ OPEN ]------------------------------------------
#

templates/subsilver/viewforum_body.tpl


#----[ FIND ]------------------------------------------
#

<a href="{topicrow.U_VIEW_TOPIC}" class="topictitle"

bu kodu plus 1.53 de bulamadım plusda neyin altına koyabiliriz bilen varmı arkadaşlar

Cvp: Display First Message as Hover Title - 1.1.1

İletiTarih: 27.03.2007, 16:30
hope
gerçekten çok yardımcı oluyosunuz