Forum. MyNuke.ru

Forum. MyNuke.ru (http://forum.mynuke.ru/index.php)
-   Модули (http://forum.mynuke.ru/forumdisplay.php?f=17)
-   -   RSS для php-nuke (http://forum.mynuke.ru/showthread.php?t=3964)

Soniks 28.07.2011 19:32

Тут как раз размещен старая версия файла, вот:
PHP код:
 include("mainfile.php");
global 
$prefix$db$nukeurl;
header("Content-Type: text/xml");
    
$result $db->sql_query("SELECT sid, title, hometext FROM ".$prefix."_stories ORDER BY sid DESC LIMIT 10");
echo 
"<?xml version=\"1.0\" encoding=\""._CHARSET."\"?>\n\n";
echo 
"<!DOCTYPE rss PUBLIC \"-//Netscape Communications//DTD RSS 0.91//EN\"\n";
echo 
" \"http://www.rssboard.org/rss-0.91.dtd.\">\n\n";
echo 
"<rss version=\"0.91\">\n\n";
echo 
"<channel>\n";
echo 
"<title>".htmlspecialchars($sitename)."</title>\n";
echo 
"<link>$nukeurl</link>\n";
echo 
"<description>".htmlspecialchars($backend_title)."</description>\n";
echo 
"<language>$backend_language</language>\n\n";

while (list(
$rsid$rtitle$rtext) = $db->sql_fetchrow($result)) {
    
$rsid intval($rsid);
    echo 
"<item>\n";
    echo 
"<title>".htmlspecialchars($rtitle)."</title>\n";
    echo 
"<link>$nukeurl/modules.php?name=News&amp;file=article&amp;sid=$rsid</link>\n";
    echo 
"<description>".htmlspecialchars($rtext)."</description>\n";
    echo 
"</item>\n\n";
}
echo 
"</channel>\n";
echo 
"</rss>"

BFG 28.07.2011 19:45

странно, один фиг ошибка:
http://i25.fastpic.ru/big/2011/0728...8795d3d8350.jpg
хотя ваш rss я вижу нормально:
http://i25.fastpic.ru/big/2011/0728...fd48539234a.jpg

Soniks 28.07.2011 20:17

Попробуйте в файл .htaccess (если его нет в корне сайта, то создать его) раместиь следующию запись:
Код:
AddDefaultCharset windows-1251 php_value default_charset "cp1251"

BFG 28.07.2011 20:31

после добавления строк файл стал иметь вид:
RewriteEngine on
RewriteRule ^(.*)dir-catalogue/(.*)$ /findout.php [L]
AddDefaultCharsetwindows-1251
php_value default_charset "cp1251"

теперь на локалхосте ошибка Денвера а на хосте Internal Server Error
тоже самое и если только ваши строки...

Soniks 29.07.2011 00:54

опечатка была в вышеуказанном коде, исправил

BFG 30.07.2011 14:49

тоже самое:
http://i25.fastpic.ru/big/2011/0728...8795d3d8350.jpg

BFG 31.07.2011 04:03

ради интереса поставил голую нюку 8.0 и проверил - на ней работает RSS с любым файлом backend.php (родной, 7.6, и ваш) и без .htaccess...

BFG 02.08.2011 19:10

ещё такая фишка, если на "голую" нюку 7.6 2.9 (с родной БД RSS работает) заливаю свою БД то RSS сразу выдаёт выше описанную ошибку...
в чём же дело? может в том, что в БД есть кодировка utf-8?

BFG 04.08.2011 04:14

собственно с этим кодом немного разобрался, теперь он у меня берёт название и описание новости из БД, но как-то странно, выводит 10 новостей таким образом:
Название
Описание
(но ссылка с названия ведёт на этот же самый rss файл)

но только на локалхосте, а в тырнете появляется ещё и проблема с кодировкой:
http://www.chelseateam.ru/rss/rss.php

Код:
<?php // начало программы include "rss.inc"; // это собственно класс include "conn.inc"; // переменные для открытия базы $Rss= new CRss(); $Rss->Title="ChelseaTeam.Ru - Мы знаем о \"Челси\" всё!!!"; $Rss->Link="http://www.chelseateam.ru"; $Rss->Copyright="© ChelseaTeam.Ru."; $Rss->Description="Фан-сайт лондонского клуба \"Челси\""; $Rss->Category = "Blues-News"; $Rss->Language="ru"; $Rss->ManagingEditor="info@mail.ru"; $Rss->WebMaster="info@mail.ru"; $Rss->Query="SELECT title, hometext, sid FROM nuke_stories ORDER BY sid DESC LIMIT 10"; $Rss->Open($Server,$DataBase,$Login,$Password); $Rss->LastBuildDate=date("r"); // получаем последнюю дату публикации $query = "SELECT nuke_stories.time FROM nuke_stories ORDER BY nuke_stories.time DESC LIMIT 1"; $result1 = mysql_query($query) or die("FROM nuke_stories failed"); $line = mysql_fetch_array($result1); $Date =date("r",strtotime($line[0])); mysql_free_result($result1); $Rss->LastBuildDate=$Date; $Rss->PubDate=$Rss->LastBuildDate; $Rss->PrintHeader(); $Rss->Query(); while ($line = mysql_fetch_array($Rss->Result)) { // для каждой записи выведем $Title = $line[0]; $Description = $line[1]; $Link=$line[2]; $PubDate=date("r",strtotime($line[3])); $Category=$line[4]; $Rss->PrintBody($Title,$Link,$Description,$Category,$Pub Date); } $Rss->PrintFooter(); $Rss->Close(); ?>


Это переделанный немного код из скрипта в первом посте во вложении...

BFG 06.08.2011 23:24

вопрос с кодировкой решил:
вставил:
Код:
mysql_query("set names cp1251");

перед запросом к БД:
Код:
$query = "SELECT nuke_stories.time FROM nuke_stories ORDER BY nuke_stories.time DESC LIMIT 1";

Soniks, плиз, помоги решить проблему со ссылками на новость, а то они идут именно на этот rss файл...
http://www.chelseateam.ru/rss/rss.php


Часовой пояс GMT +4, время: 11:52.

Copyright © 2005 by Soniks