185 lines
5.7 KiB
PHP
185 lines
5.7 KiB
PHP
<?php
|
|
|
|
// Get selected filter type
|
|
if( isset( $_GET['filter'] ) ) {
|
|
$filter = sanitize_key( $_GET['filter'] );
|
|
} else {
|
|
$filter = 'plugins';
|
|
}
|
|
|
|
// Select correct database row
|
|
switch ( $filter ) {
|
|
case 'themes':
|
|
$db_table = 'notUpdateListTh';
|
|
$filter_name = __( 'Themes', 'companion-auto-update' );
|
|
$filterFunction = wp_get_themes();
|
|
break;
|
|
case 'plugins':
|
|
$db_table = 'notUpdateList';
|
|
$filter_name = __( 'Plugins', 'companion-auto-update' );
|
|
$filterFunction = get_plugins();
|
|
break;
|
|
default:
|
|
$db_table = 'notUpdateList';
|
|
$filter_name = __( 'Plugins', 'companion-auto-update' );
|
|
$filterFunction = get_plugins();
|
|
break;
|
|
}
|
|
|
|
?>
|
|
|
|
<ul class="subsubsub">
|
|
<li><a <?php if( $filter == 'plugins' ) { echo "class='current'"; } ?> href='<?php echo cau_url( 'pluginlist&filter=plugins' ); ?>'><?php _e( 'Plugins', 'companion-auto-update' ); ?></a></li> |
|
|
<li><a <?php if( $filter == 'themes' ) { echo "class='current'"; } ?> href='<?php echo cau_url( 'pluginlist&filter=themes' ); ?>'><?php _e( 'Themes', 'companion-auto-update' ); ?></a></li>
|
|
</ul>
|
|
|
|
<div style='clear: both;'></div>
|
|
|
|
<?php if( $filter == 'themes' ) { ?>
|
|
<div id="message" class="cau">
|
|
We've had to (temporarily) disable the theme filter because it was causing issues on some installations. We'll try to get it working again in a future update.
|
|
</div>
|
|
<?php } ?>
|
|
|
|
<p><?php echo sprintf( esc_html__( 'Prevent certain %s from updating automatically. %s that you select here will be skipped by Companion Auto Update and will require manual updating.', 'companion-auto-update' ), strtolower( $filter_name ), $filter_name ); ?></p>
|
|
|
|
<?php
|
|
|
|
global $wpdb;
|
|
$table_name = $wpdb->prefix."auto_updates";
|
|
|
|
// Save list
|
|
if( isset( $_POST['submit'] ) ) {
|
|
|
|
check_admin_referer( 'cau_save_pluginlist' );
|
|
|
|
$noUpdateList = '';
|
|
$i = 0;
|
|
$noUpdateCount = 0;
|
|
|
|
if( isset( $_POST['post'] ) ) {
|
|
$noUpdateCount = count( $_POST['post'] );
|
|
}
|
|
|
|
if( $noUpdateCount > 0 ) {
|
|
foreach ( $_POST['post'] as $key ) {
|
|
$noUpdateList .= sanitize_text_field( $key );
|
|
$i++;
|
|
if( $i != $noUpdateCount ) $noUpdateList .= ', ';
|
|
}
|
|
}
|
|
|
|
$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = '%s' WHERE name = '%s'", $noUpdateList, $db_table ) );
|
|
echo '<div id="message" class="updated"><p><b>'.__( 'Succes', 'companion-auto-update' ).' –</b> '.sprintf( esc_html__( '%1$s %2$s have been added to the no-update-list', 'companion-auto-update' ), $noUpdateCount, strtolower( $filter_name ) ).'.</p></div>';
|
|
}
|
|
|
|
|
|
// Reset list
|
|
if( isset( $_POST['reset'] ) ) {
|
|
|
|
check_admin_referer( 'cau_save_pluginlist' );
|
|
|
|
$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = '%s' WHERE name = %s", "", $db_table ) );
|
|
echo '<div id="message" class="updated"><p><b>'.__( 'Succes', 'companion-auto-update' ).' –</b> '.sprintf( esc_html__( 'The no-update-list has been reset, all %s will be auto-updated from now on', 'companion-auto-update' ), strtolower( $filter_name ) ).'.</p></div>';
|
|
}
|
|
|
|
|
|
?>
|
|
|
|
<form method="POST">
|
|
|
|
<div class='pluginListButtons'>
|
|
<?php submit_button(); ?>
|
|
<input type='submit' name='reset' id='reset' class='button button-alt' value='<?php _e( "Reset list", "companion-auto-update" ); ?>'>
|
|
</div>
|
|
|
|
<table class="wp-list-table widefat autoupdate striped">
|
|
<thead>
|
|
<tr>
|
|
<td> </td>
|
|
<th class="head-plugin"><strong><?php _e( 'Name', 'companion-auto-update' ); ?></strong></th>
|
|
<th class="head-status"><strong><?php _e( 'Status', 'companion-auto-update' ); ?></strong></th>
|
|
<th class="head-description"><strong><?php _e( 'Description' ); ?></strong></th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody id="the-list">
|
|
|
|
<?php
|
|
|
|
foreach ( $filterFunction as $key => $value ) {
|
|
|
|
$slug = $key;
|
|
$explosion = explode( '/', $slug );
|
|
$actualSlug = array_shift( $explosion );
|
|
$slug_hash = md5( $slug[0] );
|
|
|
|
if( $filter == 'themes' ) {
|
|
|
|
$theme = wp_get_theme( $actualSlug );
|
|
$name = $theme->get( 'Name' );
|
|
$description = $theme->get( 'Description' );
|
|
|
|
} else {
|
|
|
|
foreach ( $value as $k => $v ) {
|
|
|
|
if( $k == "Name" ) $name = $v;
|
|
if( $k == "Description" ) $description = $v;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if( in_array( $actualSlug, donotupdatelist( $filter ) ) ) {
|
|
|
|
$class = 'inactive';
|
|
$checked = 'CHECKED';
|
|
$statusicon = 'no';
|
|
$statusName = 'disabled';
|
|
|
|
} else {
|
|
|
|
$class = 'active';
|
|
$checked = '';
|
|
$statusicon = 'yes';
|
|
$statusName = 'enabled';
|
|
}
|
|
|
|
echo '<tr id="post-'.$slug_hash.'" class="'.$class.'">
|
|
|
|
<th class="check-column">
|
|
<label class="screen-reader-text" for="cb-select-'.$slug_hash.'">Select '. $name .'</label>
|
|
<input id="cb-select-'.$slug_hash.'" type="checkbox" name="post[]" value="'.$actualSlug.'" '.$checked.' ><label></label>
|
|
<div class="locked-indicator"></div>
|
|
</th>
|
|
|
|
<td class="column-name">
|
|
<p style="margin-bottom: 0px;"><strong>'. $name .'</strong></p>
|
|
<small class="description" style="opacity: 0.5; margin-bottom: 3px;">'.$actualSlug.'</small>
|
|
</td>
|
|
|
|
<td class="cau_hide_on_mobile column-status">
|
|
<p><span class="nowrap">'.__( 'Auto Updater', 'companion-auto-update' ).': <span class="cau_'.$statusName.'"><span class="dashicons dashicons-'.$statusicon.'"></span></span></span></p>
|
|
</td>
|
|
|
|
<td class="cau_hide_on_mobile column-description">
|
|
<p>'.$description.'</p>
|
|
</td>
|
|
|
|
</tr>';
|
|
|
|
}
|
|
?>
|
|
|
|
</tbody>
|
|
</table>
|
|
|
|
<?php wp_nonce_field( 'cau_save_pluginlist' ); ?>
|
|
|
|
<div class='pluginListButtons'>
|
|
<?php submit_button(); ?>
|
|
<input type='submit' name='reset' id='reset' class='button button-alt' value='<?php _e( "Reset list", "companion-auto-update" ); ?>'>
|
|
</div>
|
|
|
|
</form>
|