0; } class LP_AMFU_Main { const LIB_TITRE = "Add Media from URL"; const SAI_ADD = "Add from URL"; const MEDIATYPE = "AddedFromURL-"; const COMBO_GDRIVE = "Google Drive"; const COMBO_OTHER = "Other"; public function __construct() { //Ajout d'un élément dans le menu de l'APC add_action('admin_menu', array($this,"plugin_menu")); //Surchage permettant d'utiliser le lien de l'image source add_filter( 'wp_get_attachment_image_src', array($this,"getAttachmentImageSrc"), 10, 4 ); //Surcharge permettant d'afficher les dimensions add_filter( 'wp_get_attachment_metadata', array($this,"getAttachmentMetadata"), 10, 2 ); //Surcharge permettant d'afficher correctement le nom du fichier (ajout de l'extension). add_filter( 'get_attached_file', array($this,"getAttachedFile"), 10, 2 ); //Surcharge afin d'ajouter une liste déroulante de la bibliothèque de médias add_action( 'restrict_manage_posts', array($this,"RestrictManagePosts") ); //Surcharge permettant de prendre en charge la nouvelle liste déroulante add_filter( 'parse_query', array($this,"RestrictManagePostsValidation") ); } /** * Construction de la nouvelle liste déroulante permettant d'afficher les fichiers qui n'ont pas été upload. */ public function RestrictManagePosts() { $choix = isset($_GET[self::MEDIATYPE . 'filter']) ? intval($_GET[self::MEDIATYPE . 'filter']) : 0; $choix0 = $choix == 0 ? ' selected="selected"' : ''; $choix1 = $choix == 1 ? ' selected="selected"' : ''; $choix2 = $choix == 2 ? ' selected="selected"' : ''; ?> 0 ) { $compare = $choix == 2 ? 'EXISTS' : 'NOT EXISTS'; $query->query_vars['meta_query'] = array( array( 'key' => self::MEDIATYPE, 'compare' => $compare ), ); } } } } /** * Cette méthode sert à modifier le menu du backend afin d'y ajouter un lien vers notre page principale. */ public function plugin_menu() { add_media_page(self::LIB_TITRE, self::SAI_ADD, 'read', str_replace(__dir__ . "/", '', __file__), array($this,"uploadPage")); } /** * Cette méthode charge la page principale du plugin. */ public function uploadPage() { //Contrôle d'accès if (!current_user_can('upload_files')) wp_die( __('You do not have sufficient permissions to access this page.') ); //Contenu du formulaire if (sanitize_text_field($_POST[ 'AddMediaFromURL_Name' ])) $valueName = sanitize_text_field($_POST['AddMediaFromURL_Name']); if (sanitize_text_field($_POST[ 'AddMediaFromURL_Url' ])) $valueUrl = sanitize_text_field($_POST['AddMediaFromURL_Url']); if (sanitize_text_field($_POST[ 'AddMediaFromURL_Upload' ] === "1")) $valueUpload = ' checked'; $service0 = sanitize_text_field($_POST['AddMediaFromURL_Type']) == self::COMBO_OTHER || !isset($_POST['AddMediaFromURL_Type']) ? ' selected="selected"' : ''; $service1 = sanitize_text_field($_POST['AddMediaFromURL_Type']) == self::COMBO_GDRIVE ? ' selected="selected"' : ''; //Validation du formulaire if( isset($_POST['AddMediaFromURL_Nonce']) ) { $return = $this->handle_upload(); if ( is_wp_error( $return ) ) { //Upload has failed add to a global for display on the form page foreach ( $return->get_error_messages() as $error ) { echo '
' . $error . '