function patterns_parser_build_formats_index in Patterns 7
Same name and namespace in other branches
- 7.2 includes/parser/parser.inc \patterns_parser_build_formats_index()
Register all available patterns parsers and returns an associative array.
Invokes all the modules implementing <hook_patterns_parser>.
Modules implenting such hook are expected to return an associative array of the type:
$parser = array(); $parser['format'] = 'php; $parser['parser'] = 'patterns_phpparser'; $parser['overwrite'] = TRUE; // (Optional) Default is TRUE
Patterns will then call
- <patterns_phpparser_parse()>
- <patterns_phpparser_dump()>
- <patterns_phpparser_load()>
for performing parsing operations with the PHP format.
Parameters
bool $reset (optional) If TRUE, forces to rebuild the index.:
Return value
array $patterns_formats The associative array of available parsers.
5 calls to patterns_parser_build_formats_index()
- patterns_first_install in includes/
forms/ first_install.inc - patterns_info_parsers in includes/
forms/ info.inc - Displays a summary of Patterns parsers
- patterns_parser_exists in includes/
parser/ parser.inc - Checks wheter a parser is defined for a given format.
- patterns_parser_get_formats in includes/
parser/ parser.inc - Returns an array of formats currently supported by the patterns module.
- patterns_parser_get_parser_function in includes/
parser/ parser.inc - Checks whether a parser is defined for a given format, and returns the corresponding function name for the requested action.
File
- includes/
parser/ parser.inc, line 38
Code
function patterns_parser_build_formats_index($reset = TRUE) {
static $patterns_formats;
if (!$reset) {
return $patterns_formats;
}
if (!is_array($patterns_formats)) {
$patterns_formats = array();
}
$modules = module_implements('patterns_parser');
foreach ($modules as $module) {
$parser = module_invoke($module, 'patterns_parser');
if (!is_array($parser) || !isset($parser['parser']) || !isset($parser['format'])) {
continue;
}
$format = $parser['format'];
$parser = $parser['parser'];
$ow = isset($parser['overwrite']) ? isset($parser['overwrite']) : TRUE;
// overwrite by default
// If the parser already exists and we are not
// allowed to overwrite it, contintue
if (!$ow && patterns_parser_exists($format, FALSE)) {
continue;
}
$patterns_formats[$format] = $parser;
}
return $patterns_formats;
}