WordPress 4.5
[autoinstalls/wordpress.git] / wp-admin / includes / options.php
1 <?php
2 /**
3  * WordPress Options Administration API.
4  *
5  * @package WordPress
6  * @subpackage Administration
7  * @since 4.4.0
8  */
9
10 /**
11  * Output JavaScript to toggle display of additional settings if avatars are disabled.
12  *
13  * @since 4.2.0
14  */
15 function options_discussion_add_js() {
16 ?>
17         <script>
18         (function($){
19                 var parent = $( '#show_avatars' ),
20                         children = $( '.avatar-settings' );
21                 parent.change(function(){
22                         children.toggleClass( 'hide-if-js', ! this.checked );
23                 });
24         })(jQuery);
25         </script>
26 <?php
27 }
28
29 /**
30  * Display JavaScript on the page.
31  *
32  * @since 3.5.0
33  */
34 function options_general_add_js() {
35 ?>
36 <script type="text/javascript">
37         jQuery(document).ready(function($){
38                 var $siteName = $( '#wp-admin-bar-site-name' ).children( 'a' ).first(),
39                         homeURL = ( <?php echo wp_json_encode( get_home_url() ); ?> || '' ).replace( /^(https?:\/\/)?(www\.)?/, '' );
40
41                 $( '#blogname' ).on( 'input', function() {
42                         var title = $.trim( $( this ).val() ) || homeURL;
43
44                         // Truncate to 40 characters.
45                         if ( 40 < title.length ) {
46                                 title = title.substring( 0, 40 ) + '\u2026';
47                         }
48
49                         $siteName.text( title );
50                 });
51
52                 $("input[name='date_format']").click(function(){
53                         if ( "date_format_custom_radio" != $(this).attr("id") )
54                                 $( "input[name='date_format_custom']" ).val( $( this ).val() ).siblings( '.example' ).text( $( this ).parent( 'label' ).children( '.format-i18n' ).text() );
55                 });
56                 $("input[name='date_format_custom']").focus(function(){
57                         $( '#date_format_custom_radio' ).prop( 'checked', true );
58                 });
59
60                 $("input[name='time_format']").click(function(){
61                         if ( "time_format_custom_radio" != $(this).attr("id") )
62                                 $( "input[name='time_format_custom']" ).val( $( this ).val() ).siblings( '.example' ).text( $( this ).parent( 'label' ).children( '.format-i18n' ).text() );
63                 });
64                 $("input[name='time_format_custom']").focus(function(){
65                         $( '#time_format_custom_radio' ).prop( 'checked', true );
66                 });
67                 $("input[name='date_format_custom'], input[name='time_format_custom']").change( function() {
68                         var format = $(this);
69                         format.siblings( '.spinner' ).addClass( 'is-active' );
70                         $.post(ajaxurl, {
71                                         action: 'date_format_custom' == format.attr('name') ? 'date_format' : 'time_format',
72                                         date : format.val()
73                                 }, function(d) { format.siblings( '.spinner' ).removeClass( 'is-active' ); format.siblings('.example').text(d); } );
74                 });
75
76                 var languageSelect = $( '#WPLANG' );
77                 $( 'form' ).submit( function() {
78                         // Don't show a spinner for English and installed languages,
79                         // as there is nothing to download.
80                         if ( ! languageSelect.find( 'option:selected' ).data( 'installed' ) ) {
81                                 $( '#submit', this ).after( '<span class="spinner language-install-spinner" />' );
82                         }
83                 });
84         });
85 </script>
86 <?php
87 }
88
89 /**
90  * Display JavaScript on the page.
91  *
92  * @since 3.5.0
93  */
94 function options_permalink_add_js() {
95         ?>
96 <script type="text/javascript">
97 jQuery(document).ready(function() {
98         jQuery('.permalink-structure input:radio').change(function() {
99                 if ( 'custom' == this.value )
100                         return;
101                 jQuery('#permalink_structure').val( this.value );
102         });
103         jQuery('#permalink_structure').focus(function() {
104                 jQuery("#custom_selection").attr('checked', 'checked');
105         });
106 });
107 </script>
108 <?php
109 }
110
111 /**
112  * Display JavaScript on the page.
113  *
114  * @since 3.5.0
115  */
116 function options_reading_add_js() {
117 ?>
118 <script type="text/javascript">
119         jQuery(document).ready(function($){
120                 var section = $('#front-static-pages'),
121                         staticPage = section.find('input:radio[value="page"]'),
122                         selects = section.find('select'),
123                         check_disabled = function(){
124                                 selects.prop( 'disabled', ! staticPage.prop('checked') );
125                         };
126                 check_disabled();
127                 section.find('input:radio').change(check_disabled);
128         });
129 </script>
130 <?php
131 }
132
133 /**
134  * Render the site charset setting.
135  *
136  * @since 3.5.0
137  */
138 function options_reading_blog_charset() {
139         echo '<input name="blog_charset" type="text" id="blog_charset" value="' . esc_attr( get_option( 'blog_charset' ) ) . '" class="regular-text" />';
140         echo '<p class="description">' . __( 'The <a href="https://codex.wordpress.org/Glossary#Character_set">character encoding</a> of your site (UTF-8 is recommended)' ) . '</p>';
141 }