40 if (!is_array($records) ){
41 return PEAR::raiseError(
"In Dataface_Utilities::groupBy() expected 2nd parameter to be an array, but received "+$records);
49 foreach ($order as $orderKey){
50 $ordered[$orderKey] = array();
54 foreach (array_keys($records) as $i){
55 if ( is_a($records[$i],
'Dataface_Record') || is_a($records[$i],
'Dataface_RelatedRecord') ){
58 }
else if (is_array($records[$i]) ) {
61 return PEAR::raiseError(
"In Dataface_Utilities::groupBy() each of the elements in the list of records should be either an array or a Dataface_Record object (or a Dataface_RelatedRecord object), but received: ".$records[$i]);
66 if ( isset( $ordered[$key] ) ) $ordered[$key][] =& $records[$i];
68 if ( !isset($unordered[$key]) ){
69 $unordered[$key] = array();
72 $unordered[$key][] =& $records[$i];
75 $out = array_merge($ordered, $unordered);
77 foreach (array_keys(
$out) as $key){
78 if ( isset($titles[$key]) ){
79 $out2[$titles[$key]] =&
$out[$key];
81 $out2[$key] =&
$out[$key];
117 public static function query2html($query, $keyFilter=array()){
118 foreach ( $keyFilter as $bad ){
119 if ( isset($query[$bad]) ) unset($query[$bad]);
126 foreach ($qt as $key=>$value){
127 echo
"<input type=\"hidden\" name=\"$key\" value=\"$value\" />\n";
129 $out = ob_get_contents();
169 if ( !empty(
$path) ){
170 $prefix = array_shift(
$path);
171 if ( !empty(
$path) ){
172 $prefix .=
'['.implode(
'][',
$path).
']';
177 $hasprefix = !empty($prefix);
178 foreach ($in as $key=>$value){
180 if ( is_array($value) ){
185 $out[$prefix.
'['.$key.
']'] = $value;
202 public static function fireEvent($name, $params=array()){
204 $query =&
$app->getQuery();
205 if ( isset($query[
'-table']) ){
207 $delegate =&
$table->getDelegate();
208 if ( isset($delegate) && method_exists($delegate, $name) ){
210 $res = $delegate->$name($params);
215 $appDelegate =&
$app->getDelegate();
216 if ( isset($appDelegate) && method_exists($appDelegate, $name) ){
218 $res = $appDelegate->$name($params);
228 return str_replace(
'`',
'', $ident);
242 public static function redirect($msg=null, $error=null){
244 $query =&
$app->getQuery();
245 $prefix = @$query[
'--prefix'];
246 if ( isset($query[
'--error_page']) and isset($error) ){
247 $page = $query[
'--error_page'];
248 }
else if ( isset($query[
'--success_page']) and !isset($error) ){
249 $page = $query[
'--success_page'];
250 }
else if ( isset($query[
'--redirect']) ){
251 $page = $query[
'--redirect'];
254 if ( !isset($page) )
return;
255 if ( isset($error) ){
256 if ( strpos($page,
'?') ===
false ) $page .=
'?';
259 $page .= $prefix.
'--error_message='.urlencode($res->getMessage()).
'&'.$prefix.
'--error_code='.urlencode($res->getCode());
264 if ( strpos($page,
'?') === false ) $page .=
'?';
265 $page .= $prefix.
'--msg='.urlencode($msg);
268 $app->redirect(
"$page");