Пример #1
0
 /**
  * Loads the available preview renderers. That is built in renderers and plugins.
  * 
  * @return array The available renderers.
  */
 private static function loadAvailableRenderers()
 {
     // already loaded?
     if (self::$renderers != null) {
         return;
     }
     $r = array();
     // get registered and active plugins
     global $ilPluginAdmin;
     $pl_names = $ilPluginAdmin->getActivePluginsForSlot(IL_COMP_SERVICE, "Preview", "pvre");
     foreach ($pl_names as $pl) {
         $plugin = ilPluginAdmin::getPluginObject(IL_COMP_SERVICE, "Preview", "pvre", $pl);
         $r[] = $plugin->getRendererClassInstance();
     }
     // add default renderers
     include_once "./Services/Preview/classes/class.ilImageMagickRenderer.php";
     $r[] = new ilImageMagickRenderer();
     include_once "./Services/Preview/classes/class.ilGhostscriptRenderer.php";
     if (ilGhostscriptRenderer::isGhostscriptInstalled()) {
         $r[] = new ilGhostscriptRenderer();
     }
     self::$renderers = $r;
 }
Пример #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;
 }
 /**
  * Edit preview settings.
  */
 public function editPreviewSettings()
 {
     global $rbacsystem, $ilErr, $tpl, $lng;
     $this->tabs_gui->setTabActive('preview_settings');
     if (!$rbacsystem->checkAccess("visible,read", $this->object->getRefId())) {
         $ilErr->raiseError($lng->txt("no_permission"), $ilErr->WARNING);
     }
     // set warning if ghostscript not installed
     if (!is_file(PATH_TO_GHOSTSCRIPT)) {
         ilUtil::sendInfo($lng->txt("ghostscript_not_configured"));
     }
     // get form
     $form = $this->initPreviewSettingsForm();
     // set current values
     require_once "Services/Preview/classes/class.ilPreviewSettings.php";
     $val = array();
     $val["enable_preview"] = ilPreviewSettings::isPreviewEnabled();
     $val["max_previews_per_object"] = ilPreviewSettings::getMaximumPreviews();
     $form->setValuesByArray($val);
     $html = $form->getHTML();
     // build renderer HTML
     require_once "Services/Preview/classes/class.ilRendererFactory.php";
     require_once "Services/Preview/classes/class.ilRendererTableGUI.php";
     $renderers = ilRendererFactory::getRenderers();
     $table = new ilRendererTableGUI($this, array("editPreviewSettings", "view"));
     $table->setMaxCount(sizeof($renderers));
     $table->setData($renderers);
     $html .= "<br/>" . $table->getHTML();
     // set content
     $tpl->setContent($html);
 }