<?php
//==================================================================
//=================include/common.inc.php===========================
//==================================================================
//dirname(__FILE__),返回路径%root%/ads/include
//substr(dirname("file"),0,-8);取得文件的上一级目录,返回%root%/ads,因为/include为8个字符
//定义常量MOD_ROOT,指向模块根目录
define('MOD_ROOT', substr(dirname(__FILE__), 0, -8));
//定义变量$mod为模块根目录名称
$mod = 'ads';
//引入文件/include/common.inc.php
require substr(MOD_ROOT, 0, -strlen($mod)).'include/common.inc.php';
//定义变量数组,存放文件头信息,爬虫的食物:标题、关键字、描述
$head['title'] = $MOD['name'];
$head['keywords'] = $MOD['name'];
$head['description'] = $MOD['name'];
?>
<?php
//=====================================================================
//=================include/global.inc.php==============================
//====================================================================
defined('IN_PHPCMS') or exit('Access Denied');
/**
* 返回广告的类型
*/
function get_type($type) {
global $LANG;
if($type=='image') return $LANG['image'];
elseif($type=='flash') return 'FLASH';
elseif($type=='text') return $LANG['text'];
elseif($type=='code') return $LANG['code'];
else return $LANG['unkown'];
}
/**
* 根据广告的类型,对其进行转换,返回相对应的html格式的内容
*
* @param $ads 原始内容
* @param $isjs 默认为1,表示默认为js,对其进行转换
* @return 转换后的html内容
*/
function ads_content($ads, $isjs = 1)
{
if (!is_array($ads)) return "";
@extract($ads);
switch ($type)
{
case 'image':
$imageurl = imgurl($imageurl, 1);
$content = ads_image($adsid, $linkurl, $imageurl, $width, $height, $alt);
break;
case 'flash':
$flashurl = imgurl($flashurl, 1);
$content = ads_flash($adsid, $flashurl, $width, $height, $wmode = 'transparent');
break;
case 'text':
$content = ads_text($adsid, $text);
break;
case 'code':
$content = ads_code($adsid, $code);
break;
}
return $isjs ? strip_js($content) : $content;
}
/**
* 对图片格式的内容进行转换
*
* @param $id
* @param $linkurl 点击图片的链接地址
* @param $imageurl 图片来源地址
* @param $width 图片的显示宽度
* @param $height 图片的显示高度
* @param $alt 鼠标悬停在图片上时的提示信息,默认为空,可选属性
* @return 转换后的html
*/
function ads_image($id, $linkurl, $imageurl, $width, $height, $alt = '')
{
global $PHP_SITEURL,$MOD;
$url = $MOD['enableadsclick'] ? $PHP_SITEURL.'ads/clickads.php?id='.$id : $linkurl;
return "<a href='".$url."' target='_blank'><img src='".$imageurl."' border='0' width='".$width."' height='".$height."' alt='".$alt."'></a>";
}
/**
* 对flash格式内容进行转换
*
* @param $id
* @param $flashurl flash文件的来源
* @param $width flash的显示宽度
* @param $height flash的显示高度
* @param $wmode 设定flash的窗口模式
* @return 转换后的html
*/
function ads_flash($id, $flashurl, $width, $height, $wmode = 'transparent')
{
return "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0' width='".$width."' height='".$height."'>
<param name='movie' value='".$flashurl."' /><param name='quality' value='high' />
".($wmode ? "<param name='wmode' value='transparent' />" : "") ."
<embed src='".$flashurl."' width='".$width."' height='".$height."' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash'>
</embed>
</object>";
}
//对文本格式的广告,返回其内容
function ads_text($id, $text)
{
return $text;
}
//对代码格式的广告信息,返回其代码
function ads_code($id, $code)
{
return $code;
}
?>
<?php
//======================================================================
//=================include/createhtml/common.inc.php===================
//=====================================================================
//检查用户是否具有访问权限
defined('IN_PHPCMS') or exit('Access Denied');
//选择出第一条符合条件的广告
$ads = $db->get_one("SELECT * FROM ".TABLE_ADS." a, ".TABLE_ADS_PLACE." p WHERE a.placeid=p.placeid AND p.placeid=$placeid AND a.fromdate<=UNIX_TIMESTAMP() AND a.todate>=UNIX_TIMESTAMP() AND a.passed=1 AND a.checked=1 LIMIT 1");
//根据广告的类型,对其进行转换,返回相对应的html格式的内容
$content = ads_content($ads, $isjs);
$templateid = $ads['templateid'] ? $ads['templateid'] : 'ads';
//打开输出缓冲区
ob_start();
//加载模板文件
include template('ads', $templateid);
//返回内部缓冲区的内容
$data = ob_get_contents();
//这个比较重要,只有使用了这个函数后,缓冲区里的内容才会读取出来
ob_clean();
//设定文件路径
$filename = $isjs ? PHPCMS_ROOT.'/data/'.$MOD['htmldir'].'/'.$placeid.'.js' : PHPCMS_ROOT.'/data/'.$MOD['htmldir'].'/'.$placeid.'.html';
//添加文件
file_put_contents($filename, $data);
//尝试将 filename 所指定文件的模式改成 mode 所给定的
@chmod($filename, 0777);
?>

PHPCMS模块分析之广告模块详解----北冥神功破解法(二)相关推荐

  1. PHPCMS模块分析之广告模块详解----北冥神功破解法(一)

    逍遥派的顶级武功之一,与天山六阳掌.天山折梅手和小无相功齐名,可以吸取他人的内力以供己用,是迅速提升功力的捷径,内力既厚,天下武功无不为我所用,犹如北冥,大舟小舟无不载,大鱼小鱼无不容."北 ...

  2. 【java】JDK安全模块JCE核心Cipher使用详解

    1.概述 转载:JDK安全模块JCE核心Cipher使用详解 2.前提 javax.crypto.Cipher,翻译为密码,其实叫做密码器更加合适.Cipher是JCA(Java Cryptograp ...

  3. python中paste函数的作用_PIL图像处理模块paste方法简单使用详解

    python2中提供了PIL基础的图像数据出来模块,在python3中更名为了pillow模块,名字虽然发生了改变,但是提供的方法和功能都是一样的,对于日常基础的图像数据处理分析来说是足够用了的,现在 ...

  4. python的shutil模块是内置的_Python之shutil模块11个常用函数详解,python内置函数是什么...

    Python之shutil模块11个常用函数详解,python内置函数是什么 shutil 是 Python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建.删除.查 ...

  5. ES6模块之export和import详解

    ES6模块之export和import详解 ES6中的模块即使一个包含JS代码的文件,在这个模块中所有的变量都是对其他模块不可见的,除非我们导出它.ES6的模块系统大致分为导出(export)和导入( ...

  6. 【 数据集加载 DatasetDataLoader 模块实现与源码详解 深度学习 Pytorch笔记 B站刘二大人 (7/10)】

    数据集加载 Dataset&DataLoader 模块实现与源码详解 深度学习 Pytorch笔记 B站刘二大人 (7/10) 模块介绍 在本节中没有关于数学原理的相关介绍,使用的数据集和类型 ...

  7. 【 线性回归 Linear-Regression torch模块实现与源码详解 深度学习 Pytorch笔记 B站刘二大人(4/10)】

    torch模块实现与源码详解 深度学习 Pytorch笔记 B站刘二大人 深度学习 Pytorch笔记 B站刘二大人(4/10) 介绍 至此开始,深度学习模型构建的预备知识已经完全准备完毕. 从本章开 ...

  8. python调用包的路径_Python3 模块、包调用路径详解

    如下所示: ''' 以下代码均为讲解,不能实际操作 ''' ''' 博客园 Infi_chu ''' ''' 模块的优点: 1.高可维护性 2.可以大大减少编写的代码量 模块一共有三种: 1.Pyth ...

  9. python six模块详解_对python中的six.moves模块的下载函数urlretrieve详解

    实验环境:windows 7,anaconda 3(python 3.5),tensorflow(gpu/cpu) 函数介绍:所用函数为six.moves下的urllib中的函数,调用如下urllib ...

最新文章

  1. python方法测试_python 测试常用小方法
  2. iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案
  3. 两大电网大手笔投建能源大数据中心,15省都有哪些落地案例?
  4. typedef void(*Fun)(void);
  5. mysql5.6兼容包_freebsd9.1源码安装apache、mysql、php环境(亲侧通过)
  6. 能测试快充真假的软件,苹果iOS 12可自行测试真假快充:山寨充电器将被洗牌
  7. RCF的优势--分布式应用
  8. python面试总结(五)内存管理与MYSQL引擎选择
  9. ★36句经典英文格言
  10. Android Intent调用大全、系统自带Intent调用大全
  11. 分享几个Python小技巧函数里的4个小花招 1
  12. 微信公众平台开发接口返回码说明
  13. 人口logistic模型公式_MATLAB做logistics人口模型,求出值有问题
  14. 梯度散度旋度常用基本关系
  15. 微信公众号编辑模式下推送消息
  16. win7 简体中文 旗舰版 种子 永久激活 全在附件
  17. c语言将浮点变成字符串,c语言将浮点型数据转换成字符串
  18. Unity植物大战僵尸游戏素材+源码
  19. 时序分析(2) -- 单根检验
  20. 网络营销与html,网络营销和线上推广的重要性

热门文章

  1. java计算机毕业设计吉他库存管理源码+mysql数据库+系统+lw文档+部署
  2. 2016年计算机b级考试试题,2016年全国计算机等级考试模拟试题一级B.doc
  3. 使用计算机时按什么键打开,计算机进入BIOS的快捷键是什么|打开计算机以进入BIOS设置时按下的键...
  4. 声明式事务、SpringMVC详解
  5. yolov5 win10 数据集制作 各种踩坑
  6. ios 高德获取定位_单次定位-获取位置-开发指南-iOS 定位SDK | 高德地图API
  7. vscode replace with a newline
  8. 多人网络(Valve开发文档翻译[起源引擎])(一)
  9. FFmpeg解封装通用代码
  10. git 取消托管文件