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_exist
s() 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
