Valider 2abd7c37 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

Debug et fonctionnement du formulaire d'upload avec bigup + fix visu des images

Il manque encore a reparer la redirection apres upload
parent 68c20b82
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+41 −39
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -25,6 +25,7 @@
		</div>
	]

	[(#ENV{type}|=={img}|non)
		[ (#ENV{editable}|oui)
			[(#ENV{type}|=={txt}|et{#ENV{fichier}}|oui)
			<div class="search-replace-toolbar">
@@ -69,6 +70,7 @@
			]
		</div></form>
		]
	]
	[(#ENV{type}|=={img}|oui)
		<div class="image-viewer clearfix d-flex-col h-100">
			<em class="infos">
+8 −8
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<div class='formulaire_spip formulaire_editer formulaire_squelette formulaire_#FORM'>
<div class='formulaire_spip formulaire_editer formulaire_squelette h-100 formulaire_#FORM'>
	[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
	[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
	<div class="actions">
		<div class="add">
		[(#AUTORISER{creerdans,squelette,#ENV{path_base}}|oui)
		[(#AUTORISER{creerdans,squelette,#ENV{_path_base}}|oui)
			[(#BOUTON_ACTION{#CHEMIN_IMAGE{se-file-add-16.svg}|balise_img{new,picto,16x16}|concat{' ',<:skeleditor:action_nouveau:>},#URL_ECRIRE{skeleditor},btn btn_secondaire})]
		]
		[(#AUTORISER{upload,squelette,#ENV{path_base}}|oui)
		[(#AUTORISER{upload,squelette,#ENV{_path_base}}|oui)
			[(#BOUTON_ACTION{#CHEMIN_IMAGE{se-upload-16.svg}|balise_svg{upload,picto,16x16}|concat{' ',<:skeleditor:action_upload:>},#URL_ECRIRE{skeleditor,upload=oui},btn btn_secondaire})]
		]
		</div>
@@ -17,11 +17,11 @@
		[(#REM) declarer les hidden qui declencheront le service du formulaire 
		parametre : url d'action ]
		#ACTION_FORMULAIRE{#ENV{action}}
	  <div class="editer-groupe">
	    <div class="editer editer_file pleine_largeur[ (#ENV**{erreurs}|table_valeur{file}|oui)erreur]">
				<label for="file"><:skeleditor:label_file:></label>[
				<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{file})</span>]
				<input type="file" name='file' class='file' id='file' value="#ENV{file}" />
	  <div class="editer-groupe h-100">
	    <div class="editer editer_fichier_upload h-100 pleine_largeur[ (#ENV**{erreurs}|table_valeur{fichier_upload}|oui)erreur]">
				<label for="fichier_upload"><:skeleditor:label_file:></label>[
				<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{fichier_upload})</span>]
				<input type="file" name='fichier_upload' class='file' id='fichier_upload' value="#ENV{fichier_upload}" />
	    </div>
	  </div>
	  [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
+48 −14
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -12,6 +12,27 @@ if (!defined('_ECRIRE_INC_VERSION')){

include_spip('inc/skeleditor');


/**
 * @param array $args
 * @param \Spip\Bigup\Formulaire $formulaire
 * @return \Spip\Bigup\Formulaire
 */
function inc_bigup_medias_formulaire_upload_squelette_dist($args, $formulaire) {
	$formulaire->preparer_input(
		'fichier_upload',
		[
			'multiple' => false,
			'previsualiser' => true,
			'input_class' => 'bigup_simple',
		]
	);
	$formulaire->inserer_js('bigup.simples.js');

	return $formulaire;
}


/**
 * Chargement du formulaire
 * 4 cas possibles :
@@ -28,21 +49,27 @@ include_spip('inc/skeleditor');
function formulaires_upload_squelette_charger_dist($path_base){

	$valeurs = array(
		'file' => '',
		'path_base' => $path_base,
		'editable' => true
		'fichier_upload' => '',
		'editable' => true,
		'_path_base' => $path_base,
		'_bigup_rechercher_fichiers' => true,
		'_multiple' => '',
	);

	return $valeurs;
}

function formulaires_upload_squelette_verifier_dist($path_base){
	$erreurs = [];

	$res = skeleditor_check_upload($path_base);

	if (is_string($res)){
		$erreurs['file'] = $res;
		$erreurs['fichier_upload'] = $res;
	} elseif (!count($res)) {
		$erreurs['file'] = _T('skeleditor:erreur_fichier_inexistant');
		$erreurs['fichier_upload'] = _T('skeleditor:erreur_fichier_inexistant');
	}

	return $erreurs;
}

@@ -50,16 +77,24 @@ function formulaires_upload_squelette_verifier_dist($path_base){
function formulaires_upload_squelette_traiter_dist($path_base){
	$files = skeleditor_check_upload($path_base);
	$ok = true;
	//spip_log($files, 'skeleditor' . _LOG_DEBUG);

	$erreurs = [];
	include_spip('inc/documents');
	foreach ($files as $file){
		if (!move_uploaded_file($file['tmp_name'], $path_base . $file['name'])){

		if (!deplacer_fichier_upload($file['tmp_name'], $path_base . $file['name'], true)){
			$erreurs[] = "Erreur lors du deplacement du fichier " . $file['name'] . " dans $path_base";
			$ok = false;
		}
	}

	if ($ok){
		$res['message_ok'] = 'ok';
		$res['redirect'] = parametre_url(parametre_url(self(), 'upload', ''), 'f', $path_base . $file['name']);
	} else {
		$res['message_erreur'] = 'erreur';
	}
	else {
		$res['message_erreur'] = 'Erreur : ' . implode('<br />', $erreurs);
	}

	return $res;
@@ -118,15 +153,14 @@ function skeleditor_upload_error($error){
			break;

		default: /* autre */
			break;
	}
	if (!$msg){
		$msg = _T('pass_erreur') . ' ' . $error
			. '<br />' . propre("[->http://php.net/manual/fr/features.file-upload.errors.php]");
	}
			break;
	}

	spip_log("erreur upload $error");
	spip_log("erreur upload $error", 'skeleditor' . _LOG_ERREUR);
	return $msg;

}
+3 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -17,7 +17,9 @@
[(#GET{file}|non|et{#ENV{upload}|trim|oui})
	<div class="d-flex-col-100">
		<h1 class="grostitre"><:skeleditor:action_upload:></h1>
		<div class="ajax h-100">
			#FORMULAIRE_UPLOAD_SQUELETTE{#GET{path}}
		</div>
	</div>
]
#FILTRE{liens_absolus}
 No newline at end of file
+4 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -59,6 +59,9 @@
	flex-basis: 100%;
	max-height: calc(100% - 6em);
}
.d-flex-col-100 .ajax-form-container {
	height: 100%;
}

.skeleditor #page #contenu .d-flex-col {
	display: flex;
@@ -106,6 +109,7 @@
.formulaire_editer_squelette .image-viewer .grid {display: flex;width: 100%;justify-content: center;align-items: center;background: url(#CHEMIN_IMAGE{fond-imgs.png}) center repeat;min-height:50vh;margin-bottom: 2rem;}
.formulaire_editer_squelette .image-viewer .grid img {max-width: 100%;height: auto;border:1px solid #ccc;}

.formulaire_upload_squelette .dropfile_fichier_upload { height: 95%; text-align: center;padding-top: 15%;}

.skeleditor #file-browser .picto {
	width: 1em;