در خواست مد نشان دادن متن عنوان

nimafire

find / -name Support > u
سلام.
من مدی رو میخوام که مثل vb وقتی موس را روی عنوان یک تاپیک میبریم چند خط از تاپیک نشون بده.
 

Hyper

Active Member
PHP:
############################################################## 
## MOD Title: display first message as hover title
## MOD Author: emrag < [email][email protected][/email] > (Emrah Türkmen)  [url]www.canver.net[/url]  (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.0
## 
## 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 
##	( [url]http://www.mojavelinux.com/[/url] )
##
##############################################################
##
## 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 :(
##
##############################################################
##
## 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($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 ;)
//

		//
		// 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';
	}

//
// 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

رضا
 

nimafire

find / -name Support > u
خیلی ممنون ولی این همه تاپیک نشون میده.
مثلا 2 خط اول بخوام نشون بده باید چکار کنم؟
 

Hyper

Active Member
به این متغیرها توجه کنید :

1.
کد:
$chr_limit = '1000';
تعداد کاراکترها را محدود میکند . میتوانید عددی از 1 تا ... انتخاب کنید




2.
کد:
$first_post .= '...';
کاراکترهایی که بجای ادامه متن نمایش داده میشود که در اینجا 3 نقطه ( ... ) است




3.
کد:
<div class="bodyline"><table width="500" 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>

در این قسمت کد نوع پنجره نمایش تعیین میشود :

---> مثلا میتوانید بجای
کد:
class="bodyline"
از
کد:
class="forumline"
یا سایر کلاسهای css استفاده کنید


---> عرض پنجره را با کد
کد:
width="500"
تعیین کنید . میتونید عدد دلخواه رو جایگزین 500 کنید




4.
کد:
renderedElement.style.top = (y + 15) + 'px'; 
renderedElement.style.left = (x + 15) + 'px';

فاصله پنجره با عنوان تاپیک هم با این کدها تعیین میشود
میتوانید بجای 15 عدد دلخواه رو جایگزین کنید ...


کافی بود ؟

رضا
 

Hyper

Active Member
همون کلید
post_thanks.gif
کافی بود ... :D

رضا
 

nimafire

find / -name Support > u
میبخشید.
مطالب سمت چپ پنجره نشون میده.اگر بخواهم سمت رایت باشه باید چکار کنم؟
 

جدیدترین ارسال ها

بالا