[DEV] Paypal Donation MOD

Vous êtes auteur d'un MODs phpBB3 en développement ou en version bêta, proposez votre MODs à la communauté pour essai dans ce forum.

Modérateur: Equipe

Re: [1.0.0-RC1] Paypal Donation MOD

Messagepar ABDev » 28 Jan 2012 à 14:54

En fait, les conventions de phpBB3 sont un peu ... "farfelues" on va dire. Il ne faut pas forcément les suivre à 100%.
Quand on doit utiliser des comparaisons, il faut bien mettre les parenthèses.
Par contre, si on vérifie une existance via isset ou encore empty, ça n'a aucun intérêt, vu que la variable à vérifier est déjà contenue.
Arrêtez de m'envoyer des messages privés pour rien !

Fondateur et chef de projet de MeetGeek Dot Info (prochainement) • Responsable des équipes MODs et Support
Nos MODsphpBB Forge, la première forge phpBB francophone • LinkedInViadeo

Image Image
Avatar de l’utilisateur
ABDev
Resp. des codeurs
Resp. des codeurs
 
Messages: 7678
Inscription: 12 Mai 2005 à 22:54
Localisation: Hénin-Beaumont / Pas-de-Calais / France

Re: [1.0.0-RC1] Paypal Donation MOD

Messagepar sylver35 » 28 Jan 2012 à 15:31

les deux formes:
Code: Tout sélectionner
    'S_' $type         => (!empty($type)) ? true false

et
Code: Tout sélectionner
    'S_' $type         => !empty($type) ? true false

sont bonnes, par contre la forme qui n'est pas correcte:
Code: Tout sélectionner
    'S_' $type         => ( !empty($type) ) ? true false
La vitesse de la lumière étant supérieure à la vitesse du son, bien des gens paraissent brillants jusqu'au moment où ils ouvrent la bouche.

Image

Nouvelle version du 25/12/2011: Mod Breizh Shoutbox v1.5.0 || Nouvelle version du 22 Mai: Mod Breizh Ajax Checks 1.3.0
Nouvelle version du 04/03/2012: Mod Browser, os & Screen 1.0.0
|| Version du 05/03/2012 -> Erreurs et Notices de débug v1.2.0
Info Sécurité -> Renommer le dossier d'administration adm || Une captcha efficace contre les inscriptions robots || Hébergement breizh hosting (- 15% via Breizh Portal)
Avatar de l’utilisateur
sylver35
Grand-maître des floodeurs
Grand-maître des floodeurs
 
Messages: 4587
Inscription: 26 Fév 2008 à 14:58
Localisation: Bretagne

Re: [1.0.0-RC1] Paypal Donation MOD

Messagepar lustucrus » 29 Jan 2012 à 15:14

Tous d'abord merci pour ce mod ^^

moi j'ai ce problème après l'installation sur l'onglet '.Mod > (Paypal Donation) Configuration' ... pourtant toutes les modification on été fait par Automod avec succes (Et je les est revérifier manuellement apres)

Version PhpBB 3.0.10

Code: Tout sélectionner

Erreur générale
SQL ERROR [ mysqli ]

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 [1064]

SQL

SELECT item_id FROM phpbb_donation_item WHERE item_id =

BACKTRACE

FILE: [ROOT]/includes/db/mysqli.php
LINE: 182
CALL: dbal->sql_error()

FILE: [ROOT]/includes/functions_donation.php
LINE: 134
CALL: dbal_mysqli->sql_query()

FILE: [ROOT]/includes/functions_donation.php
LINE: 68
CALL: get_info()

FILE: (not given by php)
LINE: (not given by php)
CALL: donation_item_list()

FILE: [ROOT]/adm/index.php
LINE: 363
CALL: call_user_func_array()

FILE: [ROOT]/includes/acp/acp_donation.php
LINE: 158
CALL: build_cfg_template()

FILE: [ROOT]/includes/functions_module.php
LINE: 516
CALL: acp_donation->main()

FILE: [ROOT]/adm/index.php
LINE: 80
CALL: p_master->load_active()





C'est ce bout que je trouve bizzare :

FILE: (not given by php)
LINE: (not given by php)
CALL: donation_item_list()

Vous avez une idée ?
lustucrus
Posteur néophyte
Posteur néophyte
 
Messages: 35
Inscription: 13 Oct 2010 à 07:03

Re: [1.0.0-RC1] Paypal Donation MOD

Messagepar skouat » 29 Jan 2012 à 15:48

Bonjour,

Etrange !

Pas de problème lors de l'installation UMIL ?
Tu peux purger le cache de ton forum ? ACP >> General >> Purger le cache

Car là en gros la page de configuration n'arrive pas à récupérer l'information affectée à "donation_default_currency" et ceci se produit que si cette valeur n'est pas présente dans la base de données. Or si l'installation c'est bien déroulée elle est présente

--- Edit ---

Sinon, bien que ton problème ne soit pas logique si l'installation s'est bien déroulée, vérifie dans la base de donnée que dans la table "phpbb_config" (modifier le préfixe si nécessaire) le champs "config_name" a bien la valeur "donation_default_currency" de présente.

Tu peux exécuter la requête suivante si tu veux :
Code: Tout sélectionner
SELECT *  FROM `phpbb_config` WHERE `config_name` LIKE 'donation%'

/!\Attention à ne pas oublier de modifier le préfixe de la table si nécessaire

Si elle n'est pas présente, alors si faut désinstaller/réinstaller le MOD avec http://www.domain.tld/phpbb_root_dir/install_donation_mod.php
Dernière édition par skouat le 29 Jan 2012 à 16:31, édité 3 fois.
skouat
Posteur expérimenté
Posteur expérimenté
 
Messages: 327
Inscription: 02 Avr 2008 à 19:47

Re: [1.0.0-RC1] Paypal Donation MOD

Messagepar lustucrus » 29 Jan 2012 à 16:20

ok merci ! pour info non tous étais en Vert avec succès lors de l'installation autant pour les fichiers à modifier que la Base de donnée ... j'ai vider le cache rafraichis template, themes, imageset ... sans résultats ... mais quand tu a parler de base de donné, j'ai désinstaller avec le fichier install_donation_mod.php pour verifier les tables elles étais toutes la :shock: et j'ai refait l'installation dans la base de donné !!! tous fonctionne maintenant !

je cherchais dans les fichiers a modifier moi :roll: ça aurais pu me prendre du temps lol

merci de ta réponse rapide et de ton aide !
lustucrus
Posteur néophyte
Posteur néophyte
 
Messages: 35
Inscription: 13 Oct 2010 à 07:03

Re: [1.0.0-RC1] Paypal Donation MOD

Messagepar skouat » 29 Jan 2012 à 16:29

Content que ça fonctione 8)

Bon ben mon édite du précédent message ne sert plus à rien :D
lustucrus a écrit:je cherchais dans les fichiers a modifier moi ça aurais pu me prendre du temps lol

Oui c'est sûr :)
J'avais réussi à reproduire ton symptôme.
il résidera toujours un mystère sur "pourquoi l'installation UMIL n'a pas créé correctement les entrées dans la base de données alors que tout était au vert" -_-

Bon test ;)
skouat
Posteur expérimenté
Posteur expérimenté
 
Messages: 327
Inscription: 02 Avr 2008 à 19:47

Re: [1.0.0-RC1] Paypal Donation MOD

Messagepar lustucrus » 29 Jan 2012 à 17:02

lol j'avais pas vu l'édit, mais merci ^^

j'aurais une autres petite question concernant les clé de langues ? on fait comment ... j'ai trouver ceci : Ajout de clé de langue et fichier css pour un site

mais je suit pas sur si c'est vraiment ce qu'il faut faire car pour l'instant, tous ce que j’écris avec des accents dans onglets .Mods > 'Paypal Donation>Donation Pages' se transforme en '??' après l'envoi. A par cela j'ai fait le tour tous est Numéro 1 beau travail même la barre de progression est jolie !
lustucrus
Posteur néophyte
Posteur néophyte
 
Messages: 35
Inscription: 13 Oct 2010 à 07:03

Re: [1.0.0-RC1] Paypal Donation MOD

Messagepar skouat » 29 Jan 2012 à 18:20

lustucrus a écrit:j'aurais une autres petite question concernant les clé de langues ? on fait comment

Il suffit juste d'éditer le fichier de langue "language/<lang>/mods/donate.php"

Soit tu crées ta propres clés de langue, soit tu édites celle servant d'exemple => "DONATION_SAMPLE_LANG_KEY"
Ensuite depuis l'ACP, dans la zone de texte dédiée à la personnalisation des pages, tu écris le nom de ta clé de langue (en majuscule).

/!\ Attention, si tu crées tes propres clés de langue, il serait judicieux de sauvegarder ces clés dans un fichier bien a part.
Car quand il y aura une mise à jour du MOD, toutes les clés personnalisées seront perdues.

lustucrus a écrit: tous ce que j’écris avec des accents dans onglets .Mods > 'Paypal Donation>Donation Pages' se transforme en '??' après l'envoi

Bien vu pour le bug.

Voici la solution :

Ouvrir "/includes/acp/acp_donation.php"
Rechercher
Code: Tout sélectionner
$donation_pages_vars = request_var('pages', array('' => '')); 

Remplacer par
Code: Tout sélectionner
$donation_pages_vars = request_var('pages', array('' => ''), true); 


lustucrus a écrit:même la barre de progression est jolie !

Ce mérite reviens à Stoker 4.0 ;)
skouat
Posteur expérimenté
Posteur expérimenté
 
Messages: 327
Inscription: 02 Avr 2008 à 19:47

Re: [1.0.0-RC1] Paypal Donation MOD

Messagepar lustucrus » 29 Jan 2012 à 18:48

skouat a écrit:

Voici la solution :

Ouvrir "/includes/acp/acp_donation.php"
Rechercher
Code: Tout sélectionner
$donation_pages_vars = request_var('pages', array('' => '')); 

Remplacer par
Code: Tout sélectionner
$donation_pages_vars = request_var('pages', array('' => ''), true); 



Un merci énorme :D , maintenant que le problème d'accent est régler les clé de langues sont moins nécessaire mais merci de l'astuce je la prend en notes au cas ou ^^ maintenant tous fonctionne a 100% avec 132 mods installer lol, pas de conflit jusqu'a maintenant !!!

Si je peut me permettre serait il possible d'y ajouter un champ 'Montant Minimum dans '.Mods>Paypal Donation>Configuration', en cas d'abus, afin d'éviter exemple 1000 dons de 1 sous qui reviendrais a faire payer le compte paypal qui reçoit le dons ... ?
lustucrus
Posteur néophyte
Posteur néophyte
 
Messages: 35
Inscription: 13 Oct 2010 à 07:03

Re: [1.0.0-RC1] Paypal Donation MOD

Messagepar skouat » 29 Jan 2012 à 19:02

lustucrus a écrit:maintenant que le problème d'accent est régler les clé de langues sont moins nécessaire

Si ton forum ne gère qu'une seule langue c'est sûr que les clés de langue n'ont pas d'utilité :)

lustucrus a écrit:avec 132 mods installer lol, pas de conflit jusqu'a maintenant !!!

Bravo pour le nombre de MOD et merci pour le retour de non conflit.
D'un autre coté, à moins d'avoir déjà un MOD paypal, il n'y avait pas de raison apparente qu'il y ait un conflit :P

lustucrus a écrit:Si je peut me permettre serait il possible d'y ajouter un champ 'Montant Minimum dans '.Mods>Paypal Donation>Configuration', en cas d'abus, afin d'éviter exemple 1000 dons de 1 sous qui reviendrais a faire payer le compte paypal qui reçoit le dons ... ?

Je regarde cela, si ca n'implique pas trop de changement, je le rajouterai, sinon ça sera mis sur la prochaine version.

Là pour l'instant je préfère stabiliser cette version pour tenter l'aventure de la validation phpbb.com et surtout j'attend le coup de machette de ABDev :mrgreen:
Quoi ?! moi maso ?! :shock: noooon !! :roll:
skouat
Posteur expérimenté
Posteur expérimenté
 
Messages: 327
Inscription: 02 Avr 2008 à 19:47

Re: [1.0.0-RC1] Paypal Donation MOD

Messagepar lustucrus » 29 Jan 2012 à 19:14

lol tu fait bien moi je suit plutôt amateur je comprend pas grand chose au code que je copie/colle mais j'aime bien ton mods !

Juste comme ca j'ai bien un modules paypal inclus dans le 'Board3-Portal 2.0.b1' peut être que mon bugs de base de donné viendrais de la ! autrement j'avais rien d'installer concernant paypal ...
lustucrus
Posteur néophyte
Posteur néophyte
 
Messages: 35
Inscription: 13 Oct 2010 à 07:03

Re: [1.0.0-RC1] Paypal Donation MOD

Messagepar ABDev » 29 Jan 2012 à 20:09

skouat a écrit:Là pour l'instant je préfère stabiliser cette version pour tenter l'aventure de la validation phpbb.com et surtout j'attend le coup de machette de ABDev :mrgreen:
Quoi ?! moi maso ?! :shock: noooon !! :roll:

Roh mais faut pas psychoter :mrgreen:.
Arrêtez de m'envoyer des messages privés pour rien !

Fondateur et chef de projet de MeetGeek Dot Info (prochainement) • Responsable des équipes MODs et Support
Nos MODsphpBB Forge, la première forge phpBB francophone • LinkedInViadeo

Image Image
Avatar de l’utilisateur
ABDev
Resp. des codeurs
Resp. des codeurs
 
Messages: 7678
Inscription: 12 Mai 2005 à 22:54
Localisation: Hénin-Beaumont / Pas-de-Calais / France

Re: [1.0.0-RC1] Paypal Donation MOD

Messagepar ABDev » 29 Jan 2012 à 20:56

Bon j'ai commencé à regarder de plus près ce soir, et voici ce qu'il en ressort :

Concernant le fichier d'installation UMIL, ne t'embête pas à utiliser la variable $table_prefix.
Mets directement le préfixe par défaut phpbb_ et UMIL fera le reste ;).

Dans ton fichier includes/functions_donation.php :

Code: Tout sélectionner
        $template->assign_vars(array(
            'DONATION_GOAL_NUMBER' => round($donation_goal_number, 2),
        )); 

Vu que tu ne renvoies qu'une seule information, tu peux utiliser la méthode assign_var() :

Code: Tout sélectionner
        $template->assign_var('DONATION_GOAL_NUMBER', round($donation_goal_number, 2)); 

Idem pour celle en dessous :).

Par contre, pour la fonction get_info(), pas sûr que le phpBB Group acceptera son utilisation.
J'ai eu le problème à l'époque de phpBB2 où j'utilisais des fonctions issues de Categories Hierarchy.
Sur ce point, mieux vaut utiliser les conventions de phpBB3.

Pour cette partie :

Code: Tout sélectionner
    $sql_and = '';

    if ($format == 'default_currency' && $default_currency_check)
    {
        $sql_and = 'AND di.item_id = ' . $default;
    }

    // SQL Build array
    $sql_ary = array(
        'SELECT'    => 'di.item_id, di.item_name, di.item_iso_code, di.item_symbol',
        'FROM'        => array(DONATION_ITEM_TABLE => 'di'),
        'WHERE'        => 'di.item_type = "' . $type . '"
            AND di.item_enable = 1 '
            . $sql_and,
        'ORDER_BY'    => 'di.left_id',
    ); 

Tu peux faire plus simple, et il y a une belle erreur sur ORDER BY :

Code: Tout sélectionner
    $sql = 'SELECT item_id, item_name, item_iso_code, item_symbol
        FROM '
 . DONATION_ITEM_TABLE . '
        WHERE item_type = \''
 . $type . '\'
        ORDER BY left_id'
;
    if ( ($format == 'default_currency') && $default_currency_check )
    {
    
    $sql = str_replace('ORDER BY left_id', 'AND item_id = ' . $default . ' ORDER BY left_id', $sql);
    }
    $result = $db->sql_query($sql); 

Ici, tu retournes la valeur. Donc le vidage de mémoire de ta requête ne peut être effectué :

Code: Tout sélectionner
    return $item_list_options;
    $db->sql_freeresult($result); 

$db->sql_freeresult($result); doit être placé en fin de traitement du while()

Petit conseil : pour les ID et les entiers, n'hésite pas à forcer via (int) ou intval()

Dans le fichier includes/acp/acp_donation.php :

Code: Tout sélectionner
$sql = 'SELECT right_id FROM ' . DONATION_ITEM_TABLE . ' ORDER BY right_id DESC LIMIT 1'; 

Si le membre utilise Oracle en SGBD, il aura assurément une erreur 8).
A remplacer par :

Code: Tout sélectionner
                    $sql = 'SELECT MAX(right_id) AS right_id FROM ' . DONATION_ITEM_TABLE; 

Je continue d'y regarder demain, j'suis sûr d'avoir d'autres choses à trouver :mrgreen:.
Arrêtez de m'envoyer des messages privés pour rien !

Fondateur et chef de projet de MeetGeek Dot Info (prochainement) • Responsable des équipes MODs et Support
Nos MODsphpBB Forge, la première forge phpBB francophone • LinkedInViadeo

Image Image
Avatar de l’utilisateur
ABDev
Resp. des codeurs
Resp. des codeurs
 
Messages: 7678
Inscription: 12 Mai 2005 à 22:54
Localisation: Hénin-Beaumont / Pas-de-Calais / France

Re: [1.0.0-RC1] Paypal Donation MOD

Messagepar skouat » 29 Jan 2012 à 22:16

ABDev a écrit:Mets directement le préfixe par défaut phpbb_ et UMIL fera le reste

ok
ABDev a écrit:Vu que tu ne renvoies qu'une seule information, tu peux utiliser la méthode assign_var() :

Oui c'est vrai que l'array est inutile... mais vu que j'ai modifié la fonction maintenant j'ai bien besoin de assign_vars()
par contre j'en ai profité pour appliquer ton commentaire à $template->assign_var('MODE', $mode); que j'avais codé sur le même principe dans le fichier donate.php

ABDev a écrit:get_info()

Je ne sais plus de quel MOD j'avais récupéré cette fonction... je trouvais ça sympas vu que ça réduisait les lignes de code :mrgreen:
C'est noté...

ABDev a écrit:Tu peux faire plus simple, et il y a une belle erreur sur ORDER BY :

Oui, c'est un peu comme plus haut. j'ai un Array() qui n'a pas lieu d'être. En plus dans le code-guideline c'est à utiliser pour faire des jointures de table. Vu que ce n'est pas le cas... retour à la méthode conventionnelle.

Le code que t'as mentionné, j'allais le modifier ainsi. Bien ou pas bien ?
Code: Tout sélectionner
    $sql_and = ($format == 'default_currency' && $default_currency_check) ? 'AND item_id = ' . $default_currency_check['item_id'] : '';

    // SQL Build
    $sql = 'SELECT item_id, item_name, item_iso_code, item_symbol
        FROM '
 . DONATION_ITEM_TABLE . '
        WHERE item_type = "'
 . $type . '"
            AND item_enable = 1 '
            . $sql_and . '
        ORDER BY left_id'
;
    $result = $db->sql_query($sql);
 


ABDev a écrit:Ici, tu retournes la valeur. Donc le vidage de mémoire de ta requête ne peut être effectué :

C'est tellement évident une fois que tu le fait remarquer >_<

ABDev a écrit:Petit conseil : pour les ID et les entiers, n'hésite pas à forcer via (int) ou intval()

C'est noté. le pire c'est que je le faisait dans mon précédent MOD
ABDev a écrit:Si le membre utilise Oracle en SGBD, il aura assurément une erreur .

Quelle idée aussi d'utiliser Oracle :x :mrgreen:
ABDev a écrit:Je continue d'y regarder demain, j'suis sûr d'avoir d'autres choses à trouver .

moi aussi j'en suis sûr :mrgreen:

Conclusion, dans tout ce que t'as cité (pour le moment -_-), on a eu qu'une seule modification commune.
Je repackage le MOD et je te fais parvenir un lien via MP.
Car entre temps j'ai fait quelques corrections et ca serait dommage que tu regardes du code qui ne correspond plus à la version que j'ai en local.

En tout cas, merci pour ce premier coup d'oeil.
A+
skouat
Posteur expérimenté
Posteur expérimenté
 
Messages: 327
Inscription: 02 Avr 2008 à 19:47

Re: [1.0.0-RC1] Paypal Donation MOD

Messagepar skouat » 04 Fév 2012 à 22:02

lustucrus a écrit:Si je peut me permettre serait il possible d'y ajouter un champ 'Montant Minimum dans '.Mods>Paypal Donation>Configuration', en cas d'abus, afin d'éviter exemple 1000 dons de 1 sous qui reviendrais a faire payer le compte paypal qui reçoit le dons ... ?


Pour information, la version final 1.0.0 permettra de définir une valeur de dons par défaut.
Ce n'est pas un montant minimum, mais plutôt un montant suggéré.

Comme dit précédemment, je rajouterai cette fonctionnalité dans la prochaine mouture du MOD.

Pour information bis, le MOD va être soumis à validation ce soir ou demain.

A suivre...
skouat
Posteur expérimenté
Posteur expérimenté
 
Messages: 327
Inscription: 02 Avr 2008 à 19:47

PrécédenteSuivante

Retourner vers MODs en développement

Qui est en ligne

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

Partenaires : phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB3 Styles • phpBB podpora • phpBB Portugal    Liens : Net Avenir • PromoBenef • Ticket Gagnant