Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Agreement.php
Go to the documentation of this file.
1 <?php
7 
12 {
16  protected $filterManager;
17 
24  public function __construct(
25  \Magento\Framework\Model\ResourceModel\Db\Context $context,
26  \Magento\Framework\Filter\FilterManager $filterManager,
27  $connectionName = null
28  ) {
29  $this->filterManager = $filterManager;
30  parent::__construct($context, $connectionName);
31  }
32 
39  protected function _construct()
40  {
41  $this->_init('checkout_agreement', 'agreement_id');
42  }
43 
50  protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
51  {
52  // format height
53  $height = $object->getContentHeight();
54  $height = $this->filterManager->stripTags($height);
55  if (!$height) {
56  $height = '';
57  }
58  if ($height && preg_match('/[0-9]$/', $height)) {
59  $height .= 'px';
60  }
61  $object->setContentHeight($height);
62  return parent::_beforeSave($object);
63  }
64 
71  protected function _afterSave(\Magento\Framework\Model\AbstractModel $object)
72  {
73  $this->getConnection()->delete(
74  $this->getTable('checkout_agreement_store'),
75  ['agreement_id = ?' => $object->getId()]
76  );
77 
78  foreach ((array)$object->getData('stores') as $storeId) {
79  $storeArray = [
80  'agreement_id' => $object->getId(),
81  'store_id' => $storeId
82  ];
83  $this->getConnection()->insert($this->getTable('checkout_agreement_store'), $storeArray);
84  }
85 
86  return parent::_afterSave($object);
87  }
88 
95  protected function _afterLoad(\Magento\Framework\Model\AbstractModel $object)
96  {
97  $select = $this->getConnection()
98  ->select()
99  ->from($this->getTable('checkout_agreement_store'), ['store_id'])
100  ->where('agreement_id = :agreement_id');
101 
102  $stores = $this->getConnection()->fetchCol($select, [':agreement_id' => $object->getId()]);
103 
104  if ($stores) {
105  $object->setData('stores', $stores);
106  }
107 
108  return parent::_afterLoad($object);
109  }
110 
119  protected function _getLoadSelect($field, $value, $object)
120  {
121  $select = parent::_getLoadSelect($field, $value, $object);
122  if ($object->getStoreId()) {
123  $select->join(
124  ['cps' => $this->getTable('checkout_agreement_store')],
125  $this->getMainTable() . '.agreement_id = cps.agreement_id'
126  )->where(
127  'is_active=1'
128  )->where(
129  'cps.store_id IN (0, ?)',
130  $object->getStoreId()
131  )->order(
132  'store_id DESC'
133  )->limit(
134  1
135  );
136  }
137  return $select;
138  }
139 }
_afterLoad(\Magento\Framework\Model\AbstractModel $object)
Definition: Agreement.php:95
_beforeSave(\Magento\Framework\Model\AbstractModel $object)
Definition: Agreement.php:50
__construct(\Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Filter\FilterManager $filterManager, $connectionName=null)
Definition: Agreement.php:24
_afterSave(\Magento\Framework\Model\AbstractModel $object)
Definition: Agreement.php:71
$value
Definition: gender.phtml:16