示例#1
0
 /**
  * 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
 }
示例#2
0
 /**
  * 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
 }