I encara altres mitjans de complicar-se la vida!

Posar notes als jocs, anunciar les dates de sortida

El nostre lloc té ara tot el que havíem previst al començament:
-  la divisió en seccions temàtiques (per tipus de jocs);
-  a cada article s’hi indica a quines màquines afecta;
-  la gestió dels tipus d’articles (proves, notícies, visualitzacions prèvies...).

L’etapa següent consistirà en crear navegacions paral·leles (navegar segons una única màquina, o segons un tipus d’articles).

Però abans de llançar-nos en el desenvolupament d’aquestes navegacions transversals, compliquem una mica l’assumpte, afegint-hi dos elements més indispensables als llocs de videojocs:
-  la nota donada a un joc;
-  la data de sortida oficial del joc.

A partir d’ara, amb el sistema de paraules clau, aquests dos elements haurien de ser fàcils d’instal·lar. Ells mateixos permetran proposar les navegacions transversals (en concret, una pàgina amb els jocs que tinguin les millors notes i una pàgina per anunciar les properes sortides).

L’assignació d’una nota a un joc

És lògic que es vulgui assignar una nota quan acabem una prova:
-  per les visualitzacions prèvies, és massa aviat, ja que no es tracta d’una versió definitiva; pels altres tipus d’articles (notícies, solucions...), això no tindria cap mena de sentit;
-  és possible assignar una nota a la secció-joc, ja que aquesta secció pot presentar diferents versions d’un joc.

Per tant, decidim que, pel funcionament del nostre lloc Web, la nota estarà lligada a un article de proves. En una mateixa secció d’un joc, com que hi poden haver diverses proves diferents (segons les crítiques, segons les màquines...), hi haurà diverses notes, associades a aquestes proves.

Arbitràriament, escollim una puntuació sobre 10 (des de l’1 pel pèssim, al 10 per l’excel·lent).

Tornem a la pàgina de gestió de les paraules clau:
-  creem un grup de paraules titulat «Nota»;
-  en aquest grup de paraules, creem 10 paraules clau, el nom de les quals sigui successivament «01», «02», ..., «09», «10». Això ens dóna el següent:

image 120 x 146

Tal i com passava amb les màquines, podem escollir assignar un logotip diferent a cada nota (per exemple, estrelles), i a continuació en els esquelets fer servir els logotips en lloc del número indicat per la paraula clau en lletra. Per pura mandra, aquí ens acontentarem amb fer servir el text de les paraules clau.

D’ara en endavant, abans de la publicació d’una prova, a més de seleccionar les paraules clau corresponents al tipus d’article (per tant, «Prova») i les de les màquines relacionades, haurem de pensar en escollir una nota. Si volem un funcionament coherent, és evident que hem de seleccionar només una única nota per article.

Integrar la nota en els esquelets

El bucle que ens permet mostrar la nota d’un article és molt simple.

-  Dins «article.html», emplacem la nota de l’article sota la signatura de l’autor (abans el #PS i les #NOTES):

	<BOUCLE_note(MOTS){id_article}{inverse}{type=Note}>
		[<p align="right"><b>NOTE : (#TITRE)/10</b>]
	</BOUCLE_note>

Afegim, igualment, la menció de la nota en les «altres proves d’aquest joc». El BOUCLE_tests es modifica d’aquesta manera:

	<B_tests><p>Les proves d'aquest joc:
	<ul>
	<BOUCLE_tests(ARTICLES){id_rubrique}{titre_mot=Test}>
		<li>
		<BOUCLE_tests_machines(MOTS){id_article}{type=Machines}>
			[(#LOGO_MOT)]
		</BOUCLE_tests_machines>
		<a href="#URL_ARTICLE">#TITRE</a> 
		<BOUCLE_autre_note(MOTS){id_article}{inverse}{type=Note}>
			[ - NOTE : (#TITRE)/10]
		</BOUCLE_autre_note>
		- [(#DATE|affdate)]
		</BOUCLE_tests>
	</ul>
	</B_tests>

-  A «rubrique.html», aquest mateix BOUCLE_tests s’ha de reemplaçar directament.

Ja està, per integrar una nota de prova no hem trigat ni cinc minuts! Però com que això és massa fàcil, a continuació veurem com aprofitar en altres bandes aquesta nota atribuïda als jocs.

La data de sortida oficial dels jocs

La publicació de la data de sortida oficial dels jocs és més problemàtica. Efectivament, una data no pot ser ella mateixa una paraula clau (ja hem subratllat que les paraules clau havien de ser elements estables de l’estructura: per tant, no crearem paraules clau de dates!).

Existeix una possibilitat: fer servir la data de primera publicació de certs articles. Problema: quins articles?

-  Les dates de sortida són conegudes (de manera més o menys aproximada) força temps a l’avançada, per tant no podem esperar que hi hagi articles dedicats al joc per poder-lo anunciar.

-  Els articles d’un joc poden tractar d’una o diverses plataformes. Ara, les dates de sortides segons les plataformes és molt variable. Per tant, difícilment es poden fer servir articles comuns a diverses plataformes per anunciar les dates. Per exemple, Alone in the Dark: el nou malson, és molt similar entre les seves versions per a Playstation 2 i Dreamcast, és per tant lògic dedicar una prova única a les dues versions; per contra, les dates de sortida són diferents per aquestes plataformes.

-  Mentre el joc no es comercialitza, les dates anunciades ha de ser corregides regularment (retards, una precisió més gran...). Per tant, el webmestre ha de trobar fàcilment on ha de modificar aquestes informacions.

Dins l’estructura del nostre lloc Web, es pot considerar que la data de sortida d’un joc és una informació independent de les altres informacions (proves, vistes preliminars, etc.); per tant, no podem fer servir la «data de primera publicació» d’un altre article per indicar aquesta data de sortida.

Procedirem de la següent manera (certament n’existeixen altres):

-  creem un nou tipus d’article (a més de les proves, vistes preliminars, etc.); instal·lat en el grup «Type_article», l’anomenarem «Date_sortie»;

-  dins la secció del joc, creem tants articles necessaris com les diverses versions del joc amb les seves diferents dates de sortida. Aquests articles estan buits: només tenen un títol i una data de «publicació» (arreglada manualment segons la data de sortida del joc). El seu títol en sí no té cap mena d’importància, no el mostrarem a l’espai públic; per contra, aquest títol facilitarà la navegació dins el lloc privat;

-  a cada article associat a «Date_sortie», se li atribueix igualment la paraula clau de la màquina relacionada per aquesta data.

Per exemple, aquí podeu veure com procedir amb Resident Evil: Codi Verònica:

-  crear un nou article dins la secció «Codi Verònica»;
-  titular aquest article «Sortida Verònica Dreamcast» (títol de conveniència, sense cap més interès que el d’identificar aquests articles dins l’espai privat);
-  assignar les paraules clau «Dreamcast» i «Date_sortie» a aquest article;
-  «publicar» l’article, i modificar la seva data a «maig 2000» (si no coneixem el dia exacte, es pot seleccionar «n.c.» al menú desplegable del dia);

-  tornar a començar l’operació amb un nou article «Sortida Verònica PS2»;
-  assignar-li les paraules clau «Playstation 2» i «Date_sortie»;
-  publicar i modificar la data (13 setembre 2001).

Pel primer article, això dóna:

image 300 x 232

L’autor d’aquests articles és totalment indiferent (inútil perdre el temps suprimint-lo, de tota manera no es farà servir).

Fixeu-vos amb l’interès de la nostra manera de mostrar els articles d’una secció en funció de certs tipus d’articles (proves, vistes preliminars...): els articles que tinguin com a paraula clau «Date_sortie» no es mostren (amb els esquelets estàndard de SPIP, aquests «articles» tot i estar buits de contingut es mostrarien igual que els altres).

Mostrar la data en els articles

Quan ens trobem en un article (d’un joc), la (les) data(es) de sortida estan contingudes dins dels articles associats a la paraula «Date_sortie», situats en la mateixa secció. Per conèixer la data de sortida d’un joc a partir d’un article de prova (per exemple), cal recuperar el (o els) article(s) instal·lats en la mateixa secció i que tinguin com a paraula clau «Date_sortie».

A l’esquelet «article.html», inserim (per exemple just desprès del títol):

		<BOUCLE_sortie(ARTICLES){id_rubrique}{titre_mot=Date_sortie}>
		<li> #TITRE :
		[<b>(#DATE|affdate)</b>]
		</BOUCLE_sortie>

No obstant, havíem decidit de no fer servir el títol de l’article que contenia la data. Efectivament, nosaltres desitgem unificar la presentació d’aquesta informació, però sense obligar-nos a agafar el títol sempre de la mateixa manera. Per tant, no mostrarem el #TITRE d’aquest article-enganyós (tampoc el títol de la secció, coneixem ja el títol del joc, inútil recordar-lo aquí). Al contrari, per diferenciar (eventualment) les diferents dates de sortida en funció de les màquines, hi hem d’inserir:

	<BOUCLE_sortie(ARTICLES){id_rubrique}{titre_mot=Date_sortie}>
	<li> Date de sortie
		<BOUCLE_machine_sortie(MOTS){id_article}{type=Machines}{", "}>#TITRE</BOUCLE_machine_sortie> :
	[<b>(#DATE|affdate)</b>]
	</BOUCLE_sortie>

Llavors això ens mostrarà:
-  Data de sortida Playstation: 22 agost 2001
-  Data de sortida Dreamcast: maig 2001

Però això encara no ens satisfà (és un tutorial, tenim el dret de ser exigents!): el BOUCLE_sortie mostra les dates de sortida a totes les màquines; però el nostre article pot no tractar de totes aquestes màquines. Per tant, volem mostrar només les dates de sortida corresponents a les màquines tractades per l’article.

Atenció, això fa servir ja una subtilesa dels bucles:

<BOUCLE_mac2(MOTS){id_article}{type=Machines}>
	<BOUCLE_sortie(ARTICLES){id_rubrique}{titre_mot=Date_sortie}>
	<BOUCLE_verifier_mot(ARTICLES){id_article}{id_mot}>
	<li> Date de sortie
		<BOUCLE_machine_sortie(MOTS){id_article}{type=Machines}{", "}>#TITRE</BOUCLE_machine_sortie> :
	[<b>(#DATE|affdate)</b>]
	</BOUCLE_verifier_mot>
	</BOUCLE_sortie>
</BOUCLE_mac2>

Reconeixeu els BOUCLE_sortie i BOUCLE_machine_sortie, que no hem modificat. Al contrari, apareixen dos bucles.

(1) El conjunt esta situat dins un BOUCLE_mac2, que recuperarà les paraules clau de les màquines associades a aquest article. A l’interior d’aquest bucle, tenim per tant un cert valor per «id_mot» (l’identificador de cada màquina relacionada per l’article).

(2) El BOUCLE_sortie, inalterat, recupera tots els articles de la secció associats a la paraula clau «Date_sortie». Fixeu-vos bé: aquest bucle no utilitza «id_mot», ja que els articles d’aquest bucle són a la vegada bucles associats a la paraula clau del qual «id_mot» i aquells que no hi estan associats. Segon punt important, és un bucle (ARTICLES), aquest bucle no ens retorna cap informació sobre les paraules clau; per tant, el valor «id_mot» proporcionat per BOUCLE_mac2 resta inalterat a l’interior d’aquest bucle.

(3) El BOUCLE_verif_mot és una subtilesa interessant: és un bucle (ARTICLES) que selecciona l’article que té com identificador «id_article»; així doncs nosaltres estem ja en el BOUCLE_sortie, que ha retornat ja un article. Per tant, el BOUCLE_verif_mot retorna exactament el mateix resultat que el bucle anterior! A diferència que el BOUCLE_verif_mot instaura un criteri suplementari, {id_mot}, per tant l’article ha d’estar associat a la paraula clau «id_mot». Resultat: si l’article que retorna BOUCLE_sortie està associat a la paraula clau «id_mot», continua; si l’article BOUCLE_sortie no està associat, es para i es passa al següent.

-  Es pot dir també que el BOUCLE_verif_mot és un filtre: agafa l’article i verifica si correspon al criteri de la paraula clau.

-  Es pot presentar d’una altra manera: BOUCLE_verif_mot és només un criteri de selecció suplementari pel BOUCLE_sortie. En efecte, el més simple hauria estat no utilitzar el BOUCLE_verif_mot, però afegir un criteri al BOUCLE_sortie, d’aquesta manera:

<BOUCLE_sortie(ARTICLES){id_rubrique}{id_mot}{titre_mot=Date_sortie}>

És a dir: recuperar els articles de la mateixa secció associats a la màquina «id_mot» i a la paraula clau «Date_sortie».

Això hauria estat més directe, però lamentablement SPIP no accepta aquest tipus de construccions (en un bucle és necessari un sol criteri que porti cap a les paraules clau). Per tant, un bucle com aquest és rebutjat per SPIP.

Us fixareu que hem acumulat quatre bucles successius per mostrar una informació tan poc important com la data de sortida d’un joc! Podem lamentar-ho, però es preferible pensar que, si entenem bé la lògica dels bucles, les possibilitats de SPIP seran molt més àmplies que el que els esquelets estàndard ens deixen suposar.

N.B. Fent servir una mica de codi PHP molt simple, hauríem obtingut el mateix resultat amb un únic bucle. En el desenvolupament d’un lloc, guanyarem temps si preferim la versió resumida que utilitza una mica de PHP. Però havíem de mostrar-vos que alguns resultats es poden obtenir sense necessitat de PHP.

Autor merce Publié le : Mis à jour : 21/03/23

Traductions : عربي, català, Español, français, italiano