Emplacement des codes définis par les accolades {FORUMACTIF_DEFAULT} dans les templates

2 participants

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Emplacement des codes définis par les accolades {FORUMACTIF_DEFAULT} dans les templates

Message par R.P. Gryphus Ven 17 Fév 2023 - 20:59

Bonjour à tous,

J'ai une petite question somme toute assez bête, mais ou peut-on trouver le code source des accolades Forumactif qui sont dans les templates {}? Par exemple, {topics_list_box.row.TOPIC_TYPE}. Je pense que cette accolade influence plus d'un élément et plus précisément tous les préfixes des sujets pour qui l'auteur a choisi l'option "Note" ou "Annonce" ou encore "Annonce Globale". Du coup si je voulais créer une .class pour les styler différemment les uns des autres (note et les annonces), ça me prendrait les codes sources pour bien les identifier. Et cela n'est qu'un example, du coup je demande plus à "ce qu'on m'apprenne à pêcher plutôt qu'on me donne un poisson", c'est-à-dire qu'on m'indique ou trouver ce code plutôt que de simplement me donner la .class à utiliser pour cette accolade utilisée comme exemple.

J'espère que c'était assez clair. Very Happy

EDIT : Ma question tiens toujours, je suis curieux de savoir si c'est possible d'influencer les accolades (qui influencent plusieurs éléments) dans les templates sans avoir recours à un script. Pour le moment en tout cas, j'ai eu recours à un script que je vais vous partager. C'est pour la version AwesomeBB.

Code:
$(document).ready(function() {
  $("div.posts-section > div.posts-content > div.posts-description > h3 > strong:contains('Note:'), div.posts-section > div.posts-content > div.posts-description > h3 > strong:contains('Annonce:'), div.posts-section > div.posts-content > div.posts-description > h3 > strong:contains('Annonce Globale:')").each(function() {
    var text = $(this).text();
    if (text.includes('Note:')) {
      $(this).text(text.replace('Note:', 'Post-It  ')).addClass('postit');
    } else if (text.includes('Annonce:')) {
      $(this).text(text.replace('Annonce:', 'Important  ')).addClass('important');
    } else if (text.includes('Annonce Globale:')) {
      $(this).text(text.replace('Annonce Globale:', 'Annonce   ')).addClass('news');
    }
  });
});

Il faut faire très gaffe, puisque le script est très précis avec les cibles qu'on lui donne, donc les espaces et les majuscules sont pris en considération. Ce que le script ci-haut accompli c'est ce qui suit :

Cible dans le titre des sujets se trouvant entre des balises <strong> ce contenu : 'Note:' et remplace le par 'Post-It  ' en plus de lui attribuer la .class '.postit' pour pouvoir styler le texte dans le CSS.

Cible dans le titre des sujets se trouvant entre des balises <strong> ce contenu : 'Annonce:' et remplace le par 'Important  ' en plus de lui attribuer la .class '.important' pour pouvoir styler le texte dans le CSS.

Cible dans le titre des sujets se trouvant entre des balises <strong> ce contenu : 'Annonce Globale:' et remplace le par 'Annonce  ' en plus de lui attribuer la .class '.news' pour pouvoir styler le texte dans le CSS.


Dernière édition par R.P. Gryphus le Sam 18 Fév 2023 - 20:36, édité 1 fois
R.P. Gryphus

R.P. Gryphus
**

Messages : 86
Inscrit(e) le : 17/02/2023

https://sanguo-sengoku.goodforum.net/
R.P. Gryphus a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Emplacement des codes définis par les accolades {FORUMACTIF_DEFAULT} dans les templates

Message par chattigre Sam 18 Fév 2023 - 12:47

Bonjour,
Il n'est effectivement pas possible de modifier le contenu interne de ce qu'on appelle les "variables de templates".

A toutes fins utiles il existe un répertoire de ces variables (qui aurait besoin d'une bonne mise à jour, mais il est déjà très complet pour les trucs qui n'ont pas bougé depuis des années Smile ) : https://github.com/Etana/template

Toutefois, pour votre cas il est possible de vous épargner une partie du code en modifiant les libellés des sujets spéciaux directement avec l'option native disponible...
Panneau d'administration  Général  Messages et Emails - Configuration
Vous trouverez une section pour personnaliser les libellés "Note", "Annonce" et "Annonce globale"

(A noter que l'appellation Post-it était celle par défaut avant et a été retirée de tous les forums basés sur phpBB -pas juste Forumactif- il y a de ça des années en raison d'une demande juridique de 3M, détentrice de la marque, pour la petite histoire ^^)

Ensuite, pour ajouter vos classes sans vous prendre la tête sur un ciblage JS, vous pouvez wrapper la variable en question dans le template : {topics_list_box.row.TOPIC_TYPE}
Ce qui donnerait par exemple :
Code:
<span class="topictype-wrapper">{topics_list_box.row.TOPIC_TYPE}</span>

Bonne journée
chattigre

chattigre
Aidactif
Aidactif

Masculin
Messages : 3677
Inscrit(e) le : 17/04/2019

https://test1-chattigre.forumactif.fr
chattigre a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Emplacement des codes définis par les accolades {FORUMACTIF_DEFAULT} dans les templates

Message par R.P. Gryphus Sam 18 Fév 2023 - 16:58

Bonjour Chattigre!  Very Happy

chattigre a écrit:
Il n'est effectivement pas possible de modifier le contenu interne de ce qu'on appelle les "variables de templates".
C'est bien dommage! Il serait peut-être plus sage dans ce cas que ces 'variables de templates' n'influent pas sur plus d'un élément à la fois comme les 'stickies'.  Laughing

chattigre a écrit:
A toutes fins utiles il existe un répertoire de ces variables (qui aurait besoin d'une bonne mise à jour, mais il est déjà très complet pour les trucs qui n'ont pas bougé depuis des années Smile ) : https://github.com/Etana/template
Bien vu, j'avais déjà trouvé dans ma recherche pour trouver une réponse à ma question. C'est une excellente idée d'avoir un tel répertoire, mais en effet il me parait bien incomplet et une sérieuse mise-à-jour serait nécessaire pour bien expliquer le rôle ou le contenu précis de ces accolades. Déjà, ce répertoire ne devrait-il pas être héberger ici même, sur le Forum des Forums? Après, Forumactif existe depuis bien longtemps maintenant, leurs propriétaires/développeurs n'auraient-ils pas dû avoir mis un répertoire descriptif/explicatif complet à la disposition des nombreux utilisateurs de leur service? Ça me parait être la chose sensible à faire en tout cas.  Rolling Eyes Ce serait vachement utile!

chattigre a écrit:
Toutefois, pour votre cas il est possible de vous épargner une partie du code en modifiant les libellés des sujets spéciaux directement avec l'option native disponible...
Panneau d'administration  Général  Messages et Emails - Configuration
Vous trouverez une section pour personnaliser les libellés "Note", "Annonce" et "Annonce globale"
En effet, tu as bien raison et je savais déjà comment faire. Toutefois mon objectif était de styler ces libellés et pas que simplement changer leur nom.

chattigre a écrit:
Ensuite, pour ajouter vos classes sans vous prendre la tête sur un ciblage JS, vous pouvez wrapper la variable en question dans le template : {topics_list_box.row.TOPIC_TYPE}
Ce qui donnerait par exemple :
Code:
<span class="topictype-wrapper">{topics_list_box.row.TOPIC_TYPE}</span>
Et pour poursuivre ma réponse, afin de pouvoir styler ces libellés il fallu que je leur attribue une classe. Avec ce que tu proposes ici, et corriges-moi si j'ai tord, je ne parviendrais qu'à styler les libellés dans leur ensemble et non individuellement. C'est pourquoi j'ai opté pour le script du coup.

Merci de ta réponse en tout cas et n'hésite pas à me partager ce que tu penses de tout ça. Very Happy
R.P. Gryphus

R.P. Gryphus
**

Messages : 86
Inscrit(e) le : 17/02/2023

https://sanguo-sengoku.goodforum.net/
R.P. Gryphus a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Emplacement des codes définis par les accolades {FORUMACTIF_DEFAULT} dans les templates

Message par chattigre Sam 18 Fév 2023 - 19:38

Re,

C'est bien dommage! Il serait peut-être plus sage dans ce cas que ces 'variables de templates' n'influent pas sur plus d'un élément à la fois comme les 'stickies'.  Laughing
Ben... en l’occurrence, ils n'influent que sur un élément : Le texte du type. Il y a effectivement quelques cas où une décomposition plus importante serait possible, mais ils restent assez rares.
En revanche il y a quelques cas où une précision bien plus importante dans les classes serait effectivement utile, par exemple avoir une classe "sticky" et une classe "announce". Or, ça tombe bien, on a ces classes sous AwesomeBB Very Happy
Il faut bien comprendre qu'on n'est pas dans une décomposition conditionnelle de type
Code:
IF TYPE_STICKY
  VAR L_TYPE_STICKY
IF TYPE_ANNOUNCE
  VAR L_TYPE_ANNOUNCE
...
Mais dans une décomposition où le choix du contenu à afficher fait partie intégrante d'une unique variable.
C'est un choix de fonctionnement qui pourrait légitimement être débattu, mais qui n'est évidemment pas influençable ni modifiable Smile

C'est une excellente idée d'avoir un tel répertoire, mais en effet il me parait bien incomplet et une sérieuse mise-à-jour serait nécessaire pour bien expliquer le rôle ou le contenu précis de ces accolades. Déjà, ce répertoire ne devrait-il pas être héberger ici même, sur le Forum des Forums? Après, Forumactif existe depuis bien longtemps maintenant, leurs propriétaires/développeurs n'auraient-ils pas dû avoir mis un répertoire descriptif/explicatif complet à la disposition des nombreux utilisateurs de leur service?
Forumactif a toujours fonctionné sur la base de retours / productions / demandes / initaitives, etc. de ses utilisateurs.
Ce répertoire a donc été développé il y a de ça des années par Ea -aidactif- (alias Etana), qui aujourd'hui n'a plus visiblement le temps de le maintenir.
Ca pourrait effectivement être à l'ordre du jour de le mettre à niveau, mais je te laisse imaginer le temps nécessaire à cela vu le nombre de variables multiplié par les 6 ou 7 versions de forums... Un jour, peut-être... silent Smile
Et puis, pour toutes les fonctions existantes il y a quelques années, rien n'a bougé ou presque, il est toujours applicable sans problème.

Quant à l'hébergement, le volume de données à tracker fait qu'il est très bien sur Github je pense Smile


---

Et pour poursuivre ma réponse, afin de pouvoir styler ces libellés il fallu que je leur attribue une classe. Avec ce que tu proposes ici, et corriges-moi si j'ai tord, je ne parviendrais qu'à styler les libellés dans leur ensemble et non individuellement. C'est pourquoi j'ai opté pour le script du coup.
Oui. Mais c'est quand même vachement plus simple de cibler directement une classe que quelque chose avec un sélecteur quadruplement composé de 150 caractères Very Happy
Code:
div.posts-section > div.posts-content > div.posts-description > h3 > strong:contains('Note:'), div.posts-section > div.posts-content > div.posts-description > h3 > strong:contains('Annonce:'), div.posts-section > div.posts-content > div.posts-description > h3 > strong:contains('Annonce Globale:')
en
Code:
span.topictype-wrapper

Par ailleurs il y a bien plus simple en termes de JS que de se prendre le chou avec du replace textuel (cette version a l'avantage d'avoir un grand nombre de classes, même si il faut parfois jouer avec parent() et has() pour se replacer au bon niveau...)

Une fois le span ajouté dans le template :
Code:
//Note
$(".posts-section").has(".posts-icon.folder_sticky").find(".topictype-wrapper").addClass("topictype-sticky");
//Annonce
$(".posts-section").has(".posts-icon.folder_announce").find(".topictype-wrapper").addClass("topictype-announce");
//Globale
$(".posts-section").has(".posts-icon.folder_global").find(".topictype-wrapper").addClass("topictype-global");

C'est quand même beaucoup plus simple et interopérable que ta version (notamment, ça ne dépend pas de la langue de l'utilisateur) je pense.

Je reste disponible pour toute question Wink
Bonne journée
chattigre

chattigre
Aidactif
Aidactif

Masculin
Messages : 3677
Inscrit(e) le : 17/04/2019

https://test1-chattigre.forumactif.fr
chattigre a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Emplacement des codes définis par les accolades {FORUMACTIF_DEFAULT} dans les templates

Message par R.P. Gryphus Sam 18 Fév 2023 - 20:35

chattigre a écrit:
Code:
//Note
$(".posts-section").has(".posts-icon.folder_sticky").find(".topictype-wrapper").addClass("topictype-sticky");
//Annonce
$(".posts-section").has(".posts-icon.folder_announce").find(".topictype-wrapper").addClass("topictype-announce");
//Globale
$(".posts-section").has(".posts-icon.folder_global").find(".topictype-wrapper").addClass("topictype-global");

C'est quand même beaucoup plus simple et interopérable que ta version (notamment, ça ne dépend pas de la langue de l'utilisateur) je pense.

Je reste disponible pour toute question Wink
Bonne journée

Ah bon tu vois, moi je n'avais réussi à trouver que {topics_list_box.row.TOPIC_TYPE} qui lui agi sur tous les libellés.

Je n'ai pas pensé à utiliser la .class des icônes que Forumactif met par défaut aux différents types de sujet pour sélectionner les libellés individuellement. Surprised

Et en effet, ton JS est bien plus léger et aéré que le mien et ça ne m'étonne comme ce n'est vraiment pas ma force héhé

Merci de ta réponse illuminante, c'est apprécié!
R.P. Gryphus

R.P. Gryphus
**

Messages : 86
Inscrit(e) le : 17/02/2023

https://sanguo-sengoku.goodforum.net/
R.P. Gryphus a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum