class FeedsFileFetcher in Feeds 7
Same name and namespace in other branches
- 6 plugins/FeedsFileFetcher.inc \FeedsFileFetcher
- 7.2 plugins/FeedsFileFetcher.inc \FeedsFileFetcher
Fetches data via HTTP.
Hierarchy
- class \FeedsConfigurable
- class \FeedsPlugin implements FeedsSourceInterface
- class \FeedsFetcher
- class \FeedsFileFetcher
- class \FeedsFetcher
- class \FeedsPlugin implements FeedsSourceInterface
Expanded class hierarchy of FeedsFileFetcher
11 string references to 'FeedsFileFetcher'
- FeedsCSVtoTermsTest::test in tests/
feeds_processor_term.test - Test node creation, refreshing/deleting feeds and feed items.
- FeedsCSVtoUsersTest::test in tests/
feeds_processor_user.test - Test node creation, refreshing/deleting feeds and feed items.
- FeedsMapperContentTestCase::test in tests/
feeds_mapper_content.test - Basic test loading a doulbe entry CSV file.
- FeedsMapperDateTestCase::test in tests/
feeds_mapper_date.test - Basic test loading a single entry CSV file.
- FeedsMapperEmfieldTestCase::test in tests/
feeds_mapper_emfield.test - Basic test loading a doulbe entry CSV file.
File
- plugins/
FeedsFileFetcher.inc, line 42 - Home of the FeedsFileFetcher and related classes.
View source
class FeedsFileFetcher extends FeedsFetcher {
/**
* Implements FeedsFetcher::fetch().
*/
public function fetch(FeedsSource $source) {
$source_config = $source
->getConfigFor($this);
return new FeedsFileBatch($source_config['source'], $source->feed_nid);
}
/**
* Source form.
*/
public function sourceForm($source_config) {
$form = array();
$form['fid'] = array(
'#type' => 'value',
'#value' => empty($source_config['fid']) ? 0 : $source_config['fid'],
);
$form['source'] = array(
'#type' => empty($this->config['direct']) ? 'value' : 'textfield',
'#title' => t('File'),
'#description' => t('Specify a file in the site\'s file system path or upload a file below.'),
'#default_value' => empty($source_config['source']) ? '' : $source_config['source'],
);
$form['upload'] = array(
'#type' => 'file',
'#title' => empty($this->config['direct']) ? t('File') : NULL,
'#description' => empty($source_config['source']) ? t('Select the file to be imported from your local system.') : t('Select a different file to be imported from your local system.'),
'#theme' => 'feeds_upload',
'#file_info' => empty($source_config['fid']) ? NULL : file_load($source_config['fid']),
'#size' => 10,
);
return $form;
}
/**
* Override parent::sourceFormValidate().
*/
public function sourceFormValidate(&$values) {
$feed_dir = 'public://feeds';
file_prepare_directory($feed_dir, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
// If there is a file uploaded, save it, otherwise validate input on
// file.
// @todo: Track usage of file, remove file when removing source.
if ($file = file_save_upload('feeds', array(
'file_validate_extensions' => array(
0 => $this->config['allowed_extensions'],
),
), $feed_dir)) {
$values['source'] = $file->uri;
$values['file'] = $file;
}
elseif (empty($values['source'])) {
form_set_error('feeds][source', t('Upload a file first.'));
}
elseif (strpos($values['source'], 'public://') !== 0) {
form_set_error('feeds][source', t('File needs to reside within the site\'s file directory, its path needs to start with public://.'));
}
}
/**
* Override parent::sourceSave().
*/
public function sourceSave(FeedsSource $source) {
$source_config = $source
->getConfigFor($this);
// If a new file is present, delete the old one and replace it with the new
// one.
if (isset($source_config['file'])) {
$file = $source_config['file'];
if (isset($source_config['fid'])) {
$this
->deleteFile($source_config['fid'], $source->feed_nid);
}
$file->status = FILE_STATUS_PERMANENT;
file_save($file);
file_usage_add($file, 'feeds', get_class($this), $source->feed_nid);
$source_config['fid'] = $file->fid;
unset($source_config['file']);
$source
->setConfigFor($this, $source_config);
}
}
/**
* Override parent::sourceDelete().
*/
public function sourceDelete(FeedsSource $source) {
$source_config = $source
->getConfigFor($this);
if (isset($source_config['fid'])) {
$this
->deleteFile($source_config['fid'], $source->feed_nid);
}
}
/**
* Override parent::configDefaults().
*/
public function configDefaults() {
return array(
'allowed_extensions' => 'txt csv xml',
'direct' => FALSE,
);
}
/**
* Override parent::configForm().
*/
public function configForm(&$form_state) {
$form = array();
$form['allowed_extensions'] = array(
'#type' => 'textfield',
'#title' => t('Allowed file extensions'),
'#description' => t('Allowed file extensions for upload.'),
'#default_value' => $this->config['allowed_extensions'],
);
$form['direct'] = array(
'#type' => 'checkbox',
'#title' => t('Supply path to file directly'),
'#description' => t('For experts. If checked users can specify a path to a file when importing rather than uploading a file. This is useful when files to be imported are already present on server.'),
'#default_value' => $this->config['direct'],
);
return $form;
}
/**
* Helper. Deletes a file.
*/
protected function deleteFile($fid, $feed_nid) {
if ($file = file_load($fid)) {
file_usage_delete($file, 'feeds', get_class($this), $feed_nid);
file_delete($file);
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
FeedsConfigurable:: |
protected | property | ||
FeedsConfigurable:: |
protected | property | CTools export enabled status of this object. | |
FeedsConfigurable:: |
protected | property | ||
FeedsConfigurable:: |
protected | property | ||
FeedsConfigurable:: |
public | function | Similar to setConfig but adds to existing configuration. | |
FeedsConfigurable:: |
public | function | Submission handler for configForm(). | 2 |
FeedsConfigurable:: |
public | function | Validation handler for configForm(). | 3 |
FeedsConfigurable:: |
public | function | Copy a configuration. | 1 |
FeedsConfigurable:: |
public | function | Determine whether this object is persistent and enabled. I. e. it is defined either in code or in the database and it is enabled. | 1 |
FeedsConfigurable:: |
public | function | Implements getConfig(). | 1 |
FeedsConfigurable:: |
public static | function | Instantiate a FeedsConfigurable object. | 1 |
FeedsConfigurable:: |
public | function | Set configuration. | |
FeedsConfigurable:: |
public | function | Override magic method __get(). Make sure that $this->config goes through getConfig() | |
FeedsFetcher:: |
public | function | Clear all caches for results for given source. | 1 |
FeedsFetcher:: |
public | function | Override import period settings. This can be used to force a certain import interval. | 1 |
FeedsFetcher:: |
public | function | Menu item definition for fetchers of this class. Note how the path component in the item definition matches the return value of FeedsFetcher::path(); | |
FeedsFetcher:: |
public | function | Construct a path for a concrete fetcher/source combination. The result of this method matches up with the general path definition in FeedsFetcher::menuItem(). For example usage look at FeedsHTTPFetcher. | |
FeedsFetcher:: |
public | function | Request handler invoked if callback URL is requested. Locked down by default. For a example usage see FeedsHTTPFetcher. | 1 |
FeedsFetcher:: |
public | function | Subscribe to a source. Only implement if fetcher requires subscription. | 1 |
FeedsFetcher:: |
public | function | Unsubscribe from a source. Only implement if fetcher requires subscription. | 1 |
FeedsFileFetcher:: |
public | function |
Override parent::configDefaults(). Overrides FeedsConfigurable:: |
|
FeedsFileFetcher:: |
public | function |
Override parent::configForm(). Overrides FeedsConfigurable:: |
|
FeedsFileFetcher:: |
protected | function | Helper. Deletes a file. | |
FeedsFileFetcher:: |
public | function |
Implements FeedsFetcher::fetch(). Overrides FeedsFetcher:: |
|
FeedsFileFetcher:: |
public | function |
Override parent::sourceDelete(). Overrides FeedsPlugin:: |
|
FeedsFileFetcher:: |
public | function |
Source form. Overrides FeedsPlugin:: |
|
FeedsFileFetcher:: |
public | function |
Override parent::sourceFormValidate(). Overrides FeedsPlugin:: |
|
FeedsFileFetcher:: |
public | function |
Override parent::sourceSave(). Overrides FeedsPlugin:: |
|
FeedsPlugin:: |
public static | function | Get all available plugins. | |
FeedsPlugin:: |
public static | function | Gets all available plugins of a particular type. | |
FeedsPlugin:: |
public static | function | Determines whether given plugin is derived from given base plugin. | |
FeedsPlugin:: |
public | function |
Returns TRUE if $this->sourceForm() returns a form. Overrides FeedsSourceInterface:: |
|
FeedsPlugin:: |
protected static | function | Loads on-behalf implementations from mappers/ directory. | |
FeedsPlugin:: |
public | function |
Save changes to the configuration of this object.
Delegate saving to parent (= Feed) which will collect
information from this object by way of getConfig() and store it. Overrides FeedsConfigurable:: |
|
FeedsPlugin:: |
public | function |
Implements FeedsSourceInterface::sourceDefaults(). Overrides FeedsSourceInterface:: |
1 |
FeedsPlugin:: |
public static | function | Determines the type of a plugin. | |
FeedsPlugin:: |
protected | function |
Constructor. Overrides FeedsConfigurable:: |