<?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>