/** * Get random identifier not closed poll * * @param Mage_Poll_Model_Poll $object * @return int */ public function getRandomId($object) { $read = $this->_getReadAdapter(); $select = $read->select(); if ($object->getExcludeFilter()) { $select->where('main_table.poll_id NOT IN(?)', $object->getExcludeFilter()); } $select->from(array('main_table' => $this->getMainTable()), $this->getIdFieldName())->where('closed = ?', 0)->order(new Zend_Db_Expr('RAND()'))->limit(1); if ($storeId = $object->getStoreFilter()) { $select->join(array('store' => $this->getTable('poll/poll_store')), $read->quoteInto('main_table.poll_id=store.poll_id AND store.store_id = ?', $storeId), array()); } return $read->fetchOne($select); }
/** * Get random identifier not closed poll * * @param Mage_Poll_Model_Poll $object * @return int */ public function getRandomId($object) { $read = $this->_getReadAdapter(); $select = $read->select(); if ($object->getExcludeFilter()) { $select->where('main_table.poll_id NOT IN(?)', $object->getExcludeFilter()); } $select->from(array('main_table' => $this->getMainTable()), $this->getIdFieldName())->where('closed = :is_closed')->orderRand()->limit(1); $bind = array(':is_closed' => 0); if ($storeId = $object->getStoreFilter()) { $select->join(array('store' => $this->getTable('poll/poll_store')), 'main_table.poll_id=store.poll_id AND store.store_id = :store_id', array()); $bind[':store_id'] = $storeId; } return $read->fetchOne($select, $bind); }
/** * Get select object for not closed poll ids * * @param Mage_Poll_Model_Poll $object * @return */ protected function _getSelectIds($object) { $read = $this->_getReadAdapter(); $select = $read->select()->from(array('main_table' => $this->getMainTable()), $this->getIdFieldName())->where('closed = ?', 0); $excludeIds = $object->getExcludeFilter(); if ($excludeIds) { $select->where('main_table.poll_id NOT IN(?)', $excludeIds); } $storeId = $object->getStoreFilter(); if ($storeId) { $select->join(array('store' => $this->getTable('poll_store')), 'main_table.poll_id=store.poll_id AND store.store_id = ' . $read->quote($storeId), array()); } return $select; }