Fait ! J'ai encore tenté de faire reconnaître le dossier "locale"
d'alertcom dans le fichier "register.php" mais je n'y arrive vraiment
pas ! J'avais réussi à un moment en faisant un include de prepend.php
au début du fichier mais cela aboutissait à des erreurs sur la page
Web... Il faudrait trouver les bons fichiers à inclure pour que que ça
fonctionne (probablement un jeu d'enfant pour toi Loïc :-P ). Tout est prêt
autrement, la fonction __() est en place pour les chaînes devant être
traduites, la traduction en français, les fichiers de locale des
différentes langes prêts à être traduits, le fichier config.php-dist
modifié (à ce propos, est-ce que le fichier config.php sur
l'hébergement sera mis à jour en cas de mise jour de plume intégrant
alertcom ? Je suppose que non, il faudra donc procéder à un
copier/coller manuel des lignes à ajouter.)
Je rappelle que je l'ai installé sur le site de test :
http://plumecmstest.free.fr/
Je l'avais laissé comme il était, il semble fonctionner à peu près
correctement (je rappelle qu'il est possible d'indiquer dans l'outil de
configuration de plume le nombre de champs d'upload à ajouter). Il
arrive à uploader les fichiers valides pas trop volumineux (j'ai
l'impression que la limitation de 1.9 Mo est un peu optimiste, je
suppose que free a limité l'upload d'une autre manière pour éviter la
surcharge du serveur, peut-être que l'upload en séquence n'est pas
supporté...) et à notifier cela (derrière le champ correspondant). Il
arrive à détecter, notifier et à ne pas uploader les fichiers non
valides (exe par exemple). Il arrive à détecter les noms de fichiers
non valides (avec accents par exemple) et à le notifier. Cependant, il
semblerait que le script ne fonctionne pas lors de la détection de
fichier trop volumineux. Je pense qu'il y a une erreur d'écriture de ma
part dans la prise en compte des erreurs survenues lors de l'upload
indiquées par
$_FILES['fichier_uploadé']['error']...
Je vais tenter de revoir ça ce week end mais toute aide est la
bienvenue !
Pour information, copier/coller du code modifié :
## Traitement des fichiers ########################
/* Upload of the file */
//Defining some variables
$number_multi_up = $_PX_config['multi_upload'];//Number of submission
fields to display
$message = array();//Message to notify if success or error when
uploading
if ($is_writable && !empty($_FILES['up_file']) &&
(false === $m->error())) {
for ($i=0; $i<=$number_multi_up-1; $i++)//Loop for handling each
submission field
{//Simplification of arrays
$file = $_FILES['up_file'];
$tmp_file = $file['tmp_name'][$i];
$file_name = $file['name'][$i];
if (!$file_name) {//If field empty
continue;//Next iteration
}
if (version_compare(phpversion(),'4.2.0','>=')) {
$upd_error = $file['error'][$i];
} else {
$upd_error = 0;
}
if ($upd_error != 0) {
switch ($upd_error) {
case UPLOAD_ERR_INI_SIZE:
$message[$i] = '<span class="errmsg">'.__('Error: The
size of the file excess the maximum size.').'</span>';
break;
case UPLOAD_ERR_FORM_SIZE:
$message[$i] = '<span class="errmsg">'.__('Error: The
size of the file excess the maximum size.').'</span>';
break;
case UPLOAD_ERR_PARTIAL:
$message[$i] = '<span class="errmsg">'.__('Error:
File not fully transfered.').'</span>';
break;
case UPLOAD_ERR_NO_FILE:
$message[$i] = '<span class="errmsg">'.__('Error: No
file.').'</span>';
break;
}
continue;//next iteration
} elseif(!file_exists($tmp_file)) {
$message[$i] = '<span class="errmsg">'.__('Error: No
file.').'</span>';
continue;//next iteration
} elseif(filesize($tmp_file) > config::f('max_upload_size')) {
$message[$i] = '<span class="errmsg">'.__('Error: The
size of the file excess the maximum size.').'</span>';
continue;//next iteration
} else {
$file_name = preg_replace( '#(\s+)#', '_', $file_name);
if(!isFileSafe($file_name)) {
$message[$i] = '<span class="errmsg">'.__('Error: Not
an authorized type of file. The file name must contain only simple
letters, digits, "-", "_" and a recognized extension. No spaces
allowed.').'</span>';
continue;//next iteration
} else {
if (@copy($tmp_file,$up_dir.'/'.$current_dir.$file_name)) {
@chmod($up_dir.'/'.$current_dir.$file_name, 0666);
/* create thumb */
$thumb =
$up_dir.'/thumb/'.md5($current_dir.$file_name).'.jpg';
@unlink($thumb); //ensure that the old thumbnail is
removed if available
@$msg=cropImg($up_dir.'/'.$current_dir.$file_name,
$thumb, 150, 100);
@chmod($thumb, 0666);
$message[$i] = '<span class="message">'.__('File
successfully uploaded.').'</span>';
$up_success = true;
//I don't know why this line below must be deleted for
this code to work...
/*header('Location:
xmedia.php?dir='.rawurlencode($current_dir)
.'&mode='.$mode.'&env='.$env);*/
} else {
$message[$i] = '<span class="errmsg">'.__('An
error occured during the transfer of the file.').'</span>';
}
}
}
}
}
################################################
###Modification du formulaire#########################
<?php if($is_writable) : ?>
<form enctype="multipart/form-data" action="xmedia.php"
method="post">
<fieldset><legend><?php echo __('Add a file to the
current folder'); ?></legend>
<p><label><?php echo sprintf( __('Choose a file
(maximum size %s)'), prettySize($_PX_config['max_upload_size'])); ?>
<?php echo $m->HelpLink('xmedia', 'h-add-file');
?></label></p>
<?php //Loop to display the number of fields set in the
configuration file
for ($i=0; $i<=$number_multi_up-1; $i++) {
?>
<p style="margin: 0 5px;"><input name="up_file[]" type="file"
/>
<?php //Displaying the message if exists
if (!empty($message[$i])){
echo $message[$i];
}
?>
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo
$_PX_config['max_upload_size']; ?>" />
<input type="hidden" name="mode" value="<?php echo $mode; ?>"
/>
<input type="hidden" name="env" value="<?php echo $env; ?>"
/>
<input type="hidden" name="dir" value="<?php echo $current_dir;
?>" /></p>
<?php
//End of loop
}
?>
<p><input class="submit" type="submit" value="<?php echo
__('Add the file'); ?>" /></p>
</fieldset>
</form>
<?php endif; ?>
##################################################