93 \
Magento\Framework\Event\ManagerInterface $eventManager,
100 $this->_reviewData = $reviewData;
101 $this->_voteFactory = $voteFactory;
124 parent::_initSelect();
127 'main_table.review_id = detail.review_id',
128 [
'detail_id',
'title',
'detail',
'nickname',
'customer_id']
156 'main_table.review_id=store.review_id',
170 $this->_addStoreDataFlag =
true;
187 $this->_select->join(
189 'main_table.entity_id=' . $reviewEntityTable .
'.entity_id',
202 $this->
getConnection()->quoteInto(
'main_table.entity_pk_value=?', $pkValue),
218 $statuses = array_flip($this->_reviewData->getReviewStatuses());
235 $this->
setOrder(
'main_table.created_at', $dir);
247 $votesCollection = $this->_voteFactory->create()->getResourceCollection()->setReviewFilter(
250 $this->_storeManager->getStore()->getId()
252 $this->_storeManager->getStore()->getId()
254 $item->setRatingVotes($votesCollection);
267 $this->_select->joinLeft(
269 'main_table.entity_pk_value = r.entity_pk_value',
270 [
'total_reviews' =>
new \
Zend_Db_Expr(
'COUNT(r.review_id)')]
272 'main_table.review_id' 285 public function load($printQuery =
false, $logQuery =
false)
290 $this->_eventManager->dispatch(
'review_review_collection_load_before', [
'collection' => $this]);
291 parent::load($printQuery, $logQuery);
292 if ($this->_addStoreDataFlag) {
308 $storesToReviews = [];
309 if (
count($reviewsIds) > 0) {
310 $inCond =
$connection->prepareSqlCondition(
'review_id', [
'in' => $reviewsIds]);
314 if (!isset($storesToReviews[
$row[
'review_id']])) {
315 $storesToReviews[
$row[
'review_id']] = [];
317 $storesToReviews[
$row[
'review_id']][] =
$row[
'store_id'];
321 foreach ($this as
$item) {
322 if (isset($storesToReviews[
$item->getId()])) {
323 $item->setStores($storesToReviews[
$item->getId()]);
325 $item->setStores([]);
337 if ($this->_reviewTable ===
null) {
338 $this->_reviewTable = $this->
getTable(
'review');
350 if ($this->_reviewDetailTable ===
null) {
351 $this->_reviewDetailTable = $this->
getTable(
'review_detail');
363 if ($this->_reviewStatusTable ===
null) {
364 $this->_reviewStatusTable = $this->
getTable(
'review_status');
376 if ($this->_reviewEntityTable ===
null) {
377 $this->_reviewEntityTable = $this->
getTable(
'review_entity');
389 if ($this->_reviewStoreTable ===
null) {
390 $this->_reviewStoreTable = $this->
getTable(
'review_store');
load($printQuery=false, $logQuery=false)
addEntityFilter($entity, $pkValue)
elseif(isset( $params[ 'redirect_parent']))
addFilter($field, $value, $type='and')
setDateOrder($dir='DESC')
addCustomerFilter($customerId)
setOrder($field, $direction=self::SORT_ORDER_DESC)
_init($model, $resourceModel)
__construct(\Magento\Framework\Data\Collection\EntityFactory $entityFactory, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Review\Helper\Data $reviewData, \Magento\Review\Model\Rating\Option\VoteFactory $voteFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\DB\Adapter\AdapterInterface $connection=null, \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource=null)
getColumnValues($colName)