function initialize() { global $osC_Cache, $osC_Database, $osC_Services, $osC_Currencies, $osC_Specials, $osC_Language, $osC_Image; $this->_title_link = osc_href_link(FILENAME_PRODUCTS, 'new'); $data = array(); if (BOX_WHATS_NEW_CACHE > 0 && $osC_Cache->read('box-whats_new-' . $osC_Language->getCode() . '-' . $osC_Currencies->getCode(), BOX_WHATS_NEW_CACHE)) { $data = $osC_Cache->getCache(); } else { $Qnew = $osC_Database->query('select products_id from :table_products where products_status = :products_status order by products_date_added desc limit :max_random_select_new'); $Qnew->bindTable(':table_products', TABLE_PRODUCTS); $Qnew->bindInt(':products_status', 1); $Qnew->bindInt(':max_random_select_new', BOX_WHATS_NEW_RANDOM_SELECT); $Qnew->executeRandomMulti(); if ($Qnew->numberOfRows()) { $osC_Product = new osC_Product($Qnew->valueInt('products_id')); $data = $osC_Product->getData(); $data['display_price'] = $osC_Product->getPriceFormated(true); $data['display_image'] = $osC_Product->getImage(); } $osC_Cache->write($data); } if (!empty($data)) { $this->_content = ''; if (!empty($data['display_image'])) { $this->_content .= osc_link_object(osc_href_link(FILENAME_PRODUCTS, $data['keyword']), $osC_Image->show($data['display_image'], $data['name'])) . '<br />'; } $this->_content .= osc_link_object(osc_href_link(FILENAME_PRODUCTS, $data['keyword']), $data['name']) . '<br />' . $data['display_price']; } }
function initialize() { global $osC_Cache, $osC_Database, $osC_Services, $osC_Currencies, $osC_Specials, $osC_Language, $osC_Image; $this->_title_link = osc_href_link(FILENAME_PRODUCTS, 'new'); if (BOX_WHATS_NEW_CACHE > 0 && $osC_Cache->read('box-whats_new-' . $osC_Language->getCode() . '-' . $osC_Currencies->getCode(), BOX_WHATS_NEW_CACHE)) { $data = $osC_Cache->getCache(); } else { $data = array(); $Qnew = $osC_Database->query('select p.products_id, p.products_tax_class_id, p.products_price, pd.products_name, pd.products_keyword, i.image from :table_products p left join :table_products_images i on (p.products_id = i.products_id and i.default_flag = :default_flag), :table_products_description pd where p.products_status = 1 and p.products_id = pd.products_id and pd.language_id = :language_id order by p.products_date_added desc limit :max_random_select_new'); $Qnew->bindTable(':table_products', TABLE_PRODUCTS); $Qnew->bindTable(':table_products_images', TABLE_PRODUCTS_IMAGES); $Qnew->bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION); $Qnew->bindInt(':default_flag', 1); $Qnew->bindInt(':language_id', $osC_Language->getID()); $Qnew->bindInt(':max_random_select_new', BOX_WHATS_NEW_RANDOM_SELECT); $Qnew->executeRandomMulti(); if ($Qnew->numberOfRows()) { $data = $Qnew->toArray(); $osC_Product = new osC_Product($Qnew->valueInt('products_id')); $products_price = $osC_Currencies->displayPrice($Qnew->valueDecimal('products_price'), $Qnew->valueInt('products_tax_class_id')); if ($osC_Services->isStarted('specials') && $osC_Specials->isActive($Qnew->valueInt('products_id'))) { $products_price = '<s>' . $products_price . '</s> <span class="productSpecialPrice">' . $osC_Currencies->displayPrice($osC_Specials->getPrice($Qnew->valueInt('products_id')), $Qnew->valueInt('products_tax_class_id')) . '</span>'; } $data['products_price'] = $osC_Product->getPriceFormated(true); } $osC_Cache->writeBuffer($data); } if (empty($data) === false) { $this->_content = ''; if (empty($data['image']) === false) { $this->_content .= osc_link_object(osc_href_link(FILENAME_PRODUCTS, $data['products_id']), $osC_Image->show($data['image'], $data['products_name'])) . '<br />'; } $this->_content .= '<span>' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $data['products_id']), $data['products_name']) . '</span><br /><span class="productPrice">' . $data['products_price'] . '</span>'; } }
function initialize() { global $osC_Database, $osC_Services, $osC_Language, $osC_Currencies, $osC_Image, $osC_Specials, $current_category_id; if ($current_category_id < 1) { $Qproducts = $osC_Database->query('select p.products_id, p.products_tax_class_id, p.products_price, pd.products_name, pd.products_keyword, pf.sort_order, i.image from :table_products p left join :table_products_images i on (p.products_id = i.products_id and i.default_flag = :default_flag), :table_products_description pd, :table_products_frontpage pf where p.products_status = 1 and p.products_id = pd.products_id and pd.products_id = pf.products_id and pd.language_id = :language_id order by pf.sort_order limit :max_display_feature_products'); } else { $Qproducts = $osC_Database->query('select distinct p.products_id, p.products_tax_class_id, p.products_price, pd.products_name, pf.sort_order, pd.products_keyword, i.image from :table_products p left join :table_products_images i on (p.products_id = i.products_id and i.default_flag = :default_flag), :table_products_description pd, :table_products_to_categories p2c, :table_categories c, :table_products_frontpage pf where c.parent_id = :parent_id and c.categories_id = p2c.categories_id and p2c.products_id = p.products_id and p.products_id = pf.products_id and p.products_status = 1 and p.products_id = pd.products_id and pd.language_id = :language_id order by pf.sort_order limit :max_display_feature_products'); $Qproducts->bindTable(':table_products_to_categories', TABLE_PRODUCTS_TO_CATEGORIES); $Qproducts->bindTable(':table_categories', TABLE_CATEGORIES); $Qproducts->bindInt(':parent_id', $current_category_id); } $Qproducts->bindTable(':table_products', TABLE_PRODUCTS); $Qproducts->bindTable(':table_products_images', TABLE_PRODUCTS_IMAGES); $Qproducts->bindTable(':table_products_frontpage', TABLE_PRODUCTS_FRONTPAGE); $Qproducts->bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION); $Qproducts->bindInt(':default_flag', 1); $Qproducts->bindInt(':language_id', $osC_Language->getID()); $Qproducts->bindInt(':max_display_feature_products', MODULE_CONTENT_FEATURE_PRODUCTS_MAX_DISPLAY); $Qproducts->setCache('feature-products-' . $osC_Language->getCode() . '-' . $osC_Currencies->getCode() . '-' . $current_category_id); $Qproducts->execute(); if ($Qproducts->numberOfRows()) { $this->_content = '<div style="overflow: auto; height: 100%;">'; $i = 0; while ($Qproducts->next()) { if ($i % 3 == 0 && $i != 0) { $this->_content .= '<div style="clear:both"></div>'; } $osC_Product = new osC_Product($Qproducts->valueInt('products_id')); $this->_content .= '<span style="width: 32%; float: left; text-align: center; padding: 2px;">' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $Qproducts->value('products_id')), $osC_Image->show($Qproducts->value('image'), $Qproducts->value('products_name'))) . '<br />' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $Qproducts->value('products_id')), $Qproducts->value('products_name')) . '<br />' . $osC_Product->getPriceFormated(true) . '</span>'; $i++; } $this->_content .= '</div>'; } $Qproducts->freeResult(); }
function initialize() { global $osC_Database, $osC_Cache, $osC_Language, $osC_Currencies, $osC_Image, $current_category_id; $data = array(); if (MODULE_CONTENT_NEW_PRODUCTS_CACHE > 0 && $osC_Cache->read('new_products-' . $osC_Language->getCode() . '-' . $osC_Currencies->getCode() . '-' . $current_category_id, MODULE_CONTENT_NEW_PRODUCTS_CACHE)) { $data = $osC_Cache->getCache(); } else { if ($current_category_id < 1) { $Qproducts = $osC_Database->query('select products_id from :table_products where products_status = :products_status and parent_id is null order by products_date_added desc limit :max_display_new_products'); } else { $Qproducts = $osC_Database->query('select distinct p2c.products_id from :table_products p, :table_products_to_categories p2c, :table_categories c where c.parent_id = :category_parent_id and c.categories_id = p2c.categories_id and p2c.products_id = p.products_id and p.products_status = :products_status and p.parent_id is null order by p.products_date_added desc limit :max_display_new_products'); $Qproducts->bindTable(':table_products_to_categories', TABLE_PRODUCTS_TO_CATEGORIES); $Qproducts->bindTable(':table_categories', TABLE_CATEGORIES); $Qproducts->bindInt(':category_parent_id', $current_category_id); } $Qproducts->bindTable(':table_products', TABLE_PRODUCTS); $Qproducts->bindInt(':products_status', 1); $Qproducts->bindInt(':max_display_new_products', MODULE_CONTENT_NEW_PRODUCTS_MAX_DISPLAY); $Qproducts->execute(); while ($Qproducts->next()) { $osC_Product = new osC_Product($Qproducts->valueInt('products_id')); $data[$osC_Product->getID()] = $osC_Product->getData(); $data[$osC_Product->getID()]['display_price'] = $osC_Product->getPriceFormated(true); $data[$osC_Product->getID()]['display_image'] = $osC_Product->getImage(); } $osC_Cache->write($data); } if (!empty($data)) { $this->_content = '<div style="overflow: auto; height: 100%;">'; foreach ($data as $product) { $this->_content .= '<span style="width: 33%; float: left; text-align: center;">' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $product['keyword']), $osC_Image->show($product['display_image'], $product['name'])) . '<br />' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $product['keyword']), $product['name']) . '<br />' . $product['display_price'] . '</span>'; } $this->_content .= '</div>'; } }
function getProducts() { global $osC_Database, $osC_Language, $toC_Json, $osC_Image; if (defined('IMAGE_GROUP_AUTO_COMPLETER')) { $image_group = IMAGE_GROUP_AUTO_COMPLETER; } else { $image_group = 'mini'; } if (defined('MAX_CHARACTERS_AUTO_COMPLETER')) { $max_name_len = MAX_CHARACTERS_AUTO_COMPLETER; } else { $max_name_len = 40; } $products = array(); if (isset($_POST['keywords']) && !empty($_POST['keywords'])) { $Qproducts = $osC_Database->query("select distinct p.products_id as products_id, pd.products_name from :table_products_description pd, :table_products p where pd.products_id = p.products_id and p.products_status = :products_status and products_name like :keywords and language_id =" . $osC_Language->getID() . ' limit :max_results'); $Qproducts->bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION); $Qproducts->bindTable(':table_products', TABLE_PRODUCTS); $Qproducts->bindInt(':products_status', 1); $Qproducts->bindInt(':max_results', MAX_DISPLAY_AUTO_COMPLETER_RESULTS); $Qproducts->bindValue(':keywords', '%' . $_POST['keywords'] . '%'); $Qproducts->execute(); while ($Qproducts->next()) { $osC_Product = new osC_Product($Qproducts->valueInt('products_id')); $products_name = $Qproducts->value('products_name'); if (strlen($products_name) > $max_name_len) { $products_name = substr($products_name, 0, $max_name_len) . '...'; } $products[] = '<div class="image">' . $osC_Image->show($osC_Product->getImage(), null, null, $image_group) . '</div><div class="details">' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $Qproducts->valueInt('products_id')), $products_name) . '<strong class="price">' . $osC_Product->getPriceFormated(true) . '</strong></div>'; } } echo $toC_Json->encode($products); }
function initialize() { global $osC_Database, $osC_Services, $osC_Language, $osC_Currencies, $osC_Image, $osC_Specials, $current_category_id; if ($current_category_id < 1) { $Qnewproducts = $osC_Database->query('select p.products_id, p.products_tax_class_id, p.products_price, pd.products_name, pd.products_keyword, i.image from :table_products p left join :table_products_images i on (p.products_id = i.products_id and i.default_flag = :default_flag), :table_products_description pd where p.products_status = 1 and p.products_id = pd.products_id and pd.language_id = :language_id order by p.products_date_added desc limit :max_display_new_products'); } else { $Qnewproducts = $osC_Database->query('select distinct p.products_id, p.products_tax_class_id, p.products_price, pd.products_name, pd.products_keyword, i.image from :table_products p left join :table_products_images i on (p.products_id = i.products_id and i.default_flag = :default_flag), :table_products_description pd, :table_products_to_categories p2c, :table_categories c where c.parent_id = :parent_id and c.categories_id = p2c.categories_id and p2c.products_id = p.products_id and p.products_status = 1 and p.products_id = pd.products_id and pd.language_id = :language_id order by p.products_date_added desc limit :max_display_new_products'); $Qnewproducts->bindTable(':table_products_to_categories', TABLE_PRODUCTS_TO_CATEGORIES); $Qnewproducts->bindTable(':table_categories', TABLE_CATEGORIES); $Qnewproducts->bindInt(':parent_id', $current_category_id); } $Qnewproducts->bindTable(':table_products', TABLE_PRODUCTS); $Qnewproducts->bindTable(':table_products_images', TABLE_PRODUCTS_IMAGES); $Qnewproducts->bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION); $Qnewproducts->bindInt(':default_flag', 1); $Qnewproducts->bindInt(':language_id', $osC_Language->getID()); $Qnewproducts->bindInt(':max_display_new_products', MODULE_CONTENT_NEW_PRODUCTS_MAX_DISPLAY); if (MODULE_CONTENT_NEW_PRODUCTS_CACHE > 0) { $Qnewproducts->setCache('new_products-' . $osC_Language->getCode() . '-' . $osC_Currencies->getCode() . '-' . $current_category_id, MODULE_CONTENT_NEW_PRODUCTS_CACHE); } $Qnewproducts->execute(); if ($Qnewproducts->numberOfRows()) { $i = 0; while ($Qnewproducts->next()) { if ($i % 3 == 0 && $i != 0) { $this->_content .= '<div style="clear:both"></div>'; } $product = new osC_Product($Qnewproducts->valueInt('products_id')); $this->_content .= '<div style="margin-top: 10px; float:left; width: 33%; text-align: center">' . '<span style="display:block; height: 32px; text-align: center">' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $Qnewproducts->value('products_id')), $Qnewproducts->value('products_name')) . '</span>' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $Qnewproducts->value('products_id')), $osC_Image->show($Qnewproducts->value('image'), $Qnewproducts->value('products_name')), 'id="productImage' . $Qnewproducts->value('products_id') . '"') . '<span style="display:block; padding: 3px; text-align: center">' . $product->getPriceFormated(true) . '</span>' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $Qnewproducts->valueInt('products_id') . '&action=cart_add'), osc_draw_image_button('button_add_to_cart.png', $osC_Language->get('button_add_to_cart'), 'class="ajaxAddToCart" id="ac_newproductsmodule_' . $Qnewproducts->value('products_id') . '"')) . '</div>'; $i++; } $this->_content .= '<div style="clear:both"></div>'; } $Qnewproducts->freeResult(); }
function outputCompareProductsTable() { global $osC_Language, $osC_Image, $osC_Weight; $content = ''; $products_images = ''; $products_titles = ''; $products_price = ''; $products_weight = ''; $products_sku = ''; $products_manufacturers = ''; $products_desciptions = ''; $products_attributes = ''; if ($this->hasContents()) { foreach ($this->getProducts() as $products_id) { $osC_Product = new osC_Product($products_id); $image = $osC_Product->getImages(); $products_images .= '<td width="120" valign="top" align="center">' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $products_id), $osC_Image->show($image[0]['image'], $osC_Product->getTitle())) . '<br /><br />' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $products_id . '&action=cart_add'), osc_draw_image_button('button_in_cart.gif', $osC_Language->get('button_add_to_cart'))) . '</td>'; $products_titles .= '<td valign="top" align="center">' . $osC_Product->getTitle() . '</td>'; $products_price .= '<td valign="top" align="center">' . $osC_Product->getPriceFormated(true) . '</td>'; $products_weight .= '<td valign="top" align="center">' . $osC_Weight->display($osC_Product->getWeight(), $osC_Product->getWeightClass()) . '</td>'; $products_sku .= '<td valign="top" align="center">' . $osC_Product->getSKU() . '</td>'; $products_manufacturers .= '<td valign="top" align="center">' . $osC_Product->getManufacturer() . '</td>'; $products_desciptions .= '<td valign="top" align="center">' . $osC_Product->getDescription() . '</td>'; if ($osC_Product->hasAttributes()) { foreach ($osC_Product->getAttributes() as $attribute) { $products_attributes[$attribute['name']][$products_id] = $attribute['value']; } } } $content .= '<table id="compareProducts" cellspacing="0" cellpadding="2" border="0">'; $content .= '<tr class="odd"><td width="120"> </td>' . $products_images . '</tr>'; $content .= '<tr class="even"><td valign="top" align="left" class="label">' . $osC_Language->get('field_products_name') . '</td>' . $products_titles . '</tr>'; $content .= '<tr class="odd"><td valign="top" align="left" class="label">' . $osC_Language->get('field_products_price') . '</td>' . $products_price . '</tr>'; $content .= '<tr class="even"><td valign="top" align="left" class="label">' . $osC_Language->get('field_products_weight') . '</td>' . $products_weight . '</tr>'; $content .= '<tr class="odd"><td valign="top" align="left" class="label">' . $osC_Language->get('field_products_sku') . '</td>' . $products_sku . '</tr>'; $content .= '<tr class="even"><td valign="top" align="left" class="label">' . $osC_Language->get('field_products_manufacturer') . '</td>' . $products_manufacturers . '</tr>'; if (!empty($products_attributes)) { $rows = 0; foreach ($products_attributes as $name => $attribute) { $content .= '<tr class="' . ($rows / 2 == floor($rows / 2) ? 'odd' : 'even') . '">'; $content .= '<td valign="top" align="left" class="label">' . $name . ':</td>'; foreach ($this->getProducts() as $products_id) { if (isset($attribute[$products_id])) { $content .= '<td align = "center">' . $attribute[$products_id] . '</td>'; } else { $content .= '<td align = "center"> -- </td>'; } } $content .= '</tr>'; $rows++; } } $content .= '<tr class="' . ($rows / 2 == floor($rows / 2) ? 'odd' : 'even') . '"><td valign="top" align="left" class="label">' . $osC_Language->get('field_products_description') . '</td>' . $products_desciptions . '</tr>'; $content .= '</table></div>'; } return $content; }
function getVariantsFormattedPrice() { global $toC_Json; $response = array(); if (isset($_POST['products_id_string']) && preg_match('/^[0-9]+(#([0-9]+:?[0-9]+)+(;?([0-9]+:?[0-9]+)+)*)$/', $_POST['products_id_string'])) { $response['success'] = true; $variants = osc_parse_variants_from_id_string($_POST['products_id_string']); $osC_Product = new osC_Product($_POST['products_id_string']); $formatted_price = $osC_Product->getPriceFormated(true, $variants); $response['formatted_price'] = $formatted_price; } else { $response['success'] = false; $response['feedback'] = 'The products id string is not valid'; } echo $toC_Json->encode($response); }
function initialize() { global $osC_Database, $osC_Language, $osC_Currencies, $osC_Image, $osC_Template; $Qupcoming = $osC_Database->query('select p.products_id, p.products_price, p.products_tax_class_id, p.products_date_available as date_expected, pd.products_name, pd.products_keyword, s.specials_new_products_price, i.image from :table_products p left join :table_products_images i on (p.products_id = i.products_id and i.default_flag = :default_flag) left join :table_specials s on (p.products_id = s.products_id and s.status = 1), :table_products_description pd where to_days(p.products_date_available) >= to_days(now()) and p.products_status = :products_status and p.products_id = pd.products_id and pd.language_id = :language_id order by p.products_date_available limit :max_display_upcoming_products'); $Qupcoming->bindTable(':table_products', TABLE_PRODUCTS); $Qupcoming->bindTable(':table_products_images', TABLE_PRODUCTS_IMAGES); $Qupcoming->bindTable(':table_specials', TABLE_SPECIALS); $Qupcoming->bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION); $Qupcoming->bindInt(':default_flag', 1); $Qupcoming->bindInt(':products_status', 1); $Qupcoming->bindInt(':language_id', $osC_Language->getID()); $Qupcoming->bindInt(':max_display_upcoming_products', MODULE_CONTENT_UPCOMING_PRODUCTS_MAX_DISPLAY); if (MODULE_CONTENT_UPCOMING_PRODUCTS_CACHE > 0) { $Qupcoming->setCache('upcoming_products-' . $osC_Language->getCode() . '-' . $osC_Currencies->getCode(), MODULE_CONTENT_UPCOMING_PRODUCTS_CACHE); } $Qupcoming->execute(); $i = 0; if ($Qupcoming->numberOfRows() > 0) { $this->_content = '<div class="upcomingProductsModule clearfix">'; while ($Qupcoming->next()) { $osC_Product = new osC_Product($Qupcoming->valueInt('products_id')); if ($i % 3 == 0 && $i != 0) { $this->_content .= '<div class="productItem clearLeft">'; } else { $this->_content .= '<div class="productItem">'; } $this->_content .= '<div class="productName">' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $Qupcoming->value('products_id')), $Qupcoming->value('products_name')) . '</div>' . '<div>' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $Qupcoming->value('products_id')), $osC_Image->show($Qupcoming->value('image'), $Qupcoming->value('products_name'))) . '</div>' . '<div>' . $osC_Product->getPriceFormated(true) . '</div>' . '<div><strong>' . osC_DateTime::getLong($Qupcoming->value('date_expected')) . '</strong></div>'; $this->_content .= '</div>'; $i++; } $this->_content .= '</div>'; //add the css block for this module $osC_Template->addStyleDeclaration('.clearLeft{clear:left;} .upcomingProductsModule{overflow: auto; height: 100%;} .upcomingProductsModule .productItem{width: 32%; float: left; text-align: center; padding: 2px;} .upcomingProductsModule .productItem .productName{height:30px;} .upcomingProductsModule .productItem div {margin:3px 0;}'); } $Qupcoming->freeResult(); }
function initialize() { global $osC_Database, $osC_Language, $osC_Currencies; $Qupcoming = $osC_Database->query('select p.products_id, pa.value as date_expected from :table_products p, :table_templates_boxes tb, :table_product_attributes pa where tb.code = :code and tb.id = pa.id and to_days(str_to_date(pa.value, "%Y-%m-%d")) >= to_days(now()) and pa.products_id = p.products_id and p.products_status = :products_status order by pa.value limit :max_display_upcoming_products'); $Qupcoming->bindTable(':table_products', TABLE_PRODUCTS); $Qupcoming->bindTable(':table_templates_boxes', TABLE_TEMPLATES_BOXES); $Qupcoming->bindTable(':table_product_attributes', TABLE_PRODUCT_ATTRIBUTES); $Qupcoming->bindValue(':code', 'date_available'); $Qupcoming->bindInt(':products_status', 1); $Qupcoming->bindInt(':max_display_upcoming_products', MODULE_CONTENT_UPCOMING_PRODUCTS_MAX_DISPLAY); if (MODULE_CONTENT_UPCOMING_PRODUCTS_CACHE > 0) { $Qupcoming->setCache('upcoming_products-' . $osC_Language->getCode() . '-' . $osC_Currencies->getCode(), MODULE_CONTENT_UPCOMING_PRODUCTS_CACHE); } $Qupcoming->execute(); if ($Qupcoming->numberOfRows() > 0) { $this->_content = '<ol style="list-style: none;">'; while ($Qupcoming->next()) { $osC_Product = new osC_Product($Qupcoming->valueInt('products_id')); $this->_content .= '<li>' . osC_DateTime::getLong($Qupcoming->value('date_expected')) . ': ' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $osC_Product->getKeyword()), $osC_Product->getTitle()) . ' ' . $osC_Product->getPriceFormated(true) . '</li>'; } $this->_content .= '</ol>'; } $Qupcoming->freeResult(); }
function getProducts() { $history = array(); if (isset($this->visits['products']) && empty($this->visits['products']) === false) { $counter = 0; foreach ($this->visits['products'] as $k => $v) { $counter++; $osC_Product = new osC_Product($v['id']); $osC_Category = new osC_Category($osC_Product->getCategoryID()); if ($osC_Product->isValid() === true) { $history[] = array('name' => $osC_Product->getTitle(), 'id' => $osC_Product->getID(), 'keyword' => $osC_Product->getKeyword(), 'price' => SERVICE_RECENTLY_VISITED_SHOW_PRODUCT_PRICES == '1' ? $osC_Product->getPriceFormated(true) : '', 'image' => $osC_Product->getImage(), 'category_name' => $osC_Category->getTitle(), 'category_path' => $osC_Category->getPath()); } if ($counter == SERVICE_RECENTLY_VISITED_MAX_PRODUCTS) { break; } } } return $history; }
if (isset($_GET['manufacturers'])) { $lc_text = osc_link_object(osc_href_link(FILENAME_PRODUCTS, $osC_Product->getKeyword() . '&manufacturers=' . $_GET['manufacturers']), $osC_Product->getTitle()); } else { $lc_text = ' ' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $osC_Product->getKeyword() . ($cPath ? '&cPath=' . $cPath : '')), $osC_Product->getTitle()) . ' '; } break; case 'PRODUCT_LIST_MANUFACTURER': $lc_align = ''; $lc_text = ' '; if ($osC_Product->hasManufacturer()) { $lc_text = ' ' . osc_link_object(osc_href_link(FILENAME_DEFAULT, 'manufacturers=' . $osC_Product->getManufacturerID()), $osC_Product->getManufacturer()) . ' '; } break; case 'PRODUCT_LIST_PRICE': $lc_align = 'right'; $lc_text = ' ' . $osC_Product->getPriceFormated() . ' '; break; case 'PRODUCT_LIST_QUANTITY': $lc_align = 'right'; $lc_text = ' ' . $osC_Product->getQuantity() . ' '; break; case 'PRODUCT_LIST_WEIGHT': $lc_align = 'right'; $lc_text = ' ' . $osC_Product->getWeight() . ' '; break; case 'PRODUCT_LIST_IMAGE': $lc_align = 'center'; if (isset($_GET['manufacturers'])) { $lc_text = osc_link_object(osc_href_link(FILENAME_PRODUCTS, $osC_Product->getKeyword() . '&manufacturers=' . $_GET['manufacturers']), $osC_Image->show($osC_Product->getImage(), $osC_Product->getTitle())); } else { $lc_text = ' ' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $osC_Product->getKeyword() . ($cPath ? '&cPath=' . $cPath : '')), $osC_Image->show($osC_Product->getImage(), $osC_Product->getTitle())) . ' ';
$Qproducts->bindInt(':parent_id', $current_category_id); } $Qproducts->bindTable(':table_products', TABLE_PRODUCTS); $Qproducts->bindTable(':table_products_images', TABLE_PRODUCTS_IMAGES); $Qproducts->bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION); $Qproducts->bindInt(':default_flag', 1); $Qproducts->bindInt(':language_id', $osC_Language->getID()); $Qproducts->bindInt(':max_display_new_products', MODULE_CONTENT_NEW_PRODUCTS_MAX_DISPLAY); if (MODULE_CONTENT_NEW_PRODUCTS_CACHE > 0) { $Qproducts->setCache('new_products-' . $osC_Language->getCode() . '-' . $osC_Currencies->getCode() . '-' . $current_category_id, MODULE_CONTENT_NEW_PRODUCTS_CACHE); } $Qproducts->execute(); if ($Qproducts->numberOfRows()) { $i = 0; while ($Qproducts->next()) { if ($i % 3 == 0 && $i != 0) { echo '<div style="clear:both"></div>'; } $osC_Product = new osC_Product($Qproducts->valueInt('products_id')); echo '<div style="margin-top: 10px; float:left; width: 33%; text-align: center">' . '<span style="display:block; height: 32px; text-align: center">' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $Qproducts->value('products_id')), $Qproducts->value('products_name')) . '</span>' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $Qproducts->value('products_id')), $osC_Image->show($Qproducts->value('image'), $Qproducts->value('products_name'))) . '<span style="display:block; padding: 3px; text-align: center">' . $osC_Product->getPriceFormated(true) . '</span>' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $Qproducts->value('products_id') . '&action=cart_add'), osc_draw_image_button('button_add_to_cart.png', $osC_Language->get('button_add_to_cart'))) . '</div>'; $i++; } echo '<div style="clear:both"></div>'; } $Qproducts->freeResult(); ?> </div> </div> <!-- module new_products end //--> <?php unset($osC_Box);
function outputCompareProductsTable() { global $osC_Language, $osC_Image, $osC_Weight, $osC_Currencies; $content = ''; $products_images = array(); $products_titles = array(); $products_price = array(); $products_weight = array(); $products_sku = array(); $products_manufacturers = array(); $products_desciptions = array(); $products_attributes = array(); $products_variants = array(); $cols = array('<col width="20%">'); $col_width = round(80 / count($this->getProducts())); if ($this->hasContents()) { foreach ($this->getProducts() as $products_id) { $cols[] = '<col width="' . $col_width . '%">'; $osC_Product = new osC_Product($products_id); $image = $osC_Product->getImages(); $product_title = $osC_Product->getTitle(); $product_price = $osC_Product->getPriceFormated(true); $product_weight = $osC_Product->getWeight(); $product_sku = $osC_Product->getSKU(); //if the product have any variants, it means that the $products_id should be a product string such as 1#1:1;2:2 $variants = array(); if ($osC_Product->hasVariants()) { $product_variants = $osC_Product->getVariants(); if (preg_match('/^[0-9]+(#?([0-9]+:?[0-9]+)+(;?([0-9]+:?[0-9]+)+)*)+$/', $products_id)) { $products_variant = $product_variants[$products_id]; $variants = osc_parse_variants_from_id_string($products_id); } else { $products_variant = $osC_Product->getDefaultVariant(); $variants = $products_variant['groups_id']; } //if the product have any variants, get the group_name:value_name string if (isset($products_variant) && isset($products_variant['groups_name']) && is_array($products_variant['groups_name']) && !empty($products_variant['groups_name'])) { $products_variants[$products_id]['variants'] = array(); foreach ($products_variant['groups_name'] as $groups_name => $value_name) { $products_variants[$products_id]['variants'][] = array('name' => $groups_name, 'value' => $value_name); } } $product_price = $osC_Currencies->displayPrice($osC_Product->getPrice($variants), $osC_Product->getTaxClassID()); $product_weight = $products_variant['weight']; $product_sku = $products_variant['sku']; $image = $products_variant['image']; } $image = is_array($image) ? $image[0]['image'] : $image; $products_titles[] = $product_title; if (!osc_empty($product_price)) { $products_price[] = $product_price; } if (!osc_empty($product_weight)) { $products_weight[] = $osC_Weight->display($product_weight, $osC_Product->getWeightClass()); } if (!osc_empty($product_sku)) { $products_sku[] = $product_sku; } if (!osc_empty($osC_Product->getManufacturer())) { $products_manufacturers[] = $osC_Product->getManufacturer(); } if (!osc_empty($osC_Product->getDescription())) { $products_desciptions[] = $osC_Product->getDescription(); } if ($osC_Product->hasAttributes()) { foreach ($osC_Product->getAttributes() as $attribute) { $products_attributes[$products_id]['attributes'][] = array('name' => $attribute['name'], 'value' => $attribute['value']); } } $products_id = str_replace('#', '_', $products_id); $products_images[] = '<div class="image">' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $products_id), $osC_Image->show($image, $osC_Product->getTitle())) . '</div>' . '<div class="button">' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $products_id . '&action=cart_add' . (osc_empty(osc_parse_variants_array($variants)) ? '' : '&variants=' . osc_parse_variants_array($variants))), osc_draw_image_button('button_in_cart.gif', $osC_Language->get('button_add_to_cart'))) . '</div>'; } $content .= '<table id="compareProducts" cellspacing="0" cellpadding="2" border="0">'; //add col groups $content .= '<colgroup>'; foreach ($cols as $col) { $content .= $col; } $content .= '</colgroup>'; //add product header $content .= '<tbody>'; $content .= '<tr class="first">'; $content .= '<th> </th>'; if (!osc_empty($products_images)) { foreach ($products_images as $k => $product_image) { $content .= '<td' . ($k == count($products_images) - 1 ? ' class="last"' : '') . '>' . $product_image . '</td>'; } } $content .= '</tr>'; $content .= '</tbody>'; //add compare details $content .= '<tbody>'; $row_class = 'even'; //add product name if (!osc_empty($products_titles)) { $content .= '<tr class="' . $row_class . '">' . '<th>' . $osC_Language->get('field_products_name') . '</th>'; foreach ($products_titles as $k => $product_title) { $content .= '<td' . ($k == count($products_titles) - 1 ? ' class="last"' : '') . '>' . $product_title . '</td>'; } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } //add product price if (!osc_empty($products_price)) { $content .= '<tr class="' . $row_class . '">' . '<th>' . $osC_Language->get('field_products_price') . '</th>'; foreach ($products_price as $k => $product_price) { $content .= '<td' . ($k == count($products_price) - 1 ? ' class="last"' : '') . '>' . $product_price . '</td>'; } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } //add product weight if (!osc_empty($products_weight)) { $content .= '<tr class="' . $row_class . '">' . '<th>' . $osC_Language->get('field_products_weight') . '</th>'; foreach ($products_weight as $k => $product_weight) { $content .= '<td' . ($k == count($products_weight) - 1 ? ' class="last"' : '') . '>' . $product_weight . '</td>'; } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } //add product sku if (!osc_empty($products_sku)) { $content .= '<tr class="' . $row_class . '">' . '<th>' . $osC_Language->get('field_products_sku') . '</th>'; foreach ($products_sku as $k => $product_sku) { $content .= '<td' . ($k == count($products_sku) - 1 ? ' class="last"' : '') . '>' . $product_sku . '</td>'; } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } //add product manufacturers if (!osc_empty($products_manufacturers)) { $content .= '<tr class="' . $row_class . '">' . '<th>' . $osC_Language->get('field_products_manufacturer') . '</th>'; foreach ($products_manufacturers as $k => $product_manufacturer) { $content .= '<td' . ($k == count($products_manufacturers) - 1 ? ' class="last"' : '') . '>' . $product_manufacturer . '</td>'; } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } //add product variants if (!osc_empty($products_variants)) { $content .= '<tr class="' . $row_class . '">' . '<th>' . $osC_Language->get('field_products_variants') . '</th>'; foreach ($this->getProducts() as $k => $products_id) { if (isset($products_variants[$products_id]['variants']) && !osc_empty($products_variants[$products_id]['variants'])) { $content .= '<td' . ($k == count($this->getProducts()) - 1 ? ' class="last"' : '') . '>'; foreach ($products_variants[$products_id]['variants'] as $variant) { $content .= '<span class="variant">' . $variant['name'] . ': ' . $variant['value'] . '</span>'; } $content .= '</td>'; } } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } //add product attributes if (!osc_empty($products_attributes)) { $content .= '<tr class="' . $row_class . '">' . '<th>' . $osC_Language->get('field_products_attributes') . '</th>'; foreach ($this->getProducts() as $k => $products_id) { if (isset($products_attributes[$products_id]['attributes']) && !osc_empty($products_attributes[$products_id]['attributes'])) { $content .= '<td' . ($k == count($this->getProducts()) - 1 ? ' class="last"' : '') . '>'; foreach ($products_attributes[$products_id]['attributes'] as $attribute) { $content .= '<span class="attribute">' . $attribute['name'] . ': ' . $attribute['value'] . '</span>'; } $content .= '</td>'; } } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } //add product description if (!osc_empty($products_desciptions)) { $content .= '<tr class="' . $row_class . ' last">' . '<th>' . $osC_Language->get('field_products_description') . '</th>'; foreach ($products_desciptions as $k => $product_description) { $content .= '<td' . ($k == count($products_desciptions) - 1 ? ' class="last"' : '') . '>' . $product_description . '</td>'; } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } $content .= '</tbody>'; $content .= '</table>'; } return $content; }
<tr> <td width="<?php echo $osC_Image->getWidth('thumbnails') + 10; ?> " valign="top" align="center"> <?php if ($osC_Product->hasImage()) { echo osc_link_object(osc_href_link(FILENAME_PRODUCTS, $osC_Product->getKeyword()), $osC_Image->show($osC_Product->getImage(), $osC_Product->getTitle())); } ?> </td> <td valign="top"><?php echo osc_link_object(osc_href_link(FILENAME_PRODUCTS, $osC_Product->getKeyword()), '<b><u>' . $osC_Product->getTitle() . '</u></b>') . '<br />' . $osC_Language->get('date_added') . ' ' . osC_DateTime::getLong($osC_Product->getDateAdded()) . '<br />' . $osC_Language->get('manufacturer') . ' ' . $osC_Product->getManufacturer() . '<br /><br />' . $osC_Language->get('price') . ' ' . $osC_Product->getPriceFormated(); ?> </td> <td align="right" valign="middle"><?php echo osc_link_object(osc_href_link(FILENAME_PRODUCTS, $osC_Product->getKeyword() . '&action=cart_add'), osc_draw_image_button('button_in_cart.gif', $osC_Language->get('button_add_to_cart'))); ?> </td> </tr> <tr> <td colspan="3"> </td> </tr> <?php } } else { ?>
function buildProductsRss($group) { global $osC_Language, $osC_Image; $group_title = $group . '_products'; $rss = array(); $rss['rss'] = array(); $rss['rss attr'] = array('xmlns:atom' => 'http://www.w3.org/2005/Atom', 'version' => '2.0'); //channel $rss['rss']['channel'] = array('title' => '<![CDATA[' . $osC_Language->get($group_title) . ']]>', 'link' => '<![CDATA[' . osc_href_link(FILENAME_PRODUCTS, $group) . ']]>', 'description' => '<![CDATA[' . $osC_Language->get($group_title) . ']]>', 'pubDate' => date("D, d M Y H:i:s O")); //items if ($group == "new") { $Qproducts = osC_Product::getListingNew(); } else { if ($group == 'special') { $Qproducts = osC_Specials::getListing(); } else { if ($group == 'feature') { $Qproducts = osC_Product::getListingFeature(); } } } $items = array(); while ($Qproducts->next()) { $osC_Product = new osC_Product($Qproducts->valueInt('products_id')); $link = osc_href_link(FILENAME_PRODUCTS, $Qproducts->valueInt('products_id'), 'NONSSL', false, false, true); $description = ' <![CDATA[ <table> <tr> <td align="center" valign="top">' . osc_link_object($link, osc_image($osC_Image->getImageUrl($osC_Product->getImage(), 'product_info'), $osC_Product->getTitle())) . '</td> <td valign="top">' . $osC_Product->getDescription() . '</td> </tr> </table> ]]>'; $items[] = array('title' => '<![CDATA[' . $osC_Product->getTitle() . ' -- ' . $osC_Product->getPriceFormated() . ']]>', 'link' => '<![CDATA[' . $link . ']]>', 'description' => $description, 'pubDate' => date("D, d M Y H:i:s O")); } $rss['rss']['channel']['item'] = $items; return $rss; }
<h1><?php echo $osC_Template->getPageTitle(); ?> </h1> <div class="moduleBox"> <div class="content"> <table border="0" width="100%" cellspacing="20" cellpadding="2"> <?php $Qproducts = osC_Product::getListingNew(); if ($Qproducts->numberOfRows() > 0) { while ($Qproducts->next()) { $osC_Product = new osC_Product($Qproducts->value('products_id')); $products_price = $osC_Product->getPriceFormated(true); ?> <tr> <td width="<?php echo $osC_Image->getWidth('thumbnails') + 10; ?> " valign="top" align="left"> <?php echo osc_link_object(osc_href_link(FILENAME_PRODUCTS, $Qproducts->value('products_id')), $osC_Image->show($Qproducts->value('image'), $Qproducts->value('products_name')), 'id="img_ac_productsnew_' . $Qproducts->value('products_id') . '"'); ?> </td> <td valign="top"><?php echo osc_link_object(osc_href_link(FILENAME_PRODUCTS, $Qproducts->value('products_id')), '<b><u>' . $Qproducts->value('products_name') . '</u></b>') . '<br />' . $osC_Language->get('date_added') . ' ' . osC_DateTime::getLong($Qproducts->value('products_date_added')) . '<br />' . $osC_Language->get('manufacturer') . ' ' . $Qproducts->value('manufacturers_name') . '<br /><br />' . $osC_Language->get('price') . ' ' . $products_price;
/** * Short function for get feature products * * @return mixed */ function get_feature_products() { global $osC_Database, $osC_Services, $osC_Language, $osC_Currencies, $osC_Image, $osC_Specials, $current_category_id; if ($current_category_id < 1) { $Qfeatureproducts = $osC_Database->query(' select p.products_id, p.products_tax_class_id, p.products_price, pd.products_name, pd.products_keyword, pf.sort_order, i.image, s.specials_new_products_price as specials_price from :table_products p inner join :table_products_description pd on (p.products_id = pd.products_id and pd.language_id = :language_id) left join :table_products_images i on (p.products_id = i.products_id and i.default_flag = :default_flag) inner join :table_products_frontpage pf on (p.products_id = pf.products_id) left join :table_specials s on (p.products_id = s.products_id and s.status = 1 and s.start_date <= now() and s.expires_date >= now()) where p.products_status = 1 order by pf.sort_order limit :max_display_feature_products'); } else { $Qfeatureproducts = $osC_Database->query('select distinct p.products_id, p.products_tax_class_id, p.products_price, pd.products_name, pf.sort_order, pd.products_keyword, i.image, s.specials_new_products_price as specials_price from :table_products p inner join :table_products_description pd on (p.products_id = pd.products_id and pd.language_id = :language_id) left join :table_products_images i on (p.products_id = i.products_id and i.default_flag = :default_flag) inner join :table_products_frontpage pf on (p.products_id = pf.products_id) left join :table_specials s on (p.products_id = s.products_id and s.status = 1 and s.start_date <= now() and s.expires_date >= now())left join :table_products_to_categories p2c on (p2c.products_id = p.products_id) inner join :table_categories c on (c.parent_id = :parent_id and c.categories_id = p2c.categories_id) where p.products_status = 1 order by pf.sort_order limit :max_display_feature_products'); $Qfeatureproducts->bindTable(':table_products_to_categories', TABLE_PRODUCTS_TO_CATEGORIES); $Qfeatureproducts->bindTable(':table_categories', TABLE_CATEGORIES); $Qfeatureproducts->bindInt(':parent_id', $current_category_id); } $Qfeatureproducts->bindTable(':table_products', TABLE_PRODUCTS); $Qfeatureproducts->bindTable(':table_products_frontpage', TABLE_PRODUCTS_FRONTPAGE); $Qfeatureproducts->bindTable(':table_specials', TABLE_SPECIALS); $Qfeatureproducts->bindTable(':table_products_images', TABLE_PRODUCTS_IMAGES); $Qfeatureproducts->bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION); $Qfeatureproducts->bindInt(':default_flag', 1); $Qfeatureproducts->bindInt(':language_id', $osC_Language->getID()); $Qfeatureproducts->bindInt(':max_display_feature_products', MODULE_CONTENT_FEATURE_PRODUCTS_MAX_DISPLAY); //set the cache key for feature products module in bootstrap if (MODULE_CONTENT_NEW_PRODUCTS_CACHE > 0) { $Qfeatureproducts->setCache('feature-products-bootstrap-' . $osC_Language->getCode() . '-' . $osC_Currencies->getCode() . '-' . $current_category_id, MODULE_CONTENT_NEW_PRODUCTS_CACHE); } $Qfeatureproducts->execute(); if ($Qfeatureproducts->numberOfRows()) { $data = array(); while ($Qfeatureproducts->next()) { $product = new osC_Product($Qfeatureproducts->valueInt('products_id')); $data[] = array('products_id' => $Qfeatureproducts->value('products_id'), 'products_name' => $Qfeatureproducts->value('products_name'), 'products_price' => $product->getPriceFormated(true), 'is_specials' => $Qfeatureproducts->value('specials_price') == NULL ? FALSE : TRUE, 'products_image' => $osC_Image->show($Qfeatureproducts->value('image'), $Qfeatureproducts->value('products_name'))); } return $data; } $Qfeatureproducts->freeResult(); }
function listChooseProducts() { global $toC_Json, $osC_Database, $osC_Language, $osC_Currencies, $osC_Tax; $start = empty($_REQUEST['start']) ? 0 : $_REQUEST['start']; $limit = empty($_REQUEST['limit']) ? MAX_DISPLAY_SEARCH_RESULTS : $_REQUEST['limit']; $Qproducts = $osC_Database->query('select SQL_CALC_FOUND_ROWS * from :table_products p left join :table_products_description pd on p.products_id = pd.products_id where p.products_status = 1 and pd.language_id = :language_id and p.products_status = 1'); if (!empty($_REQUEST['search'])) { $Qproducts->appendQuery('and pd.products_name like :products_name'); $Qproducts->bindValue(':products_name', '%' . $_REQUEST['search'] . '%'); } $Qproducts->appendQuery('order by p.products_id '); $Qproducts->bindTable(':table_products', TABLE_PRODUCTS); $Qproducts->bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION); $Qproducts->bindInt(':language_id', $osC_Language->getID()); $Qproducts->setExtBatchLimit($start, $limit); $Qproducts->execute(); $osC_Currencies = new osC_Currencies(); $osC_Order = new osC_Order($_REQUEST['orders_id']); $osC_Tax = new osC_Tax_Admin(); $_SESSION['currency'] = $osC_Order->getCurrency(); $records = array(); while ($Qproducts->next()) { $products_id = $Qproducts->valueInt('products_id'); $osC_Product = new osC_Product($products_id, $osC_Order->getCustomer('customers_id')); if (!$osC_Product->hasVariants()) { $products_name = $osC_Product->getTitle(); $products_price = $osC_Product->getPriceFormated(); if ($osC_Product->isGiftCertificate()) { $products_name .= '<table cellspacing="0" cellpadding="0" border="0">'; if ($osC_Product->isOpenAmountGiftCertificate()) { $products_name .= '<tr><td><i>-- ' . $osC_Language->get('field_amount') . '</i></td><td><input id="' . $products_id . '_price' . '" type="text" class="x-form-text x-form-field x-form-empty-field" style="width: 140px" value="' . round($osC_Product->getOpenAmountMinValue() * $osC_Order->getCurrencyValue(), 2) . '"/></td></tr>'; } if ($osC_Product->isEmailGiftCertificate()) { $products_name .= '<tr><td><i>-- ' . $osC_Language->get('field_recipient_sender_name') . '</i></td><td><input id="' . $products_id . '_sender_name' . '" type="text" class="x-form-text x-form-field x-form-empty-field" style="width: 140px" /></td></tr>' . '<tr><td><i>-- ' . $osC_Language->get('field_recipient_sender_email') . '</i></td><td><input id="' . $products_id . '_sender_email' . '" type="text" class="x-form-text x-form-field x-form-empty-field" style="width: 140px" /></td></tr>' . '<tr><td><i>-- ' . $osC_Language->get('field_recipient_name') . '</i></td><td><input id="' . $products_id . '_recipient_name' . '" type="text" class="x-form-text x-form-field x-form-empty-field" style="width: 140px" /></td></tr>' . '<tr><td><i>-- ' . $osC_Language->get('field_recipient_email') . '</i></td><td><input id="' . $products_id . '_recipient_email' . '" type="text" class="x-form-text x-form-field x-form-empty-field" style="width: 140px" /></td></tr>' . '<tr><td><i>-- ' . $osC_Language->get('field_message') . '</i></td><td><textarea id="' . $products_id . '_message' . '" class=" x-form-textarea x-form-field" style="width: 140px" /></textarea></td></tr>'; } else { if ($osC_Product->isPhysicalGiftCertificate()) { $products_name .= '<tr><td><i>-- ' . $osC_Language->get('field_recipient_sender_name') . '</i></td><td><input id="' . $products_id . '_sender_name' . '" type="text" class="x-form-text x-form-field x-form-empty-field" style="width: 140px" /></td></tr>' . '<tr><td><i>-- ' . $osC_Language->get('field_recipient_name') . '</i></td><td><input id="' . $products_id . '_recipient_name' . '" type="text" class="x-form-text x-form-field x-form-empty-field" style="width: 140px" /></td></tr>' . '<tr><td><i>-- ' . $osC_Language->get('field_message') . '</i></td><td><textarea id="' . $products_id . '_message' . '" class=" x-form-textarea x-form-field" style="width: 140px" /></textarea></td></tr>'; } } $products_name .= '</table>'; } $records[] = array('products_id' => $products_id, 'products_name' => $products_name, 'products_type' => $osC_Product->getProductType(), 'products_sku' => $osC_Product->getSKU(), 'products_price' => $products_price, 'products_quantity' => $osC_Product->getQuantity(), 'new_qty' => $Qproducts->valueInt('products_moq'), 'has_variants' => false); } else { $records[] = array('products_id' => $products_id, 'products_name' => $osC_Product->getTitle(), 'products_type' => $osC_Product->getProductType(), 'products_sku' => $osC_Product->getSKU(), 'products_price' => $osC_Product->getPriceFormated(), 'products_quantity' => $osC_Product->getQuantity(), 'new_qty' => $Qproducts->valueInt('products_moq'), 'has_variants' => true); foreach ($osC_Product->getVariants() as $product_id_string => $details) { $variants = ''; foreach ($details['groups_name'] as $groups_name => $values_name) { $variants .= ' <i>' . $groups_name . ' : ' . $values_name . '</i><br />'; } $records[] = array('products_id' => $product_id_string, 'products_name' => $variants, 'products_type' => $osC_Product->getProductType(), 'products_sku' => $osC_Product->getSKU(osc_parse_variants_from_id_string($product_id_string)), 'products_price' => $osC_Currencies->format($osC_Product->getPrice(osc_parse_variants_from_id_string($product_id_string)), $osC_Order->getCurrency()), 'products_quantity' => $details['quantity'], 'new_qty' => $Qproducts->valueInt('products_moq'), 'has_variants' => false); } } } unset($_SESSION['currency']); $response = array(EXT_JSON_READER_TOTAL => $Qproducts->getBatchSize(), EXT_JSON_READER_ROOT => $records); echo $toC_Json->encode($response); }
<?php echo osc_link_object(osc_href_link(FILENAME_PRODUCTS, $product['products_id']), $product['products_image'], 'id="img_ac_newproductsmodule_' . $product['products_id'] . '"'); ?> <h3><?php echo osc_link_object(osc_href_link(FILENAME_PRODUCTS, $product['products_id']), $product['products_name']); ?> </h3> <p class="description"><?php echo strip_tags($osC_Product->getDescription()); ?> </p> </div> <div class="right"> <span class="price"><?php echo $osC_Product->getPriceFormated(true); ?> </span> <span class="buttons hidden-phone"> <a id="ac_newproductsmodule_<?php echo $product['products_id']; ?> " class="btn btn-small btn-info ajaxAddToCart" href="<?php echo osc_href_link(FILENAME_PRODUCTS, $product['products_id'] . '&action=cart_add'); ?> "> <i class="icon-shopping-cart icon-white "></i> <?php echo $osC_Language->get('button_buy_now'); ?> </a>
break; case 'PRODUCT_LIST_REVIEWS': if ($osC_Product->getData('reviews_average_rating') > 0) { $lc_text = osc_image(DIR_WS_IMAGES . 'stars_' . $osC_Product->getData('reviews_average_rating') . '.png', sprintf($osC_Language->get('rating_of_5_stars'), $osC_Product->getData('reviews_average_rating'))); $lc_text .= osc_link_object(osc_href_link(FILENAME_PRODUCTS, $Qlisting->value('products_id') . ($cPath ? '&cPath=' . $cPath : '')), $osC_Product->getData('reviews_total') . ' Reviews', 'class="reviewTotal"'); } else { $lc_text = osc_image(DIR_WS_IMAGES . 'stars_0.png', 'There is not any reviews for this product'); } break; case 'PRODUCT_LIST_MANUFACTURER': $lc_align = ''; $lc_text = ' ' . osc_link_object(osc_href_link(FILENAME_DEFAULT, 'manufacturers=' . $Qlisting->valueInt('manufacturers_id')), $Qlisting->value('manufacturers_name')) . ' '; break; case 'PRODUCT_LIST_PRICE': $lc_align = 'right'; $lc_text = $osC_Product->getPriceFormated(true); break; case 'PRODUCT_LIST_QUANTITY': $lc_align = 'right'; $lc_text = ' ' . $Qlisting->valueInt('products_quantity') . ' '; break; case 'PRODUCT_LIST_WEIGHT': $lc_align = 'right'; $lc_text = ' ' . $osC_Weight->display($Qlisting->value('products_weight'), $Qlisting->value('products_weight_class')) . ' '; break; case 'PRODUCT_LIST_IMAGE': $lc_align = 'center'; if (isset($_GET['manufacturers'])) { if ($Qlisting->value('products_type') == PRODUCT_TYPE_SIMPLE) { $lc_text = osc_link_object(osc_href_link(FILENAME_PRODUCTS, $Qlisting->value('products_id') . '&manufacturers=' . $_GET['manufacturers']), $osC_Image->show($Qlisting->value('image'), $Qlisting->value('products_name')), 'id="productImage' . $Qlisting->value('products_id') . '"'); } else {
function output_compare_products_table() { global $osC_Language, $osC_Image, $osC_Weight, $osC_Currencies, $toC_Compare_Products, $osC_Services; $content = ''; $products_images = array(); $products_titles = array(); $products_price = array(); $products_weight = array(); $products_sku = array(); $products_manufacturers = array(); $products_desciptions = array(); $products_attributes = array(); $products_variants = array(); $cols = array('<col width="20%">'); $col_width = round(80 / count($toC_Compare_Products->getProducts())); if ($toC_Compare_Products->hasContents()) { foreach ($toC_Compare_Products->getProducts() as $products_id_string) { $cols[] = '<col width="' . $col_width . '%">'; $osC_Product = new osC_Product($products_id_string); $products_id = osc_get_product_id($products_id_string); $image = $osC_Product->getImages(); $product_title = $osC_Product->getTitle(); $product_price = $osC_Product->getPriceFormated(true); $product_weight = $osC_Product->getWeight(); $product_sku = $osC_Product->getSKU(); //if the product have any variants, it means that the $products_id should be a product string such as 1#1:1;2:2 $variants = array(); if ($osC_Product->hasVariants()) { $product_variants = $osC_Product->getVariants(); if (preg_match('/^[0-9]+(?:#?(?:[0-9]+:?[0-9]+)+(?:;?([0-9]+:?[0-9]+)+)*)+$/', $products_id_string)) { $products_variant = $product_variants[$products_id_string]; $variants = osc_parse_variants_from_id_string($products_id_string); } else { $products_variant = $osC_Product->getDefaultVariant(); $variants = $products_variant['groups_id']; } //if the product have any variants, get the group_name:value_name string if (isset($products_variant) && isset($products_variant['groups_name']) && is_array($products_variant['groups_name']) && !empty($products_variant['groups_name'])) { $products_variants[$products_id_string]['variants'] = array(); foreach ($products_variant['groups_name'] as $groups_name => $value_name) { $products_variants[$products_id_string]['variants'][] = array('name' => $groups_name, 'value' => $value_name); } } $product_price = $osC_Currencies->displayPrice($osC_Product->getPrice($variants), $osC_Product->getTaxClassID()); $product_weight = $products_variant['weight']; $product_sku = $products_variant['sku']; $image = $products_variant['image']; } $image = is_array($image) ? $image[0]['image'] : $image; $products_titles[] = $product_title; if (!osc_empty($product_price)) { $products_price[] = $product_price; } if (!osc_empty($product_weight)) { $products_weight[] = $osC_Weight->display($product_weight, $osC_Product->getWeightClass()); } if (!osc_empty($product_sku)) { $products_sku[] = $product_sku; } if (!osc_empty($osC_Product->getManufacturer())) { $products_manufacturers[] = $osC_Product->getManufacturer(); } if (!osc_empty($osC_Product->getDescription())) { $products_desciptions[] = $osC_Product->getDescription(); } if ($osC_Product->hasAttributes()) { foreach ($osC_Product->getAttributes() as $attribute) { $products_attributes[$products_id]['attributes'][] = array('name' => $attribute['name'], 'value' => $attribute['value']); } } $products_id_string = str_replace('#', '_', $products_id_string); //used to fix bug [#209 - Compare / wishlist variant problem] if (isset($osC_Services) && $osC_Services->isStarted('sefu') && count($variants) > 0) { $products_images[] = '<div class="image">' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $products_id), $osC_Image->show($image, $osC_Product->getTitle())) . '</div>' . '<div class="button">' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $products_id . '&pid=' . $products_id_string . '&action=cart_add'), '<i class="icon-shopping-cart icon-white"></i> ' . $osC_Language->get('button_add_to_cart'), 'class="btn btn-mini"') . '</div>'; } else { $products_images[] = '<div class="image">' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $products_id), $osC_Image->show($image, $osC_Product->getTitle())) . '</div>' . '<div class="button">' . osc_link_object(osc_href_link(FILENAME_PRODUCTS, $products_id_string . '&action=cart_add'), '<i class="icon-shopping-cart icon-white"></i> ' . $osC_Language->get('button_add_to_cart'), 'class="btn btn-mini"') . '</div>'; } } $content .= '<table class="table table-hover table-striped">'; //add col groups $content .= '<colgroup>'; foreach ($cols as $col) { $content .= $col; } $content .= '</colgroup>'; //add product header $content .= '<tbody>'; $content .= '<tr class="first">'; $content .= '<th> </th>'; if (!osc_empty($products_images)) { foreach ($products_images as $k => $product_image) { $content .= '<td' . ($k == count($products_images) - 1 ? ' class="last"' : '') . '>' . $product_image . '</td>'; } } $content .= '</tr>'; $content .= '</tbody>'; //add compare details $content .= '<tbody>'; $row_class = 'even'; //add product name if (!osc_empty($products_titles)) { $content .= '<tr class="' . $row_class . '">' . '<th>' . $osC_Language->get('field_products_name') . '</th>'; foreach ($products_titles as $k => $product_title) { $content .= '<td' . ($k == count($products_titles) - 1 ? ' class="last"' : '') . '>' . $product_title . '</td>'; } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } //add product price if (!osc_empty($products_price)) { $content .= '<tr class="' . $row_class . '">' . '<th>' . $osC_Language->get('field_products_price') . '</th>'; foreach ($products_price as $k => $product_price) { $content .= '<td' . ($k == count($products_price) - 1 ? ' class="last"' : '') . '>' . $product_price . '</td>'; } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } //add product weight if (!osc_empty($products_weight)) { $content .= '<tr class="' . $row_class . '">' . '<th>' . $osC_Language->get('field_products_weight') . '</th>'; foreach ($products_weight as $k => $product_weight) { $content .= '<td' . ($k == count($products_weight) - 1 ? ' class="last"' : '') . '>' . $product_weight . '</td>'; } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } //add product sku if (!osc_empty($products_sku)) { $content .= '<tr class="' . $row_class . '">' . '<th>' . $osC_Language->get('field_products_sku') . '</th>'; foreach ($products_sku as $k => $product_sku) { $content .= '<td' . ($k == count($products_sku) - 1 ? ' class="last"' : '') . '>' . $product_sku . '</td>'; } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } //add product manufacturers if (!osc_empty($products_manufacturers)) { $content .= '<tr class="' . $row_class . '">' . '<th>' . $osC_Language->get('field_products_manufacturer') . '</th>'; foreach ($products_manufacturers as $k => $product_manufacturer) { $content .= '<td' . ($k == count($products_manufacturers) - 1 ? ' class="last"' : '') . '>' . $product_manufacturer . '</td>'; } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } //add product variants if (!osc_empty($products_variants)) { $content .= '<tr class="' . $row_class . '">' . '<th>' . $osC_Language->get('field_products_variants') . '</th>'; foreach ($toC_Compare_Products->getProducts() as $k => $products_id_string) { if (isset($products_variants[$products_id_string]['variants']) && !osc_empty($products_variants[$products_id_string]['variants'])) { $content .= '<td' . ($k == count($toC_Compare_Products->getProducts()) - 1 ? ' class="last"' : '') . '>'; foreach ($products_variants[$products_id_string]['variants'] as $variant) { $content .= '<span class="variant label label-info">' . $variant['name'] . ': ' . $variant['value'] . '</span> '; } $content .= '</td>'; } } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } //add product attributes if (!osc_empty($products_attributes)) { $content .= '<tr class="' . $row_class . '">' . '<th>' . $osC_Language->get('field_products_attributes') . '</th>'; foreach ($toC_Compare_Products->getProducts() as $k => $products_id_string) { if (isset($products_attributes[$products_id_string]['attributes']) && !osc_empty($products_attributes[$products_id_string]['attributes'])) { $content .= '<td' . ($k == count($toC_Compare_Products->getProducts()) - 1 ? ' class="last"' : '') . '>'; foreach ($products_attributes[$products_id_string]['attributes'] as $attribute) { $content .= '<span class="attribute">' . $attribute['name'] . ': ' . $attribute['value'] . '</span>'; } $content .= '</td>'; } } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } //add product description if (!osc_empty($products_desciptions)) { $content .= '<tr class="' . $row_class . ' last">' . '<th>' . $osC_Language->get('field_products_description') . '</th>'; foreach ($products_desciptions as $k => $product_description) { $content .= '<td' . ($k == count($products_desciptions) - 1 ? ' class="last"' : '') . '>' . $product_description . '</td>'; } $content .= '</tr>'; $row_class = $row_class == 'even' ? 'odd' : 'even'; } $content .= '</tbody>'; $content .= '</table>'; } return $content; }