function define_itemform(&$mform, &$item) { $mform->addElement('header', 'iteminfo', get_string('iteminfo', 'podcaster')); $mform->addElement('text', 'author', get_string('author', 'podcaster'), array('size' => '32')); $mform->addElement('textarea', 'category', get_string('category', 'podcaster'), array('cols' => '32', 'rows' => '5')); $mform->addElement('text', 'comments', get_string('comments', 'podcaster'), array('size' => '32')); $mform->addElement('text', 'source', get_string('source', 'podcaster'), array('size' => '32')); $mform->addElement('text', 'sourceurl', get_string('sourceurl', 'podcaster'), array('size' => '32')); $mform->addElement('header', 'enclosureinfo', get_string('enclosureinfo', 'podcaster')); if ($item->channelObj->repository) { $repository =& podcaster_repository::create_repository($item->channelObj->repository); $scheme = $repository->prefix; } else { error('Invalid channel, no repository set'); } $mform->addElement('chooserepositoryfile', 'enclosure', get_string('enclosure', 'podcaster'), array('repository' => $scheme)); }
<?php require_once '../../../config.php'; // check if version is supported $filesversion = NULL; if ($CFG->version >= 2007021500 && $CFG->version < 2007021600) { // currently the only supported version $filesversion = '1.8'; } else { if ($CFG->version >= 2007101500 && $CFG->version < 2007101600) { $filesversion = '1.9'; } } if ($filesversion == NULL) { error('Incompatible Moodle version'); } require_once $CFG->dirroot . '/mod/podcaster/locallib.php'; $repository = podcaster_repository::create_repository(optional_param('repository', '', PARAM_RAW)); if (!$repository) { error('Repository could not be setup'); } include_once $CFG->dirroot . '/mod/podcaster/files/versions/' . $filesversion . '/index.php';
function init($path) { if ($this->plugin == NULL) { $scheme = repository_get_scheme($path); $obj =& podcaster_repository::create_repository($scheme); foreach ($obj as $key => $value) { // if (!isset ($this->$key)) { $this->{$key} = $value; // } } } else { } }
function &get_repository($rssRepos = false) { global $CFG; if ($rssRepos) { if ($this->rssRepositoryObj === NULL) { // no yet initialized do { $this->rssRepositoryObj = false; if (!isset($this->repository) || !$this->repository) { break; } $this->rssRepositoryObj = podcaster_repository::create_repository($this->repository, false, true); } while (false); } return $this->rssRepositoryObj; } else { if ($this->repositoryObj === NULL) { // no yet initialized do { $this->repositoryObj = false; if (!isset($this->repository) || !$this->repository) { break; } $this->repositoryObj = podcaster_repository::create_repository($this->repository); } while (false); } return $this->repositoryObj; } }
/** * Factory */ function &create_repository($data, $disabled = false, $rss = false) { global $CFG; require_once $CFG->dirroot . '/mod/podcaster/lib/repository.php'; if (is_object($data)) { $info = $data; } else { // is_int the PHP Way if ($data === 0 || $data * 1 !== 0) { if (!$disabled) { if (($info = get_record('podcaster_repository', 'id', $data, 'enabled', '1')) == false) { return $info; } } else { if (($info = get_record('podcaster_repository', 'id', $data)) == false) { return $info; } } } elseif (!$disabled) { if (($info = get_record('podcaster_repository', 'prefix', $data, 'enabled', '1')) == false) { return $info; } } else { if (($info = get_record('podcaster_repository', 'prefix', $data)) == false) { return $info; } } } if ($rss && $info->id != $info->rss && $info->rss != 0) { $obj =& podcaster_repository::create_repository($info->rss, $disabled, false); return $obj; } $obj =& podcaster_repositoryimpl::_singleton($info); return $obj; }
function postinstall() { global $CFG; include_once $CFG->dirroot . '/mod/podcaster/lib/public.php'; // repository default parameter $repositories = get_records('podcaster_repository'); foreach ($repositories as $r) { if (!$r->params) { $rep =& podcaster_repository::create_repository($r->prefix, true); if (!$rep) { continue; } $r->params = $rep->get_default_params(); update_record('podcaster_repository', $r); } } podcaster_admin::default_config(); }