00001 <?php
00015 import('plugins.BlockPlugin');
00016
00017 class CustomBlockPlugin extends BlockPlugin {
00018 var $blockName;
00019
00020 function CustomBlockPlugin($blockName) {
00021 $this->blockName = $blockName;
00022 return parent::BlockPlugin();
00023 }
00024
00029 function &getManagerPlugin() {
00030 $plugin =& PluginRegistry::getPlugin('generic', 'CustomBlockManagerPlugin');
00031 return $plugin;
00032 }
00037 function getPluginPath() {
00038 $plugin =& $this->getManagerPlugin();
00039 return $plugin->getPluginPath();
00040 }
00041
00046 function getTemplatePath() {
00047 $plugin =& $this->getManagerPlugin();
00048 return $plugin->getTemplatePath();
00049 }
00050
00055 function getEnabled() {
00056 if (!Config::getVar('general', 'installed')) return true;
00057 return parent::getEnabled();
00058 }
00059
00060 function getManagementVerbs() {
00061 $verbs = parent::getManagementVerbs();
00062 if ($this->getEnabled()) {
00063 $verbs[] = array(
00064 'disable',
00065 __('manager.plugins.disable')
00066 );
00067 $verbs[] = array(
00068 'edit',
00069 __('plugins.generic.customBlock.edit')
00070 );
00071 } else {
00072 $verbs[] = array(
00073 'enable',
00074 __('manager.plugins.enable')
00075 );
00076 }
00077 return $verbs;
00078 }
00079
00083 function manage($verb, $args) {
00084 $returner = true;
00085
00086 $templateMgr =& TemplateManager::getManager();
00087 $templateMgr->register_function('plugin_url', array(&$this, 'smartyPluginUrl'));
00088
00089 $pageCrumbs = array(
00090 array(
00091 Request::url(null, 'user'),
00092 'navigation.user'
00093 ),
00094 array(
00095 Request::url(null, 'manager'),
00096 'user.role.manager'
00097 )
00098 );
00099
00100 $conference =& Request::getConference();
00101
00102 $this->import('CustomBlockEditForm');
00103 $form = new CustomBlockEditForm($this, $conference->getId());
00104
00105 switch ($verb) {
00106 case 'enable':
00107 $this->setEnabled(true);
00108 break;
00109 case 'disable':
00110 $this->setEnabled(false);
00111 break;
00112 case 'edit':
00113 $pageCrumbs[] = array(
00114 Request::url(null, null, 'manager', 'plugins'),
00115 __('manager.plugins'),
00116 true
00117 );
00118
00119 $templateMgr->assign('pageHierarchy', $pageCrumbs);
00120 $form->initData();
00121 $form->display();
00122 exit;
00123
00124 case 'save':
00125 $form->readInputData();
00126 if ($form->validate()) {
00127 $form->save();
00128 $pageCrumbs[] = array(Request::url(null, 'manager', 'plugins'), 'manager.plugins');
00129 $templateMgr->assign(array(
00130 'currentUrl' => Request::url(null, null, null, array($this->getCategory(), $this->getName(), 'edit')),
00131 'pageTitleTranslated' => $this->getDisplayName(),
00132 'pageHierarchy' => $pageCrumbs,
00133 'message' => 'plugins.generic.customBlock.saved',
00134 'backLink' => Request::url(null, null, 'manager', 'plugins'),
00135 'backLinkLabel' => 'common.continue'
00136 ));
00137 $templateMgr->display('common/message.tpl');
00138 exit;
00139 } else {
00140 $form->addTinyMCE();
00141 $form->readInputData();
00142 $form->display();
00143 exit;
00144 }
00145 }
00146 $returner = false;
00147 }
00148
00154 function getContents(&$templateMgr) {
00155 $conference =& Request::getConference();
00156 if (!$conference) return '';
00157
00158 $templateMgr->assign('customBlockContent', $this->getSetting($conference->getId(), 0, 'blockContent'));
00159 return parent::getContents($templateMgr);
00160
00161 }
00162
00168 function getBlockContext() {
00169 if (!Config::getVar('general', 'installed')) return BLOCK_CONTEXT_RIGHT_SIDEBAR;
00170 return parent::getBlockContext();
00171 }
00172
00177 function getSupportedContexts() {
00178 return array(BLOCK_CONTEXT_LEFT_SIDEBAR, BLOCK_CONTEXT_RIGHT_SIDEBAR);
00179 }
00180
00185 function getSeq() {
00186 if (!Config::getVar('general', 'installed')) return 1;
00187 return parent::getSeq();
00188 }
00189
00195 function getName() {
00196 return $this->blockName . 'CustomBlockPlugin';
00197 }
00198
00203 function getDisplayName() {
00204 return $this->blockName . ' ' . __('plugins.generic.customBlock.nameSuffix');
00205 }
00206
00210 function getDescription() {
00211 return __('plugins.generic.customBlock.description');
00212 }
00213 }
00214
00215 ?>