本文整理汇总了PHP中product::get_struct方法的典型用法代码示例。如果您正苦于以下问题:PHP product::get_struct方法的具体用法?PHP product::get_struct怎么用?PHP product::get_struct使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类product
的用法示例。
在下文中一共展示了product::get_struct方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: index
/**
* 显示商品列表
*/
public function index()
{
$return_struct = array('status' => 0, 'code' => 501, 'msg' => 'Not Implemented', 'content' => array());
try {
//* 初始化返回数据 */
$return_data = array('assoc' => NULL, 'count' => 0);
//* 收集请求数据 ==根据业务逻辑定制== */
$request_data = $this->input->get();
$request_data['status'] = isset($request_data['status']) ? (int) $request_data['status'] : 0;
$struct = product::get_struct($request_data);
$query_struct_current = $struct['query'];
$query_struct_current['where']['type'] = array(ProductService::PRODUCT_TYPE_GOODS, ProductService::PRODUCT_TYPE_CONFIGURABLE, ProductService::PRODUCT_TYPE_ASSEMBLY);
$request_struct_current = $struct['request'];
// 每页条目数
controller_tool::request_per_page($query_struct_current, $request_data);
$return_data = BLL_Product::index($query_struct_current);
// 模板输出 分页
$this->pagination = new Pagination(array('total_items' => $return_data['count'], 'items_per_page' => $query_struct_current['limit']['per_page']));
$query_struct_current['limit']['page'] = $this->pagination->current_page;
//* 如果是ajax请求缩减返回的字段 ==根据业务逻辑定制== */
if ($this->is_ajax_request()) {
$requestkeys = array('id', 'category_id', 'title', 'store', 'on_sale', 'price', 'sku');
array_walk($return_data['assoc'], 'util::simplify_return_array', $requestkeys);
}
//* 补充&修改返回结构体 */
$return_struct['status'] = 1;
$return_struct['code'] = 200;
$return_struct['msg'] = '';
$return_struct['content'] = $return_data;
//* 请求类型 */
if ($this->is_ajax_request()) {
// ajax 请求
// json 输出
$this->template->content = $return_struct;
} else {
//* html 输出 ==根据业务逻辑定制== */
//* 模板输出 */
$this->template->return_struct = $return_struct;
$content = new View($this->package_name . '/' . $this->class_name . '/' . __FUNCTION__);
//* 变量绑定 */
$this->template->title = Kohana::config('site.name');
$this->template->content = $content;
//* 请求结构数据绑定 */
$this->template->content->request_data = $request_data;
$this->template->content->request_struct = $request_struct_current;
$this->template->content->query_struct = $query_struct_current;
//* 返回结构体绑定 */
$this->template->content->return_struct = $return_struct;
}
// end of request type determine
} catch (MyRuntimeException $ex) {
$this->_ex($ex, $return_struct, $request_data);
}
}
示例2: index
public function index()
{
$return_struct = array('status' => 0, 'code' => 501, 'msg' => 'Not Implemented', 'content' => array());
try {
//* 初始化返回数据 */
$return_data = array('assoc' => NULL, 'count' => 0);
//* 收集请求数据 ==根据业务逻辑定制== */
$request_data = $this->input->get();
$site_ids = role::get_site_ids();
if (empty($site_ids)) {
throw new MyRuntimeException(Kohana::lang('o_global.access_denied'), 403);
}
$in_site_id = site::id();
if (isset($request_data['site_id']) and $request_data['site_id'] === '0') {
unset($request_data['site_id']);
}
if (isset($request_data['site_id']) and !in_array($request_data['site_id'], $site_ids)) {
throw new MyRuntimeException(Kohana::lang('o_global.access_denied'), 403);
}
if ($in_site_id > 0) {
$query_site_id = $in_site_id;
} else {
throw new MyRuntimeException(Kohana::lang('o_global.select_site'), 400);
}
$struct = product::get_struct($request_data, $query_site_id);
$query_struct_current = $struct['query'];
$request_struct_current = $struct['request'];
$query_struct_current['limit']['per_page'] = 1;
$return_data = BLL_Product::index($query_struct_current);
$products = $return_data['assoc'];
$content = new View($this->package_name . '/' . $this->class_name . '/' . __FUNCTION__);
$this->template->content = $content;
$this->template->content->products = $products;
} catch (MyRuntimeException $ex) {
$return_struct['status'] = 0;
$return_struct['code'] = $ex->getCode();
$return_struct['msg'] = $ex->getMessage();
//TODO 异常处理
//throw $ex;
if ($this->is_ajax_request()) {
$this->template->content = $return_struct;
} else {
$this->template->return_struct = $return_struct;
$content = new View('info');
$this->template->content = $content;
//* 请求结构数据绑定 */
$this->template->content->request_data = $request_data;
//* 返回结构体绑定 */
$this->template->content->return_struct = $return_struct;
}
}
}
示例3: search_product
public function search_product()
{
role::check('promotion_promotion');
// 收集请求数据
$request_data = $this->input->get();
$request_data['stype'] = $request_data['type'];
$request_data['on_sale'] = 1;
$request_data['per_page'] = 6;
$struct = product::get_struct($request_data);
$query_struct_current = $struct['query'];
$request_struct_current = $struct['request'];
$request_data['keyword'] && ($query_struct_current['like'][$request_data['stype']] = $request_data['keyword']);
$return_data = BLL_Product::index($query_struct_current);
$returnData['content'] = $return_data['assoc'];
$returnData['page'] = isset($request_struct_current['page']) ? $request_struct_current['page'] : 1;
$returnData['count'] = ceil($return_data['count'] / $request_struct_current['per_page']);
echo json_encode($returnData);
exit;
}
示例4: index
public function index()
{
$return_struct = array('status' => 0, 'code' => 501, 'msg' => 'Not Implemented', 'content' => array());
try {
//* 收集请求数据 ==根据业务逻辑定制== */
$request_data = $this->input->get();
//* 初始化返回数据 */
$return_data = array('assoc' => NULL, 'count' => 0);
$search_value = isset($request_data['keyword']) ? $request_data['keyword'] : array();
$category_list = array();
$brand_list = array();
$product_ids = array();
$relation_product_ids = array();
$product_id = $request_data['product_id'];
$product_service = ProductService::get_instance();
$product = $product_service->get($product_id);
$product_id = $product['id'];
if (!$product_id > 0) {
throw new MyRuntimeException(Kohana::lang('o_global.bad_request'), 400);
} else {
$struct = product::get_struct($request_data);
$query_struct_current = $struct['query'];
$request_struct_current = $struct['request'];
if ($product['type'] == ProductService::PRODUCT_TYPE_CONFIGURABLE || $product['type'] == ProductService::PRODUCT_TYPE_ASSEMBLY) {
$product_id_array = Product_assemblyService::get_instance()->get_good_id_array($product_id);
$product_id_array[] = $product_id;
} else {
$product_id_array = array($product_id);
}
$query_struct_current['not_in']['id'] = $product_id_array;
try {
$return_data = BLL_Product::index($query_struct_current);
if (!empty($return_data['assoc'])) {
// 获取该商品列表中涉及到的分类以及品牌ID
$category_ids = array();
$brand_ids = array();
foreach ($return_data['assoc'] as $product) {
if ($product['category_id'] != 0) {
$category_ids[$product['category_id']] = TRUE;
}
if ($product['brand_id'] != 0) {
$brand_ids[$product['brand_id']] = TRUE;
}
$product_ids[] = $product['id'];
}
$query_struct = array('where' => array('product_id' => $product_id));
foreach (Product_relationService::get_instance()->query_assoc($query_struct) as $relation) {
if (in_array($relation['relation_product_id'], $product_ids)) {
$relation_product_ids[] = $relation['relation_product_id'];
}
}
// 获取分类列表
if (!empty($category_ids)) {
$query_struct = array('where' => array('id' => array_keys($category_ids)));
$categorys = CategoryService::get_instance()->query_assoc($query_struct);
foreach ($categorys as $category) {
$category_list[$category['id']] = $category['title_manage'] ? $category['title_manage'] : $category['title'];
}
}
// 获取品牌列表
if (!empty($brand_ids)) {
$query_struct = array('where' => array('id' => array_keys($brand_ids)));
$brands = BrandService::get_instance()->query_assoc($query_struct);
foreach ($brands as $brand) {
$brand_list[$brand['id']] = $brand['name'];
}
}
}
// 模板输出 分页
$this->pagination = new Pagination(array('total_items' => $return_data['count'], 'items_per_page' => $query_struct_current['limit']['per_page']));
} catch (MyRuntimeException $ex) {
//* ==根据业务逻辑定制== */
//FIXME 根据service层的异常做一些对应处理并抛出用户友好的异常Message
throw $ex;
}
}
//* 如果是ajax请求缩减返回的字段 ==根据业务逻辑定制== */
if ($this->is_ajax_request()) {
$requestkeys = array('id', 'category_id', 'title', 'uri_name', 'store', 'on_sale', 'price', 'sku');
array_walk($return_data['assoc'], 'util::simplify_return_array', $requestkeys);
}
//* 补充&修改返回结构体 */
$return_struct['status'] = 1;
$return_struct['code'] = 200;
$return_struct['msg'] = '';
$return_struct['content'] = $return_data;
//exit("<div id=\"do_debug\" style=\"clear:both;display:;\"><pre>\n".var_export($return_struct,TRUE)."\n</pre></div>");
//* 请求类型 */
if ($this->is_ajax_request()) {
// ajax 请求
// json 输出
$this->template->content = $return_struct;
} else {
//* html 输出 ==根据业务逻辑定制== */
$this->template = new View('layout/commonfix_html');
//* 模板输出 */
$this->template->return_struct = $return_struct;
$content = new View($this->package_name . '/' . $this->class_name . '/' . __FUNCTION__);
//* 变量绑定 */
$this->template->title = Kohana::config('site.name');
//.........这里部分代码省略.........
示例5: add_products
public function add_products()
{
role::check('product_auction');
$return_struct = array('status' => 0, 'code' => 501, 'msg' => 'Not Implemented', 'content' => array());
try {
//* 初始化返回数据 */
$return_data = array();
//* 收集请求数据 ==根据业务逻辑定制== */
$request_data = $this->input->get();
$experience = $this->input->get('experience', 0);
$relation_query_struct = array('where' => array('status!=' => 2, 'experience' => $experience), 'orderby' => array('id' => 'DESC'));
//$relations = Product_auctionService::get_instance()->index($relation_query_struct);
$product_ids = array();
//foreach ($relations as $relation){
//$product_ids[] = $relation['product_id'];
//}
$struct = product::get_struct($request_data);
$query_struct_current = $struct['query'];
$request_struct_current = $struct['request'];
$query_struct_current['where']['type'] = ProductService::PRODUCT_TYPE_GOODS;
//* 调用后端服务获取数据 */
$product_service = ProductService::get_instance();
$return_data['assoc'] = $product_service->index($query_struct_current);
$return_data['count'] = $product_service->count($query_struct_current);
// 初始化分类列表
$category_list = array();
// 初始化品牌列表
$brand_list = array();
if (!empty($return_data['assoc'])) {
// 获取该商品列表中涉及到的分类以及品牌ID
$category_ids = array();
$brand_ids = array();
foreach ($return_data['assoc'] as $product) {
if ($product['category_id'] != 0) {
$category_ids[$product['category_id']] = TRUE;
}
if ($product['brand_id'] != 0) {
$brand_ids[$product['brand_id']] = TRUE;
}
}
// 获取分类列表
if (!empty($category_ids)) {
$query_struct = array('where' => array('id' => array_keys($category_ids)));
$categorys = CategoryService::get_instance()->query_assoc($query_struct);
foreach ($categorys as $category) {
$category_list[$category['id']] = $category['title_manage'];
}
}
// 获取品牌列表
if (!empty($brand_ids)) {
$query_struct = array('where' => array('id' => array_keys($brand_ids)));
$brands = BrandService::get_instance()->query_assoc($query_struct);
foreach ($brands as $brand) {
$brand_list[$brand['id']] = $brand['name'];
}
}
}
// 模板输出 分页
$this->pagination = new Pagination(array('total_items' => $return_data['count'], 'items_per_page' => $query_struct_current['limit']['per_page']));
//* 如果是ajax请求缩减返回的字段 ==根据业务逻辑定制== */
if ($this->is_ajax_request()) {
$requestkeys = array('id', 'category_id', 'title', 'uri_name', 'store', 'on_sale', 'goods_price', 'sku');
array_walk($return_data['assoc'], 'util::simplify_return_array', $requestkeys);
}
//* 补充&修改返回结构体 */
$return_struct['status'] = 1;
$return_struct['code'] = 200;
$return_struct['msg'] = '';
$return_struct['content'] = $return_data;
//exit("<div id=\"do_debug\" style=\"clear:both;display:;\"><pre>\n".var_export($return_struct,TRUE)."\n</pre></div>");
//* 请求类型 */
if ($this->is_ajax_request()) {
// ajax 请求
// json 输出
$this->template->content = $return_struct;
} else {
//* html 输出 ==根据业务逻辑定制== */
$this->template = new View('layout/commonfix_html');
//* 模板输出 */
$this->template->return_struct = $return_struct;
$content = new View('product/auction/add_products', array('experience' => $experience));
//* 变量绑定 */
$this->template->content = $content;
//* 请求结构数据绑定 */
$this->template->content->request_data = $request_data;
//* 返回结构体绑定 */
$this->template->content->return_struct = $return_struct;
//:: 当前应用专用数据
$this->template->content->title = Kohana::config('site.name');
$this->template->content->product_ids = $product_ids;
$this->template->content->category_list = $category_list;
$this->template->content->brand_list = $brand_list;
}
// end of request type determine
} catch (MyRuntimeException $ex) {
$this->_ex($ex, $return_struct, $request_data);
}
}
示例6: index
public function index()
{
$return_struct = array('status' => 0, 'code' => 501, 'msg' => 'Not Implemented', 'content' => array());
try {
//* 初始化返回数据 */
$return_data = array('assoc' => NULL, 'count' => 0);
//* 收集请求数据 ==根据业务逻辑定制== */
$request_data = $this->input->get();
$site_ids = role::get_site_ids();
if (empty($site_ids)) {
throw new MyRuntimeException(Kohana::lang('o_global.access_denied'), 403);
}
if (empty($request_data['classify_id']) or !isset($request_data['site_id']) or !in_array($request_data['site_id'], $site_ids)) {
throw new MyRuntimeException(Kohana::lang('o_global.bad_request'), 400);
}
$struct = product::get_struct($request_data, $request_data['site_id']);
$query_struct_current = $struct['query'];
$request_struct_current = $struct['request'];
$query_struct_current['where']['status'] = 1;
$query_struct_current['where']['type'] = 0;
$query_struct_current['where']['classify_id'] = $request_data['classify_id'];
$query_struct_current['where']['goods_attributeoption_relation_struct_default'] = array('', '{"items":[]}');
// 每页条目数
controller_tool::request_per_page($query_struct_current, $request_data);
try {
$return_data = BLL_Product::index($query_struct_current);
foreach ($return_data['assoc'] as $index => $product) {
$product['pictures'] = BLL_Product_Picture::get($product['id']);
$product['picrels'] = array_keys($product['pictures']);
$return_data['assoc'][$index] = $product;
}
// 模板输出 分页
$this->pagination = new Pagination(array('total_items' => $return_data['count'], 'items_per_page' => $query_struct_current['limit']['per_page']));
$query_struct_current['limit']['page'] = $this->pagination->current_page;
} catch (MyRuntimeException $ex) {
//* ==根据业务逻辑定制== */
//FIXME 根据service层的异常做一些对应处理并抛出用户友好的异常Message
throw $ex;
}
//* 如果是ajax请求缩减返回的字段 ==根据业务逻辑定制== */
if ($this->is_ajax_request()) {
$requestkeys = array('id', 'site_id', 'category_id', 'title', 'uri_name', 'store', 'on_sale', 'goods_price', 'sku');
array_walk($return_data['assoc'], 'util::simplify_return_array', $requestkeys);
}
//* 补充&修改返回结构体 */
$return_struct['status'] = 1;
$return_struct['code'] = 200;
$return_struct['msg'] = '';
$return_struct['content'] = $return_data;
//* 请求类型 */
if ($this->is_ajax_request()) {
// ajax 请求
// json 输出
$this->template->content = $return_struct;
} else {
//* html 输出 ==根据业务逻辑定制== */
$this->template = new View('layout/commonfix_html');
//* 模板输出 */
$this->template->return_struct = $return_struct;
$content = new View($this->package_name . '/product/merge/list');
//* 变量绑定 */
$this->template->title = Kohana::config('site.name');
$this->template->content = $content;
//* 请求结构数据绑定 */
$this->template->content->request_data = $request_data;
$this->template->content->request_struct = $request_struct_current;
$this->template->content->query_struct = $query_struct_current;
$this->template->content->site_id = $request_data['site_id'];
$this->template->content->classify_id = $request_data['classify_id'];
//* 返回结构体绑定 */
$this->template->content->return_struct = $return_struct;
//:: 当前应用专用数据
$this->template->content->title = Kohana::config('site.name');
}
// end of request type determine
} catch (MyRuntimeException $ex) {
$return_struct['status'] = 0;
$return_struct['code'] = $ex->getCode();
$return_struct['msg'] = $ex->getMessage();
//TODO 异常处理
//throw $ex;
if ($this->is_ajax_request()) {
$this->template->content = $return_struct;
} else {
$this->template->return_struct = $return_struct;
$content = new View('info');
$this->template->content = $content;
//* 请求结构数据绑定 */
$this->template->content->request_data = $request_data;
//* 返回结构体绑定 */
$this->template->content->return_struct = $return_struct;
}
}
}