vB·流水账

生命在于折腾。

用于加速微软technet网站的adblock过滤器

2016-6-6 vibbow

||dc.services.visualstudio.com/v2/track
||web.vortex.data.microsoft.com/collect/v1/*
||webtrends.com^
||c.microsoft.com/ms.js
||c1.microsoft.com/c.gif

评论(0) 浏览(1685)

iWebShop配置使用CDN加速图片教程

2016-6-2 vibbow

好久没有写博客了,今天就来随便写点东西把。
iWebShop并没有官方支持将图片URL重写到第三方CDN的功能,所以只能对源代码进行修改了。虽然以下修改方法并不完美,不过好歹算是可用了。

以下教程均假设图片cdn的域名为:cdn.example.com。总共有三个文件要修改。

\lib\core\file_class.php
这个文件主要禁用了文件名混淆功能。在使用cdn的情况下属于完全然并卵的功能,只会造成无效缓存。

修改点:
function dirExplodeEncode
注释掉以下代码
$code = $code ? $code : ICrypt::encode($dir,IWeb::$app->config['encryptKey']);
在注释掉的代码后面新增一行
$dir = $code;

function dirExplodeDecode
注释掉以下代码
$dir = ICrypt::decode($code,IWeb::$app->config['encryptKey']);
在注释掉的代码后面新增一行
$dir = $code;


\lib\core\util\urlmanager_class.php
这个文件在生成缩略图路径时,直接将baseDir指向cdn的域名

修改点:
function createUrl
找到
if(strpos($url,'pic/thumb/') !== false)
在其内新增一行
$baseDir = '//cdn.example.com/';


\views\default\site\products.html
这里以修改默认模板为例。其实我还是想以修改模板为主。修改模板实在无法达成的部分,才会修改内核文件。

修改点:
229行
<a href='javascript:void(0);' rel="{gallery:'goodsPhoto',smallimage:'{webroot:}{echo:Thumb::get($item['img'],435,435)}',largeimage:'{webroot:$item[img]}'}">
修改为
<a href='javascript:void(0);' rel="{gallery:'goodsPhoto',smallimage:'//cdn.example.com/{echo:Thumb::get($item['img'],435,435)}',largeimage:'//cdn.example.com/{$item[img]}'}">

321行产品描述下新增一行
{set:str_replace('src="/upload/', 'src="//cdn.example.com/upload/', $content)}

523 - 531行
//图片初始化
var goodsSmallPic = "{skin:images/front/nopic_435_435.gif}";
var goodsBigPic   = "{skin:images/front/nopic_435_435.gif}";

//存在图片数据时候
{if:isset($photo) && $photo}
goodsSmallPic = "{webroot:}{echo:Thumb::get($photo[0]['img'],435,435)}";
goodsBigPic   = "{webroot:$photo[0]['img']}";
{/if}
修改为
//图片初始化
var goodsSmallPic = "//cdn.example.com/images/front/nopic_435_435.gif";
var goodsBigPic   = "//cdn.example.com/images/front/nopic_435_435.gif";

//存在图片数据时候
{if:isset($photo) && $photo}
goodsSmallPic = "//cdn.example.com/{echo:Thumb::get($photo[0]['img'],435,435)}";
goodsBigPic   = "//cdn.example.com/{$photo[0]['img']}";
{/if}

评论(0) 浏览(2072)