[ djordje @ 08.04.2007. 18:55 ] @
Ima li neko preporuku za gotovu klasu za kreiranje RSS-a? |
[ djordje @ 08.04.2007. 18:55 ] @
[ Miroslav Ćurčić @ 08.04.2007. 21:58 ] @
feedcreator.class.php
Dovoljno je standardizovan da ga možeš naći svogde po netu. Mada koliko mi se čini to je napušten projekat, stalo se sa Atom 0.3, ali našao sam, dali u Joomli ili Mambu, koriste unapredjenu verziju sa podrškom za Atom 1.0 [ djordje @ 09.04.2007. 14:05 ] @
Nisam stigao da bas detaljno pogledam kod ove skripte, samo sam je testirao na brzinu. Cini mi se da uvek kreira isti feed.xml za svaki feed koji napravim. pitanje je sledece: Sta ako neko recimo ucitava rss1.php i u isto vreme drugi korisnik ucitava rss2.php koji generisu fajlove istog naziva (feed.xml) sa razlicitim sadrzajem?
[ Miroslav Ćurčić @ 09.04.2007. 17:39 ] @
Ti mu prosleđuješ naziv datoteke:
opciono na počektu: $rss->useCached($Format, $FileName, 60); // 1 minut na kraju skripte: $rss->saveFeed($Format, $FileName, true); Keširanje je opciono ali ubrzava rad kod jako posećenog sajta. $FileName možeš dinamički kreirati tako da sadrži Id oznaku svakog feed-a pa neće biti preklapanja. [ djordje @ 09.04.2007. 18:07 ] @
E hvala puno! Nisam bio lenj da pogledam, samo nisam stigao.
[ djordje @ 09.04.2007. 19:42 ] @
Imam jos jedno pitanje u vezi keshiranja. Uzmimo ovaj njihov primer (koji sam modifikovao da dodje 1000 elemenata u feed radi lakseg "benchmarka"):
Code: <?php include("./include/feedcreator.class.php"); $rss = new UniversalFeedCreator(); $rss->useCached("RSS0.91", "tstfilename.xml", 600); // use cached version if age<1 hour $rss->title = "PHP news"; $rss->description = "daily news from the PHP scripting world"; //optional $rss->descriptionTruncSize = 500; $rss->descriptionHtmlSyndicated = true; $rss->link = "http://www.dailyphp.net/news"; $rss->syndicationURL = "http://www.dailyphp.net/".$_SERVER["PHP_SELF"]; $image = new FeedImage(); $image->title = "dailyphp.net logo"; $image->url = "http://www.dailyphp.net/images/logo.gif"; $image->link = "http://www.dailyphp.net"; $image->description = "Feed provided by dailyphp.net. Click to visit."; //optional $image->descriptionTruncSize = 500; $image->descriptionHtmlSyndicated = true; $rss->image = $image; // get your news items from somewhere, e.g. your database: for ($i=0; $i<1000; $i++) { $item = new FeedItem(); $item->title = "naslov $i"; $item->link = "http://www.google.com"; $item->description = "opis $i"; //optional $item->descriptionTruncSize = 500; $item->descriptionHtmlSyndicated = true; $item->date = "danasnji datum"; $item->source = "http://www.dailyphp.net"; $item->author = "John Doe"; $rss->addItem($item); } echo $rss->saveFeed("RSS1.0", "tstfilename.xml", true); ?> Postoji li nacin da unapred utvrdimo da li postoji keshiran fajl pre citave ove for petelje kako je ne bismo ni izvrsavali ako nije potrebna? Mislim, nije tesko izmeniti ali me zanima da li vec postoji neka funkcija koja mi govori da kesh postoji i da je napravljen u odredjenom roku, recimo sat po defaultu. Nesto sto bi izgledalo otprilike ovako: Code: // get your news items from somewhere, e.g. your database: if(!$rss->iscashed()){ for ($i=0; $i<1000; $i++) { $item = new FeedItem(); $item->title = "naslov $i"; $item->link = "http://www.google.com"; $item->description = "opis $i"; //optional $item->descriptionTruncSize = 500; $item->descriptionHtmlSyndicated = true; $item->date = "danasnji datum"; $item->source = "http://www.dailyphp.net"; $item->author = "John Doe"; $rss->addItem($item); } } echo $rss->saveFeed("RSS1.0", "tstfilename.xml", true); [ djordje @ 09.04.2007. 19:54 ] @
Evo da sam sebi odgovorim. Ne postoji metoda koja kaze da li je feed kesiran ili ne, ali se svakako vrsi redirekcija na XML ako postoji pa se ostatak skripte i ne izvrsava posle use cashed.
Neka me neko ispravi akko gresim [ Miroslav Ćurčić @ 09.04.2007. 21:38 ] @
Negde iz useCached se poziva _redirect ako smatra da je keš dovoljno svež,
a u _redirect imaš die(); tako da skript ne ide dalje. [ djordje @ 11.04.2007. 01:00 ] @
PRegledao sam kod detaljnije danas. Hvala na pomoci, znacilo je mnogo!
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|