serieuze hulp gevraagd RSS feed php

Status
Niet open voor verdere reacties.

IzFazt

Gebruiker
Lid geworden
8 feb 2008
Berichten
19
hallo ik krijg mijn feedburner account niet compatible met deze RSS feed http://www.tjoogle.com/cutenews/rss.php

je kunt de foutboodschappen zien op http://feedvalidator.org/ door de link hierboven hier in te geven,

Van geboden oplossingen als 'namespaces' op de validator site snap ik niks. Is er iemand die de eenvoudige korte php code van cutenews (redelijk tot zeer kort, rss.php en show_news.php) kan aanpassen zodat ie compatible is en mijn links daarin intact blijven?

de code staat hier inmiddels onder
 
Laatst bewerkt:
Hoe kan iemand je code aanpassen als je die niet hier post?
 
de code

rss.php

Code:
<?PHP
include('./data/rss_config.php');

if(!isset($rss_news_include_url) or !$rss_news_include_url or $rss_news_include_url == ''){

    die("The RSS is not configured.<br>Please do this from: <strong>CuteNews > Options > Implementation Wizards > RSS</strong>");

}

header("Content-type: text/xml");

echo"<?xml version=\"1.0\" encoding=\"$rss_encoding\" ?>
<?xml-stylesheet type=\"text/css\" href=\"skins/rss_style.css\" ?>
<rss version=\"2.0\" >
 <channel>
   <title>$rss_title</title>
   <link>$rss_news_include_url</link>
   <language>$rss_language</language>
   <description></description>
<!-- <docs>This is an RSS 2.0 file intended to be viewed in a newsreader or syndicated to another site. For more information on RSS check : http://www.feedburner.com/fb/a/aboutrss</docs> -->
   <generator>CuteNews</generator>
";

if(!$_GET[number] or $_GET[number] == ''){ $number = 10;}else{ $number = $_GET[number];}
if(!$_GET[only_active] or $_GET[only_active] == ''){ $only_active = TRUE;}else{ $only_active = $_GET[only_active];}

$template="rss";
include("show_news.php");


echo"</channel></rss>";
?>




show_new.php


Code:
<style type="text/css">
<!--
.style1 {
	font-size: 18px;
	font-weight: bold;
	color: #FF0000;
}
.style2 {color: #0000FF}
.style3 {color: #FF0000}
.style4 {color: #0000FF; font-weight: bold; }
-->
</style>
<div align="center">
  <p><a href="http://www.tjoogle.com/cutenews/funnews.php"><img src="skins/images/editnews.gif" alt="back to main news" width="48" height="48" /><span class="style1"> back to main news</span></a><span class="style1"></span></p>
  <p class="style2"><strong>Please note the Freedom of Speech is one of our most important things in the Western Hemisphere. <span class="style3"><u>Only in severe circumstances</u> we will <u>considder</u> interfering in  reactions on topics. </span></strong></p>
  <p class="style4">So you are free to give any opinion you like. Entertain us!</p>
  <p class="style2"><strong>Opinions do not in anyway reflect our own. Please avoid illegal activities because we will work with the appropriate authorities if asked so. Spam will be removed and prosecuted even into the outer regions of the internet. </strong></p>
  <p>    
    <?PHP

error_reporting (E_ALL ^ E_NOTICE);

$cutepath =  __FILE__;
$cutepath = preg_replace( "'\\\show_news\.php'", "", $cutepath);
$cutepath = preg_replace( "'/show_news\.php'", "", $cutepath);

require_once("$cutepath/inc/functions.inc.php");
require_once("$cutepath/data/config.php");

// If we are showing RSS, include some need variables.
if($template == 'rss'){
   include("$cutepath/data/rss_config.php");
}

//----------------------------------
// Check if we are included by PATH
//----------------------------------
if($HTTP_SERVER_VARS["HTTP_ACCEPT"] or $HTTP_SERVER_VARS["HTTP_ACCEPT_CHARSET"] or $HTTP_SERVER_VARS["HTTP_ACCEPT_ENCODING"] or $HTTP_SERVER_VARS["HTTP_CONNECTION"]){ /* do nothing */ }
elseif(eregi("show_news.php", $PHP_SELF)){
die("<h4>CuteNews has detected that you are including show_news.php using the URL to this file.<br>
This is incorrect and you must include it using the PATH to show_news.php</h4><br>Example:<br>
this is <font color=red>WRONG</font> :&nbsp;&nbsp; &lt;?PHP include(\"http://yoursite.com/cutenews/show_news.php\"); ?&gt;<br>
this is <font color=green>CORRECT</font>:&nbsp;&nbsp; &lt;?PHP include(\"cutenews/show_news.php\"); ?&gt;<br>
<br><BR>// <font size=2>if you think this message shouldn't be shown, open show_news.php and delete it from there</font>");
}
//----------------------------------
// End of the check
//----------------------------------

if(!isset($subaction) or $subaction == ""){ $subaction = $POST["subaction"]; }

if(!isset($template) or $template == "" or strtolower($template) == "default"){ require_once("$cutepath/data/Default.tpl"); }
else{
        if(file_exists("$cutepath/data/${template}.tpl")){ require("$cutepath/data/${template}.tpl"); }
    else{ die("Error!<br>the template <b>".htmlspecialchars($template)."</b> does not exists, note that templates are case sensetive and you must write the name exactly as it is"); }
}

// Prepare requested categories
if(eregi("[a-z]", $category)){
        die("<b>Error</b>!<br>CuteNews has detected that you use \$category = \"".htmlspecialchars($category)."\"; but you can call the categories only with their <b>ID</b> numbers and not with names<br>
    example:<br><blockquote>&lt;?PHP<br>\$category = \"1\";<br>include(\"path/to/show_news.php\");<br>?&gt;</blockquote>");
}
$category = preg_replace("/ /", "", $category);
$tmp_cats_arr = explode(",", $category);
foreach($tmp_cats_arr as $key=>$value){
    if($value != ""){ $requested_cats[$value] = TRUE; }
}

if($archive == ""){
        $news_file = "$cutepath/data/news.txt";
        $comm_file = "$cutepath/data/comments.txt";
}else{
        $news_file = "$cutepath/data/archives/$archive.news.arch";
        $comm_file = "$cutepath/data/archives/$archive.comments.arch";
}

$allow_add_comment                        = FALSE;
$allow_full_story                        = FALSE;
$allow_active_news                         = FALSE;
$allow_comments                         = FALSE;



//<<<------------ Detarime what user want to do
if( $CN_HALT != TRUE and $static != TRUE and ($subaction == "showcomments" or $subaction == "showfull" or $subaction == "addcomment") and ((!isset($category) or $category == "") or ($requested_cats[$ucat] == TRUE )  ) ){
    if($subaction == "addcomment"){  $allow_add_comment        = TRUE; $allow_comments = TRUE; }
    if($subaction == "showcomments"){ $allow_comments = TRUE; }
    if(($subaction == "showcomments" or $allow_comments == TRUE) and $config_show_full_with_comments == "yes"){$allow_full_story = TRUE; }
    if($subaction == "showfull") $allow_full_story = TRUE;
    if($subaction == "showfull" and $config_show_comments_with_full == "yes") $allow_comments = TRUE;

}
else{
    if($config_reverse_active == "yes"){ $reverse = TRUE; }
        $allow_active_news = TRUE;
}
//----------->>> Detarime what user want to do

require("$cutepath/inc/shows.inc.php");
    if($_GET['archive'] and $_GET['archive'] != ''){ $archive = $_GET['archive']; } // stupid fix ?
unset($static, $template, $requested_cats, $category, $catid, $cat,$reverse, $in_use, $archives_arr, $number, $no_prev, $no_next, $i, $showed, $prev, $used_archives);
?>
    </p>
</div>
<!-- News Powered by CuteNews: http://cutephp.com/ -->
 
Vindt je het gek dat hij niet valid is.

PHP:
include("show_news.php");
Die regel zorgt ervoor dat je HTML-output in je RSS krijgt...
Je zult gewoon een nieuwe query/functie moeten gaan maken in die rss.php zodat je volgende de richtlijnen van RSS de pagina opbouwt.
 
Vindt je het gek dat hij niet valid is.

PHP:
include("show_news.php");
Die regel zorgt ervoor dat je HTML-output in je RSS krijgt...
Je zult gewoon een nieuwe query/functie moeten gaan maken in die rss.php zodat je volgende de richtlijnen van RSS de pagina opbouwt.


Zoals al eerlijk gezegd, ik snap hier niks van dus ik vind het inderdaad vreemd dat ie het niet doet, maar gelukkig heet het hier Help Mij. Ik heb helaas geen idee wat een 'query/functie' in php is (kan niet/nauwelijks programmeren in php) en ik ken de 'richtlijnen van RSS' ook niet. Ik weet alleen dat mijn RSS feed op sommige feeds wel en op andere feeds niet werkt en Feedburner is voor mij een heel belangrijke en die doet het niet. :confused:
 
Vindt je het gek dat hij niet valid is.

PHP:
include("show_news.php");
Die regel zorgt ervoor dat je HTML-output in je RSS krijgt...
Je zult gewoon een nieuwe query/functie moeten gaan maken in die rss.php zodat je volgende de richtlijnen van RSS de pagina opbouwt.

Ok, ik heb de vraag op veel forums staan, niemand weet het, jij hebt tot nu toe het beste antwoord, want als ik de include er uit gooi is alle info in de feed weg. Wat je dus bedoelt is, dit programma moet compleet opnieuw geschreven worden zodat de juiste info op de juiste manier in de feed gaat. Het pobleem zit hem er dus in dat er eigenlijk helemaal geen feed is want show_news van cutenews laat het nieuws zien en kan niet zo maar worden aangepast. rss.php maakt dus geen echte feed maar gebruikt show_news voor iets dat er op lijkt. En dat verklaard dan weer dat er sinds 2005 op Google 10duizenden topics staan hier over maar niemand een oplossing heeft.

Maar is het niet zo dat er hier dan een fout in zit? Dit is de rss template die show_news oproept:

if($template == 'rss'){
include("$cutepath/data/rss_config.php");

Kun jij of kan iemand dit lezen en begrijp je / begrijpt hij wat hier dan fout gaat?

<?PHP
///////////////////// TEMPLATE rss /////////////////////
$template_active = <<<HTML
<item>
<title><![CDATA[{title}]]></title>
<link>{rss-news-include-url}?subaction=showfull&amp;id={news-id}&amp;archive={archive-id}</link>
<description><![CDATA[{short-story}]]></description>
<guid isPermaLink="false">{news-id}</guid>
<pubDate>{date}</pubDate>
</item>
HTML;


$template_full = <<<HTML

HTML;


$template_comment = <<<HTML

HTML;


$template_form = <<<HTML

HTML;


$template_prev_next = <<<HTML

HTML;
$template_comments_prev_next = <<<HTML

HTML;
?>
 
Laatst bewerkt:
de oplossing

Na de opmerking 'Vindt je het gek dat hij niet valid is.' :confused: en de vraag 'hoe kan ik nu helpen zonder sourcecode' :( hierbij uiteindelijk van mezelf de oplossing voor de volgende helpmij gebruiker met hetzelfde probleem als ik.

De OPLOSSING::D

De HTML voor het configureren van een mooie pagina moet NIET in show_news.php voor de inhoud van de feeds maar in de INHOUD van de feeds bij het posten van het nieuws door de 'journalist' (kijk in de feedlink hieronder om te zien hoe het moet). Het beste zet je in cutenews om te beginnen bij het posten van nieuwsberichten de html uit en de <br> aan.

Vervolgens levert cutenews in de installatie RAR twee php bestanden mee bij het pakket genaamd example1 en example2.

Je neemt example2 en die ga je bewerken met (bijvoorbeeld) dreamweaver en je gaat 2 versies maken die quo logo en links en wat je nog meer wil passsen bij je site. De eerste versie zal worden gebruikt voor het displayen van het nieuws op je site, ik heb er hier overigens uiteindelijk 8 van omdat iedere nieuwscategorie eigen wensen en eisen stelt aan de links en de layout o.a voor de SEO kant van het verhaal.

Een omgebouwde example2 versie met de volgende code voor de link naar show_nieuws onderin het php programma zorgt als eerste voor het displayen van het nieuws op de site..

Code:
 $number = "5";
 $category = "2";
 include("path/to/show_news.php");

bij mij ziet dat er uiteindelijk zo live uit:
http://www.tjoogle.com/cutenews/funnewsfunny.php

met deze op de juiste plaats (staat in het programma example2.php aangegeven met commentaarregels) ingepaste code hierboven zal de eerste versie van example2 die je bijvoorbeeld saved als nieuws2.php 5 berichten uit nieuwsgroep 2 displayen.

De tweede versie die je maakt uit example2.php zal de 5 laatste nieuwsberichten uit ALLE groepen displayenm DIE gebruik je voor je RSS want op deze versie worden ook specifieke links aangeclickt via Feedburner die direct naar een bericht gaan. Dus moeten in deze versie ALLE nieuwsberichten worden benaderd om de goede te kunnen weergeven. Ik heb deze bewaard als mainrss.php

In deze versie die qua layout ook weer iets anders zal zijn dan de eerste is de php code die je op dezelfde plaats als die hierboven moet invoegen in example2.php

Code:
$number = "5";
 include("path/to/show_news.php");

bij mij ziet dat er zo uit:

http://www.tjoogle.com/cutenews/mainrss.php

Dit laatste php programma stel je nu in in cutenews - in je RSS setup - als de 'URL of the page where you include your news' ; heel belangrijk want deze laat het nieuws zien

Als je je mainrss.php en je nieuws2.php in dezelfde map zet als show_news.php is je 'path to shownews' include("./show_news.php") let op: er staat een punt voor de slash

Nu ga je naar Feedburner. De link die je daar in moet vullen voor je feed is de locatie van je RSS.PHP. Die ziet er zo uit bij mij http://www.tjoogle.com/cutenews/rss.php Zoals je ziet - als je even live op die link kijkt - staat bij ieder item een uniek nummer en een link naar mainrss.php. Als je met ctrl-c en ctrl-v er uit haalt naar je browser dan zie je in je browser dat je alleen dat nieuwsbericht ziet in de aangepaste layour van mainrss.php. PERFECTO DUS.

we hebben uiteindelijk dus 5 stappen:

1. bewaar het nieuws zo plat mogelijk zonder html (met <br> mag en html kan ook in de berichten maar is niet nodig en KAN, hoeft niet, voor problemen zorgen)

2/3. maak van example2 twee minimaal twee nieuwe versies, een voor op je site het nieuws te displayen en een waarop RSS wordt doorgelinkt op bijvoorbeeld iGoogle, Royo met de juiste aanpassingen in de code zoals hierboven aangegeven etc etc.

4. zet de locatie van je mainrss (de tweede versie die je gemaakt hebt in je eigen layout van example2.php) als url to display news in de setup van RSS in Cutenews als administrator.

5. Zet de locatie van je rss.php als feed in feedburner.

De rss.php en de show_news.php die ik uiteindelijk gebruik zijn de ONGEWIJZIGDE versies van Cutenews. Die komen samen als eindproduct in rss.php zonder foutboodschappen door de feedvalidator van feedburner. Op feedvalidator test je de link naar je rss.php dus niet die naar show_news die als include word aangeroepn in rss.php. Als je hier NIET zonder foutboodschappen doorheen komt ziet NIEMAND feed omdat feedburner hem niet door kan geven.

Good Luck en bij vragen plaats een bericht hier of PM me op me site of whatever je kunt bedenken dan help ik je.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan