/**
  * 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;
 }
Exemple #2
0
 /**
  * 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();
 }