Server : Apache
System : Linux iZ2vcgyutqttsd1p850kl8Z 3.10.0-1160.92.1.el7.x86_64 #1 SMP Tue Jun 20 11:48:01 UTC 2023 x86_64
User : www ( 1000)
PHP Version : 5.6.40
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/saimikebio.com/mobile/ecshopjcw/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/saimikebio.com/mobile/ecshopjcw/attribute.php
<?php



/**

 * ECSHOP 属性规格管理

 * ============================================================================

 * * 版权所有 2005-2012 上海商派网络科技有限公司,并保留所有权利。

 * 网站地址: http://www.ecshop.com;

 * ----------------------------------------------------------------------------

 * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和

 * 使用;不允许对程序代码以任何形式任何目的的再发布。

 * ============================================================================

 * $Author: liubo $

 * $Id: attribute.php 17217 2011-01-19 06:29:08Z liubo $

*/



define('IN_ECTOUCH', true);



require(dirname(__FILE__) . '/includes/init.php');



/* act操作项的初始化 */

$_REQUEST['act'] = trim($_REQUEST['act']);

if (empty($_REQUEST['act']))

{

    $_REQUEST['act'] = 'list';

}



$exc = new exchange($ecs->table("attribute"), $db, 'attr_id', 'attr_name');



/*------------------------------------------------------ */

//-- 属性列表

/*------------------------------------------------------ */

if ($_REQUEST['act'] == 'list')

{

    $goods_type = isset($_GET['goods_type']) ? intval($_GET['goods_type']) : 0;



    $smarty->assign('ur_here',          $_LANG['09_attribute_list']);

    $smarty->assign('action_link',      array('href' => 'attribute.php?act=add&goods_type='.$goods_type , 'text' => $_LANG['10_attribute_add']));

    $smarty->assign('goods_type_list',  goods_type_list($goods_type)); // 取得商品类型

    $smarty->assign('full_page',        1);



    $list = get_attrlist();



    $smarty->assign('attr_list',    $list['item']);

    $smarty->assign('filter',       $list['filter']);

    $smarty->assign('record_count', $list['record_count']);

    $smarty->assign('page_count',   $list['page_count']);



    $sort_flag  = sort_flag($list['filter']);

    $smarty->assign($sort_flag['tag'], $sort_flag['img']);



    /* 显示模板 */

    assign_query_info();

    $smarty->display('attribute_list.htm');

}



/*------------------------------------------------------ */

//-- 排序、翻页

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'query')

{

    $list = get_attrlist();



    $smarty->assign('attr_list',    $list['item']);

    $smarty->assign('filter',       $list['filter']);

    $smarty->assign('record_count', $list['record_count']);

    $smarty->assign('page_count',   $list['page_count']);



    $sort_flag  = sort_flag($list['filter']);

    $smarty->assign($sort_flag['tag'], $sort_flag['img']);



    make_json_result($smarty->fetch('attribute_list.htm'), '',

        array('filter' => $list['filter'], 'page_count' => $list['page_count']));

}



/*------------------------------------------------------ */

//-- 添加/编辑属性

/*------------------------------------------------------ */

elseif ($_REQUEST['act'] == 'add' || $_REQUEST['act'] == 'edit')

{

    /* 检查权限 */

    admin_priv('attr_manage');



    /* 添加还是编辑的标识 */

    $is_add = $_REQUEST['act'] == 'add';

    $smarty->assign('form_act', $is_add ? 'insert' : 'update');



    /* 取得属性信息 */

    if ($is_add)

    {

        $goods_type = isset($_GET['goods_type']) ? intval($_GET['goods_type']) : 0;

        $attr = array(

            'attr_id' => 0,

            'cat_id' => $goods_type,

            'attr_name' => '',

            'attr_input_type' => 0,

            'attr_index'  => 0,

            'attr_values' => '',

            'attr_type' => 0,

            'is_linked' => 0,

        );

    }

    else

    {

        $sql = "SELECT * FROM " . $ecs->table('attribute') . " WHERE attr_id = '$_REQUEST[attr_id]'";

        $attr = $db->getRow($sql);

    }



    $smarty->assign('attr', $attr);

    $smarty->assign('attr_groups', get_attr_groups($attr['cat_id']));



    /* 取得商品分类列表 */

    $smarty->assign('goods_type_list', goods_type_list($attr['cat_id']));



    /* 模板赋值 */

    $smarty->assign('ur_here', $is_add ?$_LANG['10_attribute_add']:$_LANG['52_attribute_add']);

    $smarty->assign('action_link', array('href' => 'attribute.php?act=list', 'text' => $_LANG['09_attribute_list']));



    /* 显示模板 */

    assign_query_info();

    $smarty->display('attribute_info.htm');

}



/*------------------------------------------------------ */

//-- 插入/更新属性

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'insert' || $_REQUEST['act'] == 'update')

{

    /* 检查权限 */

    admin_priv('attr_manage');



    /* 插入还是更新的标识 */

    $is_insert = $_REQUEST['act'] == 'insert';



    /* 检查名称是否重复 */

    $exclude = empty($_POST['attr_id']) ? 0 : intval($_POST['attr_id']);

    if (!$exc->is_only('attr_name', $_POST['attr_name'], $exclude, " cat_id = '$_POST[cat_id]'"))

    {

        sys_msg($_LANG['name_exist'], 1);

    }



    $cat_id = $_REQUEST['cat_id'];



    /* 取得属性信息 */

    $attr = array(

        'cat_id'          => $_POST['cat_id'],

        'attr_name'       => $_POST['attr_name'],

        'attr_index'      => $_POST['attr_index'],

        'attr_input_type' => $_POST['attr_input_type'],

        'is_linked'       => $_POST['is_linked'],

        'attr_values'     => isset($_POST['attr_values']) ? $_POST['attr_values'] : '',

        'attr_type'       => empty($_POST['attr_type']) ? '0' : intval($_POST['attr_type']),

        'attr_group'      => isset($_POST['attr_group']) ? intval($_POST['attr_group']) : 0

    );



    /* 入库、记录日志、提示信息 */

    if ($is_insert)

    {

        $db->autoExecute($ecs->table('attribute'), $attr, 'INSERT');

        admin_log($_POST['attr_name'], 'add', 'attribute');

        $links = array(

            array('text' => $_LANG['add_next'], 'href' => '?act=add&goods_type=' . $_POST['cat_id']),

            array('text' => $_LANG['back_list'], 'href' => '?act=list'),

        );

        sys_msg(sprintf($_LANG['add_ok'], $attr['attr_name']), 0, $links);

    }

    else

    {

        $db->autoExecute($ecs->table('attribute'), $attr, 'UPDATE', "attr_id = '$_POST[attr_id]'");

        admin_log($_POST['attr_name'], 'edit', 'attribute');

        $links = array(

            array('text' => $_LANG['back_list'], 'href' => '?act=list&amp;goods_type='.$_POST['cat_id'].''),

        );

        sys_msg(sprintf($_LANG['edit_ok'], $attr['attr_name']), 0, $links);

    }

}



/*------------------------------------------------------ */

//-- 删除属性(一个或多个)

/*------------------------------------------------------ */

elseif ($_REQUEST['act'] == 'batch')

{

    /* 检查权限 */

    admin_priv('attr_manage');



    /* 取得要操作的编号 */

    if (isset($_POST['checkboxes']))

    {

        $count = count($_POST['checkboxes']);

        $ids   = isset($_POST['checkboxes']) ? join(',', $_POST['checkboxes']) : 0;



        $sql = "DELETE FROM " . $ecs->table('attribute') . " WHERE attr_id " . db_create_in($ids);

        $db->query($sql);



        $sql = "DELETE FROM " . $ecs->table('goods_attr') . " WHERE attr_id " . db_create_in($ids);

        $db->query($sql);



        /* 记录日志 */

        admin_log('', 'batch_remove', 'attribute');

        clear_cache_files();



        $link[] = array('text' => $_LANG['back_list'], 'href' => 'attribute.php?act=list');

        sys_msg(sprintf($_LANG['drop_ok'], $count), 0, $link);

    }

    else

    {

        $link[] = array('text' => $_LANG['back_list'], 'href' => 'attribute.php?act=list');

        sys_msg($_LANG['no_select_arrt'], 0, $link);

    }

}



/*------------------------------------------------------ */

//-- 编辑属性名称

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'edit_attr_name')

{

    check_authz_json('attr_manage');



    $id = intval($_POST['id']);

    $val = json_str_iconv(trim($_POST['val']));



    /* 取得该属性所属商品类型id */

    $cat_id = $exc->get_name($id, 'cat_id');



    /* 检查属性名称是否重复 */

    if (!$exc->is_only('attr_name', $val, $id, " cat_id = '$cat_id'"))

    {

        make_json_error($_LANG['name_exist']);

    }



    $exc->edit("attr_name='$val'", $id);



    admin_log($val, 'edit', 'attribute');



    make_json_result(stripslashes($val));

}



/*------------------------------------------------------ */

//-- 编辑排序序号

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'edit_sort_order')

{

    check_authz_json('attr_manage');



    $id = intval($_POST['id']);

    $val = intval($_POST['val']);



    $exc->edit("sort_order='$val'", $id);



    admin_log(addslashes($exc->get_name($id)), 'edit', 'attribute');



    make_json_result(stripslashes($val));

}



/*------------------------------------------------------ */

//-- 删除商品属性

/*------------------------------------------------------ */

elseif ($_REQUEST['act'] == 'remove')

{

    check_authz_json('attr_manage');



    $id = intval($_GET['id']);



    $db->query("DELETE FROM " .$ecs->table('attribute'). " WHERE attr_id='$id'");

    $db->query("DELETE FROM " .$ecs->table('goods_attr'). " WHERE attr_id='$id'");



    $url = 'attribute.php?act=query&' . str_replace('act=remove', '', $_SERVER['QUERY_STRING']);



    ecs_header("Location: $url\n");

    exit;

}



/*------------------------------------------------------ */

//-- 获取某属性商品数量

/*------------------------------------------------------ */

elseif ($_REQUEST['act'] == 'get_attr_num')

{

    check_authz_json('attr_manage');



    $id = intval($_GET['attr_id']);



    $sql = "SELECT COUNT(*) ".

           " FROM " . $ecs->table('goods_attr') . " AS a, ".

           $ecs->table('goods') . " AS g ".

           " WHERE g.goods_id = a.goods_id AND g.is_delete = 0 AND attr_id = '$id' ";



    $goods_num = $db->getOne($sql);



    if ($goods_num > 0)

    {

        $drop_confirm = sprintf($_LANG['notice_drop_confirm'], $goods_num);

    }

    else

    {

        $drop_confirm = $_LANG['drop_confirm'];

    }



    make_json_result(array('attr_id'=>$id, 'drop_confirm'=>$drop_confirm));

}



/*------------------------------------------------------ */

//-- 获得指定商品类型下的所有属性分组

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'get_attr_groups')

{

    check_authz_json('attr_manage');



    $cat_id = intval($_GET['cat_id']);

    $groups = get_attr_groups($cat_id);



    make_json_result($groups);

}



/*------------------------------------------------------ */

//-- PRIVATE FUNCTIONS

/*------------------------------------------------------ */



/**

 * 获取属性列表

 *

 * @return  array

 */

function get_attrlist()

{

    /* 查询条件 */

    $filter = array();

    $filter['goods_type'] = empty($_REQUEST['goods_type']) ? 0 : intval($_REQUEST['goods_type']);

    $filter['sort_by']    = empty($_REQUEST['sort_by']) ? 'sort_order' : trim($_REQUEST['sort_by']);

    $filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'DESC' : trim($_REQUEST['sort_order']);



    $where = (!empty($filter['goods_type'])) ? " WHERE a.cat_id = '$filter[goods_type]' " : '';



    $sql = "SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('attribute') . " AS a $where";

    $filter['record_count'] = $GLOBALS['db']->getOne($sql);



    /* 分页大小 */

    $filter = page_and_size($filter);



    /* 查询 */

    $sql = "SELECT a.*, t.cat_name " .

            " FROM " . $GLOBALS['ecs']->table('attribute') . " AS a ".

            " LEFT JOIN " . $GLOBALS['ecs']->table('goods_type') . " AS t ON a.cat_id = t.cat_id " . $where .

            " ORDER BY $filter[sort_by] $filter[sort_order] ".

            " LIMIT " . $filter['start'] .", $filter[page_size]";

    $row = $GLOBALS['db']->getAll($sql);



    foreach ($row AS $key => $val)

    {

        $row[$key]['attr_input_type_desc'] = $GLOBALS['_LANG']['value_attr_input_type'][$val['attr_input_type']];

        $row[$key]['attr_values']      = str_replace("\n", ", ", $val['attr_values']);

    }



    $arr = array('item' => $row, 'filter' => $filter, 'page_count' => $filter['page_count'], 'record_count' => $filter['record_count']);



    return $arr;

}

?>