# Jeux vidéo > Jeux vidéo (Discussions générales) > Le coin des développeurs >  CPC Gifts - Le topic des développeurs généreux

## Calys

Salut les canards !

Comme on me l'a demandé sur le topic des canards généreux, le code source de cpcgifts est maintenant libre et hébergé sur GitHub pour que les canards qui le souhaitent puissent m'aider à améliorer ce projet.

Pour ceux qui ne connaissent pas (encore  :Cigare: ) cpcgifts, je les invite à aller lire la news de Diwydiant qui présente le projet.

Tout ceux qui veulent participer à l'amélioration du site et qui on des connaissances en Java, Google App Engine (GAE) ou html/css sont les bienvenus.

On cherche aussi quelqu'un capable de générer de jolies signatures comme sur steamgifts, en php.


*Bugs connus :*
 

*Dernières mises à jour :*

_23/11/14_
 Ajout de la possibilité de citer des messages en commentaire Ajout de la possibilité de supprimer un lien de profil en laissant le champ vide
_29/10/14_ (Diwydiant update)
 Ajout des smileys dans le parser markdown et l'éditeur Nouveau nom de domaine plus court : http://cpcgifts.ovh Suppression des pubs
_07/07/14_
 Migration de l'ORM JDO vers Objectify
_03/05/14_
 Fixed : les giveaways privés n'apparaissent plus dans le carrousel de la page d'accueil.
_16/04/14_
 Ajout du support des vidéos youtube dans les commentaires.
_11/04/14_
 Ajout des concours privés.
_06/02/14_
 Ajout d'une icône indiquant si l'on est déjà inscrit à un concours. 
_05/02/14_
 Ajout du bouton "Commenter et participer"
_23/01/14_
 Affichage d'informations sur le nombre de participants dans la liste des gifts
_26/12/13_
 Ajout d'un système de "requêtes administrateur" pour simplifier les demandes aux admins
_8/12/13_
 Ajout d'un champ de recherche pour les giveaways en cours et les utilisateurs
_5/12/13_
 Ajout de statistiques en bas de la page d'accueil
_5/12/13_
 Ajout de la possibilité d'annuler un giveaway pour les auteurs (non admins). Prise en compte des giveaways de plusieurs copies pour calculer la contribution.
_19/11/13_
 Séparation visuelle des règles et de la description.
_18/11/13_
 Ajout d'une fonction de recherche d'images sur la page de création d'un giveaway.
_10/11/13_
 Ajout d'une fonction de recherche dans les anciens giveaways.
_23/10/13_ (Flubber update)
 Ajout d'un éditeur markdown pour faciliter le formatage des descriptions et commentaires.
_03/10/13_ (Rom1 update)
 Ajout de la possibilité de lier des profils externes sur la page de profil.
_03/10/13_ (Nickocko update)
 Ajout de la possibilité de supprimer ses propres commentaires.
_07/09/13_ (acdctabs update)
 Ajout d'une fonctionnalité permettant d'offrir plusieurs copies d'un même jeu.
_19/08/13_
 Les pages concours et profil sont maintenant publiques
_15/08/13-18/08/13_ (15 aout update)
 Ajout de divers outils admin Lazy load sur les image
_13/08/13_
 Fix : bug qui permettait de s'inscrire plusieurs fois au site avec des comptes google différents.
_10/08/13_
 Ajout de pub pour compenser le coût de l'hébergement. Si il y a du bénéfice, il sera dépensé en cadeaux pour les canards. Ajout d'infos sur le nombre d'éléments dans les onglets. Fix : bug lors du nettoyage des giveaways sans participants.
_04/08/13_
Fix : les concours sont maintenant triés par date.
_16/06/13_ (Thepastisboy update part 2)
 Ajout de la possibilité de mettre des commentaires !
_15/06/13_ (Thepastisboy update)
 Ajout de la F.A.Q. Ajout de la possibilité de modifier l'image de son giveaway Augmentation de la taille limite de la description On peut désormais éditer la description d'un concours On peut mettre en forme la description (https://github.com/samwillis/pagedown-bootstrap)
_25/05/13_
 Résolution de quelques bugs dus à l'utilisation du cache Ajout d'une option admin permettant de relancer un tirage au sort
_12/05/13_
 Lancement de cpcgifts !

Vous pouvez poster vos critiques, améliorations ou bugs trouvés sur ce topic.

----------


## lowg33k

Pour la signature, ça serai déjà pas mal de pouvoir choisir de mettre l'image choisie sous la forme :




> [URL.="url"][IMG]lien de l'image[/IMG][/URL]
> 
> Le "." en moins


.

On peut aussi ajouter deux sous section dans la partie dans l'onglet signature : Une pour une signature avec texte et une avec image !

Pour le code, c'est le même principe que pour celui déjà en place. ( de la concaténation ? )


Edit : illustration de mon idée :



Au niveau code (html) ça ressemblerais à ça : 




> </div>
> 				<div class="tab-pane" id="signature">
>                                 <h4>Signature Texte :</h4>
> 				<p class="well">[url.=http://cpcgifts.appspot.com/giveaway?gaID=xxxx]Nom du concours[/url]</p>
>                                 <h4>Signature Image :</h4>
>                                 <p class="well">[URL.="url"]http://cpcgifts.appspot.com/giveaway?gaID=xxxx[IMG]Lien de l'image[/IMG][/URL]</p>
> 				</div>
> 
> Encore une foix sans les points après les "url" :ninja :

----------


## Calys

Merci lowg33k, c'est modifié.

J'aurais pu y penser plus tôt, ce que je peux être con des fois  ::P:

----------


## nesquik

Je crois qu'il y a un loup avec une DIV au niveau de l'image du jeu et le titre quand on réduit horizontalement la fenetre du navigateur (testé sous chrome et firefox) :

----------


## Calys

C'est noté, merci nesquik.

----------


## Louck

Par curiosité: Pourquoi avoir fait ce projet en Java ?
Je ne suis pas contre le langage, mais ce n'est pas trop "lourd" pour ce genre de projet ? Du PHP avec Zend ou du Python avec Django, ca peut mieux le faire je trouve. Ce projet n'en demande pas autant  ::): .

Enfin ce n'est qu'une remarque totalement personnelle.

----------


## lowg33k

L'autre défaut est que ( je pense ) un majorité connaitra les rudiments du HTML/CSS et parfois PHP mais mais du tout le Javascript et ne pourrons que vaguement aider... 

Après je prend peut-être mon cas pour une généralitée mais mes connaissances me permettant de traiter html ( et donc css ) et PHP donc j'ai une vague idée d'où viens tel ou tel problème sans pour autant comprendre une ligne du code de Bastien  ::P:

----------


## Louck

> mais mais du tout le Javascript et ne pourrons que vaguement aider...


Je parle du langage *Java* et non du script *Javascript*  ::P: .

----------


## Calys

> Par curiosité: Pourquoi avoir fait ce projet en Java ?
> Je ne suis pas contre le langage, mais ce n'est pas trop "lourd" pour ce genre de projet ? Du PHP avec Zend ou du Python avec Django, ca peut mieux le faire je trouve. Ce projet n'en demande pas autant .
> 
> Enfin ce n'est qu'une remarque totalement personnelle.


Ça faisait longtemps que j'avais envie de voir ce que le google app engine avait dans le ventre et j'ai sauté sur l'occasion tout simplement.

J'avais commencé le projet avec le GAE Python pour changer un peu par rapport à ce que je fait au boulot et finalement, quand j'ai vu que je mettait une heure à faire ce que j'aurais fait en 5min en java, j'ai préféré me rabattre sur le GAE Java.

Après, pour ce qui est de la lourdeur je m'en fout tant que c'est Google qui fait tourner l'appli, et gratuitement en plus.

----------


## Louck

Ah en effet, google aide pas mal  ::P: .

Je ne connais pas concernant GAE Python. Je ne connais que Django, que je trouve génial comme framework (à part qu'il faut tout le temps spécifier les routes dans un fichier). Mais c'est une autre façon de coder.

----------


## RaSh

Effectivement, en PHP je m'y serais bien penché  ::P: 

Je connais strictement rien du Java ni du Python (ça mord ces choses là?)
Et je connaissais meme pas GAE  ::o:  Si ya un GAE PHP je vais m'y coller !!  ::o:

----------


## Calys

Nope, pas de GAE php, c'est pas grave si vous pouvez pas aider hein  :;): 

Après en php il y a le système de signatures à faire si tu sait manipuler et générer des images en php. deathdigger est déjà dessus mais peut être qu'il peut être aidé.

C'est en php car le GAE ne permet pas de manipuler/générer des images qui pourraient faire de belles signatures comme sur steamgifts.

----------


## nesquik

Salut, 

Merci d'avoir résolu le bug d'affichage quand on réduit la fenêtre de la page d'affichage d'un concours.
J'ai créé un concours (metro 2033), mais il n'apparait pas dans mes concours créés. Normal ? Il sera affiché quand la date de fin sera atteinte ?

----------


## Calys

Salut nesquik,

c'est celui là le concours : http://cpcgifts.appspot.com/giveaway?gaID=49003 ou tu en à créé un deuxième ?

Chez moi il apparaît bien dans la liste des concours créés : http://cpcgifts.appspot.com/user?userID=48002#created

Sinon pour les nouveaux concours créés c'est normal, à cause du cache ils peuvent mettre quelques secondes avant d'apparaître sur la page d'accueil et jusqu'à une heure avant que la page profil soit mise à jour.

----------


## nesquik

> Salut nesquik,
> 
> c'est celui là le concours : http://cpcgifts.appspot.com/giveaway?gaID=49003  ?


Oui c'est celui là, concours créé y a 2 jours.

Je viens de voir que je n'ai pas ce prob avec Firefox mais avec Chrome.



J'ai fait une déconnexion/reco, le prob persiste.

----------


## AliloH

Je poste ca juste pour info, le site marche sur tout mes navigateurs (IE, FF, Chrome) mais ne marche plus du tout sous Opera depuis la maj d'il y a quelques jours, il est passé de la version 12 a la 15 avec un paquet de changements radicaux d'un coups donc j'imagine que c'est lié a ca mais bon je t'en informe quand même histoire de  ::):

----------


## Calys

Merci AliloH, c'est noté  :;):

----------


## Batto

Tiens, je découvre ce topic (alors que je suis pas mal le topic des canards généreux).

Bref, je me débrouille en Java (en gros, c'est mon boulot  ::P: ). Je n'ai pas encore regardé en détail, mais s'il te faut un coup de main là dedans, je peux te le proposer  :;):

----------


## Calys

Super, un canard généreux et développeur  ::lol:: 

Hé bien, si tu as le temps et que tu es motivé tu peux déjà essayer de faire tourner le bouzin chez toi  :;): 

Le code source est sur github et voici un excellent tuto si tu ne connais pas le google app engine. (PS : si tu à déjà eclipse d'installé chez toi, je te conseille d'en utiliser un nouveau dédié au GAE, chez moi le plugin google fait ramer eclipse à mort  ::P:  )

Si tu as des soucis pour faire tourner le projet, n'hésite pas à poser des questions (dans le topic de préférence, ça pourra servir à d'autres contributeurs).

Ensuite pour ce qui est du coup de main, je ne me suis jamais senti l'âme d'un chef de projet, donc je ne dirais jamais à quelqu'un ce qu'il doit faire (surtout pour une contribution volontaire). La liste des bugs et des fonctionnalités à ajouter est dans le premier post, à toi de voir ce qui te plairai le plus ou te semble le plus simple.

Si tu as des idées de nouvelles fonctionnalités je suis aussi ouvert.

Préviens moi quand même sur quoi tu compte bosser, je pourrais te guider sur les classes à modifier (ce qui t'évitera de chercher à comprendre mon architecture pseudo-MVC à la mord moi le n'oeil  ::P:  ) et ça nous évitera de travailler sur la même chose inutilement.

----------


## Batto

Haha  ::P: 

Bon ben je vais essayer de faire ça demain tiens. Pour info, tu as utilisé quelle version d'Eclipse? Pour un projet comme celui-ci, je ne pense pas que ça ait une grande importance, mais on ne sait jamais (on a eu quelques soucis au boulot quand on est passé de Galileo à Indigo).

Je te fais signe quand j'arriverai à lancer le truc  :;):

----------


## Calys

J'ai utilisé la dernière version (Juno) mais comme tu dis je ne pense pas que ça ait de l'importance.

Et je viens de remarquer que la version française du tuto n'est pas très à jour. La version anglaise est peut être mieux (https://developers.google.com/appeng...stalling?hl=en).

Merci d'avance pour ton aide

PS : je n'ai pas beaucoup de temps libre en ce moment, alors si tu poste sur le forum, ne t'attends pas à une réponse rapide  ::P: 

EDIT : avant dernière version

----------


## Batto

Bon, comme un con, je me suis dit que j'allais déjà voir la gueule du truc sur l'Eclipse que j'avais d'installé (celui pour le boulot donc).
Résultat, le plugin google vient de me flinguer Eclipse qui ne démarre plus :D

On va retenter avec un nouvel Eclipse du coup (Kepler, carrément, parce que je suis un ouf).

----------


## Calys

Bah, je t'avais pourtant prévenu  ::P: 

Pas sûr que le plugin soit compatible avec Kepler, sur la page de google, la version la plus récente indiquée est Juno.

----------


## SalePingouin

Y'a cette page là qui est plus récente, avec les bonnes url.

Et ça ça m'a aidé aussi, une fois les sources récupérées (s'il y a d'autres personnes pas trop habituées à Eclipse).

----------


## lowg33k

Dit bastien, le gae Php est il public maintenant ? J'ai la chance d'avoir accé à la bêta du gae php ( à croire qu'ils le donnaient sur demande !  ::P:  ) et je me demandais si tu y avais accé aussi.

Si oui, je veux bien plancher sur le système de signature !! ( pour me faire la main sur gd2  :^_^:  )



*Edit pour probleme de bug !*

En voulant ajouter un commentaire, j'ai obtenu ce message d'erreur :




> Error: HTTP method GET is not supported by this URL


Sur cette page : http://cpcgifts.appspot.com/editga

La page a bloqué pendant son chargement et c'est en rafraichissant que j'ai eu le problème !

----------


## Calys

Je ne sais pas si il est public et si j'ai accès à la beta mais il est impossible de mélanger de technos (java et php par exemple) pour une seule application. Et je ne sais pas si j'ai moyen de te donner accès à la BD de cpcgifts depuis une application externe (au pire je peux te donner accès en lecture en te renvoyant les données en json ou xml, mais à ce moment plus besoin de GAE, tu peux l'héberger n'importe où).

En plus ils ont peut être enlevé les bibliothèques graphiques de PHP dans le GAE, comme ils l'ont fait avec celles de Java.

Concernant le message d'erreur, c'est normal d'avoir cette erreur en rafraichissant dessus, elle n'est censée servir que les requêtes de commentaires et d'édition de concours. Par contre je ne sait pas pourquoi elle à bloqué, je n'ai aucune trace d'erreurs dans les logs, peut être qu'un serveur de google était indisponible à ce moment... Merci quand même pour les retours  :;):

----------


## gros_bidule

Tu peux utiliser Quercus (http://quercus.caucho.com/, liens de DL en bas de page) si tu veux mélanger Java, JSP et PHP.

Sinon beau projet ! Je le découvre à l'instant.

----------


## Calys

Merci pour l'idée gros_bidule, ça semble pouvoir fonctionner sur le Google App Engine, je m'y pencherais quand j'aurais le temps  :;):

----------


## lowg33k

> Je ne sais pas si il est public et si j'ai accès à la beta mais il est impossible de mélanger de technos (java et php par exemple) pour une seule application. Et je ne sais pas si j'ai moyen de te donner accès à la BD de cpcgifts depuis une application externe (au pire je peux te donner accès en lecture en te renvoyant les données en json ou xml, mais à ce moment plus besoin de GAE, tu peux l'héberger n'importe où).
> 
> En plus ils ont peut être enlevé les bibliothèques graphiques de PHP dans le GAE, comme ils l'ont fait avec celles de Java.


nope, gd est bien activé sur le gae php ! L'avantage d'utiliser le gae est d'avoir un hébergement gratos avec gd activé ( :grosrat: ).

Par contre si php et java ne peuvent pas cohabiter c'est plus chiant ( et en même temps c'est logique  :^_^:  ). De toute façon je fait ça de mon côté et après on vois si on l'intègre ou pas  :;):

----------


## Calys

OK, merci pour ton aide lowg33k  :;):

----------


## lowg33k

Rapport de première aprem d'étude !

Je part pour le moment sur un clone ( en moins beau pour le moment faute de mieux que paint version xp ) du système de signature cpc gifts.  Des que ce sera fonctionnel, je plancherai sur le point du look du bouzzin !

Niveau transmission de donnés, je pars sur des variables transmises par url et récupérées par $_get[' '].  Du coup ça fait des urls à rallonge ( très longues les rallonges  ::P:  ).

Données à insérer dans l'url :

- titre du ga
- image du jeu
- image de profil du créateur

Puis par la suite : date de fin ansi que l'heure de fin pour faire un timer !

Pour un premier aperçu : skywebfusion.appspot.com/?id= tu peux tester en rajoutant un lien vers une image en .jpg ( je n'ai pas encore fait les regex pour verifier l'extension de l'image ).

Il y à un décalage de plusieurs px que je n'ai pas encore corrigé du coup l'image de profil se met pas dans son trou ^^

----------


## Calys

Excellent, c'est déjà un très bon début  ::wub:: 

Pour les url, ça tombe bien, c'est comme ça que je l'avais prévu à la base. C'est je pense le plus simple à mettre en oeuvre.

Par contre pour l'url des images on aura surement à les encoder (avec urlencode par exemple) car les url qui utilisent des paramètres (avec *?* et *&*) risquent de mettre le boxon.

----------


## lowg33k

> Excellent, c'est déjà un très bon début 
> 
> Pour les url, ça tombe bien, c'est comme ça que je l'avais prévu à la base. C'est je pense le plus simple à mettre en oeuvre.
> 
> Par contre pour l'url des images on aura surement à les encoder (avec urlencode par exemple) car les url qui utilisent des paramètres (avec *?* et *&*) risquent de mettre le boxon.


Je pense partir sur de l'url rewritting par fichier .htacces avec les regex ! L'ayant déjà fait sur le site d'un pote, je connais déjà  ::P:

----------


## lowg33k

Edit du matin :

j'ai créé un nouveau nom de domaine pour les signatures : http://testgd-1.appspot.com/. Je finirai pas uploader le tout en prenant un url plus proche de celui de cpcgifts ! ( http://signatures-cpcgifts.appspot.com/ déjà reservé )

Support des images au format : .jpg / .png / .gif  

Je pense que le .gif est le plus courant étant donné que c'est le format des images de profil sur le forum  :^_^: 
Dit moi si il existe d'autres formats  :;):

----------


## Calys

C'est ok pour les formats, ce sont les 3 les plus répandus et les seuls à être compatible avec tout les navigateurs  :;): 

Bon courage

----------


## lowg33k

ça y est j'ai un problème !  ::P: 

Les images steam ne passent pas ! J'avais mis un regex qui controlais la fin de la chaine de caractère :




> if(preg_match("#.jpg$#i", $logo)) {     $profil = imagecreatefromjpeg($logo);   }


Les url steam sont de la forme : 

Du coup j'ai changé le code en :




> if(preg_match("#.jpg#i", $logo)) {     $profil = imagecreatefromjpeg($logo);   }


Mais ça ne marche pas... ça me retourne une image noire ( correspondant a une variable vide )

comme ça :



J'ai aussi quelques soucis avec certaines images de profil en .gif qui renvoient un carré noire aussi... 

Des idées ??



Sinon en resutat final ( en test toujours ):

Variables jeu et createur definies :



Aucunes des deux definies :



Une seule :





Je jouerai sur la transparence et augmenterai la résolution quand j'aurais autre chose que paint  ::P:

----------


## alx

J'ai l'impression que je ne suis pas dans la liste des users sur le site cpcgifts, alors que mon compte fonctionne... Je ne sais pas si c'est normal  ::unsure::

----------


## lowg33k

> J'ai l'impression que je ne suis pas dans la liste des users sur le site cpcgifts, alors que mon compte fonctionne... Je ne sais pas si c'est normal


Si SI, un coup de ctrl-F et tu verra que tu y est bien  ::P:

----------


## alx

Oops !

----------


## Calys

Oui, l'ordre alphabétique de la liste est un peu particulier.

C'est les majuscules au début, et les minuscules après  ::rolleyes:: 

@lowg33k : désolé mais je connais trop peu php et ce type de regex (c'est du PCRE ?) pour t'aider sur ce problème  ::sad:: 

Espérons que quelqu'un qui s'y connait mieux que moi en PHP passes par là pour te débloquer...

----------


## gros_bidule

Les joies du tri en Java, Majs en premier, Mins ensuite.
Pour y remédier super simplement tu pourrais redéfinir le compareTo de tes éléments et renvoyant le compareTo de la chaine (et argument) en uppercase, par exemple.

Je me demande pourquoi ça n'a toujours pas été ajouté dans les paquetages standards...  ::P:

----------


## Harest

Java ? Nothing to do here.

Sinon Lowgeek pour les urls Steam t'as essayé de simplement faire sauter les paramètres d'url passés ? Y'a un ?t=... souvent. Ça peut peut-être poser problème. Par contre faudrait un graphiste là histoire de faire un truc à peut près joli du genre de Steamgifts o/.

----------


## lowg33k

> Sinon Lowgeek pour les urls Steam t'as essayé de simplement faire sauter les paramètres d'url passés ? Y'a un ?t=... souvent. Ça peut peut-être poser problème.


Niquel ! Merci pour le tuyau, ça marche du tonnerre  :;): 




> Par contre faudrait un graphiste là histoire de faire un truc à peut près joli du genre de Steamgifts o/.


Un graphiste, pas forcement... le cadre actuel à été fait sous paint... ( pas parce que c'est à la mode mais parce que j'avais que ça ). Je vais refaire tout ça avec un vrai editeur et quand je me serai rendu compte que je suis nul on verra  ::P:

----------


## lowg33k

taaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa !!!!!!

Mauvais ou vraiment mauvais ( ou pire ? )

 ::ninja::

----------


## lowg33k

Je met le code actuel de la signature à disposition pour que d'éventuelles personnes de passage puisse y jeter un coup de d'oeil  :;): 



```

<?php
header ("Content-type: image/png");
 $lienlogo = $_GET['logo'];
$lienjeu = $_GET['jeu'];
  $destination = imagecreatefrompng("fond.png");
   //on rend le blanc transparent
 $white = imagecolorallocate($destination, 255, 255, 255);
imagecolortransparent($destination, $white);
    // vérif format image de profil
 if(preg_match("#.jpg$#i", $lienlogo)) { $logo = imagecreatefromjpeg($lienlogo); }
if(preg_match("#.png$#i", $lienlogo)) { $logo = imagecreatefrompng($lienlogo); }
if(preg_match("#.gif$#i", $lienlogo)) { $logo = imagecreatefromgif($lienlogo); }
   // vérif format image du jeu
 if(preg_match("#.jpg$#i", $lienjeu)) { $jeu = imagecreatefromjpeg($lienjeu); }
if(preg_match("#.png$#i", $lienjeu)) { $jeu = imagecreatefrompng($lienjeu); }
if(preg_match("#.gif$#i", $lienjeu)) { $jeu = imagecreatefromgif($lienjeu); }
   $mini = imagecreatetruecolor(122, 122);   // destination de l'image de profil redimensionnée
 $minijeu = imagecreatetruecolor(274, 122);   // destination de l'image du jeu redimensionnée
      // - début - redimenssionage de l'image de profil
 $largeur_source = imagesx($logo);
$hauteur_source = imagesy($logo);
$largeur_destination = imagesx($mini);
$hauteur_destination = imagesy($mini);
 imagecopyresampled($mini, $logo, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
 // - fin - redimenssionage de l'image de profil
       // - début - insertion de l'image de profil redimenssionnée dans le cadre
 $largeur_source = imagesx($mini);
$hauteur_source = imagesy($mini);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);
 $destination_x = 1;
$destination_y =  1;
 imagecopymerge($destination, $mini, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 100);
 // - fin - insertion de l'image de profil redimenssionnée dans le cadre
      // - début - redimenssionage de l'image du jeu
 $largeur_source = imagesx($jeu);
$hauteur_source = imagesy($jeu);
$largeur_destination = imagesx($minijeu);
$hauteur_destination = imagesy($minijeu);
 imagecopyresampled($minijeu, $jeu, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
 // - fin - redimenssionage de l'image du jeu
      // - début - insertion de l'image du jeu redimenssionnée dans le cadre
 $largeur_source = imagesx($minijeu);
$hauteur_source = imagesy($minijeu);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);
 $destination_x = 131;
$destination_y =  1;
 imagecopymerge($destination, $minijeu, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 100);
 // - fin - insertion de l'image du jeu redimenssionnée dans le cadre
     // on affiche ( enfin... ) l'image générée
 imagepng($destination);


```

Je n'ai pas du tout bossé dessus depuis mon dernier post mais ça ne devrai pas tarder à réavancer  ::rolleyes::

----------


## Fabiolo

Salut

Serait-il possible d'avoir une page web qui liste tous les gifts déjà passés (du moins sur le dernier mois). Histoire de pas gifter un truc qui est déjà passé 10 fois dans le mois sans avoir à relire 15 pages de topic sur le forum.

Bon je dis ça, c'est pas moi qui va le coder, mais bon, si quelqu'un s'ennuie....

----------


## Calys

Il y a déjà un champ de recherche en bas de la page d'accueil.
Tu peux rechercher le nom du jeu, trier par date, et même voir le nombre de participants pour voir si ça intéresse du monde ou pas  :;):

----------


## Fabiolo

Ah oui j'avais pas vu effectivement.

Du coup pourquoi ne pas placer la fenêtre de recherche tout en haut du site? plutôt que d'avoir à scroller tout en bas? ça serait plus pratique non?

Ou sinon une option permettant de classer les concours sur la home par nom/date de création? en plus du classement actuel en fonction du temps restant. Certes on peut classer dans la recherche, mais cela peut être intéressant de classer ce qu'il y a sur la home sans faire de recherche aussi.

----------


## Harest

Ouai enfin la fenêtre de recherche c'est Google, autant dire que c'est pas le plus opti  :^_^: . Une requête serait bien plus efficace pour avoir quelque chose de correct. Pour ça aussi que c'est tout en bas j'imagine.

----------


## Calys

Voilà, comme le dit Harest, la recherche google c'est le plus simple à mettre en place, mais pas le plus adapté.

Si un jour je m'ennuie (ou si quelqu'un m'aide sur le dev) on aura peut être une fonction comme tu la décrit. En attendant c'est la recherche google, et comme c'est pas le mieux, je le cache bien en bas de la page  ::P:

----------


## Fabiolo

ok.

bon après ce que je dis c'est juste des suggestions hein, en aucun cas des requêtes  :;):

----------


## Harest

Y'a eu un changement dernièrement niveau cookies ? Je reste jamais connecté ou presque et c'est bien chiant.

Tout à l'heure je devais me connecter pour poster un commentaire, et en le postant après le clic sur "Connexion" qui m'a automatiquement connecté sans rien demandé (comme souvent), je me suis fait renvoyer sur la homepage, non connecté. J'ai dû me reconnecter pour enfin pouvoir poster ce maudit message o/. Et là je suis à nouveau déconnecté.
_Je t'aiderais bien mais je ne touche pas au Java moi ._

Edit @Dessous : Mokay :/. J'ai cru que ça pouvait être un soucis lié à Firefox suite à mon clonage de disque et une potentielle corruption de la "bdd" des cookies mais bon... Je sais que dernièrement j'ai le même soucis avec Steam dans le navigateur. Le reste ça va impec.

----------


## Calys

Je n'ai rien changé en ce qui concerne les cookies car ils sont gérés directement par google, et la durée de conservation est toujours réglée sur 2 semaines.
Par contre il a du y avoir un changement de leur côté car j'ai aussi ce problème  ::sad:: . Peut être une mise à jour de sécurité de leur part, j'ai remarqué que de me connecter depuis un autre PC déconnectait automatiquement mon compte google du premier (même pour youtube et les autres applis google).

----------


## Fabiolo

Je viens de penser à un truc.

Y aurait moyens de pouvoir relancer un concours?

Par exemple dans le cas où il y a 0 participants, et qu'on veut relancer le concours fermé un mois après. Une case à cocher pour "relancer" ou  un truc comme ça pour éviter d'en avoir à ouvrir un autre.

Enfin si c'est pas contraignant à faire, parce que sinon on peut tjs le recréer mais bon...

----------


## Calys

J'y avais pensé, mais quasiment tout les gifts que j'ai relancé n'ont pas intéressé plus de monde que la première fois, même plusieurs mois après/sur une durée plus longue.

En plus les giveway qui se terminent avec 0 participants sont supprimés automatiquement pour ne pas surcharger les pages/la base de donnée avec trouze mille relances du même gift.

----------


## Harest

Dommage qu'ils soient supprimés d'ailleurs on a plus l'historique complet du coup. Et niveau surcharge de base de données mouais... C'est une base de 50 Mo que Google donne ou quoi ? xD Avoir plusieurs millions d'enregistrements ça passe sans problème. Là on en est bien loin. Je doute que la suppression soit nécessaire du coup. Après ouais relancer un gift sans participant ça servira probablement à rien, mieux vaut le donner sur Steamgifts en public ou sur le topic des dons ici.

Sinon je crois que c'était passé inaperçu mais ta recherche ne fonctionne pas correctement à priori. En tout cas en voulant chercher le gift Shelter par exemple qui va jusqu'au 20/12, il ne trouve rien. Ça ne fonctionne que sur des gifts plus récents peut-être avec un ajout de mots clefs lors de la création d'un gift ?

----------


## Fabiolo

Oui je comprends.

----------


## Calys

> Dommage qu'ils soient supprimés d'ailleurs on a plus l'historique complet du coup. Et niveau surcharge de base de données mouais... C'est une base de 50 Mo que Google donne ou quoi ? xD Avoir plusieurs millions d'enregistrements ça passe sans problème. Là on en est bien loin. Je doute que la suppression soit nécessaire du coup. Après ouais relancer un gift sans participant ça servira probablement à rien, mieux vaut le donner sur Steamgifts en public ou sur le topic des dons ici.
> 
> Sinon je crois que c'était passé inaperçu mais ta recherche ne fonctionne pas correctement à priori. En tout cas en voulant chercher le gift Shelter par exemple qui va jusqu'au 20/12, il ne trouve rien. Ça ne fonctionne que sur des gifts plus récents peut-être avec un ajout de mots clefs lors de la création d'un gift ?


Google donne 1Go, mais, avec les commentaires et tout ça monte assez vite (j'en suis déjà à 15%) et vu que je ne compte pas, pour le moment, supprimer les gifts trop anciens, je préfère économiser dès maintenant  :;): 

En ce qui concerne la recherche, elle fonctionne mais j'utilise une lib qui privilégie les premiers mots du titre du giveway, du coup pour retrouver shelter il faut taper "advent gifts jour 19 shelter" pour le retrouver. Faut juste que j'augmente un peu le seuil pour avoir un peu plus de résultats.

----------


## SeanRon

petite suggestion : ça serai sympa un moyen de garantir les transactions de clef, ou de bannir les mecs qui tiennent pas leur engagements

Parce que les mecs qui font des concours et qui disent au gagnant du concours: " ha bah non j'ai filé la clef a quelqu'un d'autre " ce n'est pas terrible, si tout le monde se mets à faire ça et s'amusent à participer à tous les concours qui passent à coté...

----------


## Calys

C'est déjà le cas, ceux qui ne tiennent pas leur engagement sont bannis. Il y a un bouton qui permet d'annuler le concours avant la fin, mais si un gagnant est tiré au sort il doit donner le cadeau.

Si ça t'es arrivé, fait moi un mp pour que je mette à jour le site (que ça ne compte pas comme une contrib) et que j'avertisse le canard en question.

----------


## Calys

Alors Harest, pour info j'utilise Bootstrap Markdown (v1.1.4) qui propose l'éditeur markdown qu'on utilise pour les descriptions et commentaires, et qui s'intègre bien dans twitter bootstrap (on s'en serait douté vu le nom  ::P: ).
Pour convertir le markdown en html, il utilise markdown.js (version inconnue).

Le but serait donc :
modifier markdown.js pour qu'il puisse afficher les smileyssi possible, modifier l'éditeur pour permettre de sélectionner les smileys graphiquement comme sur le forum

Si tu te sens plus à l'aise avec une autre implémentation js de markdown, ça ne me pose pas de problème d'en changer, mais il faudrait pouvoir garder un éditeur pour les canards qui ne sont pas familiers avec le markdown.

Voilà, dis moi si tu pense pouvoir faire quelques chose pour que je fasse la demande pour pouvoir utiliser les smileys, et merci de ton aide  :;):

----------


## Harest

Hello,

Manque de bol j'ai chopé une rhino (cimer le pote qui nous invite avec un bon rhum) alors je ne suis pas trop en état de codé mais avec un peu de chance dans 3/4 jours ça sera good. J'ai regardé un peu l'éditeur et markdown.js. Je devrais pas avoir trop de mal à ajouter la conversion des smileys. D'ailleurs on pourrait peut-être en profiter pour ajouter une balide embed ou video histoire de pouvoir mettre des vidéos de présentation des jeux mis en concours entre autres.

Pour l'intégration des smileys dans l'éditeur ça risque d'être un peu plus bordélique, mais bon je verrai bien.

----------


## Calys

Pas de soucis, c'est pas pressé, repose toi bien.

C'est vrai que les vidéos embed sont aussi souvent demandés, ça et les smiley dans markdown.js ça serait déjà super (perso j'utilise quasiment jamais la fenêtre de smiley sur le forum, et je pense que c'est le cas de la plupart des habitués).
Je jetterai aussi un œil à l'éditeur, vu que c'est du bootstrap, je devrais avoir l'habitude.

----------


## AliloH

Je voudrais savoir si il y a moyen de vérifier, valider, confirmer ou modifier la liste des gifts reçus (un truc comme la validation de réception du jeu sur steamgifts quoi).

Je demande ça parce que dans mon cas par exemple y'a un petit paquet de jeux que je n'ai pas récupéré, des doublons parce que j'ai participé a plusieurs gifts qui se chevauchaient dans le temps, jeux que j'ai refusé parce que sur des plateformes qui ne m'intéressaient pas (désura pour pas le nommer),  dans tout les situations j'en ai parlé avec le gifteur par mp et il n'y a pas de soucis particulier, c'est juste que ca me bousille littéralement mon compte et je me retrouve avec un tiers des jeux de mon compte que je n'ai jamais activé et qui ont été reroll.


Faut faire quoi dans cette situation ? j'ai pas envie de passer pour le connard qui gratte des jeux (d'ailleurs comment je pourrais profiter de doublons si c'était mon but ?  ::P:  )

----------


## Calys

Non, pas de système de validation comme sur steamgifts de prévu.

Par contre dans ces cas là, il faut contacter un admin en même temps que le gifter, pour qu'on puisse effectuer un reroll ou supprimer le gain au cas où tu serais le seul participant.

----------


## Harest

Je ne suis pas mort, un mois après  ::P: h34r:. Je vais essayer de voir ça dans les prochains jours du coup. Ça risque d'être un peu galère sans environnement de test mais bon je verrai bien ce que je peux faire.

Edit : Diablo 3 est venu foutre la merde  ::P: h34r:.

----------


## SeanRon

Il y a un souci . Quand je clique sur 'mes concours créés/participations/gagnés', je tombe sur un id ( et donc un affichage) qui n'est pas le mien.

----------


## Calys

Tu n'airais pas utilisé cpcgifts avec deux comptes google différent par hasard ? (il y a deux SeanRon sur cpcgifts).

Je te donne plus d'info par mp.

----------


## Harest

Vu que Mister Bastien semble plus présent sur le forum que sur Steam juste 2 petites précisions pour l'intégration de vidéos :
T'as modifié le regex avec trop de caractères du coup si y'a feature dans l'url ça ne marche plus, et ça rend caduque le code qui suit au passage  ::P: . Mets juste youtube à la limite si tu veux limiter ainsi.Dans les IDs des vidéos il y a aussi des tirets, du coup faut ajouter un \- dans le regex.
_
Voilou_

----------


## Calys

> Vu que Mister Bastien semble plus présent sur le forum que sur Steam juste 2 petites précisions pour l'intégration de vidéos :


J'ai plus d'adsl depuis cet après midi  ::sad:: , donc je fais ce que je peux sur la 3G...




> T'as modifié le regex avec trop de caractères du coup si y'a feature dans l'url ça ne marche plus, et ça rend caduque le code qui suit au passage . Mets juste youtube à la limite si tu veux limiter ainsi.


Oui, j'ai remarqué et modifié la regex.






> Dans les IDs des vidéos il y a aussi des tirets, du coup faut ajouter un \- dans le regex.


Je te ferais remarquer que c'était déjà le cas dans le fichier que tu m'as envoyé  ::siffle:: 
Mais j'ajouterais les tirets dès que je peux.

----------


## Harest

Non non, je l'avais oublié  ::P:  :


```
[A-Za-z0-9\=\/\_\.\?\&]+
```

Underscore aka tiret bas != tiret  ::trollface:: .
Pas de bol pour ta connec, gl hf.

Edit : Ah ben tu viens de modifier tout ça, good  :;): .
Si t'as une idée pour les smileys, en faisant un truc à peu près propre... Pas de soucis pour la détection avec les : en gardant les codes du forum, mais faire un tableau de correspondance en JavaScript avec les liens c'est assez sale quand même.

----------


## Diwydiant

Des smileys...

 ::wub:: 

 :Bave:

----------


## archer hawke

Dites j'ai l'impression qu'il y a un bug dans le calcul des gifts créés. J'en suis à 11 alors que sur ma page on en voit 10 et que j'en ai 4 qui on été supprimés car pas de gagnant. Le compteur devrait être soit à 14 soit à 10 selon ce qu'on compte (concours avec gagnant ou pas).

----------


## Calys

> Si t'as une idée pour les smileys, en faisant un truc à peu près propre... Pas de soucis pour la détection avec les : en gardant les codes du forum, mais faire un tableau de correspondance en JavaScript avec les liens c'est assez sale quand même.


Tu proposerais quoi qui serait à peu près propre ?
Si c'est une question de maintenabilité, vu que le google app engine oblige à réuploader l'app en entier pour chaque changement, ça ne fait pas de différence que ça soit dans le javascript ou dans un fichier séparé.
Dans tout les cas, pour un ajout/une modification c'est toute l'application qui sera uploadée.

Par contre il faudrait que le tableau de correspondance soit accessible en dehors du scope de bootstrap markdown, comme ça je peux le récupérer dans l'éditeur de texte pour proposer une popup comme on a sur les forums  :;): 

EDIT : pour tester ton code pour les vidéos youtube, j'avais crée un jsfiddle : http://jsfiddle.net/bastien09/Fu46u/1/
Ça pourra te servir pour tester.  Tu peux copier le code en local ou tester en ligne en l'uploadant au même endroit que la dernière fois (ou en changeant l'adresse du "markdown.js" dans External resources).

----------


## Harest

Ben c'est bien le soucis, j'ai pas grand chose là comme ça. De toute façon y'a pas 50 possibilités. Mais d'après ce que tu me dis, se serait mieux d'avoir les correspondances dans la base de données et de les charger sur les pages concernées 1 fois non ? Comme ça tu pourras ajouter des smileys dans la base sans avoir à rebalancer toute l'appli, ce qui est scandaleux au passage ;o.

En gros :
Une table smileys avec les codes identiques à ceux du forum + leur url + un champ statut éventuel, peut-être une table smileys_alias aussi pour tous les codes utilisés pour un même smiley comme ninja = ph34r, etc.Sur les pages des gifts, une requête SQL de récupération des codes / alias / urls pour traitement ensuite via le JS en remplaçant les codes des messages par les urls correspondantes.

----------


## Calys

Non, non, au contraire  ::o: 

Alors pour les mettre dans la base de donnée, on va éviter, déjà je frôle les limites de quota gratuit pour l'utilisation de la BD, et en plus je ne compte pas ajouter de nouveaux smiley tous les quatre matins  ::P: 

Ce que je voulais dire, c'est que quitte à réuploader toute l'appli, la solution du tableau de correspondance en javascript n'est peut être pas si sale que ça.
Autant aller au plus simple, même si en théorie c'est plus propre de mettre ça dans un fichier json,xml ou autre, dans la pratique (et dans le cas particulier du google app engine) ça ne fera pas vraiment de différence.

----------


## Harest

Ah, ben si c'est que ça oui on peut faire un fichier xml pour ça. Apparemment jQuery est intégré sur CPCGifts, me semble qu'il y a déjà un parser inclus non ? Apparemment oui. Avec des guides un peu plus complets, comme celui-ci par exemple. J'ai tellement plus codé depuis des années, surtout du jQuery que j'ai plus grand chose en mémoire  ::P: h34r:.

Donc ouais, un fichier XML avec tous les smileys (code, url, aliases), un parser qui balance ça dans un tableau JS et après y'a plus qu'à traiter ça dans le markdown et toi tu ferais le tooltip smileys dans l'éditeur ?
Ça peut se tenter.

----------


## Calys

En fait j'aurais juste besoin que tu implémente la conversion code->alias dans markdown (je ne me suis toujours pas penché sur son code, donc tu dois le connaitre mieux que moi  :;): ).
Vu que j'ai plus l'habitude avec jquery, je m'occuperai de tout le reste (json, parser, etc. et l'éditeur qui viendra peut être un peu après...)

Si tu veux commencer rapidement, tu peux créer un petit tableau js à la main avec deux trois exemples de smiley, et je le remplacerai par les données du parser ensuite.

----------


## Harest

Ah, ben ça marche alors, je vais voir ça asap. On modifiera peut-être les codes de certains smileys en les entourant de *:* s'ils en ont pas histoire de simplifier l'intégration par contre. Et outre la simplification c'est presque une obligation j'crois. Markdown n'est pas trop fait pour gérer des schémas variables sur un même type d'éléments.

----------


## Calys

Super, merci pour ton aide  ::lol:: 

Pour les *:* qui entourent les sileys, c'est pas trop grave, juste une habitude à prendre.

----------


## Harest

Globalement ça ne concernera que 2 ou 3 smileys donc rien de bien grave. Faut que je vois si je peux prendre avec le :, le ; et le B parce qu'en ne pourra pas entourer  :;):  et  :B):  avec *:*, ça serait merdique. C'est juste les  :<_<:  et  :^_^:  par exemple. Mais les autres smileys y'aura pas de soucis vu qu'ils commencent par *:* en principe. Faut juste que j'arrive à les extraire vu que contrairement à une balise video par exemple où il y a un crochet fermant, ici y'aura soit les *:* de fermeture, soit rien pour les smileys classiques  ::):   ::o:  etc.

----------


## archer hawke

Yo! Je viens de voir que sur l'ajout des comptes (enfin testé qu'avec steam) si tu mets pas le "http://" ça marche pas, enfin ça le considère comme un page du site quoi.

----------


## Calys

Bien vu  :;): 

Bon, c'est vraiment mineur comme problème, mais c'est noté  ::):

----------


## Nirm

Salut Bastien,

Il me semble que le lien vers le topic CPC sur cette page pointe vers la V3 et non la V4 (§Comment transmettre son cadeau au gagnant ?).

----------


## Calys

Spoiler Alert! 


C'est à cause du flood, j'arrive plus à suivre les changements de topic 

 ::ninja:: 

Merci Nirm, c'est corrigé  :;):

----------


## Chaussette

Salut Bastien,

Dis voir, j'ai eu un bug très bizarre ce matin ! Je me suis inscrit à un gift (celui-ci), et quelques secondes plus tard j'ai vu que j'étais connecté en 'Rayul' et pas en 'Chaussette' (haha) !!!

Le détail est que je ne le connait absolument pas !

J'ai vérifié, et j'ai pu aller sur son compte CPCGift vraiment comme si j'étais connecté avec son compte gmail. Du coup, je me suis déconnecté et reconnecté, et ça a corrigé le soucis.

Par contre, il reste qu'il est inscrit par ma faute et j'ai posté un commentaire en son nom sur le gift susmentionné... Et là, évidemment, je ne peux plus corriger le truc du coup..  ::(:

----------


## hackeroffshore

> Salut Bastien,
> 
> Dis voir, j'ai eu un bug très bizarre ce matin ! Je me suis inscrit à un gift (celui-ci), et quelques secondes plus tard j'ai vu que j'étais connecté en 'Rayul' et pas en 'Chaussette' (haha) !!!
> 
> Le détail est que je ne le connait absolument pas !
> 
> J'ai vérifié, et j'ai pu aller sur son compte CPCGift vraiment comme si j'étais connecté avec son compte gmail. Du coup, je me suis déconnecté et reconnecté, et ça a corrigé le soucis.
> 
> Par contre, il reste qu'il est inscrit par ma faute et j'ai posté un commentaire en son nom sur le gift susmentionné... Et là, évidemment, je ne peux plus corriger le truc du coup..


J'ai eu le même problème et sans m'en rendre compte j'ai(aussi) posté un message sous son pseudo

----------


## Harest

Tiens, c'est un problème qu ia déjà eu lieu y'a un moment. C'est space quand même, à l'époque avec PHP y'avait de sacrés merdes avec register_globals sur On où une variable était égale à une autre.. Pour ceux qui connaissent : 

```
$pseudo == $_GET['pseudo'] == $_POST['pseudo'] == $_SESSION['pseudo']
```

Une vraie merde en somme.
Là le site est codé en Java avec Google App Engine. Je ne sais pas s'il peut y avoir des problèmes similaires du coup ou non. Bizarre surtout que ça refasse surface là comme ça sans raison particulière.
Edit : Ah oui et ça ne touche que Rayul en fait. Doit y avoir un bug dans la matrice avec son compte. Et pour le coup j'étais aussi Rayul, j'ai déco/reco pour me connecter sur mon compte.
Peut-être un soucis lorsqu'il se reconnecte au site qui ferait qu'il change l'id de session de tout le monde ou autre pour une raison inconnue atm.
Apparemment ça l'étonnait qu'il faille un compte Google pour se connecter, il ne se souvenait plus de ça. Mais du coup il veut plus se reconnecter pour tester et apparemment il va quitter CPCGifts  ::o: .

----------


## Calys

C'est à n'y rien comprendre  ::o: 
J'utilise l'api d'authentification google pour la connexion et celle ci tient en même pas dix lignes, je ne vois pas où j'aurais pu me gourer  ::unsure:: 




```
UserService userService = UserServiceFactory.getUserService(); // je récupère le service utilisateur de l'api google
User user = userService.getCurrentUser(); // je récupère l'objet utilisateur google (identifiant du compte + email)

CpcUser cpcuser = null;

if(userService.isUserLoggedIn()) {
      cpcuser = CpcUserPersistance.getCpcUser(user.getUserId()); // je fait la correspondance entre l'id du compte google et l'utilisateur stocké dans la BDD
}
//pour ceux qui s’inquiéteraient, l'id du compte google != l'id utilisé pour les urls (attention, ce n'est pas le cas de toutes les applications qui utilisent "sign in with google").
```

----------

