source: pmb4.2/trunk/fuentes/pmb/classes/editions_state_filter_text.class.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 2.9 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2012 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: editions_state_filter_text.class.php,v 1.6 2014-10-28 18:03:42 mbertin Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9require_once($class_path."/editions_state_filter.class.php");
10
11class editions_state_filter_text extends editions_state_filter {
12       
13        public function __construct($elem,$params=array()){
14                parent::__construct($elem,$params);
15        }
16       
17        public function get_form($draggable=false){
18                global $msg,$charset;
19               
20                $form= "
21                        <div class='row'>&nbsp;</div>
22                        <div class='row'>";
23                if($draggable){
24                        $form.= "<div class='colonne3' id='filters_".$this->elem['id']."_drag' draggable='yes' dragtype='editionsstatefilterslist'>";
25                }else{
26                        $form.= "<div class='colonne3' id='filters_".$this->elem['id']."' >";
27                }
28                $form.= "
29                                        <label style='cursor: pointer;'>".htmlentities($this->elem['label'],ENT_QUOTES,$charset)."</label>
30                                </div>
31                                <div class='colonne3'>
32                                        <select name='".$this->elem['id']."_filter_op'>
33                                                <option value='like'".($this->op == "like" ? " selected='selected'" : "").">=</option>
34                                                <option value='content'".($this->op == "content" ? " selected='selected'" : "").">Contient</option>
35                                                <option value='start'".($this->op == "start" ? " selected='selected'" : "").">Commence par</option>
36                                                <option value='finish'".($this->op == "finish" ? " selected='selected'" : "").">Finit par</option>
37                                                <option value='empty'".($this->op == "empty" ? " selected='selected'" : "").">Est vide</option>
38                                                <option value='not_empty'".($this->op == "not_empty" ? " selected='selected'" : "").">N'est pas vide</option>
39                                        </select>
40                                </div>
41                                <div class='colonne_suite'>
42                                        <input type='text' name='".$this->elem['id']."_filter' value ='".htmlentities($this->value,ENT_QUOTES,$charset)."'/>
43                                </div>
44                        </div>";       
45                return $form;           
46        }
47       
48        public function get_sql_filter(){
49                $sql_filter = "";
50                switch($this->op){
51                        case 'like' :
52                                $op = "like '!!val!!'";
53                                break;
54                        case 'content' :
55                                $op = "like '%!!val!!%'";
56                                break;
57                        case 'start' :
58                                $op = "like '!!val!!%'";
59                                break;
60                        case 'finish' :
61                                $op = "like '%!!val!!'";
62                                break;
63                        case 'empty' :
64                                $op = "like ''";
65                                break;
66                        case 'not_empty' :
67                        default :
68                                $op = "not like ''";
69                                break;                 
70                }
71                if($this->op && ($this->value!= "" || $this->op == "empty" ||  $this->op == "not_empty")){
72                        if($this->elem['field_join']){
73                                $champ=$this->elem['field_join'];
74                        }elseif($this->elem['field_alias']){
75                                $champ=$this->elem['field_alias'];
76                        }else{
77                                $champ=$this->elem['field'];
78                        }
79                        $sql_filter = $champ." ".str_replace("!!val!!",addslashes($this->value),$op);
80                        if($this->elem['authorized_null']){
81                                $sql_filter="((".$sql_filter.") OR (".$champ." IS NULL))";
82                        }
83                }
84                return $sql_filter;
85        }       
86}
Note: See TracBrowser for help on using the repository browser.