• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP Hook类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中Hook的典型用法代码示例。如果您正苦于以下问题:PHP Hook类的具体用法?PHP Hook怎么用?PHP Hook使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Hook类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: upgrade_module_1_5_1

function upgrade_module_1_5_1($module)
{
    if (Hook::getIdByName('displayPaymentEu')) {
        return true;
    }
    $new_hook = new Hook();
    $new_hook->name = 'displayPaymentEu';
    $new_hook->title = 'Display EU payment options (helper)';
    $new_hook->description = 'Hook to display payment options';
    $new_hook->position = true;
    $new_hook->live_edit = false;
    return (bool) $new_hook->add() && (bool) $module->registerModulesBackwardCompatHook();
}
开发者ID:prestashop,项目名称:advancedeucompliance,代码行数:13,代码来源:upgrade-1.5.1.php


示例2: checkOwnerHooks

 private function checkOwnerHooks()
 {
     $hookspos = array('displayTop', 'displayHeaderRight', 'displaySlideshow', 'topNavigation', 'displayPromoteTop', 'displayRightColumn', 'displayLeftColumn', 'displayHome', 'displayFooter', 'displayBottom', 'displayContentBottom', 'displayFootNav', 'displayFooterTop', 'displayFooterBottom');
     foreach ($hookspos as $hook) {
         if (Hook::getIdByName($hook)) {
         } else {
             $new_hook = new Hook();
             $new_hook->name = pSQL($hook);
             $new_hook->title = pSQL($hook);
             $new_hook->add();
         }
     }
     return true;
 }
开发者ID:downten,项目名称:ecomblockmanufacturer,代码行数:14,代码来源:ecomblockmanufacturer.php


示例3: install

 function install()
 {
     if (Hook::get('orderAddressVerification') == false) {
         $hook = new Hook();
         $hook->name = 'orderAddressVerification';
         $hook->title = 'Order address verificatio';
         $hook->description = 'Allows modules to verify delivery and billing address in an order, e.g. require them to be in the same country';
         $hook->add();
     }
     if (parent::install() == false) {
         return false;
     }
     return true;
 }
开发者ID:redb,项目名称:prestashop,代码行数:14,代码来源:orderaddress.php


示例4: install

 function install()
 {
     if (Hook::get('orderPages') == false) {
         $hook = new Hook();
         $hook->name = 'orderPages';
         $hook->title = 'Order process pages';
         $hook->description = 'Adds new pages in the order process';
         $hook->add();
     }
     if (parent::install() == false or $this->registerHook('orderPages') == false) {
         return false;
     }
     return true;
 }
开发者ID:redb,项目名称:prestashop,代码行数:14,代码来源:OrderPage.php


示例5: hookFooter

 public function hookFooter($params)
 {
     if (!$this->isCached('blockmyaccountfooter.tpl', $this->getCacheId())) {
         $this->smarty->assign(array('voucherAllowed' => CartRule::isFeatureActive(), 'returnAllowed' => (int) Configuration::get('PS_ORDER_RETURN'), 'HOOK_BLOCK_MY_ACCOUNT' => Hook::exec('displayMyAccountBlockfooter')));
     }
     return $this->display(__FILE__, 'blockmyaccountfooter.tpl', $this->getCacheId());
 }
开发者ID:jpodracky,项目名称:dogs,代码行数:7,代码来源:blockmyaccountfooter.php


示例6: run

 /**
  * 运行框架
  */
 public static function run()
 {
     try {
         self::init();
         Hook::init(BASE_PATH);
         Hook::listen('appBegin');
         Hook::listen('routeParseUrl', array(Config::get('REWRITE_RULE'), Config::get('REWRITE_ON')));
         //default route
         if (!defined('APP_NAME') || !defined('CONTROLLER_NAME') || !defined('ACTION_NAME')) {
             Route::parseUrl(Config::get('REWRITE_RULE'), Config::get('REWRITE_ON'));
         }
         //execute action
         $controller = '\\app\\' . APP_NAME . '\\controller\\' . CONTROLLER_NAME . 'Controller';
         $action = ACTION_NAME;
         if (!class_exists($controller)) {
             throw new \Exception("Controller '{$controller}' not found", 404);
         }
         $obj = new $controller();
         if (!method_exists($obj, $action)) {
             throw new \Exception("Action '{$controller}::{$action}()' not found", 404);
         }
         Hook::listen('actionBefore', array($obj, $action));
         $obj->{$action}();
         Hook::listen('actionAfter', array($obj, $action));
     } catch (\Exception $e) {
         Hook::listen('appError', array($e));
     }
     Hook::listen('appEnd');
 }
开发者ID:lerre,项目名称:canphp,代码行数:32,代码来源:App.php


示例7: create

 /**
  * Create page
  *
  * @param array $val
  * @return \App\Models\Page
  */
 public function create($val)
 {
     $expected = ['title', 'description', 'website', 'url' => '', 'category'];
     /**
      * @var $title
      * @var $description
      * @var $website
      * @var $category
      * @var $url
      */
     extract(array_merge($expected, $val));
     if (!empty($title) and !empty($category)) {
         $page = $this->model->newInstance();
         $page->title = sanitizeText($title, 130);
         $page->slug = sanitizeText($url);
         $page->user_id = \Auth::user()->id;
         $page->description = \Hook::fire('filter-text', sanitizeText($description));
         $page->category_id = sanitizeText($category);
         $page->website = sanitizeText($website);
         $page->save();
         $page->save();
         $this->event->fire('page.add', [$page]);
         return $page;
     }
     return false;
 }
开发者ID:weddingjuma,项目名称:world,代码行数:32,代码来源:PageRepository.php


示例8: initContent

 /**
  * Assign template vars related to page content
  * @see FrontController::initContent()
  */
 public function initContent()
 {
     parent::initContent();
     $this->addJS(_THEME_JS_DIR_ . 'index.js');
     $this->context->smarty->assign(array('HOOK_HOME' => Hook::exec('displayHome'), 'HOOK_HOME_TAB' => Hook::exec('displayHomeTab'), 'HOOK_HOME_TAB_CONTENT' => Hook::exec('displayHomeTabContent')));
     $this->setTemplate(_PS_THEME_DIR_ . 'index.tpl');
 }
开发者ID:prestanesia,项目名称:PrestaShop,代码行数:11,代码来源:IndexController.php


示例9: builder

 public function builder()
 {
     $this->load->model('admin/admin_menu');
     $this->load->add_package_path(APPPATH . 'third_party/scrud/');
     $var = array();
     $_GET['crud_components'] = 'crud_components';
     $var['main_menu'] = $this->admin_menu->fetch('tool');
     $conf = array();
     if (!file_exists(__DATABASE_CONFIG_PATH__ . '/' . $this->db->database . '/crud_components.php')) {
         exit;
     } else {
         require __DATABASE_CONFIG_PATH__ . '/' . $this->db->database . '/crud_components.php';
     }
     $hook = Hook::singleton();
     $hook->addFunction('SCRUD_ADD_FORM', 'addTableElement');
     $hook->addFunction('SCRUD_EDIT_FORM', 'addTableElement');
     $hook->addFunction('SCRUD_ADD_CONFIRM', 'addTableElement');
     $hook->addFunction('SCRUD_EDIT_CONFIRM', 'addTableElement');
     $hook->addFunction('SCRUD_VIEW_FORM', 'addTableElement');
     $hook->addFunction('SCRUD_CONFRIM_DELETE_FORM', 'addTableElement');
     $hook->addFunction('SCRUD_BEFORE_UPDATE', 'removeConfig');
     $hook->addFunction('SCRUD_BEFORE_SAVE', 'checkGroup');
     $hook->addFunction('SCRUD_COMPLETE_DELETE', 'completeDelete');
     $conf['theme_path'] = FCPATH . 'application/views/admin/component/templates/builder';
     $this->load->library('crud', array('table' => 'crud_components', 'conf' => $conf));
     $var['main_content'] = $this->load->view('admin/component/builder', array('content' => $this->crud->process()), true);
     $this->load->model('admin/admin_footer');
     $var['main_footer'] = $this->admin_footer->fetch();
     $this->load->view('layouts/admin/scrud/browse', $var);
 }
开发者ID:Dannyngs,项目名称:chinese_med,代码行数:30,代码来源:component.php


示例10: setDeliveryNumber

	public function setDeliveryNumber($order_invoice_id, $id_shop)
	{
		if (!$order_invoice_id)
			return false;

		$number = Configuration::get('PS_DELIVERY_NUMBER', null, null, $id_shop);
		// If invoice start number has been set, you clean the value of this configuration
		if ($number)
			Configuration::updateValue('PS_DELIVERY_NUMBER', false, false, null, $id_shop);
			
		$order_invoice = new OrderInvoice($order_invoice_id);
		$order = new Order($order_invoice->id_order);
		$cart = new Cart($order->id_cart);
		
		if($ref = Hook::exec('actionBeforeAddDeliveryNumber', array('order'=>$order,'cart'=>$cart,'number'=>$number)))
			$number = $ref;

		$sql = 'UPDATE `'._DB_PREFIX_.'order_invoice` SET delivery_number =';

		if ($number)
			$sql .= (int)$number;
		else
			$sql .= '(SELECT new_number FROM (SELECT (MAX(`delivery_number`) + 1) AS new_number
			FROM `'._DB_PREFIX_.'order_invoice`) AS result)';

		$sql .=' WHERE `id_order_invoice` = '.(int)$order_invoice_id;

		return Db::getInstance()->execute($sql);
	}
开发者ID:,项目名称:,代码行数:29,代码来源:


示例11: loadAddons

 private function loadAddons()
 {
     $data = S('hooks');
     if (!$data) {
         $hooks = M('hooks')->getField('name,addons', true);
         foreach ($hooks as $key => $value) {
             if ($value) {
                 $map['status'] = 1;
                 $names = explode(',', $value);
                 $map['name'] = array('IN', $names);
                 $data = M('Addons')->where($map)->getField('id,name');
                 if ($data) {
                     $addons = array_intersect($names, $data);
                     Hook::add($key, $addons);
                 }
             }
         }
         S('hooks', Hook::get());
         //插件标签
         $tpl_tags = array();
         $data = M('addons')->getField('id,name');
         if ($data) {
             foreach ($data as $addon) {
                 if (is_file("HDCMS/Addons/{$addon}/Tag/{$addon}Tag.class.php")) {
                     $tpl_tags[] = "@.Addons.{$addon}.Tag.{$addon}Tag";
                 }
             }
         }
         S('HookTag', array_unique($tpl_tags));
     } else {
         Hook::import($data, false);
         C('TPL_TAGS', array_unique(array_merge(C('TPL_TAGS'), S('HookTag'))));
     }
 }
开发者ID:lililishuang,项目名称:hdcms,代码行数:34,代码来源:AppInitHook.class.php


示例12: index

 public function index()
 {
     $this->load->model('crud_auth');
     $this->load->model('admin/admin_menu');
     $this->load->model('user/user_menu');
     $this->load->add_package_path(APPPATH . 'third_party/scrud/');
     $crudAuth = $this->session->userdata('CRUD_AUTH');
     $var = array();
     $conf = array();
     $var['main_menu'] = $this->admin_menu->fetch('account');
     $hook = Hook::singleton();
     $hook->addFunction('SCRUD_EDIT_FORM', 'removeElement');
     $hook->addFunction('SCRUD_EDIT_CONFIRM', 'removeElement');
     $hook->addFunction('SCRUD_BEFORE_VALIDATE', 'removeValidate');
     $hook->addFunction('SCRUD_COMPLETE_UPDATE', 'completeUpdate');
     $hook->addFunction('SCRUD_BEFORE_SAVE', 'removeElementData');
     if (!isset($_GET['xtype'])) {
         $_GET['xtype'] = 'form';
     }
     $_GET['table'] = 'crud_users';
     $_GET['key']['crud_users.id'] = $crudAuth['id'];
     $_SERVER['QUERY_STRING'] = $_SERVER['QUERY_STRING'] . '&key[crud_users.id]=' . $crudAuth['id'];
     if (!file_exists(__DATABASE_CONFIG_PATH__ . '/' . $this->db->database . '/' . $this->input->get('table') . '.php')) {
         exit;
     } else {
         require __DATABASE_CONFIG_PATH__ . '/' . $this->db->database . '/' . $this->input->get('table') . '.php';
     }
     $conf['theme_path'] = FCPATH . 'application/views/user/profile/crud';
     $this->load->library('crud', array('table' => $this->input->get('table'), 'conf' => $conf));
     $var['main_content'] = $this->load->view('user/profile/profile', array('content' => $this->crud->process(), 'user_menu' => $this->user_menu->fetch('profile')), true);
     $this->load->model('admin/admin_footer');
     $var['main_footer'] = $this->admin_footer->fetch();
     $this->load->view('layouts/user/default', $var);
 }
开发者ID:Dannyngs,项目名称:chinese_med,代码行数:34,代码来源:editprofile.php


示例13: init

 /**
  * Initialize a cURL session.
  *
  * @return Recipe_HTTP_Session_Curl
  */
 protected function init()
 {
     $this->resource = @curl_init();
     if (!$this->resource) {
         throw new Recipe_Exception_Generic("Connection faild via cURL request.");
     }
     Hook::event("HttpRequestInitFirst", array($this));
     @curl_setopt($this->resource, CURLOPT_RETURNTRANSFER, true);
     @curl_setopt($this->resource, CURLOPT_TIMEOUT, self::TIMEOUT);
     $url = $this->webpage;
     if (count($this->getGetArgs()) > 0) {
         $url .= "?" . $this->getGetArgs(false);
     }
     @curl_setopt($this->resource, CURLOPT_URL, $url);
     if ($this->getRequestType() == "GET") {
         @curl_setopt($this->resource, CURLOPT_HTTPGET, true);
     } else {
         if ($this->getRequestType() == "POST") {
             @curl_setopt($this->resource, CURLOPT_POST, true);
             @curl_setopt($this->resource, CURLOPT_POSTFIELDS, $this->getPostArgs(false));
         } else {
             if ($this->getRequestType() == "PUT") {
                 @curl_setopt($this->resource, CURLOPT_PUT, true);
             }
         }
     }
     $this->response = curl_exec($this->resource);
     $this->errorNo = curl_errno($this->resource);
     if ($this->errorNo) {
         $this->error = curl_error($this->resource);
         throw new Recipe_Exception_Generic("There is an error occured in cURL session (" . $this->errorNo . "): " . $this->error);
     }
     Hook::event("HttpRequestInitLast", array($this));
     return $this;
 }
开发者ID:enriquesomolinos,项目名称:Bengine,代码行数:40,代码来源:Curl.php


示例14: initContent

 /**
  * Assign template vars related to page content
  * @see FrontController::initContent()
  */
 public function initContent()
 {
     parent::initContent();
     $this->productSort();
     // Override default configuration values: cause the new products page must display latest products first.
     if (!Tools::getIsset('orderway') || !Tools::getIsset('orderby')) {
         $this->orderBy = 'date_add';
         $this->orderWay = 'DESC';
     }
     $nbProducts = (int) Product::getNewProducts($this->context->language->id, null, null, true);
     $this->pagination($nbProducts);
     $products = Product::getNewProducts($this->context->language->id, (int) $this->p - 1, (int) $this->n, false, $this->orderBy, $this->orderWay);
     $this->addColorsToProductList($products);
     $this->context->smarty->assign(array('HOOK_LEFT_COLUMN' => Hook::exec('displayLeftColumn'), 'products' => $products, 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'nbProducts' => (int) $nbProducts, 'homeSize' => Image::getSize(ImageType::getFormatedName('home')), 'comparator_max_item' => Configuration::get('PS_COMPARATOR_MAX_ITEM')));
     if ($this->ajax) {
         $product_list = $this->context->smarty->fetch(_PS_THEME_DIR_ . 'product-list.tpl');
         $pagination = $this->context->smarty->fetch(_PS_THEME_DIR_ . 'pagination.tpl');
         $nbLeftProducts = $nbProducts - ($this->n * ($this->p - 1) + count($products));
         $nbLeftProductsPercentage = ($nbProducts - $nbLeftProducts) / $nbProducts * 100;
         echo Tools::jsonEncode(array('productList' => utf8_encode($product_list), 'pagination' => $pagination, 'nbRenderedProducts' => $nbProducts, 'nbLeftProducts' => $nbLeftProducts, 'nbLeftProductsPercentage' => $nbLeftProductsPercentage));
         die;
     } else {
         $this->setTemplate(_PS_THEME_DIR_ . 'new-products.tpl');
     }
 }
开发者ID:WhisperingTree,项目名称:etagerca,代码行数:29,代码来源:NewProductsController.php


示例15: index

 public function index()
 {
     $this->load->model('admin/admin_menu');
     $this->load->add_package_path(APPPATH . 'third_party/scrud/');
     $_GET['table'] = 'crud_languages';
     $var = array();
     $conf = array();
     $var['main_menu'] = $this->admin_menu->fetch('tool');
     if (!file_exists(__DATABASE_CONFIG_PATH__ . '/' . $this->db->database . '/' . $_GET['table'] . '.php')) {
         exit;
     } else {
         require __DATABASE_CONFIG_PATH__ . '/' . $this->db->database . '/' . $_GET['table'] . '.php';
     }
     $hook = Hook::singleton();
     $hook->addFunction('SCRUD_EDIT_FORM', 'edit_form');
     $hook->addFunction('SCRUD_VALIDATE', 'validate_language_code');
     $hook->addFunction('SCRUD_BEFORE_UPDATE', 'before_update');
     $hook->addFunction('SCRUD_COMPLETE_SAVE', 'complete_save');
     $hook->addFunction('SCRUD_COMPLETE_DELETE', 'complete_delete');
     $conf['theme_path'] = FCPATH . 'application/views/admin/language/templates';
     $this->load->library('crud', array('table' => $_GET['table'], 'conf' => $conf));
     $var['main_content'] = $this->load->view('admin/language/index', array('content' => $this->crud->process()), true);
     $this->load->model('admin/admin_footer');
     $var['main_footer'] = $this->admin_footer->fetch();
     $this->load->view('layouts/admin/user/default', $var);
 }
开发者ID:Dannyngs,项目名称:chinese_med,代码行数:26,代码来源:language.php


示例16: getPaymentOptions

 public function getPaymentOptions()
 {
     // Payment options coming from intermediate, deprecated version of the Advanced API
     $rawDisplayPaymentEUOptions = Hook::exec('displayPaymentEU', array(), null, true);
     if (!is_array($rawDisplayPaymentEUOptions)) {
         $rawDisplayPaymentEUOptions = array();
     }
     $displayPaymentEUOptions = array_map(array('PrestaShop\\PrestaShop\\Core\\Payment\\PaymentOption', 'convertLegacyOption'), $rawDisplayPaymentEUOptions);
     // Payment options coming from regular Advanced API
     $advancedPaymentOptions = Hook::exec('advancedPaymentOptions', array(), null, true);
     if (!is_array($advancedPaymentOptions)) {
         $advancedPaymentOptions = array();
     }
     // Payment options coming from regular Advanced API
     $newOption = Hook::exec('paymentOptions', array(), null, true);
     if (!is_array($newOption)) {
         $newOption = array();
     }
     $paymentOptions = array_merge($displayPaymentEUOptions, $advancedPaymentOptions, $newOption);
     foreach ($paymentOptions as $paymentOptionKey => $paymentOption) {
         if (!is_array($paymentOption)) {
             unset($paymentOptions[$paymentOptionKey]);
         }
     }
     return $paymentOptions;
 }
开发者ID:M03G,项目名称:PrestaShop,代码行数:26,代码来源:PaymentOptionsFinder.php


示例17: ajaxReturn

 /**
  * Ajax方式返回数据到客户端
  * @access protected
  * @param mixed $data 要返回的数据
  * @param String $type AJAX返回数据格式
  * @return void
  */
 protected function ajaxReturn($data, $type = '', $json_option = 0)
 {
     $data['referer'] = $data['url'] ? $data['url'] : "";
     $data['state'] = $data['status'] ? "success" : "fail";
     if (empty($type)) {
         $type = C('DEFAULT_AJAX_RETURN');
     }
     switch (strtoupper($type)) {
         case 'JSON':
             // 返回JSON数据格式到客户端 包含状态信息
             header('Content-Type:application/json; charset=utf-8');
             exit(json_encode($data, $json_option));
         case 'XML':
             // 返回xml格式数据
             header('Content-Type:text/xml; charset=utf-8');
             exit(xml_encode($data));
         case 'JSONP':
             // 返回JSON数据格式到客户端 包含状态信息
             header('Content-Type:application/json; charset=utf-8');
             $handler = isset($_GET[C('VAR_JSONP_HANDLER')]) ? $_GET[C('VAR_JSONP_HANDLER')] : C('DEFAULT_JSONP_HANDLER');
             exit($handler . '(' . json_encode($data, $json_option) . ');');
         case 'EVAL':
             // 返回可执行的js脚本
             header('Content-Type:text/html; charset=utf-8');
             exit($data);
         case 'AJAX_UPLOAD':
             // 返回JSON数据格式到客户端 包含状态信息
             header('Content-Type:text/html; charset=utf-8');
             exit(json_encode($data, $json_option));
         default:
             // 用于扩展其他返回格式数据
             Hook::listen('ajax_return', $data);
     }
 }
开发者ID:lvxiaolin,项目名称:thinkcfm,代码行数:41,代码来源:AppframeController.class.php


示例18: text

 public function text()
 {
     $text = nl2br($this->entity->text);
     //turn links to clickable
     $text = app('App\\Repositories\\PostRepository')->turnLinks($text);
     return \Hook::fire('post-text', $text);
 }
开发者ID:weddingjuma,项目名称:world,代码行数:7,代码来源:MessagePresenter.php


示例19: instance

 public static function instance()
 {
     if (self::$instance === NULL) {
         self::$instance = new Hook();
     }
     return self::$instance;
 }
开发者ID:hemsinfotech,项目名称:kodelearn,代码行数:7,代码来源:hook.php


示例20: send

 /**
  * 发送数据到客户端
  * @access protected
  * @param mixed $data 要返回的数据
  * @param String $type 返回数据格式
  * @param bool $return 是否返回数据
  * @return void
  */
 public static function send($data = '', $type = '', $return = false)
 {
     $type = strtolower($type ?: self::$type);
     $headers = ['json' => 'application/json', 'xml' => 'text/xml', 'html' => 'text/html', 'jsonp' => 'application/javascript', 'script' => 'application/javascript', 'text' => 'text/plain'];
     if (!headers_sent() && isset($headers[$type])) {
         header('Content-Type:' . $headers[$type] . '; charset=utf-8');
     }
     $data = $data ?: self::$data;
     if (is_callable(self::$tramsform)) {
         $data = call_user_func_array(self::$tramsform, [$data]);
     } else {
         switch ($type) {
             case 'json':
                 // 返回JSON数据格式到客户端 包含状态信息
                 $data = json_encode($data, JSON_UNESCAPED_UNICODE);
                 break;
             case 'jsonp':
                 // 返回JSON数据格式到客户端 包含状态信息
                 $handler = !empty($_GET[Config::get('var_jsonp_handler')]) ? $_GET[Config::get('var_jsonp_handler')] : Config::get('default_jsonp_handler');
                 $data = $handler . '(' . json_encode($data, JSON_UNESCAPED_UNICODE) . ');';
                 break;
             case '':
                 // 类型为空不做处理
                 break;
             default:
                 // 用于扩展其他返回格式数据
                 APP_HOOK && Hook::listen('return_data', $data);
         }
     }
     if ($return) {
         return $data;
     }
     echo $data;
     self::isExit() && exit;
 }
开发者ID:cy520win,项目名称:cyweb,代码行数:43,代码来源:response.php



注:本文中的Hook类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP HookManager类代码示例发布时间:2022-05-23
下一篇:
PHP HomeView类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap