From 19c7350770788edf3ae0bb1fd6d95876667adbf6 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 23 Dec 2012 14:52:18 +0400 Subject: experimental new plugin system --- include/functions.php | 24 +++++++++--------------- include/rssfuncs.php | 23 ++++------------------- include/sanity_config.php | 4 ++-- 3 files changed, 15 insertions(+), 36 deletions(-) (limited to 'include') diff --git a/include/functions.php b/include/functions.php index 53aaa92b3..da6767986 100644 --- a/include/functions.php +++ b/include/functions.php @@ -7,13 +7,6 @@ function __autoload($class) { $class_file = str_replace("_", "/", strtolower(basename($class))); - $file = dirname(__FILE__)."/../plugins/$class_file.php"; - - if (file_exists($file)) { - require $file; - return; - } - $file = dirname(__FILE__)."/../classes/$class_file.php"; if (file_exists($file)) { @@ -3265,15 +3258,10 @@ onclick=\"postOpenInNewTab(event, $id)\" alt='Zoom' title='".__('Open article in new tab')."'>"; - $button_plugins = explode(",", ARTICLE_BUTTON_PLUGINS); + global $pluginhost; - foreach ($button_plugins as $p) { - $pclass = "button_" . trim($p); - - if (class_exists($pclass)) { - $plugin = new $pclass($link); - $rv['content'] .= $plugin->render($id, $line); - } + foreach ($pluginhost->get_hooks($pluginhost::HOOK_ARTICLE_BUTTON) as $p) { + $rv['content'] .= $p->hook_article_button($line); } $rv['content'] .= "load(PLUGINS); + return true; } else { print "Unable to connect to database:" . db_last_error(); diff --git a/include/rssfuncs.php b/include/rssfuncs.php index f844aaeb9..4a5bd7680 100644 --- a/include/rssfuncs.php +++ b/include/rssfuncs.php @@ -399,23 +399,6 @@ _debug("update_rss_feed: " . count($filters) . " filters loaded."); } - $filter_plugins = array(); - - if (defined('_ARTICLE_FILTER_PLUGINS')) { - foreach (explode(",", _ARTICLE_FILTER_PLUGINS) as $p) { - $pclass = "filter_" . trim($p); - - if (class_exists($pclass)) { - $plugin = new $pclass($link); - array_push($filter_plugins, $plugin); - } - } - } - - if ($debug_enabled) { - _debug("update_rss_feed: " . count($filter_plugins) . " filter plugins loaded."); - } - if ($use_simplepie) { $iterator = $rss->get_items(); } else { @@ -782,7 +765,9 @@ } // TODO: less memory-hungry implementation - if (count($filter_plugins) > 0) { + global $pluginhost; + + foreach ($pluginhost->get_hooks($pluginhost::HOOK_ARTICLE_FILTER) as $p) { if ($debug_enabled) { _debug("update_rss_feed: applying plugin filters..."); } @@ -795,7 +780,7 @@ "author" => $entry_author); foreach ($filter_plugins as $plugin) { - $article = $plugin->filter_article($article); + $article = $plugin->hook_article_filter($article); } $entry_title = $article["title"]; diff --git a/include/sanity_config.php b/include/sanity_config.php index c0626243d..475f81f1b 100644 --- a/include/sanity_config.php +++ b/include/sanity_config.php @@ -1,3 +1,3 @@ - +$requred_defines = array( 'DB_TYPE', 'DB_HOST', 'DB_USER', 'DB_NAME', 'DB_PASS', 'MYSQL_CHARSET', 'SELF_URL_PATH', 'SINGLE_USER_MODE', 'PHP_EXECUTABLE', 'LOCK_DIRECTORY', 'CACHE_DIR', 'ICONS_DIR', 'ICONS_URL', 'AUTH_MODULES', 'AUTH_AUTO_CREATE', 'AUTH_AUTO_LOGIN', 'DEFAULT_UPDATE_METHOD', 'FORCE_ARTICLE_PURGE', 'PUBSUBHUBBUB_HUB', 'PUBSUBHUBBUB_ENABLED', 'SPHINX_ENABLED', 'SPHINX_INDEX', 'ENABLE_REGISTRATION', 'REG_NOTIFY_ADDRESS', 'REG_MAX_USERS', 'SESSION_COOKIE_LIFETIME', 'SESSION_EXPIRE_TIME', 'SESSION_CHECK_ADDRESS', 'SMTP_FROM_NAME', 'SMTP_FROM_ADDRESS', 'DIGEST_SUBJECT', 'SMTP_HOST', 'SMTP_LOGIN', 'SMTP_PASSWORD', 'CHECK_FOR_NEW_VERSION', 'ENABLE_GZIP_OUTPUT', 'FEEDBACK_URL', 'CONFIG_VERSION'); ?> -- cgit v1.2.3