Exemplo n.º 1
0
 function validation($data, $files)
 {
     $errors = parent::validation($data, $files);
     $rss = new moodle_simplepie();
     // set timeout for longer than normal to try and grab the feed
     $rss->set_timeout(10);
     $rss->set_feed_url($data['url']);
     $rss->set_autodiscovery_cache_duration(0);
     $rss->set_autodiscovery_level(SIMPLEPIE_LOCATOR_NONE);
     $rss->init();
     if ($rss->error()) {
         $errors['url'] = get_string('errorloadingfeed', 'block_rss_client', $rss->error());
     } else {
         $this->title = $rss->get_title();
         $this->description = $rss->get_description();
     }
     return $errors;
 }
 public function definition_after_data()
 {
     global $CFG, $COURSE;
     $mform =& $this->_form;
     $name = trim($mform->getElementValue('name'));
     $description = trim($mform->getElementValue('description'));
     $url = $mform->getElementValue('url');
     if (empty($name) || empty($description)) {
         $rss = new moodle_simplepie($url);
         if (empty($name) && $rss->get_title()) {
             $mform->setDefault('name', $rss->get_title());
         }
         if (empty($description) && $rss->get_description()) {
             $mform->setDefault('description', $rss->get_description());
         }
     }
     if ($id = $mform->getElementValue('id')) {
         $mform->setDefault('autotags', implode(',', tag_get_tags_array('blog_external', $id)));
         $mform->freeze('url');
         if ($mform->elementExists('filtertags')) {
             $mform->freeze('filtertags');
         }
         // TODO change the filtertags element to a multiple select, using the tags of the external blog
         // Use $rss->get_channel_tags()
     }
 }
Exemplo n.º 3
0
     $newexternal->filtertags = !empty($data->filtertags) ? $data->filtertags : null;
     $newexternal->timemodified = time();
     $newexternal->id = $DB->insert_record('blog_external', $newexternal);
     core_tag_tag::set_item_tags('core', 'blog_external', $newexternal->id, context_user::instance($newexternal->userid), $data->autotags);
     blog_sync_external_entries($newexternal);
     // Log this action.
     $eventparms = array('context' => $context, 'objectid' => $newexternal->id, 'other' => array('url' => $newexternal->url));
     $event = \core\event\blog_external_added::create($eventparms);
     $event->trigger();
     break;
 case 'edit':
     if ($data->id && $DB->record_exists('blog_external', array('id' => $data->id))) {
         $rss = new moodle_simplepie($data->url);
         $external->id = $data->id;
         $external->name = empty($data->name) ? $rss->get_title() : $data->name;
         $external->description = empty($data->description) ? $rss->get_description() : $data->description;
         $external->userid = $USER->id;
         $external->url = $data->url;
         $external->filtertags = !empty($data->filtertags) ? $data->filtertags : null;
         $external->timemodified = time();
         $DB->update_record('blog_external', $external);
         // Log this action.
         $eventparms = array('context' => $context, 'objectid' => $external->id, 'other' => array('url' => $external->url));
         $event = \core\event\blog_external_updated::create($eventparms);
         $event->trigger();
         core_tag_tag::set_item_tags('core', 'blog_external', $external->id, context_user::instance($external->userid), $data->autotags);
     } else {
         print_error('wrongexternalid', 'blog');
     }
     break;
 default: