本文整理汇总了PHP中SC_Product_Ex::getListByProductIds方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_Product_Ex::getListByProductIds方法的具体用法?PHP SC_Product_Ex::getListByProductIds怎么用?PHP SC_Product_Ex::getListByProductIds使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SC_Product_Ex
的用法示例。
在下文中一共展示了SC_Product_Ex::getListByProductIds方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: lfGetRanking
/**
* おすすめ商品検索.
*
* @return array $arrBestProducts 検索結果配列
*/
public function lfGetRanking()
{
$objRecommend = new SC_Helper_BestProducts_Ex();
// おすすめ商品取得
$arrRecommends = $objRecommend->getList(RECOMMEND_NUM);
$response = array();
if (count($arrRecommends) > 0) {
// 商品一覧を取得
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objProduct = new SC_Product_Ex();
// where条件生成&セット
$arrProductId = array();
foreach ($arrRecommends as $key => $val) {
$arrProductId[] = $val['product_id'];
}
$arrProducts = $objProduct->getListByProductIds($objQuery, $arrProductId);
// 税込金額を設定する
SC_Product_Ex::setIncTaxToProducts($arrProducts);
// おすすめ商品情報にマージ
foreach ($arrRecommends as $key => $value) {
if (isset($arrProducts[$value['product_id']])) {
$product = $arrProducts[$value['product_id']];
if ($product['status'] == 1 && (!NOSTOCK_HIDDEN || ($product['stock_max'] >= 1 || $product['stock_unlimited_max'] == 1))) {
$response[] = array_merge($value, $arrProducts[$value['product_id']]);
}
} else {
// 削除済み商品は除外
unset($arrRecommends[$key]);
}
}
}
return $response;
}
开发者ID:ryoogata,项目名称:eccube-SQLAzureSupport-plugin,代码行数:38,代码来源:LC_Page_FrontParts_Bloc_Recommend.php
示例2: lfGetProductsDetail
/**
* 商品情報を取得する
*
* @param SC_Query $objQuery DB操作クラス
* @param integer $product_id 商品ID
* @return array $arrProduct 取得結果を配列で返す
*/
function lfGetProductsDetail(&$objQuery, $product_id = 'all')
{
$objProduct = new SC_Product_Ex();
// --- 商品詳細の取得
if ($product_id == 'all') {
$objQuery->setOrder('product_id');
$arrProductLsit = $objProduct->lists($objQuery);
} else {
$arrProductLsit = $objProduct->getListByProductIds($objQuery, array($product_id));
}
// 各商品のカテゴリIDとランクの取得
$arrProduct = array();
foreach ($arrProductLsit as $key => $val) {
$sql = '';
$sql .= ' SELECT';
$sql .= ' T1.category_id,';
$sql .= ' T1.rank AS product_rank,';
$sql .= ' T2.rank AS category_rank';
$sql .= ' FROM';
$sql .= ' dtb_product_categories AS T1';
$sql .= ' LEFT JOIN';
$sql .= ' dtb_category AS T2';
$sql .= ' ON';
$sql .= ' T1.category_id = T2.category_id';
$sql .= ' WHERE';
$sql .= ' product_id = ?';
$arrCategory = $objQuery->getAll($sql, array($val['product_id']));
if (!empty($arrCategory)) {
$arrProduct[$key] = array_merge($val, $arrCategory[0]);
}
}
return $arrProduct;
}
示例3: lfGetProductsList
/**
*
* @param SC_Product_Ex $objProduct
*/
public function lfGetProductsList($searchCondition, $disp_number, $startno, &$objProduct)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objDb = new SC_Helper_DB_Ex();
$arrOrderVal = array();
// 表示順序
switch ($this->orderby) {
// ダウンロード順
case 'download':
$status = ORDER_PRE_END;
$objProduct->setProductsOrder('count(*)', "(SELECT B.* FROM dtb_order A INNER JOIN dtb_order_detail B USING(order_id) WHERE A.del_flg = 0 AND A.status = {$status})", 'ASC');
break;
// 販売価格が安い順
// 販売価格が安い順
case 'price':
$objProduct->setProductsOrder('price02', 'dtb_products_class', 'ASC');
break;
// 新着順
// 新着順
case 'date':
if ($objDb->sfColumnExists('dtb_products', 'auto_display_start_date')) {
$objProduct->setProductsOrder('auto_display_start_date', 'dtb_products', 'DESC');
} else {
$objProduct->setProductsOrder('create_date', 'dtb_products', 'DESC');
}
break;
default:
// FIXME 指定した カラムが損z内下場合はそのカラムをキーとする。
if ($objDb->sfColumnExists('dtb_products', 'auto_display_start_date') && strlen($this->orderby) == 0) {
$objProduct->setProductsOrder('auto_display_start_date', 'dtb_products', 'DESC');
} elseif ($objDb->sfColumnExists('dtb_products', $this->orderby)) {
$objProduct->setProductsOrder($this->orderby, 'dtb_products', 'DESC');
break;
}
case "rank":
if (strlen($searchCondition['where_category']) >= 1) {
$dtb_product_categories = '(SELECT * FROM dtb_product_categories WHERE ' . $searchCondition['where_category'] . ')';
$arrOrderVal = $searchCondition['arrvalCategory'];
} else {
$dtb_product_categories = 'dtb_product_categories';
}
$col = 'MAX(T3.rank * 2147483648 + T2.rank)';
$from = "{$dtb_product_categories} T2 JOIN dtb_category T3 ON T2.category_id = T3.category_id";
$where = 'T2.product_id = alldtl.product_id';
$sub_sql = $objQuery->getSql($col, $from, $where);
$objQuery->setOrder("({$sub_sql}) DESC ,product_id DESC");
break;
}
// 取得範囲の指定(開始行番号、行数のセット)
$objQuery->setLimitOffset($disp_number, $startno);
$objQuery->setWhere($searchCondition['where']);
// 表示すべきIDとそのIDの並び順を一気に取得
$arrProductId = $objProduct->findProductIdsOrder($objQuery, array_merge($searchCondition['arrval'], $arrOrderVal));
$objQuery =& SC_Query_Ex::getSingletonInstance();
$arrProducts = $objProduct->getListByProductIds($objQuery, $arrProductId);
// 規格を設定
$objProduct->setProductsClassByProductIds($arrProductId);
$arrProducts['productStatus'] = $objProduct->getProductStatus($arrProductId);
foreach ($arrProducts as $product_id => &$arrProduct) {
if ($product_id == 'productStatus') {
continue;
}
$category_id = $objProduct->getCategoryIds($product_id);
$arrProduct["category_id"] = array_shift($category_id);
$arrProduct["category"] = $this->arrCategory[$arrProduct["category_id"]];
$arrProduct["category_name"] = $arrProduct["category"]["category_name"];
if ($objDb->sfColumnExists('dtb_category', 'category_code')) {
$arrProduct["category_code"] = $arrProduct["category"]["category_code"];
$arrProduct["category_image1"] = $arrProduct["category"]["category_image1"] ?: 0;
$arrProduct["category_image2"] = $arrProduct["category"]["category_image2"] ?: 0;
$arrProduct["category_image3"] = $arrProduct["category"]["category_image3"] ?: 0;
$arrProduct["category_image4"] = $arrProduct["category"]["category_image4"] ?: 0;
$arrProduct["category_image5"] = $arrProduct["category"]["category_image5"] ?: 0;
}
}
return $arrProducts;
}
示例4: lfPreGetRecommendProducts
function lfPreGetRecommendProducts($product_id)
{
$objProduct = new SC_Product_Ex();
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->setOrder('rank DESC');
$arrRecommendData = $objQuery->select('recommend_product_id, comment', 'dtb_recommend_products as t1 left join dtb_products as t2 on t1.recommend_product_id = t2.product_id', 't1.product_id = ? and t2.del_flg = 0 and t2.status = 1', array($product_id));
$arrRecommendProductId = array();
foreach ($arrRecommendData as $recommend) {
$arrRecommendProductId[] = $recommend['recommend_product_id'];
}
$objQuery =& SC_Query_Ex::getSingletonInstance();
$arrProducts = $objProduct->getListByProductIds($objQuery, $arrRecommendProductId);
$arrRecommend = array();
foreach ($arrRecommendData as $key => $arrRow) {
$arrRecommendData[$key] = array_merge($arrRow, $arrProducts[$arrRow['recommend_product_id']]);
}
return $arrRecommendData;
}
示例5: lfPreGetRecommendProducts
function lfPreGetRecommendProducts($product_id)
{
$objProduct = new SC_Product_Ex();
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->setOrder("rank DESC");
$arrRecommendData = $objQuery->select("recommend_product_id, comment", "dtb_recommend_products", "product_id = ?", array($product_id));
$arrRecommendProductId = array();
foreach ($arrRecommendData as $recommend) {
$arrRecommendProductId[] = $recommend["recommend_product_id"];
$arrRecommendData[$recommend["recommend_product_id"]] = $recommend['comment'];
}
$objQuery =& SC_Query_Ex::getSingletonInstance();
$arrProducts = $objProduct->getListByProductIds($objQuery, $arrRecommendProductId);
//取得している並び順で並び替え
// FIXME SC_Productあたりにソート処理はもってくべき
$arrProducts2 = array();
foreach ($arrProducts as $item) {
$arrProducts2[$item['product_id']] = $item;
}
$arrRecommend = array();
foreach ($arrRecommendProductId as $product_id) {
$arrProducts2[$product_id]['comment'] = $arrRecommendData[$product_id];
$arrRecommend[] = $arrProducts2[$product_id];
}
return $arrRecommend;
}
示例6: lfGetProductsList
/**
* @param SC_Product_Ex $objProduct
*/
public function lfGetProductsList($searchCondition, $disp_number, $startno, &$objProduct)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$arrOrderVal = array();
// 表示順序
switch ($this->orderby) {
// 販売価格が安い順
case 'price':
$objProduct->setProductsOrder('price02', 'dtb_products_class', 'ASC');
break;
// 新着順
// 新着順
case 'date':
$objProduct->setProductsOrder('create_date', 'dtb_products', 'DESC');
break;
default:
if (strlen($searchCondition['where_category']) >= 1) {
$dtb_product_categories = '(SELECT * FROM dtb_product_categories WHERE ' . $searchCondition['where_category'] . ')';
$arrOrderVal = $searchCondition['arrvalCategory'];
} else {
$dtb_product_categories = 'dtb_product_categories';
}
$col = 'MAX(T3.rank * 2147483648 + T2.rank)';
$from = "{$dtb_product_categories} T2 JOIN dtb_category T3 ON T2.category_id = T3.category_id";
$where = 'T2.product_id = alldtl.product_id';
$sub_sql = $objQuery->getSql($col, $from, $where);
$objQuery->setOrder("({$sub_sql}) DESC ,product_id DESC");
break;
}
// 取得範囲の指定(開始行番号、行数のセット)
$objQuery->setLimitOffset($disp_number, $startno);
$objQuery->setWhere($searchCondition['where']);
// 表示すべきIDとそのIDの並び順を一気に取得
$arrProductId = $objProduct->findProductIdsOrder($objQuery, array_merge($searchCondition['arrval'], $arrOrderVal));
$objQuery =& SC_Query_Ex::getSingletonInstance();
$arrProducts = $objProduct->getListByProductIds($objQuery, $arrProductId);
// 規格を設定
$objProduct->setProductsClassByProductIds($arrProductId);
$arrProducts['productStatus'] = $objProduct->getProductStatus($arrProductId);
return $arrProducts;
}
示例7: lfGetRanking
/**
* おすすめ商品検索.
*
* @return array $arrBestProducts 検索結果配列
*/
function lfGetRanking()
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objProduct = new SC_Product_Ex();
// おすすめ商品取得
$col = 'T1.best_id, T1.category_id, T1.rank, T1.product_id, T1.title, T1.comment, T1.create_date, T1.update_date';
$table = 'dtb_best_products as T1 INNER JOIN dtb_products as T2 ON T1.product_id = T2.product_id';
$where = 'T1.del_flg = 0 and T2.status = 1';
$objQuery->setOrder('T1.rank');
$objQuery->setLimit(RECOMMEND_NUM);
$arrBestProducts = $objQuery->select($col, $table, $where);
$objQuery =& SC_Query_Ex::getSingletonInstance();
if (count($arrBestProducts) > 0) {
// 商品一覧を取得
// where条件生成&セット
$arrProductId = array();
$where = 'product_id IN (';
foreach ($arrBestProducts as $key => $val) {
$arrProductId[] = $val['product_id'];
}
// 取得
$arrProductList = $objProduct->getListByProductIds($objQuery, $arrProductId);
// おすすめ商品情報にマージ
foreach ($arrBestProducts as $key => $value) {
$arrRow =& $arrBestProducts[$key];
if (isset($arrProductList[$arrRow['product_id']])) {
$arrRow = array_merge($arrRow, $arrProductList[$arrRow['product_id']]);
} else {
// 削除済み商品は除外
unset($arrBestProducts[$key]);
}
}
}
return $arrBestProducts;
}
示例8: lfGetVideoPlayer
/**
* 新着商品の情報を取得
*
* @return array
* @setcookie array
*/
function lfGetVideoPlayer()
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objProduct = new SC_Product_Ex();
// プラグイン情報を取得.
$plugin = SC_Plugin_Util_Ex::getPluginByPluginCode("VideoPlayer");
//表示条件
$disp_rule = is_numeric($plugin['free_field1']) ? $plugin['free_field1'] : 0;
//表示件数
$disp_count = unserialize($plugin['free_field2']);
//表示ステータス
$product_status = $plugin['free_field3'];
//デバイスフラグ
$disp_device == SC_Display_Ex::detectDevice();
// 新着商品情報取得
$col = 'product_id';
$table = 'dtb_products';
$where = 'status = 1 and del_flg = 0';
if ($product_status) {
$arrStatus = unserialize($product_status);
if (is_array($arrStatus)) {
$strstatus = '';
foreach ($arrStatus as $status) {
if ($strstatus) {
$strstatus .= ',';
}
$strstatus .= $status;
}
$where .= ' ' . 'AND product_id IN (' . ' SELECT product_id FROM dtb_product_status WHERE product_status_id IN (' . $strstatus . ')' . ')';
}
}
switch ($disp_rule) {
case 1:
//登録日順
$objQuery->setOrder('create_date desc');
break;
case 2:
//更新日順
$objQuery->setOrder('update_date desc');
break;
}
if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_PC) {
$objQuery->setLimit($disp_count[10]);
} elseif (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE) {
$objQuery->setLimit($disp_count[1]);
} elseif (SC_Display_Ex::detectDevice() == DEVICE_TYPE_SMARTPHONE) {
$objQuery->setLimit($disp_count[2]);
}
$arrProducts = $objQuery->select($col, $table, $where);
$objQuery =& SC_Query_Ex::getSingletonInstance();
if (count($arrProducts) > 0) {
$arrProductId = array();
foreach ($arrProducts as $key => $val) {
$arrProductId[] = $val['product_id'];
}
// 商品詳細情報取得
$arrTmp = $objProduct->getListByProductIds($objQuery, $arrProductId);
foreach ($arrTmp as $key => $arrRow) {
$_row = $arrRow;
$arrProductList[] = $_row;
}
}
return $arrProductList;
}
示例9: getRecommendProducts
/**
* 既に登録されている内容を取得する
* @param SC_Helper_BestProducts_Ex $objRecommend
* @return Array $arrReturnProducts データベースに登録されているおすすめ商品の配列
*/
public function getRecommendProducts(SC_Helper_BestProducts_Ex &$objRecommend)
{
$arrList = $objRecommend->getList();
// product_id の一覧を作成
$product_ids = array();
foreach ($arrList as $value) {
$product_ids[] = $value['product_id'];
}
$objProduct = new SC_Product_Ex();
$objQuery = $objQuery =& SC_Query_Ex::getSingletonInstance();
$arrProducts = $objProduct->getListByProductIds($objQuery, $product_ids);
$arrReturnProducts = array();
foreach ($arrList as $data) {
$data['main_list_image'] = $arrProducts[$data['product_id']]['main_list_image'];
$data['name'] = $arrProducts[$data['product_id']]['name'];
$arrReturnProducts[$data['rank']] = $data;
}
return $arrReturnProducts;
}
示例10: lfGetRanking
/**
* おすすめ商品検索.
*
* @return array $arrBestProducts 検索結果配列
*/
function lfGetRanking()
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objProduct = new SC_Product_Ex();
// おすすめ商品取得
$col = 'best_id, best_id, category_id, rank, product_id, title, comment, create_date, update_date';
$table = 'dtb_best_products';
$where = 'del_flg = 0';
$objQuery->setOrder('rank');
$objQuery->setLimit(RECOMMEND_NUM);
$arrBestProducts = $objQuery->select($col, $table, $where);
$objQuery =& SC_Query_Ex::getSingletonInstance();
if (count($arrBestProducts) > 0) {
// 商品一覧を取得
// where条件生成&セット
$arrProductId = array();
$where = 'product_id IN (';
foreach ($arrBestProducts as $key => $val) {
$arrProductId[] = $val['product_id'];
}
// 取得
$arrTmp = $objProduct->getListByProductIds($objQuery, $arrProductId);
foreach ($arrTmp as $key => $arrRow) {
$arrProductList[$arrRow['product_id']] = $arrRow;
}
// おすすめ商品情報にマージ
foreach (array_keys($arrBestProducts) as $key) {
$arrRow =& $arrBestProducts[$key];
if (isset($arrProductList[$arrRow['product_id']])) {
$arrRow = array_merge($arrRow, $arrProductList[$arrRow['product_id']]);
} else {
// 削除済み商品は除外
unset($arrBestProducts[$key]);
}
}
}
return $arrBestProducts;
}