2010-10-31 10:37:15 +01:00
|
|
|
<?php
|
|
|
|
/**
|
2015-10-17 17:13:25 +02:00
|
|
|
* List Table API: WP_MS_Themes_List_Table class
|
2010-10-31 10:37:15 +01:00
|
|
|
*
|
|
|
|
* @package WordPress
|
2015-10-17 17:13:25 +02:00
|
|
|
* @subpackage Administration
|
|
|
|
* @since 3.1.0
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Core class used to implement displaying themes in a list table for the network admin.
|
|
|
|
*
|
2010-10-31 10:37:15 +01:00
|
|
|
* @since 3.1.0
|
2015-10-17 17:13:25 +02:00
|
|
|
*
|
|
|
|
* @see WP_List_Table
|
2010-10-31 10:37:15 +01:00
|
|
|
*/
|
2010-11-04 09:07:03 +01:00
|
|
|
class WP_MS_Themes_List_Table extends WP_List_Table {
|
2010-11-17 19:47:34 +01:00
|
|
|
|
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-19 03:17:15 +02:00
|
|
|
public $site_id;
|
|
|
|
public $is_site_themes;
|
2010-10-31 10:37:15 +01:00
|
|
|
|
2015-01-12 17:17:22 +01:00
|
|
|
private $has_items;
|
|
|
|
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
/**
|
|
|
|
* Whether to show the auto-updates UI.
|
|
|
|
*
|
|
|
|
* @since 5.5.0
|
|
|
|
*
|
|
|
|
* @var bool True if auto-updates UI is to be shown, false otherwise.
|
|
|
|
*/
|
|
|
|
protected $show_autoupdates = true;
|
|
|
|
|
2014-08-10 04:18:17 +02:00
|
|
|
/**
|
|
|
|
* Constructor.
|
|
|
|
*
|
|
|
|
* @since 3.1.0
|
|
|
|
*
|
|
|
|
* @see WP_List_Table::__construct() for more information on default arguments.
|
|
|
|
*
|
2015-05-28 23:41:30 +02:00
|
|
|
* @global string $status
|
|
|
|
* @global int $page
|
|
|
|
*
|
2014-08-10 04:18:17 +02:00
|
|
|
* @param array $args An associative array of arguments.
|
|
|
|
*/
|
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-19 03:17:15 +02:00
|
|
|
public function __construct( $args = array() ) {
|
2010-10-31 10:37:15 +01:00
|
|
|
global $status, $page;
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
parent::__construct(
|
|
|
|
array(
|
|
|
|
'plural' => 'themes',
|
|
|
|
'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
|
|
|
|
)
|
|
|
|
);
|
2012-09-19 14:43:31 +02:00
|
|
|
|
2012-02-28 21:13:21 +01:00
|
|
|
$status = isset( $_REQUEST['theme_status'] ) ? $_REQUEST['theme_status'] : 'all';
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
if ( ! in_array( $status, array( 'all', 'enabled', 'disabled', 'upgrade', 'search', 'broken', 'auto-update-enabled', 'auto-update-disabled' ), true ) ) {
|
2010-10-31 10:37:15 +01:00
|
|
|
$status = 'all';
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-10-31 10:37:15 +01:00
|
|
|
|
|
|
|
$page = $this->get_pagenum();
|
|
|
|
|
2015-09-22 08:06:25 +02:00
|
|
|
$this->is_site_themes = ( 'site-themes-network' === $this->screen->id ) ? true : false;
|
2010-11-12 23:44:08 +01:00
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( $this->is_site_themes ) {
|
2020-10-08 23:15:13 +02:00
|
|
|
$this->site_id = isset( $_REQUEST['id'] ) ? (int) $_REQUEST['id'] : 0;
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
|
|
|
|
$this->show_autoupdates = wp_is_auto_update_enabled_for_type( 'theme' ) &&
|
|
|
|
! $this->is_site_themes && current_user_can( 'update_themes' );
|
2010-10-31 10:37:15 +01:00
|
|
|
}
|
2010-11-17 19:47:34 +01:00
|
|
|
|
2015-05-29 22:17:26 +02:00
|
|
|
/**
|
|
|
|
* @return array
|
|
|
|
*/
|
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-19 03:17:15 +02:00
|
|
|
protected function get_table_classes() {
|
2020-01-29 01:45:18 +01:00
|
|
|
// @todo Remove and add CSS for .themes.
|
2014-07-17 11:14:16 +02:00
|
|
|
return array( 'widefat', 'plugins' );
|
2010-12-23 15:34:14 +01:00
|
|
|
}
|
|
|
|
|
2015-05-29 22:17:26 +02:00
|
|
|
/**
|
|
|
|
* @return bool
|
|
|
|
*/
|
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-19 03:17:15 +02:00
|
|
|
public function ajax_user_can() {
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( $this->is_site_themes ) {
|
2012-06-30 14:40:25 +02:00
|
|
|
return current_user_can( 'manage_sites' );
|
2017-12-01 00:11:00 +01:00
|
|
|
} else {
|
2012-06-30 14:40:25 +02:00
|
|
|
return current_user_can( 'manage_network_themes' );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-10-31 10:37:15 +01:00
|
|
|
}
|
|
|
|
|
2015-05-28 23:41:30 +02:00
|
|
|
/**
|
|
|
|
* @global string $status
|
|
|
|
* @global array $totals
|
|
|
|
* @global int $page
|
|
|
|
* @global string $orderby
|
|
|
|
* @global string $order
|
|
|
|
* @global string $s
|
|
|
|
*/
|
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-19 03:17:15 +02:00
|
|
|
public function prepare_items() {
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
global $status, $totals, $page, $orderby, $order, $s;
|
2010-10-31 10:37:15 +01:00
|
|
|
|
|
|
|
wp_reset_vars( array( 'orderby', 'order', 's' ) );
|
|
|
|
|
|
|
|
$themes = array(
|
2014-02-04 09:25:13 +01:00
|
|
|
/**
|
2016-05-22 20:01:30 +02:00
|
|
|
* Filters the full array of WP_Theme objects to list in the Multisite
|
2014-02-04 09:25:13 +01:00
|
|
|
* themes list table.
|
|
|
|
*
|
|
|
|
* @since 3.1.0
|
|
|
|
*
|
2018-03-22 21:27:32 +01:00
|
|
|
* @param WP_Theme[] $all Array of WP_Theme objects to display in the list table.
|
2014-02-04 09:25:13 +01:00
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
'all' => apply_filters( 'all_themes', wp_get_themes() ),
|
|
|
|
'search' => array(),
|
|
|
|
'enabled' => array(),
|
2010-10-31 10:37:15 +01:00
|
|
|
'disabled' => array(),
|
2017-12-01 00:11:00 +01:00
|
|
|
'upgrade' => array(),
|
|
|
|
'broken' => $this->is_site_themes ? array() : wp_get_themes( array( 'errors' => true ) ),
|
2010-10-31 10:37:15 +01:00
|
|
|
);
|
2010-11-01 00:26:38 +01:00
|
|
|
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
if ( $this->show_autoupdates ) {
|
|
|
|
$auto_updates = (array) get_site_option( 'auto_update_themes', array() );
|
|
|
|
|
|
|
|
$themes['auto-update-enabled'] = array();
|
|
|
|
$themes['auto-update-disabled'] = array();
|
|
|
|
}
|
|
|
|
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
if ( $this->is_site_themes ) {
|
2010-11-11 16:16:16 +01:00
|
|
|
$themes_per_page = $this->get_items_per_page( 'site_themes_network_per_page' );
|
2017-12-01 00:11:00 +01:00
|
|
|
$allowed_where = 'site';
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
} else {
|
|
|
|
$themes_per_page = $this->get_items_per_page( 'themes_network_per_page' );
|
2017-12-01 00:11:00 +01:00
|
|
|
$allowed_where = 'network';
|
2010-11-11 16:16:16 +01:00
|
|
|
}
|
2010-11-17 19:47:34 +01:00
|
|
|
|
2019-07-01 14:52:01 +02:00
|
|
|
$current = get_site_transient( 'update_themes' );
|
|
|
|
$maybe_update = current_user_can( 'update_themes' ) && ! $this->is_site_themes && $current;
|
2010-10-31 10:37:15 +01:00
|
|
|
|
|
|
|
foreach ( (array) $themes['all'] as $key => $theme ) {
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
if ( $this->is_site_themes && $theme->is_allowed( 'network' ) ) {
|
|
|
|
unset( $themes['all'][ $key ] );
|
|
|
|
continue;
|
2010-10-31 10:37:15 +01:00
|
|
|
}
|
2010-11-08 22:52:54 +01:00
|
|
|
|
2012-03-21 17:19:27 +01:00
|
|
|
if ( $maybe_update && isset( $current->response[ $key ] ) ) {
|
|
|
|
$themes['all'][ $key ]->update = true;
|
2017-12-01 00:11:00 +01:00
|
|
|
$themes['upgrade'][ $key ] = $themes['all'][ $key ];
|
2012-03-21 17:19:27 +01:00
|
|
|
}
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
$filter = $theme->is_allowed( $allowed_where, $this->site_id ) ? 'enabled' : 'disabled';
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
$themes[ $filter ][ $key ] = $themes['all'][ $key ];
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
|
2020-08-28 00:24:07 +02:00
|
|
|
$theme_data = array(
|
|
|
|
'update_supported' => isset( $theme->update_supported ) ? $theme->update_supported : true,
|
|
|
|
);
|
|
|
|
|
|
|
|
// Extra info if known. array_merge() ensures $theme_data has precedence if keys collide.
|
|
|
|
if ( isset( $current->response[ $key ] ) ) {
|
|
|
|
$theme_data = array_merge( (array) $current->response[ $key ], $theme_data );
|
|
|
|
} elseif ( isset( $current->no_update[ $key ] ) ) {
|
|
|
|
$theme_data = array_merge( (array) $current->no_update[ $key ], $theme_data );
|
|
|
|
} else {
|
|
|
|
$theme_data['update_supported'] = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
$theme->update_supported = $theme_data['update_supported'];
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Create the expected payload for the auto_update_theme filter, this is the same data
|
|
|
|
* as contained within $updates or $no_updates but used when the Theme is not known.
|
|
|
|
*/
|
|
|
|
$filter_payload = array(
|
|
|
|
'theme' => $key,
|
|
|
|
'new_version' => '',
|
|
|
|
'url' => '',
|
|
|
|
'package' => '',
|
|
|
|
'requires' => '',
|
|
|
|
'requires_php' => '',
|
|
|
|
);
|
|
|
|
|
2020-10-20 19:44:06 +02:00
|
|
|
$filter_payload = (object) array_merge( $filter_payload, array_intersect_key( $theme_data, $filter_payload ) );
|
2020-08-28 00:24:07 +02:00
|
|
|
|
2020-10-20 19:39:07 +02:00
|
|
|
$auto_update_forced = wp_is_auto_update_forced_for_item( 'theme', null, $filter_payload );
|
2020-08-28 00:24:07 +02:00
|
|
|
|
|
|
|
if ( ! is_null( $auto_update_forced ) ) {
|
|
|
|
$theme->auto_update_forced = $auto_update_forced;
|
|
|
|
}
|
|
|
|
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
if ( $this->show_autoupdates ) {
|
2020-08-28 00:24:07 +02:00
|
|
|
$enabled = in_array( $key, $auto_updates, true ) && $theme->update_supported;
|
|
|
|
if ( isset( $theme->auto_update_forced ) ) {
|
|
|
|
$enabled = (bool) $theme->auto_update_forced;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( $enabled ) {
|
|
|
|
$themes['auto-update-enabled'][ $key ] = $theme;
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
} else {
|
2020-08-28 00:24:07 +02:00
|
|
|
$themes['auto-update-disabled'][ $key ] = $theme;
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
}
|
|
|
|
}
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
}
|
2010-10-31 10:37:15 +01:00
|
|
|
|
|
|
|
if ( $s ) {
|
2017-12-01 00:11:00 +01:00
|
|
|
$status = 'search';
|
2013-09-05 18:34:09 +02:00
|
|
|
$themes['search'] = array_filter( array_merge( $themes['all'], $themes['broken'] ), array( $this, '_search_callback' ) );
|
2010-10-31 10:37:15 +01:00
|
|
|
}
|
|
|
|
|
2020-11-12 21:42:10 +01:00
|
|
|
$totals = array();
|
|
|
|
$js_themes = array();
|
2017-12-01 00:11:00 +01:00
|
|
|
foreach ( $themes as $type => $list ) {
|
2020-11-12 21:42:10 +01:00
|
|
|
$totals[ $type ] = count( $list );
|
|
|
|
$js_themes[ $type ] = array_keys( $list );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-10-31 10:37:15 +01:00
|
|
|
|
2020-04-05 05:02:11 +02:00
|
|
|
if ( empty( $themes[ $status ] ) && ! in_array( $status, array( 'all', 'search' ), true ) ) {
|
2010-10-31 10:37:15 +01:00
|
|
|
$status = 'all';
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-10-31 10:37:15 +01:00
|
|
|
|
|
|
|
$this->items = $themes[ $status ];
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
WP_Theme::sort_by_name( $this->items );
|
|
|
|
|
|
|
|
$this->has_items = ! empty( $themes['all'] );
|
2010-10-31 10:37:15 +01:00
|
|
|
$total_this_page = $totals[ $status ];
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
wp_localize_script(
|
2018-08-17 03:51:36 +02:00
|
|
|
'updates',
|
|
|
|
'_wpUpdatesItemCounts',
|
|
|
|
array(
|
2020-11-12 21:42:10 +01:00
|
|
|
'themes' => $js_themes,
|
2017-12-01 00:11:00 +01:00
|
|
|
'totals' => wp_get_update_data(),
|
|
|
|
)
|
|
|
|
);
|
Update/Install: Shiny Updates v2.
Gone are the days of isolation and feelings of "meh", brought on by The Bleak Screen of Sadness. For a shiny knight has arrived to usher our plugins and themes along their arduous journey of installation, updates, and the inevitable fate of ultimate deletion.
Props swissspidy, adamsilverstein, mapk, afragen, ocean90, ryelle, j-falk, michael-arestad, melchoyce, DrewAPicture, AdamSoucie, ethitter, pento, dd32, kraftbj, Ipstenu, jorbin, afercia, stephdau, paulwilde, jipmoors, khag7, svovaf, jipmoors, obenland.
Fixes #22029, #25828, #31002, #31529, #31530, #31773, #33637, #35032.
Built from https://develop.svn.wordpress.org/trunk@37714
git-svn-id: http://core.svn.wordpress.org/trunk@37680 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-06-15 18:37:29 +02:00
|
|
|
|
2010-10-31 10:37:15 +01:00
|
|
|
if ( $orderby ) {
|
|
|
|
$orderby = ucfirst( $orderby );
|
2017-12-01 00:11:00 +01:00
|
|
|
$order = strtoupper( $order );
|
2010-10-31 10:37:15 +01:00
|
|
|
|
2020-02-09 17:55:09 +01:00
|
|
|
if ( 'Name' === $orderby ) {
|
2015-09-22 08:06:25 +02:00
|
|
|
if ( 'ASC' === $order ) {
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
$this->items = array_reverse( $this->items );
|
2015-09-22 08:06:25 +02:00
|
|
|
}
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
} else {
|
2013-09-05 18:34:09 +02:00
|
|
|
uasort( $this->items, array( $this, '_order_callback' ) );
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
}
|
2010-10-31 10:37:15 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
$start = ( $page - 1 ) * $themes_per_page;
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( $total_this_page > $themes_per_page ) {
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
$this->items = array_slice( $this->items, $start, $themes_per_page, true );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-10-31 10:37:15 +01:00
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
$this->set_pagination_args(
|
|
|
|
array(
|
|
|
|
'total_items' => $total_this_page,
|
|
|
|
'per_page' => $themes_per_page,
|
|
|
|
)
|
|
|
|
);
|
2010-10-31 10:37:15 +01:00
|
|
|
}
|
2010-11-17 19:47:34 +01:00
|
|
|
|
2014-12-01 01:33:23 +01:00
|
|
|
/**
|
|
|
|
* @param WP_Theme $theme
|
|
|
|
* @return bool
|
|
|
|
*/
|
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-19 03:17:15 +02:00
|
|
|
public function _search_callback( $theme ) {
|
2015-05-29 17:43:29 +02:00
|
|
|
static $term = null;
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( is_null( $term ) ) {
|
2013-03-01 18:00:25 +01:00
|
|
|
$term = wp_unslash( $_REQUEST['s'] );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-11-01 00:26:38 +01:00
|
|
|
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
foreach ( array( 'Name', 'Description', 'Author', 'Author', 'AuthorURI' ) as $field ) {
|
|
|
|
// Don't mark up; Do translate.
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( false !== stripos( $theme->display( $field, false, true ), $term ) ) {
|
2010-10-31 10:37:15 +01:00
|
|
|
return true;
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
}
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( false !== stripos( $theme->get_stylesheet(), $term ) ) {
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
return true;
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( false !== stripos( $theme->get_template(), $term ) ) {
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
return true;
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-10-31 10:37:15 +01:00
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
// Not used by any core columns.
|
2014-12-01 01:33:23 +01:00
|
|
|
/**
|
|
|
|
* @global string $orderby
|
|
|
|
* @global string $order
|
|
|
|
* @param array $theme_a
|
|
|
|
* @param array $theme_b
|
|
|
|
* @return int
|
|
|
|
*/
|
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-19 03:17:15 +02:00
|
|
|
public function _order_callback( $theme_a, $theme_b ) {
|
2010-10-31 10:37:15 +01:00
|
|
|
global $orderby, $order;
|
|
|
|
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
$a = $theme_a[ $orderby ];
|
|
|
|
$b = $theme_b[ $orderby ];
|
2010-10-31 10:37:15 +01:00
|
|
|
|
2020-09-10 16:21:09 +02:00
|
|
|
if ( $a === $b ) {
|
2010-10-31 10:37:15 +01:00
|
|
|
return 0;
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-10-31 10:37:15 +01:00
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( 'DESC' === $order ) {
|
2010-10-31 10:37:15 +01:00
|
|
|
return ( $a < $b ) ? 1 : -1;
|
2017-12-01 00:11:00 +01:00
|
|
|
} else {
|
2010-10-31 10:37:15 +01:00
|
|
|
return ( $a < $b ) ? -1 : 1;
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-10-31 10:37:15 +01:00
|
|
|
}
|
|
|
|
|
2015-05-29 23:32:24 +02:00
|
|
|
/**
|
|
|
|
*/
|
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-19 03:17:15 +02:00
|
|
|
public function no_items() {
|
2015-10-06 19:35:23 +02:00
|
|
|
if ( $this->has_items ) {
|
2010-10-31 10:37:15 +01:00
|
|
|
_e( 'No themes found.' );
|
2015-10-06 19:35:23 +02:00
|
|
|
} else {
|
2020-06-03 12:51:13 +02:00
|
|
|
_e( 'No themes are currently available.' );
|
2015-10-06 19:35:23 +02:00
|
|
|
}
|
2010-10-31 10:37:15 +01:00
|
|
|
}
|
|
|
|
|
2015-05-28 23:41:30 +02:00
|
|
|
/**
|
|
|
|
* @return array
|
|
|
|
*/
|
2014-07-12 05:27:14 +02:00
|
|
|
public function get_columns() {
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
$columns = array(
|
2010-10-31 10:37:15 +01:00
|
|
|
'cb' => '<input type="checkbox" />',
|
|
|
|
'name' => __( 'Theme' ),
|
|
|
|
'description' => __( 'Description' ),
|
|
|
|
);
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
|
|
|
|
if ( $this->show_autoupdates ) {
|
|
|
|
$columns['auto-updates'] = __( 'Automatic Updates' );
|
|
|
|
}
|
|
|
|
|
|
|
|
return $columns;
|
2010-10-31 10:37:15 +01:00
|
|
|
}
|
|
|
|
|
2015-05-29 22:17:26 +02:00
|
|
|
/**
|
|
|
|
* @return array
|
|
|
|
*/
|
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-19 03:17:15 +02:00
|
|
|
protected function get_sortable_columns() {
|
2010-10-31 10:37:15 +01:00
|
|
|
return array(
|
2017-12-01 00:11:00 +01:00
|
|
|
'name' => 'name',
|
2010-10-31 10:37:15 +01:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2015-05-29 04:41:25 +02:00
|
|
|
/**
|
2015-07-13 18:13:26 +02:00
|
|
|
* Gets the name of the primary column.
|
2015-05-29 04:41:25 +02:00
|
|
|
*
|
|
|
|
* @since 4.3.0
|
|
|
|
*
|
2015-06-03 17:08:28 +02:00
|
|
|
* @return string Unalterable name of the primary column name, in this case, 'name'.
|
2015-05-29 04:41:25 +02:00
|
|
|
*/
|
2015-09-14 22:29:26 +02:00
|
|
|
protected function get_primary_column_name() {
|
2015-05-29 04:41:25 +02:00
|
|
|
return 'name';
|
|
|
|
}
|
|
|
|
|
2015-05-28 23:41:30 +02:00
|
|
|
/**
|
|
|
|
* @global array $totals
|
|
|
|
* @global string $status
|
|
|
|
* @return array
|
|
|
|
*/
|
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-19 03:17:15 +02:00
|
|
|
protected function get_views() {
|
2010-10-31 10:37:15 +01:00
|
|
|
global $totals, $status;
|
|
|
|
|
|
|
|
$status_links = array();
|
|
|
|
foreach ( $totals as $type => $count ) {
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! $count ) {
|
2010-10-31 10:37:15 +01:00
|
|
|
continue;
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-10-31 10:37:15 +01:00
|
|
|
|
|
|
|
switch ( $type ) {
|
|
|
|
case 'all':
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Number of themes. */
|
I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.
Includes minor code layout fixes.
Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!
Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926
git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 19:13:59 +02:00
|
|
|
$text = _nx(
|
|
|
|
'All <span class="count">(%s)</span>',
|
|
|
|
'All <span class="count">(%s)</span>',
|
|
|
|
$count,
|
|
|
|
'themes'
|
|
|
|
);
|
2010-10-31 10:37:15 +01:00
|
|
|
break;
|
|
|
|
case 'enabled':
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Number of themes. */
|
I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.
Includes minor code layout fixes.
Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!
Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926
git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 19:13:59 +02:00
|
|
|
$text = _nx(
|
|
|
|
'Enabled <span class="count">(%s)</span>',
|
|
|
|
'Enabled <span class="count">(%s)</span>',
|
|
|
|
$count,
|
|
|
|
'themes'
|
|
|
|
);
|
2010-10-31 10:37:15 +01:00
|
|
|
break;
|
|
|
|
case 'disabled':
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Number of themes. */
|
I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.
Includes minor code layout fixes.
Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!
Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926
git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 19:13:59 +02:00
|
|
|
$text = _nx(
|
|
|
|
'Disabled <span class="count">(%s)</span>',
|
|
|
|
'Disabled <span class="count">(%s)</span>',
|
|
|
|
$count,
|
|
|
|
'themes'
|
|
|
|
);
|
2010-10-31 10:37:15 +01:00
|
|
|
break;
|
|
|
|
case 'upgrade':
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Number of themes. */
|
I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.
Includes minor code layout fixes.
Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!
Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926
git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 19:13:59 +02:00
|
|
|
$text = _nx(
|
|
|
|
'Update Available <span class="count">(%s)</span>',
|
|
|
|
'Update Available <span class="count">(%s)</span>',
|
|
|
|
$count,
|
|
|
|
'themes'
|
|
|
|
);
|
2010-10-31 10:37:15 +01:00
|
|
|
break;
|
2017-12-01 00:11:00 +01:00
|
|
|
case 'broken':
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Number of themes. */
|
I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.
Includes minor code layout fixes.
Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!
Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926
git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 19:13:59 +02:00
|
|
|
$text = _nx(
|
|
|
|
'Broken <span class="count">(%s)</span>',
|
|
|
|
'Broken <span class="count">(%s)</span>',
|
|
|
|
$count,
|
|
|
|
'themes'
|
|
|
|
);
|
2012-03-08 08:32:42 +01:00
|
|
|
break;
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
case 'auto-update-enabled':
|
|
|
|
/* translators: %s: Number of themes. */
|
|
|
|
$text = _n(
|
|
|
|
'Auto-updates Enabled <span class="count">(%s)</span>',
|
|
|
|
'Auto-updates Enabled <span class="count">(%s)</span>',
|
|
|
|
$count
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
case 'auto-update-disabled':
|
|
|
|
/* translators: %s: Number of themes. */
|
|
|
|
$text = _n(
|
|
|
|
'Auto-updates Disabled <span class="count">(%s)</span>',
|
|
|
|
'Auto-updates Disabled <span class="count">(%s)</span>',
|
|
|
|
$count
|
|
|
|
);
|
|
|
|
break;
|
2010-10-31 10:37:15 +01:00
|
|
|
}
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( $this->is_site_themes ) {
|
2010-11-17 19:47:34 +01:00
|
|
|
$url = 'site-themes.php?id=' . $this->site_id;
|
2017-12-01 00:11:00 +01:00
|
|
|
} else {
|
2010-11-08 22:52:54 +01:00
|
|
|
$url = 'themes.php';
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-11-08 22:52:54 +01:00
|
|
|
|
2020-05-16 20:42:12 +02:00
|
|
|
if ( 'search' !== $type ) {
|
2022-09-19 23:08:10 +02:00
|
|
|
$status_links[ $type ] = array(
|
|
|
|
'url' => esc_url( add_query_arg( 'theme_status', $type, $url ) ),
|
|
|
|
'label' => sprintf( $text, number_format_i18n( $count ) ),
|
|
|
|
'current' => $type === $status,
|
2010-12-19 02:11:38 +01:00
|
|
|
);
|
|
|
|
}
|
2010-10-31 10:37:15 +01:00
|
|
|
}
|
|
|
|
|
2022-09-19 23:08:10 +02:00
|
|
|
return $this->get_views_links( $status_links );
|
2010-10-31 10:37:15 +01:00
|
|
|
}
|
|
|
|
|
2015-05-28 23:41:30 +02:00
|
|
|
/**
|
|
|
|
* @global string $status
|
2015-05-29 22:17:26 +02:00
|
|
|
*
|
2015-05-28 23:41:30 +02:00
|
|
|
* @return array
|
|
|
|
*/
|
Add access modifiers to methods and members of list table classes:
* `WP_List_Table` is the base class that implements `__get()` and `__call()` for BC
* Adds unit tests to confirm that subclasses properly inherit magic methods
* Add modifiers to subclasses: `WP_Links_List_Table`, `WP_Media_List_Table`, `WP_MS_Sites_List_Table`, `WP_MS_Themes_List_Table`, `WP_MS_Users_List_Table`, `WP_Plugin_Install_List_Table`, `WP_Plugins_List_Table`, `WP_Posts_List_Table`, `WP_Terms_List_Table`, `WP_Theme_Install_List_Table`, `WP_Themes_List_Table`
See #27881, #22234.
Built from https://develop.svn.wordpress.org/trunk@28493
git-svn-id: http://core.svn.wordpress.org/trunk@28319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-19 03:17:15 +02:00
|
|
|
protected function get_bulk_actions() {
|
2010-10-31 10:37:15 +01:00
|
|
|
global $status;
|
|
|
|
|
|
|
|
$actions = array();
|
2020-05-16 20:42:12 +02:00
|
|
|
if ( 'enabled' !== $status ) {
|
2010-12-03 00:49:18 +01:00
|
|
|
$actions['enable-selected'] = $this->is_site_themes ? __( 'Enable' ) : __( 'Network Enable' );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2020-05-16 20:42:12 +02:00
|
|
|
if ( 'disabled' !== $status ) {
|
2010-12-03 00:49:18 +01:00
|
|
|
$actions['disable-selected'] = $this->is_site_themes ? __( 'Disable' ) : __( 'Network Disable' );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-12-21 17:50:16 +01:00
|
|
|
if ( ! $this->is_site_themes ) {
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( current_user_can( 'update_themes' ) ) {
|
2010-12-21 17:50:16 +01:00
|
|
|
$actions['update-selected'] = __( 'Update' );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
|
|
|
if ( current_user_can( 'delete_themes' ) ) {
|
2012-06-28 22:05:15 +02:00
|
|
|
$actions['delete-selected'] = __( 'Delete' );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-12-21 17:50:16 +01:00
|
|
|
}
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
|
|
|
|
if ( $this->show_autoupdates ) {
|
|
|
|
if ( 'auto-update-enabled' !== $status ) {
|
|
|
|
$actions['enable-auto-update-selected'] = __( 'Enable Auto-updates' );
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( 'auto-update-disabled' !== $status ) {
|
|
|
|
$actions['disable-auto-update-selected'] = __( 'Disable Auto-updates' );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2010-10-31 10:37:15 +01:00
|
|
|
return $actions;
|
|
|
|
}
|
|
|
|
|
2015-05-29 23:32:24 +02:00
|
|
|
/**
|
|
|
|
*/
|
2014-07-14 00:09:16 +02:00
|
|
|
public function display_rows() {
|
2017-12-01 00:11:00 +01:00
|
|
|
foreach ( $this->items as $theme ) {
|
2013-05-28 06:10:10 +02:00
|
|
|
$this->single_row( $theme );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-11-14 00:47:14 +01:00
|
|
|
}
|
|
|
|
|
2014-12-01 01:33:23 +01:00
|
|
|
/**
|
2015-07-13 18:13:26 +02:00
|
|
|
* Handles the checkbox column output.
|
|
|
|
*
|
2015-06-13 18:54:26 +02:00
|
|
|
* @since 4.3.0
|
Code Modernization: Fix parameter name mismatches for parent/child classes in `WP_List_Table::column_cb()`.
Matches the method signatures of the parent class and each child class.
Why? PHP 8 introduces the ability to pass named arguments to function/method calls. This means the child and parent method signatures (i.e. parameter names) need to match.
For readability:
- `@since` clearly specifies the original parameter name and its new name as well as why the change happened
- in methods longer than a single line, the generic parameter is reassigned to the original parameter restoring it for context for use within the method. An inline comment is added to explain why this reassignment is made.
Follow-up to [15632], [30679], [31210], [32740], [32753], [32754], [32755], [32756], [32757].
Props jrf, hellofromTonya, sergeybiryukov, azaozz, desrosj, johnbillion.
See #51553.
Built from https://develop.svn.wordpress.org/trunk@51735
git-svn-id: http://core.svn.wordpress.org/trunk@51343 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-07 20:19:56 +02:00
|
|
|
* @since 5.9.0 Renamed `$theme` to `$item` to match parent class for PHP 8 named parameter support.
|
2015-06-13 18:54:26 +02:00
|
|
|
*
|
Code Modernization: Fix parameter name mismatches for parent/child classes in `WP_List_Table::column_cb()`.
Matches the method signatures of the parent class and each child class.
Why? PHP 8 introduces the ability to pass named arguments to function/method calls. This means the child and parent method signatures (i.e. parameter names) need to match.
For readability:
- `@since` clearly specifies the original parameter name and its new name as well as why the change happened
- in methods longer than a single line, the generic parameter is reassigned to the original parameter restoring it for context for use within the method. An inline comment is added to explain why this reassignment is made.
Follow-up to [15632], [30679], [31210], [32740], [32753], [32754], [32755], [32756], [32757].
Props jrf, hellofromTonya, sergeybiryukov, azaozz, desrosj, johnbillion.
See #51553.
Built from https://develop.svn.wordpress.org/trunk@51735
git-svn-id: http://core.svn.wordpress.org/trunk@51343 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-07 20:19:56 +02:00
|
|
|
* @param WP_Theme $item The current WP_Theme object.
|
2015-06-13 18:54:26 +02:00
|
|
|
*/
|
Code Modernization: Fix parameter name mismatches for parent/child classes in `WP_List_Table::column_cb()`.
Matches the method signatures of the parent class and each child class.
Why? PHP 8 introduces the ability to pass named arguments to function/method calls. This means the child and parent method signatures (i.e. parameter names) need to match.
For readability:
- `@since` clearly specifies the original parameter name and its new name as well as why the change happened
- in methods longer than a single line, the generic parameter is reassigned to the original parameter restoring it for context for use within the method. An inline comment is added to explain why this reassignment is made.
Follow-up to [15632], [30679], [31210], [32740], [32753], [32754], [32755], [32756], [32757].
Props jrf, hellofromTonya, sergeybiryukov, azaozz, desrosj, johnbillion.
See #51553.
Built from https://develop.svn.wordpress.org/trunk@51735
git-svn-id: http://core.svn.wordpress.org/trunk@51343 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-07 20:19:56 +02:00
|
|
|
public function column_cb( $item ) {
|
|
|
|
// Restores the more descriptive, specific name for use within this method.
|
|
|
|
$theme = $item;
|
2017-12-01 00:11:00 +01:00
|
|
|
$checkbox_id = 'checkbox_' . md5( $theme->get( 'Name' ) );
|
2015-06-13 18:54:26 +02:00
|
|
|
?>
|
2017-12-01 00:11:00 +01:00
|
|
|
<input type="checkbox" name="checked[]" value="<?php echo esc_attr( $theme->get_stylesheet() ); ?>" id="<?php echo $checkbox_id; ?>" />
|
I18N: Mark screen reader strings as such with translator comments.
This aims to provide better context for translators and make it easier to determine that some strings contain hidden accessibility text and are not displayed in the UI.
Props kebbet, mercime, pavelevap, ocean90, swissspidy, Chouby, jipmoors, afercia, desrosj, costdev, audrasjb, SergeyBiryukov.
Fixes #29748.
Built from https://develop.svn.wordpress.org/trunk@55276
git-svn-id: http://core.svn.wordpress.org/trunk@54809 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-02-07 18:10:21 +01:00
|
|
|
<label class="screen-reader-text" for="<?php echo $checkbox_id; ?>" >
|
|
|
|
<?php
|
|
|
|
printf(
|
|
|
|
/* translators: Hidden accessibility text. %s: Theme name */
|
|
|
|
__( 'Select %s' ),
|
|
|
|
$theme->display( 'Name' )
|
|
|
|
);
|
|
|
|
?>
|
|
|
|
</label>
|
2015-06-13 18:54:26 +02:00
|
|
|
<?php
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2015-07-13 18:13:26 +02:00
|
|
|
* Handles the name column output.
|
|
|
|
*
|
2015-06-13 18:54:26 +02:00
|
|
|
* @since 4.3.0
|
|
|
|
*
|
2014-12-01 01:33:23 +01:00
|
|
|
* @global string $status
|
2015-06-13 18:54:26 +02:00
|
|
|
* @global int $page
|
2014-12-01 01:33:23 +01:00
|
|
|
* @global string $s
|
2015-05-29 23:32:24 +02:00
|
|
|
*
|
2015-07-13 18:13:26 +02:00
|
|
|
* @param WP_Theme $theme The current WP_Theme object.
|
2014-12-01 01:33:23 +01:00
|
|
|
*/
|
2015-06-13 18:54:26 +02:00
|
|
|
public function column_name( $theme ) {
|
|
|
|
global $status, $page, $s;
|
2010-10-31 10:37:15 +01:00
|
|
|
|
|
|
|
$context = $status;
|
2010-11-14 00:47:14 +01:00
|
|
|
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
if ( $this->is_site_themes ) {
|
2017-12-01 00:11:00 +01:00
|
|
|
$url = "site-themes.php?id={$this->site_id}&";
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
$allowed = $theme->is_allowed( 'site', $this->site_id );
|
|
|
|
} else {
|
2017-12-01 00:11:00 +01:00
|
|
|
$url = 'themes.php?';
|
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816.
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858.
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214.
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244.
see #20103.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 22:24:44 +01:00
|
|
|
$allowed = $theme->is_allowed( 'network' );
|
|
|
|
}
|
2010-10-31 10:37:15 +01:00
|
|
|
|
2014-07-17 11:14:16 +02:00
|
|
|
// Pre-order.
|
2010-11-14 00:47:14 +01:00
|
|
|
$actions = array(
|
2017-12-01 00:11:00 +01:00
|
|
|
'enable' => '',
|
2010-11-14 00:47:14 +01:00
|
|
|
'disable' => '',
|
2017-12-01 00:11:00 +01:00
|
|
|
'delete' => '',
|
2010-11-14 00:47:14 +01:00
|
|
|
);
|
2010-10-31 10:37:15 +01:00
|
|
|
|
2012-09-05 00:35:12 +02:00
|
|
|
$stylesheet = $theme->get_stylesheet();
|
2017-12-01 00:11:00 +01:00
|
|
|
$theme_key = urlencode( $stylesheet );
|
2010-11-14 00:47:14 +01:00
|
|
|
|
2012-03-08 18:08:55 +01:00
|
|
|
if ( ! $allowed ) {
|
2015-06-13 18:54:26 +02:00
|
|
|
if ( ! $theme->errors() ) {
|
2017-12-01 00:11:00 +01:00
|
|
|
$url = add_query_arg(
|
|
|
|
array(
|
|
|
|
'action' => 'enable',
|
|
|
|
'theme' => $theme_key,
|
|
|
|
'paged' => $page,
|
|
|
|
's' => $s,
|
2018-08-17 03:51:36 +02:00
|
|
|
),
|
|
|
|
$url
|
2017-12-01 00:11:00 +01:00
|
|
|
);
|
2015-12-14 17:07:39 +01:00
|
|
|
|
|
|
|
if ( $this->is_site_themes ) {
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Theme name. */
|
2015-12-14 17:07:39 +01:00
|
|
|
$aria_label = sprintf( __( 'Enable %s' ), $theme->display( 'Name' ) );
|
|
|
|
} else {
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Theme name. */
|
2015-12-14 17:07:39 +01:00
|
|
|
$aria_label = sprintf( __( 'Network Enable %s' ), $theme->display( 'Name' ) );
|
|
|
|
}
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
$actions['enable'] = sprintf(
|
|
|
|
'<a href="%s" class="edit" aria-label="%s">%s</a>',
|
2015-12-14 17:07:39 +01:00
|
|
|
esc_url( wp_nonce_url( $url, 'enable-theme_' . $stylesheet ) ),
|
|
|
|
esc_attr( $aria_label ),
|
|
|
|
( $this->is_site_themes ? __( 'Enable' ) : __( 'Network Enable' ) )
|
|
|
|
);
|
2015-06-13 18:54:26 +02:00
|
|
|
}
|
2012-03-08 18:08:55 +01:00
|
|
|
} else {
|
2017-12-01 00:11:00 +01:00
|
|
|
$url = add_query_arg(
|
|
|
|
array(
|
|
|
|
'action' => 'disable',
|
|
|
|
'theme' => $theme_key,
|
|
|
|
'paged' => $page,
|
|
|
|
's' => $s,
|
2018-08-17 03:51:36 +02:00
|
|
|
),
|
|
|
|
$url
|
2017-12-01 00:11:00 +01:00
|
|
|
);
|
2015-12-14 17:07:39 +01:00
|
|
|
|
|
|
|
if ( $this->is_site_themes ) {
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Theme name. */
|
2015-12-14 17:07:39 +01:00
|
|
|
$aria_label = sprintf( __( 'Disable %s' ), $theme->display( 'Name' ) );
|
|
|
|
} else {
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Theme name. */
|
2015-12-14 17:07:39 +01:00
|
|
|
$aria_label = sprintf( __( 'Network Disable %s' ), $theme->display( 'Name' ) );
|
|
|
|
}
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
$actions['disable'] = sprintf(
|
|
|
|
'<a href="%s" aria-label="%s">%s</a>',
|
2015-12-14 17:07:39 +01:00
|
|
|
esc_url( wp_nonce_url( $url, 'disable-theme_' . $stylesheet ) ),
|
|
|
|
esc_attr( $aria_label ),
|
|
|
|
( $this->is_site_themes ? __( 'Disable' ) : __( 'Network Disable' ) )
|
|
|
|
);
|
2012-03-08 18:08:55 +01:00
|
|
|
}
|
2010-11-14 00:47:14 +01:00
|
|
|
|
2020-07-28 13:34:04 +02:00
|
|
|
if ( ! $allowed && ! $this->is_site_themes
|
|
|
|
&& current_user_can( 'delete_themes' )
|
|
|
|
&& get_option( 'stylesheet' ) !== $stylesheet
|
|
|
|
&& get_option( 'template' ) !== $stylesheet
|
|
|
|
) {
|
2017-12-01 00:11:00 +01:00
|
|
|
$url = add_query_arg(
|
|
|
|
array(
|
|
|
|
'action' => 'delete-selected',
|
|
|
|
'checked[]' => $theme_key,
|
|
|
|
'theme_status' => $context,
|
|
|
|
'paged' => $page,
|
|
|
|
's' => $s,
|
2018-08-17 03:51:36 +02:00
|
|
|
),
|
|
|
|
'themes.php'
|
2017-12-01 00:11:00 +01:00
|
|
|
);
|
2015-12-14 17:07:39 +01:00
|
|
|
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Theme name. */
|
2016-07-17 01:20:29 +02:00
|
|
|
$aria_label = sprintf( _x( 'Delete %s', 'theme' ), $theme->display( 'Name' ) );
|
2015-12-14 17:07:39 +01:00
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
$actions['delete'] = sprintf(
|
|
|
|
'<a href="%s" class="delete" aria-label="%s">%s</a>',
|
2015-12-14 17:07:39 +01:00
|
|
|
esc_url( wp_nonce_url( $url, 'bulk-themes' ) ),
|
|
|
|
esc_attr( $aria_label ),
|
|
|
|
__( 'Delete' )
|
|
|
|
);
|
2015-06-13 18:54:26 +02:00
|
|
|
}
|
2014-02-04 09:25:13 +01:00
|
|
|
/**
|
2016-05-22 20:01:30 +02:00
|
|
|
* Filters the action links displayed for each theme in the Multisite
|
2014-02-04 09:25:13 +01:00
|
|
|
* themes list table.
|
|
|
|
*
|
|
|
|
* The action links displayed are determined by the theme's status, and
|
|
|
|
* which Multisite themes list table is being displayed - the Network
|
|
|
|
* themes list table (themes.php), which displays all installed themes,
|
|
|
|
* or the Site themes list table (site-themes.php), which displays the
|
|
|
|
* non-network enabled themes when editing a site in the Network admin.
|
|
|
|
*
|
|
|
|
* The default action links for the Network themes list table include
|
2017-07-27 01:28:46 +02:00
|
|
|
* 'Network Enable', 'Network Disable', and 'Delete'.
|
2014-02-04 09:25:13 +01:00
|
|
|
*
|
|
|
|
* The default action links for the Site themes list table include
|
2017-07-27 01:28:46 +02:00
|
|
|
* 'Enable', and 'Disable'.
|
2014-02-04 09:25:13 +01:00
|
|
|
*
|
|
|
|
* @since 2.8.0
|
|
|
|
*
|
2018-03-22 21:27:32 +01:00
|
|
|
* @param string[] $actions An array of action links.
|
2014-02-04 09:25:13 +01:00
|
|
|
* @param WP_Theme $theme The current WP_Theme object.
|
2017-08-03 17:46:44 +02:00
|
|
|
* @param string $context Status of the theme, one of 'all', 'enabled', or 'disabled'.
|
2014-02-04 09:25:13 +01:00
|
|
|
*/
|
2013-08-16 17:47:10 +02:00
|
|
|
$actions = apply_filters( 'theme_action_links', array_filter( $actions ), $theme, $context );
|
2014-02-04 09:25:13 +01:00
|
|
|
|
|
|
|
/**
|
2016-05-22 20:01:30 +02:00
|
|
|
* Filters the action links of a specific theme in the Multisite themes
|
2014-02-04 09:25:13 +01:00
|
|
|
* list table.
|
|
|
|
*
|
2014-11-30 12:28:24 +01:00
|
|
|
* The dynamic portion of the hook name, `$stylesheet`, refers to the
|
2014-02-04 09:25:13 +01:00
|
|
|
* directory name of the theme, which in most cases is synonymous
|
|
|
|
* with the template name.
|
|
|
|
*
|
|
|
|
* @since 3.1.0
|
|
|
|
*
|
2018-03-22 21:27:32 +01:00
|
|
|
* @param string[] $actions An array of action links.
|
2014-02-04 09:25:13 +01:00
|
|
|
* @param WP_Theme $theme The current WP_Theme object.
|
2017-08-03 17:46:44 +02:00
|
|
|
* @param string $context Status of the theme, one of 'all', 'enabled', or 'disabled'.
|
2014-02-04 09:25:13 +01:00
|
|
|
*/
|
2016-08-22 20:25:31 +02:00
|
|
|
$actions = apply_filters( "theme_action_links_{$stylesheet}", $actions, $theme, $context );
|
2011-01-06 05:11:14 +01:00
|
|
|
|
2015-06-13 18:54:26 +02:00
|
|
|
echo $this->row_actions( $actions, true );
|
|
|
|
}
|
2010-11-14 00:47:14 +01:00
|
|
|
|
2015-06-13 18:54:26 +02:00
|
|
|
/**
|
2015-07-13 18:13:26 +02:00
|
|
|
* Handles the description column output.
|
|
|
|
*
|
2015-06-13 18:54:26 +02:00
|
|
|
* @since 4.3.0
|
|
|
|
*
|
|
|
|
* @global string $status
|
|
|
|
* @global array $totals
|
|
|
|
*
|
2015-07-13 18:13:26 +02:00
|
|
|
* @param WP_Theme $theme The current WP_Theme object.
|
2015-06-13 18:54:26 +02:00
|
|
|
*/
|
|
|
|
public function column_description( $theme ) {
|
|
|
|
global $status, $totals;
|
2020-06-20 14:14:09 +02:00
|
|
|
|
2015-06-13 18:54:26 +02:00
|
|
|
if ( $theme->errors() ) {
|
2020-02-09 17:55:09 +01:00
|
|
|
$pre = 'broken' === $status ? __( 'Broken Theme:' ) . ' ' : '';
|
2015-07-08 01:11:24 +02:00
|
|
|
echo '<p><strong class="error-message">' . $pre . $theme->errors()->get_error_message() . '</strong></p>';
|
2015-06-13 18:54:26 +02:00
|
|
|
}
|
2010-11-14 00:47:14 +01:00
|
|
|
|
2015-06-13 18:54:26 +02:00
|
|
|
if ( $this->is_site_themes ) {
|
|
|
|
$allowed = $theme->is_allowed( 'site', $this->site_id );
|
|
|
|
} else {
|
|
|
|
$allowed = $theme->is_allowed( 'network' );
|
|
|
|
}
|
|
|
|
|
|
|
|
$class = ! $allowed ? 'inactive' : 'active';
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! empty( $totals['upgrade'] ) && ! empty( $theme->update ) ) {
|
2012-03-21 17:19:27 +01:00
|
|
|
$class .= ' update';
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2012-03-21 17:19:27 +01:00
|
|
|
|
2015-06-13 18:54:26 +02:00
|
|
|
echo "<div class='theme-description'><p>" . $theme->display( 'Description' ) . "</p></div>
|
|
|
|
<div class='$class second theme-version-author-uri'>";
|
|
|
|
|
|
|
|
$stylesheet = $theme->get_stylesheet();
|
|
|
|
$theme_meta = array();
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( $theme->get( 'Version' ) ) {
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Theme version. */
|
2017-12-01 00:11:00 +01:00
|
|
|
$theme_meta[] = sprintf( __( 'Version %s' ), $theme->display( 'Version' ) );
|
2015-06-13 18:54:26 +02:00
|
|
|
}
|
I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.
Includes minor code layout fixes.
Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!
Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926
git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 19:13:59 +02:00
|
|
|
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Theme author. */
|
2017-12-01 00:11:00 +01:00
|
|
|
$theme_meta[] = sprintf( __( 'By %s' ), $theme->display( 'Author' ) );
|
2015-06-13 18:54:26 +02:00
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( $theme->get( 'ThemeURI' ) ) {
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Theme name. */
|
2021-09-10 16:49:00 +02:00
|
|
|
$aria_label = sprintf( __( 'Visit theme site for %s' ), $theme->display( 'Name' ) );
|
2015-12-14 17:07:39 +01:00
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
$theme_meta[] = sprintf(
|
|
|
|
'<a href="%s" aria-label="%s">%s</a>',
|
2015-12-14 17:07:39 +01:00
|
|
|
$theme->display( 'ThemeURI' ),
|
|
|
|
esc_attr( $aria_label ),
|
|
|
|
__( 'Visit Theme Site' )
|
|
|
|
);
|
2015-06-13 18:54:26 +02:00
|
|
|
}
|
2020-06-20 14:14:09 +02:00
|
|
|
|
Themes: Add an indication of whether a theme is a child theme on network admin Themes screen.
This shows the parent theme name in a child theme's metadata section in the list table, in a similar way it is displayed in the theme details modal on the single site Themes screen.
Props dpik, Mista-Flo, seanchayes, poena, johnbillion, jeremyfelt, bradt, jacklenox, helen, Travel_girl, karmatosed, Presskopp, joyously, SergeyBiryukov.
Fixes #30240.
Built from https://develop.svn.wordpress.org/trunk@50978
git-svn-id: http://core.svn.wordpress.org/trunk@50587 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-05-24 21:04:56 +02:00
|
|
|
if ( $theme->parent() ) {
|
|
|
|
$theme_meta[] = sprintf(
|
|
|
|
/* translators: %s: Theme name. */
|
|
|
|
__( 'Child theme of %s' ),
|
|
|
|
'<strong>' . $theme->parent()->display( 'Name' ) . '</strong>'
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2015-06-13 18:54:26 +02:00
|
|
|
/**
|
2016-05-22 20:01:30 +02:00
|
|
|
* Filters the array of row meta for each theme in the Multisite themes
|
2015-06-13 18:54:26 +02:00
|
|
|
* list table.
|
|
|
|
*
|
|
|
|
* @since 3.1.0
|
|
|
|
*
|
2020-06-20 14:14:09 +02:00
|
|
|
* @param string[] $theme_meta An array of the theme's metadata, including
|
|
|
|
* the version, author, and theme URI.
|
2015-06-13 18:54:26 +02:00
|
|
|
* @param string $stylesheet Directory name of the theme.
|
|
|
|
* @param WP_Theme $theme WP_Theme object.
|
|
|
|
* @param string $status Status of the theme.
|
|
|
|
*/
|
|
|
|
$theme_meta = apply_filters( 'theme_row_meta', $theme_meta, $stylesheet, $theme, $status );
|
2020-06-20 14:14:09 +02:00
|
|
|
|
2015-06-13 18:54:26 +02:00
|
|
|
echo implode( ' | ', $theme_meta );
|
|
|
|
|
|
|
|
echo '</div>';
|
|
|
|
}
|
2010-11-14 00:47:14 +01:00
|
|
|
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
/**
|
|
|
|
* Handles the auto-updates column output.
|
|
|
|
*
|
|
|
|
* @since 5.5.0
|
|
|
|
*
|
|
|
|
* @global string $status
|
|
|
|
* @global int $page
|
|
|
|
*
|
|
|
|
* @param WP_Theme $theme The current WP_Theme object.
|
|
|
|
*/
|
|
|
|
public function column_autoupdates( $theme ) {
|
|
|
|
global $status, $page;
|
|
|
|
|
|
|
|
static $auto_updates, $available_updates;
|
|
|
|
|
|
|
|
if ( ! $auto_updates ) {
|
|
|
|
$auto_updates = (array) get_site_option( 'auto_update_themes', array() );
|
|
|
|
}
|
|
|
|
if ( ! $available_updates ) {
|
|
|
|
$available_updates = get_site_transient( 'update_themes' );
|
|
|
|
}
|
|
|
|
|
|
|
|
$stylesheet = $theme->get_stylesheet();
|
|
|
|
|
2020-08-28 00:24:07 +02:00
|
|
|
if ( isset( $theme->auto_update_forced ) ) {
|
|
|
|
if ( $theme->auto_update_forced ) {
|
|
|
|
// Forced on.
|
|
|
|
$text = __( 'Auto-updates enabled' );
|
|
|
|
} else {
|
|
|
|
$text = __( 'Auto-updates disabled' );
|
|
|
|
}
|
|
|
|
$action = 'unavailable';
|
|
|
|
$time_class = ' hidden';
|
|
|
|
} elseif ( empty( $theme->update_supported ) ) {
|
|
|
|
$text = '';
|
|
|
|
$action = 'unavailable';
|
|
|
|
$time_class = ' hidden';
|
|
|
|
} elseif ( in_array( $stylesheet, $auto_updates, true ) ) {
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
$text = __( 'Disable auto-updates' );
|
|
|
|
$action = 'disable';
|
|
|
|
$time_class = '';
|
|
|
|
} else {
|
|
|
|
$text = __( 'Enable auto-updates' );
|
|
|
|
$action = 'enable';
|
|
|
|
$time_class = ' hidden';
|
|
|
|
}
|
|
|
|
|
|
|
|
$query_args = array(
|
|
|
|
'action' => "{$action}-auto-update",
|
|
|
|
'theme' => $stylesheet,
|
|
|
|
'paged' => $page,
|
|
|
|
'theme_status' => $status,
|
|
|
|
);
|
|
|
|
|
|
|
|
$url = add_query_arg( $query_args, 'themes.php' );
|
|
|
|
|
2020-08-28 00:24:07 +02:00
|
|
|
if ( 'unavailable' === $action ) {
|
|
|
|
$html[] = '<span class="label">' . $text . '</span>';
|
|
|
|
} else {
|
|
|
|
$html[] = sprintf(
|
|
|
|
'<a href="%s" class="toggle-auto-update aria-button-if-js" data-wp-action="%s">',
|
|
|
|
wp_nonce_url( $url, 'updates' ),
|
|
|
|
$action
|
|
|
|
);
|
|
|
|
|
|
|
|
$html[] = '<span class="dashicons dashicons-update spin hidden" aria-hidden="true"></span>';
|
|
|
|
$html[] = '<span class="label">' . $text . '</span>';
|
|
|
|
$html[] = '</a>';
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
|
2020-08-28 00:24:07 +02:00
|
|
|
}
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
|
|
|
|
if ( isset( $available_updates->response[ $stylesheet ] ) ) {
|
2020-06-18 02:00:13 +02:00
|
|
|
$html[] = sprintf(
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
'<div class="auto-update-time%s">%s</div>',
|
|
|
|
$time_class,
|
|
|
|
wp_get_auto_update_message()
|
|
|
|
);
|
|
|
|
}
|
2020-06-18 02:00:13 +02:00
|
|
|
|
|
|
|
$html = implode( '', $html );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Filters the HTML of the auto-updates setting for each theme in the Themes list table.
|
|
|
|
*
|
|
|
|
* @since 5.5.0
|
|
|
|
*
|
2020-06-20 14:14:09 +02:00
|
|
|
* @param string $html The HTML for theme's auto-update setting, including
|
|
|
|
* toggle auto-update action link and time to next update.
|
2020-06-18 02:00:13 +02:00
|
|
|
* @param string $stylesheet Directory name of the theme.
|
|
|
|
* @param WP_Theme $theme WP_Theme object.
|
|
|
|
*/
|
|
|
|
echo apply_filters( 'theme_auto_update_setting_html', $html, $stylesheet, $theme );
|
|
|
|
|
2020-06-19 18:51:14 +02:00
|
|
|
echo '<div class="notice notice-error notice-alt inline hidden"><p></p></div>';
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
}
|
|
|
|
|
2015-06-13 18:54:26 +02:00
|
|
|
/**
|
2015-07-13 18:13:26 +02:00
|
|
|
* Handles default column output.
|
|
|
|
*
|
2015-06-13 18:54:26 +02:00
|
|
|
* @since 4.3.0
|
2021-09-07 18:57:58 +02:00
|
|
|
* @since 5.9.0 Renamed `$theme` to `$item` to match parent class for PHP 8 named parameter support.
|
2015-06-13 18:54:26 +02:00
|
|
|
*
|
Code Modernization: Fix parameter name mismatches for parent/child classes in `WP_List_Table::column_default()`.
Matches the method signatures of the parent class and each child class.
Why? PHP 8 introduces the ability to pass named arguments to function/method calls. This means the child and parent method signatures (i.e. parameter names) need to match.
For readability:
- `@since` clearly specifies the original parameter name and its new name as well as why the change happened
- in methods longer than a single line, the generic parameter is reassigned to the original parameter restoring it for context for use within the method. An inline comment is added to explain why this reassignment is made.
Follow-up to [15632], [30679], [31210], [32740], [32753], [32754], [32755], [32756], [32757].
Props jrf, hellofromTonya, @sergeybiryukov, @azaozz, @desrosj, @johnbillion
See #51553.
Built from https://develop.svn.wordpress.org/trunk@51728
git-svn-id: http://core.svn.wordpress.org/trunk@51334 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-03 00:26:56 +02:00
|
|
|
* @param WP_Theme $item The current WP_Theme object.
|
2015-07-13 18:13:26 +02:00
|
|
|
* @param string $column_name The current column name.
|
2015-06-13 18:54:26 +02:00
|
|
|
*/
|
Code Modernization: Fix parameter name mismatches for parent/child classes in `WP_List_Table::column_default()`.
Matches the method signatures of the parent class and each child class.
Why? PHP 8 introduces the ability to pass named arguments to function/method calls. This means the child and parent method signatures (i.e. parameter names) need to match.
For readability:
- `@since` clearly specifies the original parameter name and its new name as well as why the change happened
- in methods longer than a single line, the generic parameter is reassigned to the original parameter restoring it for context for use within the method. An inline comment is added to explain why this reassignment is made.
Follow-up to [15632], [30679], [31210], [32740], [32753], [32754], [32755], [32756], [32757].
Props jrf, hellofromTonya, @sergeybiryukov, @azaozz, @desrosj, @johnbillion
See #51553.
Built from https://develop.svn.wordpress.org/trunk@51728
git-svn-id: http://core.svn.wordpress.org/trunk@51334 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-03 00:26:56 +02:00
|
|
|
public function column_default( $item, $column_name ) {
|
2015-06-13 18:54:26 +02:00
|
|
|
/**
|
|
|
|
* Fires inside each custom column of the Multisite themes list table.
|
|
|
|
*
|
|
|
|
* @since 3.1.0
|
|
|
|
*
|
|
|
|
* @param string $column_name Name of the column.
|
|
|
|
* @param string $stylesheet Directory name of the theme.
|
|
|
|
* @param WP_Theme $theme Current WP_Theme object.
|
|
|
|
*/
|
Code Modernization: Fix parameter name mismatches for parent/child classes in `WP_List_Table::column_default()`.
Matches the method signatures of the parent class and each child class.
Why? PHP 8 introduces the ability to pass named arguments to function/method calls. This means the child and parent method signatures (i.e. parameter names) need to match.
For readability:
- `@since` clearly specifies the original parameter name and its new name as well as why the change happened
- in methods longer than a single line, the generic parameter is reassigned to the original parameter restoring it for context for use within the method. An inline comment is added to explain why this reassignment is made.
Follow-up to [15632], [30679], [31210], [32740], [32753], [32754], [32755], [32756], [32757].
Props jrf, hellofromTonya, @sergeybiryukov, @azaozz, @desrosj, @johnbillion
See #51553.
Built from https://develop.svn.wordpress.org/trunk@51728
git-svn-id: http://core.svn.wordpress.org/trunk@51334 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-03 00:26:56 +02:00
|
|
|
do_action(
|
|
|
|
'manage_themes_custom_column',
|
|
|
|
$column_name,
|
|
|
|
$item->get_stylesheet(), // Directory name of the theme.
|
|
|
|
$item // Theme object.
|
|
|
|
);
|
2015-06-13 18:54:26 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2015-07-13 18:13:26 +02:00
|
|
|
* Handles the output for a single table row.
|
|
|
|
*
|
2015-06-13 18:54:26 +02:00
|
|
|
* @since 4.3.0
|
|
|
|
*
|
2015-07-13 18:13:26 +02:00
|
|
|
* @param WP_Theme $item The current WP_Theme object.
|
2015-06-13 18:54:26 +02:00
|
|
|
*/
|
|
|
|
public function single_row_columns( $item ) {
|
2015-05-29 04:41:25 +02:00
|
|
|
list( $columns, $hidden, $sortable, $primary ) = $this->get_column_info();
|
2010-11-14 00:47:14 +01:00
|
|
|
|
|
|
|
foreach ( $columns as $column_name => $column_display_name ) {
|
2015-06-10 21:47:27 +02:00
|
|
|
$extra_classes = '';
|
2020-04-05 05:02:11 +02:00
|
|
|
if ( in_array( $column_name, $hidden, true ) ) {
|
2015-06-10 21:47:27 +02:00
|
|
|
$extra_classes .= ' hidden';
|
|
|
|
}
|
2010-11-14 00:47:14 +01:00
|
|
|
|
|
|
|
switch ( $column_name ) {
|
|
|
|
case 'cb':
|
2015-06-13 18:54:26 +02:00
|
|
|
echo '<th scope="row" class="check-column">';
|
|
|
|
|
|
|
|
$this->column_cb( $item );
|
|
|
|
|
|
|
|
echo '</th>';
|
2010-11-14 00:47:14 +01:00
|
|
|
break;
|
2015-06-13 18:54:26 +02:00
|
|
|
|
2010-11-14 00:47:14 +01:00
|
|
|
case 'name':
|
2017-08-03 15:49:43 +02:00
|
|
|
$active_theme_label = '';
|
|
|
|
|
|
|
|
/* The presence of the site_id property means that this is a subsite view and a label for the active theme needs to be added */
|
|
|
|
if ( ! empty( $this->site_id ) ) {
|
|
|
|
$stylesheet = get_blog_option( $this->site_id, 'stylesheet' );
|
|
|
|
$template = get_blog_option( $this->site_id, 'template' );
|
|
|
|
|
|
|
|
/* Add a label for the active template */
|
|
|
|
if ( $item->get_template() === $template ) {
|
|
|
|
$active_theme_label = ' — ' . __( 'Active Theme' );
|
|
|
|
}
|
|
|
|
|
|
|
|
/* In case this is a child theme, label it properly */
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( $stylesheet !== $template && $item->get_stylesheet() === $stylesheet ) {
|
2017-08-03 15:49:43 +02:00
|
|
|
$active_theme_label = ' — ' . __( 'Active Child Theme' );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
echo "<td class='theme-title column-primary{$extra_classes}'><strong>" . $item->display( 'Name' ) . $active_theme_label . '</strong>';
|
2015-06-13 18:54:26 +02:00
|
|
|
|
|
|
|
$this->column_name( $item );
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
echo '</td>';
|
2010-11-14 00:47:14 +01:00
|
|
|
break;
|
2015-06-13 18:54:26 +02:00
|
|
|
|
2010-11-14 00:47:14 +01:00
|
|
|
case 'description':
|
2015-06-10 21:47:27 +02:00
|
|
|
echo "<td class='column-description desc{$extra_classes}'>";
|
2015-06-13 18:54:26 +02:00
|
|
|
|
|
|
|
$this->column_description( $item );
|
|
|
|
|
2015-05-29 04:41:25 +02:00
|
|
|
echo '</td>';
|
2010-11-17 19:47:34 +01:00
|
|
|
break;
|
2010-11-28 18:39:44 +01:00
|
|
|
|
Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin.
Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.
Built from https://develop.svn.wordpress.org/trunk@47835
git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 20:49:09 +02:00
|
|
|
case 'auto-updates':
|
|
|
|
echo "<td class='column-auto-updates{$extra_classes}'>";
|
|
|
|
|
|
|
|
$this->column_autoupdates( $item );
|
|
|
|
|
|
|
|
echo '</td>';
|
|
|
|
break;
|
2010-11-14 00:47:14 +01:00
|
|
|
default:
|
2015-06-10 21:47:27 +02:00
|
|
|
echo "<td class='$column_name column-$column_name{$extra_classes}'>";
|
2014-02-04 09:25:13 +01:00
|
|
|
|
2015-06-13 18:54:26 +02:00
|
|
|
$this->column_default( $item, $column_name );
|
2015-05-29 04:41:25 +02:00
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
echo '</td>';
|
2015-06-13 18:54:26 +02:00
|
|
|
break;
|
2010-11-14 00:47:14 +01:00
|
|
|
}
|
2010-10-31 10:37:15 +01:00
|
|
|
}
|
2015-06-13 18:54:26 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @global string $status
|
|
|
|
* @global array $totals
|
|
|
|
*
|
|
|
|
* @param WP_Theme $theme
|
|
|
|
*/
|
|
|
|
public function single_row( $theme ) {
|
|
|
|
global $status, $totals;
|
|
|
|
|
|
|
|
if ( $this->is_site_themes ) {
|
|
|
|
$allowed = $theme->is_allowed( 'site', $this->site_id );
|
|
|
|
} else {
|
|
|
|
$allowed = $theme->is_allowed( 'network' );
|
|
|
|
}
|
|
|
|
|
|
|
|
$stylesheet = $theme->get_stylesheet();
|
|
|
|
|
|
|
|
$class = ! $allowed ? 'inactive' : 'active';
|
|
|
|
if ( ! empty( $totals['upgrade'] ) && ! empty( $theme->update ) ) {
|
|
|
|
$class .= ' update';
|
|
|
|
}
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
printf(
|
|
|
|
'<tr class="%s" data-slug="%s">',
|
2016-01-25 23:55:25 +01:00
|
|
|
esc_attr( $class ),
|
|
|
|
esc_attr( $stylesheet )
|
|
|
|
);
|
2015-06-13 18:54:26 +02:00
|
|
|
|
|
|
|
$this->single_row_columns( $theme );
|
2010-11-14 00:47:14 +01:00
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
echo '</tr>';
|
2010-11-14 00:47:14 +01:00
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( $this->is_site_themes ) {
|
2012-09-05 00:35:12 +02:00
|
|
|
remove_action( "after_theme_row_$stylesheet", 'wp_theme_update_row' );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2014-02-04 09:25:13 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Fires after each row in the Multisite themes list table.
|
|
|
|
*
|
|
|
|
* @since 3.1.0
|
|
|
|
*
|
|
|
|
* @param string $stylesheet Directory name of the theme.
|
|
|
|
* @param WP_Theme $theme Current WP_Theme object.
|
|
|
|
* @param string $status Status of the theme.
|
|
|
|
*/
|
2012-09-05 00:35:12 +02:00
|
|
|
do_action( 'after_theme_row', $stylesheet, $theme, $status );
|
2014-02-04 09:25:13 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Fires after each specific row in the Multisite themes list table.
|
|
|
|
*
|
2014-11-30 12:28:24 +01:00
|
|
|
* The dynamic portion of the hook name, `$stylesheet`, refers to the
|
2014-02-04 09:25:13 +01:00
|
|
|
* directory name of the theme, most often synonymous with the template
|
|
|
|
* name of the theme.
|
|
|
|
*
|
|
|
|
* @since 3.5.0
|
|
|
|
*
|
|
|
|
* @param string $stylesheet Directory name of the theme.
|
|
|
|
* @param WP_Theme $theme Current WP_Theme object.
|
|
|
|
* @param string $status Status of the theme.
|
|
|
|
*/
|
2016-08-22 20:25:31 +02:00
|
|
|
do_action( "after_theme_row_{$stylesheet}", $stylesheet, $theme, $status );
|
2010-10-31 10:37:15 +01:00
|
|
|
}
|
|
|
|
}
|