$conditions = array(); $table = '?:products'; if (!empty($params['product_id'])) { $conditions[] = db_quote('product_id != ?i', $params['product_id']); } if (!empty($params['category_id'])) { $table = '?:products_categories'; $category_ids = db_get_fields("SELECT a.category_id\n FROM ?:categories as a\n LEFT JOIN ?:categories as b\n ON b.category_id = ?i\n WHERE a.id_path LIKE CONCAT(b.id_path, '/%')", $params['category_id']); $conditions[] = db_quote('category_id IN (?n)', $category_ids); } $condition = implode(' AND ', $conditions); $product_ids = fn_twg_get_random_ids($items_qty, 'product_id', $table, $condition); if (!empty($product_ids)) { $search_params = array('pid' => $product_ids); $search_params = array_merge($_REQUEST, $search_params); list($result, $search_params) = fn_twg_api_get_products($search_params, $items_qty, $lang_code); } } elseif ($meta['object'] == 'categories') { $condition = ''; if (!empty($params['category_id'])) { $category_path = db_get_field("SELECT id_path FROM ?:categories WHERE category_id = ?i", $params['category_id']); if (!empty($category_path)) { $condition = "id_path LIKE '{$category_path}/%'"; } } $category_ids = fn_twg_get_random_ids($items_qty, 'category_id', '?:categories', $condition); if (!empty($category_ids)) { $search_params = array('cid' => $category_ids, 'group_by_level' => false); $search_params = array_merge($_REQUEST, $search_params); $result = fn_twg_api_get_categories($search_params, $lang_code); }
/** * Returns info for homepage * @param object $response */ function fn_twg_set_response_homepage(&$response) { $home_page_content = TwigmoSettings::get('home_page_content'); if (empty($home_page_content)) { $home_page_content = 'random_products'; } if ($home_page_content == 'home_page_blocks' or $home_page_content == 'tw_home_page_blocks') { // Use block manager: get blocks if ($home_page_content == 'home_page_blocks') { $location = 'index.index'; } else { $location = 'twigmo.post'; } $blocks = TwigmoBlock::getBlocksForLocation($location, TwigmoSettings::get('block_types')); // Return blocks $response->setData($blocks); } else { $block = array(); // Random products or category products if ($home_page_content == 'random_products') { $product_ids = fn_twg_get_random_ids(TWG_RESPONSE_ITEMS_LIMIT, 'product_id', '?:products', db_quote("status = ?s", 'A')); $block['title'] = 'random_products'; } else { $product_ids = fn_twg_get_category_product_ids($home_page_content, false) or array(); $block['title'] = fn_get_category_name($home_page_content); } list($block['products']) = fn_twg_api_get_products(array('pid' => $product_ids), count($product_ids)); $block['total_items'] = count($block['products']); $response->setData(array($block)); } }
$object_name = ''; $condition = array(); $options = array('lang_code' => $lang_code); $result = array(); $is_paginate = false; $total_items = 0; $items_per_page = !empty($_REQUEST['items_per_page']) ? $_REQUEST['items_per_page'] : TWG_RESPONSE_ITEMS_LIMIT; if ($object == 'timeline') { list($logs, $pagination_params) = fn_twg_get_logs($_REQUEST); $response->setData($logs); fn_twg_set_response_pagination($response, $pagination_params); } elseif ($object == 'dashboard') { $permissions = fn_twg_get_admin_permissions($auth); $data = array(); if ($permissions['view_catalog']) { list($data['products']) = fn_twg_api_get_products(array('amount_to' => 10), 7, $lang_code); $data['products_stats'] = fn_twg_get_product_stats(); } if ($permissions['view_orders']) { $data['orders'] = fn_twg_get_latest_orders($lang_code); } if ($permissions['view_reports']) { $data['summary_stats'] = fn_twg_get_summary_stats(); } if ($permissions['view_users']) { $data['users_stats'] = fn_twg_get_user_stats(); } if ($permissions['view_logs']) { list($logs, $pagination_params) = fn_twg_get_logs(); $data['timeline'] = array($logs, $pagination_params); }