function block_new_products() { global $db, $current_category_id; $query = "\r\n SELECT parent_id\r\n FROM " . TABLE_CATEGORIES . "\r\n WHERE categories_id = :categoriesID\r\n ;"; $query = $db->bindVars($query, ':categoriesID', $current_category_id, 'integer'); $result = $db->Execute($query); $parent_id = $result->fields['parent_id']; $return = array(); $products = array(); $title = ''; // display limits $display_limit = zen_get_products_new_timelimit(); if (!isset($parent_id) || $parent_id == '0') { $query = "\r\n SELECT\r\n p.products_id,\r\n p.products_image,\r\n pd.products_name,\r\n pt.type_handler,\r\n mf.manufacturers_name\r\n FROM " . TABLE_PRODUCTS . " p FORCE INDEX(idx_status_dateadded_id_type)\r\n INNER JOIN " . TABLE_PRODUCT_TYPES . " AS pt \r\n ON p.products_type = pt.type_id\r\n INNER JOIN " . TABLE_PRODUCTS_DESCRIPTION . " AS pd\r\n ON p.products_id = pd.products_id\r\n AND pd.language_id = :languageID\r\n LEFT JOIN " . TABLE_MANUFACTURERS . " AS mf\r\n ON p.manufacturers_id = mf.manufacturers_id\r\n WHERE p.products_status = 1\r\n " . $display_limit . "\r\n ORDER BY p.products_date_added DESC\r\n LIMIT :limitNew\r\n "; } else { $query = "\r\n SELECT DISTINCT\r\n p.products_id, p.products_image,\r\n pd.products_name,\r\n pt.type_handler,\r\n mf.manufacturers_name\r\n FROM " . TABLE_PRODUCTS . " p\r\n LEFT JOIN " . TABLE_PRODUCT_TYPES . " pt ON p.products_type = pt.type_id\r\n LEFT JOIN " . TABLE_MANUFACTURERS . " mf ON p.manufacturers_id = mf.manufacturers_id\r\n , " . TABLE_PRODUCTS_DESCRIPTION . " pd\r\n , " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c\r\n , " . TABLE_CATEGORIES . " c\r\n WHERE p.products_status = 1\r\n AND p.products_id = pd.products_id\r\n AND pd.language_id = :languageID\r\n AND p.products_id = p2c.products_id\r\n AND p2c.categories_id = c.categories_id\r\n AND c.parent_id = :parentID\r\n " . $display_limit; } $query = $db->bindVars($query, ':limitNew', MODULE_CAROUSEL_UI_MAX_DISPLAY_NEW_PRODUCTS, 'integer'); $query = $db->bindVars($query, ':languageID', $_SESSION['languages_id'], 'integer'); $query = $db->bindVars($query, ':parentID', $parent_id, 'integer'); $result = $db->ExecuteRandomMulti($query, MODULE_CAROUSEL_UI_MAX_DISPLAY_NEW_PRODUCTS); while (!$result->EOF) { $id = $result->fields['products_id']; $name = $result->fields['products_name']; $image = $result->fields['products_image']; $manufacturers = $result->fields['manufacturers_name']; if ($result->fields['type_handler'] == '') { $type_handler = 'product_info'; } else { $type_handler = $result->fields['type_handler'] . '_info'; } $link = zen_href_link($type_handler, 'products_id=' . $id); $price = zen_get_products_display_price($id); $products[] = array('id' => $id, 'name' => $name, 'image' => $image, 'link' => $link, 'price' => $price, 'manufacturers' => $manufacturers); $result->MoveNextRandom(); } if (count($products) > 0) { // 表示件数の倍になるようにする $visibleCount = (int) MODULE_CAROUSEL_UI_CONF_VISIBLE_NEW_PRODUCTS; if ($visibleCount == 0) { $visibleCount = 1; } $addCount = count($products) % $visibleCount; if ($addCount > 0) { $addCount = $visibleCount - $addCount; } for ($i = 0; $i < $addCount; $i++) { $products[] = array('id' => 0, 'name' => '', 'image' => '', 'link' => '', 'price' => '', 'manufacturers' => ''); } if (isset($parent_id) && $parent_id != 0) { $category_title = zen_get_categories_name((int) $parent_id); $title = sprintf(MODULE_CAROUSEL_UI_BLOCK_NEW_PRODUCTS_TITLE, strftime('%B')) . ($category_title != '' ? ' - ' . $category_title : ''); } else { $title = sprintf(MODULE_CAROUSEL_UI_BLOCK_NEW_PRODUCTS_TITLE, strftime('%B')); } $return['title'] = $title; $return['products'] = $products; $return['ui_conf'] = array('auto' => (int) MODULE_CAROUSEL_UI_CONF_AUTO_NEW_PRODUCTS, 'speed' => (int) MODULE_CAROUSEL_UI_CONF_SPEED_NEW_PRODUCTS, 'vertical' => MODULE_CAROUSEL_UI_CONF_VERTICAL_NEW_PRODUCTS == 'true' ? 'true' : 'false', 'circular' => MODULE_CAROUSEL_UI_CONF_CIRCULAR_NEW_PRODUCTS == 'true' ? 'true' : 'false', 'visible' => (int) MODULE_CAROUSEL_UI_CONF_VISIBLE_NEW_PRODUCTS, 'scroll' => (int) MODULE_CAROUSEL_UI_CONF_SCROLL_NEW_PRODUCTS); } if ((int) MODULE_CAROUSEL_UI_CONF_VISIBLE_NEW_PRODUCTS < count($products)) { $return['prevbutton'] = $this->imageButton(BUTTON_IMAGE_CAROUSEL_UI_PREVIOUS, BUTTON_CAROUSEL_UI_PREVIOUS_ALT, 'class="imgover"'); $return['nextbutton'] = $this->imageButton(BUTTON_IMAGE_CAROUSEL_UI_NEXT, BUTTON_CAROUSEL_UI_NEXT_ALT, 'class="imgover"'); } else { $return['prevbutton'] = $this->imageButton(BUTTON_IMAGE_CAROUSEL_UI_PREVIOUS_DISABLED, BUTTON_CAROUSEL_UI_DISABLED_ALT, ''); $return['nextbutton'] = $this->imageButton(BUTTON_IMAGE_CAROUSEL_UI_NEXT_DISABLED, BUTTON_CAROUSEL_UI_DISABLED_ALT, ''); } return $return; }
} } if (SHOW_CATEGORIES_BOX_SPECIALS == 'true' or SHOW_CATEGORIES_BOX_PRODUCTS_NEW == 'true' or SHOW_CATEGORIES_BOX_FEATURED_PRODUCTS == 'true' or SHOW_CATEGORIES_BOX_PRODUCTS_ALL == 'true') { // display a separator between categories and links if (SHOW_CATEGORIES_SEPARATOR_LINK == '1') { $content .= '<hr id="catBoxDivider" />' . "\n"; } if (SHOW_CATEGORIES_BOX_SPECIALS == 'true') { $show_this = $db->Execute("select s.products_id from " . TABLE_SPECIALS . " s where s.status= 1 limit 1"); if ($show_this->RecordCount() > 0) { $content .= '<a class="category-links" href="' . zen_href_link(FILENAME_SPECIALS) . '">' . CATEGORIES_BOX_HEADING_SPECIALS . '</a>' . '<br />' . "\n"; } } if (SHOW_CATEGORIES_BOX_PRODUCTS_NEW == 'true') { // display limits $display_limit = zen_get_products_new_timelimit(); $show_this = $db->Execute("select p.products_id\r\n from " . TABLE_PRODUCTS . " p\r\n where p.products_status = 1 " . $display_limit . " limit 1"); if ($show_this->RecordCount() > 0) { $content .= '<a class="category-links" href="' . zen_href_link(FILENAME_PRODUCTS_NEW) . '">' . CATEGORIES_BOX_HEADING_WHATS_NEW . '</a>' . '<br />' . "\n"; } } if (SHOW_CATEGORIES_BOX_FEATURED_PRODUCTS == 'true') { $show_this = $db->Execute("select products_id from " . TABLE_FEATURED . " where status= 1 limit 1"); if ($show_this->RecordCount() > 0) { $content .= '<a class="category-links" href="' . zen_href_link(FILENAME_FEATURED_PRODUCTS) . '">' . CATEGORIES_BOX_HEADING_FEATURED_PRODUCTS . '</a>' . '<br />' . "\n"; } } if (SHOW_CATEGORIES_BOX_PRODUCTS_ALL == 'true') { $content .= '<a class="category-links" href="' . zen_href_link(FILENAME_PRODUCTS_ALL) . '">' . CATEGORIES_BOX_HEADING_PRODUCTS_ALL . '</a>' . "\n"; } }