/**
  * Display an admin notice to install the default pages if wanted
  */
 public function display_notice()
 {
     // delete_option( '_wolf_' . wolf_get_theme_slug() . '_default_pages' );
     if (!get_option('_wolf_' . wolf_get_theme_slug() . '_default_pages') && array() != $this->default_posts) {
         $default_pages_install_message = sprintf(__('You can install default pages to help you to get started with <strong>%s</strong> theme.', 'wolf'), WOLF_THEME_NAME);
         if (function_exists('wolf_theme_register_required_plugins')) {
             $default_pages_install_message .= '<br>' . __('<strong>It is recommended to install and activate the plugins you need from the recommended plugins list first</strong>, in order to install the default pages accordingly.', 'wolf') . '<br>';
         }
         $default_pages_install_message .= '<br>' . sprintf(__('<a href="%1$s" class="button-primary">Install default pages</a> <a href="%2$s" class="button">Dismiss this message</a>', 'wolf'), esc_url(admin_url('index.php?wolf-default-pages=true')), esc_url(admin_url('index.php?wolf-default-pages=false')));
         wolf_admin_notice($default_pages_install_message, 'updated', true);
         return false;
     }
 }
 /**
  * Get data from uploaded zip file
  */
 public function get_data()
 {
     $data = array();
     if (isset($_POST['import-submit'])) {
         if (!empty($_FILES['import-zip']['name'])) {
             $options_file = null;
             $widgets_file = null;
             $content_file = null;
             $file_content = null;
             $tmp_dir = WOLF_THEME_TMP_DIR;
             $file = $_FILES['import-zip'];
             $ext = pathinfo($file['name'], PATHINFO_EXTENSION);
             $folder_name = str_replace('.' . $ext, '', $file['name']);
             if ('zip' != $ext) {
                 // error not zip file
                 $message = __('It seems that you are trying to upload the wrong file. It must be a zip archive containing the demo data files.', 'wolf');
                 wolf_admin_notice($message, 'error');
             } else {
                 // Go
                 $zip = new ZipArchive();
                 if ($zip->open($file['tmp_name']) === TRUE) {
                     $zip->extractTo($tmp_dir);
                     $zip->close();
                     $tmp_folder_path = $tmp_dir . '/' . $folder_name;
                     // get text file
                     foreach (glob($tmp_folder_path . '/*.txt') as $filename) {
                         $options_file = $filename;
                         break;
                     }
                     // get json file
                     foreach (glob($tmp_folder_path . '/*.json') as $filename) {
                         $widgets_file = $filename;
                         break;
                     }
                     // get content file
                     foreach (glob($tmp_folder_path . '/*.xml') as $filename) {
                         $content_file = $filename;
                         break;
                     }
                     if (!$options_file || !$widgets_file || !$content_file) {
                         // error no files in zip
                         $message = __('We couldn\'t find the right files in the archives. Please be sure that you have selected the right zip file.', 'wolf');
                         wolf_admin_notice($message, 'error');
                     } else {
                         // all good, return the data in an array
                         $data['options_file'] = $options_file;
                         $data['widgets_file'] = $widgets_file;
                         $data['content_file'] = $content_file;
                         $this->import_content = isset($_POST['import_content']);
                         $this->import_widgets = isset($_POST['import_widgets']);
                         $this->import_settings = isset($_POST['import_settings']);
                         return $data;
                     }
                 } else {
                     // error unknown
                     $message = __('We couldn\'t import the demo data.', 'wolf');
                     $message .= $this->fallback_error_message();
                     wolf_admin_notice($message, 'error');
                     return false;
                 }
             }
         } else {
             // error no file
             $message = __('Please select a file to upload', 'wolf');
             wolf_admin_notice($message, 'error');
             return false;
         }
     }
 }
 /**
  * Unzip files in tmp folder, then replace the files
  *
  * @param string $file
  * @return bool
  */
 public function unzip($file)
 {
     $this->theme_dir = WOLF_THEME_DIR;
     $this->tmp_dir = WOLF_THEME_DIR . '/tmp';
     wolf_clean_folder($this->tmp_dir);
     // ensure that the tmp folder is empty
     $file_path = $file['tmp_name'];
     $zip = new ZipArchive();
     $res = $zip->open($file_path);
     if ($res === TRUE) {
         $zip->extractTo($this->tmp_dir);
         $zip->close();
         $this->recurse_copy($this->tmp_dir . '/' . wolf_get_theme_slug(), $this->theme_dir);
         wolf_clean_folder($this->tmp_dir);
         $this->remove_deprecated_files($this->theme_dir);
         return true;
     } else {
         $message = __('An occur occured while trying to update the theme.', 'wolf');
         wolf_admin_notice($message, 'error');
         return false;
     }
 }
 /**
  * Add an update or error notice to the dashboard when needed
  */
 public function display_notice()
 {
     global $pagenow;
     // Theme update notifications
     if ($pagenow == 'index.php') {
         wolf_theme_update_notification_message();
     }
     if (WOLF_ERROR_NOTICES) {
         /* Error notices
           	--------------------------------------------------------*/
         // No cURL
         $no_cURL = __('The <strong>cURL</strong> extension is not installed on your server. This extension is required to display theme update notifications.', 'wolf');
         if (!function_exists('curl_init')) {
             wolf_admin_notice($no_cURL, 'error', true, 'no_cURL');
         }
         // No GD library
         $no_GD_library = __('The <strong>GD library</strong> extension is not installed on your server. This extension is essential to Wordpress to be able to resize your images. Please contact your hosting service for more informations.', 'wolf');
         if (!extension_loaded('gd') && !function_exists('gd_info')) {
             wolf_admin_notice($no_GD_library, 'error', true, 'no_GD_library');
         }
     }
     /* Always display wrong theme installation notice
       	-------------------------------------------------------------------*/
     /* Incorect Installation */
     $wrong_install = sprintf(__('It seems that <strong>the theme has been installed incorrectly</strong>. Go <a href="%s" target="_blank">here</a> to find instructions about theme installation.', 'wolf'), 'http://wolfthemes.com/common-wordpress-theme-issues/');
     $wolf_wp_themes_folder = basename(dirname(dirname(dirname(__FILE__))));
     if ($wolf_wp_themes_folder != 'themes') {
         wolf_admin_notice($wrong_install, 'error');
     }
     return false;
 }
示例#5
0
function wolf_save_theme_css()
{
    if (isset($_POST['wolf-theme-css-save'])) {
        //debug( $_POST );
        update_option('wolf_theme_css_' . wolf_get_theme_slug(), $_POST['wolf_theme_css']);
        wolf_admin_notice(__('Your settings have been saved.', 'wolf'), 'updated');
    }
    /**
     * Back from WpAdmin construct in case of WPML
     */
    if (isset($_GET['message']) && 'save' == $_GET['message'] && isset($_GET['page']) && $_GET['page'] == 'wolf-theme-css') {
        wolf_admin_notice(__('Your settings have been saved.', 'wolf'), 'updated');
    }
}
 /**
  * Import options from zip file or txt file
  */
 public function import_options()
 {
     if (isset($_POST['wolf-options-import-file-submit'])) {
         if (!empty($_FILES['wolf-options-import-file']['name'])) {
             $txt_file = null;
             $file_content = null;
             $tmp_dir = WOLF_THEME_TMP_DIR;
             $file = $_FILES['wolf-options-import-file'];
             $ext = pathinfo($file['name'], PATHINFO_EXTENSION);
             $folder_name = str_replace('.' . $ext, '', $file['name']);
             if ('zip' != $ext && 'txt' != $ext) {
                 $message = __('Only .txt file or zip file containing a text file are allowed', 'wolf');
                 wolf_admin_notice($message, 'error');
             } else {
                 // Go
                 if ('zip' == $ext) {
                     // unzip file
                     $zip = new ZipArchive();
                     if ($zip->open($file['tmp_name']) === TRUE) {
                         $zip->extractTo($tmp_dir);
                         $zip->close();
                         $tmp_folder = $tmp_dir;
                         if (is_dir($tmp_dir . '/' . $folder_name)) {
                             $tmp_folder = $tmp_dir . '/' . $folder_name;
                         }
                         // get text file
                         foreach (glob($tmp_folder . '/*.txt') as $filename) {
                             $txt_file = $filename;
                             break;
                         }
                         if ($txt_file) {
                             $file_content = file_get_contents($txt_file);
                         } else {
                             $message = __('It seems that your archive is empty or does not contain a txt file', 'wolf');
                             wolf_admin_notice($message, 'error');
                         }
                     } else {
                         $message = __('We could not import the theme options', 'wolf');
                         wolf_admin_notice($message, 'error');
                     }
                 } elseif ('txt' == $ext) {
                     $file_content = file_get_contents($file['tmp_name']);
                 }
                 if ('' != $file_content) {
                     // debug( $file_content );
                     $data = @unserialize(base64_decode($file_content));
                     if ($data && is_array($data)) {
                         update_option('wolf_theme_options_' . wolf_get_theme_slug(), $data);
                         wolf_admin_notice(__('New options imported successfully', 'wolf'), 'updated');
                     } else {
                         wolf_admin_notice(__('The file doesn\'t seem to contain any options.', 'wolf'), 'updated');
                     }
                 } else {
                     $message = __('Looks like your text file is empty', 'wolf');
                     wolf_admin_notice($message, 'error');
                 }
                 // clean tmp folder
                 wolf_clean_folder($tmp_dir);
             }
         } else {
             $message = __('Please Select a file to upload', 'wolf');
             wolf_admin_notice($message, 'error');
         }
         return false;
     }
 }
 /**
  * Check if a folder exists and is writable
  *
  * @param
  * @return
  */
 function wolf_check_folder($dir)
 {
     $message = null;
     $result = true;
     $error_id = '';
     if (is_writable($dir)) {
         $result = true;
     }
     if (is_dir($dir) && !is_writable($dir)) {
         if (chmod($dir, 775)) {
             $result = true;
         } else {
             $message = sprintf(__('The <strong>%1$s</strong> directory has to be writable. Please set the folder permission to 775 through your FTP client <br>or with the command line <strong>chmod 775 %2$s</strong>', 'wolf'), $dir, $dir);
             $error_id = 'error_' . $dir . '_dir_permission';
             $result = false;
         }
     } elseif (!is_dir($dir)) {
         $old_mask = umask(0);
         if (!mkdir($dir, 775)) {
             $message = sprintf(__('Error while trying to find the folder <strong>%1$s</strong>. Please create it manually and set the permission to 775 through your FTP client<br>or with the command line <strong>mkdir -m 775 %2$s</strong>', 'wolf'), $dir, $dir);
             $error_id = 'error_' . $dir . '_dir';
             $result = false;
         }
         umask($old_mask);
     }
     if (false == $result) {
         wolf_admin_notice($message, 'error', true, $error_id);
     }
     return $result;
 }