コード例 #1
0
 /**
  * Return all filters grouped by group name
  *
  * @param User $user
  * @param boolean $skip_private
  * @return array
  */
 function findGrouped($user = null, $skip_private = false)
 {
     $result = null;
     $conditions = null;
     if (instance_of($user, 'User')) {
         $conditions = array('is_private = ? OR (is_private = ? AND created_by_id = ?)', false, true, $user->getId());
     } elseif ($skip_private) {
         $conditions = array('is_private = ?', false);
     }
     // if
     $all = AssignmentFilters::find(array('conditions' => $conditions, 'order' => 'group_name, name'));
     if (is_foreachable($all)) {
         $result = array();
         $other_filters = array();
         foreach ($all as $filter) {
             if ($group_name = $filter->getGroupName()) {
                 if (!isset($result[$group_name])) {
                     $result[$group_name] = array();
                 }
                 // if
                 $result[$group_name][] = $filter;
             } else {
                 $other_filters[] = $filter;
             }
             // if
         }
         // foreach
         if (count($other_filters)) {
             $result[lang('Other')] = $other_filters;
         }
     }
     // if
     return $result;
 }