aboutsummaryrefslogtreecommitdiff
path: root/mod/ecml/start.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/ecml/start.php')
-rw-r--r--mod/ecml/start.php182
1 files changed, 0 insertions, 182 deletions
diff --git a/mod/ecml/start.php b/mod/ecml/start.php
deleted file mode 100644
index 598af0185..000000000
--- a/mod/ecml/start.php
+++ /dev/null
@@ -1,182 +0,0 @@
-<?php
-/**
- * Provides the ECML service to plugins.
- *
- * @package ECML
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.org/
- *
- * @todo
- * Granular access to keywords based upon view.
- * Update docs / help
- * Check for SQL injection problems.
- * Check entity keyword views against fullview. Force to FALSE?
- */
-
-/**
- * Init ECML
- */
-function ecml_init() {
- require_once(dirname(__FILE__) . '/ecml_functions.php');
- global $CONFIG;
-
- define('ECML_ATTR_SEPARATOR', ' ');
- define('ECML_ATTR_OPERATOR', '=');
-
- // help page
- register_page_handler('ecml', 'ecml_help_page_handler');
-
- // admin access page
- 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('settings/ecml/save', 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', 0);
- //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
- // do the check in a single plugin hook.
- // Wants array('view_name' => 'Short Description')
- $CONFIG->ecml_parse_views = trigger_plugin_hook('get_views', 'ecml', NULL, array());
-
- foreach ($CONFIG->ecml_parse_views as $view => $desc) {
- register_plugin_hook('view', $view, 'ecml_parse_view');
- }
-
- // provide a few built-in ecml keywords.
- // @todo could pull this out into an array here to save an API call.
- register_plugin_hook('get_keywords', 'ecml', 'ecml_keyword_hook');
-
- // grab the list of keywords and their views from plugins
- $CONFIG->ecml_keywords = trigger_plugin_hook('get_keywords', 'ecml', NULL, array());
-
- // grab permissions for specific views/contexts
- // this is a black list.
- // 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 = unserialize(get_plugin_setting('ecml_permissions', 'ecml'));
-}
-
-/**
- * Page setup. Adds admin controls to the admin panel for granular permission
- */
-function ecml_pagesetup(){
- if (get_context() == 'admin' && isadminloggedin()) {
- global $CONFIG;
-
- }
-}
-
-/**
- * Display a help page for valid ECML keywords on this page.
- *
- * @param array $page
- */
-function ecml_help_page_handler($page) {
- $content = elgg_view('ecml/help');
- $body = elgg_view_layout('one_column_with_sidebar', $content);
- echo page_draw(elgg_echo('ecml:help'), $body);
-}
-
-/**
- * Display a admin area for ECML
- *
- * @param array $page
- */
-function ecml_admin_page_handler($page) {
- admin_gatekeeper();
- set_context('admin');
- $content = elgg_view('ecml/admin/ecml_admin');
- $body = elgg_view_layout('one_column_with_sidebar', $content);
- echo page_draw(elgg_echo('ecml:admin'), $body);
-}
-
-/**
- * Parses a registered view / context for supported keywords.
- *
- * @param unknown_type $hook
- * @param unknown_type $entity_type
- * @param unknown_type $return_value
- * @param unknown_type $params
- * @return string
- */
-function ecml_parse_view($hook, $entity_type, $return_value, $params) {
- global $CONFIG;
-
- // give me everything that is not a ], possibly followed by a :, and surrounded by [ ]s
- //$keyword_regex = '/\[\[([a-z0-9_]+):?([^\]]+)?\]\]/';
- $keyword_regex = '/\[([a-z0-9\.]+)([^\]]+)?\]/';
- $CONFIG->ecml_current_view = $params['view'];
- $return_value = preg_replace_callback($keyword_regex, 'ecml_parse_view_match', $return_value);
-
- return $return_value;
-}
-
-
-/**
- * Register default keywords.
- *
- * @param unknown_type $hook
- * @param unknown_type $type
- * @param unknown_type $value
- * @param unknown_type $params
- * @return unknown_type
- */
-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(
- 'youtube',
- 'slideshare',
- 'vimeo',
- 'googlemaps',
- 'scribd',
- 'blip.tv',
- 'dailymotion',
- 'livevideo',
- 'redlasso',
- 'entity'
- );
-
- foreach ($keywords as $keyword) {
- $value[$keyword] = array(
- 'view' => "ecml/keywords/$keyword",
- 'description' => elgg_echo("ecml:keywords:$keyword:desc"),
- 'usage' => elgg_echo("ecml:keywords:$keyword:usage")
- );
- }
-
- 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;
-}
-
-// be sure to run after other plugins
-register_elgg_event_handler('init', 'system', 'ecml_init', 9999); \ No newline at end of file