global search MDL-25056 added a port of the global_config.html to settings.php. Leavi...
[moodle.git] / blocks / search / settings.php
1 <?php
3 defined('MOODLE_INTERNAL') || die;
5 if ($ADMIN->fulltree) {
7     //Search text
8     $settings->add(new admin_setting_configtext('block_search_text', get_string('configsearchtext', 'block_search'),
9                        get_string('headingofsearchblock', 'block_search'), get_string('searchmoodle', 'block_search'), PARAM_ALPHANUM));
11     //Button Label
12     $settings->add(new admin_setting_configtext('block_search_button', get_string('configbuttonlabel', 'block_search'),
13                        get_string('labelofsearchbutton', 'block_search'), get_string('go', 'block_search'), PARAM_ALPHANUM));
15     //Enable file indexing (y/n)
16     $settings->add(new admin_setting_configcheckbox('block_search_enable_file_indexing', get_string('configenablefileindexing', 'block_search'),
17                        get_string('enablefileindexing', 'block_search'), 0, 1, 0));
19     //file types
20     $defaultfiletypes = 'PDF,TXT,HTML,PPT,XML,DOC,HTM';
21     $settings->add(new admin_setting_configtext('block_search_filetypes', get_string('configfiletypes', 'block_search'),
22                        get_string('listoffiletypes', 'block_search'), $defaultfiletypes, PARAM_ALPHANUM));
24     // usemoodleroot
25     $settings->add(new admin_setting_configcheckbox('block_search_usemoodleroot', get_string('usemoodleroot', 'block_search'),
26                        get_string('usemoodlerootdescription', 'block_search'), 1, 1, 0));
28     //limit_index_body
29     $settings->add(new admin_setting_configtext('block_search_limit_index_body', get_string('configlimitindexbody', 'block_search'),
30                        get_string('indexbodylimit', 'block_search'), '', PARAM_INT));
32     //setup default paths for following configs.
33     if ($CFG->ostype == 'WINDOWS') {
34         $default_pdf_to_text_cmd = "lib/xpdf/win32/pdftotext.exe -eol dos -enc UTF-8 -q";
35         $default_word_to_text_cmd = "lib/antiword/win32/antiword/antiword.exe ";
36         $default_word_to_text_env = "HOME={$CFG->dirroot}\\lib\\antiword\\win32";
37     } else {
38         $default_pdf_to_text_cmd = "lib/xpdf/linux/pdftotext -enc UTF-8 -eol unix -q";
39         $default_word_to_text_cmd = "lib/antiword/linux/usr/bin/antiword";
40         $default_word_to_text_env = "ANTIWORDHOME={$CFG->dirroot}/lib/antiword/linux/usr/share/antiword";
41     }
43     //pdf_to_text_cmd
44     $settings->add(new admin_setting_configtext('block_search_pdf_to_text_cmd', get_string('configpdftotextcmd', 'block_search'),
45                        get_string('pdftotextcmd', 'block_search'), $default_pdf_to_text_cmd, PARAM_INT, 60));
47     //word_to_text_cmd
48     $settings->add(new admin_setting_configtext('block_search_word_to_text_cmd', get_string('configwordtotextcmd', 'block_search'),
49                        get_string('wordtotextcmd', 'block_search'), $default_word_to_text_cmd, PARAM_INT, 60));
51     //word_to_text_env
52     $settings->add(new admin_setting_configtext('block_search_word_to_text_env', get_string('configwordtotextenv', 'block_search'),
53                        get_string('wordtotextenv', 'block_search'), $default_word_to_text_env, PARAM_PATH, 60));
56     // modules activations
58     $types = explode(',', $CFG->block_search_filetypes);
59     if (!empty($types)) {
60         foreach($types as $type) {
61             $utype = strtoupper($type);
62             $type = strtolower($type);
63             $type = trim($type);
64             if (preg_match("/\\b$type\\b/i", $defaultfiletypes)) continue;
66             //header
67             $propname = 'block_search_'.$type.'_to_text';
68             $settings->add(new admin_setting_heading($propname, get_string('handlingfor', 'block_search').' '.$utype , ''));
70             //word_to_text_cmd
71             $propname = 'block_search_'.$type.'_to_text_cmd';
72             $settings->add(new admin_setting_configtext($propname, get_string('configtypetotxtcmd', 'block_search'),
73                                get_string('cmdtoconverttotextfor', 'block_search', $type), '', PARAM_PATH, 60));
74             
75             //word_to_text_env
76             $propname = "block_search_'.$type.'_to_text_env";
77             $settings->add(new admin_setting_configtext($propname, get_string('configtypetotxtenv', 'block_search'),
78                                get_string('envforcmdtotextfor', 'block_search', $type), '', PARAM_PATH, 60));
79             
80         }
81     }
83     require_once($CFG->dirroot.'/search/lib.php' );
84     $searchnames = search_collect_searchables(true, false);
85     list($searchable_list, $params) = $DB->get_in_or_equal($searchnames);
87     //header
88     $propname = 'block_search_'.$type.'_to_text';
89     $settings->add(new admin_setting_heading($propname, get_string('searchdiscovery', 'block_search') , ''));
91     $found_searchable_modules = 0;
92     if ($modules = $DB->get_records_select('modules', "name $searchable_list", $params, 'name', 'id,name')){
93         foreach($modules as $module){
94             $keyname = 'search_in_'.$module->name;
95             $settings->add(new admin_setting_configcheckbox($keyname, get_string('modulename', $module->name),
96                                get_string('enableindexinginmodule', 'block_search', $module->name), 1, 1, 0));
97             $found_searchable_modules = 1;
98         }
99     }
100     
101     if (!$found_searchable_modules) {
102         //header
103         $propname = 'block_search_nosearchablemodules';
104         $settings->add(new admin_setting_heading($propname, get_string('nosearchablemodules', 'block_search') , ''));
105     }
107     //header
108     $propname = 'block_search_searchswitches';
109     $settings->add(new admin_setting_heading($propname, get_string('blockssearchswitches', 'block_search') , ''));
111     $found_searchable_blocks = 0;
112     if ($blocks = $DB->get_records_select('block', "name $searchable_list", $params, 'name', 'id,name')){
113         foreach($blocks as $block){
114             $keyname = 'search_in_'.$block->name;
115             $settings->add(new admin_setting_configcheckbox($keyname, get_string('pluginname', 'block_'.$block->name),
116                                get_string('enableindexinginblock', 'block_search', $block->name), 1, 1, 0));
117             $found_searchable_blocks = 1;
118         }
119     }
120     if (!$found_searchable_blocks) {
121         //header
122         $propname = 'block_search_nosearchableblocks';
123         $settings->add(new admin_setting_heading($propname, get_string('nosearchableblocks', 'block_search') , ''));
124     }