PATH:
home
/
beestk
/
supervelo
/
classes
<?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) */ use PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext; /** * Class ProductAssemblerCore. */ class ProductAssemblerCore { private $context; private $searchContext; /** * ProductAssemblerCore constructor. * * @param \Context $context */ public function __construct(Context $context) { $this->context = $context; $this->searchContext = new ProductSearchContext($context); } /** * Add missing product fields. * * @param array $rawProduct * * @return array */ private function addMissingProductFields(array $rawProduct) { $idShop = (int) $this->searchContext->getIdShop(); $idLang = (int) $this->searchContext->getIdLang(); $idProduct = (int) $rawProduct['id_product']; $prefix = _DB_PREFIX_; $nbDaysNewProduct = (int) Configuration::get('PS_NB_DAYS_NEW_PRODUCT'); if (!Validate::isUnsignedInt($nbDaysNewProduct)) { $nbDaysNewProduct = 20; } $now = date('Y-m-d') . ' 00:00:00'; $sql = "SELECT p.*, ps.*, pl.*, sa.out_of_stock, IFNULL(sa.quantity, 0) as quantity, (DATEDIFF( p.`date_add`, DATE_SUB( '$now', INTERVAL $nbDaysNewProduct DAY ) ) > 0) as new FROM {$prefix}product p LEFT JOIN {$prefix}product_lang pl ON pl.id_product = p.id_product AND pl.id_shop = $idShop AND pl.id_lang = $idLang LEFT JOIN {$prefix}stock_available sa ON sa.id_product = p.id_product AND sa.id_shop = $idShop LEFT JOIN {$prefix}product_shop ps ON ps.id_product = p.id_product AND ps.id_shop = $idShop WHERE p.id_product = $idProduct LIMIT 1"; $rows = Db::getInstance()->executeS($sql); if ($rows === false) { return $rawProduct; } return array_merge($rows[0], $rawProduct); } /** * Assemble Product. * * @param array $rawProduct * * @return mixed */ public function assembleProduct(array $rawProduct) { $enrichedProduct = $this->addMissingProductFields($rawProduct); return Product::getProductProperties( $this->searchContext->getIdLang(), $enrichedProduct, $this->context ); } }
[+]
..
[-] TranslatedConfiguration.php
[open]
[-] Validate.php
[open]
[-] SupplierAddress.php
[open]
[-] Product.php
[open]
[-] GroupReduction.php
[open]
[+]
Smarty
[-] Image.php
[open]
[-] Manufacturer.php
[open]
[-] Cart.php
[open]
[-] LocalizationPack.php
[open]
[+]
stock
[-] .htaccess
[open]
[-] ValidateConstraintTranslator.php
[open]
[-] PrestaShopLogger.php
[open]
[-] Address.php
[open]
[+]
helper
[-] SpecificPriceRule.php
[open]
[-] Media.php
[open]
[-] Tab.php
[open]
[-] EmployeeSession.php
[open]
[-] PrestaShopBackup.php
[open]
[-] Zone.php
[open]
[-] PrestaShopAutoload.php
[open]
[-] CustomerMessage.php
[open]
[+]
product
[-] Link.php
[open]
[-] PrestaShopCollection.php
[open]
[+]
order
[-] Curve.php
[open]
[+]
exception
[+]
container
[+]
checkout
[-] Delivery.php
[open]
[+]
webservice
[-] AddressChecksumCore.php
[open]
[-] ProductPresenterFactory.php
[open]
[-] ProductAssembler.php
[open]
[-] CustomerAddress.php
[open]
[-] Dispatcher.php
[open]
[-] Store.php
[open]
[-] ProductSale.php
[open]
[-] CMSRole.php
[open]
[-] Uploader.php
[open]
[-] QuickAccess.php
[open]
[+]
tree
[-] Customization.php
[open]
[-] Connection.php
[open]
[-] Risk.php
[open]
[-] AddressFormat.php
[open]
[-] Translate.php
[open]
[-] Message.php
[open]
[-] PhpEncryption.php
[open]
[-] ChecksumInterface.php
[open]
[-] QqUploadedFileForm.php
[open]
[-] FileUploader.php
[open]
[+]
db
[-] Alias.php
[open]
[+]
lang
[-] Feature.php
[open]
[-] Tools.php
[open]
[-] ConnectionsSource.php
[open]
[-] ImageManager.php
[open]
[-] CustomizationField.php
[open]
[-] SpecificPrice.php
[open]
[-] ProductDownload.php
[open]
[-] RequestSql.php
[open]
[-] DateRange.php
[open]
[-] AttributeGroup.php
[open]
[+]
assets
[-] Notification.php
[open]
[-] Attachment.php
[open]
[-] Chart.php
[open]
[-] Access.php
[open]
[-] PhpEncryptionLegacyEngine.php
[open]
[-] Page.php
[open]
[-] Supplier.php
[open]
[-] Group.php
[open]
[-] Carrier.php
[open]
[-] Pack.php
[open]
[-] ManufacturerAddress.php
[open]
[-] CartRule.php
[open]
[-] Referrer.php
[open]
[-] Tag.php
[open]
[-] ObjectModel.php
[open]
[-] Configuration.php
[open]
[-] Category.php
[open]
[+]
cache
[-] Employee.php
[open]
[-] ProductSupplier.php
[open]
[-] Contact.php
[open]
[-] Search.php
[open]
[+]
module
[-] ImageType.php
[open]
[-] WarehouseAddress.php
[open]
[-] FeatureValue.php
[open]
[-] PhpEncryptionEngine.php
[open]
[-] Meta.php
[open]
[+]
tax
[-] PaymentModule.php
[open]
[+]
form
[+]
shop
[-] index.php
[open]
[-] CMSCategory.php
[open]
[-] Gender.php
[open]
[-] Guest.php
[open]
[+]
log
[-] Windows.php
[open]
[-] ConfigurationTest.php
[open]
[-] Currency.php
[open]
[-] ConfigurationKPI.php
[open]
[-] Combination.php
[open]
[-] CustomerSession.php
[open]
[-] State.php
[open]
[+]
pdf
[-] Hook.php
[open]
[-] CustomerThread.php
[open]
[-] Profile.php
[open]
[-] Mail.php
[open]
[-] PaymentFree.php
[open]
[-] QqUploadedFileXhr.php
[open]
[-] Attribute.php
[open]
[-] CSV.php
[open]
[+]
controller
[+]
range
[-] Upgrader.php
[open]
[-] Customer.php
[open]
[-] Country.php
[open]
[-] CMS.php
[open]
[-] SearchEngine.php
[open]
[-] Context.php
[open]
[+]
proxy
[-] Language.php
[open]
[-] Cookie.php
[open]