Déplacer le sondage après le premier message du sujet
Posté : 11 févr. 2026, 13:35
C'est possible mais il faut prendre en compte le fait qu'un sujet peut avoir plusieurs pages et que le sondage est affiché sur toutes ces pages.
Il faut donc ajouter des conditions : si on est sur la première page du sujet, alors on l'affiche sous le premier message qui le présente, sinon avant les messages sur toutes les autres pages (comportement natif).
1/ Naviguez jusqu’à ./styles/prosilver/template et ouvrez le fichier
Remplacez par :
Fermez et enregistrez la modification.
Trouvez :
Juste avant ajoutez ceci :
Fermez et enregistrez la modification.
2/ Naviguez jusqu’à ./styles/prosilver/template et créez un nouveau fichier appelé
Fermez et enregistrez le fichier.
Purgez le cache.
Il faut donc ajouter des conditions : si on est sur la première page du sujet, alors on l'affiche sous le premier message qui le présente, sinon avant les messages sur toutes les autres pages (comportement natif).
1/ Naviguez jusqu’à ./styles/prosilver/template et ouvrez le fichier
viewtopic_body.html et trouver :
Code : Tout sélectionner
<!-- IF S_HAS_POLL -->
<form method="post" action="{S_POLL_ACTION}" data-ajax="vote_poll" data-refresh="true" class="topic_poll">
<div class="panel">
<div class="inner">
<div class="content">
<h2 class="poll-title"><!-- EVENT viewtopic_body_poll_question_prepend -->{POLL_QUESTION}<!-- EVENT viewtopic_body_poll_question_append --></h2>
<p class="author">{L_POLL_LENGTH}<!-- IF S_CAN_VOTE and L_POLL_LENGTH --><br /><!-- ENDIF --><!-- IF S_CAN_VOTE --><span class="poll_max_votes">{L_MAX_VOTES}</span><!-- ENDIF --></p>
<fieldset class="polls">
<!-- BEGIN poll_option -->
<!-- EVENT viewtopic_body_poll_option_before -->
<dl class="<!-- IF poll_option.POLL_OPTION_VOTED -->voted<!-- ENDIF --><!-- IF poll_option.POLL_OPTION_MOST_VOTES --> most-votes<!-- ENDIF -->"<!-- IF poll_option.POLL_OPTION_VOTED --> title="{L_POLL_VOTED_OPTION}"<!-- ENDIF --> data-alt-text="{L_POLL_VOTED_OPTION}" data-poll-option-id="{poll_option.POLL_OPTION_ID}">
<dt><!-- IF S_CAN_VOTE --><label for="vote_{poll_option.POLL_OPTION_ID}">{poll_option.POLL_OPTION_CAPTION}</label><!-- ELSE -->{poll_option.POLL_OPTION_CAPTION}<!-- ENDIF --></dt>
<!-- IF S_CAN_VOTE --><dd style="width: auto;" class="poll_option_select"><!-- IF S_IS_MULTI_CHOICE --><input type="checkbox" name="vote_id[]" id="vote_{poll_option.POLL_OPTION_ID}" value="{poll_option.POLL_OPTION_ID}"<!-- IF poll_option.POLL_OPTION_VOTED --> checked="checked"<!-- ENDIF --> /><!-- ELSE --><input type="radio" name="vote_id[]" id="vote_{poll_option.POLL_OPTION_ID}" value="{poll_option.POLL_OPTION_ID}"<!-- IF poll_option.POLL_OPTION_VOTED --> checked="checked"<!-- ENDIF --> /><!-- ENDIF --></dd><!-- ENDIF -->
<dd class="resultbar<!-- IF not S_DISPLAY_RESULTS --> hidden<!-- ENDIF -->"><div class="<!-- IF poll_option.POLL_OPTION_PCT < 20 -->pollbar1<!-- ELSEIF poll_option.POLL_OPTION_PCT < 40 -->pollbar2<!-- ELSEIF poll_option.POLL_OPTION_PCT < 60 -->pollbar3<!-- ELSEIF poll_option.POLL_OPTION_PCT < 80 -->pollbar4<!-- ELSE -->pollbar5<!-- ENDIF -->" style="width:{poll_option.POLL_OPTION_PERCENT_REL};">{poll_option.POLL_OPTION_RESULT}</div></dd>
<dd class="poll_option_percent<!-- IF not S_DISPLAY_RESULTS --> hidden<!-- ENDIF -->"><!-- IF poll_option.POLL_OPTION_RESULT == 0 -->{L_NO_VOTES}<!-- ELSE -->{poll_option.POLL_OPTION_PERCENT}<!-- ENDIF --></dd>
</dl>
<!-- EVENT viewtopic_body_poll_option_after -->
<!-- END poll_option -->
<dl class="poll_total_votes<!-- IF not S_DISPLAY_RESULTS --> hidden<!-- ENDIF -->">
<dt> </dt>
<dd class="resultbar">{L_TOTAL_VOTES}{L_COLON} <span class="poll_total_vote_cnt">{TOTAL_VOTES}</span></dd>
</dl>
<!-- IF S_CAN_VOTE -->
<dl style="border-top: none;" class="poll_vote">
<dt> </dt>
<dd class="resultbar"><input type="submit" name="update" value="{L_SUBMIT_VOTE}" class="button1" /></dd>
</dl>
<!-- ENDIF -->
<!-- IF not S_DISPLAY_RESULTS -->
<dl style="border-top: none;" class="poll_view_results">
<dt> </dt>
<dd class="resultbar"><a href="{U_VIEW_RESULTS}">{L_VIEW_RESULTS}</a></dd>
</dl>
<!-- ENDIF -->
</fieldset>
<div class="vote-submitted hidden">{L_VOTE_SUBMITTED}</div>
</div>
</div>
{S_FORM_TOKEN}
{S_HIDDEN_FIELDS}
</div>
</form>
<hr />
<!-- ENDIF -->Code : Tout sélectionner
{% if S_HAS_POLL and CURRENT_PAGE > 1 %}
{% include 'viewtopic_poll_block.html' %}
{% endif %}Trouvez :
Code : Tout sélectionner
<!-- EVENT viewtopic_body_postrow_post_after -->Code : Tout sélectionner
{% if S_HAS_POLL and (CURRENT_PAGE == 1 and postrow.S_FIRST_ROW ) %}
{% include 'viewtopic_poll_block.html' %}
{% endif %}2/ Naviguez jusqu’à ./styles/prosilver/template et créez un nouveau fichier appelé
viewtopic_poll_block.html, ouvrez-le et collez ce code dedans :
Code : Tout sélectionner
<form method="post" action="{S_POLL_ACTION}" data-ajax="vote_poll" data-refresh="true" class="topic_poll">
<div class="panel">
<div class="inner">
<div class="content">
<h2 class="poll-title"><!-- EVENT viewtopic_body_poll_question_prepend -->{POLL_QUESTION}<!-- EVENT viewtopic_body_poll_question_append --></h2>
<p class="author">{L_POLL_LENGTH}<!-- IF S_CAN_VOTE and L_POLL_LENGTH --><br /><!-- ENDIF --><!-- IF S_CAN_VOTE --><span class="poll_max_votes">{L_MAX_VOTES}</span><!-- ENDIF --></p>
<fieldset class="polls">
<!-- BEGIN poll_option -->
<!-- EVENT viewtopic_body_poll_option_before -->
<dl class="<!-- IF poll_option.POLL_OPTION_VOTED -->voted<!-- ENDIF --><!-- IF poll_option.POLL_OPTION_MOST_VOTES --> most-votes<!-- ENDIF -->"<!-- IF poll_option.POLL_OPTION_VOTED --> title="{L_POLL_VOTED_OPTION}"<!-- ENDIF --> data-alt-text="{L_POLL_VOTED_OPTION}" data-poll-option-id="{poll_option.POLL_OPTION_ID}">
<dt><!-- IF S_CAN_VOTE --><label for="vote_{poll_option.POLL_OPTION_ID}">{poll_option.POLL_OPTION_CAPTION}</label><!-- ELSE -->{poll_option.POLL_OPTION_CAPTION}<!-- ENDIF --></dt>
<!-- IF S_CAN_VOTE --><dd style="width: auto;" class="poll_option_select"><!-- IF S_IS_MULTI_CHOICE --><input type="checkbox" name="vote_id[]" id="vote_{poll_option.POLL_OPTION_ID}" value="{poll_option.POLL_OPTION_ID}"<!-- IF poll_option.POLL_OPTION_VOTED --> checked="checked"<!-- ENDIF --> /><!-- ELSE --><input type="radio" name="vote_id[]" id="vote_{poll_option.POLL_OPTION_ID}" value="{poll_option.POLL_OPTION_ID}"<!-- IF poll_option.POLL_OPTION_VOTED --> checked="checked"<!-- ENDIF --> /><!-- ENDIF --></dd><!-- ENDIF -->
<dd class="resultbar<!-- IF not S_DISPLAY_RESULTS --> hidden<!-- ENDIF -->"><div class="<!-- IF poll_option.POLL_OPTION_PCT < 20 -->pollbar1<!-- ELSEIF poll_option.POLL_OPTION_PCT < 40 -->pollbar2<!-- ELSEIF poll_option.POLL_OPTION_PCT < 60 -->pollbar3<!-- ELSEIF poll_option.POLL_OPTION_PCT < 80 -->pollbar4<!-- ELSE -->pollbar5<!-- ENDIF -->" style="width:{poll_option.POLL_OPTION_PERCENT_REL};">{poll_option.POLL_OPTION_RESULT}</div></dd>
<dd class="poll_option_percent<!-- IF not S_DISPLAY_RESULTS --> hidden<!-- ENDIF -->"><!-- IF poll_option.POLL_OPTION_RESULT == 0 -->{L_NO_VOTES}<!-- ELSE -->{poll_option.POLL_OPTION_PERCENT}<!-- ENDIF --></dd>
</dl>
<!-- EVENT viewtopic_body_poll_option_after -->
<!-- END poll_option -->
<dl class="poll_total_votes<!-- IF not S_DISPLAY_RESULTS --> hidden<!-- ENDIF -->">
<dt> </dt>
<dd class="resultbar">{L_TOTAL_VOTES}{L_COLON} <span class="poll_total_vote_cnt">{TOTAL_VOTES}</span></dd>
</dl>
<!-- IF S_CAN_VOTE -->
<dl style="border-top: none;" class="poll_vote">
<dt> </dt>
<dd class="resultbar"><input type="submit" name="update" value="{L_SUBMIT_VOTE}" class="button1" /></dd>
</dl>
<!-- ENDIF -->
<!-- IF not S_DISPLAY_RESULTS -->
<dl style="border-top: none;" class="poll_view_results">
<dt> </dt>
<dd class="resultbar"><a href="{U_VIEW_RESULTS}">{L_VIEW_RESULTS}</a></dd>
</dl>
<!-- ENDIF -->
</fieldset>
<div class="vote-submitted hidden">{L_VOTE_SUBMITTED}</div>
</div>
</div>
{S_FORM_TOKEN}
{S_HIDDEN_FIELDS}
</div>
</form>
<hr />
Purgez le cache.