![]() 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-catalog/Model/ResourceModel/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Catalog\Model\ResourceModel; /** * Flat abstract collection * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ abstract class AbstractCollection extends \Magento\Framework\Model\ResourceModel\Db\VersionControl\Collection { /** * @var \Magento\Framework\DB\Select */ protected $_countSelect; /** * @var \Magento\Framework\Api\SearchCriteriaInterface */ protected $searchCriteria; /** * Set select count sql * * @param \Magento\Framework\DB\Select $countSelect * @return $this */ public function setSelectCountSql(\Magento\Framework\DB\Select $countSelect) { $this->_countSelect = $countSelect; return $this; } /** * Get select count sql * * @return \Magento\Framework\DB\Select */ public function getSelectCountSql() { if (!$this->_countSelect instanceof \Magento\Framework\DB\Select) { $this->setSelectCountSql(parent::getSelectCountSql()); } return $this->_countSelect; } /** * Check if $attribute is \Magento\Eav\Model\Entity\Attribute and convert to string field name * * @param string|\Magento\Eav\Model\Entity\Attribute $attribute * @return string * @throws \Magento\Framework\Exception\LocalizedException */ protected function _attributeToField($attribute) { $field = false; if (is_string($attribute)) { $field = $attribute; } elseif ($attribute instanceof \Magento\Eav\Model\Entity\Attribute) { $field = $attribute->getAttributeCode(); } if (!$field) { throw new \Magento\Framework\Exception\LocalizedException(__('We cannot determine the field name.')); } return $field; } /** * Add attribute to select result set. * * Backward compatibility with EAV collection * * @param string $attribute * @return $this */ public function addAttributeToSelect($attribute) { $this->addFieldToSelect($this->_attributeToField($attribute)); return $this; } /** * Specify collection select filter by attribute value * * Backward compatibility with EAV collection * * @param string|\Magento\Eav\Model\Entity\Attribute $attribute * @param array|int|string|null $condition * @return $this */ public function addAttributeToFilter($attribute, $condition = null) { $this->addFieldToFilter($this->_attributeToField($attribute), $condition); return $this; } /** * Specify collection select order by attribute value * * Backward compatibility with EAV collection * * @param string $attribute * @param string $dir * @return $this */ public function addAttributeToSort($attribute, $dir = 'asc') { $this->addOrder($this->_attributeToField($attribute), $dir); return $this; } /** * Set collection page start and records to show * * Backward compatibility with EAV collection * * @param int $pageNum * @param int $pageSize * @return $this */ public function setPage($pageNum, $pageSize) { $this->setCurPage($pageNum)->setPageSize($pageSize); return $this; } /** * Create all ids retrieving select with limitation * * Backward compatibility with EAV collection * * @param int $limit * @param int $offset * @return \Magento\Framework\DB\Select */ protected function _getAllIdsSelect($limit = null, $offset = null) { $idsSelect = clone $this->getSelect(); $idsSelect->reset(\Magento\Framework\DB\Select::ORDER); $idsSelect->reset(\Magento\Framework\DB\Select::LIMIT_COUNT); $idsSelect->reset(\Magento\Framework\DB\Select::LIMIT_OFFSET); $idsSelect->reset(\Magento\Framework\DB\Select::COLUMNS); $idsSelect->columns($this->getResource()->getIdFieldName(), 'main_table'); $idsSelect->limit($limit, $offset); return $idsSelect; } /** * Retrieve all ids for collection * * Backward compatibility with EAV collection * * @param int $limit * @param int $offset * @return array */ public function getAllIds($limit = null, $offset = null) { return $this->getConnection()->fetchCol($this->_getAllIdsSelect($limit, $offset), $this->_bindParams); } /** * Get search criteria. * * @return \Magento\Framework\Api\SearchCriteriaInterface|null */ public function getSearchCriteria() { return $this->searchCriteria; } /** * Set search criteria. * * @param \Magento\Framework\Api\SearchCriteriaInterface $searchCriteria * @return $this * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function setSearchCriteria(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria = null) { $this->searchCriteria = $searchCriteria; return $this; } /** * Get total count. * * @return int */ public function getTotalCount() { return $this->getSize(); } /** * Set total count. * * @param int $totalCount * @return $this * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function setTotalCount($totalCount) { return $this; } /** * Set items list. * * @param \Magento\Framework\Api\ExtensibleDataInterface[] $items * @return $this */ public function setItems(array $items = null) { if (!$items) { return $this; } foreach ($items as $item) { $this->addItem($item); } return $this; } }