function weaverii_save_current_css() { // write the current generated CSS to a file - called only from Weaver II Admin if (!weaverii_f_file_access_available() || !current_user_can('edit_theme_options')) { return ''; } $save_dir = weaverii_f_uploads_base_dir() . 'weaverii-subthemes'; $save_url = weaverii_f_uploads_base_url() . 'weaverii-subthemes'; $usename = 'style-weaverii.css'; $wii_theme_dir_exists = weaverii_f_mkdir($save_dir); if (!$wii_theme_dir_exists) { weaverii_f_file_access_fail('Unable to create directory. Probably a file system permission problem. Directory' . $save_dir); } $wii_theme_dir_writable = $wii_theme_dir_exists; if (!weaverii_f_is_writable($save_dir)) { weaverii_f_file_access_fail('Directory not writable. Probably a file system permission problem. Directory: ' . $save_dir); $wii_theme_dir_writable = false; } $filename = $save_dir . '/' . $usename; // we will add txt if (!$wii_theme_dir_writable || !$wii_theme_dir_exists || !($handle = weaverii_f_open($filename, 'w'))) { weaverii_f_file_access_fail('Unable to create file. Probably a file system permission problem. File: ' . $filename); return ''; } weaverii_f_write($handle, sprintf("/* WARNING: Do not edit this file. It is dynamically generated. Any edits you make will be overwritten. */\n/* This file generated using %s %s subtheme: %s */\n", WEAVERII_THEMENAME, WEAVERII_VERSION, weaverii_getopt('wii_subtheme'))); weaverii_output_style($handle); if (!weaverii_f_close($handle)) { weaverii_f_file_access_fail('Unable to create file. Probably a file system permission problem. File: ' . $filename); return ''; } return $save_url . '/' . $usename; }
function weaverii_unpackzip($uploaded, $to_dir) { // upload theme from users computer // they've supplied and uploaded a file $ok = true; // no errors so far if (isset($_FILES[$uploaded]['name'])) { // uploaded_addon $filename = $_FILES[$uploaded]['name']; } else { $filename = ""; } if (isset($_FILES[$uploaded]['tmp_name'])) { $openname = $_FILES[$uploaded]['tmp_name']; } else { $openname = ""; } //Check the file extension $check_file = strtolower($filename); $exp = explode('.', $check_file); // call by ref workaround $ext_check = end($exp); if (false && !weaverii_f_file_access_available()) { $errors[] = "Sorry - Weaver II unable to access files.<br />"; $ok = false; } if ($filename == "") { $errors[] = "You didn't select a file to upload.<br />"; $ok = false; } if ($ok && $ext_check != 'zip') { $errors[] = "Uploaded files must have <em>.zip</em> extension.<br />"; $ok = false; } if ($ok) { if (!weaverii_f_exists($openname)) { $errors[] = '<strong><em style="color:red;"> Sorry, there was a problem uploading your file. You may need to check your folder permissions or other server settings.</em></strong><br />' . "(Trying to use file '{$openname}')"; $ok = false; } } if ($ok) { // should be ready to go, but check out WP_Filesystem if (!WP_Filesystem()) { function weaveriiex_return_direct() { return 'direct'; } add_filter('filesystem_method', 'weaveriiex_return_direct'); $try2 = WP_Filesystem(); remove_filter('filesystem_method', 'weaveriiex_return_direct'); if (!$try2) { $errors[] = 'Sorry, there\'s a problem trying to use the WordPress unzip function. Please see the FAQ at weavertheme.com support for more information.'; $ok = false; } } } if ($ok) { // $openname has uploaded .zip file to use // $filename has name of file uploaded $is_error = unzip_file($openname, $to_dir); if (!is_wp_error($is_error)) { weaverii_save_msg('File ' . $filename . ' successfully uploaded and unpacked to: <br />' . $to_dir); @unlink($openname); // delete temp file... } else { $errors[] = "Sorry, unpacking the .zip you selected file failed. You may have a corrupt .zip file, or there many a file permissions problem on your WordPress installation."; $errors[] = $is_error->get_error_message(); $ok = false; } } if (!$ok) { echo '<div id="message" class="updated fade"><p><strong><em style="color:red;">ERROR</em></strong></p><p>'; foreach ($errors as $error) { echo $error . '<br />'; } echo '</p></div>'; } return $ok; }
function weaverii_use_inline_css($css_file) { return weaverii_getopt_checked('_wii_inline_style') || !weaverii_f_file_access_available() || !weaverii_f_exists($css_file) || weaverii_dev_mode(); }