Файл: concrete5.7.5.6/concrete/vendor/mlocati/concrete5-translation-library/src/Parser/Dynamic.php
Строк: 76
<?php
namespace C5TLParser;
/**
* Extract translatable strings from block type templates.
*/
class Dynamic extends C5TLParser
{
/**
* @see C5TLParser::getParserName()
*/
public function getParserName()
{
return function_exists('t') ? t('Block templates') : 'Block templates';
}
/**
* @see C5TLParser::canParseRunningConcrete5()
*/
public function canParseRunningConcrete5()
{
return true;
}
/**
* @see C5TLParser::parseRunningConcrete5Do()
*/
protected function parseRunningConcrete5Do(GettextTranslations $translations, $concrete5version, $subParsersFilter)
{
foreach ($this->getSubParsers() as $dynamicItemParser) {
if ((!is_array($subParsersFilter)) || in_array($dynamicItemParser->getDynamicItemsParserHandler(), $subParsersFilter, true)) {
$dynamicItemParser->parse($translations, $concrete5version);
}
}
}
/**
* Returns the fully-qualified class names of all the sub-parsers.
*
* @return array[C5TLParserDynamicItemDynamicItem]
*/
public function getSubParsers()
{
$result = array();
$dir = __DIR__.'/DynamicItem';
if (is_dir($dir) && is_readable($dir)) {
$matches = null;
foreach (scandir($dir) as $item) {
if (($item[0] !== '.') && preg_match('/^(.+).php$/i', $item, $matches) && ($matches[1] !== 'DynamicItem')) {
$fqClassName = '\'.__NAMESPACE__.'\DynamicItem\'.$matches[1];
$instance = new $fqClassName();
/* @var $instance C5TLParserDynamicItemDynamicItem */
$result[$instance->getDynamicItemsParserHandler()] = $instance;
}
}
}
return $result;
}
}