Commit Graph

63 Commits

Author SHA1 Message Date
Sergey Biryukov
db2bc9a167 Code Modernisation: Replace call_user_func_array() in wp-includes/class-wp-customize-*.php with direct function calls in combination with the spread operator.
Props jrf.
See #47678.

git-svn-id: https://develop.svn.wordpress.org/trunk@46133 602fd350-edb4-49c9-b593-d223f7449a82
2019-09-15 11:26:16 +00:00
Sergey Biryukov
00b03f2a6f I18N: Capitalize translator comments consistently, add trailing punctuation.
Includes minor code layout fixes.

See #44360.

git-svn-id: https://develop.svn.wordpress.org/trunk@45932 602fd350-edb4-49c9-b593-d223f7449a82
2019-09-03 00:39:13 +00:00
Sergey Biryukov
c89d25560b Docs: Remove @static notations from property DocBlocks in wp-admin/* and wp-includes/* classes.
This tag has been used in the past, but should no longer be used. Just using the `static` keyword in code is enough for PhpDocumentor on PHP5+ to recognize static variables and methods, and PhpDocumentor will mark them as static.

Props birgire.
See #42803.

git-svn-id: https://develop.svn.wordpress.org/trunk@42747 602fd350-edb4-49c9-b593-d223f7449a82
2018-02-25 20:31:33 +00:00
Gary Pendergast
8f95800d52 Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.



git-svn-id: https://develop.svn.wordpress.org/trunk@42343 602fd350-edb4-49c9-b593-d223f7449a82
2017-11-30 23:09:33 +00:00
Weston Ruter
01bb1fd6cb Customize: Deprecate nav menu classes that are no longer used, instead of removing them immediately.
* Deprecate PHP classes `WP_Customize_New_Menu_Section` and `WP_Customize_New_Menu_Control`.
* Deprecate JS class `wp.customize.Menus.NewMenuControl`.
* Also introduce `wp.customize.Menus.createNavMenu()` for logic to create nav menus separately from the logic for handling UI interactions.

Amends [41768].
See #40104, #42364.
Fixes #42357.


git-svn-id: https://develop.svn.wordpress.org/trunk@42034 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-28 05:47:06 +00:00
Weston Ruter
fb28cd4663 Customize: Improve the menu creation flow.
Often, folks run into two issues when they create new menus: they click "Add a Menu" thinking it will add a new page to their menu, or they forget to assign their new menu to a location, and then wonder why it doesn't show up on their site.

This commit rearranges the order of items in the menu panel, and updates the flow for creating a menu by breaking it up into steps. Additionally, more help text has been added to guide people through the process of creating a menu.

Also adds default `type` lookups for Panel and Section instances. See #30741.

Props bpayton, obenland, westonruter, celloexpessions, afercia, melchoyce, zoonini, michelleweber.
Fixes #40104.


git-svn-id: https://develop.svn.wordpress.org/trunk@41768 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-05 02:21:22 +00:00
Weston Ruter
ce69e660bd Customize: Add notifications API to sections and panels.
* Adds a `notifications` property to instances of `wp.customize.Panel` and `wp.customize.Section`.
* Adds a `setupNotifications()` method to `Panel`, `Section`, and `Control`.
* Adds a `getNotificationsContainerElement()` method to the `Panel` and `Section` classes, like `Control` has.
* Replace hard-coded notification in header media section with a notification.
* Limit rendering notifications to panels and sections that are expanded, and to controls that have an expanded section.

See #34893, #35210, #38778.
Fixes #38794.


git-svn-id: https://develop.svn.wordpress.org/trunk@41390 602fd350-edb4-49c9-b593-d223f7449a82
2017-09-19 05:39:37 +00:00
Drew Jaynes
b4d81bd654 Docs: Remove @access notations from method DocBlocks in wp-includes/* classes.
Prior to about 2013, many class methods lacked even access modifiers which made the `@access` notations that much more useful. Now that we've gotten to a point where the codebase is more mature from a maintenance perspective and we can finally remove these notations. Notable exceptions to this change include standalone functions notated as private as well as some classes still considered to represent "private" APIs.

See #41452.


git-svn-id: https://develop.svn.wordpress.org/trunk@41162 602fd350-edb4-49c9-b593-d223f7449a82
2017-07-27 00:40:27 +00:00
Weston Ruter
76226c9b41 Customize: Introduce custom CSS for extending theme styles.
* Custom CSS is associated with a given theme and is displayed in an inline `style` element at the `wp_head` hook after the `wp_print_styles` is called so that it overrides any enqueued stylesheets.
* A `wp_get_custom_css()` function is used for accessing the CSS associated with the current theme (or another theme) and a `wp_get_custom_css` filter for manipulating it.
* CSS is managed in customizer via a new "Additional CSS" section with a single `textarea` control. 
* `WP_Customize_Section::$description_hidden` is introduced for hiding extended descriptions in customizer sections behind a help toggle as done with panels.
* CSS is stored in a `custom_css` post type with the theme (stylesheet) slug as the `post_name`.
* `WP_Customize_Custom_CSS_Setting` is introduced to handle validation of CSS, previewing, and persisting the CSS to the `custom_css` post type.
* The `custom_css` setting is tied to a new `unfiltered_css` capability which maps to `unfiltered_html` by default.
* Escaping the message in the notification template is removed to allow markup (`code` tags) to be rendered.

See https://make.wordpress.org/core/2016/10/11/feature-proposal-better-theme-customizations-via-custom-css-with-live-previews/

Props johnregan3, celloexpressions, folletto, westonruter.
Fixes #35395.


git-svn-id: https://develop.svn.wordpress.org/trunk@38829 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-19 18:14:21 +00:00
Scott Taylor
cba0e2c8f7 Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389.
See #36335.


git-svn-id: https://develop.svn.wordpress.org/trunk@38470 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-31 16:30:48 +00:00
Scott Taylor
4225e71a6b Bootstrap: after r38409 and r38410, revert r38402 which reverted r38399.
This fixes the paths in `wp-vendor/` that were including `src`. I want to drop this in so we can find out what else will break.

See #36335.


git-svn-id: https://develop.svn.wordpress.org/trunk@38411 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-27 22:31:11 +00:00
Dion Hulse
e353179ce5 Bootstrap: Revert [38399] as it's broken /build/ and subsequently core.svn.wordpress.org.
The generated classmaps reference `/src/` files and operates in the assumption that the base directory is one level above `wp-settings.php`, which it isn't after our build processes are run.

See #36335


git-svn-id: https://develop.svn.wordpress.org/trunk@38402 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-27 14:36:42 +00:00
Scott Taylor
388690382c Bootstrap: Autoload classes using a Composer-generated PHP 5.2-compatible Autoloader.
* `wp-admin` and `wp-includes` are scanned for classes to autoload
* Several 3rd-party and Ryan McCue-shaped libraries are excluded when the classmap is generated, see `composer.json`: `autoload.exclude-from-classmap`
* `wp-vendor/autoload_52.php` is included at the top of `wp-settings.php` - no changes need to be made to unit tests to include the autoloader
* An avalanche of `require()` and `require_once()` calls that loaded class files have been removed from the codebase.

The following files have been added to `svn:ignore` - they are not 5.2-compatible and fail during pre-commit:
* src/wp-vendor/autoload.php
* src/wp-vendor/composer/autoload_real.php
* src/wp-vendor/composer/autoload_static.php
* src/wp-vendor/composer/ClassLoader.php

We favor these files instead:
* src/wp-vendor/autoload_52.php
* src/wp-vendor/composer/autoload_real_52.php
* src/wp-vendor/composer/ClassLoader52.php

When new PHP classes are added to the codebase, simply run `composer install` or `composer update` from the project root to update the autoloader.

The future is now.

See #36335.


git-svn-id: https://develop.svn.wordpress.org/trunk@38399 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-27 09:15:01 +00:00
Drew Jaynes
5a96c219bf Docs: Standardize filter docs in the Customizer classes to use third-person singular verbs per the inline documentation standards for PHP.
See #36913.


git-svn-id: https://develop.svn.wordpress.org/trunk@37491 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-22 18:09:59 +00:00
Drew Jaynes
c7bed4f8c6 Docs: Remove inline @see tags from function, class, and method references in inline docs.
Known functions, classes, and methods are now auto-linked in Code Reference pages following #meta1483.

Note: Hook references are still linked via inline `@see` tags due to the unlikelihood of reliably matching for known hooks based on a RegEx pattern.

See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@37342 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-02 03:59:56 +00:00
Scott Taylor
625514655e Customize: move WP_Customize_Section subclasses to wp-includes/customize, they load in the exact same place.
See #34432.


git-svn-id: https://develop.svn.wordpress.org/trunk@35385 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-24 18:20:25 +00:00
Sergey Biryukov
fe72320f33 Merge two strings for expanding accordion and Customizer sections.
Props pavelevap.
Fixes #33939.

git-svn-id: https://develop.svn.wordpress.org/trunk@35232 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-17 00:27:44 +00:00
Scott Taylor
d6e73d47e4 Round 2 of: We should use ellipses … / … instead of three dots/periods ... e.g Loading… not Loading...
Props yoavf.
Fixes #32875.


git-svn-id: https://develop.svn.wordpress.org/trunk@33970 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-09 04:38:31 +00:00
Weston Ruter
d9fcddae25 Customizer: Hide the transport list when it's empty, especially for screen readers.
Also prevent invalid markup for `.customize-section-description`.

Props valendesigns.
Fixes #32843.


git-svn-id: https://develop.svn.wordpress.org/trunk@33282 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-15 19:58:42 +00:00
Drew Jaynes
7dc6a749b6 Fix syntax and add missing @access tags to a variety of methods added to WP_Customize_Section, WP_Customize_Nav_Menu_Section, and WP_Customize_New_Menu_Section in 4.3.
See [32658] and [32806]. See #32891.


git-svn-id: https://develop.svn.wordpress.org/trunk@33220 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-13 20:48:47 +00:00
Sergey Biryukov
313c416f6c Customizer: Remove HTML tags from two translatable strings.
props henrikakselsen.
fixes #32817.

git-svn-id: https://develop.svn.wordpress.org/trunk@33078 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-03 22:28:29 +00:00
Dominik Schilling (ocean90)
37837c88f1 Customizer: Add an aria-expanded attribute to the Add Menu button to improve accessibility.
props afercia.
fixes #32791.

git-svn-id: https://develop.svn.wordpress.org/trunk@32971 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-27 10:04:32 +00:00
Scott Taylor
550763988b ob_get_contents() followed by ob_end_clean() can be replaced by ob_get_clean().
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32965 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-27 01:11:45 +00:00
Scott Taylor
e3bf970f2a Add missing access modifier to WP_Customize_Sidebar_Section::json().
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32877 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-19 22:05:08 +00:00
Dominik Schilling (ocean90)
cedda9aef1 Customizer: Decode HTML entities of panel/section titles.
Titles are now passed into Underscore templates but HTML-escaped, see #30737.

fixes #32670.

git-svn-id: https://develop.svn.wordpress.org/trunk@32822 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-17 19:47:58 +00:00
Dominik Schilling (ocean90)
c0a66eba79 Add menu management to the Customizer.
This brings in the Menu Customizer plugin: https://wordpress.org/plugins/menu-customizer/.

props celloexpressions, westonruter, valendesigns, voldemortensen, ocean90, adamsilverstein, kucrut, jorbin, designsimply, afercia, davidakennedy, obenland.
see #32576.

git-svn-id: https://develop.svn.wordpress.org/trunk@32806 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-16 22:07:08 +00:00
Weston Ruter
cc19680774 Add JS templates for Customizer Panels and Sections.
This extends the approach taken for Customizer Controls in #29572.

Props celloexpressions, westonruter, ocean90.
See #30737.


git-svn-id: https://develop.svn.wordpress.org/trunk@32658 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-30 00:02:13 +00:00
Scott Taylor
c8a44d437a Add @static* annotations where they are missing.
Initialize all static vars that are not, most to `null`.

See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32650 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-29 15:42:40 +00:00
Dominik Schilling (ocean90)
cced199188 Customizer: Replace accordion behavior of sections with a slide-in navigation.
This allows users to focus on the contents of the active section more easily and separating the navigation from the content/controls in the Customizer.

props valendesigns, celloexpressions.
see #31336.

git-svn-id: https://develop.svn.wordpress.org/trunk@32649 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-29 13:56:39 +00:00
Scott Taylor
9333337992 In class-wp-customize-*, clarify/add some @param/@return blocks. Disambiguate some functions that are trying to return the void response of another function they call internally.
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32535 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-21 22:04:29 +00:00
Dominik Schilling (ocean90)
a0fbde9fdc Customizer Theme Switcher: Use text input for the search field to prevent double tap issues for Preview and Customize buttons on iOS.
see #31794.

git-svn-id: https://develop.svn.wordpress.org/trunk@32127 602fd350-edb4-49c9-b593-d223f7449a82
2015-04-14 17:44:28 +00:00
Drew Jaynes
ab0b6a94c8 Document the $theme property in WP_Customize_Themes_Section.
Also adds a missing `@access` tag to the DocBlock for `WP_Customize_Themes_Section->render()`.

See [31533]. See #31888.


git-svn-id: https://develop.svn.wordpress.org/trunk@32033 602fd350-edb4-49c9-b593-d223f7449a82
2015-04-05 15:09:30 +00:00
Dominik Schilling (ocean90)
a05bbf7e7b Customizer Theme Switcher: Navigation streamlining.
* Detach Themes section from other controls
* Move to buttons to navigate back and forth
* Change titles based on current theme status, active/previewing
* Hide the active/previewing theme from the list of available themes

props folletto for the design concepts.
props designsimply, celloexpressions for initial patches.
props Team Gandalf.
see #31289.

git-svn-id: https://develop.svn.wordpress.org/trunk@31975 602fd350-edb4-49c9-b593-d223f7449a82
2015-04-01 22:50:10 +00:00
Dominik Schilling (ocean90)
365ed7a6cb Customizer Theme Switcher: Remove "Add New" references.
The current iteration takes you out of the customizer context, which isn't great UX and doesn't really fit into the flows targeted by this particular UI.

fixes #31837.

git-svn-id: https://develop.svn.wordpress.org/trunk@31968 602fd350-edb4-49c9-b593-d223f7449a82
2015-04-01 19:49:41 +00:00
Dominik Schilling (ocean90)
dad35768cf Theme Switcher: Use the global panel back button instead of adding a new one.
This ensures the back button is visible on iOS devices. Same as in [29610].

see #31794.

git-svn-id: https://develop.svn.wordpress.org/trunk@31918 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-28 22:08:32 +00:00
Dominik Schilling (ocean90)
4b3cc5c55e Improve newly added strings for i18n:
* Use a placeholder for the theme name to be able to reorder words.
* Uppercase D for "Theme Details" to match existing strings.
* Merge two revision date formats.
* Add translator comment to strings with placeholders.

props obenland.
see #31776.

git-svn-id: https://develop.svn.wordpress.org/trunk@31905 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-26 20:55:34 +00:00
Drew Jaynes
4331386507 Add a missing file header and clean up class DocBlocks in wp-includes/class-wp-customize-section.php.
* Adds a file header separate from the `WP_Customize_Section` class block
* Fixes formatting for the `WP_Customize_Section`, `WP_Customize_Themes_Section`, and `WP_Customize_Sidebar_Section` class DocBlocks.

See #31446.


git-svn-id: https://develop.svn.wordpress.org/trunk@31542 602fd350-edb4-49c9-b593-d223f7449a82
2015-02-25 08:12:12 +00:00
Mark Jaquith
f1bb5c2fd7 Add theme browsing and theme switching to the Customizer
* Brings into core the Customizer Theme Switcher feature plugin
* You can now browse, preview, and activate themes right from the Customizer

fixes #31303.
props celloexpressions, afercia, westonruter, folletto, designsimply

git-svn-id: https://develop.svn.wordpress.org/trunk@31533 602fd350-edb4-49c9-b593-d223f7449a82
2015-02-24 20:30:22 +00:00
Scott Taylor
349e5cb318 Adding a @return annotation to constructors is generally not recommended as a constructor does not have a meaningful return value. Constructors do not have meaningful return values, anything that is returned from here is discarded.
See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31126 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-10 06:53:48 +00:00
Scott Taylor
101e00314d In Customizer classes:
* `public final function` methods should be `final public function` - confusing Hack and aligns with PSR2
* Some methods were missing access modifiers

See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31083 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-08 06:01:08 +00:00
Dominik Schilling (ocean90)
104b31ae54 Customizer: Add panel/section type as CSS class to the HTML container.
see #28709.

git-svn-id: https://develop.svn.wordpress.org/trunk@30714 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-02 22:15:33 +00:00
Drew Jaynes (DrewAPicture)
e587324180 Docs Formatting: Backtick-escape inline code for all remaining dynamic hook docs in wp-includes/*.
Affects DocBlocks for the following hooks:
* `auth_post_meta_{$meta_key}`
* `term_links-$taxonomy`
* `customize_render_control_ . $this->id`
* `customize_render_panel_{$this->id}`
* `customize_render_section_{$this->id}`
* `customize_preview_{$this->id}`
* `customize_save_ . $this->id_data[ 'base' ]`
* `customize_update_ . $this->type`
* `customize_value_ . $this->id_data[ 'base' ]`
* `customize_sanitize_js_{$this->id}`
* `comment_form_field_{$name}`
* `comment_{$old_status}_to_{$new_status}`
* `comment_{$new_status}_{$comment->comment_type}`
* `extra_{$context}_headers`
* `get_template_part_{$slug}`
* `get_the_generator_{$type}`
* `get_{$adjacent}_post_join`
* `get_{$adjacent}_post_where`
* `get_{$adjacent}_post_sort`
* `{$adjacent}_post_rel_link`
* `{$adjacent}_post_link`
* `{$adjacent}_image_link`
* `blog_option_{$option}`
* `$permastructname . _rewrite_rules`
* `{$type}_template`
* `theme_mod_{$name}`
* `pre_set_theme_mod_$name`
* `current_theme_supports-{$feature}`
* `get_user_option_{$option}`
* `edit_user_{$field}`
* `pre_user_{$field}`
* `user_{$field}`

See #30552.


git-svn-id: https://develop.svn.wordpress.org/trunk@30656 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-30 12:09:56 +00:00
Drew Jaynes (DrewAPicture)
177c3e0c61 4.1 Docs Audit: Improve inline documentation for various properties and methods in the WP_Customize_Section, WP_Customize_Section, and WP_Customize_Sidebar_Section classes.
See #30469.


git-svn-id: https://develop.svn.wordpress.org/trunk@30608 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-28 11:09:32 +00:00
Dominik Schilling (ocean90)
8d476eee4f Customizer: Improve ability to filter active state for widget area Customizer sections.
* Mark panels, sections, controls as active if preview explicitly indicates.
* Introduce `WP_Customize_Sidebar_Section` PHP class, and `SidebarSection` JS class.
* Move logic for determining whether a sidebar section is active from the `SidebarControl` to `SidebarSection`.

props westonruter.
fixes #30235.

git-svn-id: https://develop.svn.wordpress.org/trunk@30329 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-13 12:18:01 +00:00
Dominik Schilling (ocean90)
507243a3e2 Customizer: Add stable sorting for panels, sections and controls in JS. Improve sorting in PHP.
props westonruter.
fixes #30225.

git-svn-id: https://develop.svn.wordpress.org/trunk@30214 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-03 21:34:44 +00:00
Dominik Schilling (ocean90)
90182015e7 Improve/introduce Customizer JavaScript models for Controls, Sections, and Panels.
* Introduce models for panels and sections.
* Introduce API to expand and focus a control, section or panel.
* Allow deep-linking to panels, sections, and controls inside of the Customizer.
* Clean up `accordion.js`, removing all Customizer-specific logic.
* Add initial unit tests for `wp.customize.Class` in `customize-base.js`.

https://make.wordpress.org/core/2014/10/27/toward-a-complete-javascript-api-for-the-customizer/ provides an overview of how to use the JavaScript API.

props westonruter, celloexpressions, ryankienstra.
see #28032, #28579, #28580, #28650, #28709, #29758.
fixes #29529.



git-svn-id: https://develop.svn.wordpress.org/trunk@30102 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-29 22:50:21 +00:00
Dominik Schilling (ocean90)
4ec10e82c2 Customizer: Increase default priority for a section to 160.
props celloexpressions.
fixes #29172.

git-svn-id: https://develop.svn.wordpress.org/trunk@29508 602fd350-edb4-49c9-b593-d223f7449a82
2014-08-15 19:35:52 +00:00
Andrew Nacin
112f9e9cc7 Separate WP_Customize_Panel from WP_Customize_Section.
props celloexpressions.
fixes #29197.


git-svn-id: https://develop.svn.wordpress.org/trunk@29487 602fd350-edb4-49c9-b593-d223f7449a82
2014-08-14 04:39:42 +00:00
Dominik Schilling (ocean90)
f22c2110ac Customizer: Fix ID attribute for a panel.
props celloexpressions.
fixes #29174.

git-svn-id: https://develop.svn.wordpress.org/trunk@29482 602fd350-edb4-49c9-b593-d223f7449a82
2014-08-13 18:25:04 +00:00
Sergey Biryukov
0121e36154 Customizer: Add screen reader text to announce that panels and sections are expandable.
props joedolson, ocean90.
fixes #27591.

git-svn-id: https://develop.svn.wordpress.org/trunk@29240 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-19 02:36:07 +00:00