/** * 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; }
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; }