public function initFloatbox(OW_Event $event) { static $isInitialized = FALSE; if ($isInitialized) { return; } $params = $event->getParams(); $layout = !empty($params['layout']) && in_array($params['layout'], array('page', 'floatbox')) ? $params['layout'] : 'floatbox'; $document = OW::getDocument(); $plugin = OW::getPluginManager()->getPlugin('photo'); $document->addStyleSheet($plugin->getStaticCssUrl() . 'photo_floatbox.css'); $document->addScript(OW::getPluginManager()->getPlugin('base')->getStaticJsUrl() . 'jquery-ui.min.js'); $document->addScript($plugin->getStaticJsUrl() . 'slider.min.js', 'text/javascript', 1000000); $document->addScript($plugin->getStaticJsUrl() . 'photo.js'); $language = OW::getLanguage(); $language->addKeyForJs('photo', 'tb_edit_photo'); $language->addKeyForJs('photo', 'confirm_delete'); $language->addKeyForJs('photo', 'mark_featured'); $language->addKeyForJs('photo', 'remove_from_featured'); $language->addKeyForJs('photo', 'rating_total'); $language->addKeyForJs('photo', 'rating_your'); $language->addKeyForJs('photo', 'of'); $language->addKeyForJs('photo', 'album'); $language->addKeyForJs('base', 'rate_cmp_owner_cant_rate_error_message'); $language->addKeyForJs('base', 'rate_cmp_auth_error_message'); $language->addKeyForJs('photo', 'slideshow_interval'); $language->addKeyForJs('photo', 'pending_approval'); $viewEvent = new OW_Event(self::EVENT_GET_PHOTO_VIEW_STATUS, $params); OW::getEventManager()->trigger($viewEvent); $photoViewStatus = $viewEvent->getData(); $document->addScriptDeclarationBeforeIncludes(UTIL_JsGenerator::composeJsString(' ;window.photoViewParams = Object.defineProperties({}, { ajaxResponder:{value: {$ajaxResponder}, enumerable: true}, rateUserId: {value: {$rateUserId}, enumerable: true}, layout: {value: {$layout}, enumerable: true}, isClassic: {value: {$isClassic}, enumerable: true}, urlHome: {value: {$urlHome}, enumerable: true}, isDisabled: {value: {$isDisabled}, enumerable: true}, isEnableFullscreen: {value: {$isEnableFullscreen}, enumerable: true} });', array('ajaxResponder' => OW::getRouter()->urlFor('PHOTO_CTRL_Photo', 'ajaxResponder'), 'rateUserId' => OW::getUser()->getId(), 'layout' => $layout, 'isClassic' => (bool) OW::getConfig()->getValue('photo', 'photo_view_classic'), 'urlHome' => OW_URL_HOME, 'isDisabled' => empty($photoViewStatus['available']), 'isEnableFullscreen' => (bool) OW::getConfig()->getValue('photo', 'store_fullsize')))); $document->addOnloadScript(';window.photoView.init();'); $cmp = new PHOTO_CMP_PhotoFloatbox($layout, $photoViewStatus); $document->appendBody($cmp->render()); $isInitialized = TRUE; }
private function prepareMarkup($photoId) { $cmp = new PHOTO_CMP_PhotoFloatbox(array('photoId' => $photoId)); /* @var $document OW_AjaxDocument */ $document = OW::getDocument(); $markup = array(); $markup['id'] = (int) $photoId; $markup['html'] = $cmp->render(); $onloadScript = $document->getOnloadScript(); if (!empty($onloadScript)) { $markup['onloadScript'] = $onloadScript; } $scriptFiles = $document->getScripts(); if (!empty($scriptFiles)) { $markup['scriptFiles'] = $scriptFiles; } $css = $document->getStyleDeclarations(); if (!empty($css)) { $markup['css'] = $css; } $cssFiles = $document->getStyleSheets(); if (!empty($cssFiles)) { $markup['cssFiles'] = $cssFiles; } return $markup; }