public function get_events() { $gCms = cmsms(); $sorting = $this->_reverse ? 'DESC' : 'ASC'; $query = 'SELECT * FROM ' . cms_db_prefix() . 'module_cgcalendar_events WHERE event_id IN ('; $query .= implode(',', $this->_idlist) . ')'; $query .= " ORDER BY event_date_start {$sorting}"; $db = cmsms()->GetDb(); // get the parent ids and events. $events = $db->GetArray($query); $parent_ids = $this->_idlist; if (!is_array($events) || count($events) == 0) { return; } foreach ($events as $row) { if ($row['event_parent_id'] > 0) { $parent_ids[] = $row['event_parent_id']; } } $parent_ids = array_unique($parent_ids); $customfields = array(); $query = 'SELECT * FROM ' . cms_db_prefix() . 'module_cgcalendar_event_field_values WHERE event_id IN (' . implode(',', $parent_ids) . ') ORDER BY event_id'; $frs = $db->GetArray($query); foreach ($frs as $row) { $customfields[$row['event_id']][] = $row; } $allcategories = array(); $query = 'SELECT * FROM ' . cms_db_prefix() . 'module_cgcalendar_events_to_categories WHERE event_id IN (' . implode(',', $this->_idlist) . ') ORDER BY event_id'; $crs = $db->Execute($query); while ($crs && !$crs->EOF()) { $row = $crs->fields; $allcategories[$row['event_id']][] = $row; $crs->MoveNext(); } if (count($allcategories)) { \CGCalendar\category::get_categories(); } // forces preload. $users = array(); $userops = $gCms->GetUserOperations(); $userlist = $userops->LoadUsers(); foreach ($userlist as $oneuser) { $users[$oneuser->id] = $oneuser; } $module = cms_utils::get_module('CGCalendar'); foreach ($events as &$row) { $titleSEO = munge_string_to_url($row['event_title']); $prettyurl = sprintf($this->_url_prefix . '/%d/%d-%s', $this->_destpage, $row['event_id'], $titleSEO); $parms = array(); $parms['event_id'] = $row['event_id']; $parms['display'] = 'event'; if ($this->_eventtemplate) { $parms['eventtemplate'] = $this->_eventtemplate; } $row['url'] = $module->create_url($this->_actionid, 'default', $this->_destpage, $parms, false, false, $prettyurl); $ptr = null; if (isset($allcategories[$row['event_id']])) { $ptr = $allcategories[$row['event_id']]; } else { if ($row['event_parent_id'] > 0 && isset($allcategories[$row['event_parent_id']])) { $ptr = $allcategories[$row['event_parent_id']]; } } $row['bgcolor'] = $row['fgcolor'] = null; if ($ptr) { $categories = array(); foreach ($ptr as $cat) { $categories[] = $cat['category_id']; if (!$row['bgcolor']) { // get colors for this event... $cat_obj = \CGCalendar\category::load($cat['category_id']); $row['fgcolor'] = $cat_obj['fgcolor']; $row['bgcolor'] = $cat_obj['bgcolor']; } } $row['categories'] = $categories; $row['category_names'] = $module->GetCategoryNames($categories); } $ptr = null; if (isset($customfields[$row['event_id']])) { $ptr = $customfields[$row['event_id']]; } else { if ($row['event_parent_id'] > 0 && isset($customfields[$row['event_parent_id']])) { $ptr = $customfields[$row['event_parent_id']]; } } if ($ptr) { $fields = array(); $fieldinfo = array(); foreach ($ptr as $key => $rec) { $fields[$rec['field_name']] = $rec['field_value']; $fieldinfo[$rec['field_name']] = $rec; } $row['fields'] = $fields; // deprecated $row['fieldinfo'] = $fieldinfo; } if ($row['event_created_by'] < 0) { // negative values (smaller than -100) indicate an admin user account $uid = $row['event_created_by'] + 100 * -1; $row['admin_uid'] = $uid; if (isset($users[$uid])) { $row['author'] = $users[$uid]->username; } } $row['is_parent'] = $row['event_recur_interval'] != 'none' && $row['event_recur_interval'] != ''; } return $events; }
<?php if (!isset($gCms)) { exit; } $categories = \CGCalendar\category::get_categories(); if (count($categories)) { $smarty->assign('categories', $categories); } $out = $this->ProcessTemplate('admin_ajax_getcategories.tpl'); echo $out; exit;
function GetCategories() { return \CGCalendar\category::get_categories(); }