diff options
Diffstat (limited to 'mod/graphstats/start.php')
-rw-r--r-- | mod/graphstats/start.php | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/mod/graphstats/start.php b/mod/graphstats/start.php new file mode 100644 index 000000000..cf5f2b4f5 --- /dev/null +++ b/mod/graphstats/start.php @@ -0,0 +1,72 @@ +<?php +/** + * Elgg graph stats. + * + * @package ElggGraphStats + */ + +elgg_register_event_handler('init', 'system', 'graphstats_init'); + +function graphstats_init() { + + $timestats_path = elgg_get_plugins_path() . 'graphstats/lib/timestats.php'; + elgg_register_library('elgg:graphs:timestats', $timestats_path); + + elgg_register_page_handler('graphs', 'graphstats_pagehandler'); + + // register the timeline's JavaScript + $timeline_js = elgg_get_simplecache_url('js', 'timeline'); + elgg_register_js('simile.timeline', $timeline_js); + + // register the raphael's Javascript + $raphael_js = elgg_get_simplecache_url('js', 'raphael/raphael'); + elgg_register_js('raphael', $raphael_js, 'head'); + + // register the raphael analytics's Javascript + $analytics_js = elgg_get_simplecache_url('js', 'raphael/analytics'); + elgg_register_js('raphael.analytics', $analytics_js, 'head'); + + // Modifying group activity pagehander + elgg_register_plugin_hook_handler('route','groups', 'graphstats_setup_title_button'); +} + +/** + * Dispatches graphs pages. + * URLs take the form of + * Time stats: graphs/timestats/[?type=<type>&subtype=<subtype>][&relative=true] + * Group network: graphs/groupnetwork/ + * Implication: graphs/implication/ + * Group timeline: graphs/group/<guid>/ + * + * @param array $page + * @return NULL + */ +function graphstats_pagehandler($page){ + $graphstats_dir = elgg_get_plugins_path() . 'graphstats/pages/graphstats'; + + $page_type = $page[0]; + switch ($page_type) { + case 'timestats': + include "$graphstats_dir/timestats.php"; + break; + case 'groupnetwork': + break; + case 'implication': + break; + case 'group': + set_input('group_guid', $page[1]); + include "$graphstats_dir/group.php"; + break; + } +} + +function graphstats_setup_title_button($hook, $type, $params, $return){ + $page_type = $params['segments'][0]; + $group_guid = $params['segments'][1]; + + if($page_type == 'activity'){ + add_translation(get_current_language(), array('graphs:group' => elgg_echo('timeline'))); + elgg_set_page_owner_guid((int) $group_guid); + elgg_register_title_button('graphs', 'group'); + } +} |