ورود

View Full Version : کسی میدونه rss ticker این سایت رو چطوری ساختن؟



raspotineiran
سه شنبه 25 دی 1386, 07:09 صبح
با سلام خدمت اساتید
می خواستم توی یه سایتی rss ticker قرار بدم یعنی چند تا لینک rss از خبرگزاریهای فارسی زبان مختلف را تو یک صفحه (rss reader) بدم و خروجی بصورت اخبار تصادفی در یک خط بالای صفحه و بصورت افکت تایپی به نمایش در بیاد بقولی با مخلوط کردن چندین فید- یک جور جستجوگر خبر زنده بوسیله rss reader داشته باشم مثل سایتهای زیر :
http://asoonews.com/header.aspx و http://www.farsnews.com
www.jahannews.com و http://www.iscanews.ir/fa
در قسمت بالای این سایتها آخرین اخبار به نمایش در امده است مثل اینکه اینها از یک فایل js نیز کمک گرفته اند که ادرسش یکیش اینه:
http://www.iscanews.ir/fa/Scripts/ticker_engine.js
من زیاد وارد به برنامه نویسی نیستم ولی بطور عجیبی کنجکاو این امر شده ام
البته با کدهای موجود در سایت www.dynamicdrive.com یه چیزایی میشه ساخت که مثل این در بیاد:
http://satup.freehostia.com/news/demo.htm
ولی من کد نمایش اخرین اخبار را به صورت سایتهای خبری فارسی ذکر شده در بالا را لازم دارم. راستی اینهم یک نمونه خارجیش
http://www.bbc.co.uk/portuguese

ممنون میشم اگرزودتر کمکم کنید خسته شدم از بس تو این سایتهای خارجی گشتم.
کد حاوا برای نمایش تایپی متن گیر اوردم ولی نتونستم برای این منظور (rss) ازش استفاده کنم مثل صفحه:
http://www.iranvig.com/upload/progra.../TypedText.htm

اینم کد این صفحه نمونه بالا:

<div align="right"><span dir="rtl" id="theTicker"></span></div></font>
<script language="javascript" type="text/javascript">
var theSummaries = new Array("ایران ویج سایتی برای همه برنامه نویسان","جهت تماس با مدیر سایت روی این لینک کلیک کنید","بخش بهترینهای سایت ایران ویج","ارسال برنامه به سایت");
var theSiteLinks = new Array("http://www.iranvig.com/index.php","mailto:webmaster@iranvig.com","http://www.iranvig.com/modules.php?name=Top","http://www.iranvig.com/admin.php");
// Control parameters
var theCharacterTimeout = 50;
var theStoryTimeout = 5000;
var theWidgetOne = "_";
var theWidgetTwo = "";
var theWidgetNone = "";
var theItemCount = theSummaries.length;
var NS6=(document.getElementById && !document.all) ? true : false;

// Ticker startup

function startTicker()
{

// Define run time values
theCurrentStory = -1;
theCurrentLength = 0;
// Locate base objects
if (document.getElementById) {
runTheTicker();
}
else {
document.write("<style>.ticki{display:none;}.ticko {border:0px; padding:0px;}</style>");
return true;
}
}
// Ticker main run loop
function runTheTicker()
{
var myTimeout;
// Go for the next story data block
if(theCurrentLength == 0)
{
theCurrentStory++;
theCurrentStory = theCurrentStory % theItemCount;
theStorySummary = theSummaries[theCurrentStory];
theTargetLink = theSiteLinks[theCurrentStory];
}

var textTitle = theStorySummary.substring(0,theCurrentLength) + whatWidget();

if (theTargetLink ) {

if (NS6) {
document.getElementById("theTicker").innerHTML = '<a href="'+ theTargetLink +'" target="_top" class="siteNavigation">'+textTitle+'</a>';
}
else {
document.all.theTicker.innerHTML = '<a href="'+ theTargetLink +'" target="_top" class="siteNavigation">'+textTitle+'</a>';
}
}
else {
if (NS6) {
document.getElementById("theTicker").innerHTML = '<span class="tickertext">'+textTitle+'</span>';
}
else {
document.all.theTicker.innerHTML = '<span class="tickertext">'+textTitle+'</span>';
}
}

// Modify the length for the substring and define the timer
if(theCurrentLength != theStorySummary.length)
{
theCurrentLength++;
myTimeout = theCharacterTimeout;
}
else
{
theCurrentLength = 0;
myTimeout = theStoryTimeout;
}
// Call up the next cycle of the ticker
setTimeout("runTheTicker()", myTimeout);
}

// Widget generator
function whatWidget()
{
if(theCurrentLength == theStorySummary.length)
{
return theWidgetNone;
}

if((theCurrentLength % 2) == 1)
{
return theWidgetOne;
}
else
{
return theWidgetTwo;
}
}

startTicker();
</script>


همچنیین برای اینکه شاید بدرد دیگری نیز بخورد این لینک هم یک rss reader خوب هست دوستان می توانند بهره ببرند
http://rss.js4ir.com/createreader/

لینک مستقیم دانلود نمایشگر rss : http://rss.js4ir.com/createreader/reader.zip
برای راه اندازی آن خروجی آر اس اس خود ( محل قرار گیری فایل آر اس اس ) را در خط 36 به نمایشگر بدهید
$file = "در اینجا";
تا اینجا شما آن را راه اندازی کرده اید.اما شاید ظاهر آن مورد پسند شما نباشد پس آن را تغییر دهید
دوستان سوال من فراموش نشود - منتظر یاری سبزتان هستم

kheybar
چهارشنبه 26 دی 1386, 17:10 عصر
باسلام.
دوست من این کد کمی پیچیده است.
ابتدا باید با زبانی که تحت سرور است مطالب خود را از بانک بخوانی و به صورت آرایه های جاوا در صفحه چاپ کنی.
البته منظورم ارتباط بین فرضا ASP و جاوا نیست.
شما ساختار آرایه ها را در جاوا به دست می آوری و با ASP آن را چاپ می کنی . ( در این حالت ASP و جاوا هیچ ربطی ندارند فقط ASP یک سری رشته را چاپ می کند . حال چون این رشته ها حالت استاندارد جاوا را دارند ، وقتی در داخل جاوا پرینت شوند جاوا آن را درک می کند.)
نهایتا اینکه شما مطالب را از بانک خانده و به صورت آرایه های جاوا در صفحه پرینت کرده ای.
حالا به چند فانکشن نیاز داری . یکی برای اینکه با فاصله های مشخص متن بالا را تغییر دهد . مثلا به صورت تصادفی یکی از آرایه ها را انتخاب کند و در بالای صفحه قرار دهد. فانکشن دیگری نیاز است تا مطلبی را که قرار است در بالای صفحه قرار گیرد را تکه تکه کند و به حالت تایپ شونده پشت سر هم قرار دهد. و .... .
حالا با این توضیحات فکر کنم با توجه به اینکه سرس را هم در بالای صفحه داری اگر کمی دقت کنی همه فاکنشن ها را بتوانی از هم تفکیک کنی.
من این کار را در سایت خودم انجام دادم. آنجا کدها دقیقا نام گذاری شده و خیلی منطقی است اگر سر بزنی شاید به دردت بخوره.
www.kheybar.com