| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- <?php
- /**
- * Custom CSS and JS
- *
- */
- if ( ! defined( 'ABSPATH' ) ) {
- exit; // Exit if accessed directly
- }
- /**
- * CustomCSSandJS_Addons
- */
- class CustomCSSandJS_Addons {
- /**
- * Constructor
- */
- public function __construct() {
- // Add actions
- $actions = array(
- 'add_meta_boxes' => 'add_meta_boxes',
- 'edit_form_advanced' => 'only_premium',
- );
- foreach( $actions as $_key => $_value ) {
- add_action( $_key, array( $this, $_value ) );
- }
- }
- function only_premium() {
- $current_screen = get_current_screen();
- if ( $current_screen->post_type != 'custom-css-js' ) {
- return false;
- }
- ?>
- <div class="ccj_only_premium ccj_only_premium-first">
- <div>
- <a href="https://www.silkypress.com/simple-custom-css-js-pro/?utm_source=wordpress&utm_campaign=ccj_free&utm_medium=banner" target="_blank"><?php _e('Available only in <br />Simple Custom CSS and JS Pro', 'custom-css-js'); ?></a>
- </div>
- </div>
- <?php
- }
- /**
- * Add the URL Preview meta box
- */
- function add_meta_boxes() {
-
- add_meta_box( 'previewdiv', __('Preview', 'custom-css-js'), array( $this, 'previews_meta_box_callback' ), 'custom-css-js', 'normal' );
- add_meta_box( 'url-rules', __('Apply only on these URLs', 'custom-css-js'), array( $this, 'url_rules_meta_box_callback' ), 'custom-css-js', 'normal' );
- add_meta_box( 'revisionsdiv', __('Code Revisions', 'custom-css-js'), array( $this, 'revisions_meta_box_callback' ), 'custom-css-js', 'normal' );
- }
- /**
- * The Preview meta box content
- */
- function previews_meta_box_callback( $post ) {
- ?>
- <div id="preview-action">
- <div>
- <input type="text" name="preview_url" id="ccj-preview_url" placeholder="<?php _e('Full URL on which to preview the changes ...', 'custom-css-js'); ?>" disabled="disabled" />
- <a class="preview button button-primary button-large" id="ccj-preview"><?php _e('Preview Changes', 'custom-css-js'); ?></a>
- </div>
- </div>
- <?php
-
- }
- /**
- * Show the URL Rules metabox
- */
- function url_rules_meta_box_callback( $post ) {
- $filters = array(
- 'all' => __('All Website', 'custom-css-js'),
- 'first-page' => __('Homepage', 'custom-css-js'),
- 'contains' => __('Contains', 'custom-css-js'),
- 'not-contains' => __('Not contains', 'custom-css-js'),
- 'equal-to' => __('Is equal to', 'custom-css-js'),
- 'not-equal-to' => __('Not equal to', 'custom-css-js'),
- 'begins-with' => __('Starts with', 'custom-css-js'),
- 'ends-by' => __('Ends by', 'custom-css-js'),
- );
- $filters_html = '';
- foreach( $filters as $_key => $_value ) {
- $filters_html .= '<option value="'.$_key.'">' . $_value . '</option>';
- }
- $applied_filters = '[{"value":"","type":"all","index":1}]';
- ?>
- <input type="hidden" name="scan_anchor_filters" id="wplnst-scan-anchor-filters" value='<?php echo $applied_filters; ?>' />
- <table id="wplnst-elist-anchor-filters" class="wplnst-elist" cellspacing="0" cellpadding="0" border="0" data-editable="true" data-label="<?php _e('URL', 'custom-css-js'); ?>"></table>
- <?php _e('URL', 'custom-css-js'); ?> <select id="wplnst-af-new-type"><?php echo $filters_html ?></select>
- <input id="wplnst-af-new" type="text" class="regular-text" value="" placeholder="<?php _e('Text filter', 'custom-css-js'); ?>" />
- <input class="button button-primary" type="button" id="wplnst-af-new-add" value="<?php _e('Add', 'custom-css-js'); ?>" /></td>
- <?php
- }
- /**
- * Output the revisions
- */
- function revisions_meta_box_callback( $post ) {
- $datef = _x( 'F j, Y @ H:i:s', 'revision date format' );
- $users = get_users(array('number' => 3));
- $revisions = array(
- array(
- 'ID' => 1,
- 'post_author' => $users[0]->display_name,
- 'title' => date_i18n( $datef, time() - 86400 ),
- ),
- array(
- 'ID' => 2,
- 'post_author' => isset($users[1]) ? $users[1]->display_name : $users[0]->display_name,
- 'title' => date_i18n( $datef, time() - 87639),
- ),
- array(
- 'ID' => 3,
- 'post_author' => isset($users[2]) ? $users[2]->display_name : $users[0]->display_name,
- 'title' => date_i18n( $datef, time() - 97639),
- ),
- );
- ?>
- <table class="revisions">
- <thead><tr>
- <th class="revisions-compare"><?php _e('Compare', 'custom-css-js'); ?></th>
- <th><?php _e('Revision', 'custom-css-js'); ?></th>
- <th><?php _e('Author', 'custom-css-js'); ?></th>
- <th><input type="checkbox" name="delete[]" value="all" id="ccj-delete-checkbox" /> <?php _e('Delete', 'custom-css-js'); ?></th>
- <th><?php _e('Restore', 'custom-css-js'); ?></th>
- </tr></thead>
- <tbody>
- <?php foreach( $revisions as $revision ) : ?>
- <?php
- $restore_url = '#';
- $delete_disabled = '';
- $delete_tooltip = '';
- $class = '';
- ?>
- <tr class="<?php echo $class; ?>" id="<?php echo 'revision-row-' . $revision['ID']; ?>">
- <td class="revisions-compare">
- <input type="radio" name="compare_left" value="<?php echo $revision['ID']; ?>" />
- <input type="radio" name="compare_right" value="<?php echo $revision['ID']; ?>" />
- </td>
- <td><?php echo $revision['title']; ?></td>
- <td><?php echo $revision['post_author']; ?></td>
- <td class="revisions-delete">
- <input type="checkbox" name="delete[]" value="<?php echo $revision['ID']; ?>" <?php echo $delete_disabled . $delete_tooltip; ?>/>
- </td>
- <td class="revisions-restore">
- <a href="<?php echo $restore_url; ?>"><?php _e('Restore', 'custom-css-js'); ?></a>
- </td>
- </tr>
- <?php endforeach; ?>
- <tr>
- <td>
- <input type="button" class="button-secondary" value="<?php esc_attr_e('Compare', 'custom-css-js'); ?>" id="revisions-compare-button" />
- </td>
- <td colspan="2" style="text-align: center;"> ↑ This is only an example, not real data. ↑ </td>
- <td>
- <input type="button" class="button-secondary" value="<?php esc_attr_e('Delete', 'custom-css-js'); ?>" id="revisions-delete-button" />
- </td>
- <td> </td>
- </tr>
- </tbody>
- </table>
- <?php
- }
-
- }
- return new CustomCSSandJS_Addons();
|