/** * Initializes the preview and loads the needed javascripts and styles. */ private static function initPreview() { if (self::$initialized) { return; } global $tpl, $lng, $ilCtrl; // jquery include_once "./Services/jQuery/classes/class.iljQueryUtil.php"; iljQueryUtil::initjQuery(); // load qtip include_once "./Services/UIComponent/Tooltip/classes/class.ilTooltipGUI.php"; ilTooltipGUI::initLibrary(); // needed scripts & styles $tpl->addJavaScript("./Services/Preview/js/jquery.mousewheel.js"); $tpl->addJavaScript("./Services/Preview/js/ilPreview.js"); $tpl->addCss(ilUtil::getStyleSheetLocation("filesystem", "preview.css", "Services/Preview")); // create loading template $tmpl = new ilTemplate("tpl.preview.html", true, true, "Services/Preview"); $tmpl->setCurrentBlock("no_preview"); $tmpl->setVariable("TXT_NO_PREVIEW", "%%0%%"); $tmpl->parseCurrentBlock(); $initialHtml = str_replace(array("\r\n", "\r"), "\n", $tmpl->get()); $lines = explode("\n", $initialHtml); $new_lines = array(); foreach ($lines as $i => $line) { if (!empty($line)) { $new_lines[] = trim($line); } } $initialHtml = implode($new_lines); // add default texts and values include_once "./Services/JSON/classes/class.ilJsonUtil.php"; $tpl->addOnLoadCode("il.Preview.texts.preview = \"" . self::jsonSafeString($lng->txt("preview")) . "\";"); $tpl->addOnLoadCode("il.Preview.texts.showPreview = \"" . self::jsonSafeString($lng->txt("preview_show")) . "\";"); $tpl->addOnLoadCode("il.Preview.texts.close = \"" . self::jsonSafeString($lng->txt("close")) . "\";"); $tpl->addOnLoadCode("il.Preview.previewSize = " . ilPreviewSettings::getImageSize() . ";"); $tpl->addOnLoadCode("il.Preview.initialHtml = " . ilJsonUtil::encode($initialHtml) . ";"); $tpl->addOnLoadCode("il.Preview.highlightClass = \"ilContainerListItemOuterHighlight\";"); $tpl->addOnLoadCode("il.Preview.init();"); self::$initialized = true; }
/** * Creates the preview. * * @param ilObject $a_obj The object to create the preview for. * @param bool $a_force true, to force the creation of the preview; false, to create the preview only if needed. * @return bool true, if the preview was created; otherwise, false. */ public function create($a_obj, $a_force = false) { if (!ilPreviewSettings::isPreviewEnabled()) { return false; } // get renderer for preview require_once "./Services/Preview/classes/class.ilRendererFactory.php"; $renderer = ilRendererFactory::getRenderer($this); // no renderer available? if ($renderer == null) { return false; } // exists, but still pending? if ($this->getRenderStatus() == self::RENDER_STATUS_PENDING) { return false; } // not forced? check if update really needed if ($this->getRenderStatus() == self::RENDER_STATUS_CREATED && !$a_force) { // check last modified against last render date if ($a_obj->getLastUpdateDate() <= $this->getRenderDate()) { return false; } } // re-create the directory to store the previews $this->getStorage()->delete(); $this->getStorage()->create(); // let the renderer create the preview $renderer->render($this, $a_obj, true); // save to database $this->save(); return true; }
/** * Save preview settings */ public function savePreviewSettings() { global $rbacsystem, $ilErr, $ilCtrl, $tpl, $lng; $this->tabs_gui->setTabActive('preview_settings'); if (!$rbacsystem->checkAccess("write", $this->object->getRefId())) { $ilErr->raiseError($lng->txt("no_permission"), $ilErr->WARNING); } // get form $form = $this->initPreviewSettingsForm(); if ($form->checkInput()) { require_once "Services/Preview/classes/class.ilPreviewSettings.php"; ilPreviewSettings::setPreviewEnabled($_POST["enable_preview"] == 1); ilPreviewSettings::setMaximumPreviews($_POST["max_previews_per_object"]); ilUtil::sendSuccess($lng->txt('settings_saved'), true); $ilCtrl->redirect($this, "editPreviewSettings"); } else { $form->setValuesByPost(); $tpl->setContent($form->getHTML()); } }
/** * Gets the instance of the ilPreviewSettings. * @return ilPreviewSettings */ private static function getInstance() { if (self::$instance == null) { self::$instance = new ilPreviewSettings(); } return self::$instance; }
/** * Gets the maximum number of preview pictures per object. * * @return int The current value */ protected final function getMaximumNumberOfPreviews() { return ilPreviewSettings::getMaximumPreviews(); }