ich verwende das RSS-Modul von franz007.at und möchte es mit einer FB-Gruppe via RSS-Graffiti verbinden. Das klappt auch soweit ganz gut, bis auf die Tatsache, dass ich bei der Aktualisierung (dem Posten auf FB) die Fehlermeldung "Missing publication date in {number} items in your feed." bekomme. Lt. Wikieintrag der App fehlt dem ganzen das Publikationsdatum durch den Eintrag "pubDate". Nun hab ich keinen Schimmer, wie ich das in das Modul reibekommen soll. Hat jemd vielleicht einen Tip für mich, wie und an welcher Stelle ich das reinnehmen kann/muss? Ich gehe mal davon aus, dass es in die Ausgabe muss. Anbei mal der Ausgabe-Code...
Code: Alles auswählen
<?php
// Version 1.5.1
//---Module by----------------------
//-- franz007.at
//-- franz007
//-- www.franz007.at
//----------------------------------
$rss_title = "REX_VALUE[6]"; // titel des RSS-feeds
$rss_link = "REX_VALUE[7]"; // link
$rss_description = "REX_VALUE[8]"; // beschreibung des feeds
$rss_language = "REX_VALUE[9]"; //language code
$domain = "REX_VALUE[10]"; # inkl http:// und abschließndem / wird in den Links vor rex_getUrl($articleId) gesetzt
/*$rss_title = "franz007.at Newsfeed"; // titel des RSS-feeds
$rss_link = "http://www.franz007.at/"; // link
$rss_description = "franz007.at"; // beschreibung des feeds
$rss_language = "de-at"; //language code
$domain = "http://www.franz007.at/"; # inkl http:// und abschließndem / wird in den Links vor rex_getUrl($articleId) gesetzt*/
$n = "\n";
if (!$REX['REDAXO']){ #nicht im backend
function un_htmlentities__m148($string){
$trans_tbl = get_html_translation_table (HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}
function sortArticlesByUpdateDate__m148( $artA, $artB) {
$createA = $artA->_updatedate;
$createB = $artB->_updatedate;
if ( $createA == $createB) {
return 0;
}
return $createA > $createB ? -1 : 1;
}
function sortArticlesByUpdateDate_rev__m148( $artA, $artB) {
$createA = $artA->_updatedate;
$createB = $artB->_updatedate;
if ( $createA == $createB) {
return 0;
}
return $createA > $createB ? +1 : 1;
}
function sortArticlesByPrio__m148( $artA, $artB) {
$createA = $artA->_prior;
$createB = $artB->_prior;
if ( $createA == $createB) {
return 0;
}
return $createA > $createB ? +1 : 1;
}
function sortArticlesByPrio_rev__m148( $artA, $artB) {
$createA = $artA->_prior;
$createB = $artB->_prior;
if ( $createA == $createB) {
return 0;
}
//return $createA > $createB ? +1 : 1;
return $createA > $createB ? -1 : 1;
}
function only_numbers__m148($string){
if(strval(intval($string)) == $string)
return true;
else
echo false;
}
header("Content-type: application/xml");
echo '<?xml version="1.0" encoding="ISO-8859-1" ?>';
echo '<rss version="0.91">'.$n;
echo '<channel>'.$n;
echo '<title>'.$rss_title.'</title>'.$n;
echo '<link>'.$rss_link.'</link>'.$n;
echo '<description>'.$rss_description.'</description>'.$n;
echo '<language>'.$rss_language.'</language>'.$n;
$itemsPerSide = "REX_VALUE[2]";
$wordsPerArticle = "REX_VALUE[3]";
$config_categories = "REX_VALUE[1]";
#$start = !empty($_GET['start']) ? (int) $_GET['start'] : 0; // Startitem
$start = 0;
$offset = $itemsPerSide; // 10 Items pro Seite
if($config_categories !== ""){
#$cats = array($config_categories);
if(strstr($config_categories, ";") == false){# kein ; gefunden
$cats = array($config_categories);
}
elseif(strstr($config_categories, ";") !== false){ # ; gefunden
$cats = explode(";", $config_categories);
# überprüfen ob alle werte des arrays zahlen sind
foreach($cats as $temp){
if(!only_numbers__m148($temp)){
$cats = array("REX_CATEGORY_ID"); // aktuelle Kategorien "indizieren"
break;
}
}
}
elseif(!only_numbers__m148($config_categories)){
$cats = array("REX_CATEGORY_ID"); // aktuelle Kategorien "indizieren"
}
}
else{
$cats = array("REX_CATEGORY_ID"); // aktuelle Kategorien "indizieren"
}
$articles = array();
foreach ( $cats as $catId) {
$cat = OOCategory::getCategoryById( $catId);
// CatIds die nicht funktionieren aussortieren
if( $cat === null) {
continue;
}
$cat_articles = $cat->getArticles( true);
foreach ( $cat_articles as $ooarticle) {
// keine Startartikel anzeigen
if ( $ooarticle->isStartPage()) {
continue;
}
// Damit keine Endlosschleife passiert, den Artikel der die Pagination setzt berspringen
if ( $ooarticle->getId() == REX_ARTICLE_ID) {
continue;
}
$articles[] = $ooarticle;
}
}
$articles_length = count( $articles);
// Sortieren
if ( $articles_length > 0) {
if("REX_VALUE[4]" == "1"){// Sortieren nach Erstellungsdatum
usort( $articles, "sortArticlesByUpdateDate__m148");
}
if("REX_VALUE[4]" == "2"){// Sortieren nach Erstellungsdatum
usort( $articles, "sortArticlesByUpdateDate_rev__m148");
}
if("REX_VALUE[4]" == "3"){// Sortieren nach Priorität
usort( $articles, "sortArticlesByPrio__m148");
}
if("REX_VALUE[4]" == "4"){// Sortieren nach Priorität (umgekehrt)
usort( $articles, "sortArticlesByPrio_rev__m148");
}
}
$article_list = array_slice( $articles, $start, $offset);
foreach ( $article_list as $ooarticle) {
#foreach ( $articles as $ooarticle) {
if ($ooarticle->isOnline(true)) {
$articleId = $ooarticle->getId();
$articleClang = $ooarticle->getCLang();
#$article = new article();
$article = new rex_article();
$article->setArticleId( $articleId);
$article->setCLang($articleClang);
$articleContent = $article->getArticle();
if('REX_VALUE[5]' == "1"){//überschriften entfernen
//überschriften entfernen
#$articleContent = preg_replace("/<h[1-6]>.*<\/h[1-6]>/", "", $articleContent);
$articleContent = preg_replace("/<h[1-6]>(.+?)<\/h[1-6]>/", " ", $articleContent);
#preg_match_all('#<h[1-6]>(.*)</h[1-6]>#', $articleContent, $found);
}
#print_r($found);
//alle tags entfernen
$articleContent = strip_tags($articleContent);
$articleContent = un_htmlentities__m148($articleContent);
$output = "";
$words = explode(" ",$articleContent);
$wordsCount = count($words);
if ($wordsCount < $wordsPerArticle) {
$wEnd = $wordsCount;
}
else{
$wEnd = $wordsPerArticle;
$cutted = true;
}
for ($w=0;$w<$wEnd;$w++) {
$output .= $words[$w]." ";
}
// Leerzeichen entfernen am Anfang und Ende des Strings
$output = trim($output);
$item_description = $output;
// " ..." anhängen wenn der artikel gekrzt wird
if($cutted = true){
$item_description .= " ...";
}
$item_title = $ooarticle->getName();
$item_link = $domain.rex_getUrl($articleId);
$item_title = "<![CDATA[".$item_title." ]]>";
$item_description = strip_tags($item_description);
$item_description = un_htmlentities__m148($item_description);
$item_description = "<![CDATA[".$item_description."]]> ";
#eintrag ausgeben
echo '<item>'.$n;
echo '<title>';
echo $item_title;
echo '</title>'.$n;
echo '<description>'.$item_description.'</description>'.$n;
echo '<link>';
echo $item_link;
echo '</link>'.$n;
echo '</item>'.$n;
}
}
echo '</channel>'.$n;
echo '</rss>'.$n;
}
else{ //im backend
echo "RSS-feed";
if(isset($m148_rrs_feed_module_already_set) && $m148_rrs_feed_module_already_set == true){
echo '<h1>Das Modul darf nur einmal pro Artikel eingesetzt werden und muss das einzige Modul im Artikel sein!</h1>'.$n;
}
$m148_rrs_feed_module_already_set = true;
}
?>