aboutsummaryrefslogtreecommitdiff
path: root/mod/ecml/start.php
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-04-15 17:07:13 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-04-15 17:07:13 +0000
commit18d00e176826a353503f889bb8ea157e5228304b (patch)
tree2627deb9fbf4f67d542100445953bed181e6fa00 /mod/ecml/start.php
parent08b4a8007503f580ebe85527124b452de5832dd3 (diff)
downloadelgg-18d00e176826a353503f889bb8ea157e5228304b.tar.gz
elgg-18d00e176826a353503f889bb8ea157e5228304b.tar.bz2
Added granular access for views in ECML.
Added 'usage' on keyword info. Updated docs. git-svn-id: http://code.elgg.org/elgg/trunk@5747 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/ecml/start.php')
-rw-r--r--mod/ecml/start.php45
1 files changed, 35 insertions, 10 deletions
diff --git a/mod/ecml/start.php b/mod/ecml/start.php
index c6a9ff38b..cad6f096f 100644
--- a/mod/ecml/start.php
+++ b/mod/ecml/start.php
@@ -32,11 +32,20 @@ function ecml_init() {
register_page_handler('ecml_admin', 'ecml_admin_page_handler');
register_elgg_event_handler('pagesetup', 'system', 'ecml_pagesetup');
+ // CSS for admin access
+ elgg_extend_view('css', 'ecml/admin/css');
+
+ // admin action to save permissions
+ register_action('ecml/save_permissions', FALSE, dirname(__FILE__) . '/actions/save_permissions.php', TRUE);
+
// show ECML-enabled icon on free-text input areas
elgg_extend_view('input/longtext', 'ecml/input_ext');
elgg_extend_view('input/plaintext', 'ecml/input_ext');
//elgg_extend_view('input/text', 'ecml/input_ext');
+ // add parsing for core views.
+ register_plugin_hook('get_views', 'ecml', 'ecml_views_hook');
+
// get register the views we want to parse for ecml
// @todo will need to do profiling to see if it would be faster
// to foreach through this list and register to specific views or
@@ -60,9 +69,7 @@ function ecml_init() {
// it's more efficient to use this as a blacklist
// but probably makes more sense from a UI perspective as a whitelist.
// uses [views][view_name] = array(keywords, not, allowed)
- $CONFIG->ecml_permissions = array(
- 'views' => array()
- );
+ $CONFIG->ecml_permissions = unserialize(get_plugin_setting('ecml_permissions', 'ecml'));
}
/**
@@ -92,7 +99,8 @@ function ecml_help_page_handler($page) {
* @param array $page
*/
function ecml_admin_page_handler($page) {
- $content = elgg_view('ecml/admin');
+ admin_gatekeeper();
+ $content = elgg_view('ecml/admin/ecml_admin');
echo page_draw(elgg_echo('ecml:admin'), $content);
}
@@ -122,22 +130,39 @@ function ecml_parse_view($hook, $entity_type, $return_value, $params) {
* Register default keywords.
*
* @param unknown_type $hook
- * @param unknown_type $entity_type
- * @param unknown_type $return_value
+ * @param unknown_type $type
+ * @param unknown_type $value
* @param unknown_type $params
* @return unknown_type
*/
-function ecml_keyword_hook($hook, $entity_type, $return_value, $params) {
+function ecml_keyword_hook($hook, $type, $value, $params) {
+ // I keep going back and forth about entity and view. They're powerful, but
+ // a great way to let a site get hacked if the admin doesn't lock them down.
$keywords = array('entity', 'view', 'youtube', 'slideshare', 'vimeo', 'googlemaps');
foreach ($keywords as $keyword) {
- $return_value[$keyword] = array(
+ $value[$keyword] = array(
'view' => "ecml/keywords/$keyword",
- 'description' => elgg_echo("ecml:keywords:$keyword")
+ 'description' => elgg_echo("ecml:keywords:desc:$keyword"),
+ 'usage' => elgg_echo("ecml:keywords:usage:$keyword")
);
}
- return $return_value;
+ return $value;
+}
+
+/**
+ * Register default views to parse
+ *
+ * @param unknown_type $hook
+ * @param unknown_type $type
+ * @param unknown_type $value
+ * @param unknown_type $params
+ */
+function ecml_views_hook($hook, $type, $value, $params) {
+ $value['annotation/generic_comment'] = elgg_echo('ecml:views:annotation_generic_comment');
+
+ return $value;
}
register_elgg_event_handler('init', 'system', 'ecml_init'); \ No newline at end of file