예제 #1
0
 /**
  * Processes the final submission of the wizard to be saved as a player
  * configuration.
  * @return Array The array of configuration options to be saved.
  */
 private function processSubmit()
 {
     $data = LongTailFramework::getConfigValues();
     $plugins = array();
     $additional_plugins = "";
     foreach ($_POST as $name => $value) {
         if (strstr($name, LONGTAIL_KEY . "player_")) {
             $val = esc_html($value);
             $new_val = $val;
             $new_name = str_replace(LONGTAIL_KEY . "player_", "", $name);
             if ($new_name == "skin") {
                 if ($new_val != "[Default]") {
                     $skins = LongTailFramework::getSkins();
                     $skin_new = LongTailFramework::getSkinPath() . "{$val}/{$val}." . $skins[$val];
                     if (file_exists($skin_new)) {
                         $new_val = LongTailFramework::getSkinURL() . "{$val}/{$val}." . $skins[$val];
                     } else {
                         $new_val = LongTailFramework::getSkinURL() . "{$val}." . $skins[$val];
                     }
                     $data[$new_name] = $new_val;
                 } else {
                     unset($data[$new_name]);
                 }
             } else {
                 if ($new_name == "playlist_position") {
                     $data[str_replace("_", ".", $new_name)] = $new_val;
                 } else {
                     if ($new_name == "flashvars") {
                         $this->parseFlashvarString($new_val, $data);
                     } else {
                         if ($new_name == "plugins") {
                             $additional_plugins = $new_val;
                         } else {
                             if (!empty($new_val)) {
                                 $data[$new_name] = $new_val;
                             } else {
                                 unset($data[$new_name]);
                             }
                         }
                     }
                 }
             }
         } else {
             if (strstr($name, LONGTAIL_KEY . "plugin_") && strstr($name, "_enable")) {
                 $plugins[str_replace("_enable", "", str_replace(LONGTAIL_KEY . "plugin_", "", $name))] = esc_html($value);
                 //Process the plugin flashvars.
             } else {
                 if (strstr($name, LONGTAIL_KEY . "plugin_") && !empty($value)) {
                     $plugin_key = preg_replace("/_/", ".", str_replace(LONGTAIL_KEY . "plugin_", "", $name), 1);
                     $found = false;
                     foreach (array_keys($plugins) as $repo) {
                         $key = explode(".", $plugin_key);
                         if (strstr($repo, $key[0]) && $plugins[$repo]) {
                             $data[$plugin_key] = esc_html($value);
                             $found = true;
                             break;
                         }
                     }
                     if (!$found) {
                         unset($data[$plugin_key]);
                     }
                 }
             }
         }
     }
     $active_plugins = array();
     //Build final list of plugins to be used for this Player.
     foreach ($plugins as $name => $enabled) {
         if ($enabled) {
             $active_plugins[] = $name;
         }
     }
     $plugin_string = implode(",", $active_plugins);
     $plugin_string = empty($plugin_string) ? $additional_plugins : $plugin_string . "," . $additional_plugins;
     if (!empty($plugins)) {
         $data["plugins"] = $plugin_string;
     }
     if (!isset($data["plugins"]) || $data["plugins"] == "" || empty($data["plugins"])) {
         unset($data["plugins"]);
     }
     return $data;
 }
 /**
  * Get the list of available skins.
  * @return string The list of available skins
  */
 public static function getSkins()
 {
     $handler = opendir(LongTailFramework::getSkinPath());
     $skins = array();
     $skins["[Default]"] = "";
     while ($file = readdir($handler)) {
         if ($file != "." && $file != ".." && (strstr($file, ".zip") || strstr($file, ".swf"))) {
             $info = preg_split("/\\./", $file);
             $skins[$info[0]] = $info[1];
         }
     }
     return $skins;
 }
예제 #3
0
function skin_unzip($archive) {
  if (class_exists('ZipArchive')) {
    $zip = new ZipArchive();
    if ($zip->open($archive)) {
      $zip->extractTo(LongTailFramework::getSkinPath());
      $zip->close();
      return true;
    }
  } else {
    require_once(ABSPATH . 'wp-admin/includes/class-pclzip.php');
    $zip = new PclZip($archive);
    $zip->extract(PCLZIP_OPT_PATH, LongTailFramework::getSkinPath());
    return true;
  }
  return false;
}