00001 <?php
00002
00015
00016
00017
00018 import('classes.plugins.GenericPlugin');
00019
00020 class TranslatorPlugin extends GenericPlugin {
00021 function register($category, $path) {
00022 if (parent::register($category, $path)) {
00023 $this->addLocaleData();
00024 if ($this->getSetting(0, 'enabled')) {
00025 $this->addHelpData();
00026 HookRegistry::register ('LoadHandler', array(&$this, 'handleRequest'));
00027 }
00028 return true;
00029 }
00030 return false;
00031 }
00032
00033 function handleRequest($hookName, $args) {
00034 $page =& $args[0];
00035 $op =& $args[1];
00036 $sourceFile =& $args[2];
00037
00038 if ($page === 'translate') {
00039 $this->import('TranslatorHandler');
00040 Registry::set('plugin', $this);
00041 define('HANDLER_CLASS', 'TranslatorHandler');
00042 return true;
00043 }
00044
00045 return false;
00046 }
00047
00048 function getName() {
00049 return 'TranslatorPlugin';
00050 }
00051
00052 function getDisplayName() {
00053 return Locale::translate('plugins.generic.translator.name');
00054 }
00055
00056 function getDescription() {
00057 return Locale::translate('plugins.generic.translator.description');
00058 }
00059
00060 function getManagementVerbs() {
00061 $isEnabled = $this->getSetting(0, 'enabled');
00062
00063 $verbs[] = array(
00064 ($isEnabled?'disable':'enable'),
00065 Locale::translate($isEnabled?'manager.plugins.disable':'manager.plugins.enable')
00066 );
00067
00068 if ($isEnabled) $verbs[] = array(
00069 'translate',
00070 Locale::translate('plugins.generic.translator.translate')
00071 );
00072
00073 return $verbs;
00074 }
00075
00076 function manage($verb, $args) {
00077 if (!Validation::isSiteAdmin()) return false;
00078
00079 switch ($verb) {
00080 case 'enable':
00081 $this->updateSetting(0, 'enabled', true);
00082 break;
00083 case 'disable':
00084 $this->updateSetting(0, 'enabled', false);
00085 break;
00086 case 'translate':
00087 Request::redirect('index', 'translate');
00088 break;
00089 }
00090 return false;
00091 }
00092
00093 function isSitePlugin() {
00094 return true;
00095 }
00096 }
00097
00098 ?>