2004-10-04 22:21:30 +00:00
< ? php // $Id$
2004-05-02 23:08:19 +00:00
// This file contains all the common stuff to be used in RSS System
2004-08-07 16:54:25 +00:00
//This function returns the icon (from theme) with the link to rss/file.php
2005-01-20 01:35:04 +00:00
function rss_get_link ( $courseid , $userid , $modulename , $id , $tooltiptext = '' ) {
2004-05-02 23:08:19 +00:00
2005-01-25 17:39:55 +00:00
global $CFG , $USER ;
2004-05-02 23:08:19 +00:00
static $pixpath = '' ;
static $rsspath = '' ;
2004-10-04 22:21:30 +00:00
//In site course, if no logged (userid), use admin->id. Bug 2048.
if ( $courseid == SITEID and empty ( $userid )) {
$admin = get_admin ();
$userid = $admin -> id ;
}
2004-05-02 23:08:19 +00:00
if ( $CFG -> slasharguments ) {
$rsspath = " $CFG->wwwroot /rss/file.php/ $courseid / $userid / $modulename / $id /rss.xml " ;
} else {
$rsspath = " $CFG->wwwroot /rss/file.php?file=/ $courseid / $userid / $modulename / $id /rss.xml " ;
}
2005-01-25 17:39:55 +00:00
$rsspix = $CFG -> pixpath . '/i/rss.gif' ;
2004-05-02 23:08:19 +00:00
2005-03-25 19:01:32 +00:00
return '<a href="' . $rsspath . '"><img src="' . $rsspix . '" title="' . strip_tags ( $tooltiptext ) . '" alt="" /></a>' ;
2004-05-02 23:08:19 +00:00
}
2004-08-07 16:54:25 +00:00
//This function prints the icon (from theme) with the link to rss/file.php
2005-01-20 01:35:04 +00:00
function rss_print_link ( $courseid , $userid , $modulename , $id , $tooltiptext = '' ) {
2004-08-07 16:54:25 +00:00
2005-01-27 22:45:50 +00:00
print rss_get_link ( $courseid , $userid , $modulename , $id , $tooltiptext );
2004-08-07 16:54:25 +00:00
}
2004-05-02 23:08:19 +00:00
//This function iterates over each module in the server to see if
//it supports generating rss feeds, searching for a MODULENAME_rss_feeds()
//function and invoking it foreach activity as necessary
function cron_rss_feeds () {
global $CFG ;
$status = true ;
2005-01-20 01:35:04 +00:00
mtrace ( ' Generating rssfeeds...' );
2004-05-02 23:08:19 +00:00
2004-05-20 15:19:19 +00:00
//Check for required functions...
if ( ! function_exists ( 'utf8_encode' )) {
2005-01-20 01:35:04 +00:00
mtrace ( ' ERROR: You need to add XML support to your PHP installation!' );
2004-05-20 15:19:19 +00:00
return true ;
}
2005-01-20 01:35:04 +00:00
if ( $allmods = get_records ( 'modules' ) ) {
2004-05-02 23:08:19 +00:00
foreach ( $allmods as $mod ) {
2004-08-05 17:25:15 +00:00
mtrace ( ' ' . $mod -> name . ': ' , '' );
2004-05-02 23:08:19 +00:00
$modname = $mod -> name ;
$modfile = " $CFG->dirroot /mod/ $modname /rsslib.php " ;
//If file exists and we have selected to restore that type of module
if ( file_exists ( $modfile )) {
include_once ( $modfile );
$generaterssfeeds = $modname . '_rss_feeds' ;
if ( function_exists ( $generaterssfeeds )) {
if ( $status ) {
2004-08-05 17:25:15 +00:00
mtrace ( 'generating ' , '' );;
2004-05-02 23:08:19 +00:00
$status = $generaterssfeeds ();
if ( ! empty ( $status )) {
2005-01-20 01:35:04 +00:00
mtrace ( '...OK' );
2004-05-02 23:08:19 +00:00
} else {
2005-01-20 01:35:04 +00:00
mtrace ( '...FAILED' );
2004-05-02 23:08:19 +00:00
}
} else {
2005-01-20 01:35:04 +00:00
mtrace ( '...SKIPPED (failed above)' );
2004-05-02 23:08:19 +00:00
}
} else {
2005-01-20 01:35:04 +00:00
mtrace ( '...NOT SUPPORTED (function)' );
2004-05-02 23:08:19 +00:00
}
} else {
2005-01-20 01:35:04 +00:00
mtrace ( '...NOT SUPPORTED (file)' );
2004-05-02 23:08:19 +00:00
}
}
}
2005-01-20 01:35:04 +00:00
mtrace ( ' Ending rssfeeds...' , '' );
2004-05-02 23:08:19 +00:00
if ( ! empty ( $status )) {
2005-01-20 01:35:04 +00:00
mtrace ( '...OK' );
2004-05-02 23:08:19 +00:00
} else {
2005-01-20 01:35:04 +00:00
mtrace ( '...FAILED' );
2004-05-02 23:08:19 +00:00
}
return $status ;
}
//This function saves to file the rss feed specified in the parameters
2005-01-20 01:35:04 +00:00
function rss_save_file ( $modname , $mod , $result ) {
2004-05-02 23:08:19 +00:00
global $CFG ;
$status = true ;
2005-01-20 01:35:04 +00:00
if ( ! $basedir = make_upload_directory ( 'rss/' . $modname )) {
2004-05-26 16:12:58 +00:00
//Cannot be created, so error
$status = false ;
}
2004-05-02 23:08:19 +00:00
if ( $status ) {
2004-08-05 18:06:55 +00:00
$file = rss_file_name ( $modname , $mod );
2005-01-20 01:35:04 +00:00
$rss_file = fopen ( $file , " w " );
2004-05-02 23:08:19 +00:00
if ( $rss_file ) {
2005-01-20 01:35:04 +00:00
$status = fwrite ( $rss_file , $result );
2004-05-02 23:08:19 +00:00
fclose ( $rss_file );
2004-05-26 16:12:58 +00:00
} else {
$status = false ;
2004-05-02 23:08:19 +00:00
}
}
return $status ;
}
2004-08-05 18:06:55 +00:00
function rss_file_name ( $modname , $mod ) {
global $CFG ;
return " $CFG->dataroot /rss/ $modname / $mod->id .xml " ;
}
2004-05-02 23:08:19 +00:00
//This function return all the common headers for every rss feed in the site
function rss_standard_header ( $title = NULL , $link = NULL , $description = NULL ) {
2005-01-25 17:39:55 +00:00
global $CFG , $USER ;
2004-05-02 23:08:19 +00:00
static $pixpath = '' ;
$status = true ;
$result = " " ;
if ( ! $site = get_site ()) {
$status = false ;
}
if ( $status ) {
//Calculate title, link and description
if ( empty ( $title )) {
$title = $site -> fullname ;
}
if ( empty ( $link )) {
$link = $CFG -> wwwroot ;
}
if ( empty ( $description )) {
$description = $site -> summary ;
}
//xml headers
$result .= " <?xml version= \" 1.0 \" encoding= \" UTF-8 \" ?> \n " ;
$result .= " <rss version= \" 2.0 \" > \n " ;
//open the channel
2005-01-27 22:45:50 +00:00
$result .= rss_start_tag ( 'channel' , 1 , true );
2004-05-02 23:08:19 +00:00
//write channel info
2005-01-27 22:45:50 +00:00
$result .= rss_full_tag ( 'title' , 2 , false , $title );
$result .= rss_full_tag ( 'link' , 2 , false , $link );
$result .= rss_full_tag ( 'description' , 2 , false , $description );
2004-12-01 19:51:45 +00:00
if ( ! empty ( $USER -> lang )) {
2005-01-27 22:45:50 +00:00
$result .= rss_full_tag ( 'language' , 2 , false , substr ( $USER -> lang , 0 , 2 ));
2004-12-01 19:51:45 +00:00
}
2004-05-02 23:08:19 +00:00
$today = getdate ();
2005-01-27 22:45:50 +00:00
$result .= rss_full_tag ( 'copyright' , 2 , false , '© ' . $today [ 'year' ] . ' ' . $site -> fullname );
2004-12-01 19:51:45 +00:00
if ( ! empty ( $USER -> email )) {
2005-01-27 22:45:50 +00:00
$result .= rss_full_tag ( 'managingEditor' , 2 , false , $USER -> email );
$result .= rss_full_tag ( 'webMaster' , 2 , false , $USER -> email );
2004-12-01 19:51:45 +00:00
}
2004-05-02 23:08:19 +00:00
//write image info
2005-01-25 17:39:55 +00:00
$rsspix = $CFG -> pixpath . " /i/rsssitelogo.gif " ;
2004-05-02 23:08:19 +00:00
//write the info
2005-01-27 22:45:50 +00:00
$result .= rss_start_tag ( 'image' , 2 , true );
$result .= rss_full_tag ( 'url' , 3 , false , $rsspix );
$result .= rss_full_tag ( 'title' , 3 , false , 'moodle' );
$result .= rss_full_tag ( 'link' , 3 , false , $CFG -> wwwroot );
$result .= rss_full_tag ( 'width' , 3 , false , '140' );
$result .= rss_full_tag ( 'height' , 3 , false , '35' );
$result .= rss_end_tag ( 'image' , 2 , true );
2004-05-02 23:08:19 +00:00
}
if ( ! $status ) {
return false ;
} else {
return $result ;
}
}
//This function returns the rss XML code for every item passed in the array
//item->title: The title of the item
2004-05-09 18:34:33 +00:00
//item->author: The author of the item. Optional !!
2004-05-02 23:08:19 +00:00
//item->pubdate: The pubdate of the item
//item->link: The link url of the item
//item->description: The content of the item
function rss_add_items ( $items ) {
global $CFG ;
2005-05-02 15:54:24 +00:00
$result = '' ;
2004-05-02 23:08:19 +00:00
if ( ! empty ( $items )) {
foreach ( $items as $item ) {
2005-05-02 15:54:24 +00:00
$result .= rss_start_tag ( 'item' , 2 , true );
2005-07-24 23:04:58 +00:00
//Include the category if exists (some rss readers will use it to group items)
if ( isset ( $item -> category )) {
$result .= rss_full_tag ( 'category' , 3 , false , $item -> category );
}
2005-05-02 15:54:24 +00:00
$result .= rss_full_tag ( 'title' , 3 , false , $item -> title );
$result .= rss_full_tag ( 'link' , 3 , false , $item -> link );
$result .= rss_full_tag ( 'pubDate' , 3 , false , date ( 'r' , $item -> pubdate ));
2004-05-09 18:34:33 +00:00
//Include the author if exists
if ( isset ( $item -> author )) {
2005-05-02 16:28:14 +00:00
//$result .= rss_full_tag('author',3,false,$item->author);
//We put it in the description instead because it's more important
//for moodle than most other feeds, and most rss software seems to ignore
//the author field ...
2005-09-07 17:07:52 +00:00
$item -> description = get_string ( 'byname' , '' , $item -> author ) . '. <p />' . $item -> description . '</p>' ;
2004-05-09 18:34:33 +00:00
}
2005-05-02 15:54:24 +00:00
$result .= rss_full_tag ( 'description' , 3 , false , $item -> description );
$result .= rss_end_tag ( 'item' , 2 , true );
2004-05-02 23:08:19 +00:00
}
} else {
$result = false ;
}
return $result ;
}
//This function return all the common footers for every rss feed in the site
function rss_standard_footer ( $title = NULL , $link = NULL , $description = NULL ) {
global $CFG , $USER ;
$status = true ;
2005-05-02 15:54:24 +00:00
$result = '' ;
2004-05-02 23:08:19 +00:00
//Close the chanel
2005-01-27 22:45:50 +00:00
$result .= rss_end_tag ( 'channel' , 1 , true );
2004-05-02 23:08:19 +00:00
////Close the rss tag
2005-01-27 22:45:50 +00:00
$result .= '</rss>' ;
2004-05-02 23:08:19 +00:00
return $result ;
}
2004-12-01 19:51:45 +00:00
//This function return an error xml file (string)
//to be sent when a rss is required (file.php)
//and something goes wrong
function rss_geterrorxmlfile () {
global $CFG ;
$return = '' ;
//XML Header
$return = rss_standard_header ();
//XML item
if ( $return ) {
$item -> title = " RSS Error " ;
$item -> link = $CFG -> wwwroot ;
$item -> pubdate = time ();
$item -> description = get_string ( " rsserror " );
$return .= rss_add_items ( array ( $item ));
}
//XML Footer
if ( $return ) {
$return .= rss_standard_footer ();
}
return $return ;
}
2004-05-02 23:08:19 +00:00
// ===== This function are used to write XML tags =========
// [stronk7]: They are similar to the glossary export and backup generation
// but I've replicated them here because they have some minor
// diferences. Someday all they should go to a common place.
//Return the xml start tag
function rss_start_tag ( $tag , $level = 0 , $endline = false ) {
if ( $endline ) {
$endchar = " \n " ;
} else {
$endchar = " " ;
}
return str_repeat ( " " , $level * 2 ) . " < " . $tag . " > " . $endchar ;
}
//Return the xml end tag
function rss_end_tag ( $tag , $level = 0 , $endline = true ) {
if ( $endline ) {
$endchar = " \n " ;
} else {
$endchar = " " ;
}
return str_repeat ( " " , $level * 2 ) . " </ " . $tag . " > " . $endchar ;
}
//Return the start tag, the contents and the end tag
function rss_full_tag ( $tag , $level = 0 , $endline = true , $content , $to_utf = true ) {
//Here we encode absolute links
$st = rss_start_tag ( $tag , $level , $endline );
$co = " " ;
if ( $to_utf ) {
$co = preg_replace ( " / \r \n | \r / " , " \n " , utf8_encode ( htmlspecialchars ( $content )));
} else {
$co = preg_replace ( " / \r \n | \r / " , " \n " , htmlspecialchars ( $content ));
}
$et = rss_end_tag ( $tag , 0 , true );
return $st . $co . $et ;
}
2005-01-17 18:03:15 +00:00
//////////////////// LIBRARY FUNCTIONS FOR RSS_CLIENT BLOCK ////////////////
2005-01-23 15:37:47 +00:00
//initialize default config vars for rss_client block if needed
if ( ! isset ( $CFG -> block_rss_client_submitters ) ) {
2005-01-17 18:03:15 +00:00
$CFG -> block_rss_client_submitters = 1 ; //default to admin only
}
if ( empty ( $CFG -> block_rss_client_num_entries ) ) {
$CFG -> block_rss_client_num_entries = 5 ; //default to 5 entries per block
}
2005-01-23 15:37:47 +00:00
if ( ! isset ( $CFG -> block_rss_timeout ) ) {
2005-01-17 18:03:15 +00:00
$CFG -> block_rss_timeout = 30 ;
}
2005-01-23 15:37:47 +00:00
// Defines for moodle's use of magpierss classes
2005-01-24 03:24:54 +00:00
define ( 'MAGPIE_DIR' , $CFG -> dirroot . '/lib/magpie/' );
2005-01-29 02:59:44 +00:00
define ( 'MAGPIE_CACHE_DIR' , $CFG -> dataroot . '/cache/rsscache' );
define ( 'MAGPIE_CACHE_ON' , true ); //might want to expose as an admin config option, but perhaps this is something that should truly just be on unless the code is tweaked
2005-01-23 15:37:47 +00:00
define ( 'MAGPIE_CACHE_FRESH_ONLY' , false ); //should be exposed as an admin config option
define ( 'MAGPIE_CACHE_AGE' , $CFG -> block_rss_timeout );
if ( $CFG -> debug ) {
define ( 'MAGPIE_DEBUG' , true );
} else {
define ( 'MAGPIE_DEBUG' , false );
2005-01-17 18:03:15 +00:00
}
2005-01-23 15:37:47 +00:00
// defines for config var block_rss_client_submitters
define ( 'SUBMITTERS_ALL_ACCOUNT_HOLDERS' , 0 );
define ( 'SUBMITTERS_ADMIN_ONLY' , 1 );
define ( 'SUBMITTERS_ADMIN_AND_TEACHER' , 2 );
2005-01-17 18:03:15 +00:00
/**
2005-08-01 14:02:46 +00:00
* @ param int $courseid The id of the course the user is currently viewing
2005-05-15 02:46:15 +00:00
* @ param int $userid If present only entries added by this userid will be displayed
* @ param int $rssid If present the rss entry matching this id alone will be displayed
2005-01-17 18:03:15 +00:00
*/
2005-08-01 14:02:46 +00:00
function rss_display_feeds ( $courseid = '' , $userid = '' , $rssid = '' ) {
2005-01-25 17:39:55 +00:00
global $db , $USER , $CFG ;
2005-01-17 18:03:15 +00:00
global $blogid ; //hackish, but if there is a blogid it would be good to preserve it
2005-05-17 23:35:58 +00:00
require_once ( $CFG -> libdir . '/tablelib.php' );
2005-01-20 01:35:04 +00:00
2005-05-18 00:49:45 +00:00
$select = '' ;
2005-05-15 02:46:15 +00:00
2005-05-17 23:35:58 +00:00
if ( ! isadmin ()) {
$userid = $USER -> id ;
}
2005-05-15 02:46:15 +00:00
if ( $userid != '' && is_numeric ( $userid )) {
2005-05-17 23:35:58 +00:00
// if a user is specified and not an admin then only show their own feeds
$select = 'userid=' . $userid ;
2005-05-15 02:46:15 +00:00
} else if ( $rssid != '' ){
$select = 'id=' . $rssid ;
2005-05-18 00:49:45 +00:00
}
2005-05-17 23:35:58 +00:00
$table = new flexible_table ( 'rss-display-feeds' );
2005-05-18 00:49:45 +00:00
$table -> define_columns ( array ( 'feed' , 'actions' ));
$table -> define_headers ( array ( get_string ( 'feed' , 'block_rss_client' ), get_string ( 'actions' , 'moodle' )));
2005-05-17 23:35:58 +00:00
$table -> set_attribute ( 'cellspacing' , '0' );
$table -> set_attribute ( 'id' , 'rssfeeds' );
$table -> set_attribute ( 'class' , 'generaltable generalbox' );
2005-05-18 00:49:45 +00:00
$table -> column_class ( 'feed' , 'feed' );
$table -> column_class ( 'actions' , 'actions' );
2005-05-17 23:35:58 +00:00
$table -> setup ();
2005-05-18 00:49:45 +00:00
$feeds = get_records_select ( 'block_rss_client' , $select , 'title' );
2005-05-17 23:35:58 +00:00
if ( ! empty ( $feeds )) {
foreach ( $feeds as $feed ) {
if ( ! empty ( $feed -> preferredtitle )) {
$feedtitle = stripslashes_safe ( $feed -> preferredtitle );
} else {
$feedtitle = stripslashes_safe ( $feed -> title );
}
if ( $feed -> userid == $USER -> id || isadmin ()) {
2005-08-01 14:02:46 +00:00
$feedicons = '<a href="' . $CFG -> wwwroot . '/blocks/rss_client/block_rss_client_action.php?id=' . $courseid . '&act=rss_edit&rssid=' . $feed -> id . '&blogid=' . $blogid . '">' .
2005-05-17 23:35:58 +00:00
'<img src="' . $CFG -> pixpath . '/t/edit.gif" alt="' . get_string ( 'edit' ) . '" title="' . get_string ( 'edit' ) . '" /></a> ' .
2005-08-01 14:02:46 +00:00
'<a href="' . $CFG -> wwwroot . '/blocks/rss_client/block_rss_client_action.php?id=' . $courseid . '&act=delfeed&rssid=' . $feed -> id . '&blogid=' . $blogid . ' "
onclick = " return confirm( \ ''. get_string('deletefeedconfirm', 'block_rss_client') .' \ '); " > ' .
2005-05-17 23:35:58 +00:00
'<img src="' . $CFG -> pixpath . '/t/delete.gif" alt="' . get_string ( 'delete' ) . '" title="' . get_string ( 'delete' ) . '" /></a>' ;
}
else {
$feedicons = '' ;
}
2005-08-01 14:02:46 +00:00
$feedinfo = '<div class="title"><a href="' . $CFG -> wwwroot . '/blocks/rss_client/block_rss_client_action.php?id=' . $courseid . '&act=view&rssid=' . $feed -> id . '&blogid=' . $blogid . '">'
2005-05-17 23:35:58 +00:00
. $feedtitle . '</a></div><div class="url"><a href="' . $feed -> url . '">' . $feed -> url . '</a></div><div class="description">' . $feed -> description . '</div>' ;
$table -> add_data ( array ( $feedinfo , $feedicons ));
}
}
$table -> print_html ();
2005-01-17 18:03:15 +00:00
}
2005-01-27 01:24:33 +00:00
/**
* translates HTML special characters back to ASCII
* RSS feeds may have encoded html commands which we want to translate properly
* to display as intended rather than as source ( html script visible in feed )
* This function taken from Simplog - www . simplog . net
*/
function rss_unhtmlentities ( $string ) {
$trans_tbl = get_html_translation_table ( HTML_ENTITIES );
$trans_tbl = array_flip ( $trans_tbl );
return strtr ( $string , $trans_tbl );
}
2005-05-15 02:46:15 +00:00
2005-08-01 14:02:46 +00:00
/**
2005-08-30 18:34:41 +00:00
* Wrapper function for rss_get_form
*/
2005-08-01 14:02:46 +00:00
function rss_print_form ( $act = 'none' , $url = '' , $rssid = '' , $preferredtitle = '' , $courseid = '' ) {
print rss_get_form ( $act , $url , $rssid , $preferredtitle , $courseid );
}
2005-05-15 02:46:15 +00:00
/**
* Prints or returns a form for managing rss feed entries .
2005-07-31 20:04:19 +00:00
* @ param string $act The current action . If " rss_edit " then and " update " button is used , otherwise " add " is used .
* @ param string $url The url of the feed that is being updated or NULL
* @ param int $rssid The dataabse id of the feed that is being updated or NULL
2005-08-01 14:02:46 +00:00
* @ param int $id The id of the course that is currently being viewed if applicable
2005-07-31 20:04:19 +00:00
* @ return string Either the form is printed directly and nothing is returned or the form is returned as a string
2005-05-15 02:46:15 +00:00
*/
2005-08-01 14:02:46 +00:00
function rss_get_form ( $act = 'none' , $url = '' , $rssid = '' , $preferredtitle = '' , $courseid = '' ) {
2005-05-15 02:46:15 +00:00
global $USER , $CFG , $_SERVER , $blockid , $blockaction ;
global $blogid ; //hackish, but if there is a blogid it would be good to preserve it
$stredit = get_string ( 'edit' );
$stradd = get_string ( 'add' );
2005-05-17 15:45:54 +00:00
$strupdatefeed = get_string ( 'updatefeed' , 'block_rss_client' );
$straddfeed = get_string ( 'addfeed' , 'block_rss_client' );
2005-05-15 02:46:15 +00:00
2005-08-01 14:02:46 +00:00
$returnstring = '<table align="center"><tbody><tr><td>' . " \n " ;
2005-05-15 02:46:15 +00:00
$returnstring .= '<form action="' . $CFG -> wwwroot . '/blocks/rss_client/block_rss_client_action.php" method="POST" name="block_rss">' . " \n " ;
2005-08-01 14:02:46 +00:00
2005-05-15 02:46:15 +00:00
if ( $act == 'rss_edit' ) {
$returnstring .= $strupdatefeed ;
} else {
$returnstring .= $straddfeed ;
}
2005-08-01 14:02:46 +00:00
2005-05-15 02:46:15 +00:00
$returnstring .= " \n " . '<br /><input type="text" size="60" maxlength="256" name="url" value="' ;
if ( $act == 'rss_edit' ) {
$returnstring .= $url ;
}
2005-08-01 14:02:46 +00:00
2005-05-15 02:46:15 +00:00
$returnstring .= '" />' . " \n " ;
2005-05-17 15:45:54 +00:00
$returnstring .= '<br />' . get_string ( 'customtitlelabel' , 'block_rss_client' );
2005-05-15 02:46:15 +00:00
$returnstring .= '<br /><input type="text" size="60" maxlength="64" name="preferredtitle" value="' ;
2005-08-01 14:02:46 +00:00
2005-05-15 02:46:15 +00:00
if ( $act == 'rss_edit' ) {
$returnstring .= $preferredtitle ;
}
2005-08-01 14:02:46 +00:00
$returnstring .= '" />' . " \n " ;
2005-05-15 02:46:15 +00:00
$returnstring .= '<input type="hidden" name="act" value="' ;
2005-08-01 14:02:46 +00:00
2005-05-15 02:46:15 +00:00
if ( $act == 'rss_edit' ) {
$returnstring .= 'updfeed' ;
} else {
$returnstring .= 'addfeed' ;
}
2005-08-01 14:02:46 +00:00
2005-05-15 02:46:15 +00:00
$returnstring .= '" />' . " \n " ;
if ( $act == 'rss_edit' ) {
$returnstring .= '<input type="hidden" name="rssid" value="' . $rssid . '" />' . " \n " ;
}
2005-08-01 14:02:46 +00:00
$returnstring .= '<input type="hidden" name="id" value="' . $courseid . '" />' . " \n " ;
2005-05-15 02:46:15 +00:00
$returnstring .= '<input type="hidden" name="blogid" value="' . $blogid . '" />' . " \n " ;
$returnstring .= '<input type="hidden" name="user" value="' . $USER -> id . '" />' . " \n " ;
$returnstring .= '<br /><input type="submit" value="' ;
$validatestring = " <a href= \" # \"
2005-05-17 15:45:54 +00:00
onClick = \ " window.open('http://feedvalidator.org/check.cgi?url='+document.block_rss.elements['url'].value,'validate','width=640,height=480,scrollbars=yes,status=yes,resizable=yes');return true; \" > " . get_string ( 'validatefeed' , 'block_rss_client' ) . " </a> " ;
2005-08-01 14:02:46 +00:00
2005-05-15 02:46:15 +00:00
if ( $act == 'rss_edit' ) {
$returnstring .= $stredit ;
} else {
$returnstring .= $stradd ;
}
2005-08-01 14:02:46 +00:00
2005-05-15 02:46:15 +00:00
$returnstring .= '" /> ' . $validatestring . '</form>' . " \n " ;
$returnstring .= '</td></tr></tbody></table>' . " \n " ;
return $returnstring ;
}
2005-03-25 19:01:32 +00:00
?>