From: Brion Vibber Date: Wed, 1 Dec 2004 08:51:06 +0000 (+0000) Subject: Moved Evan's sample hook-using extension from phase3 to extensions module. X-Git-Tag: 1.5.0alpha1~1182 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/password.php?a=commitdiff_plain;h=d67bf9b7b3b8a985c58d92140e68e40715b6d257;p=lhc%2Fweb%2Fwiklou.git Moved Evan's sample hook-using extension from phase3 to extensions module. The extensions directory in the phase3 distribution is meant to be empty. --- diff --git a/extensions/Syslog.php b/extensions/Syslog.php deleted file mode 100644 index d499bb9550..0000000000 --- a/extensions/Syslog.php +++ /dev/null @@ -1,136 +0,0 @@ - - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * @author Evan Prodromou - * @package MediaWiki - * @subpackage Extensions - */ - -if (defined('MEDIAWIKI')) { - - # Setup globals - - if (!isset($wgSyslogIdentity)) { - $wgSyslogIdentity = $wgDBname; - } - if (!isset($wgSyslogFacility)) { - $wgSyslogFacility = LOG_USER; - } - - # Hook for article protection - - function syslogArticleProtect(&$article, &$user, $protect, &$reason, &$moveonly) { - $title = $article->mTitle; - syslog(LOG_NOTICE, "User '" . $user->getName() . "' " . - (($protect) ? "protected" : "unprotected") . " article '" . - $title->getPrefixedText() . - "' for '" . $reason . "' " . (($moveonly) ? "(moves only)" : "") ); - return true; - } - - # Hook for article deletion - - function syslogArticleDelete(&$article, &$user, &$reason) { - $title = $article->mTitle; - syslog(LOG_NOTICE, "User '" . $user->getName() . "' deleted '" . - $title->getPrefixedText() . - "' for '" . $reason . "' "); - return true; - } - - # Hook for article save - - function syslogArticleSave(&$article, &$user, &$text, $summary, - $isminor, $iswatch, $section) - { - $title = $article->mTitle; - syslog(LOG_NOTICE, "User '" . $user->getName() . "' saved '" . - $title->getPrefixedText() . - "' with comment '" . $summary . "' "); - return true; - } - - # Hook for IP & user blocks - - function syslogBlockIp(&$block, &$user) { - syslog(LOG_NOTICE, "User '" . $user->getName() . - "' blocked '" . (($block->mUser) ? $block->mUser : $block->mAddress) . - "' for '" . $block->mReason . "' until '" . $block->mExpiry . "'"); - return true; - } - - function syslogEmailUser(&$to, &$from, &$subject, &$text) { - syslog(LOG_INFO, "Email sent from '$from' to '$to' with subject '$subject'"); - } - - # Hook for unwatch - - function syslogUnwatch(&$user, &$article) { - syslog(LOG_INFO, "User '" . $user->getName() . "' stopped watching '" . - $article->mTitle->getPrefixedText() . "'"); - } - - # Hook for login - - function syslogUserLogin(&$user) { - syslog(LOG_INFO, "User '" . $user->getName() . "' logged in"); - return true; - } - - # Hook for logout - - function syslogUserLogout(&$user) { - syslog(LOG_INFO, "User '" . $user->getName() . "' logged out"); - return true; - } - - # Hook for watch - - function syslogWatch(&$user, &$article) { - syslog(LOG_INFO, "User '" . $user->getName() . "' started watching '" . - $article->mTitle->getPrefixedText() . "'"); - } - - # Setup -- called once environment is configured - - function setupSyslog() { - - global $wgSyslogIdentity, $wgSyslogFacility, $_syslogId; - global $wgHooks; - - openlog($wgSyslogIdentity, LOG_ODELAY | LOG_PID, $wgSyslogFacility); - - $wgHooks['UserLoginComplete'][] = 'syslogUserLogin'; - $wgHooks['UserLogout'][] = 'syslogUserLogout'; - $wgHooks['BlockIpComplete'][] = 'syslogBlockIp'; - $wgHooks['ArticleProtectComplete'][] = 'syslogArticleProtect'; - $wgHooks['ArticleDeleteComplete'][] = 'syslogArticleDelete'; - $wgHooks['ArticleSaveComplete'][] = 'syslogArticleSave'; - $wgHooks['EmailUserComplete'][] = 'syslogEmailUser'; - $wgHooks['WatchArticleComplete'][] = 'syslogWatch'; - $wgHooks['UnwatchArticleComplete'][] = 'syslogUnwatch'; - - return true; - } - - # Add to global list of extensions - - $wgExtensionFunctions[] = setupSyslog; -} - -?> \ No newline at end of file