diff options
Diffstat (limited to 'views')
-rw-r--r-- | views/default/plugins/opensearch/settings.php | 97 | ||||
-rw-r--r-- | views/xml/opensearch/description.php | 42 |
2 files changed, 124 insertions, 15 deletions
diff --git a/views/default/plugins/opensearch/settings.php b/views/default/plugins/opensearch/settings.php new file mode 100644 index 000000000..23ba19538 --- /dev/null +++ b/views/default/plugins/opensearch/settings.php @@ -0,0 +1,97 @@ +<?php +/** + * Opensearch plugin settings + */ + +// set default value +if (!isset($vars['entity']->shortname)) { + $vars['entity']->shortname = elgg_get_site_entity()->name; +} +if (!isset($vars['entity']->desc)) { + $vars['entity']->desc = elgg_echo('opensearch:engine', array(elgg_get_site_entity()->name)); +} +if (!isset($vars['entity']->longname)) { + $vars['entity']->longname = elgg_get_site_entity()->description; +} +if (!isset($vars['entity']->icon)) { + $vars['entity']->icon = '_graphics/favicon.ico'; +} +if (!isset($vars['entity']->tags)) { + $vars['entity']->tags = ''; +} +if (!isset($vars['entity']->lang)) { + $vars['entity']->lang = 'en-us'; +} +if (!isset($vars['entity']->query)) { + $vars['entity']->query = ''; +} + +echo '<div>'; +echo '<label>'.elgg_echo('opensearh:settings:shortname').'</label> '; +echo elgg_echo('opensearh:settings:shortname:description'); +echo ' '; +echo elgg_view('input/text', array( + 'name' => 'params[shortname]', + 'value' => $vars['entity']->shortname, +)); +echo '</div>'; + +echo '<div>'; +echo '<label>'.elgg_echo('opensearh:settings:desc').'</label> '; +echo elgg_echo('opensearh:settings:desc:description'); +echo ' '; +echo elgg_view('input/text', array( + 'name' => 'params[desc]', + 'value' => $vars['entity']->desc, +)); +echo '</div>'; + +echo '<div>'; +echo '<label>'.elgg_echo('opensearh:settings:longname').'</label> '; +echo elgg_echo('opensearh:settings:longname:description'); +echo ' '; +echo elgg_view('input/text', array( + 'name' => 'params[longname]', + 'value' => $vars['entity']->longname, +)); +echo '</div>'; + +echo '<div>'; +echo '<label>'.elgg_echo('opensearh:settings:icon').'</label> '; +echo elgg_echo('opensearh:settings:icon:description'); +echo ' '; +echo elgg_view('input/text', array( + 'name' => 'params[icon]', + 'value' => $vars['entity']->icon, +)); +echo '</div>'; + +echo '<div>'; +echo '<label>'.elgg_echo('opensearh:settings:tags').'</label> '; +echo elgg_echo('opensearh:settings:tags:description'); +echo ' '; +echo elgg_view('input/text', array( + 'name' => 'params[tags]', + 'value' => $vars['entity']->tags, +)); +echo '</div>'; + +echo '<div>'; +echo '<label>'.elgg_echo('opensearh:settings:lang').'</label> '; +echo elgg_echo('opensearh:settings:lang:description'); +echo ' '; +echo elgg_view('input/text', array( + 'name' => 'params[lang]', + 'value' => $vars['entity']->lang, +)); +echo '</div>'; + +echo '<div>'; +echo '<label>'.elgg_echo('opensearh:settings:query').'</label> '; +echo elgg_echo('opensearh:settings:query:description'); +echo ' '; +echo elgg_view('input/text', array( + 'name' => 'params[query]', + 'value' => $vars['entity']->query, +)); +echo '</div>'; diff --git a/views/xml/opensearch/description.php b/views/xml/opensearch/description.php index 78aadc699..586cadf83 100644 --- a/views/xml/opensearch/description.php +++ b/views/xml/opensearch/description.php @@ -1,6 +1,6 @@ <?php /** - * Creates an OpenSearch description document from config.ini + * Creates an OpenSearch description document from plugin settings * http://www.opensearch.org/Specifications/OpenSearch/1.1 */ @@ -8,18 +8,31 @@ header('Pragma: public', true); header('Cache-Control: public', true); -$config_ini = dirname(dirname(dirname(dirname(__FILE__)))) . '/config.ini'; -$config = parse_ini_file($config_ini); -if ($config == false) { - elgg_log("Unable to parse OpenSearch config file", 'ERROR'); - return true; -} - -extract($config); - $site = elgg_get_site_entity(); $email = $site->email; +$shortname = elgg_get_plugin_setting('shortname', 'opensearch'); +$description = elgg_get_plugin_setting('desc', 'opensearch'); +$longname = elgg_get_plugin_setting('longname', 'opensearch'); +$icon = elgg_get_plugin_setting('icon', 'opensearch'); +$tags = elgg_get_plugin_setting('tags', 'opensearch'); +$lang = string_to_tag_array(elgg_get_plugin_setting('lang', 'opensearch')); +$query = elgg_get_plugin_setting('query', 'opensearch'); + +if (empty($shortname)) { + $shortname = $site->name; +} +if (empty($description)) { + $description = elgg_echo('opensearch:engine', array(elgg_get_site_entity()->name)); +} +if (empty($icon)) { + $icon = '_graphics/favicon.ico'; +} +if (empty($lang)) { + $lang = 'en-us'; +} + + $rss_url = elgg_normalize_url('search/?q={searchTerms}&view=opensearch_rss'); $rss_url = elgg_format_url($rss_url); $html_url = elgg_normalize_url('search/?q={searchTerms}'); @@ -35,11 +48,10 @@ $site_url = elgg_get_site_url(); <Contact><?php echo $site->email; ?></Contact> <Url type="text/html" template="<?php echo $html_url; ?>"/> <Url type="application/rss+xml" template="<?php echo $rss_url; ?>"/> -<?php if (isset($ico)): ?> - <Image height="16" width="16" type="image/vnd.microsoft.icon"><?php echo "{$site_url}$ico"; ?></Image> -<?php endif; ?> -<?php if (isset($png)): ?> - <Image height="64" width="64" type="image/png"><?php echo "{$site_url}$png"; ?></Image> +<?php if (preg_match("/.ico$/", $icon)): ?> + <Image height="16" width="16" type="image/vnd.microsoft.icon"><?php echo "{$site_url}$icon"; ?></Image> +<?php elseif (preg_match("/.png$/", $icon)): ?> + <Image height="64" width="64" type="image/png"><?php echo "{$site_url}$icon"; ?></Image> <?php endif; ?> <?php if (isset($tags)): ?> <Tags><?php echo $tags; ?></Tags> |