![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-checkout-agreements/Model/ResourceModel/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\CheckoutAgreements\Model\ResourceModel; /** * Resource Model for Checkout Agreement */ class Agreement extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Framework\Filter\FilterManager */ protected $filterManager; /** * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Filter\FilterManager $filterManager * @param string $connectionName * @codeCoverageIgnore */ public function __construct( \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Filter\FilterManager $filterManager, $connectionName = null ) { $this->filterManager = $filterManager; parent::__construct($context, $connectionName); } /** * Model initialization * * @return void * @codeCoverageIgnore */ protected function _construct() { $this->_init('checkout_agreement', 'agreement_id'); } /** * Method to run before save * * @param \Magento\Framework\Model\AbstractModel $object * @return $this */ protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object) { // format height $height = $object->getContentHeight(); $height = $this->filterManager->stripTags($height); if (!$height) { $height = ''; } if ($height && preg_match('/[0-9]$/', $height)) { $height .= 'px'; } $object->setContentHeight($height); return parent::_beforeSave($object); } /** * Method to run after save * * @param \Magento\Framework\Model\AbstractModel $object * @return $this */ protected function _afterSave(\Magento\Framework\Model\AbstractModel $object) { $this->getConnection()->delete( $this->getTable('checkout_agreement_store'), ['agreement_id = ?' => $object->getId()] ); foreach ((array)$object->getData('stores') as $storeId) { $storeArray = [ 'agreement_id' => $object->getId(), 'store_id' => $storeId ]; $this->getConnection()->insert($this->getTable('checkout_agreement_store'), $storeArray); } return parent::_afterSave($object); } /** * Method to run after load * * @param \Magento\Framework\Model\AbstractModel $object * @return $this */ protected function _afterLoad(\Magento\Framework\Model\AbstractModel $object) { $select = $this->getConnection() ->select() ->from($this->getTable('checkout_agreement_store'), ['store_id']) ->where('agreement_id = :agreement_id'); $stores = $this->getConnection()->fetchCol($select, [':agreement_id' => $object->getId()]); if ($stores) { $object->setData('stores', $stores); } return parent::_afterLoad($object); } /** * Get load select * * @param string $field * @param mixed $value * @param \Magento\Framework\Model\AbstractModel $object * @return \Magento\Framework\DB\Select */ protected function _getLoadSelect($field, $value, $object) { $select = parent::_getLoadSelect($field, $value, $object); if ($object->getStoreId()) { $select->join( ['cps' => $this->getTable('checkout_agreement_store')], $this->getMainTable() . '.agreement_id = cps.agreement_id' )->where( 'is_active=1' )->where( 'cps.store_id IN (0, ?)', $object->getStoreId() )->order( 'store_id DESC' )->limit( 1 ); } return $select; } }