RSS Feed mit Mod Rewrite

Gesperrt
JochBec
Beiträge: 54
Registriert: Sa 18. Dez 2004, 15:11
Kontaktdaten:

RSS Feed mit Mod Rewrite

Beitrag von JochBec »

Hallo ;)

Ich benutze den RSS Feed Creator und Mod Rewrite. Leider werden die Links im Feed nicht umgeschrieben, bleiben also imi php-Bild.

Wer kann mir das Modul so umbasteln, daß es die Links im Feed auch anpasst? Natürlich gegen Geld!

Danke schonmal,

Jochen
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

wende dich doch an stese , wenn einer was dabei verdienen soll dann doch gleich er.. ;-)
*** make your own tools (wishlist :: thx)
JochBec
Beiträge: 54
Registriert: Sa 18. Dez 2004, 15:11
Kontaktdaten:

Beitrag von JochBec »

Und Stese hat es gerichtet... das ist der funktionierende INPUT:

Code: Alles auswählen

/**
* RSS-Ausgabe als XML
*
* INPUT
*
* Author Frank Hoffmann
* Copyright www.x28.de
*/

// selected category
$selected = "CMS_VALUE[0]";

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\" class=\"text_medium\">
        <tr valign=\"top\">
          <td>Kategorie:</td>
          <td>
            <select name=\"CMS_VAR[0]\">";
            if($selected!="0" && $selected!=""){
             echo"<option value=\"0\">--- kein ---</option>";

            }else{
            echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>";
            }

            // hole Online Kategorien
            $query = "SELECT A.idcat, A.level, C.name FROM ".$cfg["tab"]["cat_tree"]." AS A, ".
                     $cfg["tab"]["cat"]." AS B,  ".$cfg["tab"]["cat_lang"]." AS C WHERE A.idcat=B.idcat ".
                     "AND B.idcat=C.idcat AND C.idlang='$lang' AND B.idclient='$client' ".
                     "AND C.visible=1 ORDER BY A.idtree";
            $db->query($query);

            // loop result and build the options
            while ($db->next_record()) {

              // indent spacer
              $spaces = "|";

              // how many levels
              $levels = $db->f("level");

              for ($i = 0; $i < $levels; $i ++) {
                // add 2 spaces for every level
                $spaces = $spaces . "--";

              } // end for
             
              $spaces .= ">";


              if ($selected == $db->f("idcat")) {
                // selected category
                echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";

              } else {
                // category
                echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";

              } // end if

            } // end while

echo "      </select>";

echo "    </td>
        </tr>
        <tr>
          <td>Titel RSS Feed:</td>
          <td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\"></td>
        </tr>
            <tr>
          <td>Homepage RSS Feed (mit / abschliessen):</td>
          <td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\"></td>
        </tr>            
            <tr>
          <td>Beschreibung RSS Feed:</td>
          <td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\"></td>
        </tr>
       <tr>
          <td>Copyright RSS Feed:</td>
          <td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\"></td>
        </tr>
        <tr>
          <td>URL Bild RSS Feed:</td>
          <td><input type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\"></td>
        </tr>
        <tr>
          <td>Titel Bild RSS Feed:</td>
          <td><input type=\"text\" name=\"CMS_VAR[6]\" value=\"CMS_VALUE[6]\"></td>
        </tr>
        <tr>
          <td>Link Bild RSS Feed:</td>
          <td><input type=\"text\" name=\"CMS_VAR[7]\" value=\"CMS_VALUE[7]\"></td>
        </tr>

      </table>";
Und das der OUTPUT:

Code: Alles auswählen

<?php
cInclude("classes", "class.modrewrite.php"); 
/**
* RSS-Ausgabe als XML
*
* OUTPUT
*
* Author Frank Hoffmann
* Copyright www.x28.de
* Anyone can use it. It is OpenSource. Please report any good changes to info@x28.de
*/

// selected category
$selcat = "CMS_VALUE[0]";
if($selcat!="0" && $selcat!=""){

   $rss_titel = "CMS_VALUE[1]";
   $rss_link = "CMS_VALUE[2]";
   $rss_description = "CMS_VALUE[3]";
   $rss_copyright = "CMS_VALUE[4]";
   $rss_image_url = "CMS_VALUE[5]";
                $rss_image_title = "CMS_VALUE[6]";
                $rss_image_link = "CMS_VALUE[7]";

   // Header ausgeben
   header("Content-type: text/xml");
   print '<?xml version="1.0" encoding="iso-8859-1"?>
   <!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">
   <rss version="0.91">
   <channel>
   <title>'.$rss_titel.'</title>
   <link>'.$rss_link.'</link>
   <description>'.$rss_description.'</description>
   <language>de-de</language>
   <copyright>'.$rss_copyright.'</copyright>
   <image>
   <url>'.$rss_image_url.'</url>
   <title>'.$rss_image_title.'</title>
   <link>'.$rss_image_link.'</link>
   </image>';


   // select all articles in category widthout start article
   $query = "SELECT ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
           $cfg["tab"]["art_lang"]." AS ARTLANG ".
          "WHERE CATART.idcat = '$selcat' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' AND ".
          "ARTLANG.online = '1' ORDER BY ARTLANG.published DESC";
   
   // execute query
   $db->query($query);
   
   unset($articleID);
   unset($linkID);
   
   // get id's of sub articles
   while ($db->next_record()) {
     $articleID[] = $db->f("idartlang");
     $linkID[] = $db->f("idart");
   } // end while
   
   // loop through subarticles
   if (is_array($articleID)) {
   
      foreach ($articleID as $key => $value) {
   
         // select headline
         $sql = "SELECT value FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '1'";
         $db->query($sql);
         $db->next_record();
         $head = urldecode($db->f("value"));
         
         // select subheadline
         $sql = "SELECT value FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '2'";
         $db->query($sql);
         $db->next_record();
         $description = urldecode($db->f("value"));
         
         // link
         // original link: $link = $rss_link."front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$key]&m=$m&s=$s";

         // testen ob modrewrite &uuml;berhaupt aktiviert ist
         if ($cfg['mod_rewrite']['use'] == 1) { // aktiviert
            $link = 'http://' . $_SERVER['HTTP_HOST'] . ModRewrite::build_new_url("client=" . $client . "&lang=" . $lang . "&idcat=" . $selcat . "&idart=" . $linkID[$key] );
         } else { // deaktiviert
            $link = $rss_link."/front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$key]";
         }

         print "<item>\n";
         print "<title>\n".htmlspecialchars($head)."\n</title>\n";
         print "<description>\n".htmlspecialchars($description)."\n</description>\n";
         print "<link>\n".htmlspecialchars($link)."\n</link>\n";
         print "</item>\n";
         
   
      } // end foreach
   
   
      unset($head);
      unset($description);
   
     
   } // end if (is_array)
   
   print '</channel></rss>';

} // end if (if($selcat!="0" && $selcat!="")

?>
Gesperrt