Changeset 5864 for sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/widgets/class-meta.php
- Timestamp:
- 09/03/2017 04:09:23 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/widgets/class-meta.php
r5841 r5864 1 1 <?php 2 2 namespace WordPressdotorg\Plugin_Directory\Widgets; 3 use WordPressdotorg\Plugin_Directory\Plugin_I18n; 3 4 use WordPressdotorg\Plugin_Directory\Template; 4 5 … … 51 52 52 53 <?php if ( $requires = (string) get_post_meta( $post->ID, 'requires', true ) ) : ?> 53 <li><?php 54 <li><?php 54 55 _e( 'Requires WordPress Version:', 'wporg-plugins' ); 55 56 echo '<strong>' . esc_html( $requires ) . '</strong>'; … … 62 63 63 64 <?php if ( $requires_php = (string) get_post_meta( $post->ID, 'requires_php', true ) ) : ?> 64 <li><?php 65 <li><?php 65 66 _e( 'Requires PHP Version:', 'wporg-plugins' ); 66 67 echo '<strong>' . esc_html( $requires_php ) . '</strong>'; … … 68 69 <?php endif; ?> 69 70 71 <?php 72 $available_languages = $this->available_languages(); 73 if ( $available_languages ) : 74 $available_languages_count = count( $available_languages ); 75 ?> 76 <li> 77 <?php 78 if ( 1 === $available_languages_count ) { 79 _e( 'Language:', 'wporg-plugins' ); 80 } else { 81 _e( 'Languages:', 'wporg-plugins' ); 82 } 83 84 echo '<div class="languages">'; 85 86 if ( $available_languages_count > 1 ) : 87 ?> 88 <button type="button" class="button-link popover-trigger" aria-expanded="false" data-target="popover-languages"> 89 <?php 90 printf( 91 /* translators: %s: Number of available languages */ 92 _x( 'See all %s', 'languages' ), 93 $available_languages_count 94 ) 95 ?> 96 </button> 97 <div id="popover-languages" class="popover is-top-right"> 98 <div class="popover-arrow"></div> 99 100 <button type="button" class="button-link popover-close" aria-label="<?php esc_attr_e( 'Close this popover', 'wporg-plugins' ); ?>"> 101 <?php _e( 'Close', 'wporg-plugins' ); ?> 102 </button> 103 104 <div class="popover-inner"> 105 <?php echo wp_sprintf( '%l.', $available_languages ); ?> 106 </div> 107 </div> 108 <?php 109 else : 110 echo current( $available_languages ); 111 endif; 112 113 echo '</div>'; 114 ?> 115 </li> 116 <?php 117 endif; 118 ?> 119 70 120 <?php if ( $tags = get_the_term_list( $post->ID, 'plugin_tags', '<div class="tags">', '', '</div>' ) ) : ?> 71 121 <li class="clear"><?php 72 122 $terms = get_the_terms( $post, 'plugin_tags' ); 73 if ( 1 == count( $terms ) ) : 123 if ( 1 == count( $terms ) ) { 124 /* translators: %s: tag list */ 74 125 printf( __( 'Tag: %s', 'wporg-plugins' ), $tags ); 75 else : 126 } else { 127 /* translators: %s: tag list */ 76 128 printf( __( 'Tags: %s', 'wporg-plugins' ), $tags ); 77 endif;129 } 78 130 ?></li> 79 131 <?php endif; ?> … … 91 143 echo $args['after_widget']; 92 144 } 145 146 /** 147 * Retrieves available languages. 148 * 149 * @return array List of available languages. 150 */ 151 private function available_languages() { 152 $post = get_post(); 153 $slug = $post->post_name; 154 $locales = Plugin_I18n::instance()->get_translations( $slug ); 155 $languages = []; 156 157 // We assume that the main language is English US, even though this 158 // is not true for all plugins. Add it the list for localized directories. 159 if ( 'en_US' !== get_locale() ) { 160 $languages['English (US)'] = sprintf( 161 '<a href="%1$s">%2$s</a>', 162 esc_url( "https://wordpress.org/plugins/{$slug}/" ), 163 'English (US)' 164 ); 165 } 166 167 if ( ! empty( $locales ) ) { 168 $locale_names = wp_list_pluck( $locales, 'name', 'wp_locale' ); 169 $wp_locales = wp_list_pluck( $locales,'wp_locale' ); 170 171 $sites = get_sites( [ 172 'network_id' => WPORG_GLOBAL_NETWORK_ID, 173 'public' => 1, 174 'path' => '/', 175 'locale__in' => $wp_locales, 176 'number' => '', 177 ] ); 178 179 if ( $sites ) { 180 foreach ( $sites as $site ) { 181 $languages[ $locale_names[ $site->locale ] ] = sprintf( 182 '<a href="%1$s">%2$s</a>', 183 esc_url( "{$site->home}/plugins/{$slug}/" ), 184 $locale_names[ $site->locale ] 185 ); 186 } 187 } 188 } 189 190 ksort( $languages, SORT_NATURAL ); 191 192 return $languages; 193 } 93 194 }
Note: See TracChangeset
for help on using the changeset viewer.