diff --git a/blocks/globalsearch/block_globalsearch.php b/blocks/globalsearch/block_globalsearch.php new file mode 100644 index 00000000000..5761d4c75ce --- /dev/null +++ b/blocks/globalsearch/block_globalsearch.php @@ -0,0 +1,89 @@ +. + +/** + * Global search block. + * + * @package block_globalsearch + * @copyright Prateek Sachan {@link http://prateeksachan.com} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +/** + * Global search block. + * + * @package block_globalsearch + * @copyright Prateek Sachan {@link http://prateeksachan.com} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class block_globalsearch extends block_base { + + /** + * Initialises the block. + * + * @return void + */ + public function init() { + $this->title = get_string('pluginname', 'block_globalsearch'); + } + + /** + * Gets the block contents. + * + * If we can avoid it better not check the server status here as connecting + * to the server will slow down the whole page load. + * + * @return string The block HTML. + */ + public function get_content() { + global $OUTPUT; + if ($this->content !== null) { + return $this->content; + } + + $this->content = new stdClass(); + $this->content->footer = ''; + + if (\core_search\manager::is_global_search_enabled() === false) { + $this->content->text = get_string('globalsearchdisabled', 'search'); + return $this->content; + } + + $url = new moodle_url('/search/index.php'); + $this->content->footer .= html_writer::link($url, get_string('advancedsearch', 'search')); + + $this->content->text = html_writer::start_tag('div', array('class' => 'searchform')); + $this->content->text .= html_writer::start_tag('form', array('action' => $url->out())); + $this->content->text .= html_writer::start_tag('fieldset', array('action' => 'invisiblefieldset')); + + // Input. + $this->content->text .= html_writer::tag('label', get_string('search', 'search'), + array('for' => 'searchform_search', 'class' => 'accesshide')); + $inputoptions = array('id' => 'searchform_search', 'name' => 'q', 'type' => 'text', 'size' => '15'); + $this->content->text .= html_writer::empty_tag('input', $inputoptions); + + // Search button. + $this->content->text .= html_writer::tag('button', get_string('search', 'search'), + array('id' => 'searchform_button', 'type' => 'submit', 'title' => 'globalsearch')); + $this->content->text .= html_writer::end_tag('fieldset'); + $this->content->text .= html_writer::end_tag('form'); + $this->content->text .= html_writer::end_tag('div'); + + return $this->content; + } +} diff --git a/blocks/globalsearch/db/access.php b/blocks/globalsearch/db/access.php new file mode 100644 index 00000000000..ad9f49d3936 --- /dev/null +++ b/blocks/globalsearch/db/access.php @@ -0,0 +1,48 @@ +. + +/** + * Global search Block caps. + * + * @package block_globalsearch + * @copyright Prateek Sachan {@link http://prateeksachan.com} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +$capabilities = array( + + 'block/globalsearch:myaddinstance' => array( + 'captype' => 'write', + 'contextlevel' => CONTEXT_SYSTEM, + 'archetypes' => array( + 'user' => CAP_ALLOW + ), + + 'clonepermissionsfrom' => 'moodle/my:manageblocks' + ), + + 'block/globalsearch:addinstance' => array( + 'captype' => 'write', + 'contextlevel' => CONTEXT_BLOCK, + 'archetypes' => array( + 'manager' => CAP_ALLOW + ), + + 'clonepermissionsfrom' => 'moodle/site:manageblocks' + ), +); diff --git a/blocks/globalsearch/lang/en/block_globalsearch.php b/blocks/globalsearch/lang/en/block_globalsearch.php new file mode 100644 index 00000000000..8a0635bf71f --- /dev/null +++ b/blocks/globalsearch/lang/en/block_globalsearch.php @@ -0,0 +1,27 @@ +. + +/** + * Strings for component 'block_globalsearch'. + * + * @package block_globalsearch + * @copyright Prateek Sachan {@link http://prateeksachan.com} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +$string['globalsearch:addinstance'] = 'Add a new global search block'; +$string['globalsearch:myaddinstance'] = 'Add a new global search block to Dashboard'; +$string['pluginname'] = 'Global search'; diff --git a/blocks/globalsearch/version.php b/blocks/globalsearch/version.php new file mode 100644 index 00000000000..07a5fa44f43 --- /dev/null +++ b/blocks/globalsearch/version.php @@ -0,0 +1,30 @@ +. + +/** + * Global Search version details. + * + * @package block_globalsearch + * @copyright Prateek Sachan {@link http://prateeksachan.com} + * @copyright Daniel Neis + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die; + +$plugin->version = 2016012000; +$plugin->requires = 2015111000; +$plugin->component = 'block_globalsearch';