Changeset 10883
- Timestamp:
- 04/07/2009 09:44:41 AM (16 years ago)
- Location:
- trunk/wp-admin
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/css/colors-classic.css
r10872 r10883 1583 1583 } 1584 1584 1585 p.popular-tags { 1585 .popular-tags, 1586 .feature-filter { 1586 1587 background-color: #FFFFFF; 1587 1588 border-color: #DFDFDF; -
trunk/wp-admin/css/colors-fresh.css
r10872 r10883 1583 1583 } 1584 1584 1585 p.popular-tags { 1585 .popular-tags, 1586 .feature-filter { 1586 1587 background-color: #FFFFFF; 1587 1588 border-color: #DFDFDF; -
trunk/wp-admin/css/ie.css
r10869 r10883 349 349 border: 1px solid #DFDFDF; 350 350 } 351 352 * html .feature-filter .feature-group li { 353 width: 145px; 354 } -
trunk/wp-admin/css/theme-install.css
r10823 r10883 112 112 } 113 113 114 .feature-filter { 115 -moz-border-radius: 8px; 116 -khtml-border-radius: 8px; 117 -webkit-border-radius: 8px; 118 border-radius: 8px; 119 border-width: 1px; 120 border-style: solid; 121 padding: 8px 12px 0; 122 margin-bottom: 10px; 123 } 114 124 125 .feature-filter .feature-group { 126 float: left; 127 margin-bottom: 20px; 128 width: 725px; 129 } 130 131 .feature-filter .feature-name { 132 float: left; 133 text-align: right; 134 width: 65px; 135 } 136 137 .feature-filter .feature-group li { 138 display: inline; 139 float: left; 140 list-style-type: none; 141 padding-right: 25px; 142 min-width: 145px; 143 } -
trunk/wp-admin/includes/theme-install.php
r10823 r10883 67 67 68 68 /** 69 * Retrieve popular WordPress theme tags. 70 * 71 * @since 2.8.0 72 * 73 * @param array $args 69 * Retrive list of WordPress theme features (aka theme tags) 70 * 71 * @since 2.8.0 72 * 74 73 * @return array 75 74 */ 76 function install_themes_popular_tags( $args = array() ) { 77 global $theme_field_defaults; 78 if ( !$cache = get_option('wporg_theme_popular_tags') ) 79 add_option('wporg_theme_popular_tags', array(), '', 'no'); ///No autoload. 80 81 if ( $cache && $cache->timeout + 3 * 60 * 60 > time() ) 75 function install_themes_feature_list( ) { 76 if ( !$cache = get_option( 'wporg_theme_feature_list' ) ) 77 add_option( 'wporg_theme_feature_list', array( ), '', 'no' ); 78 79 if ( $cache && $cache->timeout +3 * 60 * 60 > time( ) ) 82 80 return $cache->cached; 83 81 84 $args['fields'] = $theme_field_defaults; 85 86 $tags = themes_api('hot_tags', $args); 87 88 if ( is_wp_error($tags) ) 89 return $tags; 90 91 $cache = (object) array('timeout' => time(), 'cached' => $tags); 92 93 update_option('wporg_theme_popular_tags', $cache); 94 95 return $tags; 82 $feature_list = themes_api( 'feature_list', array( ) ); 83 if ( is_wp_error( $feature_list ) ) 84 return $features; 85 86 $cache = (object) array( 'timeout' => time( ), 'cached' => $feature_list ); 87 update_option( 'wporg_theme_feature_list', $cache ); 88 89 return $feature_list; 96 90 } 97 91 98 92 add_action('install_themes_search', 'install_theme_search', 10, 1); 99 93 /** 100 * Display theme search results and display as tag cloud.94 * Display theme search results 101 95 * 102 96 * @since 2.8.0 … … 128 122 $args['fields'] = $theme_field_defaults; 129 123 124 if ( !empty( $_POST['features'] ) ) { 125 $terms = $_POST['features']; 126 $terms = array_map( 'trim', $terms ); 127 $terms = array_map( 'sanitize_title_with_dashes', $terms ); 128 $args['tag'] = $terms; 129 $_REQUEST['s'] = implode( ',', $terms ); 130 $_REQUEST['type'] = 'tag'; 131 } 132 130 133 $api = themes_api('query_themes', $args); 131 134 … … 138 141 } 139 142 140 add_action('install_themes_dashboard', 'install_themes_dashboard'); 141 function install_themes_dashboard() { 143 /** 144 * Display search form for searching themes. 145 * 146 * @since 2.8.0 147 */ 148 function install_theme_search_form() { 149 $type = isset( $_REQUEST['type'] ) ? stripslashes( $_REQUEST['type'] ) : ''; 150 $term = isset( $_REQUEST['s'] ) ? stripslashes( $_REQUEST['s'] ) : ''; 142 151 ?> 143 152 <p class="install-help"><?php _e('Search for themes by keyword, author, or tag.') ?></p> 144 153 145 <?php install_theme_search_form(); ?> 146 147 <h4><?php _e('Popular tags') ?></h4> 148 <p class="install-help"><?php _e('You may also browse based on the most popular tags in the Theme Directory:') ?></p> 154 <form id="search-themes" method="post" action="<?php echo admin_url( 'theme-install.php?tab=search' ); ?>"> 155 <select name="type" id="typeselector"> 156 <option value="term" <?php selected('term', $type) ?>><?php _e('Term'); ?></option> 157 <option value="author" <?php selected('author', $type) ?>><?php _e('Author'); ?></option> 158 <option value="tag" <?php selected('tag', $type) ?>><?php _e('Tag'); ?></option> 159 </select> 160 <input type="text" name="s" class="search-input" size="30" value="<?php echo attribute_escape($term) ?>" /> 161 <input type="submit" name="search" value="<?php echo attribute_escape(__('Search')); ?>" class="button" /> 162 </form> 163 <?php 164 } 165 166 add_action('install_themes_dashboard', 'install_themes_dashboard'); 167 /** 168 * Display tags filter for themes. 169 * 170 * @since 2.8.0 171 */ 172 function install_themes_dashboard() { 173 install_theme_search_form(); 174 ?> 175 <h4><?php _e('Feature Filter') ?></h4> 176 <form method="post" action="<?php echo admin_url( 'theme-install.php?tab=search' ); ?>"> 177 <p class="install-help"><?php _e('Find a theme based on specific features') ?></p> 149 178 <?php 150 151 $api_tags = install_themes_popular_tags(); 152 153 //Set up the tags in a way which can be interprated by wp_generate_tag_cloud() 154 $tags = array(); 155 foreach ( (array)$api_tags as $tag ) { 156 $tags[ $tag['name'] ] = (object) array( 157 'link' => clean_url( admin_url('theme-install.php?tab=search&type=tag&s=' . urlencode($tag['name'])) ), 158 'name' => $tag['name'], 159 'id' => sanitize_title_with_dashes($tag['name']), 160 'count' => $tag['count'] ); 161 } 162 echo '<p class="popular-tags">'; 163 echo wp_generate_tag_cloud($tags, array( 'single_text' => __('%d theme'), 'multiple_text' => __('%d themes') ) ); 164 echo '</p><br class="clear" />'; 165 } 166 167 /** 168 * Display search form for searching themes. 169 * 170 * @since 2.8.0 171 */ 172 function install_theme_search_form(){ 173 $type = isset($_REQUEST['type']) ? stripslashes( $_REQUEST['type'] ) : ''; 174 $term = isset($_REQUEST['s']) ? stripslashes( $_REQUEST['s'] ) : ''; 175 176 ?> 177 <form id="search-themes" method="post" 178 action="<?php echo admin_url('theme-install.php?tab=search') ?>"><select 179 name="type" id="typeselector"> 180 <option value="term" <?php selected('term', $type) ?>><?php _e('Term') ?></option> 181 <option value="author" <?php selected('author', $type) ?>><?php _e('Author') ?></option> 182 <option value="tag" <?php selected('tag', $type) ?>><?php _e('Tag') ?></option> 183 </select> <input type="text" name="s" class="search-input" 184 value="<?php echo attribute_escape($term) ?>" /> <input type="submit" 185 name="search" value="<?php echo attribute_escape(__('Search')) ?>" 186 class="button" /></form> 187 <?php 179 $feature_list = install_themes_feature_list( ); 180 echo '<div class="feature-filter">'; 181 182 foreach ( (array) $feature_list as $feature_name => $features ) { 183 $html_safe['feature_name'] = wp_specialchars( $feature_name ); 184 echo '<div class="feature-name">' . $html_safe['feature_name'] . '</div>'; 185 186 echo '<ol style="float: left; width: 725px;" class="feature-group">'; 187 foreach ( $features as $feature ) { 188 $html_safe['feature'] = wp_specialchars( $feature ); 189 ?> 190 191 <li> 192 <input type="checkbox" name="features[<?php echo $html_safe['feature']; ?>]" id="feature-id-<?php echo $html_safe['feature']; ?>" value="<?php echo $html_safe['feature']; ?>"> 193 <label for="feature-id-<?php echo $html_safe['feature']; ?>"><?php echo $html_safe['feature']; ?></label> 194 </li> 195 196 <?php } ?> 197 </ol> 198 <br class="clear" /> 199 <?php 200 } ?> 201 202 </div> 203 <br class="clear" /> 204 <input type="submit" name="search" value="<?php echo attribute_escape(__('Find Themes')); ?>" class="button" /> 205 </form> 206 <?php 188 207 } 189 208 … … 202 221 if ( is_wp_error($api) ) 203 222 wp_die($api); 204 display_themes($api->themes, $api->info['page'], $api->info['pages']);205 }206 207 add_action('install_thems_popular', 'install_themes_popular', 10, 1);208 /**209 * Display popular themes.210 *211 * @since 2.8.0212 *213 * @param string $page214 */215 function install_themes_popular($page = 1) {216 global $theme_field_defaults;217 $args = array('browse' => 'popular', 'page' => $page, 'fields' => $theme_field_defaults);218 $api = themes_api('query_themes', $args);219 223 display_themes($api->themes, $api->info['page'], $api->info['pages']); 220 224 } … … 351 355 ?> 352 356 <div class="tablenav"> 353 <div class="alignleft actions"><?php do_action('install_themes_table_header'); ?> 354 </div> 357 <div class="alignleft actions"><?php do_action('install_themes_table_header'); ?></div> 355 358 <?php 356 359 $url = clean_url($_SERVER['REQUEST_URI']);
Note: See TracChangeset
for help on using the changeset viewer.