clipbucket/upload/includes/classes/ads.class.php

318 lines
No EOL
7.7 KiB
PHP

<?php
/**
Name : Advertisment Class
**************************************************************************************************
Don Not Edit These Classes , It May cause your script not to run properly
This source file is subject to the ClipBucket End-User License Agreement, available online at:
http://www.opensource.org/licenses/attribution.php
By using this software, you acknowledge having read this Agreement and agree to be bound thereby.
**************************************************************************************************
Copyright (c) 2007-2010 Clip-Bucket.com. All rights reserved.
**************************************************************************************************
**/
class AdsManager
{
/**
* Function used to add new advertisment in ClipBucket
* @param : Array
*/
function AddAd($array=NULL)
{
global $LANG,$db;
if(!$array)
$array = $_POST;
$name = mysql_clean($array['name']);
$code = mysql_real_escape_string(htmlspecialchars($array['code']));
$placement = mysql_clean($array['placement']);
$category = $array['category'];
$status = $array['status'];
if(empty($name))
{
$msg = e(lang('ad_name_error'));
}else{
$count = $db->count(tbl("ads_data"),"ad_id"," ad_name='$name'");
if($count>0){
e(lang('ad_exists_error2'));
}else
{
$db->insert(tbl("ads_data"),array("ad_category","ad_name","ad_placement","ad_code","ad_status","date_added"),
array($category,$name,$placement,$code,$status,now()));
$msg = e(lang('ad_add_msg'),m);
}
return $msg;
}
}
/**
* Function used to set advertisment status
* 1, to set as activate
* 0, to set as deactivate
*/
function ChangeAdStatus($status,$id)
{
global $db;
if($status >1)
$status = 1;
if($status<0)
$status = 0;
if($this->ad_exists($id))
{
$db->update(tbl("ads_data"),array("ad_status"),array($status)," ad_id='".mysql_clean($id)."'");
if($status == '0')
$show_status = lang('ad_deactive');
else
$show_status = lang('ad_active');
e(lang('ad_msg').$show_status,"m");
}else
e(lang("ad_exists_error1"));
}
/**
* Function used to edit advertisment
* @params Array
*/
function EditAd($array=NULL)
{
global $db;
if(!$array)
$array = $_POST;
$placement = mysql_clean($array['placement']);
$name = mysql_clean($array['name']);
$code = mysql_real_escape_string(htmlspecialchars($array['code']));
$category = mysql_clean(@$array['category']);
$id = $array['ad_id'];
if(!$this->ad_exists($id))
e(lang("ad_exists_error1"));
elseif(empty($name))
e(lang('ad_name_error'));
else
{
$db->update(tbl("ads_data"),array("ad_placement","ad_name","ad_category","ad_code","ad_status"),
array($placement,$name,$category,$code,$array['status'],$id)," ad_id='$id' ");
e(lang('ad_update_msg'),"m");
}
}
/**
* Function used to delete advertisments
* @param Ad Id
*/
function DeleteAd($id)
{
global $db;
if(!$this->ad_exists($id))
e(lang("ad_exists_error1"));
else
{
$db->Execute("DELETE FROM ".tbl("ads_data")." WHERE ad_id='".$id."'");
$msg = e(lang('ad_del_msg'),"m");
}
}
/**
* Function used to remove advertismetn placement
*/
function RemovePlacement($placement)
{
global $db;
if(!$this->get_placement($placement))
e(lang("ad_placement_err4"));
else
{
$db->execute("Delete from ".tbl("ads_data")." WHERE ad_placement='".$placement."'");
$db->execute("Delete from ".tbl("ads_placements")." WHERE placement='".$placement."'");
e(lang('ad_placment_delete_msg'),"m");
}
}
/**
* Function used to add new palcement
* @param Array
* Array [0] => placement name
* Array [1] => placement code
*/
function AddPlacement($array)
{
global $db;
if(empty($array[0])){
$msg = e(lang('ad_placement_err2'));
}elseif(empty($array[1])){
$msg = e(lang('ad_placement_err3'));
}
if(empty($msg))
{
if($this->get_placement($array[1]))
e(lang('ad_placement_err1'));
else
{
$db->insert(tbl("ads_placements"),array("placement_name","placement"),array($array[0],$array[1]));
e(lang('ad_placement_msg'),"m");
}
}
}
/**
* FUNCTION USED TO GET ADVERTISMENT FROM DATABSE WITH LOWEST IMPRESSION
* @param : placement_code
* @param : num_of_ads
* return advertisment
*/
function getAd($placement_code,$limit=1)
{
global $db,$ads_array;
if($limit==1)
{
//Creating Query, Not to select duplicate Ads
foreach($ads_array as $ad_id)
{
if(is_numeric($ad_id))
$query_param .= " AND ad_id <> '".$ad_id."' ";
}
$limit_query = ' LIMIT 1';
$order = ' ORDER BY ad_impressions ASC ';
//Return Ad
$query = "SELECT ad_id,ad_code FROM ".tbl("ads_data")."
WHERE ad_placement = '".$placement_code."'
AND ad_status='1'
";
$code_array = $db->GetRow($query.$query_param.$order.$limit_query);
//Checking If there is no code, then try to get duplicate ad
if(empty($code_array['ad_id']))
$code_array = $db->GetRow($query.$order.$limit_query);
$ads_array[] = $code_array['ad_id'];
//Incrementing Ad Impression
$this->incrementImpression($code_array['ad_id']);
return stripslashes(htmlspecialchars_decode($code_array['ad_code']));
}else{
/*In that case, get all '$limit'
ads from database and do the same
as we did with the single ad*/
}
}
/**
* FUNCTION USED TO INCREASE AD IMPRESSIONGS
* @param ad_id
*/
function incrementImpression($ad_id)
{
global $db;
$query = "SELECT ad_impressions FROM ".tbl("ads_data")." WHERE ad_id='".$ad_id."'";
$query_results = $db->GetRow($query);
$ad_imp = $query_results['ad_impressions'] + 1;
$query = "UPDATE ".tbl("ads_data")." SET ad_impressions = '".$ad_imp."' WHERE ad_id='".$ad_id."'";
$db->Execute($query);
}
/**
* Function usd to get all placemetns
*/
function get_placements()
{
global $db;
$result = $db->select(tbl("ads_placements"));
if($db->num_rows>0)
return $result;
else
return false;
}
/**
* Function used to get all advertisments
*/
function get_advertisements()
{
global $db;
$result = $db->select(tbl("ads_data"));
if($db->num_rows>0)
return $result;
else
return false;
}
/**
* Function used to get placement
*/
function get_placement($place)
{
global $db;
$result = $db->select(tbl("ads_placements"),"*"," placement='$place' OR placement_id='$place' ");
if($db->num_rows>0)
return $result[0];
else
return false;
}
/**
* Function used to create placement name
*/
function get_placement_name($place)
{
$details = $this->get_placement($place);
if($details)
return $details['placement_name'];
else
return false;
}
/**
* Function used to get advertismetn
*/
function get_ad_details($id)
{
global $db;
$result = $db->select(tbl("ads_data"),"*"," ad_placement='$id' OR ad_id='$id'");
if($db->num_rows>0)
{
$result = $result[0];
$result['ad_code'] = stripslashes($result['ad_code']);
return $result;
}else
return false;
}
/**
* Function used to check weather advertisment exists or not
*/
function ad_exists($id)
{
global $db;
$count = $db->count(tbl("ads_data"),"ad_id"," ad_id='$id' ");
if($count>0)
return true;
else
return false;
}
/**
* Count ads in a placement
*/
function count_ads_in_placement($place)
{
global $db;
return $db->count(tbl("ads_data"),"ad_id"," ad_placement='$place'");
}
}
?>