| |
|
| :: |
| Auteur |
Message |
Yohan29
Inscrit le: 08 Aoû 2008 Messages: 10
|
Posté le: Lun Aoû 11, 2008 8:29 pm Sujet du message: Réécriture du flux RSS pour phpbb3 mod Simple Syndication ? |
|
|
Bonsoir à tous,
je tente avec espoir de mettre en place sur un Wordpress un bloc dans la sidebar qui récupère le flux rss de mon forum phpbb3 pour afficher les dix derniers messages.
J'ai donc installé le mod Simple Syndication. Le système fonctionne, sauf que les urls sur le blog ne sont pas réécrites. La réécriture pr le flux ne fonctionne pas.
Est ce que ceci est facilement faisable. Voici le code du mod :
Est ce que quelqu'un peut m'aider (je sais qu'un mod est en cours de préparation au sujet d'un flux, mais n'ayant pas de date de mise en ligne, ...)
| Code: | <?php
/*
*
* @package phpBB3
* @version $Id: syndication.php,v 1.0 2006/11/27 22:29:16 angelside Exp $
* @copyright (c) Canver Software
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
*/
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
// Begin configuration
$CFG['exclude_forums'] = '';
$CFG['max_topics'] = '';
// End configuration
// requests
$fid = request_var('fid', '');
$count = request_var('count', 0);
$chars = request_var('chars', 200);
$type = request_var('type', '');
$topics_only = request_var('t', '');
// If not set, set the output count to max_topics
$count = ( $count == 0 ) ? $CFG['max_topics'] : $count;
// maximum text char limit
if($chars<0 || $chars>500) $chars=500; //Maximum
// generate url
$board_url = generate_board_url();
$index_url = $board_url . '/index.' . $phpEx;
$viewtopic_url = $board_url . '/viewtopic.' . $phpEx;
// below three function barroved on "Full Syndication Suite 0.9.4a"
/**
* parse a message
*/
function parse_message($row, $bbcode_options, $bbcode_uid, $bbcode_bitfield)
{
global $board_url;
$row = html_entity_decode(generate_text_for_display($row, $bbcode_uid, $bbcode_bitfield, $bbcode_options));
// smilies contain relative URL, we need it to be absolute
return str_replace('<img src="./', '<img src="' . $board_url . '/', $row);
}
/**
* encode message for usage with RSS
*/
function rss_prepare_message(&$message)
{
// embed message into CDATA tags in case it contains HTML tags or entities
if (preg_match('/<[^>]+>|&#?[\w]+;/', $message))
{
// replace any ]]>
$message = str_replace(']]>', ']]>', $message);
$message = '<![CDATA[' . $message . ']]>';
}
}
/**
* create a date according to RFC 3339 or 822
*/
function format_date($timestamp)
{
global $type;
if ($type == 'atom')
{
// RFC 3339 for ATOM
return date('Y-m-d\TH:i:s\Z', $timestamp);
}
else
{
// RFC 822 for RSS2
return date('D, d M Y H:i:s O', $timestamp);
}
}
$sql_where = '';
// only topic first post
if ($topics_only == 1)
{
$sql_where = 'AND p.post_id = t.topic_first_post_id';
$sql_from = 'FROM ' . POSTS_TABLE . ' as p, ' . FORUMS_TABLE . ' as f, ' . USERS_TABLE . ' as u, ' . TOPICS_TABLE . ' as t';
}
else
{
$sql_from = 'FROM ' . POSTS_TABLE . ' as p, ' . FORUMS_TABLE . ' as f, ' . USERS_TABLE . ' as u';
}
// Exclude forums
if ($CFG['exclude_forums'])
{
$exclude_forums = explode(',', $CFG['exclude_forums']);
foreach ($exclude_forums as $i => $id)
{
if ($id > 0)
{
$sql_where .= ' AND p.forum_id != ' . trim($id);
}
}
}
if ($fid != '')
{
$select_forums = explode(',', $fid);
$sql_where .= ( sizeof($select_forums)>0 ) ? ' AND f.forum_id IN (' . $fid . ')' : '';
}
// SQL posts table
$sql = 'SELECT p.poster_id, p.post_subject, p.post_text, p.bbcode_uid, p.bbcode_bitfield, p.topic_id, p.forum_id, p.post_time, f.forum_name, f.forum_desc_options, u.username
' . $sql_from . '
WHERE (u.user_id = p.poster_id)
AND p.post_approved = 1
AND (f.forum_id = p.forum_id)
' . $sql_where . '
ORDER BY post_time DESC';
$result = $db->sql_query_limit($sql, $count);
while( ($row = $db->sql_fetchrow($result)) )
{
if (!$auth->acl_get('f_list', $row['forum_id']))
{
// if the user does not have permissions to list this forum, skip everything until next branch
continue;
}
($type != 'atom') ? rss_prepare_message($row['post_text']) : '';
$template->assign_block_vars('item', array(
'AUTHOR' => $row['username'],
'TIME' => format_date($row['post_time']),
'LINK' => append_sid("$board_url/viewtopic.$phpEx", 'f=' . $row['forum_id'] . '&t=' . $row['topic_id']),
'IDENTIFIER' => append_sid("$board_url/viewtopic.$phpEx", 'f=' . $row['forum_id'] . '&t=' . $row['topic_id']),
'TITLE' => $row['post_subject'],
'TEXT' => parse_message($row['post_text'], $row['forum_desc_options'], $row['bbcode_uid'], $row['bbcode_bitfield']),
)
);
}
if ($type == 'atom')
{
$template->assign_var('FEED_LINK', $board_url);
$content_type = 'application/atom+xml';
$tpl = 'atom';
}
else
{
$content_type = 'application/rss+xml';
$tpl = 'rss2';
}
$template->set_filenames(array(
'body' => 'syndication_' . $tpl . '.xml')
);
// get time, use current time
$last_build_date = mktime();
$template->assign_vars(array(
'HEADER' => '<?xml version="1.0" encoding="UTF-8"?>' . "\n", // workaround for remove_php_tags() removing this line from the template
'TITLE' => strip_tags($config['sitename']),
'DESCRIPTION' => strip_tags($config['site_desc']),
'LINK' => $board_url,
'LAST_BUILD' => format_date($last_build_date)
)
);
// gzip compression
if ($config['gzip_compress'])
{
if (@extension_loaded('zlib') && !headers_sent())
{
ob_start('ob_gzhandler');
}
}
// start output
header ('Content-Type: ' . $content_type . '; charset=UTF-8');
$template->display('body');
exit;
?> |
|
|
|
| Revenir en haut de page |
|
 |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15242
|
|
| Revenir en haut de page |
|
 |
Yohan29
Inscrit le: 08 Aoû 2008 Messages: 10
|
Posté le: Mer Aoû 13, 2008 3:48 pm Sujet du message: Re: Réécriture du flux RSS pour phpbb3 mod Simple Syndication ? |
|
|
J'ai un problème avec Gym sitemaps. Le mod fonctionne parfaitement, mais l'affichage ne fonctionne pas avec Wordpress. Aucun flux n'est affiché.
Je ne sais pas d'où cela peut venir. Peut être le fait qu'il y ait plusieurs flux avec ce mod ?
Ce n'est pas faisable sinon d'ajouter le rewriting à ce mod (simple syndication) ? C'est la solution la plus simple dans mon cas, enfin je pense  |
|
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15242
|
|
| Revenir en haut de page |
|
 |
Yohan29
Inscrit le: 08 Aoû 2008 Messages: 10
|
Posté le: Mer Aoû 13, 2008 4:03 pm Sujet du message: Re: Réécriture du flux RSS pour phpbb3 mod Simple Syndication ? |
|
|
J'utilise le lecteur RSS intégré et j'ai testé également un plug in (Simple RSS Fetcher), puis j'insère l'adresse -http://www.mon-ndd.com/forum/gymrss.php
Et là rien du tout. |
|
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15242
|
|
| Revenir en haut de page |
|
 |
Yohan29
Inscrit le: 08 Aoû 2008 Messages: 10
|
Posté le: Mer Aoû 13, 2008 4:52 pm Sujet du message: Re: Réécriture du flux RSS pour phpbb3 mod Simple Syndication ? |
|
|
J avais oublié un détail :
ça marche avec le mod syndication (le flux est affiché sur WP) et c'est avec Gym que rien ne s'affiche.
Je trouve cela bizarre, étant donné que le flux fonctionne que rien ne s'affiche sur mon WP.
Qu'est ce que tu me conseilles dcz comme paramétrages pour faire fonctionner l'ensemble avec gymrss ? |
|
|
| Revenir en haut de page |
|
 |
SeO Administrateur - Site Admin

Inscrit le: 15 Mar 2006 Messages: 4006
|
Posté le: Jeu Aoû 14, 2008 12:54 pm Sujet du message: Re: Réécriture du flux RSS pour phpbb3 mod Simple Syndication ? |
|
|
Et il marche comment ton agrégateur, tu lui donne une url non ?
Assures toi de lui donner une url qui marche sans redirection (une url que tu vois dans la barre d'adresse lorsque tu visualises le flux que tu veux). |
_________________ phpBB SEO || SEO Forum || Forum Référencement
GYM Sitemap & RSS for phpBB3 has been released ! || GYM Sitemap & RSS for phpBB3 est disponible ! |
|
| Revenir en haut de page |
|
 |
Yohan29
Inscrit le: 08 Aoû 2008 Messages: 10
|
Posté le: Jeu Aoû 14, 2008 4:08 pm Sujet du message: Re: Réécriture du flux RSS pour phpbb3 mod Simple Syndication ? |
|
|
Oui oui je lui donne une url.
Je pense lui donner la bonne url (pa de redirection vers netvibes ou autres).
J'ai fait un test avec cette adresse : http://phpbb3.phpbb-seo.net/rss/rss.xml et cela ne fonctionne pas également (alors que ça fonctionne avec simple syndication).
 |
|
|
| Revenir en haut de page |
|
 |
SeO Administrateur - Site Admin

Inscrit le: 15 Mar 2006 Messages: 4006
|
|
| Revenir en haut de page |
|
 |
|
|
| Navigation |
Autres sujets de discussion |
|
|
|
|
|
|
|