[Refusé] [0.1.1] wallmember

Ce forum permet aux auteurs de MODs de proposer leurs MODs à la validation afin d'être ajoutés à la base des MODs de phpBB-fr.

Merci de ne pas proposer de MOD encore en développement !
Pas de support ici pour les mods proposés!

Modérateur: Equipe

Règles du forum
A lire impérativement sur notre page : Règlement

Attention, aucun support n'est donné dans ce forum pour les mods proposés.

[Refusé] [0.1.1] wallmember

Messagepar Baran-Drake » 12 Aoû 2007 à 20:50

  • MOD Titre: wallmember
  • MOD auteur : Baran-Drake
  • MOD Traduction: Français
  • Sujet officiel phpBB.com: n/a (a disparu du forum )
  • MOD Description: mod permettant de créer des images regroupant les avatars des membres du forum. (pour en faire une sorte de wallpaper)
    En plus de faire un tableau des avatar avec leurs noms dessous sur une image choisi, vous pouvez également choisir d'y placer la banniere du site et même y insérer une signature. (Pour info toutes les coordonnées de positionnement, largeur et hauteur des avatar sont paramétrables)
    On peut également filtrer ceux qui figureront sur le Wall, par nombre de poste, par groupe, trier par odre alphabétique ou par nombre de post voir par date d'inscription.
  • MOD Version: 0.1.1
  • Compatibilité EasyMOD: Non
  • Niveau d'installation: Facile
  • Temps d'installation: 2 minutes
  • Téléchargements: Ici
  • Captures d'écran:
    • n/a
  • Démonstrations:
    • n/a
  • Notes:
      la notice d'installation de ce mod se trouve dans n/o : Voir dans l'admin WALLMEMBER, c'est assez intuitif :p



Juste un petit lien pour que vous ayez un petit aperçut de ce que l'on peut obtenir
http://kankaouenn.free.fr/wallmember.php
Modifié en dernier par Baran-Drake le 16 Aoû 2007 à 20:37, modifié 1 fois.
Avatar de l’utilisateur
Baran-Drake
Posteur néophyte
Posteur néophyte
 
Messages: 68
Enregistré le: 13 Juin 2004 à 13:18
Localisation: 92120

Messagepar w124.org » 16 Aoû 2007 à 15:31

tu t'es trompé de fichier pour le lien !
w124.org
Posteur néophyte
Posteur néophyte
 
Messages: 44
Enregistré le: 28 Jan 2006 à 12:18

Messagepar Baran-Drake » 16 Aoû 2007 à 20:49

Oui merci. :oops:

c'est éditer.
Avatar de l’utilisateur
Baran-Drake
Posteur néophyte
Posteur néophyte
 
Messages: 68
Enregistré le: 13 Juin 2004 à 13:18
Localisation: 92120

Re: [0.1.1]wallmember

Messagepar ErnadoO » 13 Oct 2007 à 15:14

MOD en cours de validation...



Baran-Drake a écrit:la notice d'installation de ce mod se trouve dans n/o : Voir dans l'admin WALLMEMBER, c'est assez intuitif :p
intuitif ou pas, la notice d'installation est dans install.txt, pas dans l'admin
Baran-Drake a écrit:Juste un petit lien pour que vous ayez un petit aperçut de ce que l'on peut obtenir
http://kankaouenn.free.fr/wallmember.php

C'est justement à cela que sert la partie Démonstrations du formulaire.
ErnadoO
 

Messagepar ErnadoO » 13 Oct 2007 à 17:21

Votre MOD a été refusé par l'équipe.
Motif:

1er raison (wallmemlber.php):
Header du fichier manquant

2em raison (wallmemlber.php):
Code: Tout sélectionner
$id_wall = isset($HTTP_GET_VARS['wall']) ? $HTTP_GET_VARS['wall'] : '-1' ;
un petit intval() n'aurait pas fait de mal

3em raison (wallmemlber.php):
Code: Tout sélectionner
$TABLE_WALLMEMBER_CFG = "phpbb_wallmember_cfg";
...
$sql = "SELECT * FROM ". $TABLE_WALLMEMBER_CFG;
Je suis tombé de ma chaise en voyant ça...
On ne définit JAMAIS les noms de tables en dur directement dans le script. N'as tu jamais regardé une requête sql dans phpBB? Il faut utiliser une constante, que tu définies dans constants.php afin d'eviter d'avoir une belle erreur si celui qui install ce mod n'a pas phpbb_ comme prefixe de table, chose qui arrivera avec ta façon de proçéder. Ce n'est pas à la personne qui installe ton mod de modifier cette ligne pour qu'il marche, les constantes sont là pour ça.

4em raison (wallmemlber.php):
Code: Tout sélectionner
$page_title = "wallmember";
Un nom de page codé en dur au lieu d'utiliser les fichiers langues, c'est sortie de terrain immédiat car ton mod n'est pas multilangue (ce que doit être tout mod digne de ce nom).

5em raison (wallmemlber.php):
Code: Tout sélectionner
$menu_select = '<select name="cwall" onchange="Lien()"><option value="0">choix du type de Wall</option>';
Même remarque qu'au dessus

6em raison (admin/admin_wallmember_cfg.php):
Code: Tout sélectionner
$TABLE_WALLMEMBER_CFG = "phpbb_wallmember_cfg";
Même remarque que pour wallmember.php

7em raison (admin/admin_wallmember_cfg.php):
Code: Tout sélectionner
message_die(CRITICAL_ERROR, "the requete was not efectuer for the reasons following: <br/>".$erreurText, "", __LINE__, __FILE__, "");
La constante GENERAL_ERROR suffisait.

8em raison (admin/admin_wallmember_cfg.php):
Code: Tout sélectionner
file_exist($phpbb_root_path.$HTTP_POST_VARS['wallpaper_link']).")
file_exist($phpbb_root_path.$HTTP_POST_VARS['default_avatar_link']).")
file_exist() n'existe pas, c'est file_exists() du coup on a le droit à une belle erreur fatale, miam.
D'ailleurs quel est l'interet d'utiliser cette fonction lors de la génération de l'affichage du message d'erreur puisque tout ce que ça donne au final c'est:
Warning : the wallpaper (1) is not *.jpg
Tu trouves le "(1)" utile et explicite?

9em raison (admin/admin_wallmember.php):
Code: Tout sélectionner
$TABLE_WALLMEMBER_CFG = "phpbb_wallmember_cfg";
$TABLE_WALLMEMBER = "phpbb_wallmember";
Toujours pareil on ne change pas une équipe qui gagne

10em raison (admin/admin_wallmember.php):
Code: Tout sélectionner
				$requete="INSERT INTO " . $TABLE_WALLMEMBER . " ( id, name_id, wall_hauteur, wall_largeur, wallpaper, avatar_hauteur, avatar_largeur, avatar_default, x_nb_avatar, y_nb_avatar, x_space, y_space, x_debut, y_debut, aff_texte, texte_font, texte_size, texte_color, group_id, order_by, filtre, aff_banniere, x_banniere, y_banniere, aff_signature) VALUES ( '', ";
				$requete.= "'".str_replace("'", "\'",$HTTP_POST_VARS['name_id'])."', '";
				$requete.= intval($HTTP_POST_VARS['wall_hauteur'])."', '";
				$requete.= intval($HTTP_POST_VARS['wall_largeur'])."', '";
				$requete.= $wallpaper_http."', '";
				$requete.= intval($HTTP_POST_VARS['avatar_hauteur'])."', '";
				$requete.= intval($HTTP_POST_VARS['avatar_largeur'])."', '";
				$requete.= $avatar_default_http."', '";
				$requete.= intval($HTTP_POST_VARS['x_nb_avatar'])."', '";
				$requete.= intval($HTTP_POST_VARS['y_nb_avatar'])."', '";
				$requete.= intval($HTTP_POST_VARS['x_space'])."', '";
				$requete.= intval($HTTP_POST_VARS['y_space'])."', '";
				$requete.= intval($HTTP_POST_VARS['x_debut'])."', '";
				$requete.= intval($HTTP_POST_VARS['y_debut'])."', '";
				$requete.= intval($HTTP_POST_VARS['aff_texte'])."', '";
				$requete.= str_replace("'", "\'",$HTTP_POST_VARS['texte_font'])."', '";
				$requete.= intval($HTTP_POST_VARS['texte_size'])."', '";
				$requete.= str_replace("'", "\'",$HTTP_POST_VARS['texte_color'])."', '";
				$requete.= intval($HTTP_POST_VARS['group_id'])."', '";
				$requete.= $HTTP_POST_VARS['order0']." ".$HTTP_POST_VARS['order1']."', '";
				$requete.= $select_filtre."', '";
				$requete.= intval($HTTP_POST_VARS['aff_banniere'])."', '";
				$requete.= intval($HTTP_POST_VARS['x_banniere'])."', '";
				$requete.= intval($HTTP_POST_VARS['y_banniere'])."', '";
				$requete.= intval($HTTP_POST_VARS['aff_signature'])."');";
A peine que je remonte sur ma chaise que j'en retombe déjà.
Qu'est ce que c'est que ce gros paté là?
Tu pouvais, en début de script, déclarer tous tes noms d'elements de formulaire dans un tableau, puis parcourir ce tableau via each() et classer chaque valeur d'elements via list():
Exemple:
Code: Tout sélectionner
$var_int = array('wall_hauteur' => 'wall_hauteur', 'wall_largeur' => 'wall_largeur', 'avatar_hauteur' => 'avatar_hauteur');
while( list($var, $param) = @each($var_int) )
{
	if ( !empty($HTTP_POST_VARS[$param]) )
	{
		$$var = intval($HTTP_POST_VARS[$param]);
	}
}
oh ça te donne des variables $wall_hauteur, $wall_largeur, $avatar_hauteur pretent à l'emploie.
Apres tu fais de même pour les chaines de caractères, avec le intval() en moins puisque tes
Code: Tout sélectionner
str_replace("'", "\'",$HTTP_POST_VARS['xxxxx'])
ne servent à rien étant donné que common.php se charge déjà d'addslasher la superglobales $HTTP_POST_VARS si ton serveur ne le fait pas de lui même. Tu peux même bricoler un peu pour ne faire qu'une boucle while qui applique ou ou non intval()

11em raison (admin/admin_wallmember.php):
Code: Tout sélectionner
$im = ImageCreateTrueColor ($row_wallmember['wall_largeur'], $row_wallmember['wall_hauteur'])
	or die ("Erreur lors de la création de l'image");

moche de chez moche, message_die() n'existe pas pour rien:
Code: Tout sélectionner
if( !($im = @ImageCreateTrueColor($row_wallmember['wall_largeur'], $row_wallmember['wall_hauteur'])))
{
	message_die("Erreur lors de la création de l'image");
}


12em raison (admin/admin_wallmember.php):
Code: Tout sélectionner
default:
		echo('choix incorrect'. $option . ', ce choix nexiste pas.');
echo cay mal, la fonction message_die n'existe pas pour rien.
Ensuite, si on spécifie un mode inexistant, ça nous renvoie:
choix incorrectcoco, ce choix nexiste pas.
c'est pas des plus clair.

13em raison (admin/admin_wallmember.php):
Perso, au lieu de faire ceci:
Code: Tout sélectionner
if ($option == '' ) {$option = 'menu'; }
.....
switch ($option)
{
	case 'menu' :
J'aurais traité la page principale via la condition default du switch() comme ça tout mode non valide afficherait la page principale.

14em raison:
Ton code est illisible voir même dégeu, dsl du terme, mais une bonne indentatation est primordiale

15em raison:
Je cherche encore l'interet d'un tel "mod", à part l'effet gadget je ne vois pas.


Je me suis arrêté à 15 pour faire un compte rond, mais il y a surement encore d'autres erreurs qui trainent, donc révise tout ton code ;)
ErnadoO
 


Retourner vers Proposition de MODs

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité