$query_vars['fdpage'] = 1;\r
}\r
\r
- if($query_vars['fdid']!==null)\r
- $out=$this->get_app($query_vars);\r
- else\r
- $out=$this->get_apps($query_vars);\r
+ $out = '';\r
+\r
+ if(isset($attribs['search']) && $query_vars['fdfilter']===null) {\r
+ $query_vars['fdfilter'] = '';\r
+ }\r
+\r
+ if($query_vars['fdid']!==null) {\r
+ $out.=$this->get_app($query_vars);\r
+ } else {\r
+ if($query_vars['fdfilter'] !== null)\r
+ $out.=$this->show_search($query_vars);\r
+\r
+ $out.=$this->get_apps($query_vars);\r
+ }\r
return $out;\r
\r
}\r
\r
function get_apps($query_vars) {\r
\r
+ $xml = simplexml_load_file($this->site_path."/repo/index.xml");\r
+ $matches = $this->show_apps($xml,$query_vars,$numpages);\r
+ \r
$out='';\r
\r
- $out.='<div style="float:left;">';\r
- if($query_vars['fdfilter']===null)\r
- $out.="All applications";\r
- else\r
- $out.="Applications matching ".$query_vars['fdfilter'];\r
- $out.="</div>";\r
-\r
- $out.='<div style="float:right;">';\r
- $out.='<a href="'.makelink($query_vars, array('fdstyle'=>'list','fdpage'=>'1')).'">List</a> | ';\r
- $out.='<a href="'.makelink($query_vars, array('fdstyle'=>'grid','fdpage'=>'1')).'">Grid</a>';\r
- $out.='</div>';\r
+ if(($query_vars['fdfilter']===null || $query_vars['fdfilter']!='') && $numpages>0)\r
+ {\r
+ $out.='<div style="float:left;">';\r
+ if($query_vars['fdfilter']===null)\r
+ $out.="All applications";\r
+ else\r
+ $out.='Applications matching "'.$query_vars['fdfilter'].'"';\r
+ $out.="</div>";\r
+\r
+ $out.='<div style="float:right;">';\r
+ $out.='<a href="'.makelink($query_vars, array('fdstyle'=>'list','fdpage'=>'1')).'">List</a> | ';\r
+ $out.='<a href="'.makelink($query_vars, array('fdstyle'=>'grid','fdpage'=>'1')).'">Grid</a>';\r
+ $out.='</div>';\r
+\r
+ $out.='<br break="all"/>';\r
+ } \r
+ \r
+ if($numpages>0) {\r
+ $out.=$matches;\r
+ \r
+ $out.='<hr><p>';\r
+ if($query_vars['fdpage']==1) {\r
+ $out.="<<first ";\r
+ $out.="<prev ";\r
+ } else {\r
+ $out.='<a href="'.makelink($query_vars, array('fdpage'=>1)).'"><<first</a> ';\r
+ $out.='<a href="'.makelink($query_vars, array('fdpage'=>($query_vars['fdpage']-1))).'"><<prev</a> ';\r
+ }\r
+ $out.=' Page '.$query_vars['fdpage'].' of '.$numpages.' ';\r
+ if($query_vars['fdpage']==$numpages) {\r
+ $out.="next> ";\r
+ $out.="last>> ";\r
+ } else {\r
+ $out.='<a href="'.makelink($query_vars, array('fdpage'=>($query_vars['fdpage']+1))).'">next></a> ';\r
+ $out.='<a href="'.makelink($query_vars, array('fdpage'=>$numpages)).'">last>></a> ';\r
+ }\r
+ $out.='</p>';\r
+ } else if($query_vars['fdfilter']!='') {\r
+ $out.='<p>No matches</p>';\r
+ }\r
\r
- $out.='<br break="all"/>';\r
+ return $out;\r
+ }\r
\r
- $xml = simplexml_load_file($this->site_path."/repo/index.xml");\r
- $out.=$this->show_apps($xml,$query_vars,$numpages);\r
-\r
- $out.='<hr><p>';\r
- if($query_vars['fdpage']==1) {\r
- $out.="<<first ";\r
- $out.="<prev ";\r
- } else {\r
- $out.='<a href="'.makelink($query_vars, array('fdpage'=>1)).'"><<first</a> ';\r
- $out.='<a href="'.makelink($query_vars, array('fdpage'=>($query_vars['fdpage']-1))).'"><<prev</a> ';\r
- }\r
- $out.=' Page '.$query_vars['fdpage'].' of '.$numpages.' ';\r
- if($query_vars['fdpage']==$numpages) {\r
- $out.="next> ";\r
- $out.="last>> ";\r
- } else {\r
- $out.='<a href="'.makelink($query_vars, array('fdpage'=>($query_vars['fdpage']+1))).'">next></a> ';\r
- $out.='<a href="'.makelink($query_vars, array('fdpage'=>$numpages)).'">last>></a> ';\r
- }\r
- $out.='</p>';\r
+ \r
+ function show_search($query_vars) {\r
\r
+ $out='';\r
+ $out.='<form name="searchform" action="" method="get">';\r
+ $out.='<p><input name="fdfilter" type="text" value="'.$query_vars['fdfilter'].'" size="30"> ';\r
+ $out.='<input type="submit" value="Search"></p>';\r
+\r
+ $out.='<input type="hidden" name="page_id" value="'.get_query_var('page_id').'">';\r
+ foreach($query_vars as $name => $value) {\r
+ if($value !== null && $name != 'fdfilter')\r
+ $out.='<input type="hidden" name="'.$name.'" value="'.$value.'">';\r
+ }\r
+ \r
+ $out.='</form>'."\n";\r
+ \r
return $out;\r
}\r
-\r
+ \r
\r
function show_apps($xml,$query_vars,&$numpages) {\r
\r
}\r
}\r
\r
- if($query_vars['fdfilter']===null || stristr($appinfo['name'],$query_vars['fdfilter'])) {\r
+ if($query_vars['fdfilter']===null || $query_vars['fdfilter']!='' && (stristr($appinfo['name'],$query_vars['fdfilter']) || stristr($appinfo['summary'],$query_vars['fdfilter']))) {\r
if($skipped<($query_vars['fdpage']-1)*$outputter->perpage) {\r
$skipped++;\r
} else if($got<$outputter->perpage) {\r
-\r
$out.=$outputter->outputEntry($query_vars, $appinfo);\r
$got++;\r
}\r