function display($tmpl_file, $app_id = null) { array_unshift($this->_files, $tmpl_file); $this->_vars = $this->pagedata; if ($p = strpos($tmpl_file, ':')) { $object = kernel::service('tpl_source.' . substr($tmpl_file, 0, $p)); if ($object) { $tmpl_file_path = substr($tmpl_file, $p + 1); $last_modified = $object->last_modified($tmpl_file_path); } } else { $tmpl_file = realpath(APP_DIR . '/' . ($app_id ? $app_id : $this->app->app_id) . '/view/' . $tmpl_file); $last_modified = filemtime($tmpl_file); } if (!$last_modified) { //无文件 } $compile_id = $this->compile_id($tmpl_file); if ($object) { $compile_code = $this->_compiler()->compile($object->get_file_contents($tmpl_file_path)); } else { $compile_code = $this->_compiler()->compile_file($tmpl_file); } eval('?>' . $compile_code); array_shift($this->_files); }
public function check() { $this->begin(); $server_id = intval($_POST['server_id'][0]); $server_setting = $this->app->model('serverlist')->dump($server_id, '*', array('database' => '*', 'http' => '*', 'ftp' => '*')); $htdocs = $server_setting['http']['htdocs']; $obj_dir = dir($htdocs); $server = kernel::service('svhost_server', array('content_path' => 'svhost_server')); $model_vhostlist = $this->app->model('vhostlist'); while (($domain = $obj_dir->read()) !== false) { if (substr($domain, 0, 1) == '.') { continue; } $site_root = "{$htdocs}/{$domain}"; if (is_file($site_root)) { continue; } if (!strstr($domain, '.')) { continue; } if ($server->is_exists($domain)) { continue; } $domain_strip_dot = str_replace('.', '', $domain); $sdf = array('domain' => $domain, 'server_id' => $server_id, 'ip' => $server_setting['server']['ip'], 'db' => array('host' => $server_setting['database']['host'], 'port' => $server_setting['database']['port'], 'name' => $domain_strip_dot, 'user' => $domain_strip_dot, 'password' => ''), 'ftp' => array('user' => $domain_strip_dot, 'password' => '')); $model_vhostlist->save($sdf); } $this->end(true, __('检查完成!')); }
function dorecycle($mdl_name, $filter = null) { $oRecycle = app::get('desktop')->model('recycle'); list($app_id, $table) = explode('_mdl_', $mdl_name); $o = app::get($app_id)->model($table); $recycle_item = array(); $recycle_item['drop_time'] = time(); $recycle_item['item_type'] = $o->table_name(); $dbschema = $o->get_schema(); $textColumn = $dbschema['textColumn']; $pkey = $dbschema['idColumn']; foreach ($dbschema['columns'] as $k => $col) { if ($col['is_title'] && $col['sdfpath']) { $textColumn = $col['sdfpath']; break; } } $rows = $o->getList('*', $filter, 0, -1); if (method_exists($o, 'pre_recycle')) { if (!$o->pre_recycle($rows)) { return false; } } $menus = app::get('desktop')->model('menus'); $permission_id = $menus->permissionId($_GET); foreach ($rows as $k => $v) { $pkey_value = $v[$pkey]; $v = $o->dump($v[$pkey], '*', 'delete'); $recycle_item['item_sdf'] = $v; $recycle_item['app_key'] = $app_id; $recycle_item['item_title'] = $v[$textColumn]; if (method_exists($o, 'title_recycle')) { $recycle_item['item_title'] = $o->title_recycle($v); } $tmp = $recycle_item; $tmp['permission'] = $permission_id; $return = $oRecycle->save($tmp); unset($tmp[$pkey]); $o->delete(array($pkey => $pkey_value)); #↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓记录管理员操作日志@lujy↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ if ($obj_operatorlogs = kernel::service('operatorlog.system')) { if (method_exists($obj_operatorlogs, 'dorecycle')) { $obj_operatorlogs->dorecycle($v); } } #↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑记录管理员操作日志@lujy↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ } if (method_exists($o, 'suf_recycle')) { if (!$o->suf_recycle($_POST)) { return false; } } $services = kernel::serviceList('desktop_finder_callback.' . get_class($o)); foreach ($services as $service) { if (method_exists($service, 'recycle')) { $service->recycle($_POST); } } return true; }
/** * 重新发起数据同步的请求 * @param string id - 序号 * @param int call-time 发起时间 */ public function re_request($order_no, $call_time) { $this->begin(); if (!$order_no || !$call_time) { $this->end(false, app::get('b2c')->_('发起请求参数不全!')); } $obj_base_rpcpoll = app::get('base')->model('rpcpoll'); $tmp = $obj_base_rpcpoll->getList('*', array('id' => $order_no, 'calltime' => $call_time)); if ($tmp) { $arr_rpcpoll = $tmp[0]; $arr_callback = explode(':', $arr_rpcpoll['callback']); $callback = array('class' => $arr_callback[0], 'method' => $arr_callback[1]); $rpc_poll_key = $arr_rpcpoll['id'] . '-' . $arr_rpcpoll['calltime']; // 与中心交互 $obj_rpc_request_service = kernel::service('b2c.rpc.send.request'); if ($obj_rpc_request_service && method_exists($obj_rpc_request_service, 'rpc_recaller_request')) { if ($obj_rpc_request_service instanceof b2c_api_rpc_request_interface) { $obj_rpc_request_service->rpc_recaller_request($arr_rpcpoll['method'], $arr_rpcpoll['params'], $callback, $arr_rpcpoll['method'], 1, $rpc_poll_key); } } else { $obj_rpc_request = kernel::single('b2c_order_data_relation'); $obj_rpc_request->form_request($arr_rpcpoll['method'], $arr_rpcpoll['params'], $callback, $arr_rpcpoll['method'], 1, $rpc_poll_key); } $this->end(true, app::get('b2c')->_('重新发送成功!')); } else { $this->end(false, app::get('b2c')->_('发起的请求不存在!')); } }
function save() { $this->begin('index.php?app=b2c&ctl=admin_brand&act=index'); $objBrand = $this->app->model('brand'); $brandname = $objBrand->dump(array('brand_name' => $_POST['brand_name'], 'brand_id')); if (empty($_POST['brand_id']) && is_array($brandname)) { $this->end(false, app::get('b2c')->_('品牌名重复')); } $_POST['ordernum'] = intval($_POST['ordernum']); $data = $this->_preparegtype($_POST); #↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓记录管理员操作日志@lujy↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ if ($obj_operatorlogs = kernel::service('operatorlog.goods')) { $olddata = app::get('b2c')->model('brand')->dump($_POST['brand_id']); } #↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑记录管理员操作日志@lujy↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ if ($objBrand->save($data)) { #↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓记录管理员操作日志@lujy↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ if ($obj_operatorlogs = kernel::service('operatorlog.goods')) { if (method_exists($obj_operatorlogs, 'brand_log')) { $obj_operatorlogs->brand_log($_POST, $olddata); } } #↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑记录管理员操作日志@lujy↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ $this->end(true, app::get('b2c')->_('品牌保存成功')); } else { $this->end(false, app::get('b2c')->_('品牌保存失败')); } }
/** * 订单备注添加 * @param array sdf * @param string message * @return boolean success or failure */ public function update(&$sdf, &$msg = '') { // 备注订单是和中心的交互 $order = $this->app->model('orders'); $arr_order = $order->getList('*', array('order_id' => $sdf['orderid'])); if ($arr_order[0]) { if ($arr_order[0]['mark_text']) { $arr_order[0]['mark_text'] = unserialize($arr_order[0]['mark_text']); } $arr_order[0]['mark_text'][] = array('mark_text' => str_replace("\n", ' ', $sdf['mark_text']), 'add_time' => time(), 'op_name' => $sdf['op_name']); $arr_order[0]['mark_text'] = serialize($arr_order[0]['mark_text']); } $data['order_id'] = $sdf['orderid']; $data['mark_text'] = $arr_order[0]['mark_text'] ? $arr_order[0]['mark_text'] : $sdf['mark_text']; $data['mark_type'] = $sdf['mark_type']; $is_success = $order->save($data); if ($is_success) { //$this->request($sdf, 'store.trade.memo.update'); //ajx 订单备注走2.0新接口 if ($order_object = kernel::service('b2c_order_rpc_async')) { $order_object->modifyActive($sdf['orderid']); } return true; } else { $msg = app::get('b2c')->_("订单备注保存失败!"); return false; } }
public function rpc_notify($order_id, $sdf = array()) { if (!$order_id) { return; } // 普通一般订单不做处理,只是实现这个接口。 $obj_order = $this->app->model('orders'); $subsdf = array('order_objects' => array('*', array('order_items' => array('*', array(':products' => '*')))), 'order_pmt' => array('*')); $objOrder = $obj_order->dump($order_id, '*', $subsdf); $obj_order_create = kernel::single("b2c_order_create"); // 首先发送订单。 $obj_rpc_request_service = kernel::service('b2c.rpc.send.request'); if ($obj_rpc_request_service && method_exists($obj_rpc_request_service, 'rpc_caller_request')) { if ($obj_rpc_request_service instanceof b2c_api_rpc_request_interface) { $obj_rpc_request_service->rpc_caller_request($objOrder, 'create'); } } else { $obj_order_create->rpc_caller_request($objOrder); } // 判断是否需要其他的请求 - 暂时只有支付后的业务 $app_ectools = app::get('ectools'); $objModelPay = $app_ectools->model('payments'); $obj_order_bills = $app_ectools->model('order_bills'); $sql = 'SELECT * FROM ' . $objModelPay->table_name(1) . ' AS payments' . ' LEFT JOIN ' . $obj_order_bills->table_name(1) . ' AS bill ON bill.bill_id=payments.payment_id' . ' WHERE bill.bill_type="payments" AND bill.rel_id=\'' . $obj_order_bills->db->quote($order_id) . '\' AND (status=\'succ\' OR status=\'progress\')'; if ($row = $obj_order_bills->db->select($sql)) { $arr_data = array(); $arr_data = $row[0]; $arr_data['order_id'] = $arr_data['rel_id']; unset($arr_data['rel_id']); $obj_order_pay = kernel::single('b2c_order_pay'); $obj_order_pay->request($arr_data); } }
function to_reply() { $this->begin("javascript:finderGroup[" . "'" . $_GET["finder_id"] . "'" . "].refresh()"); $comment_id = $_POST['comment_id']; $comment = $_POST['reply_content']; if ($comment_id && $comment) { $member_comments = kernel::single('b2c_message_msg'); if ($member_comments->to_reply($_POST)) { #↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓记录管理员操作日志@lujy↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ if ($obj_operatorlogs = kernel::service('operatorlog.members')) { if (method_exists($obj_operatorlogs, 'reply_comment')) { $sdf['comment'] = $comment_id; $sdf['title'] = $comment; $sdf['object_type'] = 'msg'; $obj_operatorlogs->reply_comment($sdf); } } #↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑记录管理员操作日志@lujy↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ $this->end(true, app::get('b2c')->_('回复成功')); } else { $this->end(false, app::get('b2c')->_('回复失败')); } } else { $this->end(false, app::get('b2c')->_('内容不能为空')); } }
function input_region($params) { if ($params['required'] == 'true') { $params['vtype'] = 'area'; } $package = kernel::service('ectools_regions.ectools_mdl_regions'); $params['package'] = $package->key; if (!$params['callback']) { unset($params['callback']); } $render = app::get('ectools')->render(); $render->pagedata['params'] = $params; $area_depth = app::get('ectools')->getConf('system.area_depth'); $aDepth = array(); for ($i = 0; $i < $area_depth; $i++) { $aDepth[] = $i; } $render->pagedata['area_depth'] = $aDepth; if (ECAE_MODE) { $render->pagedata['region_data'] = app::get('ectools')->getConf('system.region_data'); } if ($params['platform'] == 'iswap') { $views = 'wap/common/region.html'; } else { $views = 'common/region.html'; } return $render->fetch($views); }
public function __call($method, $params) { //api 版本历史 $apiv_history = array('2.0', '1.0'); $api_info = base_rpc_service::$api_info; $api_obj = NULL; $flag = false; foreach ($apiv_history as $v) { if ($this->apiv == $v) { $flag = true; } if ($flag) { $service = 'apiv_' . $v . '_' . $api_info['api_name']; $api_obj = kernel::service($service); if (method_exists($api_obj, $method)) { break; } else { kernel::log('apiv service:' . $service . ', method:' . $method . ' not found!'); } } } if (!$api_obj || !method_exists($api_obj, $method)) { trigger_error('server reject!', E_USER_ERROR); } //return call_user_func_array(array( &$api_obj, $method ), $params); return $api_obj->{$method}($params[0], $params[1]); }
function save() { $this->begin(); $mem_wit = $this->app->model('member_withdrawal'); $mem_adv = $this->app->model('member_advance'); $row = $mem_wit->dump($_POST['id']); if (!$row || $row['has_op'] == 'true') { $this->end(false, app::get('b2c')->_('该数据已经处理!')); } $data['modify_advance'] = -$row['amount']; $data['modify_memo'] = $_POST['remark']; #↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓记录管理员操作日志↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ if ($obj_operatorlogs = kernel::service('operatorlog.members')) { $olddata = app::get('b2c')->model('members')->dump($data['member_id']); } #↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑记录管理员操作日志↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ if (!$mem_adv->adj_amount($row['member_id'], $data, $msg, false)) { $this->end(false, app::get('b2c')->_($msg)); } #↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓记录管理员操作日志@lujy↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ if ($obj_operatorlogs = kernel::service('operatorlog.members')) { if (method_exists($obj_operatorlogs, 'detail_advance_log')) { $newdata = app::get('b2c')->model('members')->dump($data['member_id']); $obj_operatorlogs->detail_advance_log($newdata, $olddata); } } #↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑记录管理员操作日志@lujy↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ $_POST['has_op'] = 'true'; if ($mem_wit->save($_POST)) { $this->end(true, app::get('b2c')->_('保存成功')); } else { $this->end(false, app::get('b2c')->_('保存失败')); } }
function __construct() { $obj = kernel::service('base_charset'); if ($obj instanceof base_charset_interface) { $this->set_instance($obj); } }
function __construct() { if (!setlocale(LC_ALL, 'zh_CN.gbk')) { setlocale(LC_ALL, "chs"); } $this->charset = kernel::service('ectools_charset'); }
function _send($sendMethod, $tmpl_name, $target, $data, $type, $title = null) { $sender =& $this->_load($sendMethod); $this->_ready($sender); if (!$this->_systmpl) { $this->_systmpl =& $this->app->model('member_systmpl'); } $content = $this->_systmpl->fetch($tmpl_name, $data); $tile = $this->loadTitle($type, $sendMethod, '', $data); $service = kernel::service("b2c.messenger.fireEvent_content"); if (is_object($service)) { if (method_exists($service, 'get_content')) { $content = $service->get_content($content); } $tile = $service->get_content($tile); } if ($tile == '') { $tile = app::get('site')->getConf('site.name'); } $sender->config['shopname'] = app::get('site')->getConf('site.name'); // Andrew 20120929 // 接管消息系统 // $sender->send($target,$tile,$content,$sender->config); $services = kernel::servicelist("custom.message.send"); foreach ($services as $service) { $service->send($sendMethod, $target, $tile, $content, $sender->config); } return $ret || !is_bool($ret); }
function check_order($orders) { $cancel_mdl = app::get('starbuy')->model('cancelorder'); $obj_checkorder = kernel::service('b2c_order_apps', array('content_path' => 'b2c_order_checkorder')); foreach ($orders as $key => $val) { $oid = $val['order_id']; if ($obj_checkorder->check_order_cancel($oid)) { $sdf['order_id'] = $oid; $sdf['op_id'] = 1; // $this->user->user_id; $sdf['opname'] = "admin"; //$this->user->user_data['account']['login_name']; $sdf['account_type'] = "shopadmin"; //$this->user->account_type; $sdf['op_id'] = $this->user->user_id; $sdf['opname'] = $this->user->user_data['account']['login_name']; $sdf['account_type'] = $this->user->account_type; $b2c_order_cancel = kernel::single("b2c_order_cancel"); if ($b2c_order_cancel->generate($sdf, $null, $message)) { if ($order_object = kernel::service('b2c_order_rpc_async')) { $order_object->modifyActive($sdf['order_id']); } $cancel_mdl->delete(array('order_id' => $oid)); } } } }
function index() { if (defined('APP_SITE_INDEX_MAXAGE') && APP_SITE_INDEX_MAXAGE > 1) { $this->set_max_age(APP_SITE_INDEX_MAXAGE); } //todo: 首页max-age设定 if (kernel::single('site_theme_base')->theme_exists()) { $obj = kernel::service('site_index_seo'); if (is_object($obj) && method_exists($obj, 'title')) { $title = $obj->title(); } else { $title = app::get('site')->getConf('site.name') ? app::get('site')->getConf('site.name') : app::get('site')->getConf('page.default_title'); } if (is_object($obj) && method_exists($obj, 'keywords')) { $keywords = $obj->keywords(); } else { $keywords = app::get('site')->getConf('page.default_keywords') ? app::get('site')->getConf('page.default_keywords') : $title; } if (is_object($obj) && method_exists($obj, 'description')) { $description = $obj->description(); } else { $description = app::get('site')->getConf('page.default_description') ? app::get('site')->getConf('page.default_description') : $title; } $this->pagedata['headers'][] = '<title>' . htmlspecialchars($title) . '</title>'; $this->pagedata['headers'][] = '<meta name="keywords" content="' . htmlspecialchars($keywords) . '" />'; $this->pagedata['headers'][] = '<meta name="description" content="' . htmlspecialchars($description) . '" />'; $this->pagedata['headers'][] = "<link rel='icon' href='{$this->app->res_url}/favicon.ico' type='image/x-icon' />"; $this->pagedata['headers'][] = "<link rel='shortcut icon' href='{$this->app}->res_url/favicon.ico' type='image/x-icon' />"; $GLOBALS['runtime']['path'][] = array('title' => app::get('b2c')->_('首页'), 'link' => kernel::base_url(1)); $this->set_tmpl('index'); $this->page('index.html'); } else { $this->display('splash/install_template.html'); } }
function save() { $this->begin(); $objMemLv = $this->app->model('member_lv'); if ($objMemLv->validate($_POST, $msg)) { if ($_POST['member_lv_id']) { $olddata = app::get('b2c')->model('member_lv')->dump($_POST['member_lv_id']); } #↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑记录管理员操作日志@lujy↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ if ($objMemLv->save($_POST)) { #↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓记录管理员操作日志@lujy↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ if ($obj_operatorlogs = kernel::service('operatorlog.members')) { if (method_exists($obj_operatorlogs, 'member_lv_log')) { $newdata = app::get('b2c')->model('member_lv')->dump($_POST['member_lv_id']); $obj_operatorlogs->member_lv_log($newdata, $olddata); } } #↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑记录管理员操作日志@lujy↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ $this->end(true, app::get('b2c')->_('保存成功')); } else { $this->end(false, app::get('b2c')->_('保存失败')); } } else { $this->end(false, $msg); } }
/** * 需要同步的数据 */ public function sync($request, $rpcService) { // $cnt = kernel::single('b2c_shop')->getShopBindStatus(); // if ( $cnt > 0 ) { if ($request['region_id']) { $obj_regions_op = kernel::service('ectools_regions_apps', array('content_path' => 'ectools_regions_operation')); if ($request['sync_type'] == 'del') { if ($request['region_id']) { $obj_regions_op->toRemoveArea($request['region_id']); } } else { $ordernum = isset($request['ordernum']) ? $request['ordernum'] : 50; $package = $request['package'] ? $request['package'] : 'mainland'; $data = array('region_id' => $request['region_id'], 'local_name' => $request['local_name'], 'ordernum' => $ordernum, 'package' => $package); if ($request['p_region_id']) { $data['p_region_id'] = $request['p_region_id']; } $obj_regions_op->replaceDlArea($data, $msg); } $ret = array('code' => 1, 'msg' => app::get('ectools')->_('同步成功')); } else { $ret = array('code' => -1, 'msg' => app::get('ectools')->_('请确保地区ID')); } // } else { // $ret = array ( // 'code' => -2, // 'msg' => app::get('ectools')->_('店铺未绑定无需同步'), // ); // } if ($ret['code'] < 0) { $rpcService->send_user_error($ret['code'], $ret['msg']); } return $ret; }
public function function_wapfooter($params, &$smarty) { $footers = $smarty->pagedata['footers']; if (is_array($footers)) { foreach ($footers as $footer) { $html .= $footer; } } else { $html .= $footers; } $html .= app::get('wap')->getConf('wap.foot_edit'); $obj = kernel::service('site_footer_copyright'); if (is_object($obj) && method_exists($obj, 'get')) { $html .= $obj->get(); } else { if (!defined('WITHOUT_POWERED') || !constant('WITHOUT_POWERED')) { $html .= ecos_cactus('wap', 'wapcopyr', $html); } } if (isset($_COOKIE['wap']['preview']) && $_COOKIE['wap']['preview'] == 'true') { $base_dir = kernel::base_url(); $remove_cookie = "\$.fn.cookie('wap[preview]','',{path:'" . $base_dir . "/'});\$(document.body).removeClass('set-margin-body');"; $set_window = '$("body").addClass("set-margin-body");moveTo(0,0);resizeTo(screen.availWidth,screen.availHeight);'; $html .= '<style>body.set-margin-body{margin-top:36px;}#_theme_preview_tip_ {width:100%; position: absolute; left: 0; top: 0; background: #FCE2BC; height: 25px; line-height: 25px; padding: 5px 0; border-bottom: 1px solid #FF9900;box-shadow: 0 2px 5px #CCCCCC; }#_theme_preview_tip_ span.msg { float: left; _display: inline;zoom:1;line-height: 25px;margin-left:10px;padding:0; }#_theme_preview_tip_ a.btn {vertical-align:middle; color:#333;float: right; margin:0 10px; }</style><div id="_theme_preview_tip_"><span class="msg">' . app::get('site')->_('目前正在预览模式') . '</span><a href="javascript:void(0);" class="btn" onclick="' . $remove_cookie . 'location.reload();"><span><span>' . app::get('site')->_('退出预览') . '</span></span></a></div>'; $html .= '<script>' . $set_window . '$(window).on("unload",function(){' . $remove_cookie . '});</script>'; } $html .= $smarty->fetch('footer.html', app::get('wap')->app_id); $icp = app::get('site')->getConf('system.site_icp'); if ($icp) { $html .= '<div style="text-align: center;">' . $icp . '</div>'; } return $html; }
public function index() { /** 登录之前的预先验证 **/ if (!defined("STRESS_TESTING")) { $obj_services = kernel::servicelist('app_pre_auth_use'); foreach ($obj_services as $obj) { if (method_exists($obj, 'pre_auth_uses') && method_exists($obj, 'login_verify')) { $pagedata['desktop_login_verify'] = $obj->login_verify(); } } } /** end **/ //检查证书是否合法,从而判定产品功能是否可用。比如b2c功能 $certCheckObj = kernel::service("product_soft_certcheck"); if (is_object($certCheckObj) && method_exists($certCheckObj, "check")) { $certCheckObj->check(); } $pagedata['desktop'] = url::route('shopadmin'); $pagedata['redirect'] = input::get('url'); $pagedata['Commerce'] = 'yes'; $pagedata['img_url'] = app::get('desktop')->res_url . '/images/login.png'; if (pamAccount::isEnableVcode('desktop')) { $pagedata['show_varycode'] = 'true'; } $pagedata['error_info'] = urldecode(input::get('msg')); $conf = base_setup_config::deploy_info(); $pagedata['product_key'] = $conf['product_key']; return view::make('desktop/login.html', $pagedata); }
public function exec($params = null) { $obj_memmsm = kernel::single('b2c_messenger_sms'); $objfilter = kernel::service('filter_sms_content'); $title = $params['data']['title']; $message = $params['data']['content']; if (is_object($objfilter)) { if (method_exists($objfilter, 'get_filter_content')) { $data = $objfilter->get_filter_content($title, $message); $title = $data['title'] ? $data['title'] : ''; $message = $data['content']; } } $to = $params['mobile_number']; $config['shopname'] = app::get('site')->getConf('site.name'); $config['use_reply'] = $params['data']['use_reply'] == 'true' ? 1 : 0; $config['sendType'] = $params['data']['sendType'] == 'fan-out' ? 'fan-out' : 'notice'; if ($obj_memmsm->ready($config)) { $obj_memmsm->send($to, $title, $message, $config); } if ($params['gnotify_id']) { $member_goods = app::get('b2c')->model('member_goods'); $sdf = $member_goods->dump($params['gnotify_id']); $sdf['status'] = "send"; $sdf['send_time'] = time(); $member_goods->save($sdf); } }
public function point_detail($nPage = 1) { $this->path[] = array('title' => app::get('pointprofessional')->_('会员中心'), 'link' => $this->gen_url(array('app' => 'b2c', 'ctl' => 'site_member', 'act' => 'index', 'full' => 1))); $this->path[] = array('title' => app::get('pointprofessional')->_('我的积分'), 'link' => '#'); $GLOBALS['runtime']['path'] = $this->path; $member = $this->app_current->model('members'); $member_point = $this->app_current->model('member_point'); $obj_gift_link = kernel::service('b2c.exchange_gift'); if ($obj_gift_link) { $this->pagedata['exchange_gift_link'] = $obj_gift_link->gen_exchange_link(); } $data = $member->dump($this->app->member_id, '*', array('score/event' => array('*'))); $count = $member_point->count(array('member_id' => $this->app->member_id)); // 扩展的积分信息 $obj_extend_point = kernel::servicelist('b2c.member_extend_point_info'); if ($obj_extend_point) { foreach ($obj_extend_point as $obj) { $this->pagedata['extend_point_html'] = $obj->gen_extend_detail_point($data); } } $aPage = $this->get_start($nPage, $count); $params['data'] = $member_point->get_all_list('*', array('member_id' => $this->member['member_id'], 'change_point|than' => '0'), $aPage['start'], $this->pagesize); $params['page'] = $aPage['maxPage']; $this->pagination($nPage, $params['page'], 'point_detail', '', 'pointprofessional', 'site_point'); $this->pagedata['total'] = $data['score']['total']; $this->pagedata['historys'] = $params['data']; $this->output('pointprofessional'); }
/** * 订单取消 * @params array - 订单数据 * @params object - 控制器 * @params string - 支付单生成的记录 * @return boolean - 成功与否 */ public function generate($sdf, &$controller = null, &$msg = '') { $is_save = false; $is_unfreeze = true; $order = $controller->app->model('orders'); $sdf_order = $order->dump($sdf['order_id'], '*'); //更新库存 $obj_checkorder = kernel::service('b2c_order_apps', array('content_path' => 'b2c_order_checkorder')); $arrStatus = $obj_checkorder->checkOrderFreez('cancel', $sdf['order_id']); if ($arrStatus['unfreez']) { $is_unfreeze = $this->unfreezeGoods($sdf['order_id']); } //$obj_api_order = kernel::service("api.b2c.order"); $sdf_order['status'] = 'dead'; $is_save = $order->save($sdf_order); $this->request($sdf_order['order_id']); // 更新退款日志结果 if ($is_save && $is_unfreeze) { $objorder_log = $this->app->model('order_log'); $sdf_order_log = array('rel_id' => $sdf['order_id'], 'op_id' => $sdf['op_id'], 'op_name' => $sdf['opname'], 'alttime' => time(), 'bill_type' => 'order', 'behavior' => 'cancel', 'result' => 'SUCCESS', 'log_text' => '订单取消'); $log_id = $objorder_log->save($sdf_order_log); } $aUpdate['order_id'] = $sdf['order_id']; if ($sdf_order['member_id']) { $member = $this->app->model('members'); $arr_member = $member->dump($sdf_order['member_id'], '*', array(':account@pam' => '*')); } $aUpdate['email'] = !$sdf_order['member_id'] ? $sdf_order['consignee']['email'] : $arr_member['contact']['email']; $order->fireEvent("cancel", $aUpdate, $sdf_order['member_id']); return $is_save && $is_unfreeze; }
/** * 选择配送方式的接口 * @params object 控制器入口 * @params string 最后一级地区的id * @params array 标准购物车数据 */ public function select_delivery_method(&$controller, $area_id = '', $sdf_cart, $shipping_method = '', $tpl = 'site/cart/checkout/delivery_list.html') { $pay_app_id = $sdf_cart['pay_app_id'] ? $sdf_cart['pay_app_id'] : ''; $all_dly_types = $this->get_dlytype($controller, $area_id, $pay_app_id); $controller->pagedata['shipping_method'] = json_decode($shipping_method, true); $shipping_id = $controller->pagedata['shipping_method']['shipping_id']; $controller->pagedata['is_shipping_match'] = 0; /** 阶梯费用只能根据优惠后的金额来处理 - 除去商品优惠和订单优惠后的最终价格 **/ $objMath = kernel::single('ectools_math'); $cost_item = $objMath->number_minus(array($sdf_cart['subtotal'], $sdf_cart['discount_amount_prefilter'], $sdf_cart['discount_amount_order'])); foreach ($all_dly_types as $rows) { if ($rows['is_threshold']) { if ($rows['threshold']) { $rows['threshold'] = unserialize(stripslashes($rows['threshold'])); if (isset($rows['threshold']) && $rows['threshold']) { foreach ($rows['threshold'] as $res) { if ($res['area'][1] > 0) { if ($cost_item >= $res['area'][0] && $cost_item < $res['area'][1]) { $rows['firstprice'] = $res['first_price']; $rows['continueprice'] = $res['continue_price']; } } else { if ($cost_item >= $res['area'][0]) { $rows['firstprice'] = $res['first_price']; $rows['continueprice'] = $res['continue_price']; } } } } } } $rows['money'] = @utils::cal_fee($rows['dt_expressions'], $sdf_cart['subtotal_weight'], $sdf_cart['subtotal'], $rows['firstprice'], $rows['continueprice'], $rows['firstprice']); $shipping[] = $rows; if ($shipping_id == $rows['dt_id']) { $controller->pagedata['is_shipping_match'] = 1; } } $controller->pagedata['shippings'] =& $shipping; foreach ((array) ($obj_dlytype_detail_extends = kernel::servicelist('b2c.dlytype.detail.extends')) as $obj) { if (method_exists($obj, 'extends_shipping_detail')) { $obj->extends_shipping_detail($shipping); } } $controller->pagedata['shipping_method'] = isset($_COOKIE['purchase']['shipping']) && $_COOKIE['purchase']['shipping'] ? unserialize($_COOKIE['purchase']['shipping']) : ''; /** 暂时为商超夜间配送加入的service,可能功能改变后需要删除 **/ $obj_service = kernel::service('b2c.dlytype.select.extends'); if ($obj_service) { if (method_exists($obj_service, 'extends_shipping')) { $controller->pagedata['is_night_delivery'] = $obj_service->extends_shipping($area_id); } else { $controller->pagedata['is_night_delivery'] = 'false'; } } /** 结束 **/ $str_html = $controller->fetch($tpl, $controller->pagedata['app_id']); $obj_ajax_view_help = kernel::single('b2c_view_ajax'); return $obj_ajax_view_help->get_html($str_html, 'b2c_order_dlytype', 'select_delivery_method'); }
/** * 重写getList方法 * @param string column * @param array filter * @param int offset * @param int limit * @param string order by */ public function getList($cols = '*', $filter = array(), $offset = 0, $limit = -1, $orderType = null) { $addrs_member = parent::getList($cols, $filter, $offset, $limit, $orderType); $info_object = kernel::service('sensitive_information'); if (is_object($info_object)) { $info_object->opinfo($addrs_member, 'b2c_mdl_member_addrs', __FUNCTION__); } return $addrs_member; }
/** * 订单取消 * @params array - 订单数据 * @params object - 控制器 * @params string - 支付单生成的记录 * @return boolean - 成功与否 */ public function generate($sdf, &$controller = null, &$msg = '') { $is_save = false; $is_unfreeze = true; if (!$controller) { $order = app::get('b2c')->model('orders'); } else { $order = $controller->app->model('orders'); } $sdf_order = $order->dump($sdf['order_id'], '*'); //更新库存 $obj_checkorder = kernel::service('b2c_order_apps', array('content_path' => 'b2c_order_checkorder')); $arrStatus = $obj_checkorder->checkOrderFreez('cancel', $sdf['order_id']); if ($arrStatus['unfreez']) { $is_unfreeze = $this->unfreezeGoods($sdf['order_id']); } //$obj_api_order = kernel::service("api.b2c.order"); $sdf_order['status'] = 'dead'; $is_save = $order->save($sdf_order); $this->request($sdf_order['order_id']); $obj_order_operations = kernel::servicelist('b2c.order_point_operaction'); if ($obj_order_operations) { $arr_data = array('member_id' => $sdf_order['member_id'], 'score_g' => $sdf_order['score_g'], 'score_u' => $sdf_order['score_u']); foreach ($obj_order_operations as $obj_operation) { $obj_operation->gen_member_point($arr_data, 'cancel'); } } // 更新退款日志结果 if ($is_save && $is_unfreeze) { $objorder_log = $this->app->model('order_log'); $cancel_type = array('member' => '用户作废', 'shopadmin' => '管理员作废'); $log_text[] = array('txt_key' => '订单取消' . '(' . $cancel_type[$sdf['account_type']] . ')', 'data' => array()); $log_text = serialize($log_text); $sdf_order_log = array('rel_id' => $sdf['order_id'], 'op_id' => $sdf['op_id'], 'op_name' => $sdf['opname'], 'alttime' => time(), 'bill_type' => 'order', 'behavior' => 'cancel', 'result' => 'SUCCESS', 'log_text' => $log_text); $log_id = $objorder_log->save($sdf_order_log); } $aUpdate['order_id'] = $sdf['order_id']; if ($sdf_order['member_id']) { $pamMembers = app::get('pam')->model('members'); $arr_member = $pamMembers->getList('login_account', array('member_id' => $sdf_order['member_id'], 'login_type' => 'email')); } $aUpdate['email'] = !$sdf_order['member_id'] ? $sdf_order['consignee']['email'] : $arr_member[0]['login_account']; $order->fireEvent("cancel", $aUpdate, $sdf_order['member_id']); if ($is_save && $is_unfreeze) { foreach (kernel::servicelist("b2c_order_cancel_finish") as $object) { if (!is_object($object)) { continue; } if (!method_exists($object, 'order_notify')) { continue; } $object->order_notify($sdf_order); } } return $is_save && $is_unfreeze; }
function setDefault() { set_time_limit(0); $this->begin('index.php?app=ectools&ctl=regionssetting&act=index'); $model =& $this->app->model('regions'); $model->clearOldData(); $package = kernel::service('ectools_regions.ectools_mdl_regions'); $rs = $package->install(); $this->end($rs); }
function page($detail) { header('Content-type: text/html; charset=utf-8'); $object = kernel::service('theme'); if ($object) { $object->display($detail); } else { $this->display($detail); } }
function __destruct() { #↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓记录管理员操作日志@lujy↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ if ($obj_operatorlogs = kernel::service('operatorlog')) { if (method_exists($obj_operatorlogs, 'logSetTagInfo')) { $obj_operatorlogs->logSetTagInfo(); } } #↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑记录管理员操作日志@lujy↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ }
public function generate(&$sdf, &$msg = '') { $obj_return_policy = kernel::service("aftersales.return_policy"); $is_save = $obj_return_policy->save_return_product($sdf); if (!$is_save) { $msg = app::get('b2c')->_('数据保存失败!'); return false; } return true; }