Récupérer numéro de page (topic_data)

Image Tout ce qui est en rapport avec l'hébergement , codes , sites , blogs etc ...
Répondre
     

Auteur du sujet
chipset
Messages : 9
Enregistré le : mars 2014

Récupérer numéro de page (topic_data)

Message par chipset » mar. 25 mars 2014 15:13

Bonjour,

J'ai un forum phpbb SEo sur lequel je publie des recettes de cuisine.
Voulant enrichir le contenu de balises Rich Snippet j'ai installé un système de notation.

Ce système demande à chaque vote un numéro de page, afin d'aller comptabiliser les votes au bon endroit dans la db, et c'est là que mon problème se corse.

Par exemple pour cette url : -http://www.ceinfo.fr/Forum/punch-coco-t453.html

J'aurai besoin de récupérer t453.

Alors franchement je n'y connais rien de rien en codage et sur les forum spécialisés à ce sujet dont je ne citerai pas le nom ici ils ont pour habitude de répondre "Tu crois pas qu'on va le faire à ta place".
Ce n'est pas ce que je demande mais je n'y arrive pas, je ne sais pas le faire, et si je demande de l'aide c'est que justement je galère.,

Le script de vote est ainsi composé :

Code : Tout sélectionner

<?php
 
//Variable de connexion BDD
$nom_du_serveur ="blablabla";
$nom_de_la_base ="blablabla";
$nom_utilisateur ="blablabla";
$passe ="blablabla";
 
//Fonction pour l'ip
function getIp()
{
    if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
    {
        $ip_vote = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    elseif(isset($_SERVER['HTTP_CLIENT_IP']))
    {
        $ip_vote = $_SERVER['HTTP_CLIENT_IP'];
    }
    else
    {
        $ip_vote = $_SERVER['REMOTE_ADDR'];
    }
    return $ip_vote;
}
//Ip utilisateur
$ip_vote = getIp();
 
//Connexion à la base de données
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
//Vérification d'accès à la base de données
mysql_select_db("$nom_de_la_base")  or die ('Erreur :'.mysql_error());

 
//Fonction pour la notation
function notation($id_vote,$ip_vote){
 
    //L'utilisateur a t'il déja voté?
    $deja_voter = mysql_query("SELECT ip FROM note WHERE ip = '".mysql_real_escape_string($ip_vote)."' AND id_page = '".mysql_real_escape_string($id_vote)."'");
 
    //L'utilisateur n'a pas voté, on montre le formulaire
    if(mysql_num_rows($deja_voter) == 0)
    {
        echo '     <form name="monform" id="monform" method="post">     <label>Noter cet article</label>     <select name="note" onchange="javascript:submit(this)">     <option value="">Note</option>     <option value="0">0</option>        <option value="1">1</option>     <option value="2">2</option>     <option value="3">3</option>     <option value="4">4</option>     <option value="5">5</option>     </select>     </form>     ';
    }   
 
    //Si action de valider et que la note est différent de vide
    if(isset($_POST['note']) && $_POST['note'] != NULL){
        //On vérifie si le cookie existe et si tel est le cas, c'est que l'utilisateur tente de voter plusieurs fois
        if(isset($_COOKIE["deja_voter"]) && $_COOKIE["deja_voter"] == $id_vote){
            die ("Un seul vote autorisé ... merci!"); }		
			
		        //Note de l'utilisateur
        $note = $_POST['note'];
               //Insertion en BDD
        $insert = mysql_query("INSERT INTO note (id_page, note, ip) VALUES ('$id_vote', '$note', '$ip_vote') ");
							
        //Si il y a une erreur
        if(!$insert) {
            die('Requête invalide : ' . mysql_error());
        }
        //Tout est ok, on informe et on redirige
        else{
 
            echo 'Merci d\'avoir note cet article! <br/>         Chargement en cours <img alt="Loading" src="images/images-vote/loading.gif" style="width:32px;height:32px;"/>           <script type="text/javascript">                 document.getElementById("monform").innerHTML = "";         window.setTimeout(function(){self.location.href="'.$_SERVER['REQUEST_URI'].'";},3000);         </script>';
 
        }
    }
 
    //Combien d'utilisateurs ont votés?
    $nombre_vote = mysql_query("SELECT id FROM note WHERE id_page = '".mysql_real_escape_string($id_vote)."'");
    $total_vote = mysql_num_rows($nombre_vote);
    if($total_vote != 0){
        echo '<span class="review hreview-aggregate">Nombre de vote : <span class="count">'.$total_vote.'</span><br/>';
    }
 
    //Total des votes des utilisateurs
    $calcul_vote = mysql_query("SELECT SUM(note) AS totalmoyenne FROM note WHERE id_page = '".mysql_real_escape_string($id_vote)."'");
    $data = mysql_fetch_array($calcul_vote);
    $total_calcul_vote = $data['totalmoyenne'];
    if($total_calcul_vote != 0){
        echo 'Total des votes : <span class="rating">'.$total_calcul_vote.'</span></span><br/>';   
    }
 
    //Moyenne des votes des utilisateurs
    if($total_vote != NULL && $total_calcul_vote != NULL){
        $moyenne = number_format($total_calcul_vote/$total_vote, 2, ',', '');
        //Si les 2 chiffres après la virgule sont 2 zéros, on les suppriment pour obtenir un entier
        echo 'Note : '.str_replace(',00','',$moyenne).'/5';
        //On affiche les étoiles
        for($i=1; $i<=$moyenne;$i++){
            echo '<img alt="'.$i.'" src="images/images-vote/etoile.png" style="width:32px;height:32px;"/>';
        }
    }
    else{
        echo 'Aucun vote pour le moment.';
    }
}
?>
Je l'appelle ainsi dans viewtopic_body.html :

Code : Tout sélectionner

  <!-- PHP -->
             notation ('numero de la page', $ip_vote);
            <!-- ENDPHP -->
Moi je cherche à faire pour phpBB :

Code : Tout sélectionner

  <!-- PHP -->
             notation ($topic_id, $ip_vote);
            <!-- ENDPHP -->
Ben, Je n'y parviens pas.

Si quelqu'un pouvait prendre 5 minutes pour m'expliquer comment procéder je lui en serai très reconnaissant.

Merci

Avatar du membre

Steph
Administrateur phpBB Assistance
Administrateur phpBB Assistance
Messages : 10898
Enregistré le : avril 2010
Hébergeur(s) : monarobase
Localisation : Alsace (67)
Contact :

Re: Récupérer numéro de page (topic_data)

Message par Steph » mar. 25 mars 2014 15:33

Salut,

Le but ici n’est pas non plus de faire le travail à la place des autres, mais je pense que ce que tu veux c'est la valeur de "topic_id"

C'est une personnalisation et cela n'a rien à voir avec seo ni même phpbb donc je déplace dans le webmastering qui est plus approprié


Auteur du sujet
chipset
Messages : 9
Enregistré le : mars 2014

Récupérer numéro de page (topic_data)

Message par chipset » mar. 25 mars 2014 15:44

Bonjour,

En fait oui voilà, mais je craignais que le MOD seo modifie justement la balise topic_id.

En fait je cherche à exploiter la valeur topic_id sous forme de variable depuis viewtopic_body, j'ai essayé une tonne de choses mais ça ne marche pas.

Juste une confirmation stp, côté html, cette syntaxe est bonne :

Code : Tout sélectionner

 <!-- PHP -->
             notation ($topic_id, $ip_vote);
            <!-- ENDPHP -->
Car je ne sais même pas si je me plante côté php ou côté html, déjà ça limiterait mon champ de recherche.

Merci

Avatar du membre

Steph
Administrateur phpBB Assistance
Administrateur phpBB Assistance
Messages : 10898
Enregistré le : avril 2010
Hébergeur(s) : monarobase
Localisation : Alsace (67)
Contact :

Re: Récupérer numéro de page (topic_data)

Message par Steph » mar. 25 mars 2014 18:02

Alors déjà je ne conseille absolument pas le php dans les templates.

Prends plutôt exemple sur "Ajouter une nouvelle page personnalisée à phpBB" cela sera plus sûr


Auteur du sujet
chipset
Messages : 9
Enregistré le : mars 2014

Récupérer numéro de page (topic_data)

Message par chipset » mar. 25 mars 2014 18:28

Mais je ne peux pas, c'est un système de vote permettant justement de noter un topic phpbb.

Je suis coincé entre les doléances de Google sur ses Rich Snippet, le format particulier de phpBB, le php et ma très mauvaise connaissance de MySql. Avec tout ça...
Moi ce que j'aime c'est faire la cuisine et mettre des recettes en ligne, pas galérer comme je le fais depuis dimanche matin.

En plus je suis certain qu'un programmeur peut me régler ce problème en 3 secondes mais à par ici aucun autre forum ne répond. On dirait qu'ils s'en foutent en clair, c'est à désespérer de trouver un peu de compassion ici bas.

Enfin, j'essaye des trucs, à chaque fois je rafraîchit et à chaque fois ça ne marche pas.

J'ai tenté ça (entre autre) :

Code : Tout sélectionner

$result = mysql_query("SELECT topic_id FROM cuisine_topics");
$topic_number = mysql_num_rows($result);
Avec la variable $topic_number mais ça ne marche pas non plus.

Et pendant que je me consacre à ça je ne met plus de recettes en ligne, j'ai l'impression d'être devant un mur de briques avec cette satané variable.

Merci quand même.

Bonne soirée Steph.

Avatar du membre

Steph
Administrateur phpBB Assistance
Administrateur phpBB Assistance
Messages : 10898
Enregistré le : avril 2010
Hébergeur(s) : monarobase
Localisation : Alsace (67)
Contact :

Récupérer numéro de page (topic_data)

Message par Steph » mar. 25 mars 2014 18:41

chipset a écrit : Mais je ne peux pas, c'est un système de vote permettant justement de noter un topic phpbb.
Alors il faut intégrer cela comme le ferai un MOD c'est à dire par modification du code source

Exemple avec un de ces MOD ---> Topic Evaluation ou Remercier des messages
chipset a écrit : En plus je suis certain qu'un programmeur peut me régler ce problème en 3 secondes
Pas si simple que cela en fin de compte
chipset a écrit : On dirait qu'ils s'en foutent en clair
En fait tous font du supprt pour phpbb pas les demandes personnalisés des membres qui n'ont rien à voir et encore moins avec des bidouilles en dehors du codage spécifique de phpbb ce comme vouloir mettre un moteur de F1 dans une 2cv


Auteur du sujet
chipset
Messages : 9
Enregistré le : mars 2014

Récupérer numéro de page (topic_data)

Message par chipset » mar. 25 mars 2014 19:00

Je l'ai installé Topic Evaluation, d'ailleurs je ne l'ai pas encore enlevé, alors lui c'est avec les balises Rating et Count qu'il est incompatible.

Quand ça fonctionne d'un côté c'est de l'autre que ça ne marche plus. En fait associer rich snippet à phpBB c'est pas hyper facile et au lieu de crée des MOD pour mettre un bouton bleu à côté du bouton vert il serait fort agréable que les modeurs se penchent sur la question des Rich Snippet aidant au référencement.

Avatar du membre

Steph
Administrateur phpBB Assistance
Administrateur phpBB Assistance
Messages : 10898
Enregistré le : avril 2010
Hébergeur(s) : monarobase
Localisation : Alsace (67)
Contact :

Re: Récupérer numéro de page (topic_data)

Message par Steph » mar. 25 mars 2014 19:26

On en revient toujours au même point c'est à dire que chacun pense que ce dont il a besoin personnellement est aussi indispensable aux autres, hors ce n'est pas le cas.

Créer un MOD pour les Rich Snippet ok, mais ce n'est pas simple du tout et puis vu qu'il faut générer du code je ne suis pas sûr que ce soit bon pour le nombre de requêtes.

Soit tu te lance toi-même dnas la création du MOD soit tu peux en faire la suggestion à un moddeur sauf que je doute fort que cela soit assez pertinent pour eux, à moins que phpbb seo soit intéressé.

Et puis bientôt il y a la version 3.1.X de phpbb qui va chambouler les MODs donc cela n'aide peut être pas pour prendre la décision de faire un MOD pour la tranche 3.0.X


Auteur du sujet
chipset
Messages : 9
Enregistré le : mars 2014

Récupérer numéro de page (topic_data)

Message par chipset » mer. 26 mars 2014 08:28

J'ai bien réfléchi.
Tu sais la semaine dernière j'ai acheté une cuisine équipé mais je ne suis ni plombier ni menuisier, alors j'ai payé un poseur.

Comme personne ne désire m'aider avec ce p.... de code je vais me payer les services d'un programmeur, ma passion c'est la cuisine pas codeur.
Je suis déçu des sites d'entraide car j'en possède un aussi dans un autre domaine (3 sites en tous), la réponse on la hache menue au membre parce qu'on veut s'assurer qu'il ne va pas planter Windows. On ne lui dit pas tiens sers-toi de tel utilitaire et débrouille-toi. Non tout est détaillé, avec même des captures d'écran s'il le faut.
Sur certain site concernant Mysql il faut que le membre se débrouille, limite à quoi sert le forum ?
Et c'est dangereux car sur une erreur on peut planter la base.

Enfin c'est ainsi, on va dire que les codeurs vivent dans un monde de codeurs entourés d'autres codeurs et ne parviennent à comprendre que des codes. Aider un néophyte, pourquoi faire, attends... tu sais pas coder....noooon ?

Bonne continuation et merci pour cet échange.

Avatar du membre

Steph
Administrateur phpBB Assistance
Administrateur phpBB Assistance
Messages : 10898
Enregistré le : avril 2010
Hébergeur(s) : monarobase
Localisation : Alsace (67)
Contact :

Re: Récupérer numéro de page (topic_data)

Message par Steph » mer. 26 mars 2014 09:30

Je sais coder un minimum et je connais assez bien phpbb mais je ne veux pas faire n'importe quoi non plus et je n'ai pas réponse à tout non plus.

D'ailleurs dans mon dernier MOD que j'ai codé je récupère à plusieurs reprise l'id du posteur c'est à peu de chose pareil ---> Redimensionnement des images et tri des hébergeurs approuvés

Ta méthode de php dans les templates n'est pas la bonne et je t'ai donné des pistes toutes faites (MOD) qui respectes le code source de phpbb je ne peux rien faire de plus.

Attention à ne pas confondre forum d'entraide et prestataire de service les buts ne sont pas les mêmes.

Le MOD Topic Evaluation fait exactement ce que tu souhaites quant à tes balises Rating et Count je ne sais pas d'où ils viennent donc je ne peux te dire ce qui ne va pas.

Si tu as besoin de l'id du sujet dans la vue du sujet tu le récupère avec {TOPIC_ID} dans le template viewtopic_bodyhtml (côté html) ou $topic_id dans le fichier viewtopic.php (côté php)

Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message

Retourner vers « Support Webmastering »