/** * Add the tinyMCE script for editing sidebar blocks with a WYSIWYG editor */ function addTinyMCE() { $conferenceId = $this->conferenceId; $plugin =& $this->plugin; $templateMgr =& TemplateManager::getManager(); // Enable TinyMCE with specific params $additionalHeadData = $templateMgr->get_template_vars('additionalHeadData'); import('file.ConferenceFileManager'); $publicFileManager = new PublicFileManager(); $tinyMCE_script = ' <script language="javascript" type="text/javascript" src="' . Request::getBaseUrl() . '/' . TINYMCE_JS_PATH . '/tiny_mce.js"></script> <script language="javascript" type="text/javascript"> tinyMCE.init({ mode : "textareas", plugins : "style,paste", theme : "advanced", theme_advanced_buttons1 : "formatselect,fontselect,fontsizeselect", theme_advanced_buttons2 : "bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright, justifyfull,bullist,numlist,undo,redo,link,unlink", theme_advanced_buttons3 : "cut,copy,paste,pastetext,pasteword,|,cleanup,help,code,", theme_advanced_toolbar_location : "bottom", theme_advanced_toolbar_align : "left", content_css : "' . Request::getBaseUrl() . '/styles/common.css", relative_urls : false, document_base_url : "' . Request::getBaseUrl() . '/' . $publicFileManager->getConferenceFilesPath($conferenceId) . '/", extended_valid_elements : "span[*], div[*]" }); </script>'; $templateMgr->assign('additionalHeadData', $additionalHeadData . "\n" . $tinyMCE_script); }
/** * Given a scheduled conference, set up the template with all the * required variables for schedConf/view.tpl to function properly. * @param $schedConf object The scheduled conference to display * the cover page will be displayed. Otherwise table of contents * will be displayed. */ function setupTemplate(&$conference, &$schedConf) { parent::setupTemplate(); $templateMgr =& TemplateManager::getManager(); AppLocale::requireComponents(array(LOCALE_COMPONENT_OCS_MANAGER)); // Ensure the user is entitled to view the scheduled conference... if (isset($schedConf) && ($conference->getEnabled() || (Validation::isDirector($conference->getId()) || Validation::isConferenceManager($conference->getId())))) { // Assign header and content for home page $templateMgr->assign('displayPageHeaderTitle', $conference->getPageHeaderTitle(true)); $templateMgr->assign('displayPageHeaderLogo', $conference->getPageHeaderLogo(true)); $templateMgr->assign('displayPageHeaderTitleAltText', $conference->getLocalizedSetting('homeHeaderTitleImageAltText')); $templateMgr->assign('displayPageHeaderLogoAltText', $conference->getLocalizedSetting('homeHeaderLogoImageAltText')); $templateMgr->assign_by_ref('schedConf', $schedConf); $templateMgr->assign('additionalHomeContent', $conference->getLocalizedSetting('additionalHomeContent')); } else { Request::redirect(null, 'index'); } if ($styleFileName = $schedConf->getStyleFileName()) { import('file.PublicFileManager'); $publicFileManager = new PublicFileManager(); $templateMgr->addStyleSheet(Request::getBaseUrl() . '/' . $publicFileManager->getConferenceFilesPath($conference->getId()) . '/' . $styleFileName); } $this->checkRole($conference, $schedConf); $templateMgr->assign("conferenceUrl", Request::url(null, 'index')); $templateMgr->assign("conferenceId", $conference->getId()); $templateMgr->assign("schedConfId", $schedConf->getId()); $templateMgr->assign("schedConfUrl", Request::url(null, $conference->getSetting('path'))); $templateMgr->assign("conferencePath", $conference->getSetting('path')); }
/** * Uploads a conference image. * @param $settingName string setting key associated with the file * @param $locale string */ function uploadImage($settingName, $locale) { $conference =& Request::getConference(); $settingsDao = DAORegistry::getDAO('ConferenceSettingsDAO'); $faviconTypes = array('.ico', '.png', '.gif'); import('classes.file.PublicFileManager'); $fileManager = new PublicFileManager(); if ($fileManager->uploadError($settingName)) { return false; } if ($fileManager->uploadedFileExists($settingName)) { $type = $fileManager->getUploadedFileType($settingName); $extension = $fileManager->getImageExtension($type); if (!$extension) { return false; } if ($settingName == 'conferenceFavicon' && !in_array($extension, $faviconTypes)) { return false; } $uploadName = $settingName . '_' . $locale . $extension; if ($fileManager->uploadConferenceFile($conference->getId(), $settingName, $uploadName)) { // Get image dimensions $filePath = $fileManager->getConferenceFilesPath($conference->getId()); list($width, $height) = getimagesize($filePath . '/' . $uploadName); $value = $conference->getSetting($settingName); $value[$locale] = array('name' => $fileManager->getUploadedFileName($settingName), 'uploadName' => $uploadName, 'width' => $width, 'height' => $height, 'mimeType' => $fileManager->getUploadedFileType($settingName), 'dateUploaded' => Core::getCurrentDate()); $settingsDao->updateSetting($conference->getId(), $settingName, $value, 'object', true); return true; } } return false; }
/** * Delete a conference. * @param $args array first parameter is the ID of the conference to delete */ function deleteConference($args, &$request) { $this->validate(); $conferenceDao =& DAORegistry::getDAO('ConferenceDAO'); if (isset($args) && !empty($args) && !empty($args[0])) { $conferenceId = $args[0]; if ($conferenceDao->deleteConferenceById($conferenceId)) { // Delete conference file tree // FIXME move this somewhere better. import('lib.pkp.classes.file.FileManager'); $fileManager = new FileManager(); $conferencePath = Config::getVar('files', 'files_dir') . '/conferences/' . $conferenceId; $fileManager->rmtree($conferencePath); import('classes.file.PublicFileManager'); $publicFileManager = new PublicFileManager(); $publicFileManager->rmtree($publicFileManager->getConferenceFilesPath($conferenceId)); } } $request->redirect(null, null, null, 'conferences'); }
/** * Constructor. * Initialize template engine and assign basic template variables. * @param $request PKPRequest FIXME: is optional for backwards compatibility only - make mandatory */ function TemplateManager($request = null) { // FIXME: for backwards compatibility only - remove if (!isset($request)) { // FIXME: Trigger a deprecation warning when enough instances of this // call have been fixed to not clutter the error log. $request =& Registry::get('request'); } assert(is_a($request, 'PKPRequest')); parent::PKPTemplateManager($request); // Retrieve the router $router =& $request->getRouter(); assert(is_a($router, 'PKPRouter')); if (!defined('SESSION_DISABLE_INIT')) { /** * Kludge to make sure no code that tries to connect to * the database is executed (e.g., when loading * installer pages). */ $conference =& $router->getContext($request, 1); $schedConf =& $router->getContext($request, 2); $site =& $request->getSite(); $this->assign('siteTitle', $site->getLocalizedTitle()); $siteFilesDir = $request->getBaseUrl() . '/' . PublicFileManager::getSiteFilesPath(); $this->assign('sitePublicFilesDir', $siteFilesDir); $this->assign('homeContext', array('conference' => 'index', 'schedConf' => 'index')); $siteStyleFilename = PublicFileManager::getSiteFilesPath() . '/' . $site->getSiteStyleFilename(); if (file_exists($siteStyleFilename)) { $this->addStyleSheet($request->getBaseUrl() . '/' . $siteStyleFilename); } if (isset($conference)) { $schedConfDao =& DAORegistry::getDAO('SchedConfDAO'); $archivedSchedConfsExist = $schedConfDao->archivedSchedConfsExist($conference->getId()); $currentSchedConfsExist = $schedConfDao->currentSchedConfsExist($conference->getId()); $this->assign('archivedSchedConfsExist', $archivedSchedConfsExist); $this->assign('currentSchedConfsExist', $currentSchedConfsExist); $this->assign_by_ref('currentConference', $conference); $conferenceTitle = $conference->getConferenceTitle(); $this->assign('numPageLinks', $conference->getSetting('numPageLinks')); $this->assign('itemsPerPage', $conference->getSetting('itemsPerPage')); // Load and apply theme plugin, if chosen $themePluginPath = $conference->getSetting('conferenceTheme'); if (!empty($themePluginPath)) { // Load and activate the theme $themePlugin =& PluginRegistry::loadPlugin('themes', $themePluginPath); if ($themePlugin) { $themePlugin->activate($this); } } // Assign additional navigation bar items $navMenuItems =& $conference->getLocalizedSetting('navItems'); $this->assign_by_ref('navMenuItems', $navMenuItems); $this->assign('publicFilesDir', $request->getBaseUrl() . '/' . PublicFileManager::getConferenceFilesPath($conference->getId())); $this->assign('displayPageHeaderTitle', $conference->getPageHeaderTitle()); $this->assign('displayPageHeaderLogo', $conference->getPageHeaderLogo()); $this->assign('displayPageHeaderTitleAltText', $conference->getLocalizedSetting('pageHeaderTitleImageAltText')); $this->assign('displayPageHeaderLogoAltText', $conference->getLocalizedSetting('pageHeaderLogoImageAltText')); $this->assign('displayFavicon', $conference->getLocalizedFavicon()); $this->assign('faviconDir', $request->getBaseUrl() . '/' . PublicFileManager::getConferenceFilesPath($conference->getId())); $this->assign('alternatePageHeader', $conference->getLocalizedSetting('conferencePageHeader')); $this->assign('metaSearchDescription', $conference->getLocalizedSetting('searchDescription')); $this->assign('metaSearchKeywords', $conference->getLocalizedSetting('searchKeywords')); $this->assign('metaCustomHeaders', $conference->getLocalizedSetting('customHeaders')); $this->assign('enableAnnouncements', $conference->getSetting('enableAnnouncements')); $this->assign('pageFooter', $conference->getLocalizedSetting('conferencePageFooter')); $this->assign('displayCreativeCommons', $conference->getSetting('postCreativeCommons')); if (isset($schedConf)) { // This will be needed if inheriting public conference files from the scheduled conference. $this->assign('publicSchedConfFilesDir', $request->getBaseUrl() . '/' . PublicFileManager::getSchedConfFilesPath($schedConf->getId())); $this->assign('primaryLocale', $conference->getSetting('primaryLocale')); $this->assign('alternateLocales', $conference->getPrimaryLocale()); $this->assign_by_ref('currentSchedConf', $schedConf); // Assign common sched conf vars: $currentTime = time(); $submissionsCloseDate = $schedConf->getSetting('submissionsCloseDate'); $this->assign('submissionsCloseDate', $submissionsCloseDate); $this->assign('schedConfPostTimeline', $schedConf->getSetting('postTimeline')); $this->assign('schedConfPostOverview', $schedConf->getSetting('postOverview')); $this->assign('schedConfPostTrackPolicies', $schedConf->getSetting('postTrackPolicies')); $this->assign('schedConfPostPresentations', $schedConf->getSetting('postPresentations')); $this->assign('schedConfPostAccommodation', $schedConf->getSetting('postAccommodation')); $this->assign('schedConfPostSupporters', $schedConf->getSetting('postSupporters')); $this->assign('schedConfPostPayment', $schedConf->getSetting('postPayment')); // CFP displayed $showCFPDate = $schedConf->getSetting('showCFPDate'); $postCFP = $schedConf->getSetting('postCFP'); if ($postCFP && $showCFPDate && $submissionsCloseDate && $currentTime > $showCFPDate && $currentTime < $submissionsCloseDate) { $this->assign('schedConfShowCFP', true); } // Schedule displayed $postScheduleDate = $schedConf->getSetting('postScheduleDate'); if ($postScheduleDate && $currentTime > $postScheduleDate && $schedConf->getSetting('postSchedule')) { $this->assign('schedConfPostSchedule', true); } // Program if ($schedConf->getSetting('postProgram') && ($schedConf->getSetting('program') || $schedConf->getSetting('programFile'))) { $this->assign('schedConfShowProgram', true); } // Submissions open $submissionsOpenDate = $schedConf->getSetting('submissionsOpenDate'); $postSubmission = $schedConf->getSetting('postProposalSubmission'); $this->assign('submissionsOpenDate', $submissionsOpenDate); import('classes.payment.ocs.OCSPaymentManager'); $paymentManager =& OCSPaymentManager::getManager(); $this->assign('schedConfPaymentsEnabled', $paymentManager->isConfigured()); } // Assign conference stylesheet and footer $conferenceStyleSheet = $conference->getSetting('conferenceStyleSheet'); if ($conferenceStyleSheet) { $this->addStyleSheet($request->getBaseUrl() . '/' . PublicFileManager::getConferenceFilesPath($conference->getId()) . '/' . $conferenceStyleSheet['uploadName']); } // Assign scheduled conference stylesheet and footer (after conference stylesheet!) if ($schedConf) { $schedConfStyleSheet = $schedConf->getSetting('schedConfStyleSheet'); if ($schedConfStyleSheet) { $this->addStyleSheet($request->getBaseUrl() . '/' . PublicFileManager::getSchedConfFilesPath($schedConf->getId()) . '/' . $schedConfStyleSheet['uploadName']); } } } else { // Not within conference context // Add the site-wide logo, if set for this locale or the primary locale $displayPageHeaderTitle = $site->getLocalizedPageHeaderTitle(); $this->assign('displayPageHeaderTitle', $displayPageHeaderTitle); if (isset($displayPageHeaderTitle['altText'])) { $this->assign('displayPageHeaderTitleAltText', $displayPageHeaderTitle['altText']); } $this->assign('publicFilesDir', $request->getBaseUrl() . '/' . PublicFileManager::getSiteFilesPath()); } // Add java script for notifications $user =& $request->getUser(); if ($user) { $this->addJavaScript('lib/pkp/js/lib/jquery/plugins/jquery.pnotify.js'); } } }
function addTinyMCE() { $conferenceId = $this->conferenceId; $plugin =& $this->plugin; $templateMgr =& TemplateManager::getManager(); // Enable TinyMCE with specific params $additionalHeadData = $templateMgr->get_template_vars('additionalHeadData'); import('classes.file.ConferenceFileManager'); $publicFileManager = new PublicFileManager(); $tinyMCE_script = ' <script language="javascript" type="text/javascript" src="' . Request::getBaseUrl() . '/' . TINYMCE_JS_PATH . '/tiny_mce.js"></script> <script language="javascript" type="text/javascript"> tinyMCE.init({ mode : "textareas", plugins : "safari,spellchecker,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,pagebreak,", theme_advanced_buttons1_add : "fontsizeselect", theme_advanced_buttons2_add : "separator,preview,separator,forecolor,backcolor", theme_advanced_buttons2_add_before: "search,replace,separator", theme_advanced_buttons3_add_before : "tablecontrols,separator", theme_advanced_buttons3_add : "media,separator", theme_advanced_buttons4 : "cut,copy,paste,pastetext,pasteword,separator,styleprops,|,spellchecker,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,print,separator", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "left", theme_advanced_statusbar_location : "bottom", relative_urls : false, document_base_url : "' . Request::getBaseUrl() . '/' . $publicFileManager->getConferenceFilesPath($conferenceId) . '/", theme : "advanced", theme_advanced_layout_manager : "SimpleLayout", extended_valid_elements : "span[*], div[*]", spellchecker_languages : "+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv" }); </script>'; $templateMgr->assign('additionalHeadData', $additionalHeadData . "\n" . $tinyMCE_script); }
/** * Constructor. * Initialize template engine and assign basic template variables. */ function TemplateManager() { parent::PKPTemplateManager(); if (!defined('SESSION_DISABLE_INIT')) { /** * Kludge to make sure no code that tries to connect to * the database is executed (e.g., when loading * installer pages). */ $conference =& Request::getConference(); $schedConf =& Request::getSchedConf(); $site =& Request::getSite(); if (isset($schedConf)) { $this->assign('schedConfAcronym', $schedConf->getLocalizedSetting('acronym')); } $this->assign('siteTitle', $site->getLocalizedTitle()); $siteFilesDir = Request::getBaseUrl() . '/' . PublicFileManager::getSiteFilesPath(); $this->assign('sitePublicFilesDir', $siteFilesDir); $this->assign('homeContext', array('conference' => 'index', 'schedConf' => 'index')); $siteStyleFilename = PublicFileManager::getSiteFilesPath() . '/' . $site->getSiteStyleFilename(); if (file_exists($siteStyleFilename)) { $this->addStyleSheet(Request::getBaseUrl() . '/' . $siteStyleFilename); } if (isset($conference)) { $schedConfDao =& DAORegistry::getDAO('SchedConfDAO'); $archivedSchedConfsExist = $schedConfDao->archivedSchedConfsExist($conference->getId()); $currentSchedConfsExist = $schedConfDao->currentSchedConfsExist($conference->getId()); $this->assign('archivedSchedConfsExist', $archivedSchedConfsExist); $this->assign('currentSchedConfsExist', $currentSchedConfsExist); $this->assign_by_ref('currentConference', $conference); $conferenceTitle = $conference->getConferenceTitle(); $this->assign('numPageLinks', $conference->getSetting('numPageLinks')); $this->assign('itemsPerPage', $conference->getSetting('itemsPerPage')); // Load and apply theme plugin, if chosen $themePluginPath = $conference->getSetting('conferenceTheme'); if (!empty($themePluginPath)) { // Load and activate the theme $themePlugin =& PluginRegistry::loadPlugin('themes', $themePluginPath); if ($themePlugin) { $themePlugin->activate($this); } } // Assign additional navigation bar items $navMenuItems =& $conference->getLocalizedSetting('navItems'); $this->assign_by_ref('navMenuItems', $navMenuItems); $this->assign('publicFilesDir', Request::getBaseUrl() . '/' . PublicFileManager::getConferenceFilesPath($conference->getId())); $this->assign('displayPageHeaderTitle', $conference->getPageHeaderTitle()); $this->assign('displayPageHeaderSubTitle', $conference->getLocalizedSetting('homeHeaderSubTitle')); $this->assign('displayPageHeaderLogo', $conference->getPageHeaderLogo()); $this->assign('displayPageHeaderTitleAltText', $conference->getLocalizedSetting('pageHeaderTitleImageAltText')); $this->assign('displayPageHeaderLogoAltText', $conference->getLocalizedSetting('pageHeaderLogoImageAltText')); $this->assign('displayFavicon', $conference->getLocalizedFavicon()); $this->assign('faviconDir', Request::getBaseUrl() . '/' . PublicFileManager::getConferenceFilesPath($conference->getId())); $this->assign('alternatePageHeader', $conference->getLocalizedSetting('conferencePageHeader')); $this->assign('metaSearchDescription', $conference->getLocalizedSetting('searchDescription')); $this->assign('metaSearchKeywords', $conference->getLocalizedSetting('searchKeywords')); $this->assign('metaCustomHeaders', $conference->getLocalizedSetting('customHeaders')); $this->assign('enableAnnouncements', $conference->getSetting('enableAnnouncements')); $this->assign('pageFooter', $conference->getLocalizedSetting('conferencePageFooter')); $this->assign('displayCreativeCommons', $conference->getSetting('postCreativeCommons')); $this->assign('analyticsTrackingID', $conference->getSetting('analyticsTrackingID')); $this->assign('currentConferenceHome', Request::url(null, $conference->getSetting("path"), 'index')); if (isset($schedConf)) { // This will be needed if inheriting public conference files from the scheduled conference. $this->assign('publicSchedConfFilesDir', Request::getBaseUrl() . '/' . PublicFileManager::getSchedConfFilesPath($schedConf->getId())); $this->assign('primaryLocale', $conference->getSetting('primaryLocale')); $this->assign('alternateLocales', $conference->getPrimaryLocale()); $this->assign_by_ref('currentSchedConf', $schedConf); // Assign common sched conf vars: $currentTime = time(); $submissionsCloseDate = $schedConf->getSetting('submissionsCloseDate'); $this->assign('submissionsCloseDate', $submissionsCloseDate); // ------------------------------------ $navMenuItemOrder = array(); $navMenuItemNavOrder = array(); $this->assign('schedConfPostOverview', $schedConf->getSetting('postOverview')); $this->assign('schedConfPostOverviewOrder', $schedConf->getSetting('postOverviewOrder')); $this->_addNavMenuItemOrder($schedConf, $navMenuItemOrder, 'Overview'); $this->_addNavMenuItemNavOrder($schedConf, $navMenuItemNavOrder, 'Overview'); $this->assign('schedConfPostAnnouncement', $schedConf->getSetting('postAnnouncement')); $this->assign('schedConfPostAnnouncementOrder', $schedConf->getSetting('postAnnouncementOrder')); $this->_addNavMenuItemOrder($schedConf, $navMenuItemOrder, 'Announcement'); $this->_addNavMenuItemNavOrder($schedConf, $navMenuItemNavOrder, 'Announcement'); $this->assign('schedConfPostTimeline', $schedConf->getSetting('postTimeline')); $this->assign('schedConfPostTimelineOrder', $schedConf->getSetting('postTimelineOrder')); $this->_addNavMenuItemOrder($schedConf, $navMenuItemOrder, 'Timeline'); $this->_addNavMenuItemNavOrder($schedConf, $navMenuItemNavOrder, 'Timeline'); // CFP displayed $showCFPDate = $schedConf->getSetting('showCFPDate'); $postCFP = $schedConf->getSetting('postCFP'); if ($postCFP && $showCFPDate && $submissionsCloseDate && $currentTime > $showCFPDate && $currentTime < $submissionsCloseDate) { $this->assign('schedConfShowCFP', true); $this->assign('schedConfShowCFPOrder', $schedConf->getSetting('postCFPOrder')); $this->_addNavMenuItemOrder($schedConf, $navMenuItemOrder, 'CFP'); $this->_addNavMenuItemNavOrder($schedConf, $navMenuItemNavOrder, 'CFP'); } $this->assign('schedConfPostPayment', $schedConf->getSetting('postPayment')); $this->assign('schedConfPostPaymentOrder', $schedConf->getSetting('postPaymentOrder')); $this->_addNavMenuItemOrder($schedConf, $navMenuItemOrder, 'Payment'); $this->_addNavMenuItemNavOrder($schedConf, $navMenuItemNavOrder, 'Payment'); $this->assign('schedConfPostTrackPolicies', $schedConf->getSetting('postTrackPolicies')); $this->assign('schedConfPostTrackPoliciesOrder', $schedConf->getSetting('postTrackPoliciesOrder')); $this->_addNavMenuItemOrder($schedConf, $navMenuItemOrder, 'TrackPolicies'); $this->_addNavMenuItemNavOrder($schedConf, $navMenuItemNavOrder, 'TrackPolicies'); $this->assign('schedConfPostPresentations', $schedConf->getSetting('postPresentations')); $this->assign('schedConfPostPresentationsOrder', $schedConf->getSetting('postPresentationsOrder')); $this->_addNavMenuItemOrder($schedConf, $navMenuItemOrder, 'Presentations'); $this->_addNavMenuItemOrder($schedConf, $navMenuItemOrder, 'Presentations'); $this->assign('schedConfPostLocation', $schedConf->getSetting('postLocation')); $this->assign('schedConfPostLocationOrder', $schedConf->getSetting('postLocationOrder')); $this->_addNavMenuItemOrder($schedConf, $navMenuItemOrder, 'Location'); $this->_addNavMenuItemNavOrder($schedConf, $navMenuItemNavOrder, 'Location'); $this->assign('schedConfPostAccommodation', $schedConf->getSetting('postAccommodation')); $this->assign('schedConfPostAccommodationOrder', $schedConf->getSetting('postAccommodationOrder')); $this->_addNavMenuItemOrder($schedConf, $navMenuItemOrder, 'Accommodation'); $this->_addNavMenuItemNavOrder($schedConf, $navMenuItemNavOrder, 'Accommodation'); $this->assign('schedConfPostSupporters', $schedConf->getSetting('postSupporters')); $this->assign('schedConfPostSupportersOrder', $schedConf->getSetting('postSupportersOrder')); $this->_addNavMenuItemOrder($schedConf, $navMenuItemOrder, 'Supporters'); $this->_addNavMenuItemNavOrder($schedConf, $navMenuItemNavOrder, 'Supporters'); // Schedule displayed $postScheduleDate = $schedConf->getSetting('postScheduleDate'); if ($postScheduleDate && $currentTime > $postScheduleDate && $schedConf->getSetting('postSchedule')) { $this->assign('schedConfPostSchedule', true); } // Program //if ($schedConf->getSetting('postProgram') && ($schedConf->getSetting('program') || $schedConf->getSetting('programFile'))) { $this->assign('schedConfShowProgram', true); $this->assign('schedConfShowProgramOrder', $schedConf->getSetting('postProgramOrder')); $this->_addNavMenuItemOrder($schedConf, $navMenuItemOrder, 'Program'); $this->_addNavMenuItemNavOrder($schedConf, $navMenuItemNavOrder, 'Program'); //} // Contact & Contact Email if ($schedConf->getSetting('postContact') && ($schedConf->getSetting('postContact') || $schedConf->getSetting('postContact'))) { $this->assign('schedConfShowContact', true); $this->assign('schedConfShowContactOrder', $schedConf->getSetting('postContactOrder')); $this->_addNavMenuItemOrder($schedConf, $navMenuItemOrder, 'Contact'); $this->_addNavMenuItemNavOrder($schedConf, $navMenuItemNavOrder, 'Contact'); } if ($schedConf->getSetting('contactEmail') && ($schedConf->getSetting('contactEmail') || $schedConf->getSetting('contactEmail'))) { $this->assign('schedConfContactEmail', $schedConf->getSetting('contactEmail')); } // Submissions open $submissionsOpenDate = $schedConf->getSetting('submissionsOpenDate'); $postSubmission = $schedConf->getSetting('postProposalSubmission'); $this->assign('submissionsOpenDate', $submissionsOpenDate); $this->assign('schedConfShowProposalSubmissionOrder', $schedConf->getSetting('postProposalSubmissionOrder')); $this->_addNavMenuItemOrder($schedConf, $navMenuItemOrder, 'ProposalSubmission'); $this->_addNavMenuItemNavOrder($schedConf, $navMenuItemNavOrder, 'ProposalSubmission'); import('payment.ocs.OCSPaymentManager'); $paymentManager =& OCSPaymentManager::getManager(); $this->assign('schedConfPaymentsEnabled', $paymentManager->isConfigured()); // 再加入 $navMenuItems foreach ($navMenuItems as $navItemId => $navItem) { $navItemOrder = 90; if (isset($navItem["order"]) && trim($navItem["order"]) !== "") { $navItemOrder = trim($navItem["order"]); } if (isset($navMenuItemOrder[$navItemOrder]) === FALSE || is_array($navMenuItemOrder[$navItemOrder]) === FALSE) { $navMenuItemOrder[$navItemOrder] = array(); } $navMenuItemOrder[$navItemOrder][] = 'schedConfNavItem' . $navItemId; if (isset($navItem["navOrder"]) && trim($navItem["navOrder"]) !== "" && trim($navItem["navOrder"]) !== "0") { $navItemOrder = trim($navItem["order"]); if (isset($navMenuItemNavOrder[$navItemOrder]) === FALSE || is_array($navMenuItemNavOrder[$navItemOrder]) === FALSE) { $navMenuItemNavOrder[$navItemOrder] = array(); } $navMenuItemNavOrder[$navItemOrder][] = 'schedConfNavItem' . $navItemId; } } ksort($navMenuItemOrder); $this->assign('schedConfNavMenuItemOrder', $navMenuItemOrder); ksort($navMenuItemNavOrder); $this->assign('schedConfNavMenuItemNavOrder', $navMenuItemNavOrder); //print_r($navMenuItemOrder); } //if (isset($schedConf)) { // Assign conference stylesheet and footer $conferenceStyleSheet = $conference->getSetting('conferenceStyleSheet'); if ($conferenceStyleSheet) { $this->addStyleSheet(Request::getBaseUrl() . '/' . PublicFileManager::getConferenceFilesPath($conference->getId()) . '/' . $conferenceStyleSheet['uploadName']); } // Assign scheduled conference stylesheet and footer (after conference stylesheet!) if ($schedConf) { $schedConfStyleSheet = $schedConf->getSetting('schedConfStyleSheet'); if ($schedConfStyleSheet) { $this->addStyleSheet(Request::getBaseUrl() . '/' . PublicFileManager::getSchedConfFilesPath($schedConf->getId()) . '/' . $schedConfStyleSheet['uploadName']); } } } else { // Not within conference context // Add the site-wide logo, if set for this locale or the primary locale $displayPageHeaderTitle = $site->getLocalizedPageHeaderTitle(); $this->assign('displayPageHeaderTitle', $displayPageHeaderTitle); if (isset($displayPageHeaderTitle['altText'])) { $this->assign('displayPageHeaderTitleAltText', $displayPageHeaderTitle['altText']); } $this->assign('publicFilesDir', Request::getBaseUrl() . '/' . PublicFileManager::getSiteFilesPath()); } } }
/** * Delete a conference. * @param $args array * @param $request PKPRequest * @return string Serialized JSON object */ function deleteContext($args, &$request) { // Identify the current context. $context =& $request->getContext(); // Identify the conference Id. $conferenceId = $request->getUserVar('rowId'); $conferenceDao = DAORegistry::getDAO('ConferenceDAO'); $conference =& $conferenceDao->getById($conferenceId); if ($conference) { $conferenceDao->deleteById($conferenceId); // Delete conference file tree // FIXME move this somewhere better. import('lib.pkp.classes.file.FileManager'); $fileManager = new FileManager($conferenceId); $conferencePath = Config::getVar('files', 'files_dir') . '/conferences/' . $conferenceId; $fileManager->rmtree($conferencePath); import('classes.file.PublicFileManager'); $publicFileManager = new PublicFileManager(); $publicFileManager->rmtree($publicFileManager->getConferenceFilesPath($conferenceId)); return DAO::getDataChangedEvent($conferenceId); } $json = new JSONMessage(false); return $json->getString(); }