Commit Graph

47 Commits

Author SHA1 Message Date
Drew Jaynes
fba0e92dc6 Docs: Clarify the file header summary for wp-includes/widgets.php, the top-level file for the core Widgets API.
Also fixes some minor grammar issues in the file description.

See #33413. See #33701.


git-svn-id: https://develop.svn.wordpress.org/trunk@33872 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-03 03:13:20 +00:00
Drew Jaynes
2fda97b15a Docs: Add inline-docblocks for the require_once() calls that now bring in the WP_Widget and WP_Widget_Factory classes, as well as general core widgets functionality, as of [33746].
See [33746]. See #33413.


git-svn-id: https://develop.svn.wordpress.org/trunk@33758 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-26 08:00:35 +00:00
Scott Taylor
6c71ee8d84 Widgets: move classes into their own files, widgets.php loads the new files, so this is 100% BC if someone is loading widgets.php directly. New files created using svn cp.
Creates: 
`class-wp-widget.php` 
`class-wp-widget-factory.php` 
`widget-functions.php` 

`widgets.php` contains only top-level code. Class files only contain classes. Functions file only contains functions.

See #33413.


git-svn-id: https://develop.svn.wordpress.org/trunk@33746 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-26 02:39:50 +00:00
Weston Ruter
d40b6eab66 Widgets: Switch back to using array_key_exists() instead of isset() for widget instance existence check.
Reverts unnecessary change in [32602] since `array_key_exists()` does actually work with `ArrayIterator` objects.

See #32474.
Fixes #33442.


git-svn-id: https://develop.svn.wordpress.org/trunk@33696 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-21 18:08:53 +00:00
Aaron Jorbin
4a60647ab7 Deprecate php4 style constructors
PHP7 is deprecating PHP4 style constructors, so we need to modify our code to have _construct methods that fire before the named PHP4 style constructors.  The PHP4 style constructors will call the PHP5 style constructor in case it is being called directly (usually via parent::METHOD).

This modifies external libraries to add PHP5 style constructors, but doesn't add a notice for when they are used.  In WordPress core code, PHP4 style constructors are being given a call to _deprecated_constructor. To the PHP4 style constructor I say "I know that I can't take no more | It ain't no lie | I wanna see you out that door | Baby, bye, bye, bye..."

Upstream: https://wiki.php.net/rfc/remove_php4_constructors

Props jdgrimes, netweb, jorbin
See #31982



git-svn-id: https://develop.svn.wordpress.org/trunk@32990 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-28 15:26:41 +00:00
Scott Taylor
5c568b5c31 Add missing doc blocks to widgets.php.
Cleanup `@return` values.

See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32639 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-28 16:19:51 +00:00
westonruter
6d34b6e075 Add support for WP_Widget::get_settings() returning ArrayIterator/ArrayObject instances.
Plugins can use `pre_option_widget_{$id_base}` filters to return `ArrayIterator`/`ArrayObject` instances instead of primitive arrays. This makes possible for widget instance data to be drawn from somewhere else than `wp_options`, such as a custom post type.

Add unit tests for widgets.

Fixes #32474.



git-svn-id: https://develop.svn.wordpress.org/trunk@32602 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-26 16:50:03 +00:00
Scott Taylor
46752a491e When calling unset(), it is unnecessary to immediately precede it with a call to isset().
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32545 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-22 05:46:47 +00:00
Dominik Schilling (ocean90)
b0d6757918 Use HTTPS URLs for codex.wordpress.org.
see #27115.

git-svn-id: https://develop.svn.wordpress.org/trunk@32116 602fd350-edb4-49c9-b593-d223f7449a82
2015-04-12 21:28:58 +00:00
Sergey Biryukov
9706b074c8 Translator comment should just reference placeholder numbers, not the actual placeholders.
see #31675.

git-svn-id: https://develop.svn.wordpress.org/trunk@32112 602fd350-edb4-49c9-b593-d223f7449a82
2015-04-11 21:45:14 +00:00
Sergey Biryukov
d36c454684 Explain all placeholders in translator comment, not just the first one.
see [32110], #31675.

git-svn-id: https://develop.svn.wordpress.org/trunk@32111 602fd350-edb4-49c9-b593-d223f7449a82
2015-04-11 21:39:36 +00:00
Mark Jaquith
0188ec7f1c Tell developers how to correctly silence register_sidebar() notices.
* If we just tell them they they should set an `id` parameter, they might set an arbitrary one on an existing (i.e. not in-development) theme, causing widgets to be lost.
* This way, we tell them to set it to the auto-generated `id` that the sidebar already has.
* Widget content is not lost, and now their sidebar has a concrete handle.

fixes #31675

git-svn-id: https://develop.svn.wordpress.org/trunk@32110 602fd350-edb4-49c9-b593-d223f7449a82
2015-04-11 21:33:14 +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
Mark Jaquith
490fb1bf52 Trigger _doing_it_wrong() if register_sidebar() is not passed an id
* If you don't pass an `id`, WP sets an auto-increment one for you.
* But this depends on order of sidebar definition.
* Change the order or remove a sidebar? They jumble.

fixes #31675
props tschutter, valendesigns

git-svn-id: https://develop.svn.wordpress.org/trunk@31850 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-20 18:29:13 +00:00
Dominik Schilling (ocean90)
9c21bedcbb Revert [31729] since <aside> seems not to be the appropriate HTML5 tag.
see #30556.

git-svn-id: https://develop.svn.wordpress.org/trunk@31826 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-18 22:25:20 +00:00
Dominik Schilling (ocean90)
bea0628880 Introduce HTML5 widgets support.
When a theme supports HTML5 widgets via `add_theme_support( 'html5', 'widgets' )`, aside will be used instead of list markup.

props LeoPeo, valendesigns.
fixes #30556.

git-svn-id: https://develop.svn.wordpress.org/trunk@31729 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-11 20:43:25 +00:00
Scott Taylor
97ad987b7c [31684] has BC issues, revert it.
Props nacin.
See #30799.



git-svn-id: https://develop.svn.wordpress.org/trunk@31685 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-09 02:35:36 +00:00
Scott Taylor
417aa9b84d Remove the PHP4 constructor from WP_Widget.
See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31684 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-09 02:24:43 +00:00
Scott Taylor
5acc6bdb58 In PHP 5.0.0, is_a() became deprecated in favour of the instanceof operator. Calling is_a() would result in an E_STRICT warning.
In PHP 5.3.0, `is_a()` is no longer deprecated, and will therefore no longer throw `E_STRICT` warnings.

To avoid warnings in PHP < 5.3.0, convert all `is_a()` calls to `$var instanceof WP_Class` calls.

`instanceof` does not throw any error if the variable being tested is not an object, it simply returns `false`.

Props markoheijnen, wonderboymusic.
Fixes #25672.


git-svn-id: https://develop.svn.wordpress.org/trunk@31188 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-16 01:05:52 +00:00
Scott Taylor
469164785f Pinking Shears.
See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31077 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-08 05:02:05 +00:00
Drew Jaynes (DrewAPicture)
3913b26b24 Fix formatting in the DocBlock for wp_get_sidebars_widgets().
See #30315.


git-svn-id: https://develop.svn.wordpress.org/trunk@30779 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-07 20:14:10 +00:00
Drew Jaynes (DrewAPicture)
02f8434c28 Flesh out and fix formatting in the DocBlock for wp_register_widget_control().
Includes:
* Added todos for documenting `$options` in the hash notation style
* Backtick-escaping and general formatting

See #30315.


git-svn-id: https://develop.svn.wordpress.org/trunk@30778 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-07 20:12:50 +00:00
Drew Jaynes (DrewAPicture)
292a65f737 Flesh out information in the DocBlock for wp_register_sidebar_widget().
Includes:
* Documenting the `$options` parameter in hash notation style
* Converting `@uses` tags to `@global`
* Various backtick-escaping.

See #30315.


git-svn-id: https://develop.svn.wordpress.org/trunk@30776 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-07 20:10:37 +00:00
Drew Jaynes (DrewAPicture)
3e0e0f453e Introduce documentation for three methods in WP_Widget_Factory: register(), unregister(), _register_widgets().
See #30315.


git-svn-id: https://develop.svn.wordpress.org/trunk@30774 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-07 20:07:05 +00:00
Drew Jaynes (DrewAPicture)
3c1a8e1407 Introduce documentation for the $id_base, $name, $widget_options, $control_options, $number, $id, and $updated properties in `WP_Widget'.
See #30315.


git-svn-id: https://develop.svn.wordpress.org/trunk@30773 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-07 20:04:43 +00:00
Drew Jaynes (DrewAPicture)
2f25ec0773 Document the default arguments for the_widget() in the hash notation style.
Props coffee2code.
See #28298.


git-svn-id: https://develop.svn.wordpress.org/trunk@30770 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-07 11:03:51 +00:00
Drew Jaynes (DrewAPicture)
bf507bd3d0 Document the default arguments for register_sidebars() in the hash notation style.
Props coffee2code.
See #28298.


git-svn-id: https://develop.svn.wordpress.org/trunk@30769 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-07 11:00:57 +00:00
Drew Jaynes (DrewAPicture)
4315ce7f9d Document the default arguments for register_sidebar() in the hash notation style.
Props coffee2code.
See #28298.


git-svn-id: https://develop.svn.wordpress.org/trunk@30745 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-05 03:37:48 +00:00
Drew Jaynes (DrewAPicture)
2f64100369 Improve inline documentation for four methods in WP_Widget: get_field_id(), display_callback(), update_callback(), and form_callback().
Props jazzs3quence for the initial patch.
See #30315.


git-svn-id: https://develop.svn.wordpress.org/trunk@30691 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-01 19:34:25 +00:00
Scott Taylor
9e6096c89a Improve the @param docs for src/wp-includes/widgets.php.
See #30224.


git-svn-id: https://develop.svn.wordpress.org/trunk@30665 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-30 22:04:23 +00:00
Drew Jaynes (DrewAPicture)
c4d33d3d75 Add some missing inline documentation for methods in the WP_Widget class in wp-includes/widgets.php.
Props ericlewis, jazzs3quence.
See #30315.


git-svn-id: https://develop.svn.wordpress.org/trunk@30382 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-18 22:57:34 +00:00
Drew Jaynes (DrewAPicture)
3cc10d77a0 Remove redundant and erroneous @uses tag from most core inline documentation.
Per our inline documentation standards, no further use of the `@uses` tag is recommended as used and used-by relationships can be derived through other means. This removes most uses of the tag in core documentation, with remaining tags to be converted to `@global` or `@see` as they apply.

Fixes #30191.


git-svn-id: https://develop.svn.wordpress.org/trunk@30105 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-30 01:04:55 +00:00
Dominik Schilling (ocean90)
ab128698ad Customizer: Change instances of "Theme Customizer" to just "Customizer", as the Customizer isn't necessarily theme-specific.
Also capitalize "Customizer".
See also https://make.wordpress.org/core/2014/07/08/customizer-improvements-in-4-0/.

props studionashvegas, tareq1988.
fixes #29947.

git-svn-id: https://develop.svn.wordpress.org/trunk@29903 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-15 17:20:34 +00:00
Drew Jaynes (DrewAPicture)
d9564736b8 Fix a typo in the PHPDoc for wp_register_sidebar_widget().
Props Jonnyauk.
Fixes #29007.


git-svn-id: https://develop.svn.wordpress.org/trunk@29276 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-23 17:20:10 +00:00
Sergey Biryukov
126b248fa0 is_active_widget() should skip orphaned widgets.
props Ninos Ego.
fixes #28810.

git-svn-id: https://develop.svn.wordpress.org/trunk@29064 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-10 15:48:54 +00:00
Scott Taylor
3e054a2c7e Add public access modifier to methods/members of WP_Widget and WP_Widget_Factory.
See #27881, #22234.


git-svn-id: https://develop.svn.wordpress.org/trunk@28527 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-19 15:42:00 +00:00
Scott Taylor
e47eb14575 In WP_Widget::update_callback(), $sidebars_widgets is unused.
See #27882.


git-svn-id: https://develop.svn.wordpress.org/trunk@28338 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-07 03:51:31 +00:00
Andrew Nacin
9223056bb3 Fix logic inversion in [28124] to ensure widgets stay with themes during a theme switch.
fixes #27897.


git-svn-id: https://develop.svn.wordpress.org/trunk@28161 602fd350-edb4-49c9-b593-d223f7449a82
2014-04-19 18:11:24 +00:00
Andrew Nacin
a8efcb993f Customizer: Properly handle widget settings when activating a previewed theme.
props westonruter, ocean90, gcorne.
fixes #27767.


git-svn-id: https://develop.svn.wordpress.org/trunk@28124 602fd350-edb4-49c9-b593-d223f7449a82
2014-04-14 22:45:40 +00:00
Dominik Schilling (ocean90)
bccc4ea750 Fix whitespace around $GLOBALS['_wp_deprecated_widgets_callbacks'] .
git-svn-id: https://develop.svn.wordpress.org/trunk@27967 602fd350-edb4-49c9-b593-d223f7449a82
2014-04-06 18:49:48 +00:00
Dominik Schilling (ocean90)
a2c020e068 WP_Widget: Introduce is_preview() method.
With the Widget Customizer it's possible that previewed widgets can leak data outside of Customizer, when the widget uses the cache API.
The Customizer calls the regular update callback which should already refresh the cache. Since cache additions aren't blocked yet the cache can be filled with preview data.
To prevent this issue `WP_Widget::is_preview()` will return true, when `$wp_customize->is_preview()` returns true. If `is_preview()` is true, cache additions are suspended via `wp_suspend_cache_addition()`. Make sure your object cache drop-in has implemented `wp_suspend_cache_addition()`.

`is_preview()` can/should also be used inside `WP_Widget::widget()`, see WP_Widget_Recent_Posts or WP_Widget_Recent_Comments for examples.

For more info see IRC logs: http://irclogs.wordpress.org/chanlog.php?channel=wordpress-dev&day=2014-04-02&sort=asc#m824279

props westonruter.
fixes #27538.

git-svn-id: https://develop.svn.wordpress.org/trunk@27966 602fd350-edb4-49c9-b593-d223f7449a82
2014-04-06 18:47:46 +00:00
Drew Jaynes (DrewAPicture)
cfaf65d392 Inline documentation for hooks in wp-includes/widgets.php.
Props eliorivero and Nessworthy for the initial patches. Props kpdesign.
Fixes #27129.


git-svn-id: https://develop.svn.wordpress.org/trunk@27870 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-31 07:29:29 +00:00
Dominik Schilling (ocean90)
a339826668 Widget Customizer: Make temp hooks final and add inline docs.
New hooks are `dynamic_sidebar_before`, `dynamic_sidebar_after`, `dynamic_sidebar_has_widgets ` and `is_active_sidebar`.
Remove obsolete use of hacky dynamic_sidebar hook.

props westonruter, DrewAPicture.
fixes #25368.

git-svn-id: https://develop.svn.wordpress.org/trunk@27543 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-14 20:30:54 +00:00
Sergey Biryukov
ddb1f3e7ca Remove unused code from WP_Widget::update_callback().
props OriginalEXE.
fixes #24733.

git-svn-id: https://develop.svn.wordpress.org/trunk@27224 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-21 18:50:08 +00:00
Drew Jaynes
bd39e26032 First there were two, and now there are three -- in the @since versions that came before and that shall be. And so it will be, says nacin.
Props JustinSainton, SergeyBiryukov, DrewAPicture.
Fixes #26713.


git-svn-id: https://develop.svn.wordpress.org/trunk@26868 602fd350-edb4-49c9-b593-d223f7449a82
2013-12-24 18:56:05 +00:00
Andrew Nacin
53a59c01a8 Temporary hooks for the widgets feature team in dynamic_sidebar() and is_active_sidebar().
props westonruter.
fixes #25368.


git-svn-id: https://develop.svn.wordpress.org/trunk@25580 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-23 20:13:58 +00:00
Andrew Nacin
b43712e0f7 New develop.svn.wordpress.org repository based on the old core.svn repository.
* All WordPress files move to a src/ directory.
 * New task runner (Grunt), configured to copy a built WordPress to build/.
 * svn:ignore and .gitignore for Gruntfile.js, wp-config.php, and node.js.
 * Remove Akismet external from develop.svn. Still exists in core.svn.
 * Drop minified files from src/. The build process will now generate these.

props koop.
see #24976.

and see http://wp.me/p2AvED-1AI.



git-svn-id: https://develop.svn.wordpress.org/trunk@25001 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-07 05:25:25 +00:00