public function update($data) { $PerchEvents_Events = new PerchEvents_Events(); if (isset($data['eventDescRaw'])) { $data['eventDescHTML'] = $PerchEvents_Events->text_to_html($data['eventDescRaw']); } else { $data['eventDescHTML'] = false; } if (isset($data['eventTitle'])) { $data['eventSlug'] = PerchUtil::urlify(date('Y m d', strtotime($data['eventDateTime'])) . ' ' . $data['eventTitle']); } if (isset($data['cat_ids'])) { $catIDs = $data['cat_ids']; unset($data['cat_ids']); } else { $catIDs = false; } // Update the event itself parent::update($data); // Delete existing categories $this->db->delete(PERCH_DB_PREFIX . 'events_to_categories', $this->pk, $this->id()); // Add new categories if (is_array($catIDs)) { for ($i = 0; $i < sizeOf($catIDs); $i++) { $tmp = array(); $tmp['eventID'] = $this->id(); $tmp['categoryID'] = $catIDs[$i]; $this->db->insert(PERCH_DB_PREFIX . 'events_to_categories', $tmp); } } return true; }
/** * * Get the content of a specific field * @param mixed $id_or_slug the id or slug of the event * @param string $field the name of the field you want to return * @param bool $return */ function perch_events_event_field($id_or_slug, $field, $return = false) { $API = new PerchAPI(1.0, 'perch_events'); $Events = new PerchEvents_Events($API); $r = false; if (is_numeric($id_or_slug)) { $eventID = intval($id_or_slug); $Event = $Events->find($eventID); } else { $Event = $Events->find_by_slug($id_or_slug); } if (is_object($Event)) { $r = $Event->{$field}(); } if ($return) { return $r; } $HTML = $API->get('HTML'); echo $HTML->encode($r); }
<?php $Events = new PerchEvents_Events($API); $message = false; $Categories = new PerchEvents_Categories($API); $categories = $Categories->all(); $HTML = $API->get('HTML'); if (isset($_GET['id']) && $_GET['id'] != '') { $eventID = (int) $_GET['id']; $Event = $Events->find($eventID); $details = $Event->to_array(); $heading1 = 'Editing an Event'; } else { $Event = false; $eventID = false; $details = array(); $heading1 = 'Adding an Event'; } $heading2 = 'Event details'; $Template = $API->get('Template'); $Template->set('events/event.html', 'events'); $Form = $API->get('Form'); $Form->require_field('eventTitle', 'Required'); $Form->require_field('eventDescRaw', 'Required'); $Form->require_field('eventDateTime_minute', 'Required'); $Form->set_required_fields_from_template($Template); if ($Form->submitted()) { $postvars = array('eventTitle', 'eventDescRaw', 'cat_ids'); $data = $Form->receive($postvars); $data['eventDateTime'] = $Form->get_date('eventDateTime'); $prev = false;
<?php $Events = new PerchEvents_Events($API); $Categories = new PerchEvents_Categories($API); $HTML = $API->get('HTML'); $Form = $API->get('Form'); $Form->set_name('delete'); $message = false; if (isset($_GET['id']) && $_GET['id'] != '') { $Event = $Events->find($_GET['id']); } else { PerchUtil::redirect($API->app_path()); } if ($Form->submitted()) { if (is_object($Event)) { $Event->delete(); $Categories->update_event_counts(); if ($Form->submitted_via_ajax) { echo $API->app_path() . '/'; exit; } else { PerchUtil::redirect($API->app_path() . '/'); } } else { $message = $HTML->failure_message('Sorry, that event could not be deleted.'); } } $details = $Event->to_array();
/** * * Gets the categories used for an event * @param string $id_or_slug id or slug of the current event * @param string $template template to render the categories * @param bool $return if set to true returns the output rather than echoing it */ function perch_events_event_categories($id_or_slug, $opts = 'event_category_link.html', $return = false) { $id_or_slug = rtrim($id_or_slug, '/'); $default_opts = array('template' => 'event_category_link.html', 'skip-template' => false, 'cache' => true); if (!is_array($opts)) { $opts = array('template' => $opts); } if (is_array($opts)) { $opts = array_merge($default_opts, $opts); } else { $opts = $default_opts; } if ($opts['skip-template']) { $return = true; } $cache = false; $template = $opts['template']; if ($opts['cache']) { $cache_key = 'perch_events_event_categories' . md5($id_or_slug . serialize($opts)); $cache = PerchEvents_Cache::get_static($cache_key, 10); if ($opts['skip-template']) { $cache = unserialize($cache); } } if ($cache) { if ($return) { return $cache; } echo $cache; return ''; } $API = new PerchAPI(1.0, 'perch_events'); $Events = new PerchEvents_Events($API); $eventID = false; if (is_numeric($id_or_slug)) { $eventID = intval($id_or_slug); } else { $Event = $Events->find_by_slug($id_or_slug); if (is_object($Event)) { $eventID = $Event->id(); } } if ($eventID !== false) { $Categories = new PerchEvents_Categories(); $cats = $Categories->get_for_event($eventID); if ($opts['skip-template']) { $out = array(); foreach ($cats as $Cat) { $out[] = $Cat->to_array(); } if ($opts['cache']) { PerchEvents_Cache::save_static($cache_key, serialize($out)); } return $out; } $Template = $API->get('Template'); $Template->set('events/' . $template, 'events'); $r = $Template->render_group($cats, true); if ($r != '') { PerchBlog_Cache::save_static($cache_key, $r); } if ($return) { return $r; } echo $r; } return false; }
<?php include 'PerchEvents_Events.class.php'; include 'PerchEvents_Event.class.php'; include 'PerchEvents_Categories.class.php'; include 'PerchEvents_Category.class.php'; $API = new PerchAPI(1.0, 'perch_events'); $Lang = $API->get('Lang'); $Paging = $API->get('Paging'); $Paging->set_per_page(10); $Events = new PerchEvents_Events($API); $events = $Events->all($Paging); ?> <div class="widget"> <h2> <?php echo $Lang->get('Events'); ?> <a href="<?php echo PerchUtil::html(PERCH_LOGINPATH . '/addons/apps/perch_events/edit/'); ?> " class="add button"><?php echo $Lang->get('Add Event'); ?> </a> </h2> <div class="bd"> <?php if (PerchUtil::count($events)) { echo '<ul>'; foreach ($events as $Event) {
<?php $HTML = $API->get('HTML'); // Try to update //if (file_exists('update.php')) include('update.php'); $Events = new PerchEvents_Events($API); $Paging = $API->get('Paging'); $Paging->set_per_page(10); $Categories = new PerchEvents_Categories($API); $categories = $Categories->all(); $events = array(); $filter = 'future'; if (isset($_GET['by']) && $_GET['by'] != '') { $filter = $_GET['by']; } if (isset($_GET['category']) && $_GET['category'] != '') { $filter = 'category'; $category = $_GET['category']; } switch ($filter) { case 'past': $events = $Events->all($Paging, false); break; case 'category': $events = $Events->get_by_category_slug($category, $Paging); break; default: $events = $Events->all($Paging); // Install if ($events == false) { $Events->attempt_install();
<?php $Events = new PerchEvents_Events($API); $message = false; $Categories = new PerchEvents_Categories($API); $categories = $Categories->all(); $HTML = $API->get('HTML'); if (isset($_GET['id']) && $_GET['id'] != '') { $eventID = (int) $_GET['id']; $Event = $Events->find($eventID); $details = $Event->to_array(); $heading1 = 'Editing an Event'; } else { $Event = false; $eventID = false; $details = array(); $heading1 = 'Adding an Event'; } $heading2 = 'Event details'; $Template = $API->get('Template'); $Template->set('events/event.html', 'events'); $Form = $API->get('Form'); $tags = $Template->find_all_tags_and_repeaters('events'); if (PerchUtil::count($tags)) { foreach ($tags as $Tag) { PerchFieldTypes::get($Tag->type(), $Form, $Tag, $tags); } } $Form->handle_empty_block_generation($Template); $Form->require_field('eventTitle', 'Required'); $Form->require_field('eventDescRaw', 'Required');