/** * Displays the course summary * @param bean $model The course summary model */ public function summary($model) { global $logger, $mainframe, $mosConfig_livesite; $logger->debug(get_class($this) . "::summary({$model})"); $tmpl = $this->createPatTemplate(FRONT_TEMPLATE_DIR); $tmpl->readTemplatesFromInput('course_summary.pat.tpl'); $tmpl->addGlobalVar('live_site', $mosConfig_livesite); $tmpl->addGlobalVar('shop_menu', strtolower(base64_encode('shop'))); // page title $pg_title = "Course Summary"; if ($model->getGenre()) { $pg_title = $model->getGenre()->getName(); if ($model->getGenre()->getIntroduction() != null) { $tmpl->addVar('intro', 'introduction', $model->getGenre()->getIntroduction()); } } $mainframe->setPageTitle($pg_title); $tmpl->addVar('intro', 'title', $pg_title); $eventList = $model->getList(); usort($eventList, array('FrontCoursePage', 'sort_by_date')); $first = true; foreach ($eventList as $event) { $tmpl->clearVar('course', 'venue'); $tmpl->clearVar('course', 'sessions'); $tmpl->clearVar('course', 'pricing'); // simple attributes $tmpl->addVars('course', BeanUtil::beanToArray($event, true)); // scalars only $first_class = $first ? ' first' : ''; $tmpl->addVar('course', 'first_class', $first_class); $first = false; // image if ($event->getGallery() != null) { $images = $event->getGallery()->getImages(); if ($images != null && $images[0] != null) { $img = $images[0]; $logger->debug('Class of img [Image]: ' . get_class($img)); $tmpl->addVar('course', 'imageurl', $img->getUrl()); $tmpl->addVar('course', 'imagecredit', $img->getAuthor()); } } // venue $venues = $event->getVenues(); $dv = isset($venues[0]) ? $venues[0] : null; if ($dv != null) { $dv_link = $this->getVenueTitleLink($dv); // in the MasterPage $tmpl->addVar('course', 'venue', $dv_link); } // date description (Use scheduleNote or next activity time $date_desc = ''; if ($event->getScheduleNote() != null) { $date_desc = $event->getScheduleNote(); } else { $next = $this->getNextActivity($event->getChildren()); if ($next != null && $next->getSchedule() != null) { $date_desc = $this->formatDate($next->getSchedule()->getStartTime()); // in the master page class } } $tmpl->addVar('course', 'date_desc', $date_desc); // sessions if ($event->getChildren() != null) { $sessions = count($event->getChildren()); $ss = ' session'; if ($sessions > 1) { $ss = ' sessions'; } $tmpl->addVar('course', 'sessions', $sessions . $ss); } // registration link if ($event->getProduct() != null && $event->getProduct()->getOid() != null) { $prod = $event->getProd(); $reg_link = cceventSefUrl("index.php?option=com_virtuemart&page=shop.product_details&category_id=" . $prod->getCategoryId() . "&flypage=" . $prod->getFlypage() . "&product_id=" . $prod->getOid()); $tmpl->addVar('course', 'register_link', $reg_link); } $tmpl->parseTemplate('course', "a"); } $tmpl->displayParsedTemplate('course_summary'); // set the request for css ids and classes $_REQUEST['cce_cols'] = "2"; // canvas div id $_REQUEST['cce_subtype'] = "general"; // canvas div class $_REQUEST['ccmenu'] = isset($_REQUEST['ccmenu']) ? $_REQUEST['ccmenu'] : ''; // menu }
/** * Displays the program summary * @param bean $model The program summary model */ public function summary($model) { global $logger, $mainframe; $logger->debug(get_class($this) . "::summary({$model})"); $tmpl = $this->createPatTemplate(FRONT_TEMPLATE_DIR); $tmpl->readTemplatesFromInput('program_summary.pat.tpl'); // page title $pg_title = "Program Summary"; if ($model->getGenre()) { $pg_title = $model->getGenre()->getName(); if ($model->getGenre()->getIntroduction() != null) { $tmpl->addVar('intro', 'introduction', $model->getGenre()->getIntroduction()); } } $mainframe->setPageTitle($pg_title); $tmpl->addVar('intro', 'title', $pg_title); if ($model->getAnnouncement() != null) { $tmpl->addVar('intro', 'announcement', $model->getAnnouncement()); } $eventList = $model->getList(); // check for a sort preference if (isset($_SESSION['summary_sort'])) { usort($eventList, array('FrontProgramPage', 'sort_by_' . $_SESSION['summary_sort'])); // $tmpl->addVar('prgm_summary','sort_' . $_SESSION['summary_sort'],'class="sel"'); $tmpl->addVar('sort_links', 'sortby', $_SESSION['summary_sort']); } else { usort($eventList, array('FrontProgramPage', 'sort_by_date')); // $tmpl->addVar('prgm_summary','sort_date','class="sel"'); $tmpl->addVar('sort_links', 'sortby', 'date'); } // sort links $base_link = "index.php?option=com_ccevents&scope=prgm&task=summary"; // $sort_link = array(); $sort_info = array(array("text" => "View by Date", "type" => "date"), array("text" => "View Alphabetically", "type" => "title"), array("text" => "View by Series", "type" => "series"), array("text" => "View by Age Group", "type" => "age")); $filter = ""; if ($_REQUEST['fid']) { $filter = "&filter=Genre&fid=" . $_REQUEST['fid']; } if (isset($_REQUEST['school'])) { $filter .= "&school=true"; } // $sort_link['sort_date_link'] = $this->cceventSefUrl($base_link . $filter . "&sort=date"); $sort_info[0]["link"] = $this->cceventSefUrl($base_link . $filter . "&sort=date"); // $sort_link['sort_title_link'] = $this->cceventSefUrl($base_link . $filter . "&sort=title"); $sort_info[1]["link"] = $this->cceventSefUrl($base_link . $filter . "&sort=title"); // $sort_link['sort_series_link'] = $this->cceventSefUrl($base_link . $filter . "&sort=series"); $sort_info[2]["link"] = $this->cceventSefUrl($base_link . $filter . "&sort=series"); // $sort_link['sort_age_link'] = $this->cceventSefUrl($base_link . $filter . "&sort=age"); $sort_info[3]["link"] = $this->cceventSefUrl($base_link . $filter . "&sort=age"); // $tmpl->addVars('prgm_summary',$sort_link); $tmpl->addRows('sort_links', $sort_info); // a temporary place to hold a comparison operator for group headings $prev_category_name = ""; $iter = 0; foreach ($eventList as $event) { // check group order for series and audience groupings $tmpl->setAttribute('group', 'visibility', 'hidden'); $sort_name = $this->getSortName($event, $_SESSION['summary_sort']); if ($sort_name != $prev_category_name) { $tmpl->addVar('group', 'group_heading', $sort_name); $tmpl->setAttribute('group', 'visibility', 'visible'); $prev_category_name = $sort_name; $iter = 0; } $event_class = $iter == 0 ? "event first" : "event"; $tmpl->addVar('program', 'event_class', $event_class); $iter++; // simple attributes $tmpl->addVars('program', BeanUtil::beanToArray($event, true)); // scalars only // detail link $school = ''; if (isset($_REQUEST['school']) || $event->getPrimaryGenre()->getSchool()) { $school = "&school=true"; } $dlink = $this->cceventSefUrl("index.php?option=com_ccevents&scope=prgm&task=detail&oid=" . $event->getOid() . $school); $tmpl->addVar('program', 'detail_link', $dlink); // primary genre $pg = $event->getPrimaryGenre(); if ($pg != null) { $tmpl->addVar('program', 'genre', $pg->getName()); } // activity level items $time_display = ""; if ($event->getScheduleNote() != '') { $time_display = $event->getScheduleNote(); $ticket = ''; } else { $acts = $event->getChildren(); $next_act = $this->getNextActivity($acts); $ticket = ''; if ($next_act != null) { $schedule = $next_act->getSchedule(); if ($schedule != null) { $time_display = date("l, F j, g:i a", $schedule->getStartTime()); } if ($next_act->getActivityStatus() != null) { // get the ticket code $tc = null; if ($next_act->getTicketCode() != null) { $tc = $next_act->getTicketCode(); } else { $tc = $event->getTicketUrl(); } $ticket = $this->getStatusImage($next_act->getActivityStatus()->getValue(), $tc); } } } $tmpl->addVar('program', 'time', $time_display); $tmpl->addVar('program', 'status_img', $ticket); // audience $tmpl->clearTemplate('show_audience'); $tmpl->setAttribute('show_audience', 'visibility', 'hidden'); $tmpl->clearTemplate('audience'); $family = false; $cats = $event->getCategories(); if (isset($cats[Category::AUDIENCE])) { foreach ($cats[Category::AUDIENCE] as $aud) { if ($aud->getFamily()) { $family = true; } $tmpl->addVar('audience', 'name', $aud->getName()); $tmpl->parseTemplate('audience', 'a'); $tmpl->setAttribute("show_audience", "visibility", "visible"); } } $tmpl->addVar('program', 'family', $family); // series $tmpl->clearTemplate('series'); if (isset($cats[Category::SERIES])) { foreach ($cats[Category::SERIES] as $ser) { $slink = $this->cceventSefUrl("index.php?option=com_ccevents&scope=sers&task=summary&oid=" . $ser->getOid()); $tmpl->addVar('series', 'series_link', $slink); $tmpl->addVar('series', 'series_title', $ser->getName()); $tmpl->parseTemplate('series', 'a'); } } // image if ($event->getGallery() != null) { $images = $event->getGallery()->getImages(); $logger->debug('Number of images [1]: ' . count($images)); $img = $images[0]; $logger->debug('Class of img [Image]: ' . get_class($img)); $tmpl->addVar('program', 'imageurl', $img->getUrl()); $tmpl->addVar('program', 'imagecredit', $img->getAuthor()); } $tmpl->parseTemplate('program', "a"); } $tmpl->displayParsedTemplate('prgm_summary'); // set the request for css ids and classes $_REQUEST['cce_scope'] = "programs"; // css file name / body id $_REQUEST['cce_page'] = ""; // body class $_REQUEST['cce_cols'] = "3"; // canvas div id $_REQUEST['cce_subtype'] = "general"; // canvas div class $_REQUEST['ccmenu'] = isset($_REQUEST['ccmenu']) ? $_REQUEST['ccmenu'] : ''; // menu }