function apachesolr_stats_report_gadget in Apache Solr Statistics 6
Callback function that outputs an XML description for a Google Gadget and terminates PHP execution.
See also
1 string reference to 'apachesolr_stats_report_gadget'
- apachesolr_stats_menu in ./
apachesolr_stats.module - Implementation of hook_menu().
File
- ./
apachesolr_stats.module, line 230 - Keeps and reports statistics about Apache Solr usage and performance.
Code
function apachesolr_stats_report_gadget() {
$settings_key = variable_get("apachesolr_stats_gadget_key", "");
if ($settings_key === 0) {
echo t("Invalid request");
exit;
}
$granularities = apachesolr_stats_get_granularities();
$report_elements = apachesolr_stats_generate_report_elements($granularities["hour"]);
// Generate options
$element_options = "";
foreach ($report_elements as $id => $element) {
$element_options .= " <EnumValue value=\"{$id}\" display_value=\"{$element[name]}\" />\n";
}
$granularity_options = "";
foreach ($granularities as $id => $granularity) {
$granularity_options .= " <EnumValue value=\"{$id}\" display_value=\"{$granularity[last_msg]}\"/>\n";
}
$title = t('Search statistics for @sitename', array(
'@sitename' => variable_get('site_name', ''),
));
$access_key = t('Access key');
$var_to_show = t('Variable to show');
$timespan_to_report = t('Time span to report');
$loading = t('Loading...');
// Send correct header for XML
header("Content-Type: text/xml");
// Output the gadget XML description
$site_base_url = url('<front>', array(
'absolute' => true,
));
echo <<<HEREDOC
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs
title="{<span class="php-variable">$title</span>}"
author="Alejandro Garza"
author_email="alejandro.garza@itesm.mx"
description="Google widget for Drupal Apache Solr Statistics module. More info: http://drupal.org/project/apachesolr_stats"
screenshot="http://chart.apis.google.com/chart?cht=lc&chs=300x200&chdlp=b&chma=30,100,20,20&chd=s:NlVabjGXUaM&chxp=1,22"
thumbnail="http://chart.apis.google.com/chart?cht=lc&chs=200x100&chdlp=b&chma=30,100,20,20&chd=s:NlVabjGXUaM&chxp=1,22"
height="180" >
<Require feature="dynamic-height"/>
</ModulePrefs>
<UserPref name="key" display_name="{<span class="php-variable">$access_key</span>}" required="true" default_value="{<span class="php-variable">$settings_key</span>}" datatype="string" />
<UserPref name="element" display_name="{<span class="php-variable">$var_to_show</span>}" default_value="total_queries_per" datatype="enum" >
{<span class="php-variable">$element_options</span>}
</UserPref>
<UserPref name="granularity" display_name="{<span class="php-variable">$timespan_to_report</span>}" default_value="day" datatype="enum" >
{<span class="php-variable">$granularity_options</span>}
</UserPref>
<Content type="html"><![CDATA[
<div id="content_div">{<span class="php-variable">$loading</span>}</div>
<script type="text/javascript">
function getHtml() {
var params = {};
var prefs = new gadgets.Prefs();
var element = prefs.getString("element");
var granularity = prefs.getString("granularity");
var key = prefs.getString("key");
var rand = Math.floor(Math.random()*9999)
params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.TEXT;
var url = "{<span class="php-variable">$site_base_url</span>}/apachesolr_stats/element/" + granularity + "/" + element + "/" + key + "?" + rand;
gadgets.io.makeRequest(url, response, params);
};
function response(obj) {
//obj.text contains the text of the page that was requested
document.getElementById('content_div').innerHTML = obj.text;
setTimeout("gadgets.window.adjustHeight()", 1000);
};
gadgets.util.registerOnLoadHandler(getHtml);
</script>
]]>
</Content>
</Module>
HEREDOC;
exit;
}