برگزیده های پرشین تولز

اساتید فن لطفآ راهنمایی کنند

dynamics

Registered User
تاریخ عضویت
23 نوامبر 2004
نوشته‌ها
67
لایک‌ها
1
سلا دوستان
این کد یک کامپوننت میخوام وقتی روی بنر کلیک میشه عمل کتیک کردن انجام نشه و هیچ لینکی فعال نباشه روی بنر فقط نمایش داده بشه اون ینر.
ضمنآ این کد مربوط به کامپوننت تبلیغات در سیستم مدیریت محتوای مامبو می باشد.
ممنون میشم کمکم کنید

PHP:
<?php
/**
* @package Mambo Open Source
* @subpackage Banners
* @copyright (C) 2005 - 2006 Mambo Foundation Inc.
* @license [url]http://www.gnu.org/copyleft/gpl.html[/url] GNU/GPL
*
* Mambo was originally developed by Miro ([url]www.miro.com.au[/url]) in 2000. Miro assigned the copyright in Mambo to The Mambo Foundation in 2005 to ensure
* that Mambo remained free Open Source software owned and managed by the community.
* Mambo is Free Software
*/ 

/** ensure this file is being included by a parent file */
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

$bid = intval( mosGetParam( $_REQUEST, 'bid', 0 ) );

$task	= mosGetParam( $_REQUEST, "task", "" );
switch($task)
{
	case "click":
	clickbanner( $bid );
	break;
	
	default:
	viewbanner( $mainframe->getCfg( 'live_site' ));
	break;
}

function viewbanner( $_live_site) {
	global $database, $mosConfig_live_site;
	
	$database->setQuery( "SELECT count(*) AS numrows FROM #__banner WHERE showBanner=1" );
	
	$numrows = $database->loadResult();
	if ($numrows === null) {
		echo $database->stderr( true );
		return;
	}
	
	if ($numrows > 1) {
		mt_srand( (double) microtime()*1000000 );
		$bannum = mt_rand( 0, --$numrows );
	} else {
		$bannum = 0;
	}
	
	$database->setQuery( "SELECT * FROM #__banner WHERE showBanner=1 LIMIT $bannum,1" );
	
	$banner = null;
	if ($database->loadObject( $banner )) {
		$database->setQuery( "UPDATE #__banner SET impmade=impmade+1 WHERE bid='$banner->bid'" );
		if(!$database->query()) {
			echo $database->stderr( true );
			return;
		}
		$banner->impmade++;
		
		if ($numrows > 0) {
			// Check if this impression is the last one and print the banner
			if ($banner->imptotal == $banner->impmade) {
				$query = "INSERT INTO #__bannerfinish (cid, type, name, impressions, clicks, imageurl, datestart, dateend)
					VALUES ('$banner->cid', '$banner->type', '$banner->name', '$banner->impmade', '$banner->clicks', '$banner->imageurl', '$banner->date', now())";
				$database->setQuery($query);
				if(!$database->query()) {
					die($database->stderr(true));
				}
				
				$query="DELETE FROM #__banner WHERE bid=$banner->bid";
				$database->setQuery($query);
				if(!$database->query()) {
					die($database->stderr(true));
				}
			}

			if (trim( $banner->custombannercode )) {
				echo $banner->custombannercode;
			} else if (eregi( "(\.bmp|\.gif|\.jpg|\.jpeg|\.png)$", $banner->imageurl )) {
				$imageurl = "$mosConfig_live_site/images/banners/$banner->imageurl";
				echo "<a href=\"".sefRelToAbs("index.php?option=com_banners&amp;task=click&amp;bid=$banner->bid")."\" target=\"_blank\"><img src=\"$imageurl\" border=\"0\" alt=\"Advertisement\" /></a>";
				
			} else if (eregi("\.swf$", $banner->imageurl)) {
				$imageurl = "$mosConfig_live_site/images/banners/".$banner->imageurl;
				echo "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0\" border=\"5\">
						<param name=\"movie\" value=\"$imageurl\"><embed src=\"$imageurl\" loop=\"false\" pluginspage=\"http://www.macromedia.com/go/get/flashplayer\" type=\"application/x-shockwave-flash\"></embed></object>";
			}
		}
	} else {
		echo "&nbsp;";
	}
}

/**
/* Function to redirect the clicks to the correct url and add 1 click
*/
function clickbanner( $bid  )
{
	global $database, $mainframe;
	require_once( $mainframe->getPath( 'class' ) );
	$row = new mosBanner($database);
	$row->load($bid);
	$row->clicks();
	
	$pat = "http.*://";
	if (!eregi( $pat, $row->clickurl )) {
		$clickurl = "http://$row->clickurl";
	} else {
		$clickurl = $row->clickurl;
	}
	mosRedirect( $clickurl );
}
?>
 

alik

کاربر قدیمی پرشین تولز
تاریخ عضویت
23 سپتامبر 2005
نوشته‌ها
2,146
لایک‌ها
1,232
PHP:
echo "<a href=\"".sefRelToAbs("index.php?option=com_banners &amp;task=click&amp;bid=$banner->bid")."\" target=\"_blank\"><img src=\"$imageurl\" border=\"0\" alt=\"Advertisement\" /></a>";

کد را درست میزاشتی خوانا تر بود :)
اگر درست متوجه شده باشم میخوای فقط بنر نمایش داده بشه ولی روش کلیک نشه :) داخل این خط تگ a را حذف کن تا دیگه کلیک نداشته باشه یا اینکه onclick="return falase;" را به تگ a اضافه کن

درضمن این تغییر برای بنر های غیر از فلش جواب میده :)
 

alik

کاربر قدیمی پرشین تولز
تاریخ عضویت
23 سپتامبر 2005
نوشته‌ها
2,146
لایک‌ها
1,232
این خط را
PHP:
echo "<a href=\"".sefRelToAbs("index.php?option=com_banners &amp;task=click&amp;bid=$banner->bid")."\" target=\"_blank\"><img src=\"$imageurl\" border=\"0\" alt=\"Advertisement\" /></a>";

به این تغییر بده:
PHP:
echo "<img src=\"$imageurl\" border=\"0\" alt=\"Advertisement\" />";
 
بالا