Esempio n. 1
0
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;
 }
Esempio n. 3
0
<?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;
Esempio n. 4
0
<?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();
Esempio n. 5
0
<?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');
}
Esempio n. 6
0
/**
 * 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;
}
Esempio n. 7
0
<?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>');
}
Esempio n. 8
0
<?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();
Esempio n. 10
0
<?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);
    }
Esempio n. 11
0
<?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();