| |
|
| :: |
| Auteur |
Message |
bicool
Inscrit le: 29 Avr 2007 Messages: 25
|
Posté le: Lun Avr 30, 2007 7:51 am Sujet du message: mettre mon forum dans un site et intégrer des news |
|
|
Bonjour à tous, je me suis inscrit sur ce forum
car durant mes recherches, j'ai eu beaucoup
d'aide de votre part.
Mais ne trouvant pas de solution adéquat,
j'en vien a vous demander de l'aide.
J'ai en faite intégrer le forum phpBB dans mon site web,
en moidifiant les templates, jusque là rien de spécial.
J'ai aussi créer des groupes avec des forum privés.
Et je souhaiterai que sur la page d'accueil de mon site,
celui où phpBB est intégrer, afficher des news,
mais je suis compliqué
Je souhaiterai que les membres d'un groupe, une fois connecté puissent lire les news en rapport avec le groupe, et que quand on est pas connecté on voit les news générales.
Pour cela, il faudrait donner des droits a certains membres pour qu'ils postent des news juste pour leurs groupe.
Je peux vous répondre plus en détail si vous le souhaitez.
Ouf!
J'attend vos réponses
PS: je ne souhaite pas utiliser de portails
Les news doivent apparaitre avec le contenu, les image, etc sur la page d'accueil, pas seulement le titre |
|
|
| Revenir en haut de page |
|
 |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15131
|
|
| Revenir en haut de page |
|
 |
bicool
Inscrit le: 29 Avr 2007 Messages: 25
|
Posté le: Lun Avr 30, 2007 10:57 am Sujet du message: Re: mettre mon forum dans un site et intégrer des news |
|
|
oui je code en php je vais m'inspirer de ça merci  |
|
|
| Revenir en haut de page |
|
 |
bicool
Inscrit le: 29 Avr 2007 Messages: 25
|
Posté le: Lun Avr 30, 2007 4:20 pm Sujet du message: Re: mettre mon forum dans un site et intégrer des news |
|
|
Re, je voudrai une explication stp, le mod que tu m'as donné et un mod pour un "portail" et toi tu veux que je prenne juste le bloc de news du portail et l'insérer dans ma page d'accueil mais je n'y arrive pas. STP aide moi  |
|
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15131
|
Posté le: Mar Mai 01, 2007 10:24 am Sujet du message: Re: mettre mon forum dans un site et intégrer des news |
|
|
C'est pour cela que j'ai dit, si tu codes un peu.
Le portail utilises pratiquement les mêmes standards que phpBB, classe SQL et templating, donc, c'est assez proche, très même, mxBB utilises juste un ou deux fonction perso, que tu pourrais même ajouter à phpBB pour faire encore plus simple.
Tu trouvera par exemple la réponse à ta question sur la requète SQL à effectuer :
| Code: | $sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid, p2.post_time AS last_post_time
FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2, " . POSTS_TEXT_TABLE . " pt
WHERE p.topic_id = t.topic_id
AND t.topic_type IN ( " . $topic_type . " )
AND p.post_id = t.topic_first_post_id
AND pt.post_id = p.post_id
AND u.user_id = p.poster_id
AND p.post_time >= $min_topic_time
AND t.forum_id IN ( $auth_data_sql )
AND t.forum_id IN ( $announce_forum )
AND p2.post_id = t.topic_last_post_id
AND u2.user_id = p2.poster_id
ORDER BY p.post_time $post_time_order
LIMIT $start, " . $announce_nbr_display; |
Dans ton cas, tu pourrais simplifier en :
| Code: | $sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid, p2.post_time AS last_post_time
FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2, " . POSTS_TEXT_TABLE . " pt
WHERE p.topic_id = t.topic_id
AND t.topic_type IN ( " . $topic_type . " )
AND p.post_id = t.topic_first_post_id
AND pt.post_id = p.post_id
AND u.user_id = p.poster_id
AND p.post_time >= $min_topic_time
AND t.forum_id IN ( $auth_data_sql )
AND p2.post_id = t.topic_last_post_id
AND u2.user_id = p2.poster_id
ORDER BY p.post_time $post_time_order
LIMIT $start, " . $announce_nbr_display; |
Et t'ocupper des autorisation de cette façon, comme dans rss.php du mode gym sitemaps :
| Code: | $auth_data_sql = array();
$auth_data_sql = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata);
foreach ($auth_data_sql as $f_id => $f_auth) {
// only keep unauthed ids
if ( !$not_auth_ary[$f_id]['auth_view'] || !$not_auth_ary[$f_id]['auth_read']) {
unset($not_auth_ary[$f_id]);
} else {
// Only keep forum id
$auth_data_sql[$f_id] = $f_id;
}
}
// ici tu pourrais égallement filtrer des forum que tu ne souhaite pas afficher dans ta home
// en utilisant unset() sur les entrées correspondant à leur id dans la tableux $auth_data_sql.
$auth_data_sql = (!empty($auth_data_sql)) ? implode(",", $auth_data_sql) : 0; |
Et hop, tu peux envoyer la requète avec les autorisations.
Il te faudra égallement initialiser :
| Code: |
$min_topic_time = un chiffre en secondes; |
A zero pour aucune limite de temps et t'occuper de :
qui sert à séléctionner les types de sujets, genre :
| Code: | | $topic_type = POST_ANNOUNCE; |
pour les annonces seules :
| Code: | | $topic_type = POST_STICKY . "," . POST_ANNOUNCE; |
pour les annonces et les post its, tu peux lister tous les types que tu veux, séparé par des virgules, ils sont définits dans includes/constants.php :
| Code: | // Topic types
define('POST_NORMAL', 0);
define('POST_STICKY', 1);
define('POST_ANNOUNCE', 2);
define('POST_GLOBAL_ANNOUNCE', 3); |
Après ça, tu as toutes les donnée, te restes plus qu'à mettre en forme.
++ |
_________________ 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 |
|
 |
bicool
Inscrit le: 29 Avr 2007 Messages: 25
|
Posté le: Mar Mai 01, 2007 11:45 am Sujet du message: Re: mettre mon forum dans un site et intégrer des news |
|
|
Wow, j'admire ton savoir !!!!!!
Merci, je tien juste a rappeler que sur la page d'accueil de mon site, je n'utilise pas les tpl.
merci, je vais esayé  |
|
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15131
|
Posté le: Mar Mai 01, 2007 11:55 am Sujet du message: Re: mettre mon forum dans un site et intégrer des news |
|
|
C'est pas grave, pour peu que tu partages les sessions de phpbb, ce qu'il faut que tu fasse pour réutiliser la classe $db et les fonctions phpBB, dont celles des autorisations, tu peux le faire.
Et tu peux même t'en passer si tu veux, à coup de echo, là, tu as juste les donnée brutes à formatter et afficher comme tu le sent.
Je ne te cache pas qu'il reste du taf, j'aurais fait direct le mod si non, mais tu as la base.
A noter que l'on peu aussi utiliser GYM sitemaps pour efficher des message sur un page, en utilisant magpie, un sujet a été lancé à ce sujet dans le forum anglophone, je vais bientôt écrire plus sur le sujet.
++ |
_________________ 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 |
|
 |
bicool
Inscrit le: 29 Avr 2007 Messages: 25
|
Posté le: Mar Mai 01, 2007 12:01 pm Sujet du message: Re: mettre mon forum dans un site et intégrer des news |
|
|
ok, mais un problème m'est apparu
voici mon code total:
| Code: | $nombre = 5;
$auth = auth(AUTH_READ,AUTH_LIST_ALL,$userdata);
$requete = '(';
for($i=1;$i<=count($auth);$i++)
{
if ($auth[$i]['auth_read'])
$requete .= $i . ',';
}
$requete = substr($requete,0,strlen($requete)-1);
$requete .= ')';
$news_data = $db->sql_fetchrow($result);
$auth_data_sql = array();
$auth_data_sql = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata);
foreach ($auth_data_sql as $f_id => $f_auth) {
// only keep unauthed ids
if ( !$not_auth_ary[$f_id]['auth_view'] || !$not_auth_ary[$f_id]['auth_read']) {
unset($not_auth_ary[$f_id]);
} else {
// Only keep forum id
$auth_data_sql[$f_id] = $f_id;
}
}
// ici tu pourrais égallement filtrer des forum que tu ne souhaite pas afficher dans ta home
// en utilisant unset() sur les entrées correspondant à leur id dans la tableux $auth_data_sql.
$auth_data_sql = (!empty($auth_data_sql)) ? implode(",", $auth_data_sql) : 0;
$min_topic_time = 0;
$topic_type = POST_NORMAL;
$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid, p2.post_time AS last_post_time
FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2, " . POSTS_TEXT_TABLE . " pt
WHERE p.topic_id = t.topic_id
AND t.topic_type IN ( " . $topic_type . " )
AND p.post_id = t.topic_first_post_id
AND pt.post_id = p.post_id
AND u.user_id = p.poster_id
AND p.post_time >= $min_topic_time
AND t.forum_id IN ( $auth_data_sql )
AND p2.post_id = t.topic_last_post_id
AND u2.user_id = p2.poster_id
ORDER BY p.post_time $post_time_order
LIMIT $start, " . $announce_nbr_display;
$result = $db->sql_query($sql);
while( $row = $db->sql_fetchrow($result) )
{
$row['username'] = ( $row['poster_id'] == -1 ) ? ( ($row['post_username'] != '') ? $row['post_username'] : 'Invité' ): $row['username'];
?>
<div class="contenu">
<div class="roundedcornr_top_758222">
<div class="roundedcornr_bottom_758222"><span class="titre_news"><?php echo('<a href="' . $phpbb_root_path . 'viewtopic.php?' . POST_POST_URL . '=' . $row['post_id'] . '#' . $row['post_id'] . '" title="' . $row['topic_title'] . '">' . $row['topic_title'] . '</a>');?></span></div>
</div>
<div class="contenu2">
L'heure se paramètre à deux endroits : dans l'administratoin, et dans le profil.
Ces deux paramètrages ont des buts différents. Dans l'administration, le paramétrage sert pour les non-connectés, et comme paramètre par défaut pour les nouveaux membres (un changement ici ne changera rien dans le profil des membres existants).
- Allez dans le Panneau d'administration, puis Configuration.
- Changez la ligne Format de la date comme désiré. Les lettres utilisées pour le paramétrage sont celles utilisées par la fonction PHP date(). Vous pouvez consulter les informations sur cette fonction dans la documentation PHP.
Exemple :
</div>
<div class="roundedcornr_bottom_758222">
<div>
<span class="mini"><?php
$lien = append_sid('forum/profile.php?mode=viewprofile&u=' .$row['poster_id']);
echo
'Posté par <a href="'. $lien .'">' . $row['username'] . '</a> le '
. create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone']) ; ?></span> </div>
</div>
</div> |
tu a pu le remarquer, a chaque news, des div viennent mettre en forme la news, car il est placé dans une boucle ,while.
mais sur ma page, rien ne s'affiche aprés le changement, quelles sont les variables qui donne, les titre, contenue, posteur, etc. ?
PS: un text fictif est placé, il parle de l'heure sur phpbb, je souhaite le remplacer par une variable qui contient le contenu, aussi j'ai pas compris avec le unset. |
|
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15131
|
Posté le: Mar Mai 01, 2007 12:11 pm Sujet du message: Re: mettre mon forum dans un site et intégrer des news |
|
|
Le début est bizarre :
| Code: |
$nombre = 5;
$auth = auth(AUTH_READ,AUTH_LIST_ALL,$userdata);
$requete = '(';
for($i=1;$i<=count($auth);$i++)
{
if ($auth[$i]['auth_read'])
$requete .= $i . ',';
}
$requete = substr($requete,0,strlen($requete)-1);
$requete .= ')';
$news_data = $db->sql_fetchrow($result); |
Il ne sert à rien on dirait bien, pas dans la requête en tous cas, et j'ai oublié de te parler des limites :
| Code: | | LIMIT $start, " . $announce_nbr_display; |
Il faut donc initialiser ces deux là, enfin pas besoin de $start si tu ne compte pas utiliser de pagination, du coup :
| Code: |
$announce_nbr_display = nombre de new à afficher; |
Et utilises plutôt :
| Code: | | LIMIT $announce_nbr_display "; |
du coup.
Pour le reste, c'est bien dans $row que vont se trouver les résultats, le LIMIT "rien du tout" devait renvoyer un tableau vide
Le coup du unset(), c'est juste pour dire que tu pourrais choisir de ne pas prendre en compte tous les forums pour afficher des news, faire un :
| Code: | | unset($auth_data_sql[9]); |
à l'endroit du commentaire empêcherait par exemple que le forum n°9 serve de source pour les news, peu importe les autorisations.
++ |
_________________ 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 |
|
 |
bicool
Inscrit le: 29 Avr 2007 Messages: 25
|
Posté le: Mar Mai 01, 2007 12:16 pm Sujet du message: Re: mettre mon forum dans un site et intégrer des news |
|
|
olalala t'es vraiment super !
merci
meric !!!
j'ai donc changé mon code pour obtenir ça :
| Code: | <?php
$auth_data_sql = array();
$auth_data_sql = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata);
foreach ($auth_data_sql as $f_id => $f_auth) {
// only keep unauthed ids
if ( !$not_auth_ary[$f_id]['auth_view'] || !$not_auth_ary[$f_id]['auth_read']) {
unset($not_auth_ary[$f_id]);
} else {
// Only keep forum id
$auth_data_sql[$f_id] = $f_id;
}
}
// ici tu pourrais égallement filtrer des forum que tu ne souhaite pas afficher dans ta home
// en utilisant unset() sur les entrées correspondant à leur id dans la tableux $auth_data_sql.
$auth_data_sql = (!empty($auth_data_sql)) ? implode(",", $auth_data_sql) : 0;
$min_topic_time = 0;
$topic_type = POST_NORMAL;
$announce_nbr_display = 5;
$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid, p2.post_time AS last_post_time
FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2, " . POSTS_TEXT_TABLE . " pt
WHERE p.topic_id = t.topic_id
AND t.topic_type IN ( " . $topic_type . " )
AND p.post_id = t.topic_first_post_id
AND pt.post_id = p.post_id
AND u.user_id = p.poster_id
AND p.post_time >= $min_topic_time
AND t.forum_id IN ( $auth_data_sql )
AND p2.post_id = t.topic_last_post_id
AND u2.user_id = p2.poster_id
ORDER BY p.post_time $post_time_order
LIMIT $start, " . $announce_nbr_display;
$result = $db->sql_query($sql);
while( $row = $db->sql_fetchrow($result) )
{
$row['username'] = ( $row['poster_id'] == -1 ) ? ( ($row['post_username'] != '') ? $row['post_username'] : 'Invité' ): $row['username'];
?>
<div class="contenu">
<div class="roundedcornr_top_758222">
<div class="roundedcornr_bottom_758222"><span class="titre_news"><?php echo('<a href="' . $phpbb_root_path . 'viewtopic.php?' . POST_POST_URL . '=' . $row['post_id'] . '#' . $row['post_id'] . '" title="' . $row['topic_title'] . '">' . $row['topic_title'] . '</a>');?></span></div>
</div>
<div class="contenu2">
L'heure se paramètre à deux endroits : dans l'administratoin, et dans le profil.
Ces deux paramètrages ont des buts différents. Dans l'administration, le paramétrage sert pour les non-connectés, et comme paramètre par défaut pour les nouveaux membres (un changement ici ne changera rien dans le profil des membres existants).
</div>
<div class="roundedcornr_bottom_758222">
<div>
<span class="mini"><?php
$lien = append_sid('forum/profile.php?mode=viewprofile&u=' .$row['poster_id']);
echo
'Posté par <a href="'. $lien .'">' . $row['username'] . '</a> le '
. create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone']) ; ?></span> </div>
</div>
</div>
<?php
}
?> |
Mais je ne sais pas le nom de la variable qui contient les news, et aussi rien ne s'affiche ?!
il doit y avoir un probléme mais je en sais pas lequel. |
|
|
| Revenir en haut de page |
|
 |
bicool
Inscrit le: 29 Avr 2007 Messages: 25
|
Posté le: Mar Mai 01, 2007 1:45 pm Sujet du message: Re: mettre mon forum dans un site et intégrer des news |
|
|
| personne a une idée ? |
|
|
| 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 |
|
|
|
|
|
|
|