Example #1
0
 function getCategorySummaries($scope = null, $pubStates = null)
 {
     global $logger;
     $logger->debug(get_class($this) . "::getCategorySummaries({$scope}, {$pubStates})");
     $pubStates = $pubStates == null ? array('Published') : $pubStates;
     $db =& JFactory::getDBO();
     // get the categories for this scope and pubstate
     $query = 'SELECT DISTINCT c.eoid as oid, c.name as name, c.family, c.school, ev.value as pubState' . ' FROM _ez_relation_ as r, Category as c, EnumeratedValue as ev' . ' WHERE (c.scope = "' . $scope . '" AND r.class_a = "Category"' . ' AND r.class_b = "PublicationState") AND oid_b = ev.eoid AND (';
     $sep = "";
     foreach ($pubStates as $pubState) {
         $query .= $sep . 'ev.value = "' . $pubState . '"';
         $sep = ' OR ';
     }
     $query .= ")";
     $db->setQuery($query);
     $categories = $db->loadAssocList();
     $result = array();
     foreach ($categories as $row) {
         $category = new Category($row);
         // Get the event counts
         // $types = array ("Exhibition", "Program", "Course");
         $types = array("Program");
         $categoryEvents = array();
         foreach ($types as $type) {
             $query = 'SELECT DISTINCT e.eoid ' . ' FROM ' . $type . ' as e, _ez_relation_ as r ' . ' WHERE r.class_a = "' . $type . '" AND r.class_b = "Category" ' . ' AND r.oid_b = ' . $category->getOid();
             $db->setQuery($query);
             $events = $db->loadAssocList();
             foreach ($events as $event) {
                 $categoryEvents[] = new $type($event);
             }
         }
         $category->setEvents($categoryEvents);
         $result[] = $category;
     }
     return $result;
 }