summaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authormichael pereira2011-04-04 17:14:53 +0200
committermichael pereira2011-04-04 17:14:53 +0200
commitb1a3923f98348f5145713315180b8e80e6ee89c0 (patch)
treebff2b1b25fc41d1581d78c9b858897419780c7a0 /library
parentWICHTIG findBy Methode geändert & alles angepasst, siehe Ticket (diff)
parentclient-suche verändert (diff)
downloadpbs2-b1a3923f98348f5145713315180b8e80e6ee89c0.tar.gz
pbs2-b1a3923f98348f5145713315180b8e80e6ee89c0.tar.xz
pbs2-b1a3923f98348f5145713315180b8e80e6ee89c0.zip
merges
Diffstat (limited to 'library')
-rw-r--r--library/Pbs/Pagination.php50
-rw-r--r--library/Pbs/Search.php90
2 files changed, 138 insertions, 2 deletions
diff --git a/library/Pbs/Pagination.php b/library/Pbs/Pagination.php
index 179f2f7..c31dacf 100644
--- a/library/Pbs/Pagination.php
+++ b/library/Pbs/Pagination.php
@@ -1,8 +1,24 @@
<?php
-class Pbs_Pagination{
- public function pagination($url,$selected,$max){
+class Pbs_Pagination{
+
+ private $element;
+ private $perpage;
+ private $requestpage;
+ private $maxNumber;
+ private $numpages;
+ private $pageUrl;
+
+ public function pagination($url=null,$selected=null,$max=null){
+ if($selected == null)
+ $selected = $this->requestpage;
+ if($max == null)
+ $max = $this->numpages;
+ if($url == null)
+ $url = $this->pageUrl;
+
#print_a($url,$selected,$max);
+
$str = "<div class='pbs_pagination'>";
if ( 1 <= $selected){
$str .= "<a href='$url/page/0' >&lt;&lt;</a>";
@@ -33,6 +49,36 @@ class Pbs_Pagination{
$str .= "</div>";
return $str;
}
+ public function setPerPage($perpage){
+ $this->perpage = $perpage;
+ }
+ public function getPerPage(){
+ return $this->perpage;
+ }
+ public function setRequestPage($requestpage){
+ if($requestpage < 0 || !is_numeric($requestpage) )
+ $requestpage = 0;
+ if($requestpage >= $this->numpages)
+ $requestpage = $this->numpages-1;
+ $this->requestpage = $requestpage;
+ }
+ public function getRequestPage(){
+ return $this->requestpage;
+ }
+ public function setElement($element){
+ $this->element = $element;
+ $this->maxNumber = count($element);
+ $this->numpages = ceil(count($element)/$this->perpage);
+ }
+ public function getStartItem(){
+ return $this->requestpage * $this->perpage;
+ }
+ public function getElements(){
+ return array_slice($this->element,$this->getStartItem(),$this->getPerPage());
+ }
+ public function setPageUrl($url){
+ $this->pageUrl = $url;
+ }
}
diff --git a/library/Pbs/Search.php b/library/Pbs/Search.php
new file mode 100644
index 0000000..e642d66
--- /dev/null
+++ b/library/Pbs/Search.php
@@ -0,0 +1,90 @@
+<?php
+
+class Pbs_Search{
+
+ private $searchTerm = '';
+ private $searcha;
+ private $searchb;
+
+ public function searchForm(){
+ $str = "<form style='text-align:right;' action='/user/client/search'>
+ <input type='text' name='search' ".(($this->searchTerm != '')?'value="'.$this->searchTerm.'"':'').">
+ <button type='submit' class='searchbutton' value='search'> Search</button>";
+ if($this->searchTerm != ''){
+ $str .= "<a href='/user/client/'><img src='/media/img/delete.png' alt='Delete Client'/></a>
+ <script type='text/javascript' src='/media/js/jquery.highlight-3.js'></script>
+ <script>
+ $(document).ready(function(){";
+ foreach($this->getSearchTerms() as $term){
+ $str .= "$('table').highlight('".$term."');";
+ }
+ $str .= "});
+ </script>";
+ }
+ $str .= "</form>";
+ return $str;
+ }
+
+ public function setSearchTerm($search){
+ $this->searchTerm = $search;
+
+ $parts = explode(" ",$search);
+ foreach($parts as $search){
+ if(stristr($search,":") && ctype_alpha(substr($search,0,strpos($search,":")))){
+ $key = substr($search,0,strpos($search,":"));
+ $value = substr($search,strpos($search,":")+1);
+ $searcha[$key] = $value;
+ }
+ else{
+ $searchb[] = $search;
+ }
+ }
+ $this->searcha = $searcha;
+ $this->searchb = $searchb;
+ }
+
+ public function getSearchTerms(){
+ $beta = $this->searcha;
+ foreach($this->searchb as $b)
+ $beta[] = $b;
+ return $beta;
+ }
+ public function search($array){
+
+ foreach($array as $counter => $cig){
+ foreach($cig as $k => $v){
+ if(count($this->searcha) > 0){
+ foreach($this->searcha as $sk => $sv){
+ if($k == $sk){
+ if(stristr($v,$sv)){
+ $com1[] = $counter;
+ }
+ }
+ }
+ }
+ if(count($searchb) >= 0){
+ foreach($this->searchb as $sk => $sv){
+ $comm = stristr($v,$sv);
+ if($comm != false){
+ $com2[] = $counter;
+ break;
+ }
+ }
+ }
+ }
+ }
+ if (count($this->searcha) == 0){
+ $data = $com2;
+ }
+ if (count($this->searchb) == 0){
+ $data = $com1;
+ }
+ if (count($this->searcha) > 0 && count($this->searchb) > 0){
+ $data = array_intersect($com1,$com2);
+ }
+ $data = array_unique($data);
+ foreach( $data as $c)
+ $ges[] = $array[$c];
+ return $ges;
+ }
+}