[Réglé] Pré-remplir le titre des nouveaux sujets en fonction des forums

Ce forum aborde toutes les questions qu'un codeur ou webmaster pourrait se poser, et n'ayant aucun rapport direct avec phpBB.
Tout ce qui peut concerner la récupération des sessions de phpBB sur votre site, doit se faire dans cette section.

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com
Partager sur FacebookPartager sur TwitterPartager sur Google+

[Réglé] Pré-remplir le titre des nouveaux sujets en fonction des forums

Messagepar sylkapi » 14 Nov 2017 à 21:07

Bonjour,

Après avoir recherché une extension permettant de le faire sans succès, je recherche une âme charitable capable de me coder le pré-remplissement du titre en fonction du forum où le nouveau sujet est posté. Ceci pour y mettre des consignes de syntaxe dans le titre comme c'est le cas ici : https://img4.hostingpics.net/pics/407086Capture.png

Dans mon cas :
Forum "organisation des sorties" => [Date] Evénement
Forum "récits des sorties" => [CR]
Forum "ventes" => [VDS]
Forum "Achat" => [RCH]
etc

il faudra surement modifier le code existant du fichier posting.php, le but étant de pré-remplir le titre du sujet en fonction de l'ID du forum.

Merci de votre aide
Avatar de l’utilisateur
sylkapi
Roi des posts
Roi des posts
 
Messages: 554
Enregistré le: 02 Aoû 2005 à 08:36

Re: Pré-remplir le titre des nouveaux sujets en fonction des forums

Messagepar Steph » 15 Nov 2017 à 06:49

Salut,

Désolé, mais le but du forum de coding n'est pas de faire des «commandes», mais d'aider les membres dans leurs démarches, si tu n'as rien a nous présenter cela ne peut nous concerner.

En plus, depuis la branche 3.1, il est vivement déconseillé de modifier les fichiers d'origines, il faut privilégier les extensions, cela diminue le risque de plantage lors des mises a jour et permet une meilleure maintenance.

Pour du coding a la demande, c'est vers Google et la recherche de sites spécialisés qu'il faut te tourner, car pour nous ce sujet ne peut pas faire parti de notre priorité.
Avatar de l’utilisateur
Steph
Administrateur
Administrateur
 
Messages: 17258
Enregistré le: 29 Déc 2008 à 15:48
Localisation: Alsace / Bas-Rhin / France

Re: Pré-remplir le titre des nouveaux sujets en fonction des forums

Messagepar sylkapi » 15 Nov 2017 à 06:56

Bonjour Steph,

A vrai dire, je m'en doutais un peu avant de publier ce sujet car je ne trouvais pas le forum adéquat : extensions-discussions-recherches/sujet210950.html#p1650802 :oops:


Le seul truc que j'ai trouvé sur Google et je ne sais pas si c'est adaptable sur un forum phpBB, c'est ceci pour un forum Invision : http://forum.forumactif.com/t384169-che ... n-le-forum

J’espérais juste que vous puissiez m'aiguiller sur une piste puisque l'option est présente sur ce forum. Tant pis...

Bonne journée
Avatar de l’utilisateur
sylkapi
Roi des posts
Roi des posts
 
Messages: 554
Enregistré le: 02 Aoû 2005 à 08:36

Re: Pré-remplir le titre des nouveaux sujets en fonction des forums

Messagepar Steph » 15 Nov 2017 à 07:04

Forumactif bien que de base un phpbb ne t'aidera pas.

Cependant je vois du javascript sur ton lien, cela peut être une bonne piste de départ même si je ne pense pas que ce soit la meilleure, mais c'est un avis perso
Avatar de l’utilisateur
Steph
Administrateur
Administrateur
 
Messages: 17258
Enregistré le: 29 Déc 2008 à 15:48
Localisation: Alsace / Bas-Rhin / France

Re: Pré-remplir le titre des nouveaux sujets en fonction des forums

Messagepar sylkapi » 15 Nov 2017 à 10:57

Ok, merci pour la piste 8)

j'y suis presque, j'arrive à pré-remplir le titre des sujets dans le forum voulu en utilisant une condition :
Code: Tout sélectionner
<!-- IF FORUM_ID == 4 -->


J'aimerais maintenant ajouter une condition supplémentaire, c'est à dire que ça lance le script uniquement lorsqu'il s'agit d'un nouveau post... comme je n'y connais rien j'ai essayé :

Code: Tout sélectionner
<!-- IF FORUM_ID == 4 AND MODE == post --> 


Bien entendu ça ne fonctionne pas... ça serait trop facile

Est-ce que quelqu'un peut me dire comment appliquer cette deuxième condition ?
Avatar de l’utilisateur
sylkapi
Roi des posts
Roi des posts
 
Messages: 554
Enregistré le: 02 Aoû 2005 à 08:36

Re: Pré-remplir le titre des nouveaux sujets en fonction des forums

Messagepar papajoke » 15 Nov 2017 à 12:24

bonjour, dans la page d'édition, si pas de sujet c'est que c'est un nouveau
et tu peux utiliser un tableau "pretitre" a la place de 36 if

Code: Tout sélectionner
{%
set preTitre = {
    '10': '[erreur]',
    '20': '[actu]',
    '30': '[tips]'
} %}
<input name="subject" ...>
{% if SUBJECT == '' %}{{ attribute(preTitre, FORUM_ID) }}{% endif %}
</input>
Modifié en dernier par papajoke le 15 Nov 2017 à 13:11, modifié 3 fois.
modérateur forum manjaro.fr
Avatar de l’utilisateur
papajoke
Apprenti-posteur
Apprenti-posteur
 
Messages: 102
Enregistré le: 23 Juil 2017 à 12:45

Re: Pré-remplir le titre des nouveaux sujets en fonction des forums

Messagepar Dakin Quelia » 15 Nov 2017 à 12:29

Bonjour sylkapi,

A mon avis, tu peux faire simplement ça :

Code: Tout sélectionner
<!-- IF FORUM_ID == 4 -->
if(document.location.pathname=="/posting.php" && /^\?f=[4]&mode=post$/.test(document.location.search))
{
	$(function(){
        $('input[name="subject"]').attr('value','[TON TAG]');
	});
}
<!-- ELSE IF FORUM_ID == X -->
if(document.location.pathname=="/posting.php" && /^\?f=[X]&mode=post$/.test(document.location.search))
{
	$(function(){
         $('input[name="subject"]').attr('value','[TON TAG 2]');
	});
}
<!-- ELSE -->
if(document.location.pathname=="/posting.php" && /^\?f=[1]&mode=post$/.test(document.location.search))
{
	$(function(){
		$('input[name="subject"]').attr('value','[TON TAG 3]');
	});
}
<!-- ENDIF --->


Mais bon, après en terme d'optimisation ce n'est pas top. Idéalement, il faudrait créer un tableau et faire appel aux informations du tableau. Genre quelque chose comme ça :

Code: Tout sélectionner
var subject_tag = [
	4 : 'Ton Tag 1',
	6 : 'Ton Tag 2',
	8 : 'Ton Tag 3',
];

<!-- IF FORUM_ID != 0 -->
$.each(subject_tag, function(index, tag) {
{
	if(document.location.pathname=="/posting.php" && /^\?f=[index]&mode=post$/.test(document.location.search))
	{
		$(function(){
			$('input[name="subject"]').attr('value','[' + tag  + '] ');
		});
	}
}
<!-- ENDIF -->

Bon, après il faut tester. ;)

Bien à toi
Aucun support par mail, MP ou msn.
Mes MODs: ici | Mon blogue: Mon blogue | DeviantArt: cliquez ici
Avatar de l’utilisateur
Dakin Quelia
Floodeur universel
Floodeur universel
 
Messages: 21317
Enregistré le: 31 Oct 2006 à 18:33
Localisation: Belgique

Re: Pré-remplir le titre des nouveaux sujets en fonction des forums

Messagepar sylkapi » 15 Nov 2017 à 13:55

Yes ! Merci !

Pour revenir à mon idée de base, ça pourrait donc donner ceci :

Code: Tout sélectionner
<!-- IF FORUM_ID == 4 and SUBJECT == '' -->
<script type="text/javascript">
	$('#subject').val('Votre pseudo');
</script>
<!-- ENDIF -->


Sachant que je ne voudrais pas modifier le fichier de base, j'utilise l'extension "Insert Template Code" et j'ai créé un EVENT "overall_footer_after.html" où j'y ai placé mon code. Ça fonctionne 8)

J'ai essayé de créer un EVENT "posting_editor_subject_append.html" pour l'insérer dans le fichier "posting_editor.html" mais ça ne fonctionne pas.

Savez vous où je dois insérer mon code pour que ça soit propre ?

--------------------------------------------------------------

Edit :

Merci Dakin Quelia !

Dakin Quelia a écrit:Mais bon, après en terme d'optimisation ce n'est pas top. Idéalement, il faudrait créer un tableau et faire appel aux informations du tableau. Genre quelque chose comme ça :


Mais où est-ce que je dois insérer ce code ???
Avatar de l’utilisateur
sylkapi
Roi des posts
Roi des posts
 
Messages: 554
Enregistré le: 02 Aoû 2005 à 08:36

Re: Pré-remplir le titre des nouveaux sujets en fonction des forums

Messagepar papajoke » 15 Nov 2017 à 14:13

pour utiliser posting_editor_subject_append.html (tout event) il faut impérativement créer une extension (avec uniquement ce fichier et composer.json)
modérateur forum manjaro.fr
Avatar de l’utilisateur
papajoke
Apprenti-posteur
Apprenti-posteur
 
Messages: 102
Enregistré le: 23 Juil 2017 à 12:45

Re: Pré-remplir le titre des nouveaux sujets en fonction des forums

Messagepar sylkapi » 15 Nov 2017 à 14:20

"Insert Template Code" ne suffit pas ? Il traite pourtant mon code quand je l'insert dans l'event "overall_footer_after.html"
Avatar de l’utilisateur
sylkapi
Roi des posts
Roi des posts
 
Messages: 554
Enregistré le: 02 Aoû 2005 à 08:36

Re: Pré-remplir le titre des nouveaux sujets en fonction des forums

Messagepar papajoke » 15 Nov 2017 à 14:33

si si ton extension est justement une extension vide, comme si tu créais toi même la tienne.

Ton problème est au niveau javascript, tu exécutes du js alors que ta page html n'est pas encore chargée
modérateur forum manjaro.fr
Avatar de l’utilisateur
papajoke
Apprenti-posteur
Apprenti-posteur
 
Messages: 102
Enregistré le: 23 Juil 2017 à 12:45

Re: Pré-remplir le titre des nouveaux sujets en fonction des forums

Messagepar sylkapi » 15 Nov 2017 à 14:36

D'accord, peut-être que je devrais utiliser la fonction de Dakin Quelia alors :
Code: Tout sélectionner
$('input[name="subject"]').attr('value','pseudo ');



Edit :

papajoke a écrit:
Code: Tout sélectionner
{%
set preTitre = {
    '10': '[erreur]',
    '20': '[actu]',
    '30': '[tips]'
} %}
<input name="subject" ...>
{% if SUBJECT == '' %}{{ attribute(preTitre, FORUM_ID) }}{% endif %}
</input>

J'ai essayé avec ton code papajoke en ajoutant le code à l'EVENT posting_editor_subject_prepend mais ça ne fonctionne pas, voici le résultat : https://img4.hostingpics.net/pics/331231Capture.png :cry:
Avatar de l’utilisateur
sylkapi
Roi des posts
Roi des posts
 
Messages: 554
Enregistré le: 02 Aoû 2005 à 08:36

Re: Pré-remplir le titre des nouveaux sujets en fonction des forums

Messagepar papajoke » 15 Nov 2017 à 15:25

pour mon code, c'était une modification du template posting_editor.html
Et mon code est un exemple, il faut utiliser l'input original donné en lien et changer les id du tableau (10..20..30)
---------------
ps: je suis un nouveau en phpbb, j'ai ma propre technique de modif de template
Sinon, pour modifier les templates avec extension, je crée mon propre event

dans monstyle/..../posting_editor.html
Code: Tout sélectionner
<!-- EVENT posting_editor_subject_prepend -->
    <!-- EVENT posting_editor_subject -->
<!-- EVENT posting_editor_subject_append -->

créer ext/..../posting_editor_subject.html
mon code mais avec l'input original
Code: Tout sélectionner
<input type="text" name="subject" id="subject" size="45" maxlength="<!-- IF S_NEW_MESSAGE -->120<!-- ELSE -->124<!-- ENDIF -->" tabindex="2" value="{SUBJECT}{DRAFT_SUBJECT}" class="inputbox autowidth" />
modérateur forum manjaro.fr
Avatar de l’utilisateur
papajoke
Apprenti-posteur
Apprenti-posteur
 
Messages: 102
Enregistré le: 23 Juil 2017 à 12:45

Re: Pré-remplir le titre des nouveaux sujets en fonction des forums

Messagepar galixte » 15 Nov 2017 à 15:29

sylkapi a écrit:… j'ai essayé :

Code: Tout sélectionner
<!-- IF FORUM_ID == 4 AND MODE == post --> 


Bien entendu ça ne fonctionne pas... ça serait trop facile

Est-ce que quelqu'un peut me dire comment appliquer cette deuxième condition ?

Un petit coup de pousse peut-être, avec l’extension « Parameter Template Variables » tu va pouvoir spécifier des conditions en te basant sur les paramètres de l’adresse, comme je présume ton exemple post (j’ai un doute, ce serait pas plutôt reply ?), tel que par exemple :
Code: Tout sélectionner
<!-- IF SCRIPT_NAME == 'ucp' and PARAMTEMPVARS_I == 'pm'  -->
Contenu à afficher uniquement pour les pages des messages privés
<!-- ENDIF -->
Communau EzCom
Image
« Traductions d’extensions & styles pour phpBB 3.1.x & 3.2.x ».
ImageListes de toutes les extensions recensées pour phpBB 3.1.x & 3.2.x.
ImageListes de tous les styles recensés pour phpBB 3.1.x & 3.2.x.
Avatar de l’utilisateur
galixte
Floodeur universel
Floodeur universel
 
Messages: 9882
Enregistré le: 08 Mar 2004 à 01:40
Localisation: Sud de la France.

Re: Pré-remplir le titre des nouveaux sujets en fonction des forums

Messagepar sylkapi » 15 Nov 2017 à 16:58

papajoke a écrit:pour mon code, c'était une modification du template posting_editor.html
Et mon code est un exemple, il faut utiliser l'input original donné en lien et changer les id du tableau (10..20..30)

hum... je ne comprends pas trop, est-ce que ce code pourrait fonctionner comme ça :

J'ajoute ceci dans l'event "posting_editor_subject_prepend" du fichier posting_editor.html :
Code: Tout sélectionner
{%
set preTitre = {
    '4': 'Votre pseudo',
    '7': '[Date]',
    '8': '[CR]',
    '10': '[VDS]'
} %}


Et j'ajoute ceci dans l'event "posting_editor_subject_append" du fichier posting_editor.html :
Code: Tout sélectionner
{% if SUBJECT == '' %}{{ attribute(preTitre, FORUM_ID) }}{% endif %}
</input>


-----------------------------------

papajoke a écrit:Ton problème est au niveau javascript, tu exécutes du js alors que ta page html n'est pas encore chargée

Mon code fonctionne si je l'ajoute dans l'event overall_footer_after.html
Ca veut donc dire que que les tests de forum_id et subject sont exécutés à chaque chargement de page.??? ça ne doit pas être terrible de faire ça. Est-ce que tu saurais dans quel event est-ce que je pourrais ajouter mon code pour qu'il soit exécuté uniquement à l'ouverture d'un nouveau message ?

Edit : Une solution en utilisant l'EVENT "posting_editor_subject_append ! 8)

Code: Tout sélectionner
<!-- IF SUBJECT == '' --> 
	<!-- IF FORUM_ID == 3 -->
		<script type="text/javascript">
		// <![CDATA[
			document.getElementById("subject").value = "Le titre de votre message doit être votre pseudo";
		// ]]>
		</script>
	<!-- ENDIF -->
	<!-- IF FORUM_ID == 20 -->
		<script type="text/javascript">
		// <![CDATA[
			document.getElementById("subject").value = "[Date de l\'événement] Lieu de l\'événement";
		// ]]>
		</script>
	<!-- ENDIF -->
	<!-- IF FORUM_ID == 21 -->
		<script type="text/javascript">
		// <![CDATA[
			document.getElementById("subject").value = "[CR] ";
		// ]]>
		</script>
	<!-- ENDIF -->
	<!-- IF FORUM_ID == 12 -->
		<script type="text/javascript">
		// <![CDATA[
			document.getElementById("subject").value = "[VDS] ";
		// ]]>
		</script>
	<!-- ENDIF -->
	<!-- IF FORUM_ID == 13 -->
		<script type="text/javascript">
		// <![CDATA[
			document.getElementById("subject").value = "[RCH] ";
		// ]]>
		</script>
	<!-- ENDIF -->
<!-- ENDIF -->
Avatar de l’utilisateur
sylkapi
Roi des posts
Roi des posts
 
Messages: 554
Enregistré le: 02 Aoû 2005 à 08:36

Suivante

Retourner vers Coding, Webmastering et Sécurité informatique

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités