Autor Zpráva
kukweb
Profil
Zdravim, rad bych pozadal o radu. Pouzivam worldpress a pridavam do nej zpravy prez RSS.
S jednim RSS kanalem mam problem, protoze odkaz je v nazvu zpravy. Pokud to zverejnim ve WP zustane mne jen nadpis a zprava odkaz je fuc. Poradil by mne nekdo jak dostat odkaz do textu?

<item>
                    <title>Filmový magazín</title>
                    <link>http://www.rozhlas.cz/_zprava/1054666</link>
                    <description>Ve Filmovém magazínu si budeme povídat o dokumentu &quot;Rok konopí&quot; a to s režisérem Petrem Slabým a producentem Janem Hrnčířem.</description>
                </item>

Takhle dostanu zpravu. pRIDAM TO DO MySQL. Ted jen nevim, jak udelat z MySQl dotazu, RSS.
Darker
Profil
Musíš HTML značky převádět na HTML entity - to lze provést pomocí funkce htmlspecialchars. Takto jsem pochopil tvoje tvrzení, že odkaz je v názvu zprávy:
<item>
                    <title>Filmový magazín <a href="http://www.rozhlas.cz/_zprava/1054666">odkaz</a></title>
                    <link>http://www.rozhlas.cz/_zprava/1054666</link>
                    <description>[...]</description>
</item>
Escapováno:
<item>
                    <title>Filmový magazín &lt;a href=&quot;http://www.rozhlas.cz/_zprava/1054666&quot;&gt;odkaz&lt;/a&gt;</title>
                    <link>http://www.rozhlas.cz/_zprava/1054666</link>
                    <description>[...]</description>
</item>

kukweb:
Ted jen nevim, jak udelat z MySQl dotazu, RSS.
Načteš data a vepíšeš je do odpovídajících kolonek. Validní výstup by měl vypadat takto:
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
        <title>RSS rozhlasu</title>
        <description>popis</description>
        <category>rozhlas</category>
        <language>cs</language>
        <copyright>nepovinné</copyright>
    <managingEditor>zbytečné</managingEditor>
    <webMaster>zbytečné</webMaster>
    <generator>nesmyslné</generator>
        <atom:link href="odkaz RSS sama na sebe" rel="self" type="application/rss+xml" />
        <link>odkaz na plný obsah</link>
        <ttl>poslení změna</ttl>

        <item>
                <title>htmlspecialchars($sql_return["title"])</title>
                <description>htmlspecialchars($sql_return["description"])</description>
                <link>htmlspecialchars($sql_return["link"])</link>
                <pubDate>htmlspecialchars($sql_return["date"])</pubDate>
                <guid>htmlspecialchars($sql_return["link"])</guid>
        </item>

 
</channel>
</rss>



Být tebou HTML z RSS úplně odstraním, pokud to nenaruší srozumitelnost.
seton
Profil
Na dotaz jak udelat z SQL dotazu RSS mohu odpovedet.

Ja generuji rss na zaklade GET dotazu, pouzivam tedy system OSCLASS a dnes nove inzeraty vypisuji po pristupu na http://rss.siknese.cz
pokud chci starsi pouzivam GET days, pro dalsi modifikace se muzes kouknout na http://bb.siknese.cz/viewtopic.php?f=8&t=12
Ale pro lepsi pouziti jsem udelal i generator RSS linku, aby si dostal jen pozadovana data, koukni na http://rss.siknese.cz/generatersslink.php

mohu zde uvest cele php toho rss generatoru a asi to i udelam ... :)

Kdyz budes mit nejaky dalsi dotaz, obrat se na mne s duverou :)

<?php
  require_once("/var/www/siknese.cz/config.php");
  
  
  header('Expires: ' . gmdate('D, d M Y H:i:s') . '  GMT');
  header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . '  GMT');
  header('Content-Type: text/xml; charset=utf-8');

  
  ?>
<?php echo '<'.'?xml version="1.0" encoding="utf-8"?'.'>'." \n" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
         <image>
            <link>/</link>
            <title>Siknese.cz</title>
            <url>http://siknese.cz/favicon.ico</url>
        </image>
<?php
$dnu=0;
$typ='all';
$cena=0;
$popis=" . . Filtr:";
$slovo="";
if(!empty($_GET["days"])){
    $dnu=$_GET["days"];
$popis= $popis." | Za ".$dnu." dnů ";}
else {
$popis= $popis." | Za dnes ";
}
if(!empty($_GET["type"])){
    $typ=$_GET["type"]; 
 if (strtolower($typ) == 'buy') $popis." : Poptávky ";
 if (strtolower($typ) == 'sell') $popis." : Nabídky ";
    }
    else {
    $popis= $popis." : Všechny typy ";
    }
if(!empty($_GET["price"])){
    $cena=$_GET["price"]; 
    if ($cena == 1) $popis= $popis." : Zdarma |";
    if ($cena == 2) $popis= $popis." : Výměna |";
    if ($cena == 3) $popis= $popis." : Do 150,- Kč |";
    }
    else {
    $popis= $popis." : Veškeré cenové katekorie ";
    }
if(!empty($_GET["word"])){
    $slovo=$_GET["word"];
$popis= $popis." : slovo: ".$slovo." ";}

    $popis=$popis."| . .";
    
?>

  <title>
  Šikne se. Věci, služby, události zdarma, výměnou a za odvoz do 150 Kč <?php echo $popis;?>  
  
  </title>
    <link>http://siknese.cz/</link>
    <webMaster>tonda@siknese.cz (Antonín Ečer, DiS.)</webMaster>
    
<?php


    
    
    $sql = "select distinct(i.pk_i_id) as id,i.dt_pub_date as pub_date,d.s_title as title,d.s_description as description,i.s_contact_email as email,case(b.s_type) when 'SELL' then 'Nabídka' when 'BUY' then 'Poptávka' end as typ,
case(i.i_price) when 1000000 then 'zdarma' when 2000000 then 'vymena' when 3000000 then 'do 150 Kč' else 'NA' end as cena,i.b_premium as premium,
cd.s_name as category, concat(min(r.pk_i_id),'.',min(r.s_extension)) as obr
from ".DB_TABLE_PREFIX."t_item i 
left outer join ".DB_TABLE_PREFIX."t_item_buysell b on i.pk_i_id=b.fk_i_item_id
left outer join ".DB_TABLE_PREFIX."t_item_description d on i.pk_i_id=d.fk_i_item_id and d.fk_c_locale_code='cs_CZ'
left outer join ".DB_TABLE_PREFIX."t_category_description cd on i.fk_i_category_id = cd.fk_i_category_id and cd.fk_c_locale_code='cs_CZ'
left outer join ".DB_TABLE_PREFIX."t_item_resource r on i.pk_i_id = r.fk_i_item_id
 where i.dt_pub_date >= subdate(CURDATE(), ".$dnu.")";
 

 if (strtolower($typ) !='all') {
 if (strtolower($typ) == 'buy') $sql=$sql." and b.s_type='BUY'";
 if (strtolower($typ) == 'sell') $sql=$sql." and b.s_type='SELL'";
 }
 if ($cena != 0) {
 if ($cena == 1) $sql=$sql." and i.i_price=1000000";
 if ($cena == 2) $sql=$sql." and i.i_price=2000000";
 if ($cena == 3) $sql=$sql." and i.i_price=3000000";
 }
 if (strlen($slovo) > 0) {
 $sql=$sql." and CAST(concat(d.s_title,d.s_description) AS CHAR CHARACTER SET utf8) COLLATE utf8_unicode_ci like ('%".$slovo."%') ";
 }

 $sql = $sql." group by i.pk_i_id,i.dt_pub_date,d.s_title ,d.s_description ,i.s_contact_email,b.s_type,i.i_price,i.b_premium,
cd.s_name, r.s_path
 order by i.pk_i_id desc ";
 //echo $sql;
$con = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
  mysql_select_db(DB_NAME, $con);
  mysql_query("SET CHARACTER SET utf8");
  

    $res = mysql_query($sql);
    while($rec = mysql_fetch_array($res)) {
    $publikovano = $rec["pub_date"]; //to kdyby bylo treba upravovat datum publikace
    
    echo "    <item>\n";
    echo "      <title>".$rec["typ"]." | ". $rec["cena"]." | ".$rec["title"]."</title>\n";
    echo "      <link>".WEB_PATH."index.php?page=item&amp;id=".$rec["id"]."</link>\n";  //tady se pokusim o permalinks
    echo "      <guid>".WEB_PATH."index.php?page=item&amp;id=".$rec["id"]."</guid>\n";
    echo "      <author>".$rec["email"]."</author>\n";
    echo "      <category>".$rec["category"]."</category>\n";
    echo "      <description>".$rec["description"]."</description>\n";
    echo "      <pubDate>".$publikovano." GMT</pubDate>\n";
    
    if (strlen($rec["obr"])>0) echo "      <image>."</image>\n]."</image>\n]http://siknese.cz/oc-content/uploads/".$rec["obr"]."</image>\n";
    echo "    </item>\n";

    }
    echo "  </channel>\n";
    echo "</rss>\n";
?>


Koukam, ze tady mi to i kdyz to napisi spravne prehodi nesmysl /image.... to snad kazdemu dojde....

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: