1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- /**
- * Report Reviews collection
- *
- * @author Magento Core Team <core@magentocommerce.com>
- */
- namespace Magento\Reports\Model\ResourceModel\Review;
- /**
- * @api
- * @since 100.0.2
- */
- class Collection extends \Magento\Review\Model\ResourceModel\Review\Collection
- {
- /**
- * Resource initialization
- *
- * @return void
- */
- protected function _construct()
- {
- $this->_init(\Magento\Review\Model\Review::class, \Magento\Review\Model\ResourceModel\Review::class);
- }
- /**
- * Add product filter
- *
- * @param string $productId
- * @return $this
- */
- public function addProductFilter($productId)
- {
- $this->addFieldToFilter('entity_pk_value', ['eq' => (int)$productId]);
- return $this;
- }
- /**
- * Reset select
- *
- * @return $this
- */
- public function resetSelect()
- {
- parent::resetSelect();
- $this->_joinFields();
- return $this;
- }
- /**
- * Get select count sql
- *
- * @return string
- */
- public function getSelectCountSql()
- {
- $countSelect = clone $this->_select;
- $countSelect->reset(\Magento\Framework\DB\Select::ORDER);
- $countSelect->reset(\Magento\Framework\DB\Select::LIMIT_COUNT);
- $countSelect->reset(\Magento\Framework\DB\Select::LIMIT_OFFSET);
- $countSelect->reset(\Magento\Framework\DB\Select::COLUMNS);
- $countSelect->columns("COUNT(main_table.review_id)");
- return $countSelect;
- }
- /**
- * Set order
- *
- * @param string $attribute
- * @param string $dir
- * @return $this
- */
- public function setOrder($attribute, $dir = self::SORT_ORDER_DESC)
- {
- if (in_array($attribute, ['nickname', 'title', 'detail', 'created_at'])) {
- $this->_select->order($attribute . ' ' . $dir);
- } else {
- parent::setOrder($attribute, $dir);
- }
- return $this;
- }
- }
|