table('seller_shopinfo')." where ru_id = '".$adminru['ru_id']."'"; $shop_info=$db->getRow($sql); $sql="select count(*) from ".$ecs->table('seller_shopinfo')." where ru_id = '".$adminru['ru_id']."'"; $shop_id = $db->getOne($sql); if($shop_id < 1){ $lnk[] = array('text' => '设置店铺信息','href'=>'index.php?act=merchants_first'); sys_msg('请先设置店铺基本信息', 0, $lnk); exit; } /*------------------------------------------------------ */ //-- 店铺橱窗列表 /*------------------------------------------------------ */ if ($_REQUEST['act'] == 'list') { admin_priv('seller_store_other');//by kong /* 获得当前的模版的信息 */ $curr_template = $shop_info['seller_theme']; $curr_style = $shop_info['store_style']; /* 获得可用的模版 */ $available_templates = array(); $template_dir = @opendir(ROOT_PATH . 'seller_themes/'); while ($file = readdir($template_dir)) { if ($file != '.' && $file != '..' && is_dir(ROOT_PATH. 'seller_themes/' . $file) && $file != '.svn' && $file != 'index.htm') { $available_templates[] = get_seller_template_info($file); } } $available_templates = get_array_sort($available_templates, 'sort'); @closedir($template_dir); /* 获得可用的模版的可选风格数组 */ $templates_style = array(); if (count($available_templates) > 0) { foreach ($available_templates as $value) { $templates_style[$value['code']] = read_tpl_style($value['code'], 2); } } $db->query($sql); assign_query_info(); $smarty->assign('ur_here',$_LANG['template_manage']); $smarty->assign('curr_tpl_style', $curr_style); $smarty->assign('template_style', $templates_style); $smarty->assign('curr_template', get_seller_template_info($curr_template, $curr_style)); $smarty->assign('available_templates', $available_templates); $smarty->display('merchants_template_list.htm'); } /*------------------------------------------------------ */ //-- 安装模版 /*------------------------------------------------------ */ if ($_REQUEST['act'] == 'install') { $tpl_name = trim($_GET['tpl_name']); $tpl_fg=0; $tpl_fg = trim($_GET['tpl_fg']); $custom_dirname = $ecs->url(); //正则去掉js代码 $preg = "//i"; $template_info = get_seller_template_info($tpl_name); $sql = "UPDATE " .$GLOBALS['ecs']->table('seller_shopinfo'). " SET seller_theme = '$tpl_name', store_style = '$tpl_fg', win_goods_type = '" .$template_info['win_goods_type']. "'" . " WHERE ru_id = '".$adminru['ru_id']."'"; $step_install = $db->query($sql, 'SILENT'); //安装模板装修代码 //店铺头部装修 //检测是否设置过此模板的头部 $sql="select count(*) as count, content from ".$GLOBALS['ecs']->table('seller_shopheader')." where seller_theme='$tpl_name' and ru_id = '".$adminru['ru_id']."'"; $header_info=$GLOBALS['db']->getRow($sql); if($header_info['count']==0) { $header_path = ROOT_PATH.'seller_themes/'.$tpl_name.'/header.txt'; if(file_exists($header_path)) { $content=file_get_contents($header_path); $header_content=!empty($content)?preg_replace($preg,"",stripslashes($content)):''; $header_content=addslashes(iconv("GB2312", "UTF-8", $header_content)); if(strlen($header_content)>=3)//默认有3个字符 { $patterns = array(); $patterns[0] = '/themes/' ;; $replacements = array(); $replacements[0] = $custom_dirname . 'themes' ; $header_content = preg_replace($patterns, $replacements, $header_content); $sql="insert into".$GLOBALS['ecs']->table('seller_shopheader')."(content,seller_theme,ru_id) values ('$header_content','$tpl_name',".$adminru['ru_id'].")"; $GLOBALS['db']->query($sql); } } }elseif($header_info['content'] == ''){ $header_path = ROOT_PATH.'seller_themes/'.$tpl_name.'/header.txt'; if(file_exists($header_path)) { $content=file_get_contents($header_path); $header_content=!empty($content)?preg_replace($preg,"",stripslashes($content)):''; $header_content=addslashes(iconv("GB2312", "UTF-8", $header_content)); if(strlen($header_content)>=3)//默认有3个字符 { $patterns = array(); $patterns[0] = '/themes/' ;; $replacements = array(); $replacements[0] = $custom_dirname . 'themes' ; $header_content = preg_replace($patterns, $replacements, $header_content); $sql = "UPDATE " .$GLOBALS['ecs']->table('seller_shopheader'). " SET content = '$header_content' WHERE seller_theme = '$tpl_name' AND ru_id = '" .$adminru['ru_id']. "'"; $GLOBALS['db']->query($sql); } } } //模板幻灯片安装 //检测是否设置过此模板的幻灯片 $sql = "select count(id) from " . $GLOBALS['ecs']->table('seller_shopslide') . " where seller_theme='$tpl_name' and ru_id = '" . $adminru['ru_id'] . "'"; $count = $GLOBALS['db']->getOne($sql); if ($count == 0) { $silde_path = ROOT_PATH . 'seller_themes/' . $tpl_name . '/slides.txt'; if (file_exists($silde_path)) { $str = mc_read_txt($silde_path); $str = get_preg_replace($str); $slide_arr = explode(',', $str); if ($slide_arr) { $sql = "insert into " . $GLOBALS['ecs']->table('seller_shopslide') . " (ru_id,img_url,img_link,img_desc,is_show,seller_theme,install_img) values "; foreach ($slide_arr as $key => $val) { $val = addslashes($val); if ($key + 1 < count($slide_arr)) { $sql.="($adminru[ru_id],'$val','','',1,'$tpl_name', 1),"; } else { $sql.="($adminru[ru_id],'$val','','',1,'$tpl_name', 1)"; } } $GLOBALS['db']->query($sql); } } } //橱窗自定义装饰代码 //检测是否设置过此模板的自定义区域 $sql = "select count(*) from " . $GLOBALS['ecs']->table('seller_shopwindow') . " where seller_theme='$tpl_name' and win_type=0 and ru_id = '" . $adminru['ru_id'] . "'"; $count = $GLOBALS['db']->getOne($sql); if ($count == 0) { $custom_path = ROOT_PATH . 'seller_themes/' . $tpl_name . '/custom/'; $dir = @opendir($custom_path); while ($file = @readdir($dir)) { $file = iconv("GB2312", "UTF-8", $file); if ($file != '.' && $file != '..' && !is_dir(ROOT_PATH . 'seller_themes/' . $file)) { $content_path = ROOT_PATH . 'seller_themes/' . $tpl_name . '/custom/' . $file; $ext = pathinfo($content_path); $cus_name = substr($file, 0, strrpos($file, '.')); //文件名作为自定义区域的名称录入数据库 $win_order = str_replace('custom', '', $cus_name); if ($ext['extension'] == 'txt') { $content_path = iconv("UTF-8", "GB2312", $content_path); $content = file_get_contents($content_path, true); $custom_content = !empty($content) ? preg_replace($preg, "", stripslashes($content)) : ''; $custom_content = addslashes(iconv("GB2312", "UTF-8", $custom_content)); if (strlen($custom_content) >= 3) {//默认有3个字符 $patterns = array(); $patterns[0] = '/themes/'; ; $replacements = array(); $replacements[0] = $custom_dirname . 'themes'; $custom_content = preg_replace($patterns, $replacements, $custom_content); $sql = "insert into" . $GLOBALS['ecs']->table('seller_shopwindow') . "(win_type,win_name,win_order,ru_id,is_show,win_custom,seller_theme) values ('0','$cus_name','$win_order'," . $adminru['ru_id'] . ",1,'$custom_content','$tpl_name')"; $GLOBALS['db']->query($sql); } } } } @closedir($custom_path); } if ($step_install) { clear_all_files(); //清除模板编译文件 $error_msg = ''; make_json_result(read_style_and_tpl($tpl_name, $tpl_fg), ' 模板安装成功'); } else { make_json_error($db->error()); } } /*------------------------------------------------------ */ //-- 设置使用店铺默认模板 /*------------------------------------------------------ */ elseif($_REQUEST['act'] == 'user_default'){ $adminru = get_admin_ru_id(); $sql = "UPDATE " .$GLOBALS['ecs']->table('seller_shopinfo'). " SET seller_theme = '' WHERE ru_id = '" .$adminru['ru_id']. "'"; $GLOBALS['db']->query($sql); make_json_result('', ' 默认模板设置成功'); } /** * 读取模板风格列表 * * @access public * @param string $tpl_name 模版名称 * @param int $flag 1,AJAX数据;2,Array * @return */ function read_tpl_style($tpl_name, $flag=1) { if (empty($tpl_name) && $flag == 1) { return 0; } /* 获得可用的模版 */ $temp = ''; $start = 0; $available_templates = array(); $dir = ROOT_PATH . 'seller_themes/' . $tpl_name . '/'; $tpl_style_dir = @opendir($dir); while ($file = readdir($tpl_style_dir)) { if ($file != '.' && $file != '..' && is_file($dir . $file) && $file != '.svn' && $file != 'index.htm') { if (preg_match("/^(style|style_)(.*)*/i", $file)) // 取模板风格缩略图 { $start = strpos($file, '.'); $temp = substr($file, 0, $start); $temp = explode('_', $temp); if (count($temp) == 2) { $available_templates[] = $temp[1]; } } } } @closedir($tpl_style_dir); if ($flag == 1) { $ec = '
 
'; if (count($available_templates) > 0) { foreach ($available_templates as $value) { $tpl_info = get_template_info($tpl_name, $value); $ec .= '
 
'; unset($tpl_info); } } else { $ec = '0'; } return $ec; } elseif ($flag == 2) { $templates_temp = array(''); if (count($available_templates) > 0) { foreach ($available_templates as $value) { $templates_temp[] = $value; } } return $templates_temp; } } /** * 读取当前风格信息与当前模板风格列表 * * @access public * @param string $tpl_name 模版名称 * @param string $tpl_style 模版风格名 * @return */ function read_style_and_tpl($tpl_name, $tpl_style) { $style_info = array(); $style_info = get_seller_template_info($tpl_name, $tpl_style); $tpl_style_info = array(); $tpl_style_info = read_tpl_style($tpl_name, 2); $tpl_style_list = ''; if (count($tpl_style_info) > 1) { foreach ($tpl_style_info as $value) { $tpl_style_list .= ' '; } } $style_info['tpl_style'] = $tpl_style_list; return $style_info; } /** * 获得商家店铺模版的信息 wang店铺模板选择 * * @access private * @param string $template_name 模版名 * @param string $template_style 模版风格名 * @return array */ function get_seller_template_info($template_name, $template_style='') { if (empty($template_style) || $template_style == '') { $template_style = ''; } $info = array(); $ext = array('png', 'gif', 'jpg', 'jpeg'); $info['code'] = $template_name; $info['screenshot'] = ''; $info['stylename'] = $template_style; if ($template_style == '') { foreach ($ext AS $val) { if (file_exists('../seller_themes/' . $template_name . "/screenshot.$val")) { $info['screenshot'] = '../seller_themes/' . $template_name . "/screenshot.$val"; break; } } } else { foreach ($ext AS $val) { if (file_exists('../seller_themes/' . $template_name . "/screenshot_$template_style.$val")) { $info['screenshot'] = '../seller_themes/' . $template_name . "/screenshot_$template_style.$val"; break; } } } $info_path = '../seller_themes/' . $template_name . '/tpl_info.txt'; if ($template_style != '') { $info_path = '../seller_themes/' . $template_name . "/tpl_info_$template_style.txt"; } if (file_exists($info_path) && !empty($template_name)) { $custom_content=addslashes(iconv("GB2312", "UTF-8", $info_path)); $arr = array_slice(file($info_path), 0, 9); //ecmoban模板堂 --zhuo start $arr[1]=addslashes(iconv("GB2312", "UTF-8", $arr[1])); $arr[2]=addslashes(iconv("GB2312", "UTF-8", $arr[2])); $arr[3]=addslashes(iconv("GB2312", "UTF-8", $arr[3])); $arr[4]=addslashes(iconv("GB2312", "UTF-8", $arr[4])); $arr[5]=addslashes(iconv("GB2312", "UTF-8", $arr[5])); $arr[6]=addslashes(iconv("GB2312", "UTF-8", $arr[6])); $arr[7]=addslashes(iconv("GB2312", "UTF-8", $arr[7])); $arr[8]=addslashes(iconv("GB2312", "UTF-8", $arr[8])); //ecmoban模板堂 --zhuo end $template_name = explode(':', $arr[1]); $template_uri = explode(':', $arr[2]); $template_desc = explode(':', $arr[3]); $template_version = explode(':', $arr[4]); $template_author = explode(':', $arr[5]); $author_uri = explode(':', $arr[6]); $tpl_dwt_code = explode(':', $arr[7]); $win_goods_type = explode(':', $arr[8]); $info['name'] = isset($template_name[1]) ? trim($template_name[1]) : ''; $info['uri'] = isset($template_uri[1]) ? trim($template_uri[1]) : ''; $info['desc'] = isset($template_desc[1]) ? trim($template_desc[1]) : ''; $info['version'] = isset($template_version[1]) ? trim($template_version[1]) : ''; $info['author'] = isset($template_author[1]) ? trim($template_author[1]) : ''; $info['author_uri'] = isset($author_uri[1]) ? trim($author_uri[1]) : ''; $info['dwt_code'] = isset($tpl_dwt_code[1]) ? trim($tpl_dwt_code[1]) : ''; $info['win_goods_type'] = isset($win_goods_type[1]) ? trim($win_goods_type[1]) : ''; $info['sort'] = substr($info['code'], -1, 1); } else { $info['name'] = ''; $info['uri'] = ''; $info['desc'] = ''; $info['version'] = ''; $info['author'] = ''; $info['author_uri'] = ''; $info['dwt_code'] = ''; $info['sort'] = ''; } return $info; } //回车替换 function get_preg_replace($str, $type = '|'){ $str = preg_replace("/\r\n/",",",$str); //替换空格回车换行符 为 英文逗号 $str = get_str_trim($str); $str = get_str_trim($str, $type); return $str; } function get_str_trim($str, $type = ','){ $str = explode($type,$str); $str2 = ''; for($i=0; $i