Esempio n. 1
0
<?php

if (!wptouch_can_cloud_install(true)) {
    ?>
	<div class="cloud-update-issue"><i class="icon-cloud"></i> <?php 
    echo sprintf(__('Your server configuration is preventing WPtouch Pro from installing and updating from the Cloud. %sPlease visit %sthis article%s to follow the steps to enable Cloud install, or you can manually download and install into the wptouch-data/%s directory.', 'wptouch-pro'), '<br />', '<a href="http://www.wptouch.com/support/knowledgebase/themes-or-extensions-cannot-be-downloaded/">', '</a>', 'extensions');
    ?>
</div>
<?php 
}
?>

<?php 
$cloud_themes = wptouch_get_available_cloud_themes();
foreach ($cloud_themes as $theme => $details) {
    $cloud_themes[$theme] = $theme;
}
?>

<ul class="cloud-browser">
	<?php 
while (wptouch_has_themes(true)) {
    ?>
		<?php 
    wptouch_the_theme();
    ?>
			<?php 
    if (!wptouch_is_theme_in_cloud()) {
        ?>
				<?php 
        include 'theme-browser-item.php';
 function get_available_themes($include_cloud = false)
 {
     $themes = array();
     $cloud_themes = array();
     $theme_directories = $this->get_theme_directories();
     $custom = false;
     foreach ($theme_directories as $theme_dir) {
         $list_dir = @opendir($theme_dir[0]);
         if ($list_dir) {
             while (($f = readdir($list_dir)) !== false) {
                 // Skip common files in each directory
                 if ($this->should_skip_file($f)) {
                     continue;
                 }
                 $theme_info = $this->get_theme_information($theme_dir[0] . '/' . $f, $theme_dir[1] . '/' . $f, $custom);
                 if ($theme_info) {
                     $themes[$theme_info->name] = $theme_info;
                 }
             }
             closedir($list_dir);
         }
         if (!$custom) {
             $custom = true;
         }
     }
     if ($include_cloud) {
         if (false === ($cloud_themes = get_transient('_wptouch_available_cloud_themes'))) {
             $cloud_themes = wptouch_get_available_cloud_themes();
             set_transient('_wptouch_available_cloud_themes', $cloud_themes, WPTOUCH_THEME_ADDON_TRANSIENT_TIME);
         }
         $to_add = array();
         if (is_array($cloud_themes) && count($cloud_themes)) {
             foreach ($cloud_themes as $cloud_theme) {
                 if (!isset($themes[$cloud_theme['name']])) {
                     $this_theme = new stdClass();
                     $this_theme->name = $cloud_theme['name'];
                     $this_theme->description = $cloud_theme['description'];
                     $this_theme->author = $cloud_theme['author'];
                     $this_theme->version = $cloud_theme['version'];
                     $this_theme->screenshot = $cloud_theme['screenshot'];
                     $this_theme->base = $cloud_theme['base'];
                     $this_theme->location = 'cloud';
                     $this_theme->custom_theme = true;
                     if (isset($cloud_theme['theme_type'])) {
                         $this_theme->theme_type = $cloud_theme['theme_type'];
                     }
                     if (isset($cloud_theme['info_url'])) {
                         $this_theme->info_url = $cloud_theme['info_url'];
                     }
                     if (isset($cloud_theme['upgrade_url'])) {
                         $this_theme->download_url = $cloud_theme['upgrade_url'];
                     }
                     if (isset($cloud_theme['buy_url'])) {
                         $this_theme->buy_url = $cloud_theme['buy_url'];
                     }
                     $to_add[$this_theme->name] = $this_theme;
                 } else {
                     $this_theme = $themes[$cloud_theme['name']];
                     $this_theme->cloud_version = $cloud_theme['version'];
                     if (isset($cloud_theme['upgrade_url'])) {
                         $this_theme->upgrade_available = $cloud_theme['version'] != $this_theme->version;
                         $this_theme->download_url = $cloud_theme['upgrade_url'];
                     }
                     $themes[$cloud_theme['name']] = $this_theme;
                 }
             }
             $themes = array_merge($themes, $to_add);
         }
     }
     ksort($themes);
     return apply_filters('wptouch_available_themes', $themes);
 }
Esempio n. 3
0
 function get_available_themes($include_cloud = false)
 {
     $themes = array();
     $cloud_themes = array();
     $theme_directories = $this->get_theme_directories();
     foreach ($theme_directories as $theme_dir) {
         $list_dir = @opendir($theme_dir[0]);
         if ($list_dir) {
             while (($f = readdir($list_dir)) !== false) {
                 // Skip common files in each directory
                 if ($this->should_skip_file($f)) {
                     continue;
                 }
                 $theme_info = $this->get_theme_information($theme_dir[0] . DIRECTORY_SEPARATOR . $f, $theme_dir[1] . DIRECTORY_SEPARATOR . $f);
                 if ($theme_info) {
                     $themes[$theme_info->name] = $theme_info;
                 }
             }
             closedir($list_dir);
         }
     }
     if ($include_cloud) {
         if (defined('WPTOUCH_FORCE_CLOUD_REFRESH')) {
             delete_site_transient('_wptouch_available_cloud_themes');
         }
         if (false === ($cloud_themes = get_site_transient('_wptouch_available_cloud_themes'))) {
             $cloud_themes = wptouch_get_available_cloud_themes();
             set_site_transient('_wptouch_available_cloud_themes', $cloud_themes, WPTOUCH_THEME_ADDON_TRANSIENT_TIME);
         }
         $to_add = array();
         if (is_array($cloud_themes) && count($cloud_themes)) {
             foreach ($cloud_themes as $cloud_theme) {
                 if (!isset($themes[$cloud_theme['name']])) {
                     $this_theme = new stdClass();
                     $this_theme->name = $cloud_theme['name'];
                     $this_theme->description = $cloud_theme['description'];
                     $this_theme->author = $cloud_theme['author'];
                     $this_theme->version = $cloud_theme['version'];
                     $this_theme->screenshot = $cloud_theme['screenshot'];
                     $this_theme->base = $cloud_theme['base'];
                     $this_theme->location = 'cloud';
                     if (isset($cloud_theme['preview_images'])) {
                         $this_theme->preview_images = unserialize($cloud_theme['preview_images']);
                     }
                     $this_theme->changelog = '';
                     $this_theme->long_description = '';
                     if (isset($cloud_theme['long_description'])) {
                         $this_theme->long_description = $cloud_theme['long_description'];
                     }
                     if (isset($cloud_theme['theme_type'])) {
                         $this_theme->theme_type = $cloud_theme['theme_type'];
                     }
                     if (isset($cloud_theme['info_url'])) {
                         $this_theme->info_url = $cloud_theme['info_url'];
                     }
                     if (isset($cloud_theme['upgrade_url'])) {
                         $this_theme->download_url = $cloud_theme['upgrade_url'];
                     }
                     if (isset($cloud_theme['buy_url'])) {
                         $this_theme->buy_url = $cloud_theme['buy_url'];
                     }
                     $to_add[$this_theme->name] = $this_theme;
                 } else {
                     $this_theme = $themes[$cloud_theme['name']];
                     $this_theme->cloud_version = $cloud_theme['version'];
                     if (isset($cloud_theme['upgrade_url'])) {
                         $this_theme->theme_upgrade_available = version_compare($cloud_theme['version'], $this_theme->version, '>');
                         $this_theme->download_url = $cloud_theme['upgrade_url'];
                     }
                     if ($this_theme->long_description == '' && isset($cloud_theme['long_description'])) {
                         $this_theme->long_description = $cloud_theme['long_description'];
                     }
                     if (isset($cloud_theme['changelog'])) {
                         $this_theme->changelog = $cloud_theme['changelog'];
                     } else {
                         $this_theme->changelog = '';
                     }
                     if (isset($cloud_theme['preview_images'])) {
                         $this_theme->preview_images = unserialize($cloud_theme['preview_images']);
                     }
                     if (isset($this_theme->theme_upgrade_available) && $this_theme->theme_upgrade_available) {
                         $this->theme_upgrades_available = true;
                     }
                     $themes[$cloud_theme['name']] = $this_theme;
                 }
             }
             $themes = array_merge($themes, $to_add);
         }
     }
     // Move current theme to the front of the list and alphabetize the rest
     $settings = $this->get_settings();
     // Check to make sure the active theme exists - it may not, in which case we will autodownload it later
     if (isset($themes[$settings->current_theme_friendly_name])) {
         $current_theme = $themes[$settings->current_theme_friendly_name];
         unset($themes[$settings->current_theme_friendly_name]);
         ksort($themes);
         $first_theme = array($settings->current_theme_friendly_name => $current_theme);
         $themes = array_merge($first_theme, $themes);
     } else {
         ksort($themes);
     }
     return apply_filters('wptouch_available_themes', $themes);
 }