//
// ------------------------------------------------------------------------- //
// Original Author: Franzisco Burzi
// Author Website : http://www.phpnuke.org
// License Type : GPL: See /manual/LICENSES/GPL.txt
// ------------------------------------------------------------------------- //
include_once("../../mainfile.php");
//---------------------------------------------------------------------------------------//
/**
* Description
*
* @param type $var description
* @return type description
*/
/********************************************/
/* Function to let your client login to see */
/* the stats */
/********************************************/
function clientlogin() {
global $db,$bcoosConfig;
$xoopsOption['show_rblock'] = 1;
include_once("./header.php");
OpenTable();
echo "
";
CloseTable();
include_once("footer.php");
}
//---------------------------------------------------------------------------------------//
/**
* Description
*
* @param type $var description
* @return type description
*/
/*********************************************/
/* Function to display the banners stats for */
/* each client */
/*********************************************/
function bannerstats($login, $pass) {
global $db, $myts, $bcoosConfig;
$sqlpass = md5($pass);
$result = $db->query("SELECT cid, name, login, passwd FROM ".$db->prefix("banner_clients")." WHERE login='$login' AND passwd='$sqlpass'");
list($cid, $name, $login, $passwd) = $db->fetchRow($result);
if ($sqlpass == $passwd) {
$xoopsOption['show_rblock'] = 0;
include_once("./header.php");
OpenTable();
echo "
".sprintf(_BN_ACTIVE, $name)."
| "._BN_ID." |
"._BN_MADE." |
"._BN_TOTAL." |
"._BN_LEFT." |
"._BN_CLICKS." |
% "._BN_CLICKS." |
"._BN_FUNCTIONS." |
";
$result = $db->query("SELECT bid, imptotal, impmade, clicks, datestart FROM ".$db->prefix("banner_items")." WHERE cid=$cid");
while ( list($bid, $imptotal, $impmade, $clicks, $date) = $db->fetchRow($result) ) {
if ( ($impmade == 0) || ($clicks == 0) ) {
$percent = 0;
} else {
$percent = round(100 * ($clicks/$impmade), 2);
}
if ( $imptotal == 0 ) {
$left = _BN_UNLIMITED;
} else {
$left = ($imptotal-$impmade);
}
echo "
| $bid |
$impmade |
$imptotal |
$left |
$clicks |
$percent% |
"._BN_MAIL." |
";
}
echo "
".sprintf(_BN_RUNNING, $bcoosConfig['title'])."
";
$result = $db->query("SELECT bid, imageurl, imagealt, clickurl from ".$db->prefix("banner_items")." WHERE cid=$cid");
while ( list($bid, $imageurl, $imagealt, $clickurl) = $db->fetchRow($result) ) {
$numrows = $db->getRowsNum($result);
if ($numrows > 1) {
echo "
";
}
echo "
.")
"._BN_ID." $bid
"._BN_MAIL."
";
}
CloseTable();
/* Finnished Banners */
echo "
";
OpenTable();
echo "
".sprintf(_BN_FINISHED, $name)."
| "._BN_ID." |
"._BN_IMPRESSIONS." |
"._BN_CLICKS." |
% "._BN_CLICKS." |
"._BN_START." |
"._BN_END." |
";
$result = $db->query("SELECT bid, impmade, clicks, datestart, dateend FROM ".$db->prefix("banner_items")." WHERE dateend > 1 AND cid=$cid");
while ( list($bid, $impmade, $clicks, $date, $dateend) = $db->fetchRow($result) ) {
if ( ($impmade == 0) || ($clicks == 0) ) {
$percent = 0;
} else {
$percent = round(100 * ($clicks/$impmade), 2);
}
echo "
| $bid |
$impmade |
$clicks |
$percent% |
".formatTimestamp($date, 's')." |
".formatTimestamp($dateend, 's')." |
";
}
echo '
';
CloseTable();
include_once("./footer.php");
} else {
redirect_header("index.php", 2, _BN_BADPASS);
exit();
}
}
//---------------------------------------------------------------------------------------//
/**
* Description
*
* @param type $var description
* @return type description
*/
/*********************************************/
/* Function to let the client E-mail his */
/* banner Stats */
/*********************************************/
function EmailStats($login, $cid, $bid, $pass) {
global $db, $bcoosConfig;
$result2 = $db->query("SELECT name, email FROM ".$db->prefix("banner_clients")." WHERE cid=$cid");
list($name, $email) = $db->fetchRow($result2);
if ( !checkEmail($email) ) {
redirect_header("index.php", 3, sprintf(_BN_NOEMAIL, $name));
exit();
} else {
$result = $db->query("SELECT bid, imptotal, impmade, clicks, imageurl, clickurl FROM ".$db->prefix("banner_items")." WHERE bid=$bid AND cid=$cid");
list($bid, $imptotal, $impmade, $clicks, $imageurl, $clickurl, $date) = $db->fetchRow($result);
if ( ($impmade == 0) || ($clicks == 0) ) {
$percent = 0;
} else {
$percent = round(100 * ($clicks/$impmade), 2);
}
if ($imptotal == 0) {
$left = _BN_UNLIMITED;
$imptotal = _BN_UNLIMITED;
} else {
$left = ($imptotal-$impmade);
}
$xoopsMailer =& getMailer();
$xoopsMailer->setTemplateDir(XOOPS_ROOT_PATH."/modules/banners/");
$xoopsMailer->setTemplate("bannerstats.tpl");
$xoopsMailer->assign("SITE_NAME", $bcoosConfig['title']);
$xoopsMailer->assign("ADMIN_MAIL", $bcoosConfig['adminmail']);
$xoopsMailer->assign("SITE_URL", XOOPS_URL."/");
$xoopsMailer->assign("CLIENT_NAME", $name);
$xoopsMailer->assign("BANNER_ID", $bid);
$xoopsMailer->assign("IMAGE_URL", $imageurl);
$xoopsMailer->assign("CLICK_URL", $clickurl);
$xoopsMailer->assign("IMP_TOTAL", $imptotal);
$xoopsMailer->assign("IMP_MADE", $impmade);
$xoopsMailer->assign("IMP_LEFT", $left);
$xoopsMailer->assign("CLICKS", $clicks);
$xoopsMailer->assign("PERCENT", $percent);
$xoopsMailer->assign("RPT_DATE", formatTimestamp(time(), 'm'));
$xoopsMailer->useMail();
$xoopsMailer->setToEmails($email);
$xoopsMailer->setFromEmail($bcoosConfig['adminmail']);
$xoopsMailer->setFromName($bcoosConfig['title']);
$xoopsMailer->setSubject(sprintf(_BN_STATSAT, $bcoosConfig['title']));
if (!$xoopsMailer->send()) {
$message = $xoopsMailer->getErrors();
} else {
$message = _BN_STATSMAILED;
}
redirect_header("index.php?op=Ok&login=$login&pass=$pass", 3, $message);
exit();
}
}
//---------------------------------------------------------------------------------------//
/**
* Description
*
* @param type $var description
* @return type description
*/
/*********************************************/
/* Function to let the client to change the */
/* url for his banner */
/*********************************************/
function change_banner_url_by_client($login, $pass, $cid, $bid, $url, $alt) {
global $db, $myts;
$result = $db->query("SELECT passwd FROM ".$db->prefix("banner_clients")." WHERE cid=$cid");
list($passwd) = $db->fetchRow($result);
if (md5($pass) == $passwd) {
$alt = $myts->makeTboxData4Save($alt);
$update = $db->query("UPDATE ".$db->prefix("banner_items")." SET clickurl='$url', imagealt='$alt' WHERE bid=$bid");
}
if ($update) {
redirect_header("index.php?op=Ok&login=$login&pass=$pass", 3, _BN_URLCHANGED);
} else {
redirect_header("index.php?op=Ok&login=$login&pass=$pass", 1, _NOTUPDATED);
}
exit();
}
//---------------------------------------------------------------------------------------//
/**
* Description
*
* @param type $var description
* @return type description
*/
function clickbanner($bid) {
global $db;
$bresult = $db->query("SELECT clickurl FROM ".$db->prefix("banner_items")." WHERE bid=$bid");
list($clickurl) = $db->fetchRow($bresult);
$db->query("UPDATE ".$db->prefix("banner_items")." SET clicks=clicks+1 WHERE bid=$bid");
echo "";
exit();
}
//---------------------------------------------------------------------------------------//
$op = !empty($_POST['op']) ? $_POST['op'] : $_GET['op'];
switch ($op) {
case "click":
clickbanner($_GET['bid']);
break;
case "bannerstats":
bannerstats($_POST['login'], $_POST['pass']);
break;
case "Ok":
bannerstats($_GET['login'], $_GET['pass']);
break;
case "Change":
change_banner_url_by_client($_POST['login'], $_POST['pass'], $_POST['cid'], $_POST['bid'], $_POST['url'], $_POST['alt']);
break;
case "EmailStats":
EmailStats($_GET['login'], $_GET['cid'], $_GET['bid'], $_GET['pass']);
break;
default:
clientlogin();
break;
}
?>