Support des styles[arcade] Fichiers html

Le support pour tout ce qui concerne les styles de phpBB toutes versions.
Avatar de cabot
France cabot
Auteur du sujet
Messages : 34
Enregistré le : 13 décembre 2021
Liquide : 265.35
Pays :
France (fr)
France

[arcade] Fichiers html

Message par France cabot » 08 mai 2024, 12:43
Hello,

Je ne trouve pas à quels endroits sont retournés ces fichiers qui affichent des blocs de classement :
  • arcade_toppoints.html
  • arcade_topultime.html
  • arcade_topvictories.html
J'ai tout le reste sauf ceux-là.
La structure de leur code est redondante, du coup je voudrais les appeler en include en passant des variables comme je l'ai fait pour d'autre blocs.

Je suis pratiquement au bout, il restera certainement des choses à affiner mais le plus gros est fait. 8-)

Edit : ah si c'est bon, ils sont ajaxifiés. Ca m'arrange pas. :mrgreen:
Avatar de cabot
France cabot
Auteur du sujet
Messages : 34
Enregistré le : 13 décembre 2021
Liquide : 265.35
Pays :
France (fr)
France

[arcade] Fichiers html

Message par France cabot » 08 mai 2024, 17:26
Alors j'ai un problème avec la portée des variables dans la boucle.

J'ai créé un fichier générique utilisé pour arcade_toppoints.html, arcade_topultime.html et arcade_topvictories.html.
top_block.html

code : Tout sélectionner

<div class="forabg text-center">
	<div class="inner">
		<ul class="topiclist">
			<li class="header">
				<dl>
					<dt>{{ blockTitle }}</dt>
					<dd>&nbsp;</dd>
				</dl>
			</li>
		</ul>
		<ul class="topiclist forums">
			<li class="bg1 display-table" style="--col1: 12%; --col2: 50%;">
				<div class="display-tableheading">
					<div class="bg3 display-tablerow cell-border">
						<div class="display-tablehead">{{ lang('POSITION') }}</div>
						<div class="display-tablehead">{{ lang('PLAYER') }}</div>
						<div class="display-tablehead">{{ cellTitle }}</div>
					</div>
				</div>
				<div class="display-tablebody">
					{% for item in attribute(_context, rankLoopName) %}
					<div class="display-tablerow cell-border {% if loop.index is even %}bg2{% else %}bg1{% endif %}">
						<div class="display-tablecell">{{ item.CLASSEMENT }}</div>
						<div class="display-tablecell">{{ item.PLAYER }}</div>
						<div class="display-tablecell">{% if modalHref %}<a href="#" onclick="showModalBox('{{ modalHref }}', {{ item.UID }}); return false;">{{ item.cellContent }}</a>{% else %}{{ item.cellContent }}{% endif %}</div>
					</div>
					{% endfor %}
				</div>
			</li>
		{% if INDEX_TOP_PLAYERS %}
			<li class="padding-5px text-bold clearfix">
				{% for begin in attribute(_context, paginationBeginLoopName) %}
				<a href="#" class="float-left" onclick="{{ functionName  }}('{{ U_RA_TOPPLAYERS }}', 0, 0, 0, 0); return false;">{{ lang('BEGIN') }}</a>
				{% endfor %}
				{% for next in attribute(_context, paginationNextLoopName) %}
				<a href="#" class="float-right" onclick="{{ functionName  }}('{{ U_RA_TOPPLAYERS }}', {{ next.START }}, {{ next.argPlace }}, {{ next.argNumber }}, {{ next.argPlaceTemp }}); return false;">{{ lang('NEXT') }}</a>
				{% endfor %}
			</li>
		{% endif %}
		{% if CAT_TOP_PLAYERS %}
			<li class="padding-5px text-bold clearfix">
				{% for begin in attribute(_context, paginationBeginLoopName) %}
				<a href="#" class="float-left" onclick="{{ functionName  }}('{{ U_RA_TOPPLAYERSCAT }}', 0, 0, 0, 0, {{ blockId }}); return false;">{{ lang('BEGIN') }}</a>
				{% endfor %}
				{% for next in attribute(_context, paginationNextLoopName) %}
				<a href="#" class="float-right" onclick="{{ functionName  }}('{{ U_RA_TOPPLAYERSCAT }}', {{ next.START }}, {{ next.argPlace }}, {{ next.argNumber }}, {{ next.argPlaceTemp }}); return false;">{{ lang('NEXT') }}</a>
				{% endfor %}
			</li>
		{% endif %}
		</ul>
	</div>
</div>
Ensuite je l'appelle en include en passant les argument, par exemple dans arcade_toppoints.html :

code : Tout sélectionner

{{ include(
	'blocks/top_block.html',
	{
		'blockId': 'toppoints',
		'blockTitle': lang('TOP_POINTS'),
		'cellTitle': lang('POINTS'),
		'rankLoopName': 'points_row',
		'cellContent': TOTALPOINTS,
		'paginationBeginLoopName': 'points_begin',
		'paginationNextLoopName': 'points_next',
		'functionName': 'getToppoints',
		'argPlace': PLACE_TOPPOINTS,
		'argNumber': NBPOINTSPREC,
		'argPlaceTemp': PLACETEMP2
	}
) }}
Mais TOTALPOINTS, PLACE_TOPPOINTS, NBPOINTSPREC et PLACETEMP2 sont retournés vides dans leurs boucles respectives. Donc j'imagine un problème de portée.
Tu as une idée, vieux breton ?
Avatar de Sylver35
France Sylver35
Administrateur du site
Messages : 760
Enregistré le : 13 janvier 2018
Liquide : 3 859.60
Relax-Arcade :  1
Localisation : Bretagne
Pays :
France (fr)
France

[arcade] Fichiers html

Message par France Sylver35 » 09 mai 2024, 23:04
Salut cabot,

Comme tu peut le voir dans ces fichiers avec une indentation à la nawak, je ne m'était pas penché encore dessus pour les refaire et les optimiser :o

Bref, les variables TOTALPOINTS, PLACE_TOPPOINTS, NBPOINTSPREC et PLACETEMP2 doivent être formées comme toutes variables issues de php dans phpbb sous ces formes : {{ TOTO }} ou {TOTO}

Mais, de plus, ces variables sont dans des boucles.
Début de boucle : <!-- BEGIN points_next -->
Une variable dans la boucle : {points_next.PLACE_TOPPOINTS}
Fin de boucle : <!-- END points_next -->

Attention, elles ne seront remplies que si les conditions de leur affichage sont activées.
Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche !
Avatar de cabot
France cabot
Auteur du sujet
Messages : 34
Enregistré le : 13 décembre 2021
Liquide : 265.35
Pays :
France (fr)
France

[arcade] Fichiers html

Message par France cabot » 10 mai 2024, 11:25
En fait ça y est, j'ai résolu mon problème !
Il me fallait simplement utiliser la fonction attribute de Twig (comme j'ai fait pour le nom des boucles).

Du coup au lieu d'avoir les trois fichiers avec du code redondant, j'ai recréé mon modèle avec attribute(foo, bar).
block/top_block.html :

code : Tout sélectionner

...
{% for item in attribute(_context, rankLoopName) %}
<div class="display-tablerow cell-border {% if loop.index is even %}bg2{% else %}bg1{% endif %}">
	<div class="display-tablecell">{{ item.CLASSEMENT }}</div>
	<div class="display-tablecell">{{ item.PLAYER }}</div>
	<div class="display-tablecell">{% if modalHref %}<a href="#" onclick="showModalBox('{{ modalHref }}', {{ item.UID }}); return false;">{{ attribute(item, cellContent) }}</a>{% else %}{{ attribute(item, cellContent) }}{% endif %}</div>
</div>
{% endfor %}
...
{% for next in attribute(_context, paginationNextLoopName) %}
<a href="#" class="float-right" onclick="{{ functionName  }}('{{ U_RA_TOPPLAYERS }}', {{ next.START }}, {{ attribute(next, argPlace) }}, {{ attribute(next, argNumber) }}, {{ attribute(next, argPlaceTemp) }}); return false;">{{ lang('NEXT') }}</a>
{% endfor %}
...etc.
Et j'appelle ce modèle en include dans les trois fichiers, en passant les variables de template avec guillemets simples dans les arguments, exemple pour arcade_toppoints.html :

code : Tout sélectionner

{{ include(
	'blocks/top_block.html',
	{
		'blockTitle': lang('TOP_POINTS'),
		'cellTitle': lang('POINTS'),
		'rankLoopName': 'points_row',
		'cellContent': 'TOTALPOINTS',
		'paginationBeginLoopName': 'points_begin',
		'paginationNextLoopName': 'points_next',
		'functionName': 'getToppoints',
		'argPlace': 'PLACE_TOPPOINTS',
		'argNumber': 'NBPOINTSPREC',
		'argPlaceTemp': 'PLACETEMP2'
	}
) }}
8-)
Avatar de cabot
France cabot
Auteur du sujet
Messages : 34
Enregistré le : 13 décembre 2021
Liquide : 265.35
Pays :
France (fr)
France

[arcade] Fichiers html

Message par France cabot » 10 mai 2024, 13:35
J'ai un autre fichier dont je ne sais pas quoi faire. :mrgreen:
arcade_statistique.html

J'en ai pas trouvé de trace non plus dans le PHP.
Avatar de Sylver35
France Sylver35
Administrateur du site
Messages : 760
Enregistré le : 13 janvier 2018
Liquide : 3 859.60
Relax-Arcade :  1
Localisation : Bretagne
Pays :
France (fr)
France

[arcade] Fichiers html

Message par France Sylver35 » 11 mai 2024, 15:18
En effet, c'est encore du contenu qui ne sert à rien.
Fichier contenant le code de la page permettant de jouer, rien à voir avec des éventuelles statistiques :mrgreen:
Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche !
Avatar de cabot
France cabot
Auteur du sujet
Messages : 34
Enregistré le : 13 décembre 2021
Liquide : 265.35
Pays :
France (fr)
France

[arcade] Fichiers html

Message par France cabot » 11 mai 2024, 18:23
Dans le zip que je t'ai filé en MP, il y a une coquille à corriger.
Rien de grave, il manque deux classes. :mrgreen:

Dans template/blocks/championnat_classement_block.html
Trouver :

code : Tout sélectionner

                    <ul class="display-flex justify-content-center flex-wrap row-gap-5px padding-5px victories">
                        {% for category in categorie_row %}
                        <li>
                            <span><i class="fa fa-trophy fa-3x fa-fw icon-text"><span>{{ loop.index }}</span></i><br>
                            {{ category.CLASSEMENT ~ lang('COLON')}} {{ category.PLAYER }} ({{ category.TOTALPOINTS }})<br>
                            {{ category.NBVICTORIES }} {{ lang('ARCADE_VICTORIES') }}
                        </li>
                        {% endfor %}
                    </ul>
Remplacer par :

code : Tout sélectionner

                    <ul class="display-flex justify-content-center flex-wrap row-gap-5px padding-5px victories victories-block">
                        {% for category in categorie_row %}
                        <li>
                            <span><i class="fa fa-trophy fa-3x fa-fw fa-bounce icon-text"><span>{{ loop.index }}</span></i><br>
                            {{ category.CLASSEMENT ~ lang('COLON')}} {{ category.PLAYER }} ({{ category.TOTALPOINTS }})<br>
                            {{ category.NBVICTORIES }} {{ lang('ARCADE_VICTORIES') }}
                        </li>
                        {% endfor %}
                    </ul>
Edit : pas la peine je t'ai refait une archive corrigée.