function scheduled_events_update_category_counts($last_run) { $API = new PerchAPI(1.0, 'perch_events'); $Categories = new PerchEvents_Categories(); $Categories->update_event_counts(); return array('result' => 'OK', 'message' => 'Event category counts updated.'); }
public function to_array($template_ids = false) { $out = parent::to_array(); $Categories = new PerchEvents_Categories(); $cats = $Categories->get_for_event($this->id()); $out['category_slugs'] = ''; $out['category_names'] = ''; if (PerchUtil::count($cats)) { $slugs = array(); $names = array(); foreach ($cats as $Category) { $slugs[] = $Category->categorySlug(); $names[] = $Category->categoryTitle(); // for template $out[$Category->categorySlug()] = true; } $out['category_slugs'] = implode(' ', $slugs); $out['category_names'] = implode(', ', $names); } if (PerchUtil::count($template_ids) && in_array('eventURL', $template_ids)) { $Settings = PerchSettings::fetch(); $url_template = $Settings->get('perch_events_detail_url')->val(); $this->tmp_url_vars = $out; $out['eventURL'] = preg_replace_callback('/{([A-Za-z0-9_\\-]+)}/', array($this, "substitute_url_vars"), $url_template); $this->tmp_url_vars = false; } if (isset($out['eventDynamicFields']) && $out['eventDynamicFields'] != '') { $dynamic_fields = PerchUtil::json_safe_decode($out['eventDynamicFields'], true); if (PerchUtil::count($dynamic_fields)) { foreach ($dynamic_fields as $key => $value) { $out['perch_' . $key] = $value; } } $out = array_merge($dynamic_fields, $out); } return $out; }
<?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();
<?php // Prevent running directly: if (!defined('PERCH_DB_PREFIX')) { exit; } $API = new PerchAPI(1.0, 'perch_events'); $Settings = $API->get('Settings'); if ($Settings->get('perch_events_update')->val() != '1.8') { $db = $API->get('DB'); $sql = "ALTER TABLE `" . PERCH_DB_PREFIX . "events` ADD FULLTEXT idx_search (`eventTitle`, `eventDescRaw`)"; $db->execute($sql); $sql = "ALTER TABLE `" . PERCH_DB_PREFIX . "events_categories` ADD `categoryEventCount` INT(0) UNSIGNED NOT NULL DEFAULT '0' AFTER `categorySlug`"; $db->execute($sql); $sql = "ALTER TABLE `" . PERCH_DB_PREFIX . "events_categories` ADD `categoryFutureEventCount` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `categoryEventCount`"; $db->execute($sql); $sql = "ALTER TABLE `" . PERCH_DB_PREFIX . "events_categories` ADD `categoryDynamicFields` TEXT NULL AFTER `categoryFutureEventCount`"; $db->execute($sql); $Cats = new PerchEvents_Categories($API); $Cats->update_event_counts(); $Settings->set('perch_events_update', '1.8'); }
/** * Gets the title of a category from its slug * * @param string $categorySlug * @param string $return * @return void * @author Drew McLellan */ function perch_events_category($id_or_slug, $opts = array(), $return = false) { $id_or_slug = rtrim($id_or_slug, '/'); $default_opts = array('template' => 'category.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; } if ($opts['cache']) { $cache_key = 'perch_events_category' . md5($id_or_slug); $cache = PerchEvents_Cache::get_static($cache_key, 10); } if ($cache) { if ($return) { return $cache; } echo $cache; return ''; } $API = new PerchAPI(1.0, 'perch_events'); $Categories = new PerchEvents_Categories($API); if (is_numeric($id_or_slug)) { $catID = intval($id_or_slug); $Category = $Categories->find_by_slug($catID); } else { $Category = $Categories->find_by_slug($id_or_slug); } if (is_object($Category)) { $Template = $API->get('Template'); $Template->set('events/' . $opts['template'], 'events'); $r = $Template->render($Category); if ($r != '' && $opts['cache']) { PerchEvents_Cache::save_static($cache_key, $r); } if ($return) { return $r; } echo $r; } return false; }
<?php if (!$CurrentUser->has_priv('perch_events.categories.manage')) { exit; } $Categories = new PerchEvents_Categories($API); $HTML = $API->get('HTML'); $Form = $API->get('Form'); $message = false; if (isset($_GET['id']) && $_GET['id'] != '') { $categoryID = (int) $_GET['id']; $Category = $Categories->find($categoryID); $details = $Category->to_array(); } else { $message = $HTML->failure_message('Sorry, that category could not be updated.'); } $Form->require_field('categoryTitle', 'Required'); if ($Form->submitted()) { $postvars = array('categoryID', 'categoryTitle'); $data = $Form->receive($postvars); $Category->update($data); if (is_object($Category)) { $message = $HTML->success_message('Your category has been successfully edited. Return to %scategory listing%s', '<a href="' . $API->app_path() . '/categories">', '</a>'); } else { $message = $HTML->failure_message('Sorry, that category could not be edited.'); } $details = $Category->to_array(); } if (isset($_GET['created']) && !$message) { $message = $HTML->success_message('Your category has been successfully created. Return to %scategory listing%s', '<a href="' . $API->app_path() . '/categories">', '</a>'); }
<?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');
<?php if (!$CurrentUser->has_priv('perch_events.categories.manage')) { exit; } $Categories = new PerchEvents_Categories($API); $HTML = $API->get('HTML'); $Form = $API->get('Form'); $Form->require_field('categoryID', 'Required'); $message = false; if (isset($_GET['id']) && $_GET['id'] != '') { $Category = $Categories->find($_GET['id']); } else { PerchUtil::redirect($API->app_path()); } if ($Form->submitted()) { $postvars = array('categoryID'); $data = $Form->receive($postvars); $Category = $Categories->find($data['categoryID']); if (is_object($Category)) { $Category->delete(); PerchUtil::redirect($API->app_path() . '/categories/'); } else { $message = $HTML->failure_message('Sorry, that category could not be deleted.'); } } $details = $Category->to_array();
<?php if (!$CurrentUser->has_priv('perch_events.categories.manage')) { PerchUtil::redirect($API->app_path()); } $Categories = new PerchEvents_Categories($API); $HTML = $API->get('HTML'); $Form = $API->get('Form'); $message = false; if (isset($_GET['id']) && $_GET['id'] != '') { $categoryID = (int) $_GET['id']; $Category = $Categories->find($categoryID); $details = $Category->to_array(); } else { $categoryID = false; $Category = false; $details = array(); } $Template = $API->get('Template'); $Template->set('events/category.html', 'events'); $Form->handle_empty_block_generation($Template); $tags = $Template->find_all_tags_and_repeaters(); $Form->require_field('categoryTitle', 'Required'); $Form->set_required_fields_from_template($Template, $details); if ($Form->submitted()) { $postvars = array('categoryTitle'); $data = $Form->receive($postvars); $prev = false; if (isset($details['categoryDynamicFields'])) { $prev = PerchUtil::json_safe_decode($details['categoryDynamicFields'], true); }
<?php if (!$CurrentUser->has_priv('perch_events.categories.manage')) { exit; } $Categories = new PerchEvents_Categories($API); $HTML = $API->get('HTML'); $Form = $API->get('Form'); $message = false; $Form->require_field('categoryTitle', 'Required'); if ($Form->submitted()) { PerchUtil::debug('Form submitted.'); $postvars = array('categoryTitle'); $data = $Form->receive($postvars); $data['categorySlug'] = PerchUtil::urlify($data['categoryTitle']); $new_category = $Categories->create($data); if (is_object($new_category)) { PerchUtil::redirect($API->app_path() . '/categories/edit/?id=' . $new_category->id() . '&created=1'); } else { $message = $HTML->failure_message('Sorry, that category could not be created.'); } } $details = array();