diff --git a/plugins/cipf_plugin/js/images/image-edit.js b/plugins/cipf_plugin/js/images/image-edit.js
deleted file mode 100644
index dd7542d..0000000
--- a/plugins/cipf_plugin/js/images/image-edit.js
+++ /dev/null
@@ -1,1463 +0,0 @@
-/**
- * The functions necessary for editing images.
- *
- * @since 2.9.0
- * @output wp-admin/js/image-edit.js
- */
-
- /* global ajaxurl, confirm */
-
-(function($) {
- var __ = wp.i18n.__;
-
- /**
- * Contains all the methods to initialize and control the image editor.
- *
- * @namespace imageEdit
- */
- var imageEdit = window.imageEdit = {
- iasapi : {},
- hold : {},
- postid : '',
- _view : false,
-
- /**
- * Enable crop tool.
- */
- toggleCropTool: function( postid, nonce, cropButton ) {
- var img = $( '#image-preview-' + postid ),
- selection = this.iasapi.getSelection();
-
- imageEdit.toggleControls( cropButton );
- var $el = $( cropButton );
- var state = ( $el.attr( 'aria-expanded' ) === 'true' ) ? 'true' : 'false';
- // Crop tools have been closed.
- if ( 'false' === state ) {
- // Cancel selection, but do not unset inputs.
- this.iasapi.cancelSelection();
- imageEdit.setDisabled($('.imgedit-crop-clear'), 0);
- } else {
- imageEdit.setDisabled($('.imgedit-crop-clear'), 1);
- // Get values from inputs to restore previous selection.
- var startX = ( $( '#imgedit-start-x-' + postid ).val() ) ? $('#imgedit-start-x-' + postid).val() : 0;
- var startY = ( $( '#imgedit-start-y-' + postid ).val() ) ? $('#imgedit-start-y-' + postid).val() : 0;
- var width = ( $( '#imgedit-sel-width-' + postid ).val() ) ? $('#imgedit-sel-width-' + postid).val() : img.innerWidth();
- var height = ( $( '#imgedit-sel-height-' + postid ).val() ) ? $('#imgedit-sel-height-' + postid).val() : img.innerHeight();
- // Ensure selection is available, otherwise reset to full image.
- if ( isNaN( selection.x1 ) ) {
- this.setCropSelection( postid, { 'x1': startX, 'y1': startY, 'x2': width, 'y2': height, 'width': width, 'height': height } );
- selection = this.iasapi.getSelection();
- }
-
- // If we don't already have a selection, select the entire image.
- if ( 0 === selection.x1 && 0 === selection.y1 && 0 === selection.x2 && 0 === selection.y2 ) {
- this.iasapi.setSelection( 0, 0, img.innerWidth(), img.innerHeight(), true );
- this.iasapi.setOptions( { show: true } );
- this.iasapi.update();
- } else {
- this.iasapi.setSelection( startX, startY, width, height, true );
- this.iasapi.setOptions( { show: true } );
- this.iasapi.update();
- }
- }
- },
-
- /**
- * Handle crop tool clicks.
- */
- handleCropToolClick: function( postid, nonce, cropButton ) {
-
- if ( cropButton.classList.contains( 'imgedit-crop-clear' ) ) {
- this.iasapi.cancelSelection();
- imageEdit.setDisabled($('.imgedit-crop-apply'), 0);
-
- $('#imgedit-sel-width-' + postid).val('');
- $('#imgedit-sel-height-' + postid).val('');
- $('#imgedit-start-x-' + postid).val('0');
- $('#imgedit-start-y-' + postid).val('0');
- $('#imgedit-selection-' + postid).val('');
- } else {
- // Otherwise, perform the crop.
- imageEdit.crop( postid, nonce , cropButton );
- }
- },
-
- /**
- * Converts a value to an integer.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} f The float value that should be converted.
- *
- * @return {number} The integer representation from the float value.
- */
- intval : function(f) {
- /*
- * Bitwise OR operator: one of the obscure ways to truncate floating point figures,
- * worth reminding JavaScript doesn't have a distinct "integer" type.
- */
- return f | 0;
- },
-
- /**
- * Adds the disabled attribute and class to a single form element or a field set.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {jQuery} el The element that should be modified.
- * @param {boolean|number} s The state for the element. If set to true
- * the element is disabled,
- * otherwise the element is enabled.
- * The function is sometimes called with a 0 or 1
- * instead of true or false.
- *
- * @return {void}
- */
- setDisabled : function( el, s ) {
- /*
- * `el` can be a single form element or a fieldset. Before #28864, the disabled state on
- * some text fields was handled targeting $('input', el). Now we need to handle the
- * disabled state on buttons too so we can just target `el` regardless if it's a single
- * element or a fieldset because when a fieldset is disabled, its descendants are disabled too.
- */
- if ( s ) {
- el.removeClass( 'disabled' ).prop( 'disabled', false );
- } else {
- el.addClass( 'disabled' ).prop( 'disabled', true );
- }
- },
-
- /**
- * Initializes the image editor.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- *
- * @return {void}
- */
- init : function(postid) {
- var t = this, old = $('#image-editor-' + t.postid),
- x = t.intval( $('#imgedit-x-' + postid).val() ),
- y = t.intval( $('#imgedit-y-' + postid).val() );
-
- if ( t.postid !== postid && old.length ) {
- t.close(t.postid);
- }
-
- t.hold.w = t.hold.ow = x;
- t.hold.h = t.hold.oh = y;
- t.hold.xy_ratio = x / y;
- t.hold.sizer = parseFloat( $('#imgedit-sizer-' + postid).val() );
- t.postid = postid;
- $('#imgedit-response-' + postid).empty();
-
- $('#imgedit-panel-' + postid).on( 'keypress', function(e) {
- var nonce = $( '#imgedit-nonce-' + postid ).val();
- if ( e.which === 26 && e.ctrlKey ) {
- imageEdit.undo( postid, nonce );
- }
-
- if ( e.which === 25 && e.ctrlKey ) {
- imageEdit.redo( postid, nonce );
- }
- });
-
- $('#imgedit-panel-' + postid).on( 'keypress', 'input[type="text"]', function(e) {
- var k = e.keyCode;
-
- // Key codes 37 through 40 are the arrow keys.
- if ( 36 < k && k < 41 ) {
- $(this).trigger( 'blur' );
- }
-
- // The key code 13 is the Enter key.
- if ( 13 === k ) {
- e.preventDefault();
- e.stopPropagation();
- return false;
- }
- });
-
- $( document ).on( 'image-editor-ui-ready', this.focusManager );
- },
-
- /**
- * Toggles the wait/load icon in the editor.
- *
- * @since 2.9.0
- * @since 5.5.0 Added the triggerUIReady parameter.
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- * @param {number} toggle Is 0 or 1, fades the icon in when 1 and out when 0.
- * @param {boolean} triggerUIReady Whether to trigger a custom event when the UI is ready. Default false.
- *
- * @return {void}
- */
- toggleEditor: function( postid, toggle, triggerUIReady ) {
- var wait = $('#imgedit-wait-' + postid);
-
- if ( toggle ) {
- wait.fadeIn( 'fast' );
- } else {
- wait.fadeOut( 'fast', function() {
- if ( triggerUIReady ) {
- $( document ).trigger( 'image-editor-ui-ready' );
- }
- } );
- }
- },
-
- /**
- * Shows or hides image menu popup.
- *
- * @since 6.3.0
- *
- * @memberof imageEdit
- *
- * @param {HTMLElement} el The activated control element.
- *
- * @return {boolean} Always returns false.
- */
- togglePopup : function(el) {
- var $el = $( el );
- var $targetEl = $( el ).attr( 'aria-controls' );
- var $target = $( '#' + $targetEl );
- $el
- .attr( 'aria-expanded', 'false' === $el.attr( 'aria-expanded' ) ? 'true' : 'false' );
- // Open menu and set z-index to appear above image crop area if it is enabled.
- $target
- .toggleClass( 'imgedit-popup-menu-open' ).slideToggle( 'fast' ).css( { 'z-index' : 200000 } );
- // Move focus to first item in menu when opening menu.
- if ( 'true' === $el.attr( 'aria-expanded' ) ) {
- $target.find( 'button' ).first().trigger( 'focus' );
- }
-
- return false;
- },
-
- /**
- * Observes whether the popup should remain open based on focus position.
- *
- * @since 6.4.0
- *
- * @memberof imageEdit
- *
- * @param {HTMLElement} el The activated control element.
- *
- * @return {boolean} Always returns false.
- */
- monitorPopup : function() {
- var $parent = document.querySelector( '.imgedit-rotate-menu-container' );
- var $toggle = document.querySelector( '.imgedit-rotate-menu-container .imgedit-rotate' );
-
- setTimeout( function() {
- var $focused = document.activeElement;
- var $contains = $parent.contains( $focused );
-
- // If $focused is defined and not inside the menu container, close the popup.
- if ( $focused && ! $contains ) {
- if ( 'true' === $toggle.getAttribute( 'aria-expanded' ) ) {
- imageEdit.togglePopup( $toggle );
- }
- }
- }, 100 );
-
- return false;
- },
-
- /**
- * Navigate popup menu by arrow keys.
- *
- * @since 6.3.0
- *
- * @memberof imageEdit
- *
- * @param {HTMLElement} el The current element.
- *
- * @return {boolean} Always returns false.
- */
- browsePopup : function(el) {
- var $el = $( el );
- var $collection = $( el ).parent( '.imgedit-popup-menu' ).find( 'button' );
- var $index = $collection.index( $el );
- var $prev = $index - 1;
- var $next = $index + 1;
- var $last = $collection.length;
- if ( $prev < 0 ) {
- $prev = $last - 1;
- }
- if ( $next === $last ) {
- $next = 0;
- }
- var $target = false;
- if ( event.keyCode === 40 ) {
- $target = $collection.get( $next );
- } else if ( event.keyCode === 38 ) {
- $target = $collection.get( $prev );
- }
- if ( $target ) {
- $target.focus();
- event.preventDefault();
- }
-
- return false;
- },
-
- /**
- * Close popup menu and reset focus on feature activation.
- *
- * @since 6.3.0
- *
- * @memberof imageEdit
- *
- * @param {HTMLElement} el The current element.
- *
- * @return {boolean} Always returns false.
- */
- closePopup : function(el) {
- var $parent = $(el).parent( '.imgedit-popup-menu' );
- var $controlledID = $parent.attr( 'id' );
- var $target = $( 'button[aria-controls="' + $controlledID + '"]' );
- $target
- .attr( 'aria-expanded', 'false' ).trigger( 'focus' );
- $parent
- .toggleClass( 'imgedit-popup-menu-open' ).slideToggle( 'fast' );
-
- return false;
- },
-
- /**
- * Shows or hides the image edit help box.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {HTMLElement} el The element to create the help window in.
- *
- * @return {boolean} Always returns false.
- */
- toggleHelp : function(el) {
- var $el = $( el );
- $el
- .attr( 'aria-expanded', 'false' === $el.attr( 'aria-expanded' ) ? 'true' : 'false' )
- .parents( '.imgedit-group-top' ).toggleClass( 'imgedit-help-toggled' ).find( '.imgedit-help' ).slideToggle( 'fast' );
-
- return false;
- },
-
- /**
- * Shows or hides image edit input fields when enabled.
- *
- * @since 6.3.0
- *
- * @memberof imageEdit
- *
- * @param {HTMLElement} el The element to trigger the edit panel.
- *
- * @return {boolean} Always returns false.
- */
- toggleControls : function(el) {
- var $el = $( el );
- var $target = $( '#' + $el.attr( 'aria-controls' ) );
- $el
- .attr( 'aria-expanded', 'false' === $el.attr( 'aria-expanded' ) ? 'true' : 'false' );
- $target
- .parent( '.imgedit-group' ).toggleClass( 'imgedit-panel-active' );
-
- return false;
- },
-
- /**
- * Gets the value from the image edit target.
- *
- * The image edit target contains the image sizes where the (possible) changes
- * have to be applied to.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- *
- * @return {string} The value from the imagedit-save-target input field when available,
- * 'full' when not selected, or 'all' if it doesn't exist.
- */
- getTarget : function( postid ) {
- var element = $( '#imgedit-save-target-' + postid );
-
- if ( element.length ) {
- return element.find( 'input[name="imgedit-target-' + postid + '"]:checked' ).val() || 'full';
- }
-
- return 'all';
- },
-
- /**
- * Recalculates the height or width and keeps the original aspect ratio.
- *
- * If the original image size is exceeded a red exclamation mark is shown.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The current post ID.
- * @param {number} x Is 0 when it applies the y-axis
- * and 1 when applicable for the x-axis.
- * @param {jQuery} el Element.
- *
- * @return {void}
- */
- scaleChanged : function( postid, x, el ) {
- var w = $('#imgedit-scale-width-' + postid), h = $('#imgedit-scale-height-' + postid),
- warn = $('#imgedit-scale-warn-' + postid), w1 = '', h1 = '',
- scaleBtn = $('#imgedit-scale-button');
-
- if ( false === this.validateNumeric( el ) ) {
- return;
- }
-
- if ( x ) {
- h1 = ( w.val() !== '' ) ? Math.round( w.val() / this.hold.xy_ratio ) : '';
- h.val( h1 );
- } else {
- w1 = ( h.val() !== '' ) ? Math.round( h.val() * this.hold.xy_ratio ) : '';
- w.val( w1 );
- }
-
- if ( ( h1 && h1 > this.hold.oh ) || ( w1 && w1 > this.hold.ow ) ) {
- warn.css('visibility', 'visible');
- scaleBtn.prop('disabled', true);
- } else {
- warn.css('visibility', 'hidden');
- scaleBtn.prop('disabled', false);
- }
- },
-
- /**
- * Gets the selected aspect ratio.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- *
- * @return {string} The aspect ratio.
- */
- getSelRatio : function(postid) {
- var x = this.hold.w, y = this.hold.h,
- X = this.intval( $('#imgedit-crop-width-' + postid).val() ),
- Y = this.intval( $('#imgedit-crop-height-' + postid).val() );
-
- if ( X && Y ) {
- return X + ':' + Y;
- }
-
- if ( x && y ) {
- return x + ':' + y;
- }
-
- return '1:1';
- },
-
- /**
- * Removes the last action from the image edit history.
- * The history consist of (edit) actions performed on the image.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- * @param {number} setSize 0 or 1, when 1 the image resets to its original size.
- *
- * @return {string} JSON string containing the history or an empty string if no history exists.
- */
- filterHistory : function(postid, setSize) {
- // Apply undo state to history.
- var history = $('#imgedit-history-' + postid).val(), pop, n, o, i, op = [];
-
- if ( history !== '' ) {
- // Read the JSON string with the image edit history.
- history = JSON.parse(history);
- pop = this.intval( $('#imgedit-undone-' + postid).val() );
- if ( pop > 0 ) {
- while ( pop > 0 ) {
- history.pop();
- pop--;
- }
- }
-
- // Reset size to its original state.
- if ( setSize ) {
- if ( !history.length ) {
- this.hold.w = this.hold.ow;
- this.hold.h = this.hold.oh;
- return '';
- }
-
- // Restore original 'o'.
- o = history[history.length - 1];
-
- // c = 'crop', r = 'rotate', f = 'flip'.
- o = o.c || o.r || o.f || false;
-
- if ( o ) {
- // fw = Full image width.
- this.hold.w = o.fw;
- // fh = Full image height.
- this.hold.h = o.fh;
- }
- }
-
- // Filter the last step/action from the history.
- for ( n in history ) {
- i = history[n];
- if ( i.hasOwnProperty('c') ) {
- op[n] = { 'c': { 'x': i.c.x, 'y': i.c.y, 'w': i.c.w, 'h': i.c.h } };
- } else if ( i.hasOwnProperty('r') ) {
- op[n] = { 'r': i.r.r };
- } else if ( i.hasOwnProperty('f') ) {
- op[n] = { 'f': i.f.f };
- }
- }
- return JSON.stringify(op);
- }
- return '';
- },
- /**
- * Binds the necessary events to the image.
- *
- * When the image source is reloaded the image will be reloaded.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- * @param {string} nonce The nonce to verify the request.
- * @param {function} callback Function to execute when the image is loaded.
- *
- * @return {void}
- */
- refreshEditor : function(postid, nonce, callback) {
- var t = this, data, img;
-
- t.toggleEditor(postid, 1);
- data = {
- 'action': 'imgedit-preview',
- '_ajax_nonce': nonce,
- 'postid': postid,
- 'history': t.filterHistory(postid, 1),
- 'rand': t.intval(Math.random() * 1000000)
- };
-
- img = $( '
' )
- .on( 'load', { history: data.history }, function( event ) {
- var max1, max2,
- parent = $( '#imgedit-crop-' + postid ),
- t = imageEdit,
- historyObj;
-
- // Checks if there already is some image-edit history.
- if ( '' !== event.data.history ) {
- historyObj = JSON.parse( event.data.history );
- // If last executed action in history is a crop action.
- if ( historyObj[historyObj.length - 1].hasOwnProperty( 'c' ) ) {
- /*
- * A crop action has completed and the crop button gets disabled
- * ensure the undo button is enabled.
- */
- t.setDisabled( $( '#image-undo-' + postid) , true );
- // Move focus to the undo button to avoid a focus loss.
- $( '#image-undo-' + postid ).trigger( 'focus' );
- }
- }
-
- parent.empty().append(img);
-
- // w, h are the new full size dimensions.
- max1 = Math.max( t.hold.w, t.hold.h );
- max2 = Math.max( $(img).width(), $(img).height() );
- t.hold.sizer = max1 > max2 ? max2 / max1 : 1;
-
- t.initCrop(postid, img, parent);
-
- if ( (typeof callback !== 'undefined') && callback !== null ) {
- callback();
- }
-
- if ( $('#imgedit-history-' + postid).val() && $('#imgedit-undone-' + postid).val() === '0' ) {
- $('button.imgedit-submit-btn', '#imgedit-panel-' + postid).prop('disabled', false);
- } else {
- $('button.imgedit-submit-btn', '#imgedit-panel-' + postid).prop('disabled', true);
- }
- var successMessage = __( 'Image updated.' );
-
- t.toggleEditor(postid, 0);
- wp.a11y.speak( successMessage, 'assertive' );
- })
- .on( 'error', function() {
- var errorMessage = __( 'Could not load the preview image. Please reload the page and try again.' );
-
- $( '#imgedit-crop-' + postid )
- .empty()
- .append( '
' );
-
- t.toggleEditor( postid, 0, true );
- wp.a11y.speak( errorMessage, 'assertive' );
- } )
- .attr('src', ajaxurl + '?' + $.param(data));
- },
- /**
- * Performs an image edit action.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- * @param {string} nonce The nonce to verify the request.
- * @param {string} action The action to perform on the image.
- * The possible actions are: "scale" and "restore".
- *
- * @return {boolean|void} Executes a post request that refreshes the page
- * when the action is performed.
- * Returns false if an invalid action is given,
- * or when the action cannot be performed.
- */
- action : function(postid, nonce, action) {
- var t = this, data, w, h, fw, fh;
-
- if ( t.notsaved(postid) ) {
- return false;
- }
-
- data = {
- 'action': 'image-editor',
- '_ajax_nonce': nonce,
- 'postid': postid
- };
-
- if ( 'scale' === action ) {
- w = $('#imgedit-scale-width-' + postid),
- h = $('#imgedit-scale-height-' + postid),
- fw = t.intval(w.val()),
- fh = t.intval(h.val());
-
- if ( fw < 1 ) {
- w.trigger( 'focus' );
- return false;
- } else if ( fh < 1 ) {
- h.trigger( 'focus' );
- return false;
- }
-
- if ( fw === t.hold.ow || fh === t.hold.oh ) {
- return false;
- }
-
- data['do'] = 'scale';
- data.fwidth = fw;
- data.fheight = fh;
- } else if ( 'restore' === action ) {
- data['do'] = 'restore';
- } else {
- return false;
- }
-
- t.toggleEditor(postid, 1);
- $.post( ajaxurl, data, function( response ) {
- $( '#image-editor-' + postid ).empty().append( response.data.html );
- t.toggleEditor( postid, 0, true );
- // Refresh the attachment model so that changes propagate.
- if ( t._view ) {
- t._view.refresh();
- }
- } ).done( function( response ) {
- // Whether the executed action was `scale` or `restore`, the response does have a message.
- if ( response && response.data.message.msg ) {
- wp.a11y.speak( response.data.message.msg );
- return;
- }
-
- if ( response && response.data.message.error ) {
- wp.a11y.speak( response.data.message.error );
- }
- } );
- },
-
- /**
- * Stores the changes that are made to the image.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID to get the image from the database.
- * @param {string} nonce The nonce to verify the request.
- *
- * @return {boolean|void} If the actions are successfully saved a response message is shown.
- * Returns false if there is no image editing history,
- * thus there are not edit-actions performed on the image.
- */
- save : function(postid, nonce) {
- var data,
- target = this.getTarget(postid),
- history = this.filterHistory(postid, 0),
- self = this;
-
- if ( '' === history ) {
- return false;
- }
-
- this.toggleEditor(postid, 1);
- data = {
- 'action': 'image-editor',
- '_ajax_nonce': nonce,
- 'postid': postid,
- 'history': history,
- 'target': target,
- 'context': $('#image-edit-context').length ? $('#image-edit-context').val() : null,
- 'do': 'save'
- };
- // Post the image edit data to the backend.
- $.post( ajaxurl, data, function( response ) {
- // If a response is returned, close the editor and show an error.
- if ( response.data.error ) {
- $( '#imgedit-response-' + postid )
- .html( '' + response.data.error + '
' );
-
- imageEdit.close(postid);
- wp.a11y.speak( response.data.error );
- return;
- }
-
- if ( response.data.fw && response.data.fh ) {
- $( '#media-dims-' + postid ).html( response.data.fw + ' × ' + response.data.fh );
- }
-
- if ( response.data.thumbnail ) {
- $( '.thumbnail', '#thumbnail-head-' + postid ).attr( 'src', '' + response.data.thumbnail );
- }
-
- if ( response.data.msg ) {
- $( '#imgedit-response-' + postid )
- .html( '' + response.data.msg + '
' );
-
- wp.a11y.speak( response.data.msg );
- }
-
- if ( self._view ) {
- self._view.save();
- } else {
- imageEdit.close(postid);
- }
- });
- },
-
- /**
- * Creates the image edit window.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID for the image.
- * @param {string} nonce The nonce to verify the request.
- * @param {Object} view The image editor view to be used for the editing.
- *
- * @return {void|promise} Either returns void if the button was already activated
- * or returns an instance of the image editor, wrapped in a promise.
- */
- open : function( postid, nonce, view ) {
- this._view = view;
-
- var dfd, data,
- elem = $( '#image-editor-' + postid ),
- head = $( '#media-head-' + postid ),
- btn = $( '#imgedit-open-btn-' + postid ),
- spin = btn.siblings( '.spinner' );
-
- /*
- * Instead of disabling the button, which causes a focus loss and makes screen
- * readers announce "unavailable", return if the button was already clicked.
- */
- if ( btn.hasClass( 'button-activated' ) ) {
- return;
- }
-
- spin.addClass( 'is-active' );
-
- data = {
- 'action': 'image-editor',
- '_ajax_nonce': nonce,
- 'postid': postid,
- 'do': 'open'
- };
-
- dfd = $.ajax( {
- url: ajaxurl,
- type: 'post',
- data: data,
- beforeSend: function() {
- btn.addClass( 'button-activated' );
- }
- } ).done( function( response ) {
- var errorMessage;
-
- if ( '-1' === response ) {
- errorMessage = __( 'Could not load the preview image.' );
- elem.html( '' );
- }
-
- if ( response.data && response.data.html ) {
- elem.html( response.data.html );
- }
-
- head.fadeOut( 'fast', function() {
- elem.fadeIn( 'fast', function() {
- if ( errorMessage ) {
- $( document ).trigger( 'image-editor-ui-ready' );
- }
- } );
- btn.removeClass( 'button-activated' );
- spin.removeClass( 'is-active' );
- } );
- // Initialize the Image Editor now that everything is ready.
- imageEdit.init( postid );
- } );
-
- return dfd;
- },
-
- /**
- * Initializes the cropping tool and sets a default cropping selection.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- *
- * @return {void}
- */
- imgLoaded : function(postid) {
- var img = $('#image-preview-' + postid), parent = $('#imgedit-crop-' + postid);
-
- // Ensure init has run even when directly loaded.
- if ( 'undefined' === typeof this.hold.sizer ) {
- this.init( postid );
- }
-
- this.initCrop(postid, img, parent);
- this.setCropSelection( postid, { 'x1': 0, 'y1': 0, 'x2': 0, 'y2': 0, 'width': img.innerWidth(), 'height': img.innerHeight() } );
-
- this.toggleEditor( postid, 0, true );
- },
-
- /**
- * Manages keyboard focus in the Image Editor user interface.
- *
- * @since 5.5.0
- *
- * @return {void}
- */
- focusManager: function() {
- /*
- * Editor is ready. Move focus to one of the admin alert notices displayed
- * after a user action or to the first focusable element. Since the DOM
- * update is pretty large, the timeout helps browsers update their
- * accessibility tree to better support assistive technologies.
- */
- setTimeout( function() {
- var elementToSetFocusTo = $( '.notice[role="alert"]' );
-
- if ( ! elementToSetFocusTo.length ) {
- elementToSetFocusTo = $( '.imgedit-wrap' ).find( ':tabbable:first' );
- }
-
- elementToSetFocusTo.attr( 'tabindex', '-1' ).trigger( 'focus' );
- }, 100 );
- },
-
- /**
- * Initializes the cropping tool.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- * @param {HTMLElement} image The preview image.
- * @param {HTMLElement} parent The preview image container.
- *
- * @return {void}
- */
- initCrop : function(postid, image, parent) {
- var t = this,
- selW = $('#imgedit-sel-width-' + postid),
- selH = $('#imgedit-sel-height-' + postid),
- selX = $('#imgedit-start-x-' + postid),
- selY = $('#imgedit-start-y-' + postid),
- $image = $( image ),
- $img;
-
- // Already initialized?
- if ( $image.data( 'imgAreaSelect' ) ) {
- return;
- }
-
- t.iasapi = $image.imgAreaSelect({
- parent: parent,
- instance: true,
- handles: true,
- keys: true,
- minWidth: 3,
- minHeight: 3,
-
- /**
- * Sets the CSS styles and binds events for locking the aspect ratio.
- *
- * @ignore
- *
- * @param {jQuery} img The preview image.
- */
- onInit: function( img ) {
- // Ensure that the imgAreaSelect wrapper elements are position:absolute
- // (even if we're in a position:fixed modal).
- $img = $( img );
- $img.next().css( 'position', 'absolute' )
- .nextAll( '.imgareaselect-outer' ).css( 'position', 'absolute' );
- /**
- * Binds mouse down event to the cropping container.
- *
- * @return {void}
- */
- parent.children().on( 'mousedown, touchstart', function(e){
- var ratio = false, sel, defRatio;
-
- if ( e.shiftKey ) {
- sel = t.iasapi.getSelection();
- defRatio = t.getSelRatio(postid);
- ratio = ( sel && sel.width && sel.height ) ? sel.width + ':' + sel.height : defRatio;
- }
-
- t.iasapi.setOptions({
- aspectRatio: ratio
- });
- });
- },
-
- /**
- * Event triggered when starting a selection.
- *
- * @ignore
- *
- * @return {void}
- */
- onSelectStart: function() {
- imageEdit.setDisabled($('#imgedit-crop-sel-' + postid), 1);
- imageEdit.setDisabled($('.imgedit-crop-clear'), 1);
- imageEdit.setDisabled($('.imgedit-crop-apply'), 1);
- },
- /**
- * Event triggered when the selection is ended.
- *
- * @ignore
- *
- * @param {Object} img jQuery object representing the image.
- * @param {Object} c The selection.
- *
- * @return {Object}
- */
- onSelectEnd: function(img, c) {
- imageEdit.setCropSelection(postid, c);
- if ( ! $('#imgedit-crop > *').is(':visible') ) {
- imageEdit.toggleControls($('.imgedit-crop.button'));
- }
- },
-
- /**
- * Event triggered when the selection changes.
- *
- * @ignore
- *
- * @param {Object} img jQuery object representing the image.
- * @param {Object} c The selection.
- *
- * @return {void}
- */
- onSelectChange: function(img, c) {
- var sizer = imageEdit.hold.sizer;
- selW.val( imageEdit.round(c.width / sizer) );
- selH.val( imageEdit.round(c.height / sizer) );
- selX.val( imageEdit.round(c.x1 / sizer) );
- selY.val( imageEdit.round(c.y1 / sizer) );
- }
- });
- },
-
- /**
- * Stores the current crop selection.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- * @param {Object} c The selection.
- *
- * @return {boolean}
- */
- setCropSelection : function(postid, c) {
- var sel;
-
- c = c || 0;
-
- if ( !c || ( c.width < 3 && c.height < 3 ) ) {
- this.setDisabled( $( '.imgedit-crop', '#imgedit-panel-' + postid ), 1 );
- this.setDisabled( $( '#imgedit-crop-sel-' + postid ), 1 );
- $('#imgedit-sel-width-' + postid).val('');
- $('#imgedit-sel-height-' + postid).val('');
- $('#imgedit-start-x-' + postid).val('0');
- $('#imgedit-start-y-' + postid).val('0');
- $('#imgedit-selection-' + postid).val('');
- return false;
- }
-
- sel = { 'x': c.x1, 'y': c.y1, 'w': c.width, 'h': c.height };
- this.setDisabled($('.imgedit-crop', '#imgedit-panel-' + postid), 1);
- $('#imgedit-selection-' + postid).val( JSON.stringify(sel) );
- },
-
-
- /**
- * Closes the image editor.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- * @param {boolean} warn Warning message.
- *
- * @return {void|boolean} Returns false if there is a warning.
- */
- close : function(postid, warn) {
- warn = warn || false;
-
- if ( warn && this.notsaved(postid) ) {
- return false;
- }
-
- this.iasapi = {};
- this.hold = {};
-
- // If we've loaded the editor in the context of a Media Modal,
- // then switch to the previous view, whatever that might have been.
- if ( this._view ){
- this._view.back();
- }
-
- // In case we are not accessing the image editor in the context of a View,
- // close the editor the old-school way.
- else {
- $('#image-editor-' + postid).fadeOut('fast', function() {
- $( '#media-head-' + postid ).fadeIn( 'fast', function() {
- // Move focus back to the Edit Image button. Runs also when saving.
- $( '#imgedit-open-btn-' + postid ).trigger( 'focus' );
- });
- $(this).empty();
- });
- }
-
-
- },
-
- /**
- * Checks if the image edit history is saved.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- *
- * @return {boolean} Returns true if the history is not saved.
- */
- notsaved : function(postid) {
- var h = $('#imgedit-history-' + postid).val(),
- history = ( h !== '' ) ? JSON.parse(h) : [],
- pop = this.intval( $('#imgedit-undone-' + postid).val() );
-
- if ( pop < history.length ) {
- if ( confirm( $('#imgedit-leaving-' + postid).text() ) ) {
- return false;
- }
- return true;
- }
- return false;
- },
-
- /**
- * Adds an image edit action to the history.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {Object} op The original position.
- * @param {number} postid The post ID.
- * @param {string} nonce The nonce.
- *
- * @return {void}
- */
- addStep : function(op, postid, nonce) {
- var t = this, elem = $('#imgedit-history-' + postid),
- history = ( elem.val() !== '' ) ? JSON.parse( elem.val() ) : [],
- undone = $( '#imgedit-undone-' + postid ),
- pop = t.intval( undone.val() );
-
- while ( pop > 0 ) {
- history.pop();
- pop--;
- }
- undone.val(0); // Reset.
-
- history.push(op);
- elem.val( JSON.stringify(history) );
-
- t.refreshEditor(postid, nonce, function() {
- t.setDisabled($('#image-undo-' + postid), true);
- t.setDisabled($('#image-redo-' + postid), false);
- });
- },
-
- /**
- * Rotates the image.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {string} angle The angle the image is rotated with.
- * @param {number} postid The post ID.
- * @param {string} nonce The nonce.
- * @param {Object} t The target element.
- *
- * @return {boolean}
- */
- rotate : function(angle, postid, nonce, t) {
- if ( $(t).hasClass('disabled') ) {
- return false;
- }
- this.closePopup(t);
- this.addStep({ 'r': { 'r': angle, 'fw': this.hold.h, 'fh': this.hold.w }}, postid, nonce);
- },
-
- /**
- * Flips the image.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} axis The axle the image is flipped on.
- * @param {number} postid The post ID.
- * @param {string} nonce The nonce.
- * @param {Object} t The target element.
- *
- * @return {boolean}
- */
- flip : function (axis, postid, nonce, t) {
- if ( $(t).hasClass('disabled') ) {
- return false;
- }
- this.closePopup(t);
- this.addStep({ 'f': { 'f': axis, 'fw': this.hold.w, 'fh': this.hold.h }}, postid, nonce);
- },
-
- /**
- * Crops the image.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- * @param {string} nonce The nonce.
- * @param {Object} t The target object.
- *
- * @return {void|boolean} Returns false if the crop button is disabled.
- */
- crop : function (postid, nonce, t) {
- var sel = $('#imgedit-selection-' + postid).val(),
- w = this.intval( $('#imgedit-sel-width-' + postid).val() ),
- h = this.intval( $('#imgedit-sel-height-' + postid).val() );
-
- if ( $(t).hasClass('disabled') || sel === '' ) {
- return false;
- }
-
- sel = JSON.parse(sel);
- if ( sel.w > 0 && sel.h > 0 && w > 0 && h > 0 ) {
- sel.fw = w;
- sel.fh = h;
- this.addStep({ 'c': sel }, postid, nonce);
- }
-
- // Clear the selection fields after cropping.
- $('#imgedit-sel-width-' + postid).val('');
- $('#imgedit-sel-height-' + postid).val('');
- $('#imgedit-start-x-' + postid).val('0');
- $('#imgedit-start-y-' + postid).val('0');
- },
-
- /**
- * Undoes an image edit action.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- * @param {string} nonce The nonce.
- *
- * @return {void|false} Returns false if the undo button is disabled.
- */
- undo : function (postid, nonce) {
- var t = this, button = $('#image-undo-' + postid), elem = $('#imgedit-undone-' + postid),
- pop = t.intval( elem.val() ) + 1;
-
- if ( button.hasClass('disabled') ) {
- return;
- }
-
- elem.val(pop);
- t.refreshEditor(postid, nonce, function() {
- var elem = $('#imgedit-history-' + postid),
- history = ( elem.val() !== '' ) ? JSON.parse( elem.val() ) : [];
-
- t.setDisabled($('#image-redo-' + postid), true);
- t.setDisabled(button, pop < history.length);
- // When undo gets disabled, move focus to the redo button to avoid a focus loss.
- if ( history.length === pop ) {
- $( '#image-redo-' + postid ).trigger( 'focus' );
- }
- });
- },
-
- /**
- * Reverts a undo action.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- * @param {string} nonce The nonce.
- *
- * @return {void}
- */
- redo : function(postid, nonce) {
- var t = this, button = $('#image-redo-' + postid), elem = $('#imgedit-undone-' + postid),
- pop = t.intval( elem.val() ) - 1;
-
- if ( button.hasClass('disabled') ) {
- return;
- }
-
- elem.val(pop);
- t.refreshEditor(postid, nonce, function() {
- t.setDisabled($('#image-undo-' + postid), true);
- t.setDisabled(button, pop > 0);
- // When redo gets disabled, move focus to the undo button to avoid a focus loss.
- if ( 0 === pop ) {
- $( '#image-undo-' + postid ).trigger( 'focus' );
- }
- });
- },
-
- /**
- * Sets the selection for the height and width in pixels.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- * @param {jQuery} el The element containing the values.
- *
- * @return {void|boolean} Returns false when the x or y value is lower than 1,
- * void when the value is not numeric or when the operation
- * is successful.
- */
- setNumSelection : function( postid, el ) {
- var sel, elX = $('#imgedit-sel-width-' + postid), elY = $('#imgedit-sel-height-' + postid),
- elX1 = $('#imgedit-start-x-' + postid), elY1 = $('#imgedit-start-y-' + postid),
- xS = this.intval( elX1.val() ), yS = this.intval( elY1.val() ),
- x = this.intval( elX.val() ), y = this.intval( elY.val() ),
- img = $('#image-preview-' + postid), imgh = img.height(), imgw = img.width(),
- sizer = this.hold.sizer, x1, y1, x2, y2, ias = this.iasapi;
-
- if ( false === this.validateNumeric( el ) ) {
- return;
- }
-
- if ( x < 1 ) {
- elX.val('');
- return false;
- }
-
- if ( y < 1 ) {
- elY.val('');
- return false;
- }
-
- if ( ( ( x && y ) || ( xS && yS ) ) && ( sel = ias.getSelection() ) ) {
- x2 = sel.x1 + Math.round( x * sizer );
- y2 = sel.y1 + Math.round( y * sizer );
- x1 = ( xS === sel.x1 ) ? sel.x1 : Math.round( xS * sizer );
- y1 = ( yS === sel.y1 ) ? sel.y1 : Math.round( yS * sizer );
-
- if ( x2 > imgw ) {
- x1 = 0;
- x2 = imgw;
- elX.val( Math.round( x2 / sizer ) );
- }
-
- if ( y2 > imgh ) {
- y1 = 0;
- y2 = imgh;
- elY.val( Math.round( y2 / sizer ) );
- }
-
- ias.setSelection( x1, y1, x2, y2 );
- ias.update();
- this.setCropSelection(postid, ias.getSelection());
- }
- },
-
- /**
- * Rounds a number to a whole.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} num The number.
- *
- * @return {number} The number rounded to a whole number.
- */
- round : function(num) {
- var s;
- num = Math.round(num);
-
- if ( this.hold.sizer > 0.6 ) {
- return num;
- }
-
- s = num.toString().slice(-1);
-
- if ( '1' === s ) {
- return num - 1;
- } else if ( '9' === s ) {
- return num + 1;
- }
-
- return num;
- },
-
- /**
- * Sets a locked aspect ratio for the selection.
- *
- * @since 2.9.0
- *
- * @memberof imageEdit
- *
- * @param {number} postid The post ID.
- * @param {number} n The ratio to set.
- * @param {jQuery} el The element containing the values.
- *
- * @return {void}
- */
- setRatioSelection : function(postid, n, el) {
- var sel, r, x = this.intval( $('#imgedit-crop-width-' + postid).val() ),
- y = this.intval( $('#imgedit-crop-height-' + postid).val() ),
- h = $('#image-preview-' + postid).height();
-
- if ( false === this.validateNumeric( el ) ) {
- this.iasapi.setOptions({
- aspectRatio: null
- });
-
- return;
- }
-
- if ( x && y ) {
- this.iasapi.setOptions({
- aspectRatio: x + ':' + y
- });
-
- if ( sel = this.iasapi.getSelection(true) ) {
- r = Math.ceil( sel.y1 + ( ( sel.x2 - sel.x1 ) / ( x / y ) ) );
-
- if ( r > h ) {
- r = h;
- var errorMessage = __( 'Selected crop ratio exceeds the boundaries of the image. Try a different ratio.' );
-
- $( '#imgedit-crop-' + postid )
- .prepend( '' );
-
- wp.a11y.speak( errorMessage, 'assertive' );
- if ( n ) {
- $('#imgedit-crop-height-' + postid).val( '' );
- } else {
- $('#imgedit-crop-width-' + postid).val( '');
- }
- } else {
- var error = $( '#imgedit-crop-' + postid ).find( '.notice-error' );
- if ( 'undefined' !== typeof( error ) ) {
- error.remove();
- }
- }
-
- this.iasapi.setSelection( sel.x1, sel.y1, sel.x2, r );
- this.iasapi.update();
- }
- }
- },
-
- /**
- * Validates if a value in a jQuery.HTMLElement is numeric.
- *
- * @since 4.6.0
- *
- * @memberof imageEdit
- *
- * @param {jQuery} el The html element.
- *
- * @return {void|boolean} Returns false if the value is not numeric,
- * void when it is.
- */
- validateNumeric: function( el ) {
- if ( false === this.intval( $( el ).val() ) ) {
- $( el ).val( '' );
- return false;
- }
- }
-};
-})(jQuery);
-
diff --git a/plugins/cipf_plugin/js/images/image_editor.js b/plugins/cipf_plugin/js/images/image_editor.js
deleted file mode 100644
index 8c4d589..0000000
--- a/plugins/cipf_plugin/js/images/image_editor.js
+++ /dev/null
@@ -1,381 +0,0 @@
-
-console.log("---------------inside image_editor.js--------------");
-const edit_image_button = document.getElementById('edit_image');
-const image_id_field = document.getElementById('image_id');
-const media_editor = document.getElementById('media_editor');
-
-edit_image_button.addEventListener('click', () => {
- const image_id = image_id_field.value;
-
- //PLGNTLS_ajax("postid", image_id, 'image-editor')
- const data_obj = {
- 'postid': image_id,
- };
- PLGNTLS_ajax(data_obj, 'image_editor_PLGNTLS')
- .then((response) => response.json())
- .then((data) => {
- console.log("data: ");
- console.log(data);
- media_editor.innerHTML = data.data.html;
- })
- .catch((error) => {
- console.log("error: ");
- console.log(error);
- });
-});
-
-/*
-open: function (e, t, i) { // t: nonce
- this._view = i; // div: #media-editor-114
- var a = c('#image-editor-' + e), // e: image id
- o = c('#media-head-' + e),
- r = c('#imgedit-open-btn-' + e),
- s = r.siblings('.spinner');
- if (!r.hasClass('button-activated')) return s.addClass('is-active'),
- c.ajax({
- url: ajaxurl,
- type: 'post',
- data: {
- action: 'image-editor',
- _ajax_nonce: t,
- postid: e,
- do : 'open'},
- beforeSend: function () {
- r.addClass('button-activated')
- }
- }).done(
- function (t) {
- var i;
- '-1' === t &&
- (
- i = n('Could not load the preview image.'),
- a.html(
- ''
- )
- ),
- t.data &&
- t.data.html &&
- a.html(t.data.html),
- o.fadeOut(
- 'fast',
- function () {
- a.fadeIn(
- 'fast',
- function () {
- i &&
- c(document).trigger('image-editor-ui-ready')
- }
- ),
- r.removeClass('button-activated'),
- s.removeClass('is-active')
- }
- ),
- l.init(e)
- }
- ) },
- imgLoaded: function (t) {
- var i = c('#image-preview-' + t),
- e = c('#imgedit-crop-' + t);
- void 0 === this.hold.sizer &&
- this.init(t),
- this.initCrop(t, i, e),
- this.setCropSelection(
- t,
- {
- x1: 0,
- y1: 0,
- x2: 0,
- y2: 0,
- width: i.innerWidth(),
- height: i.innerHeight()
- }
- ),
- this.toggleEditor(t, 0, !0)
- },
- focusManager: function () {
- setTimeout(
- function () {
- var t = c('.notice[role="alert"]');
- (t = t.length ? t : c('.imgedit-wrap').find(':tabbable:first')).attr('tabindex', '-1').trigger('focus')
- },
- 100
- )
- },
- initCrop: function (a, t, i) {
- var o = this,
- r = c('#imgedit-sel-width-' + a),
- s = c('#imgedit-sel-height-' + a),
- n = c('#imgedit-start-x-' + a),
- d = c('#imgedit-start-y-' + a),
- t = c(t);
- t.data('imgAreaSelect') ||
- (
- o.iasapi = t.imgAreaSelect({
- parent: i,
- instance: !0,
- handles: !0,
- keys: !0,
- minWidth: 3,
- minHeight: 3,
- onInit: function (t) {
- c(t).next().css('position', 'absolute').nextAll('.imgareaselect-outer').css('position', 'absolute'),
- i.children().on(
- 'mousedown, touchstart',
- function (t) {
- var i,
- e = !1;
- t.shiftKey &&
- (
- t = o.iasapi.getSelection(),
- i = o.getSelRatio(a),
- e = t &&
- t.width &&
- t.height ? t.width + ':' + t.height : i
- ),
- o.iasapi.setOptions({
- aspectRatio: e
- })
- }
- )
- },
- onSelectStart: function () {
- l.setDisabled(c('#imgedit-crop-sel-' + a), 1),
- l.setDisabled(c('.imgedit-crop-clear'), 1),
- l.setDisabled(c('.imgedit-crop-apply'), 1)
- },
- onSelectEnd: function (t, i) {
- l.setCropSelection(a, i),
- c('#imgedit-crop > *').is(':visible') ||
- l.toggleControls(c('.imgedit-crop.button'))
- },
- onSelectChange: function (t, i) {
- var e = l.hold.sizer;
- r.val(l.round(i.width / e)),
- s.val(l.round(i.height / e)),
- n.val(l.round(i.x1 / e)),
- d.val(l.round(i.y1 / e))
- }
- })
- )
- },
- setCropSelection: function (t, i) {
- if (!(i = i || 0) || i.width < 3 && i.height < 3) return this.setDisabled(c('.imgedit-crop', '#imgedit-panel-' + t), 1),
- this.setDisabled(c('#imgedit-crop-sel-' + t), 1),
- c('#imgedit-sel-width-' + t).val(''),
- c('#imgedit-sel-height-' + t).val(''),
- c('#imgedit-start-x-' + t).val('0'),
- c('#imgedit-start-y-' + t).val('0'),
- c('#imgedit-selection-' + t).val(''),
- !1;
- i = {
- x: i.x1,
- y: i.y1,
- w: i.width,
- h: i.height
- },
- this.setDisabled(c('.imgedit-crop', '#imgedit-panel-' + t), 1),
- c('#imgedit-selection-' + t).val(JSON.stringify(i))
- },
- close: function (t, i) {
- if ((i = i || !1) && this.notsaved(t)) return !1;
- this.iasapi = {},
- this.hold = {},
- this._view ? this._view.back() : c('#image-editor-' + t).fadeOut(
- 'fast',
- function () {
- c('#media-head-' + t).fadeIn(
- 'fast',
- function () {
- c('#imgedit-open-btn-' + t).trigger('focus')
- }
- ),
- c(this).empty()
- }
- )
- },
- notsaved: function (t) {
- var i = c('#imgedit-history-' + t).val(),
- i = '' !== i ? JSON.parse(i) : [];
- return this.intval(c('#imgedit-undone-' + t).val()) < i.length &&
- !confirm(c('#imgedit-leaving-' + t).text())
- },
- addStep: function (t, i, e) {
- for (
- var a = this,
- o = c('#imgedit-history-' + i),
- r = '' !== o.val() ? JSON.parse(o.val()) : [],
- s = c('#imgedit-undone-' + i),
- n = a.intval(s.val());
- 0 < n;
- ) r.pop(),
- n--;
- s.val(0),
- r.push(t),
- o.val(JSON.stringify(r)),
- a.refreshEditor(
- i,
- e,
- function () {
- a.setDisabled(c('#image-undo-' + i), !0),
- a.setDisabled(c('#image-redo-' + i), !1)
- }
- )
- },
- rotate: function (t, i, e, a) {
- if (c(a).hasClass('disabled')) return !1;
- this.closePopup(a),
- this.addStep({
- r: {
- r: t,
- fw: this.hold.h,
- fh: this.hold.w
- }
- }, i, e)
- },
- flip: function (t, i, e, a) {
- if (c(a).hasClass('disabled')) return !1;
- this.closePopup(a),
- this.addStep({
- f: {
- f: t,
- fw: this.hold.w,
- fh: this.hold.h
- }
- }, i, e)
- },
- crop: function (t, i, e) {
- var a = c('#imgedit-selection-' + t).val(),
- o = this.intval(c('#imgedit-sel-width-' + t).val()),
- r = this.intval(c('#imgedit-sel-height-' + t).val());
- if (c(e).hasClass('disabled') || '' === a) return !1;
- 0 < (a = JSON.parse(a)).w &&
- 0 < a.h &&
- 0 < o &&
- 0 < r &&
- (a.fw = o, a.fh = r, this.addStep({
- c: a
- }, t, i)),
- c('#imgedit-sel-width-' + t).val(''),
- c('#imgedit-sel-height-' + t).val(''),
- c('#imgedit-start-x-' + t).val('0'),
- c('#imgedit-start-y-' + t).val('0')
- },
- undo: function (i, t) {
- var e = this,
- a = c('#image-undo-' + i),
- o = c('#imgedit-undone-' + i),
- r = e.intval(o.val()) + 1;
- a.hasClass('disabled') ||
- (
- o.val(r),
- e.refreshEditor(
- i,
- t,
- function () {
- var t = c('#imgedit-history-' + i),
- t = '' !== t.val() ? JSON.parse(t.val()) : [];
- e.setDisabled(c('#image-redo-' + i), !0),
- e.setDisabled(a, r < t.length),
- t.length === r &&
- c('#image-redo-' + i).trigger('focus')
- }
- )
- )
- },
- redo: function (t, i) {
- var e = this,
- a = c('#image-redo-' + t),
- o = c('#imgedit-undone-' + t),
- r = e.intval(o.val()) - 1;
- a.hasClass('disabled') ||
- (
- o.val(r),
- e.refreshEditor(
- t,
- i,
- function () {
- e.setDisabled(c('#image-undo-' + t), !0),
- e.setDisabled(a, 0 < r),
- 0 == r &&
- c('#image-undo-' + t).trigger('focus')
- }
- )
- )
- },
- setNumSelection: function (t, i) {
- var e = c('#imgedit-sel-width-' + t),
- a = c('#imgedit-sel-height-' + t),
- o = c('#imgedit-start-x-' + t),
- r = c('#imgedit-start-y-' + t),
- o = this.intval(o.val()),
- r = this.intval(r.val()),
- s = this.intval(e.val()),
- n = this.intval(a.val()),
- d = c('#image-preview-' + t),
- l = d.height(),
- d = d.width(),
- h = this.hold.sizer,
- g = this.iasapi;
- if (!1 !== this.validateNumeric(i)) return s < 1 ? (e.val(''), !1) : n < 1 ? (a.val(''), !1) : void (
- (s && n || o && r) &&
- (i = g.getSelection()) &&
- (
- s = i.x1 + Math.round(s * h),
- n = i.y1 + Math.round(n * h),
- o = o === i.x1 ? i.x1 : Math.round(o * h),
- i = r === i.y1 ? i.y1 : Math.round(r * h),
- d < s &&
- (o = 0, s = d, e.val(Math.round(s / h))),
- l < n &&
- (i = 0, n = l, a.val(Math.round(n / h))),
- g.setSelection(o, i, s, n),
- g.update(),
- this.setCropSelection(t, g.getSelection())
- )
- )
- },
- round: function (t) {
- var i;
- return t = Math.round(t),
- 0.6 < this.hold.sizer ? t : '1' === (i = t.toString().slice( - 1)) ? t - 1 : '9' === i ? t + 1 : t
- },
- setRatioSelection: function (t, i, e) {
- var a = this.intval(c('#imgedit-crop-width-' + t).val()),
- o = this.intval(c('#imgedit-crop-height-' + t).val()),
- r = c('#image-preview-' + t).height();
- !1 === this.validateNumeric(e) ? this.iasapi.setOptions({
- aspectRatio: null
- }) : a &&
- o &&
- (
- this.iasapi.setOptions({
- aspectRatio: a + ':' + o
- }),
- e = this.iasapi.getSelection(!0)
- ) &&
- (
- r < (a = Math.ceil(e.y1 + (e.x2 - e.x1) / (a / o))) ? (
- a = r,
- o = n(
- 'Selected crop ratio exceeds the boundaries of the image. Try a different ratio.'
- ),
- c('#imgedit-crop-' + t).prepend(
- ''
- ),
- wp.a11y.speak(o, 'assertive'),
- c(i ? '#imgedit-crop-height-' + t : '#imgedit-crop-width-' + t).val('')
- ) : void 0 !== (r = c('#imgedit-crop-' + t).find('.notice-error')) &&
- r.remove(),
- this.iasapi.setSelection(e.x1, e.y1, e.x2, a),
- this.iasapi.update()
- )
- },
- validateNumeric: function (t) {
- if (!1 === this.intval(c(t).val())) return c(t).val(''),
- !1
- }
- }
-}(jQuery);
-
-
-*/
diff --git a/plugins/cipf_plugin/php/author_restriction.php b/plugins/cipf_plugin/php/author_restriction.php
index 5713607..096cb31 100644
--- a/plugins/cipf_plugin/php/author_restriction.php
+++ b/plugins/cipf_plugin/php/author_restriction.php
@@ -12,21 +12,32 @@ if (!defined('ABSPATH')) {
function restrict_author_page_CIPF() {
PLGNTLS_class::debug_infos();
+ $role_fipf = PLGNTLS_class::ROLE_FIPF;
+ $role_admin = PLGNTLS_class::ROLE_ADMIN;
+
if (!is_author())
return;
- $can_access = false;
- if (current_user_can('administrator')) {
- $can_access = true;
- }
- else if (current_user_can('editor')) {
- $can_access = true;
- }
+ $current_user = wp_get_current_user();
- if ($can_access === true)
+ /*
+ * check multiple user roles
+ * https://developer.wordpress.org/reference/functions/current_user_can/#div-comment-4083
+ * if user->role is found in array of allowed role, no redirection needed
+ *
+ */
+ $allowed_roles = array($role_admin, $role_fipf);
+ if (array_intersect($allowed_roles, $current_user->roles))
return;
+ /*
+ * get_queried_object_id() would work too
+ * here get_the_author_meta works and is more explicit
+ *
+ $author_id = get_queried_object_id();
+ */
$author_id = get_the_author_meta( 'ID' );
+
$current_user_id = get_current_user_id();
if ($current_user_id != $author_id) {
diff --git a/plugins/cipf_plugin/php/filter_mail.php b/plugins/cipf_plugin/php/filter_mail.php
index 105f877..f12017a 100644
--- a/plugins/cipf_plugin/php/filter_mail.php
+++ b/plugins/cipf_plugin/php/filter_mail.php
@@ -80,7 +80,7 @@ function filter_email_fb_CIPF($reply_body, $post_array) {
return $new_body;
}
add_filter('df_confirmation_body', 'filter_email_fb_CIPF', 10, 2); // the receive an email
-add_filter('df_notification_body', 'filter_email_fb_CIPF', 10, 2); // the administrator receive a notification
+add_filter('df_notification_body', 'filter_email_fb_CIPF', 10, 2); // the admin receive a notification
diff --git a/plugins/cipf_plugin/php/hide_admin.php b/plugins/cipf_plugin/php/hide_admin.php
index 526aae9..b0731d1 100644
--- a/plugins/cipf_plugin/php/hide_admin.php
+++ b/plugins/cipf_plugin/php/hide_admin.php
@@ -16,7 +16,9 @@ if (!defined('ABSPATH')) {
*/
function hide_admin_bar_CIPF() {
PLGNTLS_class::debug_infos();
- if (!current_user_can('administrator') && !is_admin()) {
+ $role_admin = PLGNTLS_class::ROLE_ADMIN;
+
+ if (!current_user_can($role_admin) && !is_admin()) {
show_admin_bar(false);
}
}
diff --git a/plugins/cipf_plugin/php/images/acf_form.php b/plugins/cipf_plugin/php/images/acf_form.php
deleted file mode 100644
index 4d21bc6..0000000
--- a/plugins/cipf_plugin/php/images/acf_form.php
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
My custom field:
-
-
-
-
-
-
-
-
-
diff --git a/plugins/cipf_plugin/php/images/image-edit.php b/plugins/cipf_plugin/php/images/image-edit.php
deleted file mode 100644
index f4f51b4..0000000
--- a/plugins/cipf_plugin/php/images/image-edit.php
+++ /dev/null
@@ -1,1156 +0,0 @@
- 600 ? 600 / $big : 1;
-
- $backup_sizes = get_post_meta( $post_id, '_wp_attachment_backup_sizes', true );
- $can_restore = false;
-
- if ( ! empty( $backup_sizes ) && isset( $backup_sizes['full-orig'], $meta['file'] ) ) {
- $can_restore = wp_basename( $meta['file'] ) !== $backup_sizes['full-orig']['file'];
- }
-
- if ( $msg ) {
- if ( isset( $msg->error ) ) {
- $note = "";
- } elseif ( isset( $msg->msg ) ) {
- $note = "";
- }
- }
-
- /**
- * Shows the settings in the Image Editor that allow selecting to edit only the thumbnail of an image.
- *
- * @since 6.3.0
- *
- * @param bool $show Whether to show the settings in the Image Editor. Default false.
- */
- $edit_thumbnails_separately = (bool) apply_filters( 'image_edit_thumbnails_separately', false );
-
-
- ?>
-
- stream( $mime_type ) ) ) {
- return false;
- }
-
- return true;
- } else {
- /* translators: 1: $image, 2: WP_Image_Editor */
- _deprecated_argument( __FUNCTION__, '3.5.0', sprintf( __( '%1$s needs to be a %2$s object.' ), '$image', 'WP_Image_Editor' ) );
-
- /**
- * Filters the GD image resource to be streamed to the browser.
- *
- * @since 2.9.0
- * @deprecated 3.5.0 Use {@see 'image_editor_save_pre'} instead.
- *
- * @param resource|GdImage $image Image resource to be streamed.
- * @param int $attachment_id The attachment post ID.
- */
- $image = apply_filters_deprecated( 'image_save_pre', array( $image, $attachment_id ), '3.5.0', 'image_editor_save_pre' );
-
- switch ( $mime_type ) {
- case 'image/jpeg':
- header( 'Content-Type: image/jpeg' );
- return imagejpeg( $image, null, 90 );
- case 'image/png':
- header( 'Content-Type: image/png' );
- return imagepng( $image );
- case 'image/gif':
- header( 'Content-Type: image/gif' );
- return imagegif( $image );
- case 'image/webp':
- if ( function_exists( 'imagewebp' ) ) {
- header( 'Content-Type: image/webp' );
- return imagewebp( $image, null, 90 );
- }
- return false;
- default:
- return false;
- }
- }
-}
-
-/**
- * Saves image to file.
- *
- * @since 2.9.0
- * @since 3.5.0 The `$image` parameter expects a `WP_Image_Editor` instance.
- * @since 6.0.0 The `$filesize` value was added to the returned array.
- *
- * @param string $filename Name of the file to be saved.
- * @param WP_Image_Editor $image The image editor instance.
- * @param string $mime_type The mime type of the image.
- * @param int $post_id Attachment post ID.
- * @return array|WP_Error|bool {
- * Array on success or WP_Error if the file failed to save.
- * When called with a deprecated value for the `$image` parameter,
- * i.e. a non-`WP_Image_Editor` image resource or `GdImage` instance,
- * the function will return true on success, false on failure.
- *
- * @type string $path Path to the image file.
- * @type string $file Name of the image file.
- * @type int $width Image width.
- * @type int $height Image height.
- * @type string $mime-type The mime type of the image.
- * @type int $filesize File size of the image.
- * }
- */
-function wp_save_image_file( $filename, $image, $mime_type, $post_id ) {
-
- if ( $image instanceof WP_Image_Editor ) {
-
- /** This filter is documented in wp-admin/includes/image-edit.php */
- $image = apply_filters( 'image_editor_save_pre', $image, $post_id );
-
- /**
- * Filters whether to skip saving the image file.
- *
- * Returning a non-null value will short-circuit the save method,
- * returning that value instead.
- *
- * @since 3.5.0
- *
- * @param bool|null $override Value to return instead of saving. Default null.
- * @param string $filename Name of the file to be saved.
- * @param WP_Image_Editor $image The image editor instance.
- * @param string $mime_type The mime type of the image.
- * @param int $post_id Attachment post ID.
- */
- $saved = apply_filters( 'wp_save_image_editor_file', null, $filename, $image, $mime_type, $post_id );
-
- if ( null !== $saved ) {
- return $saved;
- }
-
- return $image->save( $filename, $mime_type );
- } else {
- /* translators: 1: $image, 2: WP_Image_Editor */
- _deprecated_argument( __FUNCTION__, '3.5.0', sprintf( __( '%1$s needs to be a %2$s object.' ), '$image', 'WP_Image_Editor' ) );
-
- /** This filter is documented in wp-admin/includes/image-edit.php */
- $image = apply_filters_deprecated( 'image_save_pre', array( $image, $post_id ), '3.5.0', 'image_editor_save_pre' );
-
- /**
- * Filters whether to skip saving the image file.
- *
- * Returning a non-null value will short-circuit the save method,
- * returning that value instead.
- *
- * @since 2.9.0
- * @deprecated 3.5.0 Use {@see 'wp_save_image_editor_file'} instead.
- *
- * @param bool|null $override Value to return instead of saving. Default null.
- * @param string $filename Name of the file to be saved.
- * @param resource|GdImage $image Image resource or GdImage instance.
- * @param string $mime_type The mime type of the image.
- * @param int $post_id Attachment post ID.
- */
- $saved = apply_filters_deprecated(
- 'wp_save_image_file',
- array( null, $filename, $image, $mime_type, $post_id ),
- '3.5.0',
- 'wp_save_image_editor_file'
- );
-
- if ( null !== $saved ) {
- return $saved;
- }
-
- switch ( $mime_type ) {
- case 'image/jpeg':
- /** This filter is documented in wp-includes/class-wp-image-editor.php */
- return imagejpeg( $image, $filename, apply_filters( 'jpeg_quality', 90, 'edit_image' ) );
- case 'image/png':
- return imagepng( $image, $filename );
- case 'image/gif':
- return imagegif( $image, $filename );
- case 'image/webp':
- if ( function_exists( 'imagewebp' ) ) {
- return imagewebp( $image, $filename );
- }
- return false;
- default:
- return false;
- }
- }
-}
-
-/**
- * Image preview ratio. Internal use only.
- *
- * @since 2.9.0
- *
- * @ignore
- * @param int $w Image width in pixels.
- * @param int $h Image height in pixels.
- * @return float|int Image preview ratio.
- */
-function _image_get_preview_ratio( $w, $h ) {
-
- $max = max( $w, $h );
- return $max > 600 ? ( 600 / $max ) : 1;
-}
-
-/**
- * Returns an image resource. Internal use only.
- *
- * @since 2.9.0
- * @deprecated 3.5.0 Use WP_Image_Editor::rotate()
- * @see WP_Image_Editor::rotate()
- *
- * @ignore
- * @param resource|GdImage $img Image resource.
- * @param float|int $angle Image rotation angle, in degrees.
- * @return resource|GdImage|false GD image resource or GdImage instance, false otherwise.
- */
-function _rotate_image_resource( $img, $angle ) {
-
- _deprecated_function( __FUNCTION__, '3.5.0', 'WP_Image_Editor::rotate()' );
-
- if ( function_exists( 'imagerotate' ) ) {
- $rotated = imagerotate( $img, $angle, 0 );
-
- if ( is_gd_image( $rotated ) ) {
- imagedestroy( $img );
- $img = $rotated;
- }
- }
-
- return $img;
-}
-
-/**
- * Flips an image resource. Internal use only.
- *
- * @since 2.9.0
- * @deprecated 3.5.0 Use WP_Image_Editor::flip()
- * @see WP_Image_Editor::flip()
- *
- * @ignore
- * @param resource|GdImage $img Image resource or GdImage instance.
- * @param bool $horz Whether to flip horizontally.
- * @param bool $vert Whether to flip vertically.
- * @return resource|GdImage (maybe) flipped image resource or GdImage instance.
- */
-function _flip_image_resource( $img, $horz, $vert ) {
-
- _deprecated_function( __FUNCTION__, '3.5.0', 'WP_Image_Editor::flip()' );
-
- $w = imagesx( $img );
- $h = imagesy( $img );
- $dst = wp_imagecreatetruecolor( $w, $h );
-
- if ( is_gd_image( $dst ) ) {
- $sx = $vert ? ( $w - 1 ) : 0;
- $sy = $horz ? ( $h - 1 ) : 0;
- $sw = $vert ? -$w : $w;
- $sh = $horz ? -$h : $h;
-
- if ( imagecopyresampled( $dst, $img, 0, 0, $sx, $sy, $w, $h, $sw, $sh ) ) {
- imagedestroy( $img );
- $img = $dst;
- }
- }
-
- return $img;
-}
-
-/**
- * Crops an image resource. Internal use only.
- *
- * @since 2.9.0
- *
- * @ignore
- * @param resource|GdImage $img Image resource or GdImage instance.
- * @param float $x Source point x-coordinate.
- * @param float $y Source point y-coordinate.
- * @param float $w Source width.
- * @param float $h Source height.
- * @return resource|GdImage (maybe) cropped image resource or GdImage instance.
- */
-function _crop_image_resource( $img, $x, $y, $w, $h ) {
-
- $dst = wp_imagecreatetruecolor( $w, $h );
-
- if ( is_gd_image( $dst ) ) {
- if ( imagecopy( $dst, $img, 0, 0, $x, $y, $w, $h ) ) {
- imagedestroy( $img );
- $img = $dst;
- }
- }
-
- return $img;
-}
-
-/**
- * Performs group of changes on Editor specified.
- *
- * @since 2.9.0
- *
- * @param WP_Image_Editor $image WP_Image_Editor instance.
- * @param array $changes Array of change operations.
- * @return WP_Image_Editor WP_Image_Editor instance with changes applied.
- */
-function image_edit_apply_changes( $image, $changes ) {
-
- if ( is_gd_image( $image ) ) {
- /* translators: 1: $image, 2: WP_Image_Editor */
- _deprecated_argument( __FUNCTION__, '3.5.0', sprintf( __( '%1$s needs to be a %2$s object.' ), '$image', 'WP_Image_Editor' ) );
- }
-
- if ( ! is_array( $changes ) ) {
- return $image;
- }
-
- // Expand change operations.
- foreach ( $changes as $key => $obj ) {
- if ( isset( $obj->r ) ) {
- $obj->type = 'rotate';
- $obj->angle = $obj->r;
- unset( $obj->r );
- } elseif ( isset( $obj->f ) ) {
- $obj->type = 'flip';
- $obj->axis = $obj->f;
- unset( $obj->f );
- } elseif ( isset( $obj->c ) ) {
- $obj->type = 'crop';
- $obj->sel = $obj->c;
- unset( $obj->c );
- }
-
- $changes[ $key ] = $obj;
- }
-
- // Combine operations.
- if ( count( $changes ) > 1 ) {
- $filtered = array( $changes[0] );
-
- for ( $i = 0, $j = 1, $c = count( $changes ); $j < $c; $j++ ) {
- $combined = false;
-
- if ( $filtered[ $i ]->type === $changes[ $j ]->type ) {
- switch ( $filtered[ $i ]->type ) {
- case 'rotate':
- $filtered[ $i ]->angle += $changes[ $j ]->angle;
- $combined = true;
- break;
- case 'flip':
- $filtered[ $i ]->axis ^= $changes[ $j ]->axis;
- $combined = true;
- break;
- }
- }
-
- if ( ! $combined ) {
- $filtered[ ++$i ] = $changes[ $j ];
- }
- }
-
- $changes = $filtered;
- unset( $filtered );
- }
-
- // Image resource before applying the changes.
- if ( $image instanceof WP_Image_Editor ) {
-
- /**
- * Filters the WP_Image_Editor instance before applying changes to the image.
- *
- * @since 3.5.0
- *
- * @param WP_Image_Editor $image WP_Image_Editor instance.
- * @param array $changes Array of change operations.
- */
- $image = apply_filters( 'wp_image_editor_before_change', $image, $changes );
- } elseif ( is_gd_image( $image ) ) {
-
- /**
- * Filters the GD image resource before applying changes to the image.
- *
- * @since 2.9.0
- * @deprecated 3.5.0 Use {@see 'wp_image_editor_before_change'} instead.
- *
- * @param resource|GdImage $image GD image resource or GdImage instance.
- * @param array $changes Array of change operations.
- */
- $image = apply_filters_deprecated( 'image_edit_before_change', array( $image, $changes ), '3.5.0', 'wp_image_editor_before_change' );
- }
-
- foreach ( $changes as $operation ) {
- switch ( $operation->type ) {
- case 'rotate':
- if ( 0 !== $operation->angle ) {
- if ( $image instanceof WP_Image_Editor ) {
- $image->rotate( $operation->angle );
- } else {
- $image = _rotate_image_resource( $image, $operation->angle );
- }
- }
- break;
- case 'flip':
- if ( 0 !== $operation->axis ) {
- if ( $image instanceof WP_Image_Editor ) {
- $image->flip( ( $operation->axis & 1 ) !== 0, ( $operation->axis & 2 ) !== 0 );
- } else {
- $image = _flip_image_resource( $image, ( $operation->axis & 1 ) !== 0, ( $operation->axis & 2 ) !== 0 );
- }
- }
- break;
- case 'crop':
- $sel = $operation->sel;
-
- if ( $image instanceof WP_Image_Editor ) {
- $size = $image->get_size();
- $w = $size['width'];
- $h = $size['height'];
-
- $scale = 1 / _image_get_preview_ratio( $w, $h ); // Discard preview scaling.
- $image->crop( $sel->x * $scale, $sel->y * $scale, $sel->w * $scale, $sel->h * $scale );
- } else {
- $scale = 1 / _image_get_preview_ratio( imagesx( $image ), imagesy( $image ) ); // Discard preview scaling.
- $image = _crop_image_resource( $image, $sel->x * $scale, $sel->y * $scale, $sel->w * $scale, $sel->h * $scale );
- }
- break;
- }
- }
-
- return $image;
-}
-
-
-/**
- * Streams image in post to browser, along with enqueued changes
- * in `$_REQUEST['history']`.
- *
- * @since 2.9.0
- *
- * @param int $post_id Attachment post ID.
- * @return bool True on success, false on failure.
- */
-function stream_preview_image( $post_id ) {
-
- $post = get_post( $post_id );
-
- wp_raise_memory_limit( 'admin' );
-
- $img = wp_get_image_editor( _load_image_to_edit_path( $post_id ) );
-
- if ( is_wp_error( $img ) ) {
- return false;
- }
-
- $changes = ! empty( $_REQUEST['history'] ) ? json_decode( wp_unslash( $_REQUEST['history'] ) ) : null;
- if ( $changes ) {
- $img = image_edit_apply_changes( $img, $changes );
- }
-
- // Scale the image.
- $size = $img->get_size();
- $w = $size['width'];
- $h = $size['height'];
-
- $ratio = _image_get_preview_ratio( $w, $h );
- $w2 = max( 1, $w * $ratio );
- $h2 = max( 1, $h * $ratio );
-
- if ( is_wp_error( $img->resize( $w2, $h2 ) ) ) {
- return false;
- }
-
- return wp_stream_image( $img, $post->post_mime_type, $post_id );
-}
-
-/**
- * Restores the metadata for a given attachment.
- *
- * @since 2.9.0
- *
- * @param int $post_id Attachment post ID.
- * @return stdClass Image restoration message object.
- */
-function wp_restore_image( $post_id ) {
-
- $meta = wp_get_attachment_metadata( $post_id );
- $file = get_attached_file( $post_id );
- $backup_sizes = get_post_meta( $post_id, '_wp_attachment_backup_sizes', true );
- $old_backup_sizes = $backup_sizes;
- $restored = false;
- $msg = new stdClass();
-
- if ( ! is_array( $backup_sizes ) ) {
- $msg->error = __( 'Cannot load image metadata.' );
- return $msg;
- }
-
- $parts = pathinfo( $file );
- $suffix = time() . rand( 100, 999 );
- $default_sizes = get_intermediate_image_sizes();
-
- if ( isset( $backup_sizes['full-orig'] ) && is_array( $backup_sizes['full-orig'] ) ) {
- $data = $backup_sizes['full-orig'];
-
- if ( $parts['basename'] !== $data['file'] ) {
- if ( defined( 'IMAGE_EDIT_OVERWRITE' ) && IMAGE_EDIT_OVERWRITE ) {
- // Delete only if it's an edited image.
- if ( preg_match( '/-e[0-9]{13}\./', $parts['basename'] ) ) {
- wp_delete_file( $file );
- }
- } elseif ( isset( $meta['width'], $meta['height'] ) ) {
- $backup_sizes[ "full-$suffix" ] = array(
- 'width' => $meta['width'],
- 'height' => $meta['height'],
- 'file' => $parts['basename'],
- );
- }
- }
-
- $restored_file = path_join( $parts['dirname'], $data['file'] );
- $restored = update_attached_file( $post_id, $restored_file );
-
- $meta['file'] = _wp_relative_upload_path( $restored_file );
- $meta['width'] = $data['width'];
- $meta['height'] = $data['height'];
- }
-
- foreach ( $default_sizes as $default_size ) {
- if ( isset( $backup_sizes[ "$default_size-orig" ] ) ) {
- $data = $backup_sizes[ "$default_size-orig" ];
-
- if ( isset( $meta['sizes'][ $default_size ] ) && $meta['sizes'][ $default_size ]['file'] !== $data['file'] ) {
- if ( defined( 'IMAGE_EDIT_OVERWRITE' ) && IMAGE_EDIT_OVERWRITE ) {
- // Delete only if it's an edited image.
- if ( preg_match( '/-e[0-9]{13}-/', $meta['sizes'][ $default_size ]['file'] ) ) {
- $delete_file = path_join( $parts['dirname'], $meta['sizes'][ $default_size ]['file'] );
- wp_delete_file( $delete_file );
- }
- } else {
- $backup_sizes[ "$default_size-{$suffix}" ] = $meta['sizes'][ $default_size ];
- }
- }
-
- $meta['sizes'][ $default_size ] = $data;
- } else {
- unset( $meta['sizes'][ $default_size ] );
- }
- }
-
- if ( ! wp_update_attachment_metadata( $post_id, $meta )
- || ( $old_backup_sizes !== $backup_sizes && ! update_post_meta( $post_id, '_wp_attachment_backup_sizes', $backup_sizes ) )
- ) {
- $msg->error = __( 'Cannot save image metadata.' );
- return $msg;
- }
-
- if ( ! $restored ) {
- $msg->error = __( 'Image metadata is inconsistent.' );
- } else {
- $msg->msg = __( 'Image restored successfully.' );
-
- if ( defined( 'IMAGE_EDIT_OVERWRITE' ) && IMAGE_EDIT_OVERWRITE ) {
- delete_post_meta( $post_id, '_wp_attachment_backup_sizes' );
- }
- }
-
- return $msg;
-}
-
-/**
- * Saves image to post, along with enqueued changes
- * in `$_REQUEST['history']`.
- *
- * @since 2.9.0
- *
- * @param int $post_id Attachment post ID.
- * @return stdClass
- */
-function wp_save_image( $post_id ) {
-
- $_wp_additional_image_sizes = wp_get_additional_image_sizes();
-
- $return = new stdClass();
- $success = false;
- $delete = false;
- $scaled = false;
- $nocrop = false;
- $post = get_post( $post_id );
-
- $img = wp_get_image_editor( _load_image_to_edit_path( $post_id, 'full' ) );
-
- if ( is_wp_error( $img ) ) {
- $return->error = esc_js( __( 'Unable to create new image.' ) );
- return $return;
- }
-
- $full_width = ! empty( $_REQUEST['fwidth'] ) ? (int) $_REQUEST['fwidth'] : 0;
- $full_height = ! empty( $_REQUEST['fheight'] ) ? (int) $_REQUEST['fheight'] : 0;
- $target = ! empty( $_REQUEST['target'] ) ? preg_replace( '/[^a-z0-9_-]+/i', '', $_REQUEST['target'] ) : '';
- $scale = ! empty( $_REQUEST['do'] ) && 'scale' === $_REQUEST['do'];
-
- /** This filter is documented in wp-admin/includes/image-edit.php */
- $edit_thumbnails_separately = (bool) apply_filters( 'image_edit_thumbnails_separately', false );
-
- if ( $scale ) {
- $size = $img->get_size();
- $original_width = $size['width'];
- $original_height = $size['height'];
-
- if ( $full_width > $original_width || $full_height > $original_height ) {
- $return->error = esc_js( __( 'Images cannot be scaled to a size larger than the original.' ) );
- return $return;
- }
-
- if ( $full_width > 0 && $full_height > 0 ) {
- // Check if it has roughly the same w / h ratio.
- $diff = round( $original_width / $original_height, 2 ) - round( $full_width / $full_height, 2 );
- if ( -0.1 < $diff && $diff < 0.1 ) {
- // Scale the full size image.
- if ( $img->resize( $full_width, $full_height ) ) {
- $scaled = true;
- }
- }
-
- if ( ! $scaled ) {
- $return->error = esc_js( __( 'Error while saving the scaled image. Please reload the page and try again.' ) );
- return $return;
- }
- }
- } elseif ( ! empty( $_REQUEST['history'] ) ) {
- $changes = json_decode( wp_unslash( $_REQUEST['history'] ) );
- if ( $changes ) {
- $img = image_edit_apply_changes( $img, $changes );
- }
- } else {
- $return->error = esc_js( __( 'Nothing to save, the image has not changed.' ) );
- return $return;
- }
-
- $meta = wp_get_attachment_metadata( $post_id );
- $backup_sizes = get_post_meta( $post->ID, '_wp_attachment_backup_sizes', true );
-
- if ( ! is_array( $meta ) ) {
- $return->error = esc_js( __( 'Image data does not exist. Please re-upload the image.' ) );
- return $return;
- }
-
- if ( ! is_array( $backup_sizes ) ) {
- $backup_sizes = array();
- }
-
- // Generate new filename.
- $path = get_attached_file( $post_id );
-
- $basename = pathinfo( $path, PATHINFO_BASENAME );
- $dirname = pathinfo( $path, PATHINFO_DIRNAME );
- $ext = pathinfo( $path, PATHINFO_EXTENSION );
- $filename = pathinfo( $path, PATHINFO_FILENAME );
- $suffix = time() . rand( 100, 999 );
-
- if ( defined( 'IMAGE_EDIT_OVERWRITE' ) && IMAGE_EDIT_OVERWRITE
- && isset( $backup_sizes['full-orig'] ) && $backup_sizes['full-orig']['file'] !== $basename
- ) {
-
- if ( $edit_thumbnails_separately && 'thumbnail' === $target ) {
- $new_path = "{$dirname}/{$filename}-temp.{$ext}";
- } else {
- $new_path = $path;
- }
- } else {
- while ( true ) {
- $filename = preg_replace( '/-e([0-9]+)$/', '', $filename );
- $filename .= "-e{$suffix}";
- $new_filename = "{$filename}.{$ext}";
- $new_path = "{$dirname}/$new_filename";
-
- if ( file_exists( $new_path ) ) {
- ++$suffix;
- } else {
- break;
- }
- }
- }
-
- // Save the full-size file, also needed to create sub-sizes.
- if ( ! wp_save_image_file( $new_path, $img, $post->post_mime_type, $post_id ) ) {
- $return->error = esc_js( __( 'Unable to save the image.' ) );
- return $return;
- }
-
- if ( 'nothumb' === $target || 'all' === $target || 'full' === $target || $scaled ) {
- $tag = false;
-
- if ( isset( $backup_sizes['full-orig'] ) ) {
- if ( ( ! defined( 'IMAGE_EDIT_OVERWRITE' ) || ! IMAGE_EDIT_OVERWRITE )
- && $backup_sizes['full-orig']['file'] !== $basename
- ) {
- $tag = "full-$suffix";
- }
- } else {
- $tag = 'full-orig';
- }
-
- if ( $tag ) {
- $backup_sizes[ $tag ] = array(
- 'width' => $meta['width'],
- 'height' => $meta['height'],
- 'file' => $basename,
- );
- }
-
- $success = ( $path === $new_path ) || update_attached_file( $post_id, $new_path );
-
- $meta['file'] = _wp_relative_upload_path( $new_path );
-
- $size = $img->get_size();
- $meta['width'] = $size['width'];
- $meta['height'] = $size['height'];
-
- if ( $success && ( 'nothumb' === $target || 'all' === $target ) ) {
- $sizes = get_intermediate_image_sizes();
-
- if ( $edit_thumbnails_separately && 'nothumb' === $target ) {
- $sizes = array_diff( $sizes, array( 'thumbnail' ) );
- }
- }
-
- $return->fw = $meta['width'];
- $return->fh = $meta['height'];
- } elseif ( $edit_thumbnails_separately && 'thumbnail' === $target ) {
- $sizes = array( 'thumbnail' );
- $success = true;
- $delete = true;
- $nocrop = true;
- }
-
- /*
- * We need to remove any existing resized image files because
- * a new crop or rotate could generate different sizes (and hence, filenames),
- * keeping the new resized images from overwriting the existing image files.
- * https://core.trac.wordpress.org/ticket/32171
- */
- if ( defined( 'IMAGE_EDIT_OVERWRITE' ) && IMAGE_EDIT_OVERWRITE && ! empty( $meta['sizes'] ) ) {
- foreach ( $meta['sizes'] as $size ) {
- if ( ! empty( $size['file'] ) && preg_match( '/-e[0-9]{13}-/', $size['file'] ) ) {
- $delete_file = path_join( $dirname, $size['file'] );
- wp_delete_file( $delete_file );
- }
- }
- }
-
- if ( isset( $sizes ) ) {
- $_sizes = array();
-
- foreach ( $sizes as $size ) {
- $tag = false;
-
- if ( isset( $meta['sizes'][ $size ] ) ) {
- if ( isset( $backup_sizes[ "$size-orig" ] ) ) {
- if ( ( ! defined( 'IMAGE_EDIT_OVERWRITE' ) || ! IMAGE_EDIT_OVERWRITE )
- && $backup_sizes[ "$size-orig" ]['file'] !== $meta['sizes'][ $size ]['file']
- ) {
- $tag = "$size-$suffix";
- }
- } else {
- $tag = "$size-orig";
- }
-
- if ( $tag ) {
- $backup_sizes[ $tag ] = $meta['sizes'][ $size ];
- }
- }
-
- if ( isset( $_wp_additional_image_sizes[ $size ] ) ) {
- $width = (int) $_wp_additional_image_sizes[ $size ]['width'];
- $height = (int) $_wp_additional_image_sizes[ $size ]['height'];
- $crop = ( $nocrop ) ? false : $_wp_additional_image_sizes[ $size ]['crop'];
- } else {
- $height = get_option( "{$size}_size_h" );
- $width = get_option( "{$size}_size_w" );
- $crop = ( $nocrop ) ? false : get_option( "{$size}_crop" );
- }
-
- $_sizes[ $size ] = array(
- 'width' => $width,
- 'height' => $height,
- 'crop' => $crop,
- );
- }
-
- $meta['sizes'] = array_merge( $meta['sizes'], $img->multi_resize( $_sizes ) );
- }
-
- unset( $img );
-
- if ( $success ) {
- wp_update_attachment_metadata( $post_id, $meta );
- update_post_meta( $post_id, '_wp_attachment_backup_sizes', $backup_sizes );
-
- if ( 'thumbnail' === $target || 'all' === $target || 'full' === $target ) {
- // Check if it's an image edit from attachment edit screen.
- if ( ! empty( $_REQUEST['context'] ) && 'edit-attachment' === $_REQUEST['context'] ) {
- $thumb_url = wp_get_attachment_image_src( $post_id, array( 900, 600 ), true );
-
- $return->thumbnail = $thumb_url[0];
- } else {
- $file_url = wp_get_attachment_url( $post_id );
-
- if ( ! empty( $meta['sizes']['thumbnail'] ) ) {
- $thumb = $meta['sizes']['thumbnail'];
- $return->thumbnail = path_join( dirname( $file_url ), $thumb['file'] );
- } else {
- $return->thumbnail = "$file_url?w=128&h=128";
- }
- }
- }
- } else {
- $delete = true;
- }
-
- if ( $delete ) {
- wp_delete_file( $new_path );
- }
-
- $return->msg = esc_js( __( 'Image saved' ) );
-
- return $return;
-}
diff --git a/plugins/cipf_plugin/php/images/image_edit_shortcode.php b/plugins/cipf_plugin/php/images/image_edit_shortcode.php
deleted file mode 100644
index e95733f..0000000
--- a/plugins/cipf_plugin/php/images/image_edit_shortcode.php
+++ /dev/null
@@ -1,89 +0,0 @@
-add_to_front(
- array(
- "js/image_editor.js",
- "html/image_editor.html",
- )
- );
- // if ( ! has_action( "wp_ajax_{$action}" ) ) {
- // it returns error 400
-
-}
-add_shortcode('cipfcard_image_editor', 'cipfcard_image_editor');
-*/
-
-
-/**
- * Handles image editing via AJAX.
- * from wp-admin/includes/ajax-action.php
- */
-/*
-function wp_ajax_image_editor() {
- $attachment_id = (int) $_POST['postid'];
-// $attachment_id = 33555;
-
-// if ( empty( $attachment_id ) || ! current_user_can( 'edit_post', $attachment_id ) ) {
-// wp_die( -1 );
-// }
-
-// check_ajax_referer( "image_editor-$attachment_id" );
-// require_once ABSPATH . 'wp-admin/includes/image-edit.php';
-
- $msg = false;
-
- switch ( $_POST['do'] ) {
- case 'save':
- $msg = wp_save_image( $attachment_id );
- if ( ! empty( $msg->error ) ) {
- wp_send_json_error( $msg );
- }
-
- wp_send_json_success( $msg );
- break;
- case 'scale':
- $msg = wp_save_image( $attachment_id );
- break;
- case 'restore':
- $msg = wp_restore_image( $attachment_id );
- break;
- }
-
- ob_start();
- wp_image_editor( $attachment_id, $msg );
- $html = ob_get_clean();
-
- if ( ! empty( $msg->error ) ) {
- wp_send_json_error(
- array(
- 'message' => $msg,
- 'html' => $html,
- )
- );
- }
-
- wp_send_json_success(
- array(
- 'message' => $msg,
- 'html' => $html,
- )
- );
-}
-add_action( 'wp_ajax_image_editor', 'wp_ajax_image_editor' );
-*/
-
-?>
diff --git a/plugins/cipf_plugin/php/redirections.php b/plugins/cipf_plugin/php/redirections.php
index 0215e4e..aa53499 100644
--- a/plugins/cipf_plugin/php/redirections.php
+++ b/plugins/cipf_plugin/php/redirections.php
@@ -17,6 +17,8 @@ if (!defined('ABSPATH')) {
function redirection_page_CIPF(){
PLGNTLS_class::debug_infos();
$slug_page_redirection = PLGNTLS_class::SLUG_PAGE_REDIRECTION;
+ $role_prof = PLGNTLS_class::ROLE_PROF;
+ $role_partner = PLGNTLS_class::ROLE_PARTNER;
if (!is_page($slug_page_redirection))
return;
@@ -26,11 +28,11 @@ function redirection_page_CIPF(){
if (!is_user_logged_in()) {
wp_redirect($base_url, 301);
}
- if (current_user_can('professeur__professeure')) {
+ if (current_user_can($role_prof)) {
$user_page = get_author_posts_url($current_user_id);
wp_redirect($user_page, 301);
}
- else if (current_user_can('partenaire')) {
+ else if (current_user_can($role_partner)) {
$args = array(
'post_type' => 'post',
'author' => $current_user_id,
diff --git a/plugins/cipf_plugin/php/register_partenaires.php b/plugins/cipf_plugin/php/register_partenaires.php
index 443179f..8df2e6a 100644
--- a/plugins/cipf_plugin/php/register_partenaires.php
+++ b/plugins/cipf_plugin/php/register_partenaires.php
@@ -15,11 +15,13 @@ if (!defined('ABSPATH')) {
*/
function add_partenaires_PLGNTLS($customer_data){
PLGNTLS_class::debug_infos();
+ $role_partner = PLGNTLS_class::ROLE_PARTNER;
+
$current_url = $_SERVER['HTTP_REFERER']; // not reliable to use referer, TODO: find another solution
$path_brut = parse_url($current_url, PHP_URL_PATH);
$path = trim($path_brut, '/');
if ($path === 'creation-du-compte-partenaire')
- $customer_data['role'] = 'partenaire';
+ $customer_data['role'] = $role_partner;
return $customer_data;
}
add_filter( 'xoo_el_register_new_customer_data', 'add_partenaires_PLGNTLS', 10, 1 );
diff --git a/plugins/cipf_plugin/php/renew_card.php b/plugins/cipf_plugin/php/renew_card.php
index 9efbf94..e9a891d 100644
--- a/plugins/cipf_plugin/php/renew_card.php
+++ b/plugins/cipf_plugin/php/renew_card.php
@@ -52,7 +52,9 @@ function renew_page_restrictions_CIPF(){
PLGNTLS_class::debug_infos();
$slug_renew_card = PLGNTLS_class::SLUG_RENEW_CARD;
$slug_page_redirection = PLGNTLS_class::SLUG_PAGE_REDIRECTION;
-// $acf_prof_can_renew = PLGNTLS_class::ACF_PROF_CAN_RENEW;
+ $role_prof = PLGNTLS_class::ROLE_PROF;
+ $role_fipf = PLGNTLS_class::ROLE_FIPF;
+ $role_admin = PLGNTLS_class::ROLE_ADMIN;
if (!is_page($slug_renew_card))
return;
@@ -72,7 +74,7 @@ function renew_page_restrictions_CIPF(){
* https://developer.wordpress.org/reference/functions/current_user_can/#div-comment-4083
*
*/
- $allowed_roles = array('administrator', 'editor', 'professeur__professeure');
+ $allowed_roles = array($role_admin, $role_fipf, $role_prof);
if (!array_intersect($allowed_roles, $current_user->roles))
return;
@@ -80,7 +82,7 @@ function renew_page_restrictions_CIPF(){
* if prof, check card state
* if cannot renew, redirect
*
- if (current_user_can('professeur__professeure')) {
+ if (current_user_can($role_prof)) {
$can_renew = get_field($acf_prof_can_renew['_name'], $acf_id);
if ($can_renew === false) {
$redirect_url = home_url() . '/' . $slug_page_redirection;