<?php

/**
 * ECSHOP 广告处理文件
 * ============================================================================
 * 版权所有 (C) 2005-2007 北京亿商互动科技发展有限公司，并保留所有权利。
 * 网站地址: http://www.ecshop.com
 * ----------------------------------------------------------------------------
 * 这是一个免费开源的软件；这意味着您可以在不用于商业目的的前提下对程序代码
 * 进行修改、使用和再发布。
 * ============================================================================
 * @author:     liry <liry123@hotmail.com>
 * @version:    v2.1
 * ---------------------------------------------
 * $Author: liry $
 * $Date: 2006-08-04 18:09:42 +0800 (星期五, 04 八月 2006) $
 * $Id: index.php 578 2006-08-04 10:09:42Z liry $
*/

define('IN_ECS', true);
define('INIT_NO_SMARTY', true);

require('./includes/init.php');

/* 没有指定广告的id及跳转地址 */
if (empty($_GET['ad_id']))
{
    header("Location: index.php\n");
    exit;
}
else
{
    $ad_id = intval($_GET['ad_id']);
}

/* act 操作项的初始化*/
$_GET['act'] = !empty($_GET['act']) ? trim($_GET['act']) : '';

if ($_GET['act'] == 'js')
{
    /* 编码转换 */
    if (empty($_GET['charset']))
    {
        $_GET['charset'] = 'UTF8';
    }

    header('Content-type: application/x-javascript; charset=' . $_GET['charset'] == 'UTF8' ? 'utf-8' : $_GET['charset']);

    /* 创建字符集转换对象 */
    if ($_GET['charset'] != 'UTF8')
    {
        include_once('./includes/iconv/cls_iconv.php');
        $iconv = new Chinese('./');
    }

    $url = $ecs->url();

    /* 取得广告的信息 */
    $sql = 'SELECT ad.ad_id, ad.ad_name, ad.ad_link, ad.ad_code '.
           'FROM ' . $ecs->table('ad') . ' AS ad ' .
           'LEFT JOIN ' . $ecs->table('ad_position') . ' AS p ON ad.position_id = p.position_id '.
           "WHERE ad.ad_id = '$ad_id'";
    $ad_info = $db->getRow($sql);

    if (!empty($ad_info))
    {
        /* 转换编码 */
        if ($_GET['charset'] != 'UTF8')
        {
            $ad_info['ad_name'] = $iconv->convert('UTF8', $_GET['charset'], $ad_info['ad_name']);
            $ad_info['ad_code'] = $iconv->convert('UTF8', $_GET['charset'], $ad_info['ad_code']);
        }

        /* 初始化广告的类型和来源 */
        $_GET['type'] = !empty($_GET['type']) ? intval($_GET['type'])    : 0;
        $_GET['from'] = !empty($_GET['from']) ? urlencode($_GET['from']) : '';

        switch ($_GET['type'])
        {
            case '0':
                /* 图片广告 */
                $src = (strpos($ad_info['ad_code'], 'http://') === false && strpos($ad_info['ad_code'], 'https://') === false) ? $url . "data/afficheimg/$ad_info[ad_code]" : $ad_info['ad_code'];
                $str = '<a href="' .$url. 'affiche.php?ad_id=' .$ad_info['ad_id']. '&from=' .$_GET['from']. '&uri=' .urlencode($ad_info['ad_link']). '" target="_blank">' .
                        '<img src="' . $src . '" border="0" alt="' . $ad_info['ad_name'] . '" /></a>';
                break;
            case '1':
                /* Falsh广告 */
                $src = (strpos($ad_info['ad_code'], 'http://') === false && strpos($ad_info['ad_code'], 'https://') === false) ? $url . 'data/afficheimg/' . $ad_info['ad_code'] : $ad_info['ad_code'];
                $str = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" <param name="movie" value="'.$src.'"><param name="quality" value="high"><embed src="'.$src.'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed></object>';
                break;
            case '2':
                /* 代码广告 */
                $str = $ad_info['ad_code'];
                break;
            case 3:
                /* 文字广告 */
                $str = '<a href="' .$url. 'affiche.php?ad_id=' .$ad_info['ad_id']. '&from=' .$_GET['from']. '&uri=' .urlencode($ad_info['ad_link']). '" target="_blank">' . nl2br(htmlspecialchars(addslashes($ad_info['ad_code']))). '</a>';
                break;
        }
    }

    echo "document.writeln('$str');";
}
else
{
    /* 获取投放站点的名称 */
    $site_name = !empty($_GET['from']) ? $_GET['from'] : addslashes($_LANG['self_site']);

    /* 商品的ID */
    $goods_id = !empty($_GET['goods_id']) ? intval($_GET['goods_id']) : 0;

    /* 存入SESSION中,购物后一起存到订单数据表里 */
    $_SESSION['from_ad'] = $ad_id;
    $_SESSION['referer'] = stripslashes($site_name);

    /* 如果是商品的站外JS */
    if ($ad_id == '-1')
    {
        /* 查询是否有相同的投放站点 */
        $sql = 'SELECT COUNT(*) FROM ' . $ecs->table('adsense') . " WHERE from_ad = -1 AND referer = '" .$site_name. "'";
        $site_exist = $db->getOne($sql);
        if ($site_exist > 0)
        {
            $sql = 'UPDATE ' . $ecs->table('adsense') .
                   ' SET clicks = clicks + 1' .
                   " WHERE from_ad = -1 AND referer = '$site_name'";
        }
        else
        {
            $sql = 'INSERT INTO ' . $ecs->table('adsense') . ' (from_ad, referer, clicks) ' .
                   "VALUES ('-1', '" . $site_name . "', '1')";
        }
        $db->query($sql);

        $uri = build_uri('goods', array('gid' => $goods_id));

        header("Location: $uri\n");

        exit;
    }
    else
    {
        /* 更新站内广告的点击次数 */
        $db->query('UPDATE ' . $ecs->table('ad') . " SET click_count = click_count + 1 WHERE ad_id = '$ad_id'");

        /* 如果有当前广告的ID以及相同的站点存在,只更新点击次数 */
        $sql = 'SELECT COUNT(*) FROM ' . $ecs->table('adsense').
               " WHERE from_ad = '$ad_id' AND referer = '$site_name'";
        if ($db->getOne($sql) > 0)
        {
            $sql = 'UPDATE ' . $ecs->table('adsense').
                   ' SET clicks = clicks + 1' .
                   " WHERE from_ad = '$ad_id' AND referer = '" .$site_name. "'";
        }
        else
        {
            $sql = 'INSERT INTO ' . $ecs->table('adsense') . ' (from_ad, referer, clicks) ' .
                   "VALUES ('" . $ad_id . "', '" . $site_name . "', '1')";
        }

        $db->query($sql);

        /* 跳转到广告的链接页面 */
        if (!empty($_GET['uri']))
        {
            $uri = (strpos($_GET['uri'], 'http://') === false && strpos($_GET['uri'], 'https://') === false) ? $ecs->http() . urldecode($_GET['uri']) : urldecode($_GET['uri']);
        }
        else
        {
            $uri = $ecs->url();
        }

        header("Location: $uri\n");
        exit;
    }
}

?>