Changeset 10607
- Timestamp:
- 02/20/2009 08:00:09 PM (16 years ago)
- Location:
- trunk/wp-admin
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/css/theme-editor.css
r9918 r10607 65 65 margin-right: 210px; 66 66 } 67 68 #documentation { 69 margin-top: 10px; 70 } 71 #documentation label { 72 line-height: 22px; 73 vertical-align: top; 74 font-weight: bold; 75 } -
trunk/wp-admin/includes/misc.php
r9249 r10607 239 239 } 240 240 241 function wp_doc_link_parse( $content ) { 242 if ( !is_string( $content ) || empty( $content ) ) 243 return array(); 244 245 $tokens = token_get_all( $content ); 246 $functions = array(); 247 $ignore_functions = array(); 248 for ( $t = 0, $count = count( $tokens ); $t < $count; $t++ ) { 249 if ( !is_array( $tokens[$t] ) ) continue; 250 if ( T_STRING == $tokens[$t][0] && ( '(' == $tokens[ $t + 1 ] || '(' == $tokens[ $t + 2 ] ) ) { 251 // If it's a function or class defined locally, there's not going to be any docs available 252 if ( 'class' == $tokens[ $t - 2 ][1] || 'function' == $tokens[ $t - 2 ][1] || T_OBJECT_OPERATOR == $tokens[ $t - 1 ][0] ) { 253 $ignore_functions[] = $tokens[$t][1]; 254 } 255 // Add this to our stack of unique references 256 $functions[] = $tokens[$t][1]; 257 } 258 } 259 260 $functions = array_unique( $functions ); 261 sort( $functions ); 262 $ignore_functions = apply_filters( 'documentation_ignore_functions', $ignore_functions ); 263 $ignore_functions = array_unique( $ignore_functions ); 264 265 $out = array(); 266 foreach ( $functions as $function ) { 267 if ( in_array( $function, $ignore_functions ) ) 268 continue; 269 $out[] = $function; 270 } 271 272 return $out; 273 } 274 241 275 ?> -
trunk/wp-admin/plugin-editor.php
r10150 r10607 82 82 $error = 1; 83 83 84 if ( ! $error ) 85 $content = htmlspecialchars(file_get_contents($real_file)); 84 if ( ! $error ) { 85 $content = file_get_contents( $real_file ); 86 87 if ( 'php' == mb_substr( $real_file, mb_strrpos( $real_file, '.' ) + 1 ) ) { 88 $functions = wp_doc_link_parse( $content ); 89 90 $docs_select = '<select name="docs-list" id="docs-list">'; 91 $docs_select .= '<option value="">' . __( 'Function Name...' ) . '</option>'; 92 foreach ( $functions as $function) { 93 $docs_select .= '<option value="' . urlencode( $function ) . '">' . htmlspecialchars( $function ) . '()</option>'; 94 } 95 $docs_select .= '</select>'; 96 } 97 98 $content = htmlspecialchars( $content ); 99 } 86 100 87 101 ?> … … 125 139 <ul> 126 140 <?php foreach($plugin_files as $plugin_file) : ?> 127 <li ><a href="plugin-editor.php?file=<?php echo $plugin_file; ?>"><?php echo $plugins[$plugin_file]['Name']; ?></a></li>141 <li<?php echo $file == $plugin_file ? ' class="highlight"' : ''; ?>><a href="plugin-editor.php?file=<?php echo $plugin_file; ?>"><?php echo $plugins[$plugin_file]['Name']; ?></a></li> 128 142 <?php endforeach; ?> 129 143 </ul> … … 136 150 <input type="hidden" name="file" value="<?php echo $file ?>" /> 137 151 </div> 152 <?php if ( count( $functions ) ) : ?> 153 <div id="documentation"><label for="docs-list">Documentation:</label> <?php echo $docs_select ?> <input type="button" class="button" value=" <?php _e( 'Lookup' ) ?> " onclick="if ( '' != jQuery('#docs-list').val() ) { window.open( 'http://api.wordpress.org/core/handbook/1.0/?function=' + escape( jQuery( '#docs-list' ).val() ) + '&locale=<?php echo urlencode( get_locale() ) ?>&version=<?php echo urlencode( $wp_version ) ?>&redirect=true'); }" /></div> 154 <?php endif; ?> 138 155 <?php if ( is_writeable($real_file) ) : ?> 139 156 <?php if ( in_array($file, (array) get_option('active_plugins')) ) { ?> -
trunk/wp-admin/theme-editor.php
r10194 r10607 88 88 $f = fopen($real_file, 'r'); 89 89 $content = fread($f, filesize($real_file)); 90 $content = htmlspecialchars($content); 90 91 if ( 'php' == mb_substr( $real_file, mb_strrpos( $real_file, '.' ) + 1 ) ) { 92 $functions = wp_doc_link_parse( $content ); 93 94 $docs_select = '<select name="docs-list" id="docs-list">'; 95 $docs_select .= '<option value="">' . __( 'Function Name...' ) . '</option>'; 96 foreach ( $functions as $function) { 97 $docs_select .= '<option value="' . urlencode( $function ) . '">' . htmlspecialchars( $function ) . '()</option>'; 98 } 99 $docs_select .= '</select>'; 100 } 101 102 $content = htmlspecialchars( $content ); 91 103 } 92 104 … … 188 200 <input type="hidden" name="theme" value="<?php echo $theme ?>" /> 189 201 </div> 202 <?php if ( count( $functions ) ) : ?> 203 <div id="documentation"><label for="docs-list">Documentation:</label> <?php echo $docs_select ?> <input type="button" class="button" value=" <?php _e( 'Lookup' ) ?> " onclick="if ( '' != jQuery('#docs-list').val() ) { window.open( 'http://api.wordpress.org/core/handbook/1.0/?function=' + escape( jQuery( '#docs-list' ).val() ) + '&locale=<?php echo urlencode( get_locale() ) ?>&version=<?php echo urlencode( $wp_version ) ?>&redirect=true'); }" /></div> 204 <?php endif; ?> 190 205 191 206 <div>
Note: See TracChangeset
for help on using the changeset viewer.