Thursday 01 March 2007 6:04:46 am
Hi Steven
Just in case this is still an issue:
Let's assume that you have an feed 'news' from the english siteaccess 'en' and the french siteaccess 'fr', e.g.
http://host/index.php/en/rss/feed/news
and
http://host/index.php/fr/rss/feed/news
If you fetch the feed from the first url eZ checks whetehr there is an cache file for this feed. If yes, it fetches the cache file, otherwise it creates the feed from scratch based on the 'en'siteaccess.
If you fetch the feed the feed from the second url it does the same, just with the 'fr' siteaccess. If you don't specify an siteaccess, it takes the default access/ The problem is that the cache file is named by the name of the feed and since the name of the feed is 'news' no matter the language, both urls use the same cache file.
To solve this just change the naming scheme of the cache file so it includes the language for the current siteaccess in the name which means you need to change/override the file kernel/rss/feed.php. Here the changes that work for me (around line 60):
//******************** before ***********************************//
// $cacheFilePath = $cacheDir . '/rss/' . md5( $feedName ) . '.xml';
//******************** after ****************************************//
$language= $config->variable('RegionalSettings', 'ContentObjectLocale');
$cacheName = $language. '_' . md5($feedName);
$cacheFilePath = $cacheDir . '/rss/' . $cacheName . '.xml';
//*********************end of after *********************************//
Claudia
|