Вход Регистрация
Файл: 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(), $subParsersFiltertrue)) {
                
$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;
    }
}
Онлайн: 0
Реклама