博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ecshop广告分析
阅读量:6319 次
发布时间:2019-06-22

本文共 696 字,大约阅读时间需要 2 分钟。

ecshop模板中,显示广告的库项目是ad_position.lbi,其内容只有一个语句:

{insert name='ads' id=$ads_id num=$ads_num}

smarty的insert类似于include,意思是在这个位置引用一些公用的库。 这里 name='ads' 表示Smarty 在你的 php 程序中搜索名为 insert_ads() 的函数,调用该函数,并传递两个参数过去id=$ads_id num=$ads_num ($ads_id 和 $ads_num的值被组合成一个数组作为函数的第一个参数传递给该函数)

function insert_ads($arr)

$ads_id 和 $ads_num的值来自哪里呢?同一个页面引用ad_position.lbi的时候,语句一样,但值却不一样,这两个变量什么时候被赋值了?

原来在lib_main.php中被动态替换的:

function dyna_libs_replace($matches)

而在function smarty_prefilter_preCompile 中,会

它通过get_dyna_libs 去数据库检索 template表,核对动态模块。

数据库template表中type自动值大于0的是是动态模块, 动态模块种类有:

$row['type'])

case 1:// 分类的商品

case 2:// 品牌的商品

case 3:// 文章列表

case 4:// 广告位

 

转载于:https://www.cnblogs.com/sakura-panda/p/3441130.html

你可能感兴趣的文章
【十五分钟Talkshow】在.NET应用程序中访问Excel的几种方式
查看>>
图数据库titan 和 rexster安装手册
查看>>
JS--switch 语句
查看>>
go-vim配置
查看>>
jetty配置jndi数据源
查看>>
php 调用系统命令 超时
查看>>
关于“性”
查看>>
android中级篇之多线程下载
查看>>
Silverlight删除数据表格中的数据,表格头部定义全选按钮,批量删除
查看>>
并查集
查看>>
《深入Ajax架构和最佳实践》读书笔记
查看>>
SAP HANA是什么
查看>>
一位游戏制作人的“页游之惑”
查看>>
Ffmpeg和SDL如何同步视频(转)
查看>>
php单例模式
查看>>
js渐变显示渐变消失
查看>>
[置顶] 重装系统的记录
查看>>
深入浅出之Smarty模板引擎工作机制(二)
查看>>
初探领域驱动设计(1)为复杂业务而生
查看>>
ORACLE EXP命令
查看>>