rex_fragment::parse PHP Method

parse() public method

Parses the variables of the fragment into the file $filename.
public parse ( string $filename, boolean $delete_whitespaces = true ) : string
$filename string the filename of the fragment to parse
$delete_whitespaces boolean
return string
    public function parse($filename, $delete_whitespaces = true)
    {
        if (!is_string($filename)) {
            throw new InvalidArgumentException(sprintf('Expecting $filename to be a string, %s given!', gettype($filename)));
        }
        $this->filename = $filename;
        foreach (self::$fragmentDirs as $fragDir) {
            $fragment = $fragDir . $filename;
            if (is_readable($fragment)) {
                ob_start();
                if ($delete_whitespaces) {
                    preg_replace('/(?:(?<=\\>)|(?<=\\/\\>))(\\s+)(?=\\<\\/?)/', '', require $fragment);
                } else {
                    require $fragment;
                }
                $content = ob_get_clean();
                if ($this->decorator) {
                    $this->decorator->setVar('rexDecoratedContent', $content, false);
                    $content = $this->decorator->parse($this->decorator->filename);
                }
                return $content;
            }
        }
        throw new rex_exception(sprintf('Fragmentfile "%s" not found!', $filename));
    }

Usage Example

Exemplo n.º 1
0
 public static function getWidget($id, $name, $value, array $args = [])
 {
     $art_name = '';
     $art = rex_article::get($value);
     $category = 0;
     // Falls ein Artikel vorausgewählt ist, dessen Namen anzeigen und beim öffnen der Linkmap dessen Kategorie anzeigen
     if ($art instanceof rex_article) {
         $art_name = $art->getName();
         $category = $art->getCategoryId();
     }
     $open_params = '&clang=' . rex_clang::getCurrentId();
     if ($category || isset($args['category']) && ($category = (int) $args['category'])) {
         $open_params .= '&category_id=' . $category;
     }
     $class = ' rex-disabled';
     $open_func = '';
     $delete_func = '';
     if (rex::getUser()->getComplexPerm('structure')->hasStructurePerm()) {
         $class = '';
         $open_func = 'openLinkMap(\'REX_LINK_' . $id . '\', \'' . $open_params . '\');';
         $delete_func = 'deleteREXLink(' . $id . ');';
     }
     $e = [];
     $e['field'] = '<input class="form-control" type="text" name="REX_LINK_NAME[' . $id . ']" value="' . htmlspecialchars($art_name) . '" id="REX_LINK_' . $id . '_NAME" readonly="readonly" /><input type="hidden" name="' . $name . '" id="REX_LINK_' . $id . '" value="' . $value . '" />';
     $e['functionButtons'] = '
                     <a href="#" class="btn btn-popup' . $class . '" onclick="' . $open_func . 'return false;" title="' . rex_i18n::msg('var_link_open') . '"><i class="rex-icon rex-icon-open-linkmap"></i></a>
                     <a href="#" class="btn btn-popup' . $class . '" onclick="' . $delete_func . 'return false;" title="' . rex_i18n::msg('var_link_delete') . '"><i class="rex-icon rex-icon-delete-link"></i></a>';
     $fragment = new rex_fragment();
     $fragment->setVar('elements', [$e], false);
     $media = $fragment->parse('core/form/widget.php');
     return $media;
 }
All Usage Examples Of rex_fragment::parse