Ejemplo n.º 1
0
 private function _validateFilelike(&$file, $semantics, $typevalidkeys = array())
 {
     // Make sure path and mime does not have any special chars
     $file->path = htmlspecialchars($file->path, ENT_QUOTES, 'UTF-8', FALSE);
     if (isset($file->mime)) {
         $file->mime = htmlspecialchars($file->mime, ENT_QUOTES, 'UTF-8', FALSE);
     }
     // Remove attributes that should not exist, they may contain JSON escape
     // code.
     $validkeys = array_merge(array('path', 'mime', 'copyright'), $typevalidkeys);
     if (isset($semantics->extraAttributes)) {
         $validkeys = array_merge($validkeys, $semantics->extraAttributes);
         // TODO: Validate extraAttributes
     }
     $this->filterParams($file, $validkeys);
     if (isset($file->width)) {
         $file->width = intval($file->width);
     }
     if (isset($file->height)) {
         $file->height = intval($file->height);
     }
     if (isset($file->codecs)) {
         $file->codecs = htmlspecialchars($file->codecs, ENT_QUOTES, 'UTF-8', FALSE);
     }
     if (isset($file->quality)) {
         if (!is_object($file->quality) || !isset($file->quality->level) || !isset($file->quality->label)) {
             unset($file->quality);
         } else {
             $this->filterParams($file->quality, array('level', 'label'));
             $file->quality->level = intval($file->quality->level);
             $file->quality->label = htmlspecialchars($file->quality->label, ENT_QUOTES, 'UTF-8', FALSE);
         }
     }
     if (isset($file->copyright)) {
         $this->validateGroup($file->copyright, H5PContentValidator::getCopyrightSemantics());
     }
 }
Ejemplo n.º 2
0
 /**
  * Add assets and JavaScript settings for the editor.
  *
  * @since 1.1.0
  * @param int $id optional content identifier
  */
 public function add_editor_assets($id = NULL)
 {
     $plugin = H5P_Plugin::get_instance();
     $plugin->add_core_assets();
     // Make sure the h5p classes are loaded
     $plugin->get_h5p_instance('core');
     $this->get_h5peditor_instance();
     // Add JavaScript settings
     $settings = $plugin->get_settings();
     $cache_buster = '?ver=' . H5P_Plugin::VERSION;
     // Use jQuery and styles from core.
     $assets = array('css' => $settings['core']['styles'], 'js' => $settings['core']['scripts']);
     // Use relative URL to support both http and https.
     $upload_dir = plugins_url('h5p/h5p-editor-php-library');
     $url = '/' . preg_replace('/^[^:]+:\\/\\/[^\\/]+\\//', '', $upload_dir) . '/';
     // Add editor styles
     foreach (H5peditor::$styles as $style) {
         $assets['css'][] = $url . $style . $cache_buster;
     }
     // Add editor JavaScript
     foreach (H5peditor::$scripts as $script) {
         // We do not want the creator of the iframe inside the iframe
         if ($script !== 'scripts/h5peditor-editor.js') {
             $assets['js'][] = $url . $script . $cache_buster;
         }
     }
     // Add JavaScript with library framework integration (editor part)
     H5P_Plugin_Admin::add_script('editor-editor', 'h5p-editor-php-library/scripts/h5peditor-editor.js');
     H5P_Plugin_Admin::add_script('editor', 'admin/scripts/h5p-editor.js');
     // Add translation
     $language = $plugin->get_language();
     $language_script = 'h5p-editor-php-library/language/' . $language . '.js';
     if (!file_exists(plugin_dir_path(__FILE__) . '../' . $language_script)) {
         $language_script = 'h5p-editor-php-library/language/en.js';
     }
     H5P_Plugin_Admin::add_script('language', $language_script);
     // Add JavaScript settings
     $settings['editor'] = array('filesPath' => $plugin->get_h5p_url() . '/editor', 'fileIcon' => array('path' => plugins_url('h5p/h5p-editor-php-library/images/binary-file.png'), 'width' => 50, 'height' => 50), 'ajaxPath' => admin_url('admin-ajax.php?action=h5p_'), 'libraryUrl' => plugin_dir_url('h5p/h5p-editor-php-library/h5peditor.class.php'), 'copyrightSemantics' => H5PContentValidator::getCopyrightSemantics(), 'assets' => $assets, 'deleteMessage' => __('Are you sure you wish to delete this content?', $this->plugin_slug));
     if ($id !== NULL) {
         $settings['editor']['nodeVersionId'] = $id;
     }
     $plugin->print_settings($settings);
 }