source: pmb4.1/trunk/fuentes/pmb/cms/modules/search/views/cms_module_search_view_search.class.php @ 478

Last change on this file since 478 was 478, checked in by mabarracus, 4 years ago

copy trusty code 4.1

  • Property svn:executable set to *
File size: 8.5 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: cms_module_search_view_search.class.php,v 1.11.2.1 2014-04-25 14:53:02 mbertin Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8require_once($include_path."/h2o/h2o.php");
9
10class cms_module_search_view_search extends cms_module_common_view{
11        protected $cadre_parent;
12       
13        public function __construct($id=0){
14                parent::__construct($id+0);
15        }
16       
17        public function get_form(){
18                $form ="
19                <div class='row'>
20                        <div class='row'>
21                                <div class='colonne3'>
22                                        <label for='cms_module_search_view_help'>".$this->format_text($this->msg['cms_module_search_view_help'])."</label>
23                                </div>
24                                <div class='colonne-suite'>
25                                        <input type='radio' name='cms_module_search_view_help' value='1' ".($this->parameters['help'] ? "checked='checked'" : "")."/>&nbsp;".$this->format_text($this->msg['cms_module_search_view_help_yes'])."
26                                        &nbsp;<input type='radio' name='cms_module_search_view_help' value='0' ".(!$this->parameters['help'] ? "checked='checked'" : "")."/>&nbsp;".$this->format_text($this->msg['cms_module_search_view_help_no'])."
27                                </div>
28                        </div>
29                        <div class='row'>
30                                <div class='colonne3'>
31                                        <label for='cms_module_search_view_title'>".$this->format_text($this->msg['cms_module_search_view_title'])."</label>
32                                </div>
33                                <div class='colonne-suite'>
34                                        <input type='text' name='cms_module_search_view_title' value='".($this->parameters['title'] ? htmlentities($this->parameters['title'],ENT_QUOTES,$charset) : "")."'/>
35                                </div>
36                        </div>
37                        <div class='row'>
38                                <div class='colonne3'>
39                                        <label for='cms_module_search_view_link_search_advanced'>".$this->format_text($this->msg['cms_module_search_view_link_search_advanced'])."</label>
40                                </div>
41                                <div class='colonne-suite'>
42                                        <input type='radio' name='cms_module_search_view_link_search_advanced' value='1' ".($this->parameters['link_search_advanced'] ? "checked='checked'" : "")."/>&nbsp;".$this->format_text($this->msg['cms_module_search_view_link_search_advanced_yes'])."
43                                        &nbsp;<input type='radio' name='cms_module_search_view_link_search_advanced' value='0' ".(!$this->parameters['link_search_advanced'] ? "checked='checked'" : "")."/>&nbsp;".$this->format_text($this->msg['cms_module_search_view_link_search_advanced_no'])."
44                                </div>
45                        </div>
46                </div>
47                ".parent::get_form();
48                return $form;
49        }
50       
51        public function save_form(){
52                global $cms_module_search_view_help;
53                global $cms_module_search_view_title;
54                global $cms_module_search_view_link_search_advanced;
55
56                $this->parameters['help'] = $cms_module_search_view_help+0;
57                $this->parameters['title'] = $cms_module_search_view_title;
58                $this->parameters['link_search_advanced'] = $cms_module_search_view_link_search_advanced+0;
59               
60                return parent::save_form();
61        }
62       
63        public function render($datas){
64                global $base_path,$opac_autolevel2;
65                global $opac_modules_search_title,$opac_modules_search_author,$opac_modules_search_publisher,$opac_modules_search_titre_uniforme;
66                global $opac_modules_search_collection,$opac_modules_search_subcollection,$opac_modules_search_category,$opac_modules_search_indexint;
67                global $opac_modules_search_keywords,$opac_modules_search_abstract,$opac_modules_search_docnum;
68                global $dest,$user_query,$charset;
69                //juste une searchbox...
70                if(count($datas) == 1){
71                        if($datas[0]['page']>0){
72                                $action = $base_path."/index.php?lvl=cmspage&pageid=".$datas[0]['page'];
73                        }else{
74                                if ($opac_autolevel2==2) {
75                                        $action = $base_path."/index.php?lvl=more_results&autolevel1=1";
76                                } else {
77                                        $action = $base_path."/index.php?lvl=search_result&search_type_asked=simple_search";
78                                }
79                        }
80                        $onsubmit = "if (".$this->get_module_dom_id()."_searchbox.user_query.value.length == 0) { ".$this->get_module_dom_id()."_searchbox.user_query.value='*';}".$this->get_module_dom_id()."_change_dest();";
81                }else{
82                        if ($opac_autolevel2==2) {
83                                $action = $base_path."/index.php?lvl=more_results&autolevel1=1";
84                        } else {
85                                $action = $base_path."/index.php?lvl=search_result&search_type_asked=simple_search";
86                        }
87                        $onsubmit = $this->get_module_dom_id()."_change_dest();";
88                }
89                if ($opac_modules_search_title==2) $look["look_TITLE"]=1;
90                if ($opac_modules_search_author==2) $look["look_AUTHOR"]=1 ;
91                if ($opac_modules_search_publisher==2) $look["look_PUBLISHER"] = 1 ; 
92                if ($opac_modules_search_titre_uniforme==2) $look["look_TITRE_UNIFORME"] = 1 ; 
93                if ($opac_modules_search_collection==2) $look["look_COLLECTION"] = 1 ; 
94                if ($opac_modules_search_subcollection==2) $look["look_SUBCOLLECTION"] = 1 ;
95                if ($opac_modules_search_category==2) $look["look_CATEGORY"] = 1 ;
96                if ($opac_modules_search_indexint==2) $look["look_INDEXINT"] = 1 ;
97                if ($opac_modules_search_keywords==2) $look["look_KEYWORDS"] = 1 ;
98                if ($opac_modules_search_abstract==2) $look["look_ABSTRACT"] = 1 ;
99                $look["look_ALL"] = 1 ;
100                if ($opac_modules_search_docnum==2) $look["look_DOCNUM"] = 1;
101                $html = "
102                        <form method='post' class='searchbox' action='".$action."' name='".$this->get_module_dom_id()."_searchbox' ".($onsubmit!= "" ? "onsubmit=\"".$onsubmit."\"" : "").">
103                                ";
104                foreach($look as $looktype=>$lookflag) { $html.="
105                                <input type='hidden' value='1' name='$looktype'>"; 
106                }
107               
108                if ($this->parameters['title']) {
109                        $html.="
110                                <h4 class='searchbox_title'>".htmlentities($this->parameters['title'],ENT_QUOTES,$charset)."</h4>";
111                }
112               
113                if($opac_simple_search_suggestions){
114                        $html.= "
115                                <script type='text/javascript' src='$include_path/javascript/ajax.js'></script>
116                                <input type='text' name='user_query' id='user_query_lib_2' value='".stripslashes(htmlentities($user_query,ENT_QUOTES,$charset))."' expand_mode='1' completion='suggestions' disableCompletion='false' word_only='no'/>
117                                <script type='text/javascript'>
118                                        function toggleCompletion(destValue){
119                                                if(destValue!='0'){
120                                                        document.getElementById('user_query_lib_2').setAttribute('disableCompletion','true');
121                                                }else{
122                                                        document.getElementById('user_query_lib_2').setAttribute('disableCompletion','false');
123                                                }
124                                        }
125                                        ajax_parse_dom();
126                                </script>";
127                }else{
128                        $html.="
129                                <input type='text' name='user_query' value='".stripslashes(htmlentities($user_query,ENT_QUOTES,$charset))."'/>";
130                }
131               
132                $html.="
133                                <input class='bouton' type='submit' value='".$this->format_text($this->msg['cms_module_search_button_label'])."' />";
134                if ($this->parameters['help']) {
135                        $html.="
136                                <input class='bouton' type='button' onclick='window.open(\"./help.php?whatis=simple_search\", \"search_help\", \"scrollbars=yes, toolbar=no, dependent=yes, width=400, height=400, resizable=yes\"); return false' value='".$this->format_text($this->msg['cms_module_search_help'])."'>";
137                }
138                if(count($datas) >1){
139                        $html.= "<br/>";
140                        for($i=0 ; $i<count($datas) ; $i++){
141                                $checked ="";
142                                if($dest){
143                                        if($datas[$i]['page'] == $dest){
144                                                $checked= " checked='checked'";
145                                        }
146                                }else if($i == 0){
147                                        $checked= " checked='checked'";
148                                }
149                                if($opac_simple_search_suggestions){
150                                        $html.="
151                                                <span class='search_radio_button' id='search_radio_button_".$i."'><input type='radio' name='dest' value='".$datas[$i]['page']."'".$checked." onClick='toggleCompletion(this.value);' />&nbsp;".$this->format_text($datas[$i]['name'])."</span>";
152                                }else{
153                                        $html.="
154                                                <span class='search_radio_button' id='search_radio_button_".$i."'><input type='radio' name='dest' value='".$datas[$i]['page']."'".$checked."/>&nbsp;".$this->format_text($datas[$i]['name'])."</span>";
155                                }
156                        }
157                }
158                if ($this->parameters['link_search_advanced']) {
159                        $html.="
160                                <p class='search_advanced_link' id='search_advanced_link'><a href='./index.php?search_type_asked=simple_search'>".$this->format_text($this->msg['cms_module_search_view_link_search_advanced_display'])."</a></p>";
161                }
162                $html.= "               
163                        </form>";
164                return $html;
165        }
166       
167        public function get_headers(){
168                global $base_path;
169                $headers = array();
170               
171                $headers[] = "
172                <script type='text/javascript'>
173                        function ".$this->get_module_dom_id()."_change_dest(){
174                                var page = 0;
175                                var dests = document.forms['".$this->get_module_dom_id()."_searchbox'].dest;
176                                for(var i = 0; i < dests.length; i++){
177                                        if(dests[i].checked){
178                                                page = dests[i].value;
179                                                break;
180                                        }
181                                }
182                               
183                                if(page>0){
184                                        document.forms['".$this->get_module_dom_id()."_searchbox'].action = '".$base_path."/index.php?lvl=cmspage&pageid='+page;
185                                }
186                                return true;
187                        }
188                </script>";
189                return $headers;       
190        }
191}
Note: See TracBrowser for help on using the repository browser.