Ecrit le par et publié dans « PhpBB ».

Bonsoir à toutes et à tous,

J'ai adapté un script php pour phpBB3.

Commençons par le fichier de langue.

Ouvrez le fichier language/fr/common.php.

Cherchez:

?>

Avant, ajoutez:

// Clés de langues du formulaire image
$lang['File_Format_Authorized']     = 'Le fichier doit être au format *.jpeg, *.bmp, *.jpg, *.png, *.ico *.gif ou *.png .';
$lang['Directory_No_Existence']     = 'Erreur, le dossier d\'upload n\'existe pas.';

$lang['Img_Code_Forum']             = 'Pour un forum, le code est:';
$lang['Img_Code_Html']              = 'En html, le code de votre image est en création';
$lang['Img_Link']                   = 'Voici le lien: ';
$lang['Img_Size']                   = 'L\'image doit être inférieur';
$lang['Img_Return']                 = 'Retour';

$lang['Upload_Success']             = 'Votre image  été uploadée sur le serveur avec succès!';
$lang['Upload_Missed']              = 'L\'image n\'a pas pu être transférée sur le serveur.';

Cherchez:

'PAGE_OF'                => 'Page %1$d sur %2$d',

Après, ajoutez:

'PAGE_IMGFORM'        => 'Hébergeur images',

Voici la partie php du script, en gros le moteur qui va traiter la demande. Vous devrez nommer cette page imageup.php ou comme vous souhaitez.

session_begin();
$auth->acl($user->data);
$user->setup('');

// Variables globales
$size_max 	= 512000; 							 // Poids max de l'image en octets (1Ko = 1024 octets)
$directory 	= 'uploads/'; 						// Repertoire d'upload 

if (isset($_FILES['fichier']))
{
	// On vérifit le type du fichier
	if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/gif' && $_FILES['fichier']['type'] != 'image/bmp' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/ico')
	{
		$error = $lang['File_Format_Authorized'];
	}
}
// On vérifit le poids de l'image
elseif ($_FILES['fichier']['size'] > $size_max)
{
	$error = $lang['Img_Size'] . ' ' . $size_max/1024 . 'Ko.';
}
// On vérifit si le répertoire d'upload existe
elseif (!file_exists($directory))
{
	$error = $lang['Directory_No_Existence'];
} 

// Si il y a une erreur on l'affiche sinon on peut uploader
if(isset($error))
{
	$error_message = '' . $error . '' . $lang['Img_Return'] . '';
}
else
{
	// On définit l'extention du fichier puis on le nomme par le timestamp actuel
	if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; }
	if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; }
	if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; }
	if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; }
	if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.bmp'; }
	if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.jpg'; }
	if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.png'; }
	if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.ico'; } 

	$filename = time(). $extention; 

	// On upload le fichier sur le serveur.
	if (move_uploaded_file($_FILES['fichier']['tmp_name'], $directory . $filename))
	{
		$url = 'http://www.graya.fr/'. $directory . '' . $filename . '';
		$upload_message = $lang['Upload_Success'] . '' .  $lang['Img_Link'] . '

						  ' . $lang['Img_Code_Forum'] . '

						  ' . $lang['Img_Code_Html'];
	}
	else
	{
		$upload_message = $lang['Upload_Missed'];
	}
}

// Output page
page_header($user->lang['PAGE_IMGFORM']);

// Assignation des variables
$template->assign_vars(array(
	'ERROR_IMG'				=> $error_message,
	'UPLOAD_MESSAGE'		=> $upload_message,
	'SIZE_MAX'				=> $size_max,

	'S_ERROR_IMG'			=> (!empty($error_message)) ? $error_message : ''
	)
);	

// Assignation du template
$template->set_filenames(array(
    'body' => 'imgform_body.html',
 ));

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));

page_footer();
?>

Maintenant, il vous faut créer la partie template. Voici le code à copier-coller:



	
{L_INFORMATION}: {ERROR_IMG}
{UPLOAD_MESSAGE}

Vous pouvez laisser des commentaires ici ou bien demander le support via mon forum.

A bientôt,

Un Réponse à “[Astuce] Script d’upload d’images”

  1. Bonsoir,

    Si vous voulez que cela ne soit réservé qu’à vos membres, alors ajoutez ceci:

    // Si l'utilisateur n'est pas loggé
    if ( !$user->data['is_registered'] )
    {
        login_box();
    }

    A bientôt,


Laissez une réponse

Vous devez être se connecter pour mettre un commentaire.