laipower/wp-content/plugins/w3-total-cache/Extensions_Page.php

109 lines
2.7 KiB
PHP

<?php
namespace W3TC;
/* todo - sort by name
function extensions_sort_cmp_name($a, $b)
{
if ($a['name'] == $b['name']) {
return 0;
}
return ($a['name'] < $b['name']) ? -1 : 1;
}*/
class Extensions_Page extends Base_Page_Settings {
/**
* Current page
*
* @var string
*/
protected $_page = 'w3tc_extensions';
protected $_active_tab;
protected $_config_settings = array();
/**
* Extensions view
*
* @return void
*/
function render_content() {
$extension_status = 'all';
$extension_status_val = Util_Request::get_string( 'extension_status' );
if ( ! empty( $extension_status_val ) ) {
if ( in_array( $extension_status_val, array( 'all', 'active', 'inactive', 'core' ), true ) ) {
$extension_status = $extension_status_val;
}
}
$extension_val = Util_Request::get_string( 'extension' );
$extension = ( ! empty( $extension_val ) ? esc_attr( $extension_val ) : '' );
$action_val = Util_Request::get_string( 'action' );
$view = ( ! empty( $action_val ) && 'view' === $action_val );
$extensions_active = Extensions_Util::get_active_extensions( $this->_config );
foreach ( $extensions_active as $key => $ext ) {
if ( isset( $ext['public'] ) && false === $ext['public'] ) {
unset( $extensions_active[ $key ] );
}
}
if ( $extension && $view ) {
$all_settings = $this->_config->get_array( 'extensions.settings' );
$meta = $extensions_active[ $extension ];
$sub_view = 'settings';
} else {
$extensions_all = Extensions_Util::get_extensions( $this->_config );
foreach ( $extensions_all as $key => $ext ) {
if ( isset( $ext['public'] ) && false === $ext['public'] ) {
unset( $extensions_all[ $key ] );
}
}
$extensions_inactive = Extensions_Util::get_inactive_extensions( $this->_config );
foreach ( $extensions_inactive as $key => $ext ) {
if ( isset( $ext['public'] ) && false === $ext['public'] ) {
unset( $extensions_inactive[ $key ] );
}
}
$var = "extensions_{$extension_status}";
$extensions = $$var;
$extension_keys = array_keys( $extensions );
sort( $extension_keys );
$sub_view = 'list';
$page = 1;
}
include W3TC_INC_OPTIONS_DIR . '/extensions.php';
}
/**
* Sets default values for lacking extension meta keys
*
* @param unknown $meta
* @return array
*/
function default_meta( $meta ) {
$default = array (
'name' => '',
'author' => '',
'description' => '',
'author_uri' => '',
'extension_uri' => '',
'extension_id' => '',
'version' => '',
'enabled' => true,
'requirements' => array(),
'core' => false,
'public' => true,
'path' => ''
);
return array_merge( $default, $meta );
}
}