| |
|
| :: |
| Auteur |
Message |
KeusssiX PR0

Inscrit le: 27 Oct 2006 Messages: 67 Localisation: Lille, 59 France
|
Posté le: Sam Nov 25, 2006 4:08 pm Sujet du message: Re: Derniers posts ac infos diverses et premiers mots :[u] :-/ ? |
|
|
bon, finalement, je n'ai changé que cela et tout fonctionne :
| Code: | | $post_title = "<a href=\"".append_sid("http://www.toutalamaison.com/forum/". format_url($db_data['topic_title']) . '-vt'.$db_data['topic_id']).".html\">".$db_data['topic_title']."</a>"; |
apparemment, de mettre le chemin vers include faisait foirer le script, et ça marche très bien comme ça : en utilisant ce script placé dans toutes les pages hors forum. pourquoi tout le monde ne l'utilise pas ?
| Code: | define('IN_PHPBB', true);
$phpbb_root_path = './forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_SITE);
init_userprefs($userdata);
//
// End session management
// |
il n'y a que les règles de censure que je n'ai pas appliqué. je ne comprends pas bien l'utilité. à priori, les messages affichés existent déjà, et sont rewrités partout comme ça. donc pourquoi y appliquer une censure juste ici ? cela ne créerai pas de duplicate ? (ou alors je n'ai rien compris, ce qui est bien possible  |
|
|
| Revenir en haut de page |
|
 |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15131
|
|
| Revenir en haut de page |
|
 |
doudou phpBB SEO Team

Inscrit le: 17 Sep 2006 Messages: 335 Localisation: Dans son Coeur...
|
Posté le: Sam Nov 25, 2006 6:37 pm Sujet du message: Re: Derniers posts ac infos diverses et premiers mots :[u] :-/ ? |
|
|
bon j'ai fait un test mais je crois que les préfixes des tables posent un probleme:
| Code: | <?php
$connection=mysql_connect("mysql","xxx","xxx");
mysql_select_db("xxxx");
include 'forum/includes/functions.php';
// Sélection des 5 derniers posts
#exception pour la page d'accueil
$page = $_GET['page'];
if ($page == 'accueil') {
$nbr = 8; }
else {
$nbr = 5; }
$sql = "SELECT TP.topic_id, TP.topic_title, TP.topic_replies, PT.post_text, PST.post_time, PST.poster_id, PST.post_username, US.username, p2.post_time AS last_post_time, p2.post_username AS last_post_username
FROM phpbb_topics TP, forum_posts_text PT, forum_posts PST, forum_users US, forum_posts AS p2
WHERE PT.post_id = TP.topic_first_post_id
AND PST.post_id = TP.topic_first_post_id
AND US.user_id = TP.topic_poster
AND p2.post_id = TP.topic_last_post_id
GROUP BY TP.topic_id
ORDER BY TP.topic_id DESC
LIMIT $nbr";
$req = mysql_query($sql) or die(mysql_error());
// Boucle d'affichage du post
while($db_data = mysql_fetch_assoc($req)) {
// Titre du post
$post_title = "<a href=\"http://www.soninkara.org/forum/" . format_url(stripslashes($db_data['topic_title'])) . '-vt' . $db_data['topic_id'] . ".html\">" . $db_data['topic_title']."</a>";
// Extrait du post
$post = $db_data['post_text'];
$max_caracteres = 200;
if (strlen($post)>$max_caracteres) {
$max_caracteres=strrpos(substr($post, 0, $max_caracteres), " ");
$post = substr($post, 0, $max_caracteres);
$post .= " (...)";
}
// Traitement des variables alphanumériques des bbcodes
$post = preg_replace("(\[.*\])U","",$post );
// Traitement du nom de l'auteur
if ($db_data['poster_id'] != '-1' ) {
$poster = "<a href=\"".append_sid("$urlPath/forum/member".$db_data['poster_id']).".html\" class=\"nav\" >".$db_data['username']."</a>";
}
else {
$poster = $db_data['post_username'];
}
// Traitement des réponses
$nombre = $db_data['topic_replies'];
$reponses = $lang['Replies'];
if ($nombre == 0) {
$reponses = "";
}
else {
$reponses = "($nombre $reponses)";
}
// Traitement de la date du post
$post_time = gmdate("d M Y \à H:i:s", $db_data['last_post_time']+(3600));
echo "<p align=\"left\">$post_title, <span class=\"Style100\">par $poster, le $post_time $reponses</span><br />
$post</p>";
}
?> |
quand je fais l'essai, je reçois l'erreur suivante:
| Code: | | Table 'dbase.forum_posts_text' doesn't exist |
Pour mon forum, le préfixe des tables est phpbb_ , il est l'erreur ? |
_________________ Forum phpBB3 | mod Rewrite phpBB3 | mod Rewrite phpBB3 |
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15131
|
|
| Revenir en haut de page |
|
 |
gowap phpBB SEO Team


Inscrit le: 07 Mai 2006 Messages: 1008
|
Posté le: Sam Nov 25, 2006 8:30 pm Sujet du message: Re: Derniers posts ac infos diverses et premiers mots :[u] :-/ ? |
|
|
| KeusssiX a écrit: | | apparemment, de mettre le chemin vers include faisait foirer le script |
Alors c'est que le chemin donné dans l'include n'était pas bon, tout simplement, et donc ensuite la fonction format_url n'était pas définie.
| Citation: | et ça marche très bien comme ça : en utilisant ce script placé dans toutes les pages hors forum. pourquoi tout le monde ne l'utilise pas ?
| Code: | define('IN_PHPBB', true);
$phpbb_root_path = './forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_SITE);
init_userprefs($userdata);
//
// End session management
// |
|
Parce que tout le monde n'a pas envie de mettre en branle toute la machine phpBB pour rien.
common.php va charger tous les autres modules importants de phpBB : l'abstraction base de données, les autorisations et j'en passe. Si on est "hors forum", par définition on a pas besoin de gérer forcément tout ca car on affiche alors du contenu a des gens qui ne sont peut etre meme pas inscrits.
Il est inutile de faire parser autant de code a l'interpreteur php.
Quand on cherche un mot qui commence par la lettre R dans le dico, on va pas commencer a lire toutes les pages en "A", en "B", etc. jusqu'a "R", on va au but le plus rapidement possible, non ? |
_________________ Gravure-News : la communauté francophone de la gravure de CD/DVD et son forum d'entraide. |
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15131
|
Posté le: Sam Nov 25, 2006 9:42 pm Sujet du message: Re: Derniers posts ac infos diverses et premiers mots :[u] :-/ ? |
|
|
C'est vrai.
Et une bonne partie de cette perte viens des fichiers langues. Mais bon, la classe d'abstraction pour la db, c'est pratique, et le petit passage par common .php à le mérite de filtrer deux ou trois trucs pour la sécurité de base.
A mon avis, la perte est pas énorme mais ça peut compter pour une très gros site pas très bien hébergé.
++ |
_________________ Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________
Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche |
|
| Revenir en haut de page |
|
 |
KeusssiX PR0

Inscrit le: 27 Oct 2006 Messages: 67 Localisation: Lille, 59 France
|
Posté le: Dim Nov 26, 2006 1:34 am Sujet du message: Re: Derniers posts ac infos diverses et premiers mots :[u] :-/ ? |
|
|
hum, ok je comprends.
c'est à prendre en considération dès que l'on augmente fortement la fréquentation de son site sur un hébergeur moyen.  |
|
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15131
|
Posté le: Dim Nov 26, 2006 11:35 am Sujet du message: Re: Derniers posts ac infos diverses et premiers mots :[u] :-/ ? |
|
|
On ne parle que du tout début du déroulement du code de phpBB, ce qui prend vraiment du temps se passe après, quand il s'agit de chercher quoi mettre dans la page, le traiter et l'afficher.
Faudrait faire des tests, mais si tu n'affiches pas viewonline, cela ajoute deux requêtes sql, la config de phpBB et la session, à comparer avec , n'importe quel portail ...
Comme principe général, de faire léger est un must, mais il faut aussi prendre en compte la facilité de maniement et de code. Réutiliser à donf les même fonctions de base est une bonne pratique, beaucoup mieux que de répéter du code pour faire du sur mesure à tout prix.
En plus, si tu utilises des templates pour les pages ajoutées, tu peux faire du multilingue et du dynamique à pas cher en ressources et profiter du cache de xs mod sur tout le site. Il n'y a vraiment que dans le cas d'une page unique et sans interaction que l'économie a un sens, enfin, IMHO comme on dit .
++ |
_________________ Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________
Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche |
|
| Revenir en haut de page |
|
 |
doudou phpBB SEO Team

Inscrit le: 17 Sep 2006 Messages: 335 Localisation: Dans son Coeur...
|
Posté le: Dim Nov 26, 2006 5:05 pm Sujet du message: Re: Derniers posts ac infos diverses et premiers mots :[u] :-/ ? |
|
|
Salut
Bon j'ai changé les préfixes des tables et de ce côté c'est bom, mais j'ai un probleme sur
| Code: | | Fatal error: Call to undefined function: append_sid() in /mnt/sites/.../2.php on line 50 |
Le fichier de test est http://www.soninkara.org/2.php
Voici mon code en intégralité:
| Code: | <?php
$connection=mysql_connect("xxx","xxx","xxx");
mysql_select_db("xxx");
include 'forum/includes/functions.php';
// Sélection des 5 derniers posts
#exception pour la page d'accueil
$page = $_GET['page'];
if ($page == 'accueil') {
$nbr = 8; }
else {
$nbr = 5; }
$sql = "SELECT TP.topic_id, TP.topic_title, TP.topic_replies, PT.post_text, PST.post_time, PST.poster_id, PST.post_username, US.username, p2.post_time AS last_post_time, p2.post_username AS last_post_username
FROM phpbb_topics TP, phpbb_posts_text PT, phpbb_posts PST, phpbb_users US, phpbb_posts AS p2
WHERE PT.post_id = TP.topic_first_post_id
AND PST.post_id = TP.topic_first_post_id
AND US.user_id = TP.topic_poster
AND p2.post_id = TP.topic_last_post_id
GROUP BY TP.topic_id
ORDER BY TP.topic_id DESC
LIMIT $nbr";
$req = mysql_query($sql) or die(mysql_error());
// Boucle d'affichage du post
while($db_data = mysql_fetch_assoc($req)) {
// Titre du post
$post_title = "<a href=\"http://www.soninkara.org/forum/" . format_url(stripslashes($db_data['topic_title'])) . '-vt' . $db_data['topic_id'] . ".html\">" . $db_data['topic_title']."</a>";
// Extrait du post
$post = $db_data['post_text'];
$max_caracteres = 200;
if (strlen($post)>$max_caracteres) {
$max_caracteres=strrpos(substr($post, 0, $max_caracteres), " ");
$post = substr($post, 0, $max_caracteres);
$post .= " (...)";
}
// Traitement des variables alphanumériques des bbcodes
$post = preg_replace("(\[.*\])U","",$post );
// Traitement du nom de l'auteur
if ($db_data['poster_id'] != '-1' ) {
$poster = "<a href=\"".append_sid("$urlPath/forum/member".$db_data['poster_id']).".html\" class=\"nav\" >".$db_data['username']."</a>";
}
else {
$poster = $db_data['post_username'];
}
// Traitement des réponses
$nombre = $db_data['topic_replies'];
$reponses = $lang['Replies'];
if ($nombre == 0) {
$reponses = "";
}
else {
$reponses = "($nombre $reponses)";
}
// Traitement de la date du post
$post_time = gmdate("d M Y \à H:i:s", $db_data['last_post_time']+(3600));
echo "<p align=\"left\">$post_title, <span class=\"Style100\">par $poster, le $post_time $reponses</span><br />
$post</p>";
}
?> |
|
_________________ Forum phpBB3 | mod Rewrite phpBB3 | mod Rewrite phpBB3 |
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15131
|
|
| Revenir en haut de page |
|
 |
doudou phpBB SEO Team

Inscrit le: 17 Sep 2006 Messages: 335 Localisation: Dans son Coeur...
|
Posté le: Dim Nov 26, 2006 5:39 pm Sujet du message: Re: Derniers posts ac infos diverses et premiers mots :[u] :-/ ? |
|
|
merci à dcz et à tous,
ça fonctionne et j'ai compris le fonctionnement. |
_________________ Forum phpBB3 | mod Rewrite phpBB3 | mod Rewrite phpBB3 |
|
| Revenir en haut de page |
|
 |
doudou phpBB SEO Team

Inscrit le: 17 Sep 2006 Messages: 335 Localisation: Dans son Coeur...
|
Posté le: Dim Nov 26, 2006 5:50 pm Sujet du message: Re: Derniers posts ac infos diverses et premiers mots :[u] :-/ ? |
|
|
| je me suis rendu compte que certains titre dessujets sont assez longs. Comment limiter le nombre de caractères des titres des sujets comme on l'a fait avec le texte des posts ? |
_________________ Forum phpBB3 | mod Rewrite phpBB3 | mod Rewrite phpBB3 |
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15131
|
Posté le: Dim Nov 26, 2006 6:01 pm Sujet du message: Re: Derniers posts ac infos diverses et premiers mots :[u] :-/ ? |
|
|
Trouves :
| Code: | | $post_title = "<a href=\"http://www.soninkara.org/forum/" . format_url(stripslashes($db_data['topic_title'])) . '-vt' . $db_data['topic_id'] . ".html\">" .$post_title = "<a href=\"http://www.soninkara.org/forum/" . format_url(stripslashes($db_data['topic_title'])) . '-vt' . $db_data['topic_id'] . ".html\">" . $db_data['topic_title']."</a>"; |
Remplace par :
| Code: | // La limite en lettres
$max_titre = 15;
$titre_court = (strlen($db_data['topic_title'])>$max_titre) ? substr($db_data['topic_title'], 0, $max_titre) . "(...)" : $db_data['topic_title'];
$post_title = "<a href=\"http://www.soninkara.org/forum/" . format_url($db_data['topic_title']) . '-vt' . $db_data['topic_id'] . ".html\">" . $titre_court."</a>";
|
Tu changes :
Par la valeur limite souhaitée
++ |
_________________ Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________
Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche |
|
| Revenir en haut de page |
|
 |
doudou phpBB SEO Team

Inscrit le: 17 Sep 2006 Messages: 335 Localisation: Dans son Coeur...
|
Posté le: Dim Nov 26, 2006 6:36 pm Sujet du message: Re: Derniers posts ac infos diverses et premiers mots :[u] :-/ ? |
|
|
Merci ça marche nickel.
Voici mon script dont j'ai mis une liste à puce pour ceux que ça interresserait:
| Code: | <?php
$connection=mysql_connect("hote","user base de donnees","mot de passe");
mysql_select_db("nom bd");
include 'forum/includes/functions.php';
// Sélection des 5 derniers posts
#exception pour la page d'accueil
$page = $_GET['page'];
if ($page == 'accueil') {
$nbr = 8; }
else {
$nbr = 10; }
$sql = "SELECT TP.topic_id, TP.topic_title, TP.topic_replies, PT.post_text, PST.post_time, PST.poster_id, PST.post_username, US.username, p2.post_time AS last_post_time, p2.post_username AS last_post_username
FROM phpbb_topics TP, phpbb_posts_text PT, phpbb_posts PST, phpbb_users US, phpbb_posts AS p2
WHERE PT.post_id = TP.topic_first_post_id
AND PST.post_id = TP.topic_first_post_id
AND US.user_id = TP.topic_poster
AND p2.post_id = TP.topic_last_post_id
GROUP BY TP.topic_id
ORDER BY TP.topic_id DESC
LIMIT $nbr";
$req = mysql_query($sql) or die(mysql_error());
// Boucle d'affichage du post
while($db_data = mysql_fetch_assoc($req)) {
// Titre du post
// La limite en lettres
$max_titre = 50;
$titre_court = (strlen($db_data['topic_title'])>$max_titre) ? substr($db_data['topic_title'], 0, $max_titre) . "(...)" : $db_data['topic_title'];
$post_title = "<a href=\"http://www.soninkara.org/forum/" . format_url($db_data['topic_title']) . '-vt' . $db_data['topic_id'] . ".html\">" . $titre_court."</a>";
// Extrait du post
$post = $db_data['post_text'];
$max_caracteres = 100;
if (strlen($post)>$max_caracteres) {
$max_caracteres=strrpos(substr($post, 0, $max_caracteres), " ");
$post = substr($post, 0, $max_caracteres);
$post .= " (...)";
}
// Traitement des variables alphanumériques des bbcodes
$post = preg_replace("(\[.*\])U","",$post );
// Traitement du nom de l'auteur
if ($db_data['poster_id'] != '-1' ) {
$poster = "<a href=\"$urlPath/forum/member" . $db_data['poster_id'] . ".html\" class=\"nav\" >".$db_data['username']."</a>";
}
else {
$poster = $db_data['post_username'];
}
// Traitement des réponses
$nombre = $db_data['topic_replies'];
$reponses = $lang['Replies'];
if ($nombre == 0) {
$reponses = "";
}
else {
$reponses = "($nombre $reponses)";
}
// Traitement de la date du post
$post_time = gmdate("d M Y \à H:i:s", $db_data['last_post_time']+(3600));
echo "<ul> <li>$post_title, <span class=\"Style100\">par $poster, le $post_time $reponses</span><br>
$post</li></ul>";
}
?> |
|
_________________ Forum phpBB3 | mod Rewrite phpBB3 | mod Rewrite phpBB3 |
|
| Revenir en haut de page |
|
 |
KeusssiX PR0

Inscrit le: 27 Oct 2006 Messages: 67 Localisation: Lille, 59 France
|
Posté le: Dim Nov 26, 2006 7:21 pm Sujet du message: Re: Derniers posts ac infos diverses et premiers mots :[u] :-/ ? |
|
|
au passage pour les débutants qui passent, ceci est destiné à modifier le nombre de messages affichés selon la page en cours.
donc ce n'est pas nécessaire pour tous le monde
(mes pages sont de la forme .php?page=nom_page et je ne voulais que 8 messages sur ma page d'accueil).
donc si vous voulez changez le nombre de messages selon la page, modifiez en conséquence :
| Code: | // Sélection des 5 derniers posts
#exception pour la page d'accueil
$page = $_GET['page'];
if ($page == 'accueil') {
$nbr = 8; }
else {
$nbr = 10; } |
ps : ce titre "Sélection des 5 derniers posts" est à changer en conséquence pour que tout soit beau
si on veut le même nombre de messages sur toutes les pages, il faut nettoyer le code au dessus et simplement tout remplacer par :
| Code: | // Sélection des 5 derniers posts
$nbr = 5; |
|
|
|
| Revenir en haut de page |
|
 |
|
|
| Navigation |
Autres sujets de discussion |
|
|
|
|
|
|
|