function feed_import_edit_filter_form in Feed Import 7.3
Same name and namespace in other branches
- 7 feed_import.module \feed_import_edit_filter_form()
- 7.2 feed_import.module \feed_import_edit_filter_form()
Edit filter form
1 string reference to 'feed_import_edit_filter_form'
- feed_import_menu in ./
feed_import.module - Implements hook_menu().
File
- ./
feed_import.module, line 1709 - User interface, cron functions for feed_import module
Code
function feed_import_edit_filter_form($form, &$form_state, $feed, $f) {
// Set page title.
drupal_set_title(t('Edit @filter - @name', array(
'@filter' => $f,
'@name' => $feed->name,
)), PASS_THROUGH);
$fields = array_keys($feed->settings['fields']);
if (!isset($form_state['#item_filter'])) {
// Save filter.
$form_state['#item_filter'] = $f;
// Save fields to be filtered.
$form_state['#filter_fields'] =& $fields;
}
$form['#filter_fields'] = $form_state['#filter_fields'];
$param_field = $feed->settings['filter']['options']['param'];
$help = array();
$help[0] = t('Filter name') . ': ' . t('A name given by you for this filter.');
$help[1] = t('Filter function') . ': ' . t('Name of the php function to apply on field value.') . ' ';
$help[1] .= t('You may also use a static function like this: ClassName::functionName.') . ' ';
$help[1] .= t('Also check our provided filters in FeedImportFilter class.');
$help[2] = t('Function params') . ': ' . t('Enter here params (one per line) for php function.') . ' ';
$help[2] .= t('Enter "@param_field" (without quotes) were you want to be sent field value as parameter.', array(
'@param_field' => $param_field,
)) . ' ';
$help[3] = t('Filtered value is the resulted string of all function calls from top to bottom.');
$help = implode('<br />', $help);
$form['help'] = array(
'#markup' => &$help,
);
$vars = array(
'@name' => $feed->name,
'@filter' => $form_state['#item_filter'] == 'filters' ? t('filters') : t('pre-filters'),
);
$form['machine_name'] = array(
'#type' => 'value',
'#value' => $feed->machine_name,
);
if (isset($form_state['values'])) {
foreach ($form_state['#filter_fields'] as &$field) {
$filters = array();
$filter[$field]['#tree'] = TRUE;
$pos = 0;
if (!empty($form_state['values']['table_content'][$field])) {
foreach ($form_state['values']['table_content'][$field] as &$filter) {
$vars = array(
'name' => $filter['name'],
'function' => $filter['function'],
'params' => _feed_import_lines($filter['params']),
);
$filters[$field][$pos] = feed_import_new_filter($pos, $vars);
$pos++;
}
}
// Add new field.
if ($form_state['#add_filter'] == $field) {
$vars = array(
'name' => '',
'function' => '',
'params' => array(
$param_field,
),
);
$filters[$field][$pos] = feed_import_new_filter($pos, $vars);
}
$form['container_' . $field] = array(
'#type' => 'fieldset',
'#title' => check_plain($field),
'#collapsible' => TRUE,
'#collapsed' => $field != $form_state['#add_filter'] && $field != $form_state['#delete_filter'],
'table_content' => array(
'#tree' => TRUE,
) + $filters,
'actions' => feed_import_add_filter_actions($field),
);
}
}
else {
foreach ($feed->settings['fields'] as $field => &$val) {
$filters = array();
$filters[$field]['#tree'] = TRUE;
$pos = 0;
foreach ($val[$form_state['#item_filter']] as $name => &$filter) {
$vars = array(
'name' => $name,
'function' => $filter['function'],
'params' => $filter['params'],
);
$filters[$field][$pos] = feed_import_new_filter($pos, $vars);
$pos++;
}
$form['container_' . $field] = array(
'#type' => 'fieldset',
'#title' => check_plain($field),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'table_content' => array(
'#tree' => TRUE,
) + $filters,
'actions' => feed_import_add_filter_actions($field),
);
}
}
if ($fields) {
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save filters'),
'#prefix' => t('Your filters will be saved only after you press the button below.') . '<br />',
);
}
return $form;
}