Plugin Directory

Changeset 3162596


Ignore:
Timestamp:
10/04/2024 09:17:33 AM (18 months ago)
Author:
sukellos
Message:

Fix 1.1.8 SVN commit pb

Location:
sukellos-enable-classic-editor/trunk
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • sukellos-enable-classic-editor/trunk/vendor/wp-sukellos-fw/admin-builder/class-item-factory.php

    r2925170 r3162596  
    33namespace Sukellos\WPFw\AdminBuilder;
    44
    5 use Cassandra\Date;
    65use Sukellos\WPFw\AdminBuilder\Fields\Checkbox_Field;
    76use Sukellos\WPFw\AdminBuilder\Fields\Custom_Choices;
     
    1312use Sukellos\WPFw\AdminBuilder\Fields\Text_Field;
    1413use Sukellos\WPFw\AdminBuilder\Fields\Textarea_Field;
    15 use Sukellos\WPFw\AdminBuilder\Fields\Upload_Field;
    16 use Sukellos\WPFw\AdminBuilder\Item_Type;
     14use Sukellos\WPFw\AdminBuilder\Fields\Form_Field_Handler;
    1715use Sukellos\WPFw\AdminBuilder\Items\Ajax_Button;
    1816use Sukellos\WPFw\AdminBuilder\Items\Header;
     
    4745    // Use type of option, user_meta, post_meta
    4846    const OPTION = 'option';
     47    const FORM_FIELD = 'form_field';
    4948
    5049
     
    5857    private $item_instances = array(
    5958        self::OPTION => array(),
     59        self::FORM_FIELD => array(),
    6060    );
    6161
     
    110110        if ( array_key_exists( $item_id, $this->item_instances )
    111111            || array_key_exists( $item_id, $this->item_instances[ self::OPTION ] )
     112            || array_key_exists( $item_id, $this->item_instances[ self::FORM_FIELD ] )
    112113        ) {
    113114
     
    138139                case self::OPTION:
    139140                    $handler = new Option_Handler( $item_id, $default );
     141                    break;
     142                case self::FORM_FIELD:
     143                    $handler = new Form_Field_Handler( $item_id, $default );
    140144                    break;
    141145                default:
     
    267271                    ) );
    268272                    return null;
     273                case Item_Type::ADMIN_ITEM_FORM:
     274                    $item = new Admin_Item_Form( $settings );
     275                    break;
    269276                case Item_Type::NOTE:
    270277
     
    300307
    301308        // Enqueue / init once scripts
    302         if ( !in_array( $item_type, $this->enabled_once_scripts ) ) {
     309        $enqueue_once = $item->get_enqueue_once();
     310        WP_Log::debug(__METHOD__, ['$item_type'=>$item_type, '$item'=>$item, '$enqueue_once'=>$enqueue_once]);
     311
     312        if ( $enqueue_once && !in_array( $item_type, $this->enabled_once_scripts ) ) {
    303313
    304314            // Enqueue JS / CSS and init Javascript
     
    308318            // Fixed use of color picker
    309319            $this->enabled_once_scripts[] = $item_type;
     320        } elseif ( !$enqueue_once ) {
     321
     322            // Enqueue JS / CSS and init Javascript
     323            add_action( 'admin_enqueue_scripts', array( $item, 'enqueue_scripts' ), 100 );
     324            add_action( 'admin_footer', array( $item, 'init_scripts' ), 100 );
    310325        }
    311326
     
    360375        } else {
    361376
    362             $all_fields = array_merge( $this->item_instances[ self::USER_META ], $this->item_instances[ self::POST_META ], $this->item_instances[ self::OPTION ] );
     377            $all_fields = $this->item_instances[ self::OPTION ];
    363378            $returned_fields = $all_fields;
    364379        }
  • sukellos-enable-classic-editor/trunk/vendor/wp-sukellos-fw/admin-builder/class-item-type.php

    r2705157 r3162596  
    1919    const ADMIN_TAB = 'admin-tab';
    2020    const ADMIN_ITEM_GROUP = 'admin-item-group';
     21    const ADMIN_ITEM_FORM = 'admin-item-form';
    2122    const META_BOX = 'meta-box';
    2223    const USER_PROFILE = 'user-profile';
     
    9798            self::AJAX_BUTTON,
    9899            self::ADMIN_ITEM_GROUP,
     100            self::ADMIN_ITEM_FORM,
    99101            self::CONTENT,
    100102            self::HEADER,
  • sukellos-enable-classic-editor/trunk/vendor/wp-sukellos-fw/admin-builder/containers/abstract-admin-page.php

    r2705157 r3162596  
    7878    public function verify_security() {
    7979
    80         WP_Log::debug('Admin_Page->verify_security', ['POST'=>$_POST]);
     80        WP_Log::debug(__METHOD__, ['POST'=>$_POST]);
    8181        if ( empty( $_POST ) || empty( $_POST['action'] ) ) {
    8282
    83             WP_Log::debug('Admin_Page->verify_security - POST is empty, aborted', []);
     83            WP_Log::debug(__METHOD__.' - POST is empty, aborted', []);
    8484            return false;
    8585        }
    8686
     87        WP_Log::debug(__METHOD__.' - Before get_current_screen', []);
    8788        $screen = get_current_screen();
     89        WP_Log::debug(__METHOD__.' - After get_current_screen', []);
    8890        if ( $screen->id != $this->wp_menu_page_hook_suffix ) {
    8991
    90             WP_Log::debug('Admin_Page->verify_security - Not the current screen ', ['screen'=>$screen, 'wp_menu_page_hook_suffix'=>$this->wp_menu_page_hook_suffix]);
     92            WP_Log::debug(__METHOD__.' - Not the current screen ', ['screen'=>$screen, 'wp_menu_page_hook_suffix'=>$this->wp_menu_page_hook_suffix]);
    9193            return false;
    9294        }
     
    9496        if ( ! current_user_can( $this->get_capability() ) ) {
    9597
    96             WP_Log::debug('Admin_Page->verify_security - User not authorized ', ['capability'=>$this->get_capability()]);
     98            WP_Log::debug(__METHOD__.' - User not authorized ', ['capability'=>$this->get_capability()]);
    9799            return false;
    98100        }
     
    100102        if ( ! check_admin_referer( $this->get_id(), self::NONCE_PREFIX . '_nonce' ) ) {
    101103
    102             WP_Log::debug('Admin_Page->verify_security - Admin referer not good ', ['nonce'=>self::NONCE_PREFIX . '_nonce']);
     104            WP_Log::debug(__METHOD__.' - Admin referer not good ', ['nonce'=>self::NONCE_PREFIX . '_nonce']);
    103105            return false;
    104106        }
    105107
    106         WP_Log::debug('Admin_Page->verify_security - Accepted', []);
     108        WP_Log::debug(__METHOD__.' - Accepted', []);
    107109        return true;
    108110    }
     
    233235        WP_Log::debug('Admin_Page->action_reset_fields called', ['name' => $this->get_name()]);
    234236
     237        if ( empty( $_POST ) || empty( $_POST['action'] ) ) {
     238
     239            return;
     240        }
     241
     242        if ( $_POST['action'] !== 'reset_fields' ) {
     243
     244            return;
     245        }
     246
    235247        if ( ! $this->verify_security() ) {
    236248            return;
     
    238250
    239251        $message = '';
    240 
    241         if ( $_POST['action'] !== 'reset_fields' ) {
    242 
    243             return;
    244         }
    245252
    246253        do_action( 'sukellos_fw/admin_builder/admin_page/reset_field' );
     
    277284    public function action_save_fields() {
    278285
    279         WP_Log::debug('Admin_Page->action_save_fields called', ['name' => $this->get_name()]);
     286        WP_Log::debug(__METHOD__, ['name' => $this->get_name(), 'GET'=>$_GET, 'POST'=>$_POST]);
     287
     288        // Is the container concerned ?
     289        if ( empty( $_GET ) || !isset( $_GET['page'] ) || ( $_GET['page'] != $this->get_id() ) ) {
     290
     291            WP_Log::debug(__METHOD__.' - Container is not concerned by this action_save_fields hook', ['name' => $this->get_name(), 'GET'=>$_GET, 'id'=>$this->get_id()]);
     292            return;
     293        }
     294
     295        if ( empty( $_POST ) || empty( $_POST['action'] ) ) {
     296
     297            return;
     298        }
     299        if ( $_POST['action'] !== 'save_fields' ) {
     300
     301            WP_Log::debug(__METHOD__.' - Not save_fields then not treated', []);
     302            return;
     303        }
    280304
    281305        if ( ! $this->verify_security() ) {
    282             return;
    283         }
    284 
    285         $message = '';
     306
     307            WP_Log::debug(__METHOD__.' - verify_security not OK, abort', []);
     308            return;
     309        }
    286310
    287311        /*
    288312         *  Save
    289313         */
    290 
    291         if ( $_POST['action'] !== 'save_fields' ) {
    292 
    293             return;
    294         }
    295 
    296314        do_action( 'sukellos_fw/admin_builder/admin_page/save_field' );
    297 
    298         $message = 'saved';
    299 
    300 
    301         /*
    302          * Redirect to prevent refresh saving
    303          */
    304         $url = wp_get_referer();
    305 
    306         //  urlencode to allow special characters in the url
    307         $url = add_query_arg( 'page', urlencode( $this->get_id() ), $url );
    308 
    309         if ( ! empty( $message ) ) {
    310 
    311             $url = add_query_arg( 'message', $message, $url );
    312         }
    313 
    314         $this->add_query_args( $url );
    315315
    316316        /**
     
    320320        do_action( 'sukellos_fw/admin_builder/admin_page/fields_saved' );
    321321
     322        $message = apply_filters( 'sukellos_fw/admin_builder/admin_page/get_message', 'saved' );
     323        WP_Log::debug( __METHOD__, ['message'=>$message]);
     324
     325        /*
     326         * Redirect to prevent refresh saving
     327         */
     328        $url = wp_get_referer();
     329
     330        //  urlencode to allow special characters in the url
     331        $url = add_query_arg( 'page', urlencode( $this->get_id() ), $url );
     332
     333        if ( ! empty( $message ) ) {
     334
     335            $url = add_query_arg( 'message', $message, $url );
     336        }
     337        WP_Log::debug( __METHOD__, ['$url'=>$url]);
     338
     339        $this->add_query_args( $url );
     340
     341
    322342        wp_redirect( esc_url_raw( $url ) );
    323343    }
  • sukellos-enable-classic-editor/trunk/vendor/wp-sukellos-fw/admin-builder/containers/abstract-container.php

    r2705157 r3162596  
    44
    55use Sukellos\WPFw\AdminBuilder\Items\Item;
     6use Sukellos\WPFw\Utils\WP_Log;
    67
    78defined( 'ABSPATH' ) or exit;
     
    9495    protected function create_item( $settings ) {
    9596
     97        WP_Log::debug( __METHOD__, ['$settings'=>$settings] );
    9698        $item = Item_Factory::instance()->create_item( $settings );
    9799        $this->item_instances[] = $item;
  • sukellos-enable-classic-editor/trunk/vendor/wp-sukellos-fw/admin-builder/containers/class-admin-page-simple.php

    r2705157 r3162596  
    66use Sukellos\WPFw\Utils\WP_Helper;
    77use Sukellos\WPFw\Utils\WP_Log;
    8 use Sukellos\WPFw\AdminBuilder\Item_Type;
    98
    109defined( 'ABSPATH' ) or exit;
     
    7978
    8079                $html_content .= WP_Admin_Notices_Manager::instance()->format_notice( WP_Helper::sk__('Settings reset to default.' ), esc_html( $_GET['message'] ) );
    81             }
     80            } else {
     81
     82                $message = $_GET['message'];
     83                $type = WP_Admin_Notices_Manager::TYPE_SAVED;
     84                if ( strpos( $message, '!!' ) !== false ) {
     85
     86                    WP_Log::debug( __METHOD__.' - Separator !! found', ['$message'=>$message]);
     87
     88                    $parts = explode( '!!', $message );
     89                    $message = $parts[0];
     90                    WP_Log::debug( __METHOD__, ['$parts'=>$parts]);
     91
     92                    if ( ( $parts[1] == WP_Admin_Notices_Manager::TYPE_SAVED )
     93                        || ( $parts[1] == WP_Admin_Notices_Manager::TYPE_ERROR )
     94                        || ( $parts[1] == WP_Admin_Notices_Manager::TYPE_NOTICE )
     95                        || ( $parts[1] == WP_Admin_Notices_Manager::TYPE_RESET )
     96                        || ( $parts[1] == WP_Admin_Notices_Manager::TYPE_UPDATED )
     97                    ) {
     98                        $type = $parts[1];
     99                    }
     100
     101                }
     102                $html_content .= WP_Admin_Notices_Manager::instance()->format_notice( $message, $type );
     103            }
    82104        }
    83105
     
    156178
    157179    /**
     180     * Create a crud
     181     *
     182     * @param array $settings depending on item
     183     */
     184    public function create_crud( $settings ) {
     185
     186        // Not supported in Basic version
     187        return null;
     188    }
     189
     190    /**
    158191     * Create a group
    159192     *
     
    164197        // Not supported in Basic version
    165198        return null;
     199    }
     200
     201    /**
     202     * Create a simple form.
     203     * No otion, post_meta... submitted values are checked and forwarded to hook sukellos_fw/admin_builder/item_form/fields_submitted
     204     *
     205     * @param array $settings depending on option
     206     */
     207    public function create_form( $settings ) {
     208
     209        WP_Log::debug( __METHOD__, [] );
     210        $settings['type'] = Item_Type::ADMIN_ITEM_FORM;
     211        $settings['parent_id'] = $this->get_id();
     212
     213        $item = $this->create_item( $settings );
     214        return $item;
    166215    }
    167216
  • sukellos-enable-classic-editor/trunk/vendor/wp-sukellos-fw/admin-builder/css/sk-fw-admin.css

    r2954827 r3162596  
    144144    line-height: 18px;
    145145    margin-top: 10px;
     146    text-wrap: wrap;
    146147}
    147148.sk-content-panel-column .sk-content-panel-column-content.body p strong {
  • sukellos-enable-classic-editor/trunk/vendor/wp-sukellos-fw/admin-builder/items/abstract-item.php

    r2705157 r3162596  
    6363
    6464        /**
     65         * Used to know if the script of the Item can be enqueued once
     66         *
     67         * @since 1.3.0
     68         */
     69        'enqueue_once' => true,
     70
     71        /**
    6572         * Set to true is the item need a form to work, like a field
    6673         * This option may be automatically set to true if the item is containing other items that have this option set to true
     
    165172        foreach ( $new_settings as $setting_name => $value ) {
    166173
    167             if ( ( array_key_exists( $setting_name, $ref_settings ) ) || ( 'sukellos_rule_exception' === $setting_name ) ) {
     174            if ( ( array_key_exists( $setting_name, $ref_settings ) ) || ( 'sukellos_rule_exception' === $setting_name ) || ( 'mandatory' === $setting_name ) ) {
    168175
    169176                // Remove it from new settings...
  • sukellos-enable-classic-editor/trunk/vendor/wp-sukellos-fw/admin-builder/items/class-content.php

    r2705157 r3162596  
    44
    55use Sukellos\WPFw\AdminBuilder\Item_Type;
     6use Sukellos\WPFw\Utils\WP_Log;
    67
    78defined( 'ABSPATH' ) or exit;
     
    5051        $html_content = '<div id="'.$id.'" class="sk-admin-builder-item-content '.( ( $class !== '' )?$class:'' ).'" >';
    5152
    52         $html_content .= $this->get_content();
     53        /**
     54         * Allow to add content that can be treted only after admin_menu hook execution context
     55         *
     56         * @since 1.3.2
     57         */
     58        WP_Log::debug( __METHOD__, [] );
     59        $html_content .= apply_filters( 'sukellos_fw/admin_builder/field/'.$this->get_id(), $this->get_content() );
    5360
    5461        if ( ! empty( $this->get_desc() ) ) {
  • sukellos-enable-classic-editor/trunk/vendor/wp-sukellos-fw/admin-builder/items/fields/abstract-field.php

    r2705157 r3162596  
    159159        }
    160160
    161         $this->handler->save();
     161        $saved = $this->handler->save();
    162162
    163163        /**
     
    167167         * @param $value the raw value
    168168         */
    169         do_action( 'sukellos_fw/admin_builder/field/field_saved_'.$this->get_id(), $this->get_value() );
     169        if ( $saved ) do_action( 'sukellos_fw/admin_builder/field/field_saved_'.$this->get_id(), $this->get_value() );
    170170    }
    171171
     
    200200            return;
    201201        }
    202         $this->handler->reset();
     202        $reseted = $this->handler->reset();
    203203
    204204        /**
     
    208208         * @param $value the raw value
    209209         */
    210         do_action( 'sukellos_fw/admin_builder/field/field_reseted_'.$this->get_id(), $this->get_value() );
     210        if ( $reseted ) do_action( 'sukellos_fw/admin_builder/field/field_reseted_'.$this->get_id(), $this->get_value() );
    211211    }
    212212
  • sukellos-enable-classic-editor/trunk/vendor/wp-sukellos-fw/admin-builder/items/fields/handlers/class-option-handler.php

    r2705157 r3162596  
    5757            update_option( $this->field_id, $this->value );
    5858
     59            return true;
    5960        }
    6061
     62        return false;
    6163    }
    6264
     
    98100
    99101            update_option( $this->field_id, $this->value );
     102
     103            return true;
    100104        }
    101105
     106        return false;
    102107    }
    103108}
  • sukellos-enable-classic-editor/trunk/vendor/wp-sukellos-fw/autoload.php

    r2763350 r3162596  
    4242  'Sukellos\\WPFw\\AdminBuilder\\Admin_Page' => 'admin-builder/containers/abstract-admin-page.php',
    4343  'Sukellos\\WPFw\\AdminBuilder\\Admin_Page_Simple' => 'admin-builder/containers/class-admin-page-simple.php',
     44  'Sukellos\\WPFw\\AdminBuilder\\Admin_Item_Form' => 'admin-builder/containers/class-admin-item-form.php',
    4445  'Sukellos\\WPFw\\AdminBuilder\\Fields\\Sanitize_Manager' => 'admin-builder/items/fields/class-sanitize-manager.php',
    4546  'Sukellos\\WPFw\\AdminBuilder\\Fields\\Data_Strategy' => 'admin-builder/items/fields/data-strategies/interface-data-strategy.php',
     
    4950  'Sukellos\\WPFw\\AdminBuilder\\Fields\\Field_Handler' => 'admin-builder/items/fields/handlers/abstract-field-handler.php',
    5051  'Sukellos\\WPFw\\AdminBuilder\\Fields\\Option_Handler' => 'admin-builder/items/fields/handlers/class-option-handler.php',
     52  'Sukellos\\WPFw\\AdminBuilder\\Fields\\Form_Field_Handler' => 'admin-builder/items/fields/handlers/class-form-field-handler.php',
    5153  'Sukellos\\WPFw\\AdminBuilder\\Fields\\Field' => 'admin-builder/items/fields/abstract-field.php',
    5254  'Sukellos\\WPFw\\AdminBuilder\\Fields\\Choices_Field' => 'admin-builder/items/fields/abstract-choices-field.php',
  • sukellos-enable-classic-editor/trunk/vendor/wp-sukellos-fw/utils/class-wp-helper.php

    r2925170 r3162596  
    167167        foreach ( (array) $wp_filter[ $hook_name ][ $priority ] as $unique_id => $filter_array ) {
    168168            // Test if filter is an array ! (always for class/method)
    169             if ( isset( $filter_array['function'] ) && is_array( $filter_array['function'] ) ) {
    170                 // Test if object is a class and method is equal to param !
    171                 if ( is_object( $filter_array['function'][0] ) && get_class( $filter_array['function'][0] ) && $filter_array['function'][1] == $method_name ) {
    172                     // Test for WordPress >= 4.7 WP_Hook class (https://make.wordpress.org/core/2016/09/08/wp_hook-next-generation-actions-and-filters/)
    173                     if ( is_a( $wp_filter[ $hook_name ], 'WP_Hook' ) ) {
    174                         unset( $wp_filter[ $hook_name ]->callbacks[ $priority ][ $unique_id ] );
     169            if ( isset( $filter_array['function'] ) ) {
     170                if (is_array($filter_array['function'])) {
     171                    // Test if object is a class and method is equal to param !
     172                    if (is_object($filter_array['function'][0]) && get_class($filter_array['function'][0]) && $filter_array['function'][1] == $method_name) {
     173                        // Test for WordPress >= 4.7 WP_Hook class (https://make.wordpress.org/core/2016/09/08/wp_hook-next-generation-actions-and-filters/)
     174                        if (is_a($wp_filter[$hook_name], 'WP_Hook')) {
     175                            unset($wp_filter[$hook_name]->callbacks[$priority][$unique_id]);
     176                        } else {
     177                            unset($wp_filter[$hook_name][$priority][$unique_id]);
     178                        }
     179                    }
     180                }
     181                // Else this is a static call
     182                else {
     183                    if (is_a($wp_filter[$hook_name], 'WP_Hook')) {
     184                        unset($wp_filter[$hook_name]->callbacks[$priority][$unique_id]);
    175185                    } else {
    176                         unset( $wp_filter[ $hook_name ][ $priority ][ $unique_id ] );
     186                        unset($wp_filter[$hook_name][$priority][$unique_id]);
    177187                    }
    178188                }
  • sukellos-enable-classic-editor/trunk/vendor/wp-sukellos-fw/utils/class-wp-sukellos-plugins-manager.php

    r2784637 r3162596  
    110110            'is_licensed' => true,
    111111        ),
     112        'sukellos-email-tracker/sukellos-email-tracker.php' => array(
     113            'name' => 'Sukellos - Email Tracker',
     114            'is_tool' => true,
     115            'description' => 'Allows you to track email openings, clicks on links, etc.',
     116            'button_label' => 'FREE DOWNLOAD',
     117            'url' => 'https://wp-adminbuilder.com/email-tracker/',
     118            'is_active' => false,
     119            'is_full_version' => true,
     120            'is_licensed' => false,
     121        ),
     122        'sukellos-scrapio/sukellos-scrapio.php' => array(
     123            'name' => 'Sukellos - Scrapio',
     124            'is_tool' => true,
     125            'description' => 'Connects to Scrap.io\'s API to fetch Google Places based on criteria. Selected results are imported as Custom Post Types, with ACF fields generated from Scrap.io data.',
     126            'button_label' => 'FREE DOWNLOAD',
     127            'url' => 'https://wp-adminbuilder.com/scrapio/',
     128            'is_active' => false,
     129            'is_full_version' => true,
     130            'is_licensed' => false,
     131        ),
    112132    );
    113133
  • sukellos-enable-classic-editor/trunk/vendor/wp-sukellos-fw/wp-sukellos-fw-loader.php

    r2705157 r3162596  
    7777    public function get_documentation_url() {
    7878
    79         return $this->plugin_info( WP_PLoad::AUTHOR_URI ).'/tutorial/sukellos-fw-minimum-requirements/';
     79        return 'https://wp-adminbuilder.com/tutorial/sukellos-fw-minimum-requirements/';
    8080    }
    8181
     
    143143
    144144        // CSS
    145         wp_enqueue_style('sukellos_fw_css', $this->get_plugin_dir_url().'assets/css/plugin.css', array(), '1.0', 'all');
     145        //wp_enqueue_style('sukellos_fw_css', $this->get_plugin_dir_url().'assets/css/plugin.css', array(), '1.0', 'all');
    146146    }
    147147}
Note: See TracChangeset for help on using the changeset viewer.