Permalink
Browse files

moving to moodle/lib

  • Loading branch information...
dhawes
dhawes committed Jan 23, 2005
1 parent 9407d45 commit 800e57392629a5b121e39b21b6cefa50b5eb4de9
View
@@ -1 +0,0 @@
-kellan <kellan@protest.net>
View
@@ -1,48 +0,0 @@
-NAME
-
- MagpieRSS - a simple RSS integration tool
-
-SYNOPSIS
-
- require_once(rss_fetch.inc);
- $url = $_GET['url'];
- $rss = fetch_rss( $url );
-
- echo "Channel Title: " . $rss->channel['title'] . "<p>";
- echo "<ul>";
- foreach ($rss->items as $item) {
- $href = $item['link'];
- $title = $item['title'];
- echo "<li><a href=$href>$title</a></li>";
- }
- echo "</ul>";
-
-DESCRIPTION
-
- MapieRSS is an XML-based RSS parser in PHP. It attempts to be "PHP-like",
- and simple to use.
-
- Some features include:
-
- * supports RSS 0.9 - 1.0, with limited RSS 2.0 support
- * supports namespaces, and modules, including mod_content and mod_event
- * open minded [1]
- * simple, functional interface, to object oriented backend parser
- * automatic caching of parsed RSS objects makes its easy to integrate
- * supports conditional GET with Last-Modified, and ETag
- * uses constants for easy override of default behaviour
- * heavily commented
-
-
-1. By open minded I mean Magpie will accept any tag it finds in good faith that
- it was supposed to be here. For strict validation, look elsewhere.
-
-
-GETTING STARTED
-
-
-
-COPYRIGHT:
- Copyright(c) 2002 kellan@protest.net. All rights reserved.
- This software is released under the GNU General Public License.
- Please read the disclaimer at the top of the Snoopy.class.inc file.
@@ -1,3 +0,0 @@
-This folder is the MagpieRSS news feed client library
-http://magpierss.sourceforge.net/
-Moodle's rss_client block uses these libraries to download, parse and cache remote new feeds.
View
@@ -1,152 +0,0 @@
-TROUBLESHOOTING
-
-
-Trouble Installing MagpieRSS:
-
-1. Fatal error: Failed opening required '/path/to/script/rss_fetch.inc'
- (include_path='.:/usr/local/lib/php:/usr/local/lib/php/pear')
-
-2. Cache couldn't make dir './cache'.
-
-3. Fatal error: Failed to load PHP's XML Extension.
- http://www.php.net/manual/en/ref.xml.php
-
-Trouble Using MagpieRSS
-
-4. Warning: MagpieRSS: Failed to fetch example.com/index.rdf.
- (HTTP Error: Invalid protocol "")
-
-5. Warning: MagpieRSS: Failed to parse RSS file.
- (not well-formed (invalid token) at line 19, column 98)
-
-6. Warning: MagpieRSS: Failed to fetch http://localhost/rss/features.1-0.rss.
- (HTTP Response: HTTP/1.1 404 Not Found)
-
-If you would rather provide a custom error, see the COOKBOOK
-(http://magpierss.sf.net/cookbook.html) recipe 2.
-
-*************************************************************************
-1. Fatal error: Failed opening required '/path/to/script/rss_fetch.inc'
- (include_path='.:/usr/local/lib/php:/usr/local/lib/php/pear')
-
- This could mean that:
-
- a) PHP can't find the MagpieRSS files.
- b) PHP found them the MagpieRSS files, but can't read them.
-
- a. Telling PHP where to look for MagpieRSS file.
-
- This might mean your PHP program can't find the MagpieRSS libraries.
- Magpie relies on 4 include files, rss_fetch.inc, rss_parse.inc,
- rss_cache.inc, rss_util.inc, and for normal use you'll need all 4 (see the
- cookbook for exceptions).
-
- This can be fixed by making sure the MagpieRSS files are in your include
- path.
-
- If you can edit your include path (for example your on a shared host) then
- you need to replace:
-
- require_once('rss_fetch.inc');
-
- -with-
-
- define('MAGPIE_DIR', '/path/to/magpierss/');
- require_once(MAGPIE_DIR.'rss_fetch.inc');
-
- b. PHP can't read the MagpieRSS files
-
- All PHP libraries need to be readable by your webserver.
-
- On Unix you can accomplish this with:
-
- chmod 755 rss_fetch.inc rss_parse.inc rss_cache.inc rss_util.inc
-
-*************************************************************************
-2. Cache couldn't make dir './cache'.
-
- MagpieRSS caches the results of fetched and parsed RSS to reduce the load on
- both your server, and the remote server providing the RSS. It does this by
- writing files to a cache directory.
-
- This error means the webserver doesn't have write access to the current
- directory.
-
- a. Make a webserver writeable cache directory
-
- Find the webserver's group. (on my system it is 'www')
-
- mkdir ./cache
- chgrp www directory_name
- chmod g+w directory_name
-
- (this is the best, and desired solution)
-
- b. Tell MagpieRSS to create the cache directory somewhere the webserver can
- write to.
-
- define('MAGPIE_CACHE_DIR', '/tmp/magpierss');
-
- (this is not a great solution, and might have security considerations)
-
- c. Turn off cacheing.
-
- Magpie can work fine with cacheing, but it will be slower, and you might
- become a nuiance to the RSS provider, but it is an option.
-
- define('MAGPIE_CACHE_ON', 0);
-
- d. And lastly, do NOT
-
- chmod 777 ./cache
-
- Any of the above solutions are better then this.
-
- NOTE: If none of this works for you, let me know. I've got root, and a
- custom compiled Apache on almost any box I ever touch, so I can be a little
- out of touch with reality. But I won't know that if I don't feedback.
-
-************************************************************************* 3.
-3. Fatal error: Failed to load PHP's XML Extension.
- http://www.php.net/manual/en/ref.xml.php
-
- -or-
-
- Fatal error: Failed to create an instance of PHP's XML parser.
- http://www.php.net/manual/en/ref.xml.php
-
- Make sure your PHP was built with --with-xml
-
- This has been turned on by default for several versions of PHP, but it might
- be turned off in your build.
-
- See php.net for details on building and configuring PHP.
-
-
-*************************************************************************
-4. Warning: MagpieRSS: Failed to fetch index.rdf.
- (HTTP Error: Invalid protocol "")
-
- You need to put http:// in front of your the URL to your RSS feed
-
-*************************************************************************
-5. Warning: MagpieRSS: Failed to parse RSS file.
- (not well-formed (invalid token) at line 19, column 98)
-
- There is a problem with the RSS feed you are trying to read.
- MagpieRSS is an XML parser, and therefore can't parse RSS feed with invalid
- characters. Some RSS parser are based on regular expressions, and can
- parse invalid RSS but they have their own problems.
-
- You could try contacting the author of the RSS feed, and pointing them to
- the online RSS validator at:
-
- http://feeds.archive.org/validator/
-
-*************************************************************************
-6. Warning: MagpieRSS: Failed to fetch http://example.com/index.rdf
- (HTTP Response: HTTP/1.1 404 Not Found)
-
- Its a 404! The RSS file ain't there.
-
-
View
@@ -1,125 +0,0 @@
-MAGPIERSS RECIPES: Cooking with Corbies
-
- "Four and twenty blackbirds baked in a pie."
-
-1. LIMIT THE NUMBER OF HEADLINES(AKA ITEMS) RETURNED.
-
-PROBLEM:
-
-You want to display the 10 (or 3) most recent headlines, but the RSS feed
-contains 15.
-
-SOLUTION:
-
-$num_items = 10;
-$rss = fetch_rss($url);
-
-$items = array_slice($rss->items, 0, $num_items);
-
-DISCUSSION:
-
-Rather then trying to limit the number of items Magpie parses, a much simpler,
-and more flexible approach is to take a "slice" of the array of items. And
-array_slice() is smart enough to do the right thing if the feed has less items
-then $num_items.
-
-See: http://www.php.net/array_slice
-
-
-2. DISPLAY A CUSTOM ERROR MESSAGE IF SOMETHING GOES WRONG
-
-PROBLEM:
-
-You don't want Magpie's error messages showing up if something goes wrong.
-
-SOLUTION:
-
-# Magpie throws USER_WARNINGS only
-# so you can cloak these, by only showing ERRORs
-error_reporting(E_ERROR);
-
-# check the return value of fetch_rss()
-
-$rss = fetch_rss($url);
-
-if ( $rss ) {
-...display rss feed...
-}
-else {
- echo "An error occured! " .
- "Consider donating more $$$ for restoration of services." .
- "<br>Error Message: " . magpie_error();
-}
-
-DISCUSSION:
-
-MagpieRSS triggers a warning in a number of circumstances. The 2 most common
-circumstances are: if the specified RSS file isn't properly formed (usually
-because it includes illegal HTML), or if Magpie can't download the remote RSS
-file, and there is no cached version.
-
-If you don't want your users to see these warnings change your error_reporting
-settings to only display ERRORs. Another option is to turn off display_error,
-so that WARNINGs, and NOTICEs still go to the error_log but not to the webpages.
-
-You can do this with:
-
-ini_set('display_errors', 0);
-
-See: http://www.php.net/error_reporting,
- http://www.php.net/ini_set,
- http://www.php.net/manual/en/ref.errorfunc.php
-
-3. GENERATE A NEW RSS FEED
-
-PROBLEM:
-
-Create an RSS feed for other people to use.
-
-SOLUTION:
-
-Use Useful Inc's RSSWriter (http://usefulinc.com/rss/rsswriter/)
-
-DISCUSSION:
-
-An example of turning a Magpie parsed RSS object back into an RSS file is forth
-coming. In the meantime RSSWriter has great documentation.
-
-4. DISPLAY HEADLINES MORE RECENT THEN X DATE
-
-PROBLEM:
-
-You only want to display headlines that were published on, or after a certain
-date.
-
-
-SOLUTION:
-
-require 'rss_utils.inc';
-
-# get all headlines published today
-$today = getdate();
-
-# today, 12AM
-$date = mktime(0,0,0,$today['mon'], $today['mday'], $today['year']);
-
-$rss = fetch_rss($url);
-
-foreach ( $rss->items as $item ) {
- $published = parse_w3cdtf($item['dc']['date']);
- if ( $published >= $date ) {
- echo "Title: " . $item['title'];
- echo "Published: " . date("h:i:s A", $published);
- echo "<p>";
- }
-}
-
-DISCUSSION:
-
-This recipe only works for RSS 1.0 feeds that include the <dc:date> field.
-(which is very good RSS style)
-
-parse_w3cdtf is defined in rss_utils.inc, and parses RSS style dates into Unix
-epoch seconds.
-
-See: http://www.php.net/manual/en/ref.datetime.php
Oops, something went wrong.

0 comments on commit 800e573

Please sign in to comment.