You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
542 lines
19 KiB
542 lines
19 KiB
<!-- $Id: topic_edit.htm 16992 2010-01-19 08:45:49Z wangleisvn $ -->
|
|
|
|
{include file="pageheader.htm"}
|
|
{insert_scripts files="../js/utils.js,selectzone.js,colorselector_topic.js"}
|
|
<script type="text/javascript" src="../js/calendar.php?lang={$cfg_lang}"></script>
|
|
<link href="../js/calendar/calendar.css" rel="stylesheet" type="text/css" />
|
|
{if $warning}
|
|
<ul style="padding:0; margin: 0; list-style-type:none; color: #CC0000;">
|
|
<li style="border: 1px solid #CC0000; background: #FFFFCC; padding: 10px; margin-bottom: 5px;" >{$warning}</li>
|
|
</ul>
|
|
{/if}
|
|
<!-- start goods form -->
|
|
<div class="tab-div">
|
|
<!-- tab bar -->
|
|
<div id="tabbar-div">
|
|
<p> <span class="tab-front" id="general-tab">{$lang.tab_general}</span> <span class="tab-back" id="goods-tab">{$lang.tab_goods}</span> <span class="tab-back" id="desc-tab">{$lang.tab_desc}</span><span class="tab-back" id="advanced-tab">{$lang.tab_advanced}</span> </p>
|
|
</div>
|
|
<!-- tab body -->
|
|
<div id="tabbody-div">
|
|
<form action="topic.php" method="post" name="theForm" enctype="multipart/form-data">
|
|
<table cellspacing="1" id="general-table" cellpadding="3" width="100%">
|
|
<tr>
|
|
<td class="label">{$lang.topic_title}</td>
|
|
<td><input name="topic_name" type="text" value="{$topic.title}" size="40" /></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="label">{$lang.lable_topic_keywords}</td>
|
|
<td><textarea name="keywords" id="keywords" cols="40" rows="3">{$topic.keywords}</textarea></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="label">{$lang.lable_topic_description}</td>
|
|
<td><textarea name="description" id="description" cols="40" rows="5">{$topic.description}</textarea></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="label">{$lang.lable_topic_type}</td>
|
|
<td><select name="topic_type" id="topic_type" onchange="showMedia(this.value)">
|
|
<option value='0'>{$lang.top_img}</option>
|
|
<option value='1'>{$lang.top_flash}</option>
|
|
<option value='2'>{$lang.top_html}</option>
|
|
</select></td>
|
|
</tr>
|
|
<tbody id="content_01">
|
|
<tr>
|
|
<td class="label">
|
|
<a href="javascript:showNotice('title_upload');" title="{$lang.form_notice}">
|
|
<img src="images/notice.gif" width="14" height="14" border="0" alt="{$lang.form_notice}"></a>{$lang.lable_upload}</td>
|
|
<td>
|
|
<input type='file' name='topic_img' id='topic_img' size='35' />
|
|
<br /><span class="notice-span" {if $help_open}style="display:block" {else} style="display:none" {/if} id="title_upload">{$width_height}</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="label">{$lang.lable_from_web}</td>
|
|
<td><input type="text" name="url" id="url" value="" size="35" /></td>
|
|
</tr>
|
|
</tbody>
|
|
|
|
<tbody id="edit_img">
|
|
<tr>
|
|
<td class="label"> </td>
|
|
<td><input type="text" name="img_url" id="img_url" value="{$topic.topic_img}" size="35" readonly="readonly"/></td>
|
|
</tr>
|
|
</tbody>
|
|
|
|
<tbody id="content_23">
|
|
<tr>
|
|
<td class="label">{$lang.lable_content}</td>
|
|
<td><textarea name="htmls" id="htmls" cols="50" rows="7">{$topic.htmls}</textarea></td>
|
|
</tr>
|
|
</tbody>
|
|
|
|
<tr>
|
|
<td class="label"><a href="javascript:showNotice('title_pic_upload');" title="{$lang.form_notice}">
|
|
<img src="images/notice.gif" width="14" height="14" border="0" alt="{$lang.form_notice}"></a>{$lang.lable_title_upload}</td>
|
|
<td><input type='file' name='title_pic' id='title_pic' size='35' />
|
|
<br /><span class="notice-span" {if $help_open}style="display:block" {else} style="display:none" {/if} id="title_pic_upload">{$title_width_height}</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="label">{$lang.lable_from_web}</td>
|
|
<td><input type="text" name="title_url" id="title_url" value="" size="35" /></td>
|
|
</tr>
|
|
|
|
<tbody id="edit_title_img">
|
|
<tr>
|
|
<td class="label"> </td>
|
|
<td><input type="text" name="title_img_url" id="title_img_url" value="{$topic.title_pic}" size="35" readonly="readonly"/></td>
|
|
</tr>
|
|
</tbody>
|
|
|
|
<tr>
|
|
<td class="label">{$lang.lable_base_style}</td>
|
|
<td><input type="text" name="base_style" id="base_style" value="{$topic.base_style}" size="7" maxlength="6" style="float:left;color:{$goods_name_color};" size="30"/><div style="background-color:#{$topic.base_style};float:left;margin-left:2px;" id="font_color" onclick="ColorSelecter.Show(this);"><img src="images/color_selecter.gif" style="margin-top:-1px;" /></div></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="label">{$lang.cycle}</td>
|
|
<td><input name="start_time" type="text" id="start_time" size="12" value='{$topic.start_time}' readonly="readonly" />
|
|
<input name="selbtn1" type="button" id="selbtn1" onclick="return showCalendar('start_time', '%Y-%m-%d', false, false, 'selbtn1');" value="{$lang.btn_select}" class="button"/>
|
|
-
|
|
<input name="end_time" type="text" id="end_time" size="12" value='{$topic.end_time}' readonly="readonly" />
|
|
<input name="selbtn2" type="button" id="selbtn2" onclick="return showCalendar('end_time', '%Y-%m-%d', false, false, 'selbtn2');" value="{$lang.btn_select}" class="button"/></td>
|
|
</tr>
|
|
</table>
|
|
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0" id="goods-table" style="display:none;" >
|
|
<tr>
|
|
<td colspan="4" class="label" style="text-align:left">{$lang.topic_class}
|
|
<select name="topic_class_list" id="topic_class_list" onchange="showTargetList()">
|
|
</select>
|
|
<input name="new_cat_name" type="text" id="new_cat_name" />
|
|
<input name="create_class_btn" type="button" id="create_class_btn" value="{$lang.add}" class="button" onclick="addClass()" />
|
|
<input name="delete_class_btn" type="button" id="delete_class_btn" value="{$lang.remove}" class="button" onclick="deleteClass()" /> </td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3"><img src="images/icon_search.gif" width="26" height="22" border="0" alt="SEARCH" />
|
|
<select name="cat_id2">
|
|
<option value="0">{$lang.all_category}</option>
|
|
{$cat_list}
|
|
</select>
|
|
<select name="brand_id2">
|
|
<option value="0">{$lang.all_brand}</option>
|
|
{html_options options=$brand_list}
|
|
</select>
|
|
<input type="text" name="keyword2"/>
|
|
<input name="button" type="button" class="button" onclick="searchGoods('cat_id2', 'brand_id2', 'keyword2')" value="{$lang.button_search}" /> </td>
|
|
</tr>
|
|
<!-- 商品列表 -->
|
|
<tr height="37">
|
|
<th>{$lang.all_goods}</th>
|
|
<th>{$lang.handler}</th>
|
|
<th>{$lang.selected_goods}</th>
|
|
</tr>
|
|
<tr>
|
|
<td width="42%"><select name="source_select" id="source_select" size="20" style="width:100%;height:300px;" ondblclick="addItem(this)">
|
|
</select> </td>
|
|
<td align="center"><p>
|
|
<input name="button" type="button" class="button" onclick="addAllItem(document.getElementById('source_select'))" value=">>" />
|
|
</p>
|
|
<p>
|
|
<input name="button" type="button" class="button" onclick="addItem(document.getElementById('source_select'))" value=">" />
|
|
</p>
|
|
<p>
|
|
<input name="button" type="button" class="button" onclick="removeItem(document.getElementById('target_select'))" value="<" />
|
|
</p>
|
|
<p>
|
|
<input name="button" type="button" class="button" value="<<" onclick="removeItem(document.getElementById('target_select'), true)" />
|
|
</p></td>
|
|
<td width="42%"><select name="target_select" id="target_select" size="20" style="width:100%;height:300px" multiple="multiple">
|
|
</select> </td>
|
|
</tr>
|
|
</table>
|
|
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0" id="desc-table" style="display:none;">
|
|
<tr>
|
|
<td>{$FCKeditor}</td>
|
|
</tr>
|
|
</table>
|
|
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0" id="advanced-table" style="display:none;">
|
|
<tr>
|
|
<td class="label"><a href="javascript:showNotice('noticeTemplateFile');" title="{$lang.form_notice}"><img src="images/notice.gif" width="14" height="14" border="0" alt="{$lang.form_notice}"></a>{$lang.template_file}</td>
|
|
<td ><input name="topic_template_file" type="text" id="topic_template_file" value="{$topic.template}" size="40" />
|
|
<span class="notice-span" {if $help_open}style="display:block" {else} style="display:none" {/if} id="noticeTemplateFile">{$lang.notice_template_file}</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="label"><a href="javascript:showNotice('noticeCss');" title="{$lang.form_notice}"><img src="images/notice.gif" width="14" height="14" border="0" alt="{$lang.form_notice}"></a>{$lang.style_sheet}</td>
|
|
<td ><textarea name="topic_css" id="topic_css" cols="40" rows="5">{$topic.css}</textarea>
|
|
<span class="notice-span" {if $help_open}style="display:block" {else} style="display:none" {/if} id="noticeCss">{$lang.notice_css}</span>
|
|
<div> <a href="javascript:chanageSize(3,'topic_css');">[+]</a> <a href="javascript:chanageSize(-3,'topic_css');">[-]</a> </div></td>
|
|
</tr>
|
|
</table>
|
|
<div class="button-div">
|
|
<input name="topic_data" type="hidden" id="topic_data" value='' />
|
|
<input name="act" type="hidden" id="act" value='{$act}' />
|
|
<input name="topic_id" type="hidden" id="topic_id" value='{$topic.topic_id}' />
|
|
<input type="submit" name="Submit" value="{$lang.button_submit}" class="button" onclick="return checkForm()"/>
|
|
<input type="reset" name="Reset" value="{$lang.button_reset}" class="button"/>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
{insert_scripts files="validator.js,tab.js"}
|
|
<script type="Text/Javascript" language="JavaScript">
|
|
<!--
|
|
var data = '{$topic.data}';
|
|
var defaultClass = "{$lang.default_class}";
|
|
{literal}
|
|
var myTopic = Object();
|
|
var status_code = "{$topic.topic_type}"; // 初始页面参数
|
|
|
|
onload = function()
|
|
{
|
|
|
|
// 开始检查订单
|
|
startCheckOrder();
|
|
var classList = document.getElementById("topic_class_list");
|
|
|
|
// 初始化表单项
|
|
initialize_form(status_code);
|
|
|
|
if (data == "")
|
|
{
|
|
|
|
classList.innerHTML = "";
|
|
myTopic['default'] = new Array();
|
|
var newOpt = document.createElement("OPTION");
|
|
newOpt.value = -1;
|
|
newOpt.text = defaultClass;
|
|
classList.options.add(newOpt);
|
|
return;
|
|
}
|
|
var temp = $.evalJSON(data);
|
|
|
|
var counter = 0;
|
|
for (var k in temp)
|
|
{
|
|
if(typeof(myTopic[k]) != "function")
|
|
{
|
|
myTopic[k] = temp[k];
|
|
var newOpt = document.createElement("OPTION");
|
|
newOpt.value = k == "default" ? -1 : counter;
|
|
newOpt.text = k == "default" ? defaultClass : k;
|
|
classList.options.add(newOpt);
|
|
counter++;
|
|
}
|
|
}
|
|
showTargetList();
|
|
}
|
|
|
|
/**
|
|
* 初始化表单项目
|
|
*/
|
|
function initialize_form(status_code)
|
|
{
|
|
var nt = navigator_type();
|
|
var display_yes = (nt == 'IE') ? 'block' : 'table-row-group';
|
|
status_code = parseInt(status_code);
|
|
status_code = status_code ? status_code : 0;
|
|
document.getElementById('topic_type').options[status_code].selected = true;
|
|
|
|
switch (status_code)
|
|
{
|
|
case 0 :
|
|
document.getElementById('content_01').style.display = display_yes;
|
|
document.getElementById('content_23').style.display = 'none';
|
|
document.getElementById('title_upload').innerHTML = '{$width_height}';
|
|
document.getElementById('edit_img').style.display = display_yes;
|
|
break;
|
|
|
|
case 1 :
|
|
document.getElementById('content_01').style.display = display_yes;
|
|
document.getElementById('content_23').style.display = 'none';
|
|
document.getElementById('title_upload').innerHTML = '{$lang.tips_upload_notice}';
|
|
document.getElementById('edit_img').style.display = display_yes;
|
|
break;
|
|
|
|
case 2 :
|
|
document.getElementById('content_01').style.display = 'none';
|
|
document.getElementById('content_23').style.display = display_yes;
|
|
document.getElementById('edit_img').style.display = 'none';
|
|
break;
|
|
}
|
|
|
|
{if $isadd eq 'isadd'}
|
|
document.getElementById('edit_img').style.display = 'none';
|
|
document.getElementById('edit_title_img').style.display = 'none';
|
|
{/if}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* 类型表单项切换
|
|
*/
|
|
function showMedia(code)
|
|
{
|
|
var obj = document.getElementById('topic_type');
|
|
|
|
initialize_form(code);
|
|
}
|
|
|
|
function checkForm()
|
|
{
|
|
var validator = new Validator('theForm');
|
|
validator.required('topic_name', topic_name_empty);
|
|
validator.required('start_time', start_time_empty);
|
|
validator.required('end_time', end_time_empty);
|
|
validator.islt('start_time', 'end_time', start_lt_end);
|
|
|
|
document.getElementById("topic_data").value = $.toJSON(myTopic);
|
|
|
|
return validator.passed();
|
|
}
|
|
|
|
function chanageSize(num, id)
|
|
{
|
|
var obj = document.getElementById(id);
|
|
if (obj.tagName == "TEXTAREA")
|
|
{
|
|
var tmp = parseInt(obj.rows);
|
|
tmp += num;
|
|
if (tmp <= 0) return;
|
|
obj.rows = tmp;
|
|
}
|
|
}
|
|
|
|
function searchGoods(catId, brandId, keyword)
|
|
{
|
|
var elements = document.forms['theForm'].elements;
|
|
var filters = new Object;
|
|
filters.cat_id = elements[catId].value;
|
|
filters.brand_id = elements[brandId].value;
|
|
filters.keyword = Utils.trim(elements[keyword].value);
|
|
Ajax.call("topic.php?act=get_goods_list", filters, function(result)
|
|
{
|
|
clearOptions("source_select");
|
|
var obj = document.getElementById("source_select");
|
|
for (var i=0; i < result.content.length; i++)
|
|
{
|
|
var opt = document.createElement("OPTION");
|
|
opt.value = result.content[i].value;
|
|
opt.text = result.content[i].text;
|
|
opt.id = result.content[i].data;
|
|
obj.options.add(opt);
|
|
}
|
|
}, "GET", "JSON");
|
|
}
|
|
|
|
function clearOptions(id)
|
|
{
|
|
var obj = document.getElementById(id);
|
|
while(obj.options.length>0)
|
|
{
|
|
obj.remove(0);
|
|
}
|
|
}
|
|
|
|
function addAllItem(sender)
|
|
{
|
|
if(sender.options.length == 0) return false;
|
|
for (var i = 0; i < sender.options.length; i++)
|
|
{
|
|
var opt = sender.options[i];
|
|
addItem(null, opt.value, opt.text);
|
|
}
|
|
}
|
|
|
|
function addItem(sender, value, text)
|
|
{
|
|
var target_select = document.getElementById("target_select");
|
|
var sortList = document.getElementById("topic_class_list");
|
|
var newOpt = document.createElement("OPTION");
|
|
if (sender != null)
|
|
{
|
|
if(sender.options.length == 0) return false;
|
|
var option = sender.options[sender.selectedIndex];
|
|
newOpt.value = option.value;
|
|
newOpt.text = option.text;
|
|
}
|
|
else
|
|
{
|
|
newOpt.value = value;
|
|
newOpt.text = text;
|
|
}
|
|
if (targetItemExist(newOpt)) return false;
|
|
if (target_select.length>=50)
|
|
{
|
|
alert(item_upper_limit);
|
|
}
|
|
target_select.options.add(newOpt);
|
|
var key = sortList.options[sortList.selectedIndex].value == "-1" ? "default" : sortList.options[sortList.selectedIndex].text;
|
|
|
|
if(!myTopic[key])
|
|
{
|
|
myTopic[key] = new Array();
|
|
}
|
|
myTopic[key].push(newOpt.text + "|" + newOpt.value);
|
|
}
|
|
|
|
// 商品是否存在
|
|
function targetItemExist(opt)
|
|
{
|
|
var options = document.getElementById("target_select").options;
|
|
for ( var i = 0; i < options.length; i++)
|
|
{
|
|
if(options[i].text == opt.text && options[i].value == opt.value)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function addClass()
|
|
{
|
|
var obj = document.getElementById("topic_class_list");
|
|
var newClassName = document.getElementById("new_cat_name");
|
|
var regExp = /^[a-zA-Z0-9]+$/;
|
|
if (newClassName.value == ""){
|
|
alert(sort_name_empty);
|
|
return;
|
|
}
|
|
for(var i=0;i < obj.options.length; i++)
|
|
{
|
|
if(obj.options[i].text == newClassName.value)
|
|
{
|
|
alert(sort_name_exist);
|
|
newClassName.focus();
|
|
return;
|
|
}
|
|
}
|
|
var className = document.getElementById("new_cat_name").value;
|
|
document.getElementById("new_cat_name").value = "";
|
|
var newOpt = document.createElement("OPTION");
|
|
newOpt.value = obj.options.length;
|
|
newOpt.text = className;
|
|
obj.options.add(newOpt);
|
|
newOpt.selected = true;
|
|
if ( obj.options[0].value == "-1")
|
|
{
|
|
if (myTopic["default"].length > 0)
|
|
alert(move_item_confirm.replace("className",className));
|
|
myTopic[className] = myTopic["default"];
|
|
delete myTopic["default"];
|
|
obj.remove(0);
|
|
}
|
|
else
|
|
{
|
|
myTopic[className] = new Array();
|
|
clearOptions("target_select");
|
|
}
|
|
}
|
|
|
|
function deleteClass()
|
|
{
|
|
var classList = document.getElementById("topic_class_list");
|
|
if (classList.value != "-1")
|
|
{
|
|
delete myTopic[classList.options[classList.selectedIndex].text];
|
|
classList.remove(classList.selectedIndex);
|
|
clearOptions("target_select");
|
|
}
|
|
if (classList.options.length < 1)
|
|
{
|
|
var newOpt = document.createElement("OPTION");
|
|
newOpt.value = "-1";
|
|
newOpt.text = defaultClass;
|
|
classList.options.add(newOpt);
|
|
myTopic["default"] = new Array();
|
|
}
|
|
}
|
|
|
|
function showTargetList()
|
|
{
|
|
clearOptions("target_select");
|
|
var obj = document.getElementById("topic_class_list");
|
|
var index = obj.options[obj.selectedIndex].text;
|
|
if (index == defaultClass)
|
|
{
|
|
index = "default";
|
|
}
|
|
var options = myTopic[index];
|
|
|
|
for ( var i = 0; i < options.length; i++)
|
|
{
|
|
var newOpt = document.createElement("OPTION");
|
|
var arr = options[i].split('|');
|
|
newOpt.value = arr[1];
|
|
newOpt.text = arr[0];
|
|
document.getElementById("target_select").options.add(newOpt);
|
|
}
|
|
}
|
|
|
|
function removeItem(sender,isAll)
|
|
{
|
|
var classList = document.getElementById("topic_class_list");
|
|
var key = 'default';
|
|
if (classList.value != "-1")
|
|
{
|
|
key = classList.options[classList.selectedIndex].text;
|
|
}
|
|
var arr = myTopic[key];
|
|
if (!isAll)
|
|
{
|
|
var goodsName = sender.options[sender.selectedIndex].text;
|
|
for (var j = 0; j < arr.length; j++)
|
|
{
|
|
if (arr[j].indexOf(goodsName) >= 0)
|
|
{
|
|
myTopic[key].splice(j,1);
|
|
}
|
|
}
|
|
|
|
for (var i = 0; i < sender.options.length;)
|
|
{
|
|
if (sender.options[i].selected) {
|
|
sender.remove(i);
|
|
myTopic[key].splice(i, 0);
|
|
}
|
|
else
|
|
{
|
|
i++;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
myTopic[key] = new Array();
|
|
sender.innerHTML = "";
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 判断当前浏览器类型
|
|
*/
|
|
function navigator_type()
|
|
{
|
|
var type_name = '';
|
|
|
|
if (navigator.userAgent.indexOf('MSIE') != -1)
|
|
{
|
|
type_name = 'IE'; // IE
|
|
}
|
|
else if(navigator.userAgent.indexOf('Firefox') != -1)
|
|
{
|
|
type_name = 'FF'; // FF
|
|
}
|
|
else if(navigator.userAgent.indexOf('Opera') != -1)
|
|
{
|
|
type_name = 'Opera'; // Opera
|
|
}
|
|
else if(navigator.userAgent.indexOf('Safari') != -1)
|
|
{
|
|
type_name = 'Safari'; // Safari
|
|
}
|
|
else if(navigator.userAgent.indexOf('Chrome') != -1)
|
|
{
|
|
type_name = 'Chrome'; // Chrome
|
|
}
|
|
|
|
return type_name;
|
|
}
|
|
{/literal}
|
|
//-->
|
|
</script>
|
|
{include file="pagefooter.htm"}
|
|
|