Commit Graph

27 Commits

Author SHA1 Message Date
Andrew Nacin
04fc3508d3 Theme Customizer: Remove background_image_thumb when saving settings. fixes #20871.
This prevents the background_image and background_image_thumb settings from getting out of sync.
In 3.5 we can consider using background-size on Appearance > Background, eliminating _thumb.



git-svn-id: https://develop.svn.wordpress.org/trunk@21053 602fd350-edb4-49c9-b593-d223f7449a82
2012-06-11 20:49:45 +00:00
Ryan Boren
a24c284403 * Introduce remove_header_image(), reset_header_image(), set_header_image(), and get_header_image_data() for Custom_Image_Header.
* Handle all set/get of header theme mod through these methods.
* Use these methods in the customizer.

Props kovshenin, nacin, SergeyBiryukov, koopersmith.
fixes #20871


git-svn-id: https://develop.svn.wordpress.org/trunk@21037 602fd350-edb4-49c9-b593-d223f7449a82
2012-06-10 00:32:19 +00:00
Daryl Koopersmith
771ca21787 Theme Customizer: Ensure that JS color controls always use real color values, even if the server-side value is a hex value without a hash. fixes #20448, see #19910.
Adds WP_Customize_Setting->sanitize_js_callback and 'customize_sanitize_js_$settingID' filter, to filter values before they're passed to JS using WP_Customize_Setting->js_value().

Adds support for regular hex colors to the color picker.

Changes color methods:
* sanitize_hex_color() accepts 3 and 6 digit hex colors (with hashes) and the empty string.
* sanitize_hex_color_no_hash() accepts 3 and 6 digit hex colors (without hashes) and the empty string.
* maybe_hash_hex_color() ensures that a hex color has a hash, and otherwise leaves the value untouched.


git-svn-id: https://develop.svn.wordpress.org/trunk@20936 602fd350-edb4-49c9-b593-d223f7449a82
2012-05-26 18:44:31 +00:00
Daryl Koopersmith
621e3c1fc6 Theme Customizer: Properly escape customize settings when sending values to JS. Add WP_Customize_Setting->js_value(). fixes #20687, see #19910.
git-svn-id: https://develop.svn.wordpress.org/trunk@20809 602fd350-edb4-49c9-b593-d223f7449a82
2012-05-16 20:59:02 +00:00
Ryan Boren
7e4b88ad24 Add filters for the default to get_option() and get_site_option(). Provide default overrides in the customizer. Props Otto42. see #20448
git-svn-id: https://develop.svn.wordpress.org/trunk@20783 602fd350-edb4-49c9-b593-d223f7449a82
2012-05-14 16:45:32 +00:00
Daryl Koopersmith
3540b301af Theme Customizer: Migrate to an ajax-based solution for refreshing the preview and saving. see #20507, #19910.
* Use ajax-based saving, add saving indicator.
* Use ajax-based refreshing instead of form targets.
* Instead of using hidden inputs with prefixed names to track the canonical data, use the values stored in wp.customize. Encode the values as JSON before sending to avoid bugs with ids that contain square brackets (PHP mangles POST values with nested brackets).
* Use wp.customize.Previewer solely for the purpose of previewing; move the postMessage connection with the parent frame and other unrelated code snippets into the 'ready' handler.


git-svn-id: https://develop.svn.wordpress.org/trunk@20645 602fd350-edb4-49c9-b593-d223f7449a82
2012-04-30 15:46:17 +00:00
Daryl Koopersmith
dfd80ddc57 Theme Customizer: For clarity, wp.customize.Setting.method to wp.customize.Setting.transport. Add WP_Customize_Setting->transport to allow setting the transport method via PHP. see #19910.
git-svn-id: https://develop.svn.wordpress.org/trunk@20585 602fd350-edb4-49c9-b593-d223f7449a82
2012-04-25 16:04:51 +00:00
Daryl Koopersmith
26bba58bdb Theme Customizer: Properly pass arguments by reference to WP_Customize_Setting->multidimensional(). see #19910, [20136], #20163.
This is necessary for WP_Customize_Setting->multidimensional_replace() to work properly on multidimensional arrays (which was, as the name indicates, the point of the function in the first place).

git-svn-id: https://develop.svn.wordpress.org/trunk@20300 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-28 09:27:26 +00:00
Daryl Koopersmith
2ca07cdf2a Create WP_Customize_Control to separate the process of rendering a control from fetching, previewing, and saving its values. see #19910.
Many-to-many mapping between settings and controls.
* Settings and controls have been separated in both the PHP (WP_Customize_Setting, WP_Customize_Control) and the JS (wp.customize.Setting, wp.customize.Control).
* While most settings are tied to a single control, some require multiple controls. The 'header_textcolor' control is a good example: to hide the header text, header_textcolor is set to 'blank'.

Add 'Display Header Text' control.

A handful of miscellaneous bugfixes along the way.

Notes:
* Controls should be separated out a bit more; juggling type-specific arguments in the switch statement is rather inelegant.
* Page dropdowns are currently inactive and need to be re-linked.

git-svn-id: https://develop.svn.wordpress.org/trunk@20295 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-28 04:14:09 +00:00
Daryl Koopersmith
d8513a5ebb Theme Customizer: Add 'choose image' functionality to image controls. Rough first pass, using header images as an example. see #19910.
git-svn-id: https://develop.svn.wordpress.org/trunk@20290 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-25 21:18:32 +00:00
Daryl Koopersmith
e0773710ec Theme Customizer: First pass at image controls. Use header_image as the initial case. Add a 'removed' control param for upload/image controls to map 'removed' to a value other than the empty string. see #19910.
git-svn-id: https://develop.svn.wordpress.org/trunk@20278 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-24 04:35:13 +00:00
Daryl Koopersmith
b0f973d884 Theme Customizer: Add WP_Customizer_Setting->control_params, and wp.customize.Control.params to allow settings to pass arbitrary parameters to controls. Add the 'context' parameter to wp.customize.UploadControl. see #19910.
git-svn-id: https://develop.svn.wordpress.org/trunk@20276 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-24 01:02:29 +00:00
Daryl Koopersmith
95ab797033 Theme Customizer: Add background repeat, position, and attachment settings. Change visibility parameter to accept a string or array( , ). see #19910.
git-svn-id: https://develop.svn.wordpress.org/trunk@20263 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-22 08:07:44 +00:00
Daryl Koopersmith
f28d57454f Theme Customizer: Only show uploader 'remove' links when there is an image to remove. see #19910.
git-svn-id: https://develop.svn.wordpress.org/trunk@20261 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-22 07:30:44 +00:00
Daryl Koopersmith
7dc476bd8b Theme Customizer: Add a WP_Customize_Setting->visibility parameter to show/hide a control based upon the value of another control. Also shifts rendering the setting wrapper element into WP_Customize_Setting->render() and adds WP_Customize_Setting->render_content(). see #19910.
git-svn-id: https://develop.svn.wordpress.org/trunk@20260 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-22 07:17:26 +00:00
Daryl Koopersmith
999b57a813 Theme Customizer: Make dropdown-pages a native customize control. see #19910.
While the customize_render_control- action has been removed, we could still accomplish this with the customize_render_setting action. That said, in this case, avoiding native integration was a matter of minor semantics that ended in the same result.

git-svn-id: https://develop.svn.wordpress.org/trunk@20254 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-22 04:14:26 +00:00
Daryl Koopersmith
ca4b8f3eac Theme Customizer: Numerous API refinements and bugfixes. Add a theme_supports check for header_textcolor. see #19910.
* prepare_controls() now removes any settings and sections that return false for check_capabilities().
* Added maybe_render() methods to both settings and sections that call the protected render() methods.
* Stop firing front-end preview functionality when rendering the controls.
* Merged the WP_Customize_Setting->_render_type() method into WP_Customize_Setting->render().
* Removed the 'customize_render_control-' hook; use 'customize_render_setting' instead.
* Added a  property to sections and settings so they no longer rely on the  global. Hooray for dependency injection.
* Shifted calls to WP_Customize_Setting->enqueue() to the 'customize_controls_enqueue_scripts' action.
* Added a theme_supports check for the header_textcolor setting.

git-svn-id: https://develop.svn.wordpress.org/trunk@20248 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-21 22:55:43 +00:00
Daryl Koopersmith
c6043b2fa2 Theme Customizer: Improve WP_Customize_Setting->check_capabilities(). Add support for arrays in WP_Customize_Setting->capability and WP_Customize_Setting->theme_supports. Don't bail when WP_Customize_Setting->capability is empty. see #19910.
git-svn-id: https://develop.svn.wordpress.org/trunk@20232 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-21 04:59:57 +00:00
Daryl Koopersmith
2ab537f0b5 Theme Customizer: Improve sidebar CSS. Display most elements inline, refine padding/line-heights. see #19910.
git-svn-id: https://develop.svn.wordpress.org/trunk@20181 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-15 05:30:11 +00:00
Daryl Koopersmith
d254551dd7 Theme Customizer: First pass for upload controls, using background image as an example. Add a wrapper for Plupload that allows for custom upload UIs. see #19910.
wp.Uploader is a wrapper that provides a simple way to upload an attachment (using the wp_ajax_upload_attachment handler). It is intentionally decoupled from the UI. When an upload succeeds, it will receive the attachment information (id, url, meta, etc) as a JSON response. If the upload fails, the wrapper handles both WordPress and plupload errors through a single handler.

As todos, we should add drag classes for the uploader dropzone and account for the rough 100mb filesize limit in most browsers. The UI for the customizer upload controls could be improved as well.

git-svn-id: https://develop.svn.wordpress.org/trunk@20179 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-15 04:14:05 +00:00
Jon Cave
a6135e9995 Remove call-time pass by reference as it causes a compile time fatal error in PHP 5.4. See #20163.
git-svn-id: https://develop.svn.wordpress.org/trunk@20136 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-07 16:32:11 +00:00
Daryl Koopersmith
2ae706140a Theme Customizer: Color picker markup/CSS improvements. Part 1. see #19910.
git-svn-id: https://develop.svn.wordpress.org/trunk@20130 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-06 23:55:16 +00:00
Daryl Koopersmith
21e5a2e69e Theme Customizer: Add a Control object to better encapsulate different UI elements and make it easy to switch between hard refreshes and postMessage. see #19910.
git-svn-id: https://develop.svn.wordpress.org/trunk@20128 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-06 22:48:07 +00:00
Daryl Koopersmith
c7769fabfd Theme Customizer: Add working color pickers. First pass. see #19910.
git-svn-id: https://develop.svn.wordpress.org/trunk@20120 602fd350-edb4-49c9-b593-d223f7449a82
2012-03-06 02:03:50 +00:00
Daryl Koopersmith
233c465de2 Theme Customizer: Strip slashes when sanitizing previewed values. see #19910.
git-svn-id: https://develop.svn.wordpress.org/trunk@20028 602fd350-edb4-49c9-b593-d223f7449a82
2012-02-28 21:21:16 +00:00
Ryan Boren
89e9bcc1d6 Pinking shears 6-20000
git-svn-id: https://develop.svn.wordpress.org/trunk@20000 602fd350-edb4-49c9-b593-d223f7449a82
2012-02-27 19:46:52 +00:00
Daryl Koopersmith
9f29c06954 Introduce new theme customizer to replace theme preview. Rough first pass. props koopersmith, ocean90. see #19910.
Merges in http://plugins.svn.wordpress.org/gandalf/branches/dev/ rev 510148.

git-svn-id: https://develop.svn.wordpress.org/trunk@19995 602fd350-edb4-49c9-b593-d223f7449a82
2012-02-25 04:12:43 +00:00