1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
<?php
/**
* @file LanguageToggleBlockPlugin.inc.php
*
* Copyright (c) 2003-2009 John Willinsky
* Distributed under the GNU GPL v2. For full terms see the file docs/COPYING.
*
* @class LanguageToggleBlockPlugin
* @ingroup plugins_blocks_languageToggle
*
* @brief Class for language selector block plugin
*/
// $Id$
import('plugins.BlockPlugin');
class LanguageToggleBlockPlugin extends BlockPlugin {
function register($category, $path) {
$success = parent::register($category, $path);
if ($success) {
$this->addLocaleData();
}
return $success;
}
/**
* Get the supported contexts (e.g. BLOCK_CONTEXT_...) for this block.
* @return array
*/
function getSupportedContexts() {
return array(BLOCK_CONTEXT_LEFT_SIDEBAR, BLOCK_CONTEXT_RIGHT_SIDEBAR);
}
/**
* Determine whether the plugin is enabled. Overrides parent so that
* the plugin will be displayed during install.
*/
function getEnabled() {
if (!Config::getVar('general', 'installed')) return true;
return parent::getEnabled();
}
/**
* Install default settings on system install.
* @return string
*/
function getInstallSitePluginSettingsFile() {
return $this->getPluginPath() . '/settings.xml';
}
/**
* Install default settings on journal creation.
* @return string
*/
function getNewJournalPluginSettingsFile() {
return $this->getPluginPath() . '/settings.xml';
}
/**
* Get the block context. Overrides parent so that the plugin will be
* displayed during install.
* @return int
*/
function getBlockContext() {
if (!Config::getVar('general', 'installed')) return BLOCK_CONTEXT_RIGHT_SIDEBAR;
return parent::getBlockContext();
}
/**
* Determine the plugin sequence. Overrides parent so that
* the plugin will be displayed during install.
*/
function getSeq() {
if (!Config::getVar('general', 'installed')) return 2;
return parent::getSeq();
}
/**
* Get the name of this plugin. The name must be unique within
* its category.
* @return String name of plugin
*/
function getName() {
return 'LanguageToggleBlockPlugin';
}
/**
* Get the display name of this plugin.
* @return String
*/
function getDisplayName() {
return Locale::translate('plugins.block.languageToggle.displayName');
}
/**
* Get a description of the plugin.
*/
function getDescription() {
return Locale::translate('plugins.block.languageToggle.description');
}
/**
* Get the HTML contents for this block.
*/
function getContents(&$templateMgr) {
if (!defined('SESSION_DISABLE_INIT')) {
$journal =& Request::getJournal();
if (isset($journal)) {
$locales =& $journal->getSupportedLocaleNames();
} else {
$site =& Request::getSite();
$locales =& $site->getSupportedLocaleNames();
}
} else {
$locales =& Locale::getAllLocales();
$templateMgr->assign('languageToggleNoUser', true);
}
if (isset($locales) && count($locales) > 1) {
$templateMgr->assign('enableLanguageToggle', true);
$templateMgr->assign('languageToggleLocales', $locales);
}
return parent::getContents($templateMgr);
}
}
?>
|