public function __construct() { $this->bootstrap = true; $this->context = Context::getContext(); $this->cxt_lang = $this->context->language->id; $this->cxt_shop = $this->context->shop->id; $this->table = 'loyaltydiscount'; $this->_select = 'CONCAT(\'#\', p1.`id_product`, \' \', p1.`name`) AS `product_purchased_name` , CONCAT(\'#\', p2.`id_product`, \' \', p2.`name`) AS `product_discounted_name`'; $this->_join = ' JOIN `' . _DB_PREFIX_ . 'product_lang` p1 ON (p1.`id_product`=a.`id_product_purchased` AND p1.`id_shop`=' . $this->cxt_shop . ' AND p1.`id_lang`=' . $this->cxt_lang . ') JOIN `' . _DB_PREFIX_ . 'product_lang` p2 ON (p2.`id_product`=a.`id_product_discounted` AND p2.`id_shop`=' . $this->cxt_shop . ' AND p2.`id_lang`=' . $this->cxt_lang . ')'; $this->className = 'LoyaltyDiscountModel'; $this->lang = true; $this->allow_export = true; $this->fields_list = array('id_loyaltydiscount' => array('title' => $this->l('ID'), 'align' => 'center', 'class' => 'fixed-width-xs'), 'name' => array('title' => $this->l('Name')), 'description' => array('title' => $this->l('Description'), 'callback' => 'getDescriptionClean', 'orderby' => false), 'rate' => array('title' => $this->l('Rate'), 'type' => 'decimal'), 'product_purchased_name' => array('title' => $this->l('Product purchased')), 'product_discounted_name' => array('title' => $this->l('Product discounted')), 'active' => array('title' => $this->l('Activated'), 'active' => 'status', 'type' => 'bool', 'class' => 'fixed-width-xs', 'align' => 'center', 'ajax' => false, 'orderby' => false)); $this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'icon' => 'icon-trash', 'confirm' => $this->l('Delete selected items?'))); parent::__construct(); $this->products_list = array_map(function ($x) { $x['name'] = '#' . $x['id_product'] . ' ' . $x['name']; return $x; }, Product::getSimpleProducts($this->cxt_lang, $this->context)); if (!$this->module->active) { Tools::redirectAdmin($this->context->link->getAdminLink('AdminHome')); } }
public function displayJavascript() { global $cookie, $currentIndex; $products = Product::getSimpleProducts((int) $cookie->id_lang); $productsArray = array(); foreach ($products as $product) { $productsArray[] = $product['id_product']; } return ' <script type="text/javascript"> var productIds = new Array(\'' . implode('\',\'', $productsArray) . '\'); var referrerStatus = new Array(); function newProductLine(id_referrer, result) { return \'\'+ \'<tr id="trprid_\'+id_referrer+\'_\'+result.id_product+\'" style="background-color: rgb(255, 255, 187);">\'+ \' <td align="center">--</td>\'+ \' <td align="center">\'+result.id_product+\'</td>\'+ \' <td>\'+result.product_name+\'</td>\'+ \' <td align="center">\'+result.uniqs+\'</td>\'+ \' <td align="center">\'+result.visits+\'</td>\'+ \' <td align="center">\'+result.pages+\'</td>\'+ \' <td align="center">\'+result.registrations+\'</td>\'+ \' <td align="center">\'+result.orders+\'</td>\'+ \' <td align="right">\'+result.sales+\'</td>\'+ \' <td align="right">\'+result.cart+\'</td>\'+ \' <td align="center">\'+result.reg_rate+\'</td>\'+ \' <td align="center">\'+result.order_rate+\'</td>\'+ \' <td align="center">\'+result.click_fee+\'</td>\'+ \' <td align="center">\'+result.base_fee+\'</td>\'+ \' <td align="center">\'+result.percent_fee+\'</td>\'+ \' <td align="center">--</td>\'+ \'</tr>\'; } function showProductLines(id_referrer) { if (!referrerStatus[id_referrer]) { referrerStatus[id_referrer] = true; for (var i = 0; i < productIds.length; ++i) $.getJSON("' . dirname($currentIndex) . '/ajax.php",{ajaxReferrers:1, ajaxProductFilter:1,id_employee:' . (int) $cookie->id_employee . ',token:"' . Tools::getValue('token') . '",id_referrer:id_referrer,id_product:productIds[i]}, function(result) { var newLine = newProductLine(id_referrer, result[0]); $(newLine).hide().insertAfter(getE(\'trid_\'+id_referrer)).fadeIn(); } ); } else { referrerStatus[id_referrer] = false; for (var i = 0; i < productIds.length; ++i) $("#trprid_"+id_referrer+"_"+productIds[i]).fadeOut("fast", function(){$("#trprid_"+i).remove();}); } } </script>'; }
private function _displayFormApplicationCriterion() { include_once dirname(__FILE__) . '/ProductCommentCriterion.php'; $criterions = ProductCommentCriterion::getCriterions($this->context->language->id, false, true); $id_criterion = (int) Tools::getValue('updateCriterion'); if ($id_criterion) { $criterion = new ProductCommentCriterion((int) $id_criterion); if ($criterion->id_product_comment_criterion_type == 2) { $categories = Category::getSimpleCategories($this->context->language->id); $criterion_categories = $criterion->getCategories(); } else { if ($criterion->id_product_comment_criterion_type == 3) { $criterion_products = $criterion->getProducts(); $products = Product::getSimpleProducts($this->context->language->id); } } } foreach ($criterions as $key => $foo) { if ($foo['id_product_comment_criterion_type'] == 1) { unset($criterions[$key]); } } if (count($criterions)) { $this->_html .= ' <fieldset class="width2"> <legend><img src="' . $this->_path . 'img/note_go.png" alt="" title="" />' . $this->l('Manage criterions scope') . '</legend> <p style="margin-bottom: 15px;">' . $this->l('Only criterions restricted to categories or products can be configured below:') . '</p> <form action="' . Tools::safeOutput($this->_baseUrl) . '" method="post" name="product_criterion_form"> <label>' . $this->l('Criterion') . '</label> <div class="margin-form"> "> <select name="id_product_comment_criterion" id="id_product_comment_criterion" onchange="window.location=\'' . Tools::safeOutput($this->_baseUrl) . '&updateCriterion=\'+$(\'#id_product_comment_criterion option:selected\').val()"> <option value="--">-- ' . $this->l('Choose a criterion') . ' --</option>'; foreach ($criterions as $foo) { $this->_html .= '<option value="' . (int) $foo['id_product_comment_criterion'] . '" ' . ($foo['id_product_comment_criterion'] == $id_criterion ? 'selected="selected"' : '') . '>' . $foo['name'] . '</option>'; } $this->_html .= '</select> </div> </form>'; if ($id_criterion && $criterion->id_product_comment_criterion_type != 1) { $this->_html .= '<label for="id_product_comment_criterion">' . ($criterion->id_product_comment_criterion_type == 3 ? $this->l('Products') : $this->l('Categories')) . '</label> <form action="' . Tools::safeOutput($this->_baseUrl) . '" method="post" name="comment_form"> <div id="product_criterions" class="margin-form"> <input type="hidden" name="id_criterion" id="id_criterion" value="' . (int) $id_criterion . '" /> <br /><table class="table" border="0" cellspacing="0" cellpadding="0"> <thead> <tr> <th><input class="noborder" type="checkbox" name="id_product[]" onclick="checkDelBoxes(this.form, \'id_product[]\', this.checked);" /></th> <th style="width: 30px;">' . $this->l('ID') . '</th> <th style="width: 550px;">' . ($criterion->id_product_comment_criterion_type == 3 ? $this->l('Product Name') : $this->l('Category Name')) . '</th> </tr> </thead> <tbody>'; if ($criterion->id_product_comment_criterion_type == 3) { foreach ($products as $product) { $this->_html .= '<tr><td><input class="noborder" type="checkbox" value="' . (int) $product['id_product'] . '" name="id_product[]" ' . (in_array($product['id_product'], $criterion_products) ? 'checked="checked"' : '') . ' /></td> <td>' . (int) $product['id_product'] . '</td><td>' . $product['name'] . '</td></tr>'; } } else { if ($criterion->id_product_comment_criterion_type == 2) { foreach ($categories as $category) { $this->_html .= '<tr><td><input class="noborder" type="checkbox" value="' . (int) $category['id_category'] . '" name="id_product[]" ' . (in_array($category['id_category'], $criterion_categories) ? 'checked="checked"' : '') . ' /></td> <td>' . (int) $category['id_category'] . '</td><td>' . $category['name'] . '</td></tr>'; } } } $this->_html .= '</tbody> </table> </div> <div class="margin-form clear"> <input type="submit" name="submitApplicationCriterion" value="' . $this->l('Save') . '" class="button" /> </div> </form>'; } $this->_html .= '</fieldset>'; } }
public function displayAccount() { global $smarty, $cookie; if (!isset($cookie->stats_date_from)) { $cookie->stats_date_from = date('Y-m-d'); } if (!isset($cookie->stats_date_to)) { $cookie->stats_date_to = date('Y-m-t'); } $fakeEmployee = new Employee(); $fakeEmployee->stats_date_from = $cookie->stats_date_from; $fakeEmployee->stats_date_to = $cookie->stats_date_to; Referrer::refreshCache(array(array('id_referrer' => intval($cookie->tracking_id))), $fakeEmployee); $referrer = new Referrer(intval($cookie->tracking_id)); $smarty->assign('referrer', $referrer); $smarty->assign('datepickerFrom', $fakeEmployee->stats_date_from); $smarty->assign('datepickerTo', $fakeEmployee->stats_date_to); $displayTab = array('uniqs' => $this->l('Unique visitors'), 'visitors' => $this->l('Visitors'), 'visits' => $this->l('Visits'), 'pages' => $this->l('Pages viewed'), 'registrations' => $this->l('Registrations'), 'orders' => $this->l('Orders'), 'base_fee' => $this->l('Base fee'), 'percent_fee' => $this->l('Percent fee'), 'click_fee' => $this->l('Click fee'), 'sales' => $this->l('Sales'), 'cart' => $this->l('Average cart'), 'reg_rate' => $this->l('Registration rate'), 'order_rate' => $this->l('Order rate')); $smarty->assign('displayTab', $displayTab); $products = Product::getSimpleProducts(intval($cookie->id_lang)); $productsArray = array(); foreach ($products as $product) { $productsArray[] = $product['id_product']; } $echo = ' <script type="text/javascript" src="../../js/jquery/datepicker/ui/i18n/ui.datepicker-' . Db::getInstance()->getValue('SELECT iso_code FROM ' . _DB_PREFIX_ . 'lang WHERE `id_lang` = ' . intval($cookie->id_lang)) . '.js"></script> <script type="text/javascript"> $("#datepickerFrom").datepicker({ prevText:"", nextText:"", dateFormat:"yy-mm-dd"}); $("#datepickerTo").datepicker({ prevText:"", nextText:"", dateFormat:"yy-mm-dd"}); function updateValues() { $.getJSON("stats.php",{ajaxProductFilter:1,id_referrer:' . $referrer->id . ',token:"' . $cookie->tracking_passwd . '",id_product:0}, function(j) {'; foreach ($displayTab as $key => $value) { $echo .= '$("#' . $key . '").html(j[0].' . $key . ');'; } $echo .= ' } ) } var productIds = new Array(\'' . implode('\',\'', $productsArray) . '\'); var referrerStatus = new Array(); function newProductLine(id_referrer, result, color) { return \'\'+ \'<tr id="trprid_\'+id_referrer+\'_\'+result.id_product+\'" style="background-color: rgb(\'+color+\', \'+color+\', \'+color+\');">\'+ \' <td align="center">\'+result.id_product+\'</td>\'+ \' <td>\'+result.product_name+\'</td>\'+ \' <td align="center">\'+result.uniqs+\'</td>\'+ \' <td align="center">\'+result.visits+\'</td>\'+ \' <td align="center">\'+result.pages+\'</td>\'+ \' <td align="center">\'+result.registrations+\'</td>\'+ \' <td align="center">\'+result.orders+\'</td>\'+ \' <td align="right">\'+result.sales+\'</td>\'+ \' <td align="right">\'+result.cart+\'</td>\'+ \' <td align="center">\'+result.reg_rate+\'</td>\'+ \' <td align="center">\'+result.order_rate+\'</td>\'+ \' <td align="center">\'+result.click_fee+\'</td>\'+ \' <td align="center">\'+result.base_fee+\'</td>\'+ \' <td align="center">\'+result.percent_fee+\'</td>\'+ \'</tr>\'; } function showProductLines() { var irow = 0; for (var i = 0; i < productIds.length; ++i) $.getJSON("stats.php",{ajaxProductFilter:1,token:"' . $cookie->tracking_passwd . '",id_referrer:' . $referrer->id . ',id_product:productIds[i]}, function(result) { var newLine = newProductLine(' . $referrer->id . ', result[0], (irow++%2 ? 204 : 238)); $(newLine).hide().insertBefore($(\'#trid_dummy\')).fadeIn(); } ); } </script>'; $echo2 = ' <script type="text/javascript"> updateValues(); //showProductLines(); </script>'; return $this->display(__FILE__, 'header.tpl') . $echo . $this->display(__FILE__, 'account.tpl') . $echo2; }
public function generateFlux() { if (Tools::getValue('token') == '' || Tools::getValue('token') != Configuration::get('SHOPPING_FLUX_TOKEN')) { die('Invalid Token'); } $titles = array(0 => 'id_produit', 1 => 'nom_produit', 2 => 'url_produit', 3 => 'url_image', 4 => 'description', 5 => 'description_courte', 6 => 'prix', 7 => 'prix_barre', 8 => 'frais_de_port', 9 => 'delaiLiv', 10 => 'marque', 11 => 'rayon', 12 => 'stock', 13 => 'qte_stock', 14 => 'EAN', 15 => 'poids', 16 => 'ecotaxe', 17 => 'TVA', 18 => 'Reference constructeur', 19 => 'Reference fournisseur'); echo implode("|", $titles) . "\r\n"; //For Shipping $configuration = Configuration::getMultiple(array('PS_TAX_ADDRESS_TYPE', 'PS_CARRIER_DEFAULT', 'PS_COUNTRY_DEFAULT', 'PS_LANG_DEFAULT', 'PS_SHIPPING_FREE_PRICE', 'PS_SHIPPING_HANDLING', 'PS_SHIPPING_METHOD', 'PS_SHIPPING_FREE_WEIGHT')); $products = Product::getSimpleProducts($configuration['PS_LANG_DEFAULT']); $defaultCountry = new Country($configuration['PS_COUNTRY_DEFAULT'], Configuration::get('PS_LANG_DEFAULT')); $id_zone = (int) $defaultCountry->id_zone; $carrier = new Carrier((int) $configuration['PS_CARRIER_DEFAULT']); $carrierTax = Tax::getCarrierTaxRate((int) $carrier->id, (int) $this->{$configuration['PS_TAX_ADDRESS_TYPE']}); foreach ($products as $key => $produit) { $product = new Product((int) $produit['id_product'], true, $configuration['PS_LANG_DEFAULT']); //For links $link = new Link(); //For images $cover = $product->getCover($product->id); $ids = $product->id . '-' . $cover['id_image']; //For shipping if ($product->getPrice(true, NULL, 2, NULL, false, true, 1) >= (double) $configuration['PS_SHIPPING_FREE_PRICE'] and (double) $configuration['PS_SHIPPING_FREE_PRICE'] > 0) { $shipping = 0; } elseif (isset($configuration['PS_SHIPPING_FREE_WEIGHT']) and $product->weight >= (double) $configuration['PS_SHIPPING_FREE_WEIGHT'] and (double) $configuration['PS_SHIPPING_FREE_WEIGHT'] > 0) { $shipping = 0; } else { if (isset($configuration['PS_SHIPPING_HANDLING']) and $carrier->shipping_handling) { $shipping = (double) $configuration['PS_SHIPPING_HANDLING']; } if ($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_WEIGHT) { $shipping += $carrier->getDeliveryPriceByWeight($product->weight, $id_zone); } else { $shipping += $carrier->getDeliveryPriceByPrice($product->getPrice(true, NULL, 2, NULL, false, true, 1), $id_zone); } $shipping *= 1 + $carrierTax / 100; $shipping = (double) Tools::ps_round((double) $shipping, 2); } $data = array(); $data[0] = $product->id; $data[1] = $product->name; $data[2] = $link->getProductLink($product); $data[3] = $link->getImageLink($product->link_rewrite, $ids, 'large'); $data[4] = $product->description; $data[5] = $product->description_short; $data[6] = $product->getPrice(true, NULL, 2, NULL, false, true, 1); $data[7] = $product->getPrice(true, NULL, 2, NULL, false, false, 1); $data[8] = $shipping; $data[9] = $carrier->delay[2]; $data[10] = $product->manufacturer_name; $data[11] = $product->category; $data[12] = $product->quantity > 0 ? 'oui' : 'non'; $data[13] = $product->quantity; $data[14] = $product->ean13; $data[15] = $product->weight; $data[16] = $product->ecotax; $data[17] = $product->tax_rate; $data[18] = $product->reference; $data[19] = $product->supplier_reference; foreach ($data as $key => $value) { $data[$key] = $this->clean($value); } echo implode("|", $data) . "\r\n"; } }
function renderCriterionForm($id_criterion = 0) { $types = ProductCommentCriterion::getTypes(); $query = array(); foreach ($types as $key => $value) { $query[] = array('id' => $key, 'label' => $value); } $criterion = new ProductCommentCriterion((int) $id_criterion); $selected_categories = $criterion->getCategories(); $product_table_values = Product::getSimpleProducts($this->context->language->id); $selected_products = $criterion->getProducts(); foreach ($product_table_values as $key => $product) { if (false !== array_search($product['id_product'], $selected_products)) { $product_table_values[$key]['selected'] = 1; } } if (version_compare(_PS_VERSION_, '1.6', '<')) { $field_category_tree = array('type' => 'categories_select', 'name' => 'categoryBox', 'label' => $this->l('Criterion will be restricted to the following categories'), 'category_tree' => $this->initCategoriesAssociation(null, $id_criterion)); } else { $field_category_tree = array('type' => 'categories', 'label' => $this->l('Criterion will be restricted to the following categories'), 'name' => 'categoryBox', 'desc' => $this->l('Mark the boxes of categories to which this criterion applies.'), 'tree' => array('use_search' => false, 'id' => 'categoryBox', 'use_checkbox' => true, 'selected_categories' => $selected_categories), 'values' => array('trads' => array('Root' => Category::getTopCategory(), 'selected' => $this->l('Selected'), 'Collapse All' => $this->l('Collapse All'), 'Expand All' => $this->l('Expand All'), 'Check All' => $this->l('Check All'), 'Uncheck All' => $this->l('Uncheck All')), 'selected_cat' => $selected_categories, 'input_name' => 'categoryBox[]', 'use_radio' => false, 'use_search' => false, 'disabled_categories' => array(), 'top_category' => Category::getTopCategory(), 'use_context' => true)); } $fields_form_1 = array('form' => array('legend' => array('title' => $this->l('Add new criterion'), 'icon' => 'icon-cogs'), 'input' => array(array('type' => 'hidden', 'name' => 'id_product_comment_criterion'), array('type' => 'text', 'lang' => true, 'label' => $this->l('Criterion name'), 'name' => 'name'), array('type' => 'select', 'name' => 'id_product_comment_criterion_type', 'label' => $this->l('Application scope of the criterion'), 'options' => array('query' => $query, 'id' => 'id', 'name' => 'label')), $field_category_tree, array('type' => 'products', 'label' => $this->l('The criterion will be restricted to the following products'), 'name' => 'ids_product', 'values' => $product_table_values), array('type' => 'switch', 'is_bool' => true, 'label' => $this->l('Active'), 'name' => 'active', 'values' => array(array('id' => 'active_on', 'value' => 1, 'label' => $this->l('Enabled')), array('id' => 'active_off', 'value' => 0, 'label' => $this->l('Disabled'))))), 'submit' => array('title' => $this->l('Save'), 'class' => 'btn btn-default pull-right', 'name' => 'submitEditCriterion'))); $helper = new HelperForm(); $helper->show_toolbar = false; $helper->table = $this->name; $lang = new Language((int) Configuration::get('PS_LANG_DEFAULT')); $helper->default_form_language = $lang->id; $helper->module = $this; $helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0; $helper->identifier = $this->identifier; $helper->submit_action = 'submitEditCriterion'; $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false) . '&configure=' . $this->name . '&tab_module=' . $this->tab . '&module_name=' . $this->name; $helper->token = Tools::getAdminTokenLite('AdminModules'); $helper->tpl_vars = array('fields_value' => $this->getCriterionFieldsValues($id_criterion), 'languages' => $this->context->controller->getLanguages(), 'id_language' => $this->context->language->id); return $helper->generateForm(array($fields_form_1)); }
public function generateFeed() { if (Tools::getValue('token') == '' || Tools::getValue('token') != Configuration::get('SHOPPING_FLUX_TOKEN')) { die("<?xml version='1.0' encoding='utf-8'?><error>Invalid Token</error>"); } $configuration = Configuration::getMultiple(array('PS_TAX_ADDRESS_TYPE', 'PS_CARRIER_DEFAULT', 'PS_COUNTRY_DEFAULT', 'PS_LANG_DEFAULT', 'PS_SHIPPING_FREE_PRICE', 'PS_SHIPPING_HANDLING', 'PS_SHIPPING_METHOD', 'PS_SHIPPING_FREE_WEIGHT')); $carrier = new Carrier((int) $configuration['PS_CARRIER_DEFAULT']); $products = Product::getSimpleProducts($configuration['PS_LANG_DEFAULT'], null, true); echo '<?xml version="1.0" encoding="utf-8"?>'; echo '<produits>'; foreach ($products as $productArray) { $product = new Product((int) $productArray['id_product'], true, $configuration['PS_LANG_DEFAULT']); $link = new Link(); if ($product->active == 1) { echo '<produit>'; echo $this->_getBaseData($product, $configuration, $link, $carrier); echo $this->_getImages($product, $configuration, $link); echo $this->_getUrlCategories($product, $configuration, $link); echo $this->_getFeatures($product, $configuration); echo $this->_getCombinaisons($product, $configuration, $link, $carrier); echo $this->_getFilAriane($product, $configuration); echo '<manufacturer><![CDATA[' . $product->manufacturer_name . ']]></manufacturer>'; echo '<supplier><![CDATA[' . $product->supplier_name . ']]></supplier>'; if (is_array($product->specificPrice)) { echo '<from><![CDATA[' . $product->specificPrice['from'] . ']]></from>'; echo '<to><![CDATA[' . $product->specificPrice['to'] . ']]></to>'; } else { echo '<from/>'; echo '<to/>'; } echo '<url-fournisseur><![CDATA[' . $link->getSupplierLink($product->id_supplier, NULL, $configuration['PS_LANG_DEFAULT']) . ']]></url-fournisseur>'; echo '<url-fabricant><![CDATA[' . $link->getManufacturerLink($product->id_manufacturer, NULL, $configuration['PS_LANG_DEFAULT']) . ']]></url-fabricant>'; echo '</produit>'; } } echo '</produits>'; }
public function displayAccount() { if (!isset($this->context->cookie->stats_date_from)) { $this->context->cookie->stats_date_from = date('Y-m-01'); } if (!isset($this->context->cookie->stats_date_to)) { $this->context->cookie->stats_date_to = date('Y-m-t'); } Referrer::refreshCache(array(array('id_referrer' => (int) $this->context->cookie->tracking_id))); $referrer = new Referrer((int) $this->context->cookie->tracking_id); $this->smarty->assign('referrer', $referrer); $this->smarty->assign('datepickerFrom', $this->context->cookie->stats_date_from); $this->smarty->assign('datepickerTo', $this->context->cookie->stats_date_to); $display_tab = array('uniqs' => $this->l('Unique visitors'), 'visitors' => $this->l('Visitors'), 'visits' => $this->l('Visits'), 'pages' => $this->l('Pages viewed'), 'registrations' => $this->l('Registrations'), 'orders' => $this->l('Orders'), 'base_fee' => $this->l('Base fee'), 'percent_fee' => $this->l('Percent fee'), 'click_fee' => $this->l('Click fee'), 'sales' => $this->l('Sales'), 'cart' => $this->l('Average cart'), 'reg_rate' => $this->l('Registration rate'), 'order_rate' => $this->l('Order rate')); $this->smarty->assign('displayTab', $display_tab); $products = Product::getSimpleProducts($this->context->language->id); $products_array = array(); foreach ($products as $product) { $products_array[] = $product['id_product']; } $js_files = array(); $jquery_files = Media::getJqueryPath(); if (is_array($jquery_files)) { $js_files = array_merge($js_files, $jquery_files); } else { $js_files[] = $jquery_files; } $jquery_ui_files = Media::getJqueryUIPath('ui.datepicker', 'base', true); $js_files = array_merge($js_files, $jquery_ui_files['js']); $css_files = $jquery_ui_files['css']; $js_files[] = $this->_path . 'js/trackingfront.js'; $js_tpl_var = array('product_ids' => implode(', ', $products_array), 'referrer_id' => $referrer->id, 'token' => $this->context->cookie->tracking_passwd, 'display_tab' => implode('", "', array_keys($display_tab))); $this->smarty->assign(array('js' => $js_files, 'css' => $css_files, 'js_tpl_var' => $js_tpl_var)); return $this->display(__FILE__, 'views/templates/front/account.tpl'); }
private function _displayFormProductCriterion() { global $cookie; $products = Product::getSimpleProducts($cookie->id_lang); $this->_html .= '<script type="text/javascript" src="' . $this->_path . 'js/productCriterion.js"></script> <form action="' . $_SERVER['REQUEST_URI'] . '" method="post" name="product_criterion_form"> <fieldset><legend><img src="' . $this->_path . 'img/note_go.png" alt="" title="" />' . $this->l('Product\'s criterions') . '</legend> <p>' . $this->l('Select the grading criterions corresponding to each product. You can select multiple criterions by pressing the ctrl key.') . '</p><br /> <label for="id_product">' . $this->l('Product') . '</label> <div class="margin-form"> <select name="id_product" id="id_product" onchange="getProductCriterion(\'' . $this->_path . '\', this.options[this.selectedIndex].value, \'' . intval($cookie->id_lang) . '\');">'; foreach ($products as $product) { $this->_html .= '<option value="' . intval($product['id_product']) . '">' . htmlspecialchars($product['name'], ENT_COMPAT, 'UTF-8') . '</option>'; } $this->_html .= '</select> </div> <label for="id_product_comment_criterion">' . $this->l('Grading criterions') . '</label> <div id="product_criterions" class="margin-form"> </div> <div class="margin-form clear"><input type="submit" name="submitCriterionProduct" value="' . $this->l('Save') . '" class="button" /></div> <script type="text/javascript"> getProductCriterion(\'' . $this->_path . '\', document.getElementById(\'id_product\').options[0].value, \'' . intval($cookie->id_lang) . '\'); </script> </fieldset> </form>'; }
protected function renderThemeConfiguratorForm() { $id_shop = (int) $this->context->shop->id; $items = array(); $hooks = array(); $this->context->smarty->assign('htmlcontent', array('admin_tpl_path' => $this->admin_tpl_path, 'hooks_tpl_path' => $this->hooks_tpl_path, 'info' => array('module' => $this->name, 'name' => $this->displayName, 'version' => $this->version, 'psVersion' => _PS_VERSION_, 'context' => Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE') == 0 ? 1 : $this->context->shop->getTotalShops() != 1 ? $this->context->shop->getContext() : 1))); foreach ($this->languages as $language) { $hooks[$language['id_lang']] = array('home', 'top', 'left', 'right', 'footer'); foreach ($hooks[$language['id_lang']] as $hook) { $items[$language['id_lang']][$hook] = Db::getInstance()->ExecuteS(' SELECT * FROM `' . _DB_PREFIX_ . 'themeconfigurator` WHERE id_shop = ' . (int) $id_shop . ' AND id_lang = ' . (int) $language['id_lang'] . ' AND hook = \'' . pSQL($hook) . '\' ORDER BY item_order ASC'); } } $this->context->smarty->assign('htmlitems', array('items' => $items, 'theme_url' => $this->context->link->getAdminLink('AdminThemeConfigurator'), 'lang' => array('default' => $this->default_language, 'all' => $this->languages, 'lang_dir' => _THEME_LANG_DIR_, 'user' => $this->context->language->id), 'postAction' => 'index.php?tab=AdminModules&configure=' . $this->name . '&token=' . Tools::getAdminTokenLite('AdminModules') . '&tab_module=other&module_name=' . $this->name . '', 'id_shop' => $id_shop)); $all_products = Product::getSimpleProducts((int) Configuration::get('PS_LANG_DEFAULT')); $this->context->smarty->assign('all_products', $all_products); $this->context->controller->addJqueryUI('ui.sortable'); return $this->display(__FILE__, 'views/templates/admin/admin.tpl'); }
public function createShopInfo() { $shopInfo = array('category_count' => count(Category::getSimpleCategories($this->getLanguageId())), 'item_count' => count(Product::getSimpleProducts($this->getLanguageId()))); if ($this->config->getEnableGetReviewsCsv()) { /** * set review_count */ $shopInfo['review_count'] = 0; } if ($this->config->getEnableGetMediaCsv()) { /** * media_count */ $shopInfo['media_count'] = array(); } $shopInfo['plugins_installed'] = array(); foreach (Module::getModulesInstalled() as $module) { $shopInfo['plugins_installed'][] = array('id' => $module['id_module'], 'name' => $module['name'], 'version' => $module['version'], 'active' => $module['active'] ? 1 : 0); } return $shopInfo; }
} self::$prestaprds = array(); if (!empty($cats)) { foreach ($cats as $cat) { if ($cat['id_shop'] == Context::getContext()->shop->id) { self::$prestaprds['category_' . $cat['id_category']] = $cat['name']; } if (isset($cat['children']) && !empty($cat['children'])) { self::getPrestaProdChildCat($cat['children']); } } } return self::$prestaprds; } public static function getPrestaProdduct() { $prds = array(); $prducts = array(); if (method_exists('Product', 'getSimpleProducts')) { $id_lang = (int) Context::getContext()->language->id; $prds = Product::getSimpleProducts($id_lang); } else { $prds = self::getSimpleProducts(); } if (isset($prds) && !empty($prds)) {
public function createDummyDataForProject() { //delete privious products of prestashop $all_products = Product::getSimpleProducts(Configuration::get('PS_LANG_DEFAULT')); foreach ($all_products as $key_pro => $value_pro) { $obj_product = new Product($value_pro['id_product']); $obj_product->delete(); } // first add a hotel................. $def_cont_id = Country::getDefaultCountryId(); $obj_hotel_info = new HotelBranchInformation(); $obj_hotel_info->active = 1; $obj_hotel_info->hotel_name = "The Hotel Prime"; $obj_hotel_info->phone = 01234567; $obj_hotel_info->email = "*****@*****.**"; $obj_hotel_info->check_in = '12:00'; $obj_hotel_info->check_out = '12:00'; $obj_hotel_info->short_description = $this->l('Nice place to stay'); $obj_hotel_info->description = $this->l('Nice place to stay'); $obj_hotel_info->rating = 3; $obj_hotel_info->city = 'Nainital'; $states = State::getStatesByIdCountry($def_cont_id); $state_id = $states[0]['id_state']; $obj_hotel_info->state_id = $state_id; $obj_hotel_info->country_id = $def_cont_id; $obj_hotel_info->zipcode = 263001; $obj_hotel_info->policies = $this->l('1. intelligentsia tattooed pop-up salvia asymmetrical mixtape meggings tousled ramps VHS cred. 2. intelligentsia tattooed pop-up salvia asymmetrical mixtape meggings tousled ramps VHS cred. 3. intelligentsia tattooed pop-up salvia asymmetrical mixtape meggings tousled ramps VHS cred. 4. intelligentsia tattooed pop-up salvia asymmetrical mixtape meggings tousled ramps VHS cred.'); $obj_hotel_info->address = 'Near post office, Mallital, Nainital'; $obj_hotel_info->save(); $htl_id = $obj_hotel_info->id; $grp_ids = array(); $obj_grp = new Group(); $data_grp_ids = $obj_grp->getGroups(1, $id_shop = false); foreach ($data_grp_ids as $key => $value) { $grp_ids[] = $value['id_group']; } $country_name = (new Country())->getNameById(Configuration::get('PS_LANG_DEFAULT'), $def_cont_id); $cat_country = $this->addCategory($country_name, false, $grp_ids); if ($cat_country) { $states = State::getStatesByIdCountry($def_cont_id); $state_name = $states[0]['name']; $cat_state = $this->addCategory($state_name, $cat_country, $grp_ids); } if ($cat_state) { $cat_city = $this->addCategory('DefCity', $cat_state, $grp_ids); } if ($cat_city) { $cat_hotel = $this->addCategory('The Hotel Prime', $cat_city, $grp_ids, 1, $htl_id); } if ($cat_hotel) { $obj_hotel_info = new HotelBranchInformation($htl_id); $obj_hotel_info->id_category = $cat_hotel; $obj_hotel_info->save(); } $branch_ftr_ids = array(1, 2, 4, 7, 8, 9, 11, 12, 14, 16, 17, 18, 21); foreach ($branch_ftr_ids as $key_ftr => $value_ftr) { $htl_ftr_obj = new HotelBranchFeatures(); $htl_ftr_obj->id_hotel = $htl_id; $htl_ftr_obj->feature_id = $value_ftr; $htl_ftr_obj->save(); } $prod_arr = array('Delux Rooms', 'Executive Rooms', 'luxury Rooms'); $img_num = 1; foreach ($prod_arr as $key_prod => $value_prod) { // Add Product $product = new Product(); $product->name = array(); $product->description = array(); $product->description_short = array(); $product->link_rewrite = array(); foreach (Language::getLanguages(true) as $lang) { $product->name[$lang['id_lang']] = $value_prod; $product->description[$lang['id_lang']] = $this->l('Fashion axe kogi yuccie, ramps shabby chic direct trade before they sold out distillery bicycle rights. Slow-carb +1 quinoa VHS. +1 brunch trust fund, meggings chartreuse sustainable everyday carry tumblr hoodie tacos tilde ramps post-ironic fixie.'); $product->description_short[$lang['id_lang']] = $this->l('Fashion axe kogi yuccie, ramps shabby chic direct trade before they sold out distillery bicycle rights. Slow-carb +1 quinoa VHS. +1 brunch trust fund, meggings chartreuse sustainable everyday carry tumblr hoodie tacos tilde ramps post-ironic fixie.'); $product->link_rewrite[$lang['id_lang']] = Tools::link_rewrite('Super Delux Rooms'); } $product->id_shop_default = Context::getContext()->shop->id; $product->id_category_default = 2; $product->price = 1000; $product->active = 1; $product->quantity = 99999999; $product->is_virtual = 1; $product->indexed = 1; $product->save(); $product_id = $product->id; Search::indexation(Tools::link_rewrite($value_prod), $product_id); $product->addToCategories(2); StockAvailable::updateQuantity($product_id, null, 99999999); //image upload for products $count = 0; $have_cover = false; $old_path = _PS_MODULE_DIR_ . $this->name . '/views/img/prod_imgs/' . $img_num . '.png'; $image_obj = new Image(); $image_obj->id_product = $product_id; $image_obj->position = Image::getHighestPosition($product_id) + 1; if ($count == 0) { if (!$have_cover) { $image_obj->cover = 1; } } else { $image_obj->cover = 0; } $image_obj->add(); $new_path = $image_obj->getPathForCreation(); $imagesTypes = ImageType::getImagesTypes('products'); foreach ($imagesTypes as $image_type) { ImageManager::resize($old_path, $new_path . '-' . $image_type['name'] . '.jpg', $image_type['width'], $image_type['height']); } ImageManager::resize($old_path, $new_path . '.jpg'); for ($k = 1; $k <= 5; $k++) { $htl_room_info_obj = new HotelRoomInformation(); $htl_room_info_obj->id_product = $product_id; $htl_room_info_obj->id_hotel = $htl_id; $htl_room_info_obj->room_num = 'A' . $i . '-10' . $k; $htl_room_info_obj->id_status = 1; $htl_room_info_obj->floor = 'first'; $htl_room_info_obj->save(); } $htl_rm_type = new HotelRoomType(); $htl_rm_type->id_product = $product_id; $htl_rm_type->id_hotel = $htl_id; $htl_rm_type->adult = 2; $htl_rm_type->children = 2; $htl_rm_type->save(); $img_num++; // Add features to the product $ftr_arr = array(0 => 8, 1 => 9, 2 => 10, 3 => 11); $ftr_val_arr = array(0 => 34, 1 => 35, 2 => 36, 3 => 37); foreach ($ftr_arr as $key_htl_ftr => $val_htl_ftr) { $product->addFeaturesToDB($val_htl_ftr, $ftr_val_arr[$key_htl_ftr]); } } return true; }