public function getEventsOnSameDay() { $other_events = array(); if (!$this->getEtimes()) { return $other_events; } $where = ""; foreach ($this->getEtimes() as $etime) { if ($where == "") { $where = "AND ("; $where .= " etime.start_date::date = '{$etime->getStartDate()}'::date"; } else { $where .= " OR etime.start_date::date = '{$etime->getStartDate()}'::date"; } $where .= " OR etime.end_date::date = '{$etime->getEndDate()}'::date"; } $where .= ") "; $conn = Propel::getConnection(); $query = "SELECT DISTINCT ON (event.title) * " . "FROM event " . "JOIN etime ON (event.id = etime.event_id) " . "WHERE " . "event.id != {$this->getId()} " . "AND event.published = true " . "{$where}" . "ORDER BY event.title " . ""; $stmt = $conn->prepareStatement($query); $resultset = $stmt->executeQuery(ResultSet::FETCHMODE_NUM); $other_events = EventPeer::populateObjects($resultset); return $other_events; }
public static function getTaggedEvents($tag) { $conn = Propel::getConnection(); $query = ' SELECT DISTINCT(%s.*) FROM %s as event LEFT OUTER JOIN %s event_tag ON (%s = %s) LEFT OUTER JOIN %s tag ON (%s = %s) LEFT OUTER JOIN %s etime ON (%s = %s) LEFT OUTER JOIN %s etime_tag ON (%s = %s) LEFT OUTER JOIN %s t ON (t.id = %s) WHERE tag.normalized_tag = ? OR t.normalized_tag = ? '; $query = sprintf($query, EventPeer::TABLE_NAME, EventPeer::TABLE_NAME, EventTagPeer::TABLE_NAME, EventPeer::ID, EventTagPeer::EVENT_ID, TagPeer::TABLE_NAME, TagPeer::ID, EventTagPeer::TAG_ID, EtimePeer::TABLE_NAME, EventPeer::ID, EtimePeer::EVENT_ID, EtimeTagPeer::TABLE_NAME, EtimePeer::ID, EtimeTagPeer::ETIME_ID, TagPeer::TABLE_NAME, EtimeTagPeer::TAG_ID); $stmt = $conn->prepareStatement($query); $stmt->setString(1, $tag); $stmt->setString(2, $tag); $resultset = $stmt->executeQuery(ResultSet::FETCHMODE_NUM); return EventPeer::populateObjects($resultset); }
/** * Method to do selects. * * @param Criteria $criteria The Criteria object used to build the SELECT statement. * @param Connection $con * @return array Array of selected Objects * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doSelect(Criteria $criteria, $con = null) { return EventPeer::populateObjects(EventPeer::doSelectRS($criteria, $con)); }