/** * Render content. * * @return string */ public function content() { // Venue if ($this->event->venue_hidden) { $venue = __('Underground'); } elseif ($venue = $this->event->venue()) { $venue = HTML::anchor(Route::model($venue), HTML::chars($venue->name)); } else { $venue = HTML::chars($this->event->venue_name); } ob_start(); ?> <span class="details"><?php echo $this->event->price() . ($venue ? ' @ ' : '') . $venue; ?> </span><br /> <span class="djs"><?php echo HTML::chars($this->event->dj); ?> </span> <?php return ob_get_clean(); }
/** * Create new view. * * @param Model_Event $event */ public function __construct(Model_Event $event) { parent::__construct(); $this->event = $event; $this->id = 'event-' . $event->id; $this->title = HTML::anchor(Route::model($event), HTML::chars($event->name)); // Venue if ($this->event->venue_hidden) { $this->subtitle = __('Underground') . ', ' . HTML::chars($this->event->city_name); } elseif ($venue = $this->event->venue()) { $this->subtitle = HTML::anchor(Route::model($venue), HTML::chars($venue->name)) . ', ' . HTML::chars($venue->city_name); } else { $this->subtitle = HTML::chars($this->event->venue_name . ', ' . $this->event->city_name); } // Meta if ($tags = $event->tags()) { $this->meta = '<small>' . implode(', ', $tags) . '</small>'; } else { if ($event->music) { $this->meta = '<small>' . $event->music . '</small>'; } } }
/** * Add event subtitle. * * @param Model_Event $event * @return string */ protected function _event_subtitle(Model_Event $event) { $subtitle = array(); // Date $subtitle[] = '<i class="icon-calendar icon-white"></i> ' . HTML::time(Date('l', $event->stamp_begin) . ', ' . Date::format(Date::DMY_LONG, $event->stamp_begin), $event->stamp_begin, true); // Time if ($event->stamp_begin != $event->stamp_end) { $subtitle[] = $event->stamp_end ? '<i class="icon-time icon-white"></i> ' . __(':from until :to', array(':from' => HTML::time(Date::format('HHMM', $event->stamp_begin), $event->stamp_begin), ':to' => HTML::time(Date::format('HHMM', $event->stamp_end), $event->stamp_end))) : '<i class="icon-time icon-white"></i> ' . __('From :from onwards', array(':from' => HTML::time(Date::format('HHMM', $event->stamp_begin), $event->stamp_begin))); } // Venue if ($_venue = $event->venue()) { // Venue found from db $venue = HTML::anchor(Route::model($_venue), HTML::chars($_venue->name)); $address = HTML::chars($_venue->city_name); if ($_venue->latitude) { $map = array('marker' => HTML::chars($_venue->name), 'infowindow' => HTML::chars($_venue->address) . '<br />' . HTML::chars($_venue->city_name), 'lat' => $_venue->latitude, 'long' => $_venue->longitude); Widget::add('foot', HTML::script_source(' head.ready("anqh", function() { $("a[href=#map]").on("click", function toggleMap(event) { $("#map").toggle("fast", function openMap() { $("#map").googleMap(' . json_encode($map) . '); }); return false; }); }); ')); } } else { if ($event->venue_name) { // No venue in db $venue = $event->venue_url ? HTML::anchor($event->venue_url, HTML::chars($event->venue_name)) : HTML::chars($event->venue_name); $address = HTML::chars($event->city_name); } else { // Venue not set $venue = $event->venue_hidden ? __('Underground') : __('(Unknown)'); $address = HTML::chars($event->city_name); } } $subtitle[] = '<i class="icon-map-marker icon-white"></i> ' . $venue . ($address ? ', ' . $address : ''); if (isset($map)) { $subtitle[] = HTML::anchor('#map', __('Show map')); return implode(' ', $subtitle) . '<div id="map" style="display: none">' . __('Map loading') . '</div>'; } return implode(' ', $subtitle); }
/** * Prepare event for data array * * @param Model_Event $event * @param array $fields * @return array */ protected function _prepare_event(Model_Event $event, array $fields = null) { $data = array(); empty($fields) and $fields = self::$_fields; foreach ($fields as $field) { switch ($field) { // Raw value case 'age': case 'created': case 'favorite_count': case 'flyer_id': case 'dj': case 'id': case 'info': case 'modified': case 'name': case 'price': case 'price2': case 'stamp_begin': case 'stamp_end': case 'venue_id': $data[$field] = $event->{$field}; break; // Custom value // Custom value case 'venue': $data[$field] = ($venue = $event->venue()) ? $venue->name : $event->venue_name; break; case 'city': $data[$field] = ($venue = $event->venue()) ? $venue->city_name : $event->city_name; break; case 'flyer': case 'flyer_icon': case 'flyer_thumb': if ($field === 'flyer_icon') { $size = Model_Image::SIZE_ICON; } else { if ($field === 'flyer__thumb') { $size = Model_Image::SIZE_THUMBNAIL; } else { $size = null; } } $data[$field] = ($flyer = $event->flyer()) ? $flyer->image_url($size) : null; break; case 'music': if ($tags = $event->tags()) { $music = implode(', ', $tags); } else { if (!empty($event->music)) { $music = $event->music; } else { $music = null; } } $data[$field] = $music; break; case 'url': $data[$field] = URL::site(Route::model($event), true); break; } } return $data; }
/** * Prepare event for data array * * @param Model_Event $event * @param array $fields * @return array */ protected function _prepare_event(Model_Event $event, array $fields = null) { $data = array(); empty($fields) and $fields = self::$_fields; foreach ($fields as $field) { switch ($field) { // Raw value case 'id': case 'name': case 'homepage': case 'stamp_begin': case 'stamp_end': case 'dj': case 'info': case 'age': case 'price': case 'price2': case 'created': case 'modified': case 'favorite_count': $data[$field] = $event->{$field}; break; // Custom value // Custom value case 'venue': $data[$field] = ($venue = $event->venue()) ? $venue->name : $event->venue_name; break; case 'city': $data[$field] = ($city = $event->city()) ? $city->name : $event->city_name; break; case 'country': $data[$field] = ($country = $event->country()) ? $country->name : ''; break; case 'flyer_front': case 'flyer_back': case 'flyer_front_icon': case 'flyer_back_icon': case 'flyer_front_thumb': case 'flyer_back_thumb': if (strpos($field, 'icon')) { $column = str_replace('_icon', '', $field) . '_image_id'; $size = Model_Image::SIZE_ICON; } else { if (strpos($field, '_thumb')) { $column = str_replace('_thumb', '', $field) . '_image_id'; $size = Model_Image::SIZE_THUMBNAIL; } else { $column = $field . '_image_id'; $size = null; } } $image = new Model_Image($event->{$column}); $data[$field] = $image->loaded() ? $image->get_url($size) : null; break; case 'music': if ($tags = $event->tags()) { $music = implode(', ', $tags); } else { if (!empty($event->music)) { $music = $event->music; } else { $music = null; } } $data[$field] = $music; break; case 'url': $data[$field] = URL::site(Route::model($event), true); break; } } return $data; }
/** * Add event subtitle. * * @param Model_Event $event * @return string */ public static function _event_subtitle(Model_Event $event) { $subtitle = array(); // Date if ($event->stamp_end - $event->stamp_begin > Date::DAY) { // Multi day event $subtitle[] = '<i class="fa fa-calendar"></i> ' . HTML::time(Date('l', $event->stamp_begin) . ', <strong>' . Date::format(Date::DM_LONG, $event->stamp_begin) . ' – ' . Date::format(Date::DMY_LONG, $event->stamp_end) . '</strong>', $event->stamp_begin, true); } else { // Single day event $subtitle[] = '<i class="fa fa-calendar"></i> ' . HTML::time(Date('l', $event->stamp_begin) . ', <strong>' . Date::format(Date::DMY_LONG, $event->stamp_begin) . '</strong>', $event->stamp_begin, true); } // Time if ($event->stamp_begin != $event->stamp_end) { $subtitle[] = $event->stamp_end ? '<i class="fa fa-clock-o"></i> ' . __('From :from until :to', array(':from' => '<strong>' . HTML::time(Date::format('HHMM', $event->stamp_begin), $event->stamp_begin) . '</strong>', ':to' => '<strong>' . HTML::time(Date::format('HHMM', $event->stamp_end), $event->stamp_end) . '</strong>')) : '<i class="fa fa-clock-o"></i> ' . __('From :from onwards', array(':from' => HTML::time(Date::format('HHMM', $event->stamp_begin), $event->stamp_begin))); } // Tickets $tickets = ''; if ($event->price === 0 || $event->price > 0 || $event->ticket_url) { $tickets = '<i class="fa fa-ticket"></i> '; } if ($event->price === 0) { $tickets .= '<strong>' . __('Free entry') . '</strong> '; } else { if ($event->price > 0) { $tickets .= __('Tickets :price', array(':price' => '<strong>' . Num::currency($event->price, $event->stamp_begin) . '</strong>')) . ' '; } } if ($event->ticket_url) { $tickets .= HTML::anchor($event->ticket_url, __('Buy tickets'), array('target' => '_blank')); } if ($tickets) { $subtitle[] = $tickets; } // Age limit if ($event->age > 0) { $subtitle[] = '<i class="fa fa-user"></i> ' . __('Age limit') . ': <strong>' . $event->age . '</strong>'; } // Homepage if (!empty($event->url)) { $subtitle[] = '<i class="fa fa-link"></i> ' . HTML::anchor($event->url, Text::limit_url($event->url, 25)); } // Venue if ($_venue = $event->venue()) { // Venue found from db $venue = HTML::anchor(Route::model($_venue), HTML::chars($_venue->name)); $address = HTML::chars($_venue->city_name); if ($_venue->latitude) { $map = array('marker' => HTML::chars($_venue->name), 'infowindow' => HTML::chars($_venue->address) . '<br />' . HTML::chars($_venue->city_name), 'lat' => $_venue->latitude, 'long' => $_venue->longitude); Widget::add('foot', HTML::script_source(' head.ready("anqh", function() { $("a[href=#map]").on("click", function toggleMap(event) { $("#map").toggle("fast", function openMap() { $("#map").googleMap(' . json_encode($map) . '); }); return false; }); }); ')); } } else { if ($event->venue_name) { // No venue in db $venue = $event->venue_url ? HTML::anchor($event->venue_url, HTML::chars($event->venue_name)) : HTML::chars($event->venue_name); $address = HTML::chars($event->city_name); } else { // Venue not set $venue = $event->venue_hidden ? __('Underground') : __('(Unknown)'); $address = HTML::chars($event->city_name); } } $subtitle[] = '<br /><i class="fa fa-map-marker"></i> <strong>' . $venue . '</strong>' . ($address ? ', ' . $address : ''); if (isset($map)) { $subtitle[] = HTML::anchor('#map', __('Show map')); } // Tags if ($tags = $event->tags()) { $subtitle[] = '<br /><i class="fa fa-music"></i> <em>' . implode(', ', $tags) . '</em>'; } else { if (!empty($event->music)) { $subtitle[] = '<br /><i class="fa fa-music"></i> <em>' . $event->music . '</em>'; } } return implode(' ', $subtitle) . (isset($map) ? '<div id="map" style="display: none">' . __('Map loading') . '</div>' : ''); }