/** * 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; }