IranPHP Forum  

بازگشت   IranPHP Forum > راهنمایی > راهنمایی عمومی
ثبت نام راهنما فهرست کاربران تقویم جستجو ارسالهاي امروز نشانه گذاري انجمن ها به عنوان خوانده شده

اطلاع رسانی

پاسخ
 
ابزارهای موضوع نحوه نمایش
  #1  
قدیمی 12-27-2009, 11:00 AM
faghani faghani آنلاین نیست.
Junior Member
 
تاریخ عضویت: Jul 2009
نوشته ها: 20
Post چگونه rss بسازم؟

من چطوری میتونم برای سایتم rss بزنم؟
مثل وردپرس که وقتی در rss سایت ثبت نام میکنی ، میتونی اونو از rss خوان و یا از طریق ساید بار ویستا خوند و دید.
میشه یک کدی بدین؟
اموزش هم که باشه بهتر.



باتشکر
پاسخ با نقل قول
  #2  
قدیمی 12-27-2009, 10:49 PM
ali_sed ali_sed آنلاین نیست.
Super Moderator
 
تاریخ عضویت: Apr 2006
نوشته ها: 471
پیش فرض

شما می توانید از کلاس RSSWriter استفاده کنید.

مثال به همراه خود کلاس

جهت آشنایی با سینتکس آر اس اس به سایت w3schools مراجعه کنید.
__________________
http://mykargah.co.cc
پاسخ با نقل قول
  #3  
قدیمی 12-28-2009, 11:30 AM
faghani faghani آنلاین نیست.
Junior Member
 
تاریخ عضویت: Jul 2009
نوشته ها: 20
پیش فرض

ممنون ولی این کدی که این سایت داده نیاز به دستکاری داره؟
مثلا تو بخش مثالش که هست ، باید یک درخواست mysql هم بدیم.
میشه بگید این کد رو چیکار کنم؟
پاسخ با نقل قول
  #4  
قدیمی 12-28-2009, 10:07 PM
ali_sed ali_sed آنلاین نیست.
Super Moderator
 
تاریخ عضویت: Apr 2006
نوشته ها: 471
پیش فرض

اگر برنامه نویس نیستید نمی توانید از این کدها استفاده کنید.
اگر از cms خاصی استفاده می کنید حتما ماژولی برای نمایش rss دارد.
__________________
http://mykargah.co.cc
پاسخ با نقل قول
  #5  
قدیمی 12-29-2009, 12:40 PM
faghani faghani آنلاین نیست.
Junior Member
 
تاریخ عضویت: Jul 2009
نوشته ها: 20
پیش فرض

برنامه نویسی بلدم ولی اینو دیگه نمیدونستم!
والا من دارم خودم مینویسم یک برنامه و اینو برای همین میخواستم.
این کلاس که توضیح داده خوبه ولی مثالی که زده اشتباست!
یعنی میشه یکبار کاملشو بزاری؟
مثلا فکرکنم میخوای اسکریپت بنویسی ! برای rss چیکار میکنی؟
کد rss چی مینویسی؟
همونو بده تا ببینیم...
پاسخ با نقل قول
  #6  
قدیمی 12-29-2009, 10:44 PM
ali_sed ali_sed آنلاین نیست.
Super Moderator
 
تاریخ عضویت: Apr 2006
نوشته ها: 471
پیش فرض

بهتره قسمتی که مربوط به تعریف کلاس هست را تا پایان کدها در فایل دیگری ذخیره کنید و تنها آن را در برنامه خود فراخوانی کنید. بنابراین فایلی با نام rssClass.php ایجاد کرده و کد زیر را در آن قرار دهید:

کد PHP:
    class RSS
    {
        var $title;
        var $link;
        var $description;
        var $language = "en-us";
        var $pubDate;
        var $items;
        var $tags;

        function RSS()
        {
            $this->items = array();
            $this->tags  = array();
        }

        function addItem($item)
        {
            $this->items[] = $item;
        }

        function setPubDate($when)
        {
            if(strtotime($when) == false)
                $this->pubDate = date("D, d M Y H:i:s ", $when) . "GMT";
            else
                $this->pubDate = date("D, d M Y H:i:s ", strtotime($when)) . "GMT";
        }

        function getPubDate()
        {
              if(empty($this->pubDate))
                return date("D, d M Y H:i:s ") . "GMT";
            else
                return $this->pubDate;
        }

        function addTag($tag, $value)
        {
            $this->tags[$tag] = $value;
        }

        function out()
        {
            $out  = $this->header();
            $out .= "<channel>\n";
            $out .= "<title>" . $this->title . "</title>\n";
            $out .= "<link>" . $this->link . "</link>\n";
            $out .= "<description>" . $this->description . "</description>\n";
            $out .= "<language>" . $this->language . "</language>\n";
            $out .= "<pubDate>" . $this->getPubDate() . "</pubDate>\n";

            foreach($this->tags as $key => $val) $out .= "<$key>$val</$key>\n";
            foreach($this->items as $item) $out .= $item->out();

            $out .= "</channel>\n";
            
            $out .= $this->footer();

            $out = str_replace("&", "&amp;", $out);

            return $out;
        }
        
        function serve($contentType = "application/xml")
        {
            $xml = $this->out();
            header("Content-type: $contentType");
            echo $xml;
        }

        function header()
        {
            $out  = '<?xml version="1.0" encoding="utf-8"?>' . "\n";
            $out .= '<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">' . "\n";
            return $out;
        }

        function footer()
        {
            return '</rss>';
        }
    }

    class RSSItem
    {
        var $title;
        var $link;
        var $description;
        var $pubDate;
        var $guid;
        var $tags;
        var $attachment;
        var $length;
        var $mimetype;

        function RSSItem()
        { 
            $this->tags = array();
        }

        function setPubDate($when)
        {
            if(strtotime($when) == false)
                $this->pubDate = date("D, d M Y H:i:s ", $when) . "GMT";
            else
                $this->pubDate = date("D, d M Y H:i:s ", strtotime($when)) . "GMT";
        }

        function getPubDate()
        {
            if(empty($this->pubDate))
                return date("D, d M Y H:i:s ") . "GMT";
            else
                return $this->pubDate;
        }

        function addTag($tag, $value)
        {
            $this->tags[$tag] = $value;
        }

        function out()
        {
            $out .= "<item>\n";
            $out .= "<title>" . $this->title . "</title>\n";
            $out .= "<link>" . $this->link . "</link>\n";
            $out .= "<description>" . $this->description . "</description>\n";
            $out .= "<pubDate>" . $this->getPubDate() . "</pubDate>\n";

            if($this->attachment != "")
                $out .= "<enclosure url='{$this->attachment}' length='{$this->length}' type='{$this->mimetype}' />";

            if(empty($this->guid)) $this->guid = $this->link;
            $out .= "<guid>" . $this->guid . "</guid>\n";

            foreach($this->tags as $key => $val) $out .= "<$key>$val</$key\n>";
            $out .= "</item>\n";
            return $out;
        }

        function enclosure($url, $mimetype, $length)
        {
            $this->attachment = $url;
            $this->mimetype   = $mimetype;
            $this->length     = $length;
        }
    }
حال کد زیر را جهت ایجاد rss با استفاده از کلاس بالا در فایلی با نام rss.php ذخیره کنید:

کد PHP:
        require_once("rssClass.php");        
        
$feed = new RSS();
        
$feed->title       "RSS Feed Title";
        
$feed->link        "http://website.com";
        
$feed->description "Recent articles on your website.";

            
$item = new RSSItem();
            
$item->title "title";
            
$item->link  "http://google.com";
            
$item->setPubDate("2009/08/02"); 
            
$item->description "<![CDATA[ $html ]]>";
            
$feed->addItem($item);

        echo 
$feed->serve(); 
کد بالا تنها یک آیتم ایجاد می کند. جهت افزودن آیتم های بیشتر به فایل rss می توانید از حلقه ها استفاده کنید.
توجه کنید که جهت دسترسی به محتویات rss تنها کافیست فایل rss.php را در مرورگر باز کنید. (برخی از مرورگرها توانایی خواندن و ذخیره فیدها را دارند).
توجه کنید که شما می توانید اطلاعات مربوط به عنوان و محتوای آیتم ها را از دیتابیس نیز فراخوانی کنید. به مثال زیر دقت کنید:

کد PHP:
        require_once("rssClass.php");        
        
$feed = new RSS();
        
$feed->title       "RSS Feed Title";
        
$feed->link        "http://website.com";
        
$feed->description "Recent articles on your website.";

        
$db->query($query);
        
$result $db->result;
        while(
$row mysql_fetch_array($resultMYSQL_ASSOC))
        {
            
$item = new RSSItem();
            
$item->title $title;
            
$item->link  $link;
            
$item->setPubDate($create_date); 
            
$item->description "<![CDATA[ $html ]]>";
            
$feed->addItem($item);
        }
        echo 
$feed->serve(); 
(در مثال بالا دستورات اتصال به دیتابیس را با توجه به برنامه خود اضافه کنید و کوئری مربوطه را اصلاح نمایید)
__________________
http://mykargah.co.cc

ویرایش توسط ali_sed : 12-29-2009 در ساعت 10:49 PM
پاسخ با نقل قول
  #7  
قدیمی 12-30-2009, 08:59 AM
faghani faghani آنلاین نیست.
Junior Member
 
تاریخ عضویت: Jul 2009
نوشته ها: 20
پیش فرض

ممنون خیلی عالی بود!...
ولی من میخواستم طوری باشه که همیشه بالای صفحاتم (روی مرورگر بخش ادرس بار) همیشه این علامت نارنجی باشه و وقتی عضوش بشم بتونم از ویندوز مطالب رو ببینم!
مثلا یک سری از سایت ها هستن که عضو ار اس اس که میشی میتونی مطالب رو از ویندوزت (سایدبار دست راست) ببینی!
اون چجوریه؟!
برای تمپلیت انجین ها (کلاس های تمپلیت ها) کدوم رو معرفی میکنید؟!(این رو هم اگه با مثال باشه که چه بهتر.)
برای تمپلیت انجین ها از کلاس خاصی استفاده کنم یا بهتره با تابع str_replace() بسازم؟!

باتشکر

ویرایش توسط faghani : 12-30-2009 در ساعت 09:53 AM
پاسخ با نقل قول
  #8  
قدیمی 12-31-2009, 11:34 AM
ali_sed ali_sed آنلاین نیست.
Super Moderator
 
تاریخ عضویت: Apr 2006
نوشته ها: 471
پیش فرض

در مورد سوال اول شما باید بگم که بعد از انجام تمام مراحل بالا شما یک فایل rss.php خواهید داشت که شامل لیستی از آخرین اخبار سایت شما به همراه خلاصه خبر و لینک آن می باشد.
حال شما می توانید آدرس این فایل را در هر برنامه rss reader ای بکار ببرید. که یکی از آنها گجت های ویندوز ویستا یا سون است. ابزار فید خوان ویستا بر اساس فیدهای ثبت شده در IE کار می کند. بنابراین اگر کاربری آدرس فید شما را در IE ثبت کنید می تواند با استفاده از ابزار مذکور به راحتی به آخرین اخبار شما دسترسی یابد.
اما جهت اینکه مرورگر بصورت اتوماتیک فید شما را شناسایی کرده و در کنار نوار آدرس آن را نمایش دهد خط زیر را به هدر صفحه خود بیافزایید:

کد HTML:
<head>
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://yoursite.com/rss.php" />
</head>
در مورد بقیه سوالات در انجمن جستجو کنید که بسیار بحث شده است.
__________________
http://mykargah.co.cc
پاسخ با نقل قول
پاسخ

« موضوع قبلی | موضوع بعدی »
ابزارهای موضوع
نحوه نمایش

مجوز های ارسال و ویرایش
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code هست فعال
شکلک ها فعال است
کد [IMG] فعال است
کد HTML غیر فعال است

انتخاب سریع یک انجمن


اکنون ساعت 04:41 PM برپایه ساعت جهانی (GMT - گرینویچ) می باشد.


Powered by vBulletin Version 3.8.1
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.

Free Persian Language By Persian Forum Ver 3.0