Questo snippet serve a permettere agli utenti (probabilmente utenti registrati) di caricare un file dal loro dispositivo oppure da un altro sito web in una cartella personalizzata tramite un form.
Requisiti
Form
Inseriamo innanzitutto il blocco gutenberg gpci/form e configuriamolo:
- nome/id: add-media-to-folder
- method: POST
- sanificazione automatica: attivata
- invia tramite js: attivato
- posizione risposta(compare dopo aver attivato le istruzioni php): questo form
- istruzioni php:
$file = $_FILES['media-local'];
if( $file['error'] > 0 ){ $file = $_POST['media-url'] ?? false; }
if( $file ){
SetUploadDir( $action='start', $UploadsUpdate=[
'path'=>wp_upload_dir()['path'].'/prove',
'url' => wp_upload_dir()['url'].'/prove'
] );
$id = CreateAttachment( $file );
SetUploadDir( $action='end' );
if( $id ){ echo $content = '<p class="gpci-ok-messages">Media inserito correttamente!</p>'; }
}
else{ echo $content = '<p class="gpci-error-messages">Inserisci un file oppure un url!</p>'; }
- aggiungere un controllo per limitare i permessi, come
if( is_user_logged_in() )
- cambiare la cartella di destinazione da prove a quella desiderata
- inserire 2 colonne se si vuole lo stesso layout
Campi del form
Ora inseriamo i 2 blocchi gutenberg campo del form, uno per il file locale e uno per l'url:
File
- nome: media-local
- id: media-local
- label: Media locale
- tag: input
- type: file
Url
- nome: media-url
- id: media-url
- label: Oppure un url
- tag: input
- type: url
Submit
Infine inseriamo il blocco gutenberg gpci/button per effettuare il submit del form:
- type: submit