您的位置:首页 > Web前端 > JavaScript

Ecshop JS脚本引入方法insert_scripts函数使用和新增

2015-05-14 18:24 459 查看
前段时间在写一个小项目中需要修改一些后台模板,由于用户前台模板insert_scripts函数是经过修改的,导致后台引入js脚本不通用,在不改变ecshop模板smarty机制的前提下,就需要另外再添加一个相同的函数来供后台模板调用JS脚本。这里记录下方法,以备忘记!

涉及修改文件:includes/cls_template.php、includes/lib_common.php

1、includes/cls_template.php中找到

function smarty_insert_scripts($args)

在该函数下方新添加一个smarty_insert_site_scripts函数
/*处理后台页面js文件的引入 add by g*/
function smarty_insert_site_scripts($args)
{
static $scripts = array();

$arr = explode(',', str_replace(' ', '', $args['files']));

$str = '';
foreach ($arr AS $val)
{
if (in_array($val, $scripts) == false)
{
$scripts[] = $val;
if ($val{0} == '.')
{
$str .= '<script type="text/javascript" src="' . $val . '"></script>';
}
else
{
$str .= '<script type="text/javascript" src="js/' . $val . '"></script>';
}
}
}

return $str;
}

继续在该文件下找到代码
case 'insert_scripts':
$t = $this->get_para(substr($tag, 15), 0);

return '<?php echo $this->smarty_insert_scripts(' . $this->make_array($t) . '); ?>';
break;


在该条件语句下方添加代码
//后台页面js文件引入方法 add by g
case 'insert_site_scripts':
$t = $this->get_para(substr($tag, 15), 0);

return '<?php echo $this->smarty_insert_site_scripts(' . $this->make_array($t) . '); ?>';
break;

2、includes/lib_common.php文件中同样找到
function smarty_insert_scripts($args)

在该函数下方同样新添加一个smarty_insert_site_scripts函数
/**
* 处理后台页面js文件的引入 add by g
*
* @access public
* @param string $files
* @return void
*/
function smarty_insert_site_scripts($args)
{
static $scripts = array();

$arr = explode(',', str_replace(' ','',$args['files']));

$str = '';
foreach ($arr AS $val)
{
if (in_array($val, $scripts) == false)
{
$scripts[] = $val;
if ($val{0} == '.')
{
$str .= '<script type="text/javascript" src="' . $val . '"></script>';
}
else
{
$str .= '<script type="text/javascript" src="js/' . $val . '"></script>';
}
}
}

return $str;
}

3、后台模板引用方法
{insert_site_scripts files="selectzone.js,colorselector.js"}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ecshop 后台相关