Récupérer un champ phpBB sous forme de variable

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écupérer un champ phpBB sous forme de variable

Messagepar chantal » 25 Jan 2017 à 18:00

Bonjour,

Est-il possible de récupérer un champ de la BDD dans une variable?
Je voudrais pouvoir récupérer le champ "topic-title" dans les messages postés sur mon forum

Donc dans viewtopic_body.html?

Si oui, quelle est la syntaxe?

Merci de vos réponses

Chantal
chantal
Maître-posteur
Maître-posteur
 
Messages: 490
Enregistré le: 31 Aoû 2011 à 20:39

Re: Récupérer un champ phpBB sous forme de variable

Messagepar FoFa » 25 Jan 2017 à 22:45

Coucou,

Tu voudrais le récupérer comment ? Pour quoi faire ?

Dans viewtopic_body.html c'est {TOPIC_TITLE}

Mais je suppose que tu veux la partie PHP ? Dans ce cas, veux-tu récupérer cela dans le code viewtopic.php (du coup $topic_data['topic_title']

Cordialement
Après l'assassinat de mon ordinateur, je reviens progressivement vers vous...
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10381
Enregistré le: 15 Nov 2008 à 18:04
Localisation: Auxonne

Re: Récupérer un champ phpBB sous forme de variable

Messagepar chantal » 26 Jan 2017 à 09:21

Bonjour et merci pour la réponse,

Je voudrais récupérer le champ topic_title dans viewtopic_body.html (car c'est là que se trouve un lien existant et qui fonctionne déjà(ligne verte) ) sous forme de variable afin d'établir un lien externe

Dans viewtopic_body.html, ma ligne en rouge est-elle correcte au niveau syntaxe? (le test se fera ensuite à partir de cette variable, donc rien de terminé pour l'instant)

Mais du coup que c'est
Code: Tout sélectionner
$topic_data['topic_title']
dans viewtopic.php comment je peux faire dans viewtopicbody_html?

<!-- EVENT viewtopic_body_postrow_post_details_before -->
<p class="author"><!-- IF S_IS_BOT -->{postrow.MINI_POST_IMG}<!-- ELSE --><a href="{postrow.U_MINI_POST}">{postrow.MINI_POST_IMG}</a><!-- ENDIF --><span class="responsive-hide">{L_POST_BY_AUTHOR} <strong>{postrow.POST_AUTHOR_FULL}</strong> &raquo; </span>{postrow.POST_DATE}
<!-- IF TOPIC_DESC -->
$recuptitre = $topic_data['topic_title']
<a style="background-color: rgb(51, 255, 51); width: 100px; margin-left:50px;" href="{TOPIC_DESC}" title="lien mis par l'auteur" >Voir photos et infos</a>
<!-- ENDIF -->
</p>
<!-- EVENT viewtopic_body_postrow_post_details_after -->


Merci

Chantal
chantal
Maître-posteur
Maître-posteur
 
Messages: 490
Enregistré le: 31 Aoû 2011 à 20:39

Re: Récupérer un champ phpBB sous forme de variable

Messagepar FoFa » 26 Jan 2017 à 13:20

Hummm. J'ai donné la réponse pour la partie HTML :wink:
Après l'assassinat de mon ordinateur, je reviens progressivement vers vous...
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10381
Enregistré le: 15 Nov 2008 à 18:04
Localisation: Auxonne

Re: Récupérer un champ phpBB sous forme de variable

Messagepar chantal » 26 Jan 2017 à 14:22

ah ok désolée je n'avais pas tout suivi ..
donc je modifie ainsi?


<!-- EVENT viewtopic_body_postrow_post_details_before -->
<p class="author"><!-- IF S_IS_BOT -->{postrow.MINI_POST_IMG}<!-- ELSE --><a href="{postrow.U_MINI_POST}">{postrow.MINI_POST_IMG}</a><!-- ENDIF --><span class="responsive-hide">{L_POST_BY_AUTHOR} <strong>{postrow.POST_AUTHOR_FULL}</strong> &raquo; </span>{postrow.POST_DATE}
<!-- IF TOPIC_DESC -->
$recuptitre = {TOPIC_TITLE};
<a style="background-color: rgb(51, 255, 51); width: 100px; margin-left:50px;" href="{TOPIC_DESC}" title="lien mis par l'auteur" >Voir photos et infos</a>
<!-- ENDIF -->
</p>
<!-- EVENT viewtopic_body_postrow_post_details_after -->
chantal
Maître-posteur
Maître-posteur
 
Messages: 490
Enregistré le: 31 Aoû 2011 à 20:39

Re: Récupérer un champ phpBB sous forme de variable

Messagepar FoFa » 26 Jan 2017 à 18:49

Euh pourquoi faire un <!-- IF TOPIC_TITLE --> ?

Il y a en a forcément un (vu que c'est un titre de sujet et que vous êtes obligée d'en indiquer un lorsque vous rédigez un nouveau sujet).

Du coup, enlever la condition et rajouter simplement le code que vous souhaitez à l'endroit que vous désirez...

Ou je n'ai pas sais pleinement ce que vous essayez de faire...
Après l'assassinat de mon ordinateur, je reviens progressivement vers vous...
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10381
Enregistré le: 15 Nov 2008 à 18:04
Localisation: Auxonne

Re: Récupérer un champ phpBB sous forme de variable

Messagepar pierredu » 26 Jan 2017 à 21:05

chantal a écrit:$recuptitre = {TOPIC_TITLE};


Ça marche, ça, dans un fichier de gabarit ?
J'en doute.
Il faudrait avoir un code équivalent dans le code php qui traite la page en question et injecter la variable dans le gabarit.
Avatar de l’utilisateur
pierredu
Extensions
Extensions
 
Messages: 945
Enregistré le: 29 Mai 2011 à 05:49
Localisation: Paris

Re: Récupérer un champ phpBB sous forme de variable

Messagepar chantal » 26 Jan 2017 à 21:39

Bonsoir,

En fait mon fichier viewtopic_body.html fonctionne actuellement très bien tel qu'il est rédigé sans ma ligne rouge
Il me permet d'afficher dans tous mes messages la description du sujet

sauf qu'actuellement je saisis cette description manuellement et je voudrais qu'elle se renseigne automatiquement
Dans le titre du sujet, que je récupèrerais dans une variable, il y a la date que je pourrai extraire ensuite et m'en servir pour aller chercher le lien voulu dans une autre BDD grâce à cette date

C'est la raison pour laquelle je cherche à récupérer le titre du sujet dans une variable

J'espère expliquer au mieux

Merci de votre aide

Chantal
Modifié en dernier par chantal le 18 Mar 2017 à 11:33, modifié 1 fois.
chantal
Maître-posteur
Maître-posteur
 
Messages: 490
Enregistré le: 31 Aoû 2011 à 20:39

Re: Récupérer un champ phpBB sous forme de variable

Messagepar FoFa » 26 Jan 2017 à 21:44

Il est normal que tu renseignes le titre du sujet automatiquement. Comment le forum pourrait-il deviner ce que tu veux entrer comme titre de sujet?

La date a-t-elle toujours la même forme? Quel type de lien est-il nécessaire d'aller chercher dans une autre base de données ? Sous quelle forme cette date est-elle enregistrée dans l'autre base de données ?

Avec le lien que tu donnes, dans la partie trails il est difficile de se faire une idée car tous les titres de sujets n'ont pas de date... et en plus pas sous le même forme (on a 08/01 ainsi que 2017 par exemple).
Après l'assassinat de mon ordinateur, je reviens progressivement vers vous...
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10381
Enregistré le: 15 Nov 2008 à 18:04
Localisation: Auxonne

Re: Récupérer un champ phpBB sous forme de variable

Messagepar pierredu » 27 Jan 2017 à 08:44

chantal a écrit:<!-- IF TOPIC_DESC -->
$recuptitre = {TOPIC_TITLE};
<a style="background-color: rgb(51, 255, 51); width: 100px; margin-left:50px;" href="{TOPIC_DESC}" title="lien mis par l'auteur" >Voir photos et infos</a>
<!-- ENDIF -->


Dans ce cas, pourquoi pas plus simplement :
Code: Tout sélectionner
<a style="background-color: rgb(51, 255, 51); width: 100px; margin-left:50px;" href="{TOPIC_DESC}" title="{TOPIC_TITLE}" >Voir photos et infos</a>
Avatar de l’utilisateur
pierredu
Extensions
Extensions
 
Messages: 945
Enregistré le: 29 Mai 2011 à 05:49
Localisation: Paris

Re: Récupérer un champ phpBB sous forme de variable

Messagepar chantal » 27 Jan 2017 à 08:47

Bonjour,

Je ne pensais pas être aidée à ce point donc je développe davantage :)
Par exemple:

Dans le forum trails:
http://xxxxxxxx.esy.es/phpBB3/viewforum ... 36979a3694

chacun des sujets renvoie vers une autre page d'une autre BDD (rectangle "voir photos et infos" vert dans chacun)

par exemple: trail du 15/01:
http://xxxxxxxxxxxxx/phpBB3/viewtopic.p ... 36979a3694

pour lequel j'ai renseigné manuellement la description qui se retrouve sur chacun des messages:
http://xxxxxxxxxx.free.fr/trails/modele ... 0115120224

renvoie donc sur cette page

Je voudrais pouvoir faire la même chose mais en automatique et non plus manuellement, à savoir:

à partir du titre du sujet (renseigné manuellement on est bien d'accord)

la partie à codifier serait:
récupérer ce titre sous forme de variable
en extraire la date (en veillant bien sûr qu'elle soit au bon format soit 15/01/2017)

pour aller chercher dans l'autre BDD le lien correspondant (chacun des enregistrements dans cette BDD ayant un champ daterando au format JJ/MM/AAAA)

donc le code serait du style:

<!-- IF TOPIC_DESC -->
<?php
$recuptitre = {TOPIC_DESC};
$recupdate = substr($recuptitre, -10);

//lien vers le fichier donnant le nom de la base et le mot de passe
include ("http://xxxxxxxxxxx.free.fr/trails/coucou.php");
// connection a la base de donnees free
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); // tableau enfants
//r?p? tous les enregistrements des inscriptions et affichage par odre d'inscription
$select = 'SELECT * from trails WHERE etat = "V" and daterando == "'.$recupdate.'"' ;
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); $total = mysql_num_rows($result);
// si on a r?p? un r?ltat on l affiche.

if($total) {

{TOPIC_DESC} = ".$row['illustration'].";

}

?>
<a style="background-color: rgb(51, 255, 51); width: 100px; margin-left:50px;" href="{TOPIC_DESC}" title="lien mis par l'auteur" >Voir photos et infos</a>
<!-- ENDIF -->

Modifié en dernier par chantal le 18 Mar 2017 à 11:34, modifié 1 fois.
chantal
Maître-posteur
Maître-posteur
 
Messages: 490
Enregistré le: 31 Aoû 2011 à 20:39

Re: Récupérer un champ phpBB sous forme de variable

Messagepar pierredu » 27 Jan 2017 à 09:24

À partir du moment où on ne doit pas mettre de code dans les fichiers de gabarit, il faut le faire ailleurs. C'est le but même d'une extension.

Une extension minimaliste s'abonne à un événement et fournit du code php qui s'exécute et qui injecte ce qu'il veut dans le gabarit d'affichage.

Je ne peux pas te conseiller d'aller regarder le modèle d'extension acme, qui est finalement assez difficile à comprendre.

Il existe désormais un squelette (https://www.phpbb.com/community/viewtopic.php?p=14321436#p14321436) qui devrait aider à faire les premiers pas, mais je ne l'ai pas utilisé et je ne peux donc pas en parler en connaissance de cause.
Avatar de l’utilisateur
pierredu
Extensions
Extensions
 
Messages: 945
Enregistré le: 29 Mai 2011 à 05:49
Localisation: Paris

Re: Récupérer un champ phpBB sous forme de variable

Messagepar chantal » 27 Jan 2017 à 09:30

pierredu a écrit:À partir du moment où on ne doit pas mettre de code dans les fichiers de gabarit, il faut le faire ailleurs. C'est le but même d'une extension.

ça je comprends
pierredu a écrit:Il existe désormais un squelette (https://www.phpbb.com/community/viewtopic.php?p=14321436#p14321436) qui devrait aider à faire les premiers pas, mais je ne l'ai pas utilisé et je ne peux donc pas en parler en connaissance de cause.

là je suis perdue :?
chantal
Maître-posteur
Maître-posteur
 
Messages: 490
Enregistré le: 31 Aoû 2011 à 20:39

Re: Récupérer un champ phpBB sous forme de variable

Messagepar pierredu » 27 Jan 2017 à 10:27

Prends alors une de mes extensions, par exemple https://github.com/pierrdu/lmdi_links. Les aspects intéressants sont le fichier listener.php (dans le dossier event), qui s'abonne à des événements et qui envoie une URL dans le gabarit.
Avatar de l’utilisateur
pierredu
Extensions
Extensions
 
Messages: 945
Enregistré le: 29 Mai 2011 à 05:49
Localisation: Paris

Re: Récupérer un champ phpBB sous forme de variable

Messagepar chantal » 27 Jan 2017 à 11:07

pierredu a écrit:Prends alors une de mes extensions, par exemple https://github.com/pierrdu/lmdi_links. Les aspects intéressants sont le fichier listener.php (dans le dossier event), qui s'abonne à des événements et qui envoie une URL dans le gabarit.

Donc concrètement je fais quoi? Je télécharge à partir de "clone or dowload"? Je décompresse et je mets dans mon répertoire ext?

Et ensuite?

Désolée je suis un peu dans le flou même si je comprends l'idée en général..

Merci

Chantal
chantal
Maître-posteur
Maître-posteur
 
Messages: 490
Enregistré le: 31 Aoû 2011 à 20:39

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 : Google [Bot] et 4 invités