| |
|
| :: |
| Auteur |
Message |
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 |
|
 |
doudou phpBB SEO Team

Inscrit le: 17 Sep 2006 Messages: 335 Localisation: Dans son Coeur...
|
Posté le: Lun Nov 27, 2006 12:07 am Sujet du message: Re: Derniers posts ac infos diverses et premiers mots :[u] :-/ ? |
|
|
Par contre si on veut afficher le nom du dernier posteur comment fait on ?
Car j'ai remarqué que le topic est affiché avec le premier message et le nom du membre ayant ouvert le thread.
Comment afficher les derniers messages par date de dernier ajout de messages comme le fait topic_anywhere ? |
_________________ Forum phpBB3 | mod Rewrite phpBB3 | mod Rewrite phpBB3 |
|
| Revenir en haut de page |
|
 |
cut

Inscrit le: 05 Mar 2007 Messages: 22
|
Posté le: Mar Mar 06, 2007 6:22 pm Sujet du message: Re: Derniers posts ac infos diverses et premiers mots :[u] :-/ ? |
|
|
Suite à ce sujet je me suis lancé également dans ce code pour mettre les 10 derniers sujet du forum sur ma première page de site. Pour le moment j'ai juste généré un fichier essai.php placé à la racine du site.
Dispo à cette url : http://www.debatelectoral.fr/essai.php
Et l'on constate bien le malaise :
Fatal error: Call to undefined function: format_url() in /homepages/38/d196857047/htdocs/essai.php on line 39
Ligne 39 qui correspond à :
| Code: | | $post_title = "<a href=\"http://www.debatelectoral.fr/phpBB2/" . format_url(stripslashes($db_data['topic_title'])) . '-vt' . $db_data['topic_id'] . ".html\">" . |
J'ai revérifié mon fichier functions.php qui avait été modifié avec le mod rewrite avancé , et il ne semble pas y avoir d'erreurs dedans.
Voici le code de mon essai.php :
| Code: | <?php
$connection=mysql_connect("xxx","xxx","xxx");
mysql_select_db("xxx");
include 'phpBB2/includes/functions.php';
// Sélection des 10 derniers posts
#exception pour la page d'accueil
$page = $_GET['page'];
$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.debatelectoral.fr/phpBB2/" . format_url(stripslashes($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 .= " (...)";
}
// 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/phpBB2/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>";
}
?> |
Les xxx ayant bien été remplacé par les codes d'accés à ma BD.
La qestion également que je me pause c'est est-ce que mon essai.php à le droit d'accéder à functions.php.
Merci |
|
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15131
|
|
| Revenir en haut de page |
|
 |
cut

Inscrit le: 05 Mar 2007 Messages: 22
|
Posté le: Mar Mar 06, 2007 6:53 pm Sujet du message: Re: Derniers posts ac infos diverses et premiers mots :[u] :-/ ? |
|
|
Merci dcz , rapide comme toujours, néanmoins aprés remplacement il y a toujours un souci : ( surement pour la meme fonction format_url )
Fatal error: Call to a member function on a non-object in /homepages/38/d196857047/htdocs/essai.php on line 36
Peut-être manque t'il une variable, je n'avais pas fais attention que depuis la cration de sujet le mod rewrite avait été mis à jour du coup je suis un peu perdu .
Voilà la ligne 36 changée :
| Code: | | $post_title = "<a href=\"http://www.debatelectoral.fr/phpBB2/" . $phpbb_seo->format_url(stripslashes($db_data['topic_title'])) . '-vt' . $db_data['topic_id'] . ".html\">" . $titre_court."</a>"; |
Je ne sais pas trop quoi changer d'autre alors si quelqu'un savait .....
Merci |
|
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15131
|
|
| Revenir en haut de page |
|
 |
|
|
| Navigation |
Autres sujets de discussion |
|
|
|
|
|
|
|