Based on a patch by Davo Smith of Synergy Learning
RSS feeds can fail, either permanently or temporarily.
After this patch if a feed fails it will not be tried again in the next cron run.
If it continues to fail the delay between tries will be increased.
When a feed succeeds it will go back to being fetched on each cron run.
This should make the CRON process for RSS feeds finish faster when
there are lots of invalid feeds.
If the <description> of the feed contains URLs longer than 30 characters, the
URL is split because of the break_up_long_words(). When combined with the
filter that converts URLs to links, this produces broken links.
The proper solution would be to improve break_up_long_words() so that it does
not modifies URLs at all. As a temporary solution for our purpose now is to
call format_text() prior to break_up_long_words() as it will not modify the
inner content of the <a> tag.
This should be fixed upstream. See also discussion at
https://moodle.org/mod/forum/discuss.php?d=34947
Major tasks undertaken in this patch:
* New format_text argument, overflowdiv.
* New page layout Report.
* Review of all format_text calls.
* Added support for the report layout to all themes.
* Changed forum post display from tables to divs.
- Specify default low connect timeout in order that 'interactive' pages are
not slowed down by slow feeds
- Set default cache feed duration of 1 hour
In RSS feed block:
- Try really hard in cron to retreive the feed
- Set the cache duration low in order to help cron refresh the cache
- Remove obsolete magpie configuration
- Remove block_rss_client_submitters which has not been used for some
time
- Remove some block_rss_client setup from rsslib.php
This was all in order to do MDL-19889!
* The old tabbed interface is gone.
* The manage feeds UI has been completely rewritten to be a few
separate sane scripts like managefeeds.php, editfeed.php and viewfeed.php
* This is used from both Admin -> plugins -> blocks ... and as a link from the block edit_form.php
* new edit_form.php for the block replacing config_istance.php.
* A lot of stuff to do with UI specific to this block has been removed from rsslib.php
even non-course and sticky blocks.
The parent context is block_instances.parentcontextid.
The block context should be used for checking permissions directly
related to the block, like moodle/block:view or moodle/site:manageblocks.
However, if the block is displaying information about the current page,
for example the participants block showing who 'here', then it may be
better to use the context of the page where the bloack is appearing -
in other words $this->page->context - to check permissions about the
user's ability to see participants here.
Or, if the block is displaying something stronly related to courses,
for example, a course meny block, the block should probably use the
context for $this->page->course to check permissions.
Start calling $PAGE->set_url in all the places it will be necessary
Start of a stub implementation of $PAGE->blocks to stop other things breaking
Remove some of the special case methods in admin_page