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;
 }
예제 #2
0
/**
 * 
 * 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);
}
예제 #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;
예제 #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();
예제 #5
0
/**
 * 
 * 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;
}
예제 #6
0
<?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) {
예제 #7
0
<?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();
예제 #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');