
commit
7983a392f5
262 changed files with 7345 additions and 0 deletions
@ -0,0 +1,262 @@
|
||||
* text=auto !eol |
||||
/_REGLES_DE_COMMIT.txt -text |
||||
base/jeux_ajouter_resultat.php -text |
||||
base/jeux_compacter.php -text |
||||
base/jeux_modifier_statut.php -text |
||||
base/jeux_supprimer.php -text |
||||
base/jeux_tables.php -text |
||||
base/jeux_upgrade.php -text |
||||
exec/inc_boites_infos.php -text |
||||
exec/jeux_edit.php -text |
||||
exec/jeux_gerer_resultats.php -text |
||||
exec/jeux_resultats_auteur.php -text |
||||
exec/jeux_resultats_jeu.php -text |
||||
exec/jeux_tous.php -text |
||||
exec/jeux_voir.php -text |
||||
fonds/auteur_details.html -text |
||||
fonds/bouton_corriger.html -text |
||||
fonds/bouton_recommencer.html -text |
||||
fonds/bouton_reinitialiser.html -text |
||||
fonds/bouton_rejouer.html -text |
||||
fonds/cfg_jeux.html -text |
||||
fonds/jeu_details.html -text |
||||
fonds/jeu_score.html -text |
||||
fonds/jeux_boites_infos.html -text |
||||
fonds/jeux_compacter.html -text |
||||
fonds/jeux_edit.html -text |
||||
fonds/jeux_tous.html -text |
||||
fonds/jeux_voir.html -text |
||||
fonds/resultats.html -text |
||||
fonds/resultats_auteur_lien.html -text |
||||
/gpl_fr.txt -text |
||||
icones_barre/jeu-16.png -text |
||||
img/diag_echecs29/bb.gif -text |
||||
img/diag_echecs29/bb.png -text |
||||
img/diag_echecs29/bk.gif -text |
||||
img/diag_echecs29/bk.png -text |
||||
img/diag_echecs29/bn.gif -text |
||||
img/diag_echecs29/bn.png -text |
||||
img/diag_echecs29/bp.gif -text |
||||
img/diag_echecs29/bp.png -text |
||||
img/diag_echecs29/bq.gif -text |
||||
img/diag_echecs29/bq.png -text |
||||
img/diag_echecs29/br.gif -text |
||||
img/diag_echecs29/br.png -text |
||||
img/diag_echecs29/wb.gif -text |
||||
img/diag_echecs29/wb.png -text |
||||
img/diag_echecs29/wk.gif -text |
||||
img/diag_echecs29/wk.png -text |
||||
img/diag_echecs29/wn.gif -text |
||||
img/diag_echecs29/wn.png -text |
||||
img/diag_echecs29/wp.gif -text |
||||
img/diag_echecs29/wp.png -text |
||||
img/diag_echecs29/wq.gif -text |
||||
img/diag_echecs29/wq.png -text |
||||
img/diag_echecs29/wr.gif -text |
||||
img/diag_echecs29/wr.png -text |
||||
img/diag_echecs35/bb.gif -text |
||||
img/diag_echecs35/bb.png -text |
||||
img/diag_echecs35/bk.gif -text |
||||
img/diag_echecs35/bk.png -text |
||||
img/diag_echecs35/bn.gif -text |
||||
img/diag_echecs35/bn.png -text |
||||
img/diag_echecs35/bp.gif -text |
||||
img/diag_echecs35/bp.png -text |
||||
img/diag_echecs35/bq.gif -text |
||||
img/diag_echecs35/bq.png -text |
||||
img/diag_echecs35/br.gif -text |
||||
img/diag_echecs35/br.png -text |
||||
img/diag_echecs35/wb.gif -text |
||||
img/diag_echecs35/wb.png -text |
||||
img/diag_echecs35/wk.gif -text |
||||
img/diag_echecs35/wk.png -text |
||||
img/diag_echecs35/wn.gif -text |
||||
img/diag_echecs35/wn.png -text |
||||
img/diag_echecs35/wp.gif -text |
||||
img/diag_echecs35/wp.png -text |
||||
img/diag_echecs35/wq.gif -text |
||||
img/diag_echecs35/wq.png -text |
||||
img/diag_echecs35/wr.gif -text |
||||
img/diag_echecs35/wr.png -text |
||||
img/diag_echecs35A/bb.png -text |
||||
img/diag_echecs35A/bk.png -text |
||||
img/diag_echecs35A/bn.png -text |
||||
img/diag_echecs35A/bp.png -text |
||||
img/diag_echecs35A/bq.png -text |
||||
img/diag_echecs35A/br.png -text |
||||
img/diag_echecs35A/wb.png -text |
||||
img/diag_echecs35A/wk.png -text |
||||
img/diag_echecs35A/wn.png -text |
||||
img/diag_echecs35A/wp.png -text |
||||
img/diag_echecs35A/wq.png -text |
||||
img/diag_echecs35A/wr.png -text |
||||
img/diag_echecs35L/bb.png -text |
||||
img/diag_echecs35L/bk.png -text |
||||
img/diag_echecs35L/bn.png -text |
||||
img/diag_echecs35L/bp.png -text |
||||
img/diag_echecs35L/bq.png -text |
||||
img/diag_echecs35L/br.png -text |
||||
img/diag_echecs35L/wb.png -text |
||||
img/diag_echecs35L/wk.png -text |
||||
img/diag_echecs35L/wn.png -text |
||||
img/diag_echecs35L/wp.png -text |
||||
img/diag_echecs35L/wq.png -text |
||||
img/diag_echecs35L/wr.png -text |
||||
img/diag_echecs35M/bb.png -text |
||||
img/diag_echecs35M/bk.png -text |
||||
img/diag_echecs35M/bn.png -text |
||||
img/diag_echecs35M/bp.png -text |
||||
img/diag_echecs35M/bq.png -text |
||||
img/diag_echecs35M/br.png -text |
||||
img/diag_echecs35M/wb.png -text |
||||
img/diag_echecs35M/wk.png -text |
||||
img/diag_echecs35M/wn.png -text |
||||
img/diag_echecs35M/wp.png -text |
||||
img/diag_echecs35M/wq.png -text |
||||
img/diag_echecs35M/wr.png -text |
||||
img/diag_echecs55A/bb.png -text |
||||
img/diag_echecs55A/bk.png -text |
||||
img/diag_echecs55A/bn.png -text |
||||
img/diag_echecs55A/bp.png -text |
||||
img/diag_echecs55A/bq.png -text |
||||
img/diag_echecs55A/br.png -text |
||||
img/diag_echecs55A/wb.png -text |
||||
img/diag_echecs55A/wk.png -text |
||||
img/diag_echecs55A/wn.png -text |
||||
img/diag_echecs55A/wp.png -text |
||||
img/diag_echecs55A/wq.png -text |
||||
img/diag_echecs55A/wr.png -text |
||||
img/diag_echecs55L/bb.png -text |
||||
img/diag_echecs55L/bk.png -text |
||||
img/diag_echecs55L/bn.png -text |
||||
img/diag_echecs55L/bp.png -text |
||||
img/diag_echecs55L/bq.png -text |
||||
img/diag_echecs55L/br.png -text |
||||
img/diag_echecs55L/wb.png -text |
||||
img/diag_echecs55L/wk.png -text |
||||
img/diag_echecs55L/wn.png -text |
||||
img/diag_echecs55L/wp.png -text |
||||
img/diag_echecs55L/wq.png -text |
||||
img/diag_echecs55L/wr.png -text |
||||
img/diag_echecs55M/bb.png -text |
||||
img/diag_echecs55M/bk.png -text |
||||
img/diag_echecs55M/bn.png -text |
||||
img/diag_echecs55M/bp.png -text |
||||
img/diag_echecs55M/bq.png -text |
||||
img/diag_echecs55M/br.png -text |
||||
img/diag_echecs55M/wb.png -text |
||||
img/diag_echecs55M/wk.png -text |
||||
img/diag_echecs55M/wn.png -text |
||||
img/diag_echecs55M/wp.png -text |
||||
img/diag_echecs55M/wq.png -text |
||||
img/diag_echecs55M/wr.png -text |
||||
img/echiquiers/wood35.png -text |
||||
img/echiquiers/wood55.png -text |
||||
img/jeu-16.png -text |
||||
img/jeu-24.png -text |
||||
img/jeu-cfg.png -text |
||||
img/jeu-crayon.png -text |
||||
img/jeu-laurier.png -text |
||||
img/jeu-loupe.png -text |
||||
img/jeu-nouveau.png -text |
||||
img/jeu-voir.png -text |
||||
img/jeux-48.png -text |
||||
img/jeux-tous.png -text |
||||
img/pendu1/config.ini -text |
||||
img/pendu1/pendu0.gif -text |
||||
img/pendu1/pendu1.gif -text |
||||
img/pendu1/pendu2.gif -text |
||||
img/pendu1/pendu3.gif -text |
||||
img/pendu1/pendu4.gif -text |
||||
img/pendu1/pendu5.gif -text |
||||
img/pendu1/pendu6.gif -text |
||||
img/pendu2/config.ini -text |
||||
img/pendu2/pendu0.gif -text |
||||
img/pendu2/pendu1.gif -text |
||||
img/pendu2/pendu10.gif -text |
||||
img/pendu2/pendu2.gif -text |
||||
img/pendu2/pendu3.gif -text |
||||
img/pendu2/pendu4.gif -text |
||||
img/pendu2/pendu5.gif -text |
||||
img/pendu2/pendu6.gif -text |
||||
img/pendu2/pendu7.gif -text |
||||
img/pendu2/pendu8.gif -text |
||||
img/pendu2/pendu9.gif -text |
||||
img/pendu3/A1.gif -text |
||||
img/pendu3/A2.gif -text |
||||
img/pendu3/A3.gif -text |
||||
img/pendu3/A4.gif -text |
||||
img/pendu3/B1.gif -text |
||||
img/pendu3/B2.gif -text |
||||
img/pendu3/B3.gif -text |
||||
img/pendu3/B4.gif -text |
||||
img/pendu3/C1.gif -text |
||||
img/pendu3/C2.gif -text |
||||
img/pendu3/C3.gif -text |
||||
img/pendu3/C4.gif -text |
||||
img/pendu3/config.ini -text |
||||
inc/jeux_autoriser.php -text |
||||
javascript/jeux.js -text |
||||
javascript/mots_croises.js -text |
||||
javascript/pendu.js -text |
||||
javascript/qcm.js -text |
||||
javascript/sudoku.js -text |
||||
/jeu.html -text |
||||
/jeux.css.html -text |
||||
jeux/chesstuff.php -text |
||||
jeux/demineur.todo -text |
||||
jeux/devinettes.php -text |
||||
jeux/diag_echecs.php -text |
||||
jeux/diag_echecs_inc.php -text |
||||
jeux/diag_echecs_init.php -text |
||||
jeux/escalettre.todo -text |
||||
jeux/kakuro.todo -text |
||||
jeux/mots_croises.php -text |
||||
jeux/multi_jeux.php -text |
||||
jeux/pendu.php -text |
||||
jeux/qcm.php -text |
||||
jeux/rebus.todo -text |
||||
jeux/shanghai.todo -text |
||||
jeux/sudoku.php -text |
||||
jeux/textes.php -text |
||||
jeux/trous.html -text |
||||
jeux/trous.php -text |
||||
/jeux_boutons.php -text |
||||
/jeux_config.php -text |
||||
/jeux_fonctions.php -text |
||||
/jeux_options.php -text |
||||
/jeux_pipelines.php -text |
||||
/jeux_resultats_tableau.html -text |
||||
/jeux_utils.php -text |
||||
lang/jeux_de.php -text |
||||
lang/jeux_en.php -text |
||||
lang/jeux_fr.php -text |
||||
lang/jeux_it.php -text |
||||
lang/motscroises_en.php -text |
||||
lang/motscroises_fr.php -text |
||||
lang/motscroises_it.php -text |
||||
lang/paquet-jeux_fr.php -text |
||||
lang/pendu_fr.php -text |
||||
lang/pendu_it.php -text |
||||
lang/qcm_en.php -text |
||||
lang/qcm_fr.php -text |
||||
lang/qcm_it.php -text |
||||
lang/sudoku_en.php -text |
||||
lang/sudoku_fr.php -text |
||||
lang/sudoku_it.php -text |
||||
modeles/auteur_resultats.html -text |
||||
modeles/chesstuff.html -text |
||||
modeles/jeu.html -text |
||||
modeles/jeu_resultats.html -text |
||||
modeles/resultats_tableau.html -text |
||||
modeles/resultats_tableau_totaux.html -text |
||||
/paquet.xml -text |
||||
/plugin.xml -text |
||||
prive/listes/corbeille_jeux.html -text |
||||
styles/mots_croises.css -text |
||||
styles/pendu.css -text |
||||
styles/qcm.css -text |
||||
styles/sudoku.css -text |
||||
styles/trous.css -text |
||||
tests/types_tables_id_jeux.php -text |
||||
vues/jeux_contenu.html -text |
@ -0,0 +1,67 @@
|
||||
Projet : Plugin insรฉrant des jeux divers et variรฉs dans les articles |
||||
Licence : GPL |
||||
Auteurs : Patrice Vanneufville |
||||
patriceยก.!vanneufvilleยก@!laposteยก.!net |
||||
|
||||
Voici les rรจgles ร suivre avant de commiter des modifications sur |
||||
cette branche. |
||||
|
||||
A. Observer le planning de travail. Pour le modifier, proposez-nous vos idรฉes ! |
||||
|
||||
Planning de modification, sans ordre : |
||||
|
||||
1. Prรฉvoir Plusieurs jeux dans une page (en cours...) |
||||
2. Meilleures CSS |
||||
3. AJAX/jQuery |
||||
4. Traductions et ajouts de langues |
||||
5. Statistiques des performances et des timings |
||||
6. Sauvegarde des jeux en cours (utilisateurs identifiรฉs) |
||||
7. Notification par mail |
||||
8. Intรฉgrer Hot Potatoes ? |
||||
9. |
||||
10. D'autres jeux, encore et encore ! |
||||
|
||||
B. Obligation de commenter les commits |
||||
|
||||
Si vous envoyez des modifications, il faut toujours les commenter |
||||
de faรงon "descriptive" et "complรจte" avec l'option -m ou -F du |
||||
commit SVN. |
||||
|
||||
C. Modification du code |
||||
|
||||
Cette version peut รฉvoluer. Si vous avez envie de vous |
||||
retrousser les manches, n'hรฉsitez pas. |
||||
|
||||
Chaque jeu doit รชtre codรฉ dans un fichier sรฉparรฉ du genre inc/monjeu.php |
||||
et une signature doit permettre de le retrouver. |
||||
Voir la fonction jeux($chaine) dans jeux_pipelines.php. |
||||
La syntaxe entre les balises <jeux> et </jeux> doit rester unifiรฉe et |
||||
respecter une certaine cohรฉrence. |
||||
|
||||
Tout le monde ร le droit de faire des modifications. |
||||
|
||||
Toutefois, dans un premier temps, il est souhaitable d'avertir |
||||
les auteurs principaux du projet. Il faut alors, dans le mail, |
||||
envoyer un patch au format "diff -pu", donner une description |
||||
dรฉfendable du bug corrigรฉ et la maniรจre choisie pour le corriger. |
||||
|
||||
En particulier, il faut bien penser ร : |
||||
- dรฉcrire le bug que l'on corrige, |
||||
comment on a choisi de le corriger, |
||||
- dรฉcrire la modification que l'on a faite et pourquoi le |
||||
nouveau code est meilleur que l'ancien (qui n'est certainement |
||||
pas un code parfait de toute faรงon) |
||||
- dรฉcrire la nouvelle fonction, ce quelle apporte ร |
||||
l'utilisateur, les dรฉpendances qu'elle apporte. |
||||
|
||||
|
||||
D. Clartรฉ du code. |
||||
|
||||
Il n'y a actuellement pas de rรจgles prรฉcises d'รฉcriture correcte du |
||||
code. Il faut juste garder du code indentรฉ (i.e. indenter chaque |
||||
fermeture sur une nouvelle ligne pour les gros blocs), en gรฉnรฉral, |
||||
suivre la faรงon dont c'est fait dans les fichiers de base. |
||||
|
||||
Il faut toujours mettre une chaรฎne de documentation quand c'est |
||||
possible et quand on le peut documenter le processus/l'algorithme que |
||||
l'on implรฉmente. |
@ -0,0 +1,63 @@
|
||||
<?php |
||||
function jeux_ajouter_resultat($id_jeu, $resultat, $total, $resultat_long=''){ |
||||
$id_auteur = $GLOBALS["auteur_session"]['id_auteur']; |
||||
if (!$id_auteur) return; |
||||
$requete = sql_fetsel('type_resultat', 'spip_jeux', "id_jeu=$id_jeu"); |
||||
$type_resultat = $requete['type_resultat']; |
||||
// valeurs possibles : 'defaut', 'aucun', 'premier', 'dernier', 'meilleur', 'meilleurs', 'tous' |
||||
if($type_resultat=='defaut') |
||||
$type_resultat = function_exists('lire_config')?lire_config('jeux/type_resultat'):'dernier'; |
||||
// valeurs possibles : 'aucun', 'premier', 'dernier', 'meilleur', 'meilleurs', 'tous' |
||||
if($type_resultat=='aucun') return; |
||||
$resultat = intval($resultat); |
||||
$total = intval($total); |
||||
// un $id_resultat nul entraine une insertion |
||||
// un $id_resultat non nul entraine un remplacement |
||||
$id_resultat = 0; |
||||
|
||||
// on insere ou on remplace ? |
||||
// si on remplace, verifier quel type de resultat : le meilleur, le premier ou le dernier |
||||
$requete = sql_fetsel('resultat_court,total,id_resultat', 'spip_jeux_resultats', "id_jeu=$id_jeu AND id_auteur=$id_auteur"); |
||||
if (($type_resultat!='tous') && $requete) { |
||||
// ici on va probablement remplacer le score en base... |
||||
// valeurs possibles : 'premier', 'dernier', 'meilleur', 'meilleurs' |
||||
$id_resultat = $requete['id_resultat']; |
||||
switch($type_resultat) { |
||||
case 'premier': |
||||
// score present, donc on part |
||||
return; |
||||
case 'dernier': |
||||
// remplacement systematique ici |
||||
break; |
||||
case 'meilleurs': |
||||
// on poursuit avec 'meilleur' et on insere si ok, |
||||
$id_resultat = 0; |
||||
case 'meilleur': |
||||
$resultat_en_base = intval($requete['resultat_court']); |
||||
$total_en_base = intval($requete['total']); |
||||
$score_en_base = !$total_en_base?$resultat_en_base:$resultat_en_base/$total_en_base; |
||||
$score = !$total?$resultat:$resultat/$total; |
||||
// si pas mieux, on part |
||||
if($score_en_base >= $score) return; |
||||
break; |
||||
} |
||||
} |
||||
|
||||
// ca y est, on peut enregistrer le resultat |
||||
jeux_ajouter_resultat_base($id_resultat, $id_jeu, $id_auteur, $resultat, $resultat_long, $total, $type_resultat); |
||||
} |
||||
|
||||
function jeux_ajouter_resultat_base($id_resultat, $id_jeu, $id_auteur, $resultat, $resultat_long, $total, $type_resultat) { |
||||
if($id_resultat) { |
||||
|
||||
sql_updateq('spip_jeux_resultats', array('resultat_court'=>$resultat, 'resultat_long'=>$resultat_long, 'total'=>$total), "id_resultat=$id_resultat"); |
||||
|
||||
spip_log("Le resultat #$id_resultat de l'auteur #$id_auteur au jeu #$id_jeu a ete modifie (type '$type_resultat')",'jeux'); |
||||
} else { |
||||
|
||||
sql_insertq('spip_jeux_resultats', array('id_jeu'=>$id_jeu, 'id_auteur'=>$id_auteur, 'resultat_court'=>$resultat, 'resultat_long'=>$resultat_long, 'total'=>$total)); |
||||
|
||||
spip_log("Le resultat de l'auteur #$id_auteur au jeu #$id_jeu a ete enregistre (type '$type_resultat')",'jeux'); |
||||
} |
||||
} |
||||
?> |
@ -0,0 +1,22 @@
|
||||
<?php |
||||
function jeux_compacter_tout_jeu($id_jeu){ |
||||
include_spip('public/assembler'); |
||||
$liste = recuperer_fond('fonds/jeux_compacter', array('id_jeu'=>$id_jeu)); |
||||
|
||||
sql_delete('spip_jeux_resultats', "id_jeu=$id_jeu AND ".sql_in('id_resultat', $liste, 'NOT')); |
||||
|
||||
} |
||||
|
||||
function jeux_compacter_tout_auteur($id_auteur){ |
||||
include_spip('public/assembler'); |
||||
$liste = recuperer_fond('fonds/jeux_compacter', array('id_auteur'=>$id_auteur)); |
||||
sql_delete('spip_jeux_resultats', "id_auteur=$id_auteur AND ".sql_in('id_resultat', $liste, 'NOT')); |
||||
} |
||||
|
||||
function jeux_compacter_tout_tout(){ |
||||
include_spip('public/assembler'); |
||||
$liste = recuperer_fond('fonds/jeux_compacter'); |
||||
sql_delete('spip_jeux_resultats', sql_in('id_resultat', $liste, 'NOT')); |
||||
|
||||
} |
||||
?> |
@ -0,0 +1,7 @@
|
||||
<?php |
||||
include_spip('inc/utils'); |
||||
function jeu_modifier_statut($id,$statut){ |
||||
sql_updateq("spip_jeux", array('statut'=>$statut), "id_jeu=$id"); |
||||
spip_log("modifier statut jeu$id, $statut",'jeux'); |
||||
} |
||||
?> |
@ -0,0 +1,14 @@
|
||||
<?php |
||||
function jeux_supprimer_tout_jeu($id_jeu){ |
||||
sql_delete('spip_jeux_resultats', "id_jeu=$id_jeu"); |
||||
} |
||||
|
||||
function jeux_supprimer_tout_auteur($id_auteur){ |
||||
sql_delete('spip_jeux_resultats', "id_auteur=$id_auteur"); |
||||
|
||||
} |
||||
|
||||
function jeux_supprimer_tout_tout(){ |
||||
sql_delete('spip_jeux_resultats'); |
||||
} |
||||
?> |
@ -0,0 +1,60 @@
|
||||
<?php |
||||
|
||||
// declaration des tables du plugin jeux // |
||||
global $table_des_tables; |
||||
global $tables_principales; |
||||
include_spip('base/serial'); // pour eviter une reinit posterieure des tables modifiees |
||||
global $tables_jointures; |
||||
|
||||
$table_des_tables['jeux'] = 'jeux'; |
||||
$table_des_tables['jeux_resultats'] = 'jeux_resultats'; |
||||
$jeux = array( |
||||
'id_jeu' => 'bigint(21) NOT NULL', |
||||
'date' => 'timestamp'); |
||||
if (isset($GLOBALS['meta']['jeux_base_version'])) { |
||||
$jeux = array_merge($jeux, array( |
||||
'type_jeu' => 'text NOT NULL', |
||||
'titre_prive' => 'text NOT NULL', |
||||
)); |
||||
} |
||||
$jeux = array_merge($jeux, array( |
||||
'contenu' => 'text NOT NULL', |
||||
'statut' => "varchar(10) DEFAULT '0' NOT NULL", |
||||
'type_resultat'=>"varchar(10) DEFAULT '0' NOT NULL" |
||||
) |
||||
); |
||||
|
||||
$jeux_key = array( |
||||
'PRIMARY KEY' =>'id_jeu'); |
||||
$jeux_resultats = array( |
||||
'id_resultat' => 'bigint(21) NOT NULL', |
||||
'id_jeu' => 'bigint(21) NOT NULL', |
||||
'id_auteur' => 'bigint(21) NOT NULL', |
||||
'date' => 'timestamp', |
||||
'resultat_court' => 'int(12)', |
||||
'resultat_long' => 'text NOT NULL', |
||||
'total' => 'int(12) NOT NULL' |
||||
); |
||||
$jeux_resultats_key=array('PRIMARY KEY' =>'id_resultat', |
||||
'KEY id_jeu' =>'id_jeu', |
||||
'KEY id_auteur' =>'id_auteur' |
||||
); |
||||
|
||||
$tables_principales['spip_jeux'] = |
||||
array('field' => &$jeux, 'key' => &$jeux_key); |
||||
$tables_principales['spip_jeux_resultats'] = |
||||
array('field' => &$jeux_resultats, 'key' => &$jeux_resultats_key); |
||||
|
||||
|
||||
global $table_des_traitements; |
||||
$table_des_traitements['CONTENU'][]= 'propre(%s)'; |
||||
|
||||
// Declarations pour la corbeille (plugin Corbeille, ou Couteau Suisse) |
||||
global $corbeille_params; |
||||
$corbeille_params['jeux'] = array ( |
||||
"statut" => 'poubelle', |
||||
"tableliee"=> array('spip_jeux_resultats'), |
||||
"libelle" => 'jeux:jeux', |
||||
); |
||||
|
||||
?> |
@ -0,0 +1,129 @@
|
||||
<?php |
||||
|
||||
$GLOBALS['jeux_base_version'] = 0.17; |
||||
|
||||
function jeux_install($install){ |
||||
switch($install) { |
||||
case 'test': |
||||
return isset($GLOBALS['meta']['jeux_base_version']) |
||||
AND ($GLOBALS['meta']['jeux_base_version']>=$GLOBALS['jeux_base_version']); |
||||
case 'install': |
||||
jeux_verifier_base(); |
||||
break; |
||||
case 'uninstall': |
||||
jeux_vider_tables(); |
||||
break; |
||||
} |
||||
} |
||||
|
||||
function jeux_vider_tables() { |
||||
include_spip('base/abstract_sql'); |
||||
sql_drop_table('spip_jeux'); |
||||
sql_drop_table("spip_jeux_resultats"); |
||||
effacer_meta('jeux_base_version'); |
||||
|
||||
} |
||||
|
||||
function jeux_maj_version(&$v1, $v2) { |
||||
echo "MAJ Jeux : $v1 => $v2<br />"; |
||||
ecrire_meta('jeux_base_version', $v1=$v2, 'non'); |
||||
} |
||||
|
||||
function jeux_verifier_base(){ |
||||
// version de la base de donnee |
||||
$version_base = $GLOBALS['jeux_base_version']; |
||||
$current_version = isset($GLOBALS['meta']['jeux_base_version']) |
||||
?$GLOBALS['meta']['jeux_base_version'] |
||||
:0.0; |
||||
if ($current_version != $version_base){ |
||||
include_spip('base/create'); |
||||
include_spip('base/abstract_sql'); |
||||
|
||||
|
||||
include_spip('base/jeux_tables'); |
||||
if ($current_version==0.0){ |
||||
creer_base(); |
||||
jeux_maj_version($current_version, 0.10); |
||||
} |
||||
if ($current_version<($test_version=0.11)){ |
||||
// ajout du champ 'nom' a la table spip_jeux, si pas deja existant |
||||
$desc = sql_showtable('spip_jeux', true); |
||||
if (!isset($desc['field']['nom'])){ |
||||
sql_alter("TABLE spip_jeux ADD `nom` text DEFAULT '' NOT NULL AFTER `date`"); |
||||
// ajout d'un nom par defaut aux jeux existants |
||||
$res = sql_select(array('id_jeu'),array('spip_jeux')); |
||||
$sans = _T('jeux:sans_type'); |
||||
while ($row = sql_fetch($res)) |
||||
sql_updateq('spip_jeux', array('nom'=>'$sans'), "id_jeu=".$row['id_jeu']); |
||||
} |
||||
// ajout du champ 'titre' a la table spip_jeux, si pas deja existant |
||||
if (!isset($desc['field']['titre'])){ |
||||
sql_alter("TABLE spip_jeux ADD `titre` text DEFAULT '' NOT NULL AFTER `nom`"); |
||||
// ajout d'un titre par defaut aux jeux existants |
||||
$res = sql_select(array('id_jeu'), 'spip_jeux'); |
||||
$sans = _T('jeux:sans_titre_prive'); |
||||
while ($row = sql_fetch($res)) |
||||
sql_update('spip_jeux', array('titre'=>$sans), "id_jeu=".$row['id_jeu']); |
||||
} |
||||
jeux_maj_version($current_version, $test_version); |
||||
} |
||||
if ($current_version<($test_version=0.12)){ |
||||
// changement de noms 'titre' => 'titre_prive' et 'nom' => 'type_jeu' |
||||
$desc = sql_showtable('spip_jeux', true); |
||||
if (isset($desc['field']['titre'])) |
||||
sql_alter('TABLE spip_jeux CHANGE `titre` `titre_prive` TEXT'); |
||||
if (isset($desc['field']['nom'])) |
||||
sql_alter('TABLE spip_jeux CHANGE `nom` `type_jeu` TEXT'); |
||||
jeux_maj_version($current_version, $test_version); |
||||
} |
||||
if ($current_version<($test_version=0.13)){ |
||||
// suppression de 'titre' et 'nom' |
||||
$desc = sql_showtable('spip_jeux', true); |
||||
if (isset($desc['field']['titre'])) |
||||
sql_alter('TABLE spip_jeux DROP `titre`'); |
||||
if (isset($desc['field']['nom'])) |
||||
sql_alter('TABLE spip_jeux DROP `nom`'); |
||||
jeux_maj_version($current_version, $test_version); |
||||
} |
||||
if ($current_version<($test_version=0.14)){ |
||||
// ajout de 'total' |
||||
$desc = sql_showtable("spip_jeux_resultats", true); |
||||
if (!isset($desc['field']['total'])) |
||||
sql_alter('TABLE spip_jeux_resultats ADD `total` int(12) NOT NULL DEFAULT 0 AFTER `resultat_long`'); |
||||
jeux_maj_version($current_version, $test_version); |
||||
} |
||||
if ($current_version<($test_version=0.15)){ |
||||
// ajout de 'resultat_unique' |
||||
$desc = sql_showtable('spip_jeux', true); |
||||
if (!isset($desc['field']['resultat_unique'])) |
||||
sql_alter("TABLE spip_jeux ADD `resultat_unique` NOT NULL DEFAULT 'non'"); |
||||
jeux_maj_version($current_version, $test_version); |
||||
} |
||||
if ($current_version<($test_version=0.16)){ |
||||
// fusion de 'resultat_unique' et 'enregistrer_resultat' vers 'type_resultat' |
||||
// types d'enregistrement disponibles : 'defaut', 'aucun', 'premier', 'dernier', 'meilleur', 'tous' |
||||
sql_alter('TABLE spip_jeux CHANGE `resultat_unique` `type_resultat` VARCHAR(10)'); |
||||
sql_updateq('spip_jeux',array('type_resultat'=>'premier'), "`type_resultat`='oui'"); |
||||
sql_updateq('spip_jeux',array('type_resultat'=>'dernier'), "`type_resultat`='non'"); |
||||
sql_updateq('spip_jeux',array('type_resultat'=>'aucun'), "`enregistrer_resultat`='non'"); |
||||
sql_alter('TABLE spip_jeux DROP `enregistrer_resultat`'); |
||||
jeux_maj_version($current_version, $test_version); |
||||
} |
||||
if ($current_version<($test_version=0.17)){ |
||||
// tenir compte du bug sur les prefixes |
||||
$desc = sql_showtable('spip_jeux', true); |
||||
if (isset($desc['field']['titre'])) |
||||
sql_alter('TABLE spip_jeux CHANGE `titre` `titre_prive` TEXT'); |
||||
if (isset($desc['field']['nom'])) |
||||
sql_alter('TABLE spip_jeux CHANGE `nom` `type_jeu` TEXT'); |
||||
if (!isset($desc['field']['resultat_unique'])) |
||||
sql_alter("TABLE spip_jeux ADD `resultat_unique` VARCHAR(10) NOT NULL DEFAULT 'non'"); |
||||
jeux_maj_version($current_version, $test_version); |
||||
} |
||||
|
||||
|
||||
|
||||
} |
||||
} |
||||
|
||||
?> |
@ -0,0 +1,74 @@
|
||||
<?php |
||||
if (!defined("_ECRIRE_INC_VERSION")) return; |
||||
|
||||
// pour tous les recuperer_fond() |
||||
include_spip('public/assembler'); |
||||
|
||||
// Pagination sur les jeux disponibles |
||||
function jeux_navigation_pagination() { |
||||
$texte = ''; $href = 'jeux_voir'; $nb_aff = 1; $deb_aff = 1; |
||||
$self = self(); |
||||
$id_jeu = intval(_request('id_jeu')); |
||||
|
||||
// liste des jeux disponibles |
||||
$fetch = 'sql_fetch'; |
||||
$q = sql_select('id_jeu', 'spip_jeux'); |
||||
$ids = array(); $i = 0; |
||||
while($r = $fetch($q)) { |
||||
$ids[$i++] = $r['id_jeu']; |
||||
if ($id_jeu==$r['id_jeu']) $deb_aff = $i; |
||||
} |
||||
$num_rows = count($ids); |
||||
if($num_rows<2) return ''; |
||||
|
||||
for ($i = 0; $i < $num_rows; $i += $nb_aff){ |
||||
$deb = $i + 1; |
||||
// Pagination : si on est trop loin, on met des '...' |
||||
if (abs($deb-$deb_aff)>10) { |
||||
if ($deb<$deb_aff) { |
||||
if (!isset($premiere)) { $premiere = '1 ... '; $texte .= $premiere; } |
||||
} else { |
||||
$derniere = ' | ... '.$num_rows; $texte .= $derniere; break; |
||||
} |
||||
} else { |
||||
$fin = $i + $nb_aff; |
||||
if ($fin > $num_rows) $fin = $num_rows; |
||||
if ($deb > 1) $texte .= " |\n"; |
||||
if ($deb_aff >= $deb AND $deb_aff <= $fin) $texte .= "<strong>$deb</strong>"; |
||||
else { |
||||
$script = parametre_url($self, 'id_jeu', $ids[$i]); |
||||
$texte .= "<a href=\"$script\">$deb</a>"; |
||||
} |
||||
} |
||||
} |
||||
return "<div class='verdana3' style='text-align: center;'>$texte</div>"; |
||||
} |
||||
|
||||
function boite_infos_auteur($id_auteur) { |
||||
return recuperer_fond('fonds/jeux_boites_infos',array('id_auteur'=>$id_auteur, 'exec'=>_request('exec'))); |
||||
} |
||||
|
||||
function boite_infos_jeu($id_jeu) { |
||||
return recuperer_fond('fonds/jeux_boites_infos',array('id_jeu'=>$id_jeu, 'exec'=>_request('exec'))); |
||||
} |
||||
|
||||
function boite_infos_accueil($id_foo=0) { |
||||
return recuperer_fond('fonds/jeux_boites_infos', |
||||
array('boite'=>'accueil', 'exec'=>_request('exec'), 'id_foo'=>$id_foo, 'config'=>function_exists('lire_config')?'oui':'non')); |
||||
} |
||||
|
||||
// boite pour le pipeline affiche_droite |
||||
function boite_info_jeux_edit(){ |
||||
return debut_cadre_relief(find_in_path('img/jeu-voir.png'),true,'',_T('jeux:inserer_jeu')) |
||||
. "<div>"._T('jeux:inserer_jeu_explication')."</div>" |
||||
. jeux_icone_horizontale(_T('jeux:liste_jeux'),generer_url_ecrire('jeux_tous'),find_in_path('img/jeux-tous.png')) |
||||
. jeux_icone_horizontale(_T('jeux:nouveau_jeu'),generer_url_ecrire('jeux_edit','nouveau=oui'),find_in_path('img/jeu-nouveau.png')) |
||||
. fin_cadre_relief(true); |
||||
} |
||||
|
||||
// boite pour le pipeline affiche_droite |
||||
function boite_infos_spip_auteur($id_auteur) { |
||||
return recuperer_fond('fonds/resultats_auteur_lien', array('id_auteur' => $id_auteur)); |
||||
} |
||||
|
||||
?> |
@ -0,0 +1,61 @@
|
||||
<?php |
||||
|
||||
if (!defined("_ECRIRE_INC_VERSION")) return; |
||||
|
||||
include_spip('inc/presentation'); |
||||
include_spip('exec/inc_boites_infos'); |
||||
include_spip('jeux_utils'); |
||||
|
||||
function exec_jeux_edit(){ |
||||
include_spip('inc/utils'); |
||||
$id_jeu = intval(_request('id_jeu')); |
||||
|
||||
if (_request('valider')) { |
||||
$id_jeu = jeux_ajouter_jeu($id_jeu, _request('contenu'), _request('titre_prive'), _request('type_resultat')); |
||||
include_spip('inc/headers'); |
||||
redirige_par_entete(generer_url_ecrire('jeux_voir', 'id_jeu=' . $id_jeu, true)); |
||||
} |
||||
|
||||
$gros_titre = _request('nouveau')?_T('jeux:nouveau_jeu'):_T('jeux:modifier_jeu', array('id'=>$id_jeu)); |
||||
$commencer_page = charger_fonction('commencer_page', 'inc'); |
||||
echo $commencer_page($gros_titre); |
||||
|
||||
echo debut_gauche('', true); |
||||
echo boite_infos_jeu($id_jeu); |
||||
|
||||
echo debut_cadre_relief(); |
||||
echo _T('jeux:explication_jeu'); |
||||
echo fin_cadre_relief(); |
||||
echo creer_colonne_droite('',true); |
||||
echo debut_droite('',true); |
||||
echo gros_titre($gros_titre, '', false); |
||||
|
||||
echo jeux_debut_cadre_formulaire(); |
||||
echo "<form method='post' name='jeux_edit'>\n"; |
||||
include_spip('public/assembler'); |
||||
echo recuperer_fond('fonds/jeux_edit', array('id_jeu'=>$id_jeu)); |
||||
echo "<p align='right'><input type='submit' name='valider' value='"._T('bouton_valider')."' class='fondo' /></p>"; |
||||
echo '</form>'; |
||||
echo jeux_fin_cadre_formulaire(); |
||||
echo fin_gauche(), fin_page(); |
||||
} |
||||
|
||||
function jeux_ajouter_jeu($id_jeu=0, $contenu='', $titre_prive='', $type_resultat='defaut'){ |
||||
include_spip('jeux_utils'); |
||||
$type_jeu = jeux_trouver_nom($contenu); |
||||
$type_jeu = strlen($type_jeu)?$type_jeu:_T('jeux:jeu_vide'); |
||||
$titre_prive = strlen($titre_prive)?$titre_prive:_T('jeux:sans_titre_prive'); |
||||
$contenu = _JEUX_DEBUT.jeux_sans_balise($contenu)._JEUX_FIN; |
||||
if (!$id_jeu) { |
||||
$id_jeu = sql_insertq('spip_jeux', array('date' => 'NOW()', 'statut'=>'publie', 'type_jeu'=>$type_jeu, 'titre_prive'=>$titre_prive, 'contenu'=>$contenu, 'type_resultat'=>$type_resultat)); |
||||
spip_log($id_jeu |
||||
?"Le jeu #$id_jeu a ete cree par l'auteur #".$GLOBALS["auteur_session"]['id_auteur'] |
||||
:'ERREUR : la creation d\'un jeu en base a echoue. Verifier la structure de la table et les permissions SQL.','jeux'); |
||||
} else { |
||||
sql_updateq('spip_jeux', array('date' => 'NOW()', 'type_jeu'=>$type_jeu, 'titre_prive'=>$titre_prive, 'contenu'=>$contenu, 'type_resultat'=>$type_resultat), "id_jeu=$id_jeu"); |
||||
spip_log("Le jeu #$id_jeu a ete modifie par l'auteur #".$GLOBALS["auteur_session"]['id_auteur'],'jeux'); |
||||
} |
||||
return intval($id_jeu); |
||||
} |
||||
|
||||
?> |
@ -0,0 +1,222 @@
|
||||
<?php |
||||
if (!defined("_ECRIRE_INC_VERSION")) return; |
||||
|
||||
include_spip('inc/presentation'); |
||||
include_spip('exec/inc_boites_infos'); |
||||
|
||||
function exec_jeux_gerer_resultats(){ |
||||
|
||||
// les boutons ... le pire ennemi des ados parait-il |
||||
$supprimer_tout = _request('supprimer_tout'); |
||||
$supprimer_confirmer = _request('supprimer_confirmer'); |
||||
$compacter_tout = _request('compacter_tout'); |
||||
$compacter_confirmer = _request('compacter_confirmer'); |
||||
($supprimer_confirmer) ? $bouton = 'supprimer_confirmer' : $bouton = ''; |
||||
($bouton == '' and $supprimer_tout) ? $bouton = 'supprimer_tout' : $bouton = $bouton; |
||||
($bouton == '' and $compacter_tout) ? $bouton = 'compacter_tout' : $bouton = $bouton; |
||||
($bouton == '' and $compacter_confirmer) ? $bouton = 'compacter_confirmer' : $bouton = $bouton; |
||||
|
||||
$id_jeu = _request('id_jeu'); |
||||
$id_auteur = _request('id_auteur'); |
||||
|
||||
|
||||
if ($id_jeu and autoriser('gererresultats')) { gerer_resultat_jeux($id_jeu,$bouton); return; } |
||||
if ($id_auteur and autoriser('gererresultats','auteur',$id_auteur)) { gerer_resultats_auteur($id_auteur,$bouton); return; } |
||||
// ... et par defaut |
||||
if (autoriser('gererresultats')) {gerer_resultat_tous($bouton); return;} |
||||
interdit(); |
||||
} |
||||
|
||||
function gerer_resultat_tous($bouton){ |
||||
// aie, aie, on efface tout ! |
||||
if ($bouton == 'supprimer_confirmer'){ |
||||
include_spip('base/jeux_supprimer'); |
||||
jeux_supprimer_tout_tout(); |
||||
include_spip('inc/headers'); |
||||
redirige_par_entete(generer_url_ecrire('jeux_tous')); |
||||
} |
||||
if ($bouton == 'compacter_confirmer'){ |
||||
include_spip('base/jeux_compacter'); |
||||
jeux_compacter_tout_tout(); |
||||
include_spip('inc/headers'); |
||||
redirige_par_entete(generer_url_ecrire('jeux_tous')); |
||||
} |
||||
$commencer_page = charger_fonction('commencer_page', 'inc'); |
||||
echo $commencer_page(_T("jeux:gerer_resultats_tout")); |
||||
echo debut_gauche('',true); |
||||
echo boite_infos_accueil(); |
||||
|
||||
echo creer_colonne_droite('',true); |
||||
echo debut_droite('',true); |
||||
if ($bouton == 'supprimer_tout' or $bouton == 'compacter_tout') |
||||
echo gros_titre(_T("jeux:confirmation"), '', false); |
||||
debut_cadre_relief(); |
||||
echo gros_titre(_T("jeux:gerer_resultats_tout"), '', false); |
||||
formulaire_suppression($bouton, 'tout'); |
||||
|
||||
fin_cadre_relief(); |
||||
echo fin_gauche(), fin_page(); |
||||
} |
||||
|
||||
function gerer_resultats_auteur($id_auteur, $bouton){ |
||||
$requete = sql_fetsel('id_auteur,nom', 'spip_auteurs', "id_auteur=$id_auteur", ''); |
||||
$nom = $requete['nom']; |
||||
$id_auteur = $requete['id_auteur']; |
||||
$commencer_page = charger_fonction('commencer_page', 'inc'); |
||||
if(!$id_auteur){ |
||||
echo $commencer_page(_T("jeux:pas_d_auteur")); |
||||
echo gros_titre(_T("jeux:pas_d_auteur"), '', false), fin_page(); |
||||
return; |
||||
} |
||||
|
||||
// aรฏe, aรฏe, on efface tout pour $id_auteur |
||||
if ($bouton == 'supprimer_confirmer'){ |
||||
include_spip('base/jeux_supprimer'); |
||||
jeux_supprimer_tout_auteur($id_auteur); |
||||
include_spip('inc/headers'); |
||||
redirige_par_entete(generer_url_ecrire('jeux_resultats_auteur', 'id_auteur='.$id_auteur, true)); |
||||
} |
||||
if ($bouton == 'compacter_confirmer'){ |
||||
include_spip('base/jeux_compacter'); |
||||
jeux_compacter_tout_auteur($id_auteur); |
||||
include_spip('inc/headers'); |
||||
redirige_par_entete(generer_url_ecrire('jeux_resultats_auteur', 'id_auteur='.$id_auteur, true)); |
||||
} |
||||
echo $commencer_page(_T("jeux:gerer_resultats_auteur",array('nom'=>$nom))); |
||||
|
||||
echo debut_gauche('',true); |
||||
|
||||
echo boite_infos_auteur($id_auteur); |
||||
echo boite_infos_accueil($id_auteur); |
||||
|
||||
echo creer_colonne_droite('',true); |
||||
echo debut_droite('',true); |
||||
if ($bouton == 'supprimer_tout' or $bouton == 'compacter_tout') |
||||
echo gros_titre(_T("jeux:confirmation"), '', false); |
||||
debut_cadre_relief(); |
||||
echo gros_titre(_T("jeux:gerer_resultats_auteur", array('nom'=>$nom)), '', false); |
||||
formulaire_suppression($bouton, 'auteur'); |
||||
|
||||
fin_cadre_relief(); |
||||
echo fin_gauche(), fin_page(); |
||||
} |
||||
|
||||
function gerer_resultat_jeux($id_jeu, $bouton){ |
||||
$requete = sql_fetsel('id_jeu,type_jeu', 'spip_jeux', "id_jeu=$id_jeu"); |
||||
$id_jeu = $requete['id_jeu']; |
||||
$type_jeu = $requete['type_jeu']; |
||||
$commencer_page = charger_fonction('commencer_page', 'inc'); |
||||
if(!$id_jeu){ |
||||
echo $commencer_page(_T("jeux:pas_de_jeu")); |
||||
echo gros_titre(_T("jeux:pas_de_jeu"), '', false), fin_page(); |
||||
return; |
||||
} |
||||
|
||||
// aรฏe, aรฏe, on efface tout pour $id_jeu |
||||
if ($bouton == 'supprimer_confirmer'){ |
||||
include_spip('base/jeux_supprimer'); |
||||
jeux_supprimer_tout_jeu($id_jeu); |
||||
include_spip('inc/headers'); |
||||
redirige_par_entete(generer_url_ecrire('jeux_resultats_jeu', 'id_jeu='.$id_jeu, true)); |
||||
} |
||||
if ($bouton == 'compacter_confirmer'){ |
||||
include_spip('base/jeux_compacter'); |
||||
jeux_compacter_tout_jeu($id_jeu); |
||||
include_spip('inc/headers'); |
||||
redirige_par_entete(generer_url_ecrire('jeux_resultats_jeu', 'id_jeu='.$id_jeu, true)); |
||||
} |
||||
|
||||
|
||||
echo $commencer_page(_T("jeux:gerer_resultats_jeu",array('id'=>$id_jeu,'nom'=>$type_jeu))); |
||||
|
||||
echo debut_gauche('',true); |
||||
echo boite_infos_jeu($id_jeu); |
||||
echo boite_infos_accueil($id_jeu); |
||||
|
||||
echo creer_colonne_droite('',true); |
||||
echo debut_droite('',true); |
||||
if ($bouton == 'supprimer_tout' or $bouton == 'compacter_tout') |
||||
echo gros_titre(_T("jeux:confirmation"), '', false); |
||||
debut_cadre_relief(); |
||||
|
||||
echo gros_titre(_T("jeux:gerer_resultats_jeu", array('id'=>$id_jeu,'nom'=>$type_jeu)), '', false); |
||||
formulaire_suppression($bouton, 'jeu'); |
||||
|
||||
fin_cadre_relief(); |
||||
echo fin_gauche(), fin_page(); |
||||
} |
||||
|
||||
function formulaire_suppression($bouton, $type){ |
||||
$commencer_page = charger_fonction('commencer_page', 'inc'); |
||||
echo jeux_jeux_debut_cadre_formulaire(); |
||||
echo "<form method='post' name='supprimer_resultat'>"; |
||||
debut_cadre_relief(); |
||||
|
||||
if ($bouton == 'supprimer_tout'){ |
||||
$res = "<br/><input type='submit' name='supprimer_confirmer' value='"._T('jeux:supprimer_confirmer')."' class='fondo' />"; |
||||
echo |
||||
_T('jeux:confirmation_supprimer_'.$type), |
||||
"\n<div style='text-align: center'>", |
||||
debut_boite_alerte(), |
||||
"\n<div class='serif'>", |
||||
"\n<b>"._T('avis_suppression_base')." !</b>", |
||||
"\n</div>", |
||||
$res, |
||||
fin_boite_alerte(), |
||||
"</div>"; |
||||
} |
||||
else if ($bouton == 'compacter_tout'){ |
||||
$res = "<br/><input type='submit' name='compacter_confirmer' value='"._T('jeux:compacter_confirmer')."' class='fondo' />"; |
||||
echo |
||||
_T('jeux:confirmation_compacter_'.$type), |
||||
"\n<div style='text-align: center'>", |
||||
debut_boite_alerte(), |
||||
"\n<div class='serif'>", |
||||
"\n<b>"._T('avis_suppression_base')." !</b>", |
||||
"\n</div>", |
||||
$res, |
||||
fin_boite_alerte(), |
||||
"</div>"; |
||||
} |
||||
|
||||
else { |
||||
$res = "<br/><input type='submit' name='supprimer_tout' value='"._T('jeux:supprimer_tout_'.$type)."' class='fondo' />"; |
||||
echo |
||||
_T('jeux:explication_supprimer_'.$type), |
||||
"\n<div style='text-align: center'>", |
||||
debut_boite_alerte(), |
||||
"\n<div class='serif'>", |
||||
"\n<b>"._T('avis_suppression_base')." !</b>", |
||||
"\n</div>", |
||||
$res, |
||||
fin_boite_alerte(), |
||||
"</div>"; |
||||
|
||||
$res = "<br/><input type='submit' name='compacter_tout' value='"._T('jeux:compacter_tout_'.$type)."' class='fondo' />"; |
||||
echo |
||||
_T('jeux:explication_compacter_'.$type), |
||||
"\n<div style='text-align: center'>", |
||||
debut_boite_alerte(), |
||||
"\n<div class='serif'>", |
||||
"\n<b>"._T('avis_suppression_base')." !</b>", |
||||
"\n</div>", |
||||
$res, |
||||
fin_boite_alerte(), |
||||
"</div>"; |
||||
} |
||||
|
||||
fin_cadre_relief(); |
||||
echo "</form>"; |
||||
|
||||
echo jeux_fin_cadre_formulaire(); |
||||
} |
||||
function interdit(){ |
||||
$commencer_page = charger_fonction('commencer_page', 'inc'); |
||||
echo $commencer_page(_T('avis_non_acces_page')); |
||||
echo debut_gauche('',true); |
||||
echo debut_droite('',true); |
||||
echo _T('avis_non_acces_page'); |
||||
echo fin_gauche(), fin_page(); |
||||
} |
||||
|
||||
?> |
@ -0,0 +1,46 @@
|
||||
<?php |
||||
if (!defined("_ECRIRE_INC_VERSION")) return; |
||||
|
||||
include_spip('inc/presentation'); |
||||
include_spip('exec/inc_boites_infos'); |
||||
|
||||
function exec_jeux_resultats_auteur(){ |
||||
$id_auteur = _request('id_auteur'); |
||||
$par = _request('par'); |
||||
|
||||
$requete = sql_fetsel('id_auteur,nom', 'spip_auteurs', "id_auteur=$id_auteur"); |
||||
$nom = $requete['nom']; |
||||
$id_auteur = $requete['id_auteur']; |
||||
|
||||
$commencer_page = charger_fonction('commencer_page', 'inc'); |
||||
if(!$id_auteur){ |
||||
|
||||
echo $commencer_page(_T("jeux:pas_d_auteur")); |
||||
echo gros_titre(_T("jeux:pas_d_auteur"), '', false), fin_page(); |
||||
return; |
||||
} |
||||
|
||||
echo $commencer_page(_T("jeux:resultats_auteur",array('nom'=>$nom))); |
||||
|
||||
echo debut_gauche('',true); |
||||
|
||||
echo boite_infos_auteur($id_auteur); |
||||
echo boite_infos_accueil($id_auteur); |
||||
|
||||
echo creer_colonne_droite('',true); |
||||
echo debut_droite('',true); |
||||
debut_cadre_relief(); |
||||
|
||||
echo gros_titre(_T("jeux:resultats_auteur", array('nom'=>$nom)), '', false); |
||||
|
||||
debut_cadre('liste'); |
||||
include_spip('public/assembler'); |
||||
echo recuperer_fond('fonds/resultats',array('id_auteur'=>$id_auteur,'par'=>$par)); |
||||
fin_cadre('liste'); |
||||
|
||||
fin_cadre_relief(); |
||||
echo fin_gauche(), fin_page(); |
||||
} |
||||
|
||||
|
||||
?> |
@ -0,0 +1,46 @@
|
||||
<?php |
||||
if (!defined("_ECRIRE_INC_VERSION")) return; |
||||
|
||||
include_spip('inc/presentation'); |
||||
include_spip('exec/inc_boites_infos'); |
||||
|
||||
function exec_jeux_resultats_jeu(){ |
||||
$id_jeu = _request('id_jeu'); |
||||
$par = _request('par'); |
||||
$commencer_page = charger_fonction('commencer_page', 'inc'); |
||||
$requete = sql_fetsel('id_jeu,type_jeu,titre_prive', 'spip_jeux', "id_jeu=$id_jeu"); |
||||
$id_jeu = $requete['id_jeu']; |
||||
$type_jeu = $requete['type_jeu']; |
||||
$titre_prive = $requete['titre_prive']; |
||||
if(!$id_jeu){ |
||||
echo $commencer_page(_T("jeux:pas_de_jeu")); |
||||
echo gros_titre(_T("jeux:pas_de_jeu"), '', false), fin_page(); |
||||
return; |
||||
} |
||||
echo $commencer_page(_T("jeux:resultats_jeu",array('id'=>$id_jeu,'nom'=>$type_jeu))); |
||||
|
||||
echo debut_gauche('',true); |
||||
|
||||
echo boite_infos_jeu($id_jeu); |
||||
echo boite_infos_accueil($id_jeu); |
||||
|
||||
echo creer_colonne_droite('',true); |
||||
echo debut_droite('',true); |
||||
debut_cadre_relief(); |
||||
|
||||
echo gros_titre(_T("jeux:resultats_jeu", array('id'=>$id_jeu,'nom'=>$type_jeu)), '', false); |
||||
$titre_prive = $titre_prive==''?_T('jeux:sans_titre_prive'):propre($titre_prive); |
||||
echo "<div style='font-weight:bold'>$titre_prive</div><br />"; |
||||
echo "<div class='nettoyeur'></div>"; |
||||
debut_cadre('liste'); |
||||
include_spip('public/assembler'); |
||||
echo recuperer_fond('fonds/resultats', array('id_jeu'=>$id_jeu,'par'=>$par)); |
||||
fin_cadre('liste'); |
||||
|
||||
fin_cadre_relief(); |
||||
echo jeux_navigation_pagination(); |
||||
echo fin_gauche(), fin_page(); |
||||
} |
||||
|
||||
|
||||
?> |
@ -0,0 +1,30 @@
|
||||
<?php |
||||
if (!defined("_ECRIRE_INC_VERSION")) return; |
||||
|
||||
include_spip('inc/presentation'); |
||||
include_spip('exec/inc_boites_infos'); |
||||
|
||||
function exec_jeux_tous(){ |
||||
$par = _request('par'); |
||||
($par =='') ? $par='date' : $par = $par; |
||||
$commencer_page = charger_fonction('commencer_page', 'inc'); |
||||
include_spip('public/assembler'); |
||||
echo $commencer_page(_T("jeux:liste_jeux")), |
||||
recuperer_fond('fonds/jeux_tous', array('par'=>$par)); |
||||
} |
||||
|
||||
function table_jeux_caracteristiques() { |
||||
global $jeux_caracteristiques; |
||||
$res = '|{{'._T('jeux:jeux').'}}|{{'._T('public:signatures_petition').'}}|{{'._T('jeux:options').'}}|{{'._T('spip:icone_configuration_site').'}}|'; |
||||
foreach($jeux_caracteristiques['TYPES'] as $j=>$t) { |
||||
include_spip('jeux/'.$j); |
||||
$config = function_exists($f='jeux_'.$j.'_init')?trim($f()):''; |
||||
$res .= "\n|$t|[" |
||||
. join("]\n_ [",$jeux_caracteristiques['SIGNATURES'][$j]) . ']|[' |
||||
. join("]\n_ [",array_diff($jeux_caracteristiques['SEPARATEURS'][$j],$jeux_caracteristiques['SIGNATURES'][$j])) . ']|' |
||||
. preg_replace(array(',//.*,', ',[\n\r]+,'), array('', "\n_ "), $config) . '|'; |
||||
} |
||||
return propre($res); |
||||
} |
||||
|
||||
?> |
@ -0,0 +1,109 @@
|
||||
<?php |
||||
if (!defined("_ECRIRE_INC_VERSION")) return; |
||||
|
||||
include_spip('inc/presentation'); |
||||
include_spip('exec/inc_boites_infos'); |
||||
|
||||
function exec_jeux_voir(){ |
||||
global $jeux_caracteristiques; |
||||
$commencer_page = charger_fonction('commencer_page', 'inc'); |
||||
$id_jeu = _request('id_jeu'); |
||||
|
||||
include_spip('jeux_utils'); |
||||
|
||||
$requete = sql_fetsel('statut,contenu,id_jeu,type_jeu,titre_prive,date,type_resultat', 'spip_jeux', "id_jeu=$id_jeu"); |
||||
list($statut, $contenu, $id_jeu, $type_jeu, $titre_prive, $date, $type_resultat) = |
||||
array($requete['statut'], $requete['contenu'], $requete['id_jeu'], $requete['type_jeu'], $requete['titre_prive'], $requete['date'], $requete['type_resultat']); |
||||
$liste = jeux_liste_les_jeux($contenu); |
||||
if(count($liste)==1) |
||||
$configuration_defaut = jeux_configuration_generale($liste[0]); |
||||
else { |
||||
$configuration_defaut = array(); |
||||
foreach($liste as $jeu) |
||||
if(count($t = jeux_configuration_generale($jeu))) |
||||
$configuration_defaut[] = $jeux_caracteristiques['TYPES'][$jeu].'<ul><li>'.join('</li><li>', $t).'</li></ul>'; |
||||
} |
||||
$configuration_interne = jeux_trouver_configuration_interne($contenu); |
||||
// cas particulier des multi-jeux |
||||
if(count($liste) && $liste[0]=='multi_jeux') { |
||||
$configuration_interne = array($jeux_caracteristiques['TYPES']['multi_jeux'].'<ul><li>'.join('</li><li>', $configuration_interne).'</li></ul>'); |
||||
$textes = explode('['._JEUX_MULTI_JEUX.']', $contenu); |
||||
unset($textes[0]); |
||||
foreach($textes as $t) { |
||||
$jeu = jeux_trouver_nom($t); |
||||
if(count($t = jeux_trouver_configuration_interne($t))) |
||||
$configuration_interne[] = $jeu.'<ul><li>'.join('</li><li>', $t).'</li></ul>'; |
||||
} |
||||
} else $configuration_interne = jeux_trouver_configuration_interne($contenu); |
||||
$titre_public = jeux_trouver_titre_public($contenu); |
||||
if($titre_prive=='') $titre_prive = _T('jeux:sans_titre_prive'); |
||||
if($titre_public) { |
||||
$titre_prive = _T('jeux:jeu_titre_prive_') . ' ' . $titre_prive; |
||||
$titre_public = _T('jeux:jeu_titre_public_') . ' ' . $titre_public; |
||||
} |
||||
$contenu = $type_jeu==_T('jeux:jeu_vide')?_T('jeux:introuvable'):propre($contenu); |
||||
$puce = jeux_puce_statut($statut); |
||||
|
||||
if(!$id_jeu){ |
||||
echo $commencer_page(_T("jeux:pas_de_jeu")); |
||||
echo debut_gauche('',true); |
||||
echo boite_infos_accueil(); |
||||
echo fin_gauche(), _T("jeux:pas_de_jeu"), fin_page(); |
||||
return; |
||||
} |
||||
|
||||
echo $commencer_page(_T("jeux:jeu_numero", array('id'=>$id_jeu,'nom'=>$type_jeu))); |
||||
|
||||
echo debut_gauche('',true); |
||||
echo boite_infos_jeu($id_jeu); |
||||
echo boite_infos_accueil(); |
||||
|
||||
debut_cadre_relief(); |
||||
echo "<strong>"._t("jeux:derniere_modif")."</strong><br />".affdate($date).' '.heures($date).":".minutes($date); |
||||
fin_cadre_relief(); |
||||
|
||||
echo creer_colonne_droite('',true); |
||||
echo debut_droite('',true); |
||||
debut_cadre_relief(); |
||||
|
||||
// changement de statut |
||||
if (autoriser('modifierstatut')){ |
||||
|
||||
if (_request('statut_modif')){ |
||||
include_spip('base/jeux_modifier_statut'); |
||||
jeu_modifier_statut($id_jeu, $statut=_request('statut_modif')); |
||||
} |
||||
echo gros_titre($puce." "._T("jeux:jeu_numero", array('id'=>$id_jeu,'nom'=>$type_jeu)), '', '', false); |
||||
|
||||
debut_cadre_relief(); |
||||
echo "<span class='titrem'>"._T('jeux:titres_jeu') |
||||
.'</span>'.propre('<ul><li>'.$titre_prive.($titre_public?"</li><li>$titre_public":'').'</li></ul>'); |
||||
echo "<form method='post' name='statut_edit'>\n"; |
||||
echo "<span class='titrem'>"._T('jeux:statut_jeu')."</span><ul><li>$type_jeu</li><li><select name='statut_modif'>"; |
||||
echo '<option value="publie">'._T('texte_statut_publie').'</option>'; |
||||
echo '<option value="poubelle"'.($statut=='poubelle'?' selected="selected"':'').'>'._T('texte_statut_poubelle').'</option>'; |
||||
echo '<option value="refuse"'.($statut=='refuse'?' selected="selected"':'').'>'._T('texte_statut_refuse').'</option>'; |
||||
echo "</select> <input type='submit' name='valider' value='"._T('bouton_valider')."' class='fondo' /></li></ul>\n"; |
||||
echo "</form>"; |
||||
echo "<span class='titrem'>"._T('jeux:cfg_type_resultat') |
||||
."</span><ul><li>"._T("jeux:resultat2_$type_resultat").'</li></ul>'; |
||||
if(count($configuration_defaut)) |
||||
echo "<span class='titrem'>"._T('jeux:configuration_defaut') |
||||
."</span><ul><li>".join('</li><li>', $configuration_defaut).'</li></ul>'; |
||||
if(count($configuration_interne)) |
||||
echo "<span class='titrem'>"._T('jeux:configuration_interne') |
||||
."</span><ul><li>".join('</li><li>', $configuration_interne).'</li></ul>'; |
||||
fin_cadre_relief(); |
||||
} |
||||
else |
||||
echo gros_titre($puce." "._T("jeux:jeu_numero", array('id'=>$id_jeu,'nom'=>$type_jeu)), '', '', false); |
||||
echo '<br />', $contenu; |
||||
|
||||
|
||||
fin_cadre_relief(); |
||||
echo jeux_navigation_pagination(); |
||||
echo fin_gauche(), fin_page(); |
||||
} |
||||
|
||||
|
||||
?> |
@ -0,0 +1,37 @@
|
||||
<B_resultats> |
||||
#ANCRE_PAGINATION |
||||
<table class='arial2' cellpadding='2' cellspacing='0' style='width: 100%; border: 0px;'> |
||||
<thead> |
||||
<tr class="titrem" style="text-align:center"> |
||||
<th>[(#ENV{par}|!=={id_jeu}|oui)<a class="ajax" href="[(#SELF|parametre_url{par,id_jeu})]">]<:jeux:jeu_numero_court:>[(#ENV{par}|!=={date}|oui)</a>]</th> |
||||
<th>[(#ENV{par}|!={id_jeu}|oui)<a class="ajax" href="[(#SELF|parametre_url{par,id_jeu})]">]<:jeux:jeu_type:>[(#ENV{par}|!={id_jeu}|oui)</a>]</th> |
||||
<th><:jeux:jeu_titre_prive:></th> |
||||
<th>[(#ENV{par}|!=={date}|oui)<a class="ajax" href="[(#SELF|parametre_url{par,date})]">]<:date:>[(#ENV{par}|!=={date}|oui)</a>]</th> |
||||
<th>[(#ENV{par}|oui)<a class="ajax" href="[(#SELF|parametre_url{par,''})]">]<:jeux:resultat:>[(#ENV{par}|oui)</a>]</th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
<BOUCLE_resultats(JEUX_RESULTATS) {id_auteur} {par #ENV{par}, round(resultat_court / total, 3)}{inverse #ENV{par}|=={id_jeu}|?{0,1}}{pagination 30}> |
||||
<tr class="tr_liste"> |
||||
<td style="text-align:center"><a href="#URL_ECRIRE{jeux_voir, id_jeu=#ID_JEU}">#ID_JEU</a></td> |
||||
<B_jeu> |
||||
<BOUCLE_jeu(JEUX){statut==refuse|publie}{id_jeu}> |
||||
<td style="text-align:center"><a href="#URL_ECRIRE{jeux_voir, id_jeu=#ID_JEU}">#TYPE_JEU</a></td> |
||||
<td style="text-align:center"><a href="#URL_ECRIRE{jeux_voir, id_jeu=#ID_JEU}">#TITRE_PRIVE</a></td> |
||||
</BOUCLE_jeu> |
||||
<td style="text-align:center">??</td> |
||||
<td style="text-align:center">??</td> |
||||
<//B_jeu> |
||||
<td style="text-align:center">[(#DATE|affdate)] [(#DATE|heures)]:[(#DATE|minutes)]</td> |
||||
<td style="text-align:center">#RESULTAT_COURT / #TOTAL</td> |
||||
</tr> |
||||
[<tr> |
||||
<td colspan="3">(#RESULTAT_LONG)</td> |
||||
</tr>] |
||||
</BOUCLE_resultats> |
||||
</tbody> |
||||
</table> |
||||
[<div class="pagination">(#PAGINATION)</div>] |
||||
</B_resultats> |
||||
<br/><:jeux:aucun_resultat:> |
||||
<//B_resultats> |
@ -0,0 +1,2 @@
|
||||
[(#REM) Ce fond est surchargeable dans votre squelette ] |
||||
<div style="text-align:center;"><input type="submit" value="<:jeux:corriger:>" class="jeux_bouton" /></div> |
@ -0,0 +1,2 @@
|
||||
[(#REM) Ce fond est surchargeable dans votre squelette ] |
||||
<div class="jeux_bouton_reset">[ <a href="[(#NETTOYER_URI|parametre_url{var_hasard, #EVAL{uniqid(rand())}})#JEU#ENV{indexJeux}]"><:jeux:recommencer:></a> ]</div> |
@ -0,0 +1,2 @@
|
||||
[(#REM) Ce fond est surchargeable dans votre squelette ] |
||||
<div class="jeux_bouton_reset">[ <a href="[(#NETTOYER_URI|parametre_url{var_hasard, #EVAL{uniqid(rand())}})#JEU#ENV{indexJeux}]"><:jeux:reinitialiser:></a> ]</div> |
@ -0,0 +1,2 @@
|
||||
[(#REM) Ce fond est surchargeable dans votre squelette ] |
||||
<div class="jeux_bouton_reset">[ <a href="[(#NETTOYER_URI|parametre_url{var_hasard, #EVAL{uniqid(rand())}})#JEU#ENV{indexJeux}]"><:jeux:rejouer:></a> ]</div> |
@ -0,0 +1,53 @@
|
||||
<!-- titre=<:jeux:jeux:> --> |
||||
<!-- descriptif= |
||||
|
||||
[(#REM|sinon{<:jeux:liste_jeux:>}|jeux_icone_horizontale{#URL_ECRIRE{jeux_tous},#CHEMIN{img/jeux-tous.png}})] |
||||
<BOUCLE_tous_resultats(JEUX_RESULTATS){0,1}> |
||||
[(#AUTORISER{gererresultats}) [(#REM|sinon{<:jeux:gerer_resultats:>}|jeux_icone_horizontale{#URL_ECRIRE{jeux_gerer_resultats},#CHEMIN{img/jeu-laurier.png}})]] |
||||
</BOUCLE_tous_resultats> |
||||
[(#REM|sinon{<:jeux:doc_jeux:>}|jeux_icone_horizontale{http://www.spip-contrib.net/Des-jeux-dans-vos-articles,#CHEMIN{img/jeu-24.png}})] |
||||
[(#REM|sinon{<:jeux:doc_scores:>}|jeux_icone_horizontale{http://www.spip-contrib.net/Des-jeux-avec-des-scores,#CHEMIN{img/jeu-24.png}})] |
||||
|
||||
--> |
||||
<style type="text/css"> |
||||
<!-- |
||||
form p {margin:0.2em 0;} |
||||
form fieldset {margin:1em 0;} |
||||
--> |
||||
</style> |
||||
|
||||
|
||||
[(#REM) icone=img/jeu-cfg.png] |
||||
#CACHE{0} |
||||
<form method="post">[(#ENV{_cfg_}|form_hidden)] |
||||
<h2 style="text-align:center;"><:jeux:configuration_generale:></h2> |
||||
<hr/> |
||||
<p><:jeux:cfg_introduction:></p> |
||||
|
||||
<fieldset><legend><:jeux:cfg_scores:> </legend> |
||||
<p><label><:jeux:cfg_type_resultat:><br/> |
||||
<select name="type_resultat"> |
||||
<option value="dernier"[ selected="(#CONFIG{jeux/type_resultat}|=={dernier}|?{selected})"]><:jeux:resultat2_dernier:></option> |
||||
<option value="premier"[ selected="(#CONFIG{jeux/type_resultat}|=={premier}|?{selected})"]><:jeux:resultat2_premier:></option> |
||||
<option value="meilleur"[ selected="(#CONFIG{jeux/type_resultat}|=={meilleur}|?{selected})"]><:jeux:resultat2_meilleur:></option> |
||||
<option value="meilleurs"[ selected="(#CONFIG{jeux/type_resultat}|=={meilleurs}|?{selected})"]><:jeux:resultat2_meilleurs:></option> |
||||
<option value="tous"[ selected="(#CONFIG{jeux/type_resultat}|=={tous}|?{selected})"]><:jeux:resultat2_tous:></option> |
||||
<option value="aucun"[ selected="(#CONFIG{jeux/type_resultat}|=={aucun}|?{selected})"]><:jeux:resultat2_aucun:></option> |
||||
</select> |
||||
</label></p> |
||||
</fieldset> |
||||
[(#REM) Attention, important : |
||||
les options de config par defaut doivent etre nommees sous la forme 'cfg_uneOption' |
||||
] |
||||
<fieldset><legend><:jeux:cfg_affichage:> </legend> |
||||
<p><label><input type="checkbox" name="cfg_reponse" [checked="(#CONFIG{jeux/cfg_reponse}|!={''}|?{'checked'})"] class="fondl" /> |
||||
<:jeux:cfg_donner_reponse:></label></p> |
||||
<p><label><input type="checkbox" name="cfg_indices" [checked="(#CONFIG{jeux/cfg_indices}|!={''}|?{'checked'})"] class="fondl" /> |
||||
<:jeux:cfg_donner_indices:></label></p> |
||||
</fieldset> |
||||
<fieldset><legend><:jeux:cfg_correction:> </legend> |
||||
<p><label><input type="checkbox" name="cfg_solution" [checked="(#CONFIG{jeux/cfg_solution}|!={''}|?{'checked'})"] class="fondl" /> |
||||
<:jeux:cfg_donner_solution:></label></p> |
||||
</fieldset> |
||||
<p align="right"><input class="fondo" type="submit" name="_cfg_ok" value="<:valider:>" /></p> |
||||
</form> |
@ -0,0 +1,25 @@
|
||||
<B_resultats> |
||||
<table class='arial2' cellpadding='2' cellspacing='0' style='width: 100%; border: 0px;'> |
||||
<tr class="titrem"> |
||||
<th>[(#ENV{par}|!=={nom}|oui)<a class='ajax' href="[(#SELF|parametre_url{par,nom})]">]<:jeux:auteur:>[(#ENV{par}|!=={nom}|oui)</a>]</th> |
||||
<th>[(#ENV{par}|!=={date}|oui)<a class='ajax' href="[(#SELF|parametre_url{par,date})]">]<:date:>[(#ENV{par}|!=={date}|oui)</a>]</th> |
||||
<th style="text-align:center">[(#ENV{par}|oui)<a class='ajax' href="[(#SELF|parametre_url{par,''})]">]<:jeux:resultat:>[(#ENV{par}|oui)</a>]</th> |
||||
|
||||
</tr></thead> |
||||
#PAGINATION |
||||
<BOUCLE_resultats(JEUX_RESULTATS spip_auteurs) {id_jeu} {par #ENV{par}, round(resultat_court / total, 3)} {inverse #ENV{par}|=={nom}|?{0,1}}{pagination 30}><!-- {statut==refuse|publie} --> |
||||
<tr class ="tr_liste"> |
||||
<td><a href="?exec=jeux_resultats_auteur&id_auteur=#ID_AUTEUR">#NOM</a></td> |
||||
<td>[(#DATE|affdate)] [(#DATE|heures)]:[(#DATE|minutes)]</td> |
||||
<td style="text-align:center">#RESULTAT_COURT / #TOTAL</td> |
||||
[<td>(#TYPE_RESULTAT)</td>] |
||||
</tr> |
||||
[<tr> |
||||
<td colspan="3">(#RESULTAT_LONG)</td> |
||||
</tr>] |
||||
|
||||
</BOUCLE_resultats> |
||||
</table> |
||||
</B_resultats> |
||||
<br/><:jeux:aucun_resultat:> |
||||
<//B_resultats> |
@ -0,0 +1,12 @@
|
||||
[(#REM) |
||||
|
||||
Affiche le score d'un jeu a l'issue d'une correction. |
||||
Champs disponibles : id_jeu (si existe), score, total, resultat_long, commentaire |
||||
|
||||
]<div class="jeux_score"> |
||||
<:jeux:score:> #ENV*{score} / #ENV*{total} |
||||
[<br /><:jeux:bravo:>(#ENV*{score}|=={#ENV*{total}}|oui)] |
||||
</div> |
||||
[<div class="jeux_commentaire_score"> |
||||
(#ENV*{commentaire}) |
||||
</div>] |
@ -0,0 +1,80 @@
|
||||
[(#VAL{1}|debut_boite_info)] |
||||
<BOUCLE_jeu(JEUX){id_jeu}{0,1}> |
||||
<strong><:jeux:jeu_court|replace{@id@,#ID_JEU}|replace{@nom@,#TYPE_JEU}:></strong><br /> |
||||
[(#ENV{exec}|=={jeux_edit}|oui) |
||||
<:jeux:retourner_jeu|jeux_icone_horizontale{#URL_ECRIRE{jeux_voir,id_jeu=#ID_JEU},#CHEMIN{img/jeu-loupe.png}}:> |
||||
<:jeux:liste_jeux|jeux_icone_horizontale{#URL_ECRIRE{jeux_tous},#CHEMIN{img/jeux-tous.png}}:> |
||||
] |
||||
[(#ENV{exec}|!={jeux_edit}|oui) |
||||
[(#ENV{exec}|=={jeux_voir}|oui) |
||||
[(#STATUT|=={publie}|oui) |
||||
[(#SET{url,[(#URL_PAGE{jeu,id_jeu=#ID_JEU}|parametre_url{var_mode,calcul})]})] |
||||
<:jeux:voir_en_ligne|jeux_icone_horizontale{#GET{url},racine-24.gif}:> |
||||
] |
||||
] |
||||
[(#ENV{exec}|!={jeux_voir}|oui) |
||||
<:jeux:voir_jeu|jeux_icone_horizontale{#URL_ECRIRE{jeux_voir,id_jeu=#ID_JEU},#CHEMIN{img/jeu-loupe.png}}:> |
||||
] |
||||
<:jeux:modifier_ce_jeu|jeux_icone_horizontale{#URL_ECRIRE{jeux_edit,id_jeu=#ID_JEU},#CHEMIN{img/jeu-crayon.png}}:> |
||||
] |
||||
<BOUCLE_resultats(JEUX_RESULTATS){id_jeu}{0,1}> |
||||
[(#ENV{exec}|!={jeux_edit}|oui) |
||||
[(#ENV{exec}|!={jeux_resultats_jeu}|oui) |
||||
<:jeux:voir_ses_resultats|jeux_icone_horizontale{#URL_ECRIRE{jeux_resultats_jeu,id_jeu=#ID_JEU},#CHEMIN{img/jeu-laurier.png}}:> |
||||
] |
||||
[(#ENV{exec}|!={jeux_gerer_resultats}|oui) |
||||
[(#AUTORISER{gererresultats}) |
||||
<:jeux:gerer_ses_resultats|jeux_icone_horizontale{#URL_ECRIRE{jeux_gerer_resultats,id_jeu=#ID_JEU},#CHEMIN{img/jeu-laurier.png}}:> |
||||
] |
||||
] |
||||
] |
||||
</BOUCLE_resultats> |
||||
|
||||
</BOUCLE_jeu> |
||||
|
||||
<BOUCLE_auteur(AUTEURS){tous}{id_auteur}{0,1}> |
||||
<strong>#NOM</strong><br /> |
||||
<:jeux:infos_auteur|jeux_icone_horizontale{#URL_ECRIRE{auteur_infos,id_auteur=#ID_AUTEUR},#CHEMIN{images/auteur-24.gif}}:> |
||||
[(#ENV{exec}|=={jeux_gerer_resultats}|oui) |
||||
<:jeux:voir_ses_resultats|jeux_icone_horizontale{#URL_ECRIRE{jeux_resultats_auteur,id_auteur=#ID_AUTEUR},#CHEMIN{img/jeu-laurier.png}}:> |
||||
] |
||||
[(#ENV{exec}|!={jeux_gerer_resultats}|oui) |
||||
[(#AUTORISER{gererresultats}) |
||||
<:jeux:gerer_ses_resultats|jeux_icone_horizontale{#URL_ECRIRE{jeux_gerer_resultats,id_auteur=#ID_AUTEUR},#CHEMIN{img/jeu-laurier.png}}:> |
||||
] |
||||
] |
||||
</BOUCLE_auteur> |
||||
|
||||
#SET{resultats,non} |
||||
<BOUCLE_tous_resultats(JEUX_RESULTATS){0,1}>[(#AUTORISER{gererresultats}) #SET{resultats,oui}]</BOUCLE_tous_resultats> |
||||
|
||||
[(#ENV{exec}|=={jeux_edit}|oui) |
||||
<:jeux:liste_jeux|jeux_icone_horizontale{#URL_ECRIRE{jeux_tous},#CHEMIN{img/jeux-tous.png}}:> |
||||
] |
||||
|
||||
[(#ENV{boite}|=={accueil}|oui) |
||||
[(#ENV{exec}|=={jeux_tous}|oui) |
||||
<:jeux:nouveau_jeu|jeux_icone_horizontale{#URL_ECRIRE{jeux_edit,nouveau=oui},#CHEMIN{img/jeu-nouveau.png}}:> |
||||
] |
||||
[(#ENV{exec}|!={jeux_tous}|oui) |
||||
<:jeux:liste_jeux|jeux_icone_horizontale{#URL_ECRIRE{jeux_tous},#CHEMIN{img/jeux-tous.png}}:> |
||||
] |
||||
[(#GET{resultats}|=={oui}|oui) |
||||
[(#ENV{exec}|match{'^jeux_gerer_resultats|jeux_resultats_jeu|jeux_resultats_auteur$'}|?{[(#ENV{id_foo}|>{0}|oui)]}) |
||||
<:jeux:gerer_resultats|jeux_icone_horizontale{#URL_ECRIRE{jeux_gerer_resultats},#CHEMIN{img/jeu-laurier.png}}:> |
||||
] |
||||
] |
||||
[(#ENV{exec}|=={jeux_tous}|oui) |
||||
[(#ENV{config}|=={oui}|oui) |
||||
<:jeux:configurer_jeux|jeux_icone_horizontale{#URL_ECRIRE{cfg,cfg=jeux},#CHEMIN{img/jeu-cfg.png}}:> |
||||
] |
||||
<:jeux:doc_jeux|jeux_icone_horizontale{http://www.spip-contrib.net/Des-jeux-dans-vos-articles,#CHEMIN{img/jeu-24.png}}:> |
||||
<:jeux:doc_scores|jeux_icone_horizontale{http://www.spip-contrib.net/Des-jeux-avec-des-scores,#CHEMIN{img/jeu-24.png}}:> |
||||
] |
||||
<br /><i><b>Attention</b> : partie du plugin en cours de développement. |
||||
Merci de rapporter les bugs éventuels et/ou de contribuer aux améliorations.</i> |
||||
] |
||||
|
||||
<//B_auteur> |
||||
<//B_jeu> |
||||
[(#VAL{1}|fin_boite_info)] |
@ -0,0 +1 @@
|
||||
0<BOUCLE_jeux(JEUX){id_jeu?}{statut==refuse|publie}><BOUCLE_resultats(JEUX_RESULTATS){!par date}{id_jeu}{id_auteur?}{0,1}>[,(#ID_AUTEUR|?{#ID_RESULTAT})]</BOUCLE_resultats></BOUCLE_jeux> |
@ -0,0 +1,26 @@
|
||||
#CACHE{0} |
||||
<BOUCLE_jeu(JEUX){id_jeu}> |
||||
[(#SET{grand_titre,[(#REM|sinon{<:jeux:modifier_jeu:>}|replace{@id@,#ID_JEU})]})] |
||||
[(#SET{contenu,[(#CONTENU*|replace{</?jeux>,}|entites_html)]})] |
||||
[(#SET{titre_prive,[(#TITRE_PRIVE|sinon{<:jeux:sans_titre_prive:>})]})] |
||||
#SET{type_jeu,#TYPE_JEU} |
||||
#SET{type_resultat,#TYPE_RESULTAT} |
||||
</BOUCLE_jeu> |
||||
<//B_jeu> |
||||
<label><span class='titrem'><:jeux:jeu_titre_prive:></span><br /> |
||||
<input type="text" name="titre_prive" value="[(#GET{titre_prive}|textebrut)]" |