Пример #1
0
 public function testCopyToExistingDir()
 {
     $orig = $this->getPath('orig2');
     $copy = $this->getPath('copy2');
     // dir1 only in /orig
     rex_dir::create($orig . '/dir1');
     // dir2 only in /copy
     rex_dir::create($copy . '/dir2');
     // file1 only in /orig
     rex_file::put($orig . '/file1.txt', '');
     rex_file::put($orig . '/dir3/file1.txt', '');
     // file2 with newest version in /orig
     rex_file::put($copy . '/file2.txt', 'file2_old');
     touch($copy . '/file2.txt', 1);
     rex_file::put($copy . '/dir3/file2.txt', 'file2_old');
     touch($copy . '/dir3/file2.txt', 1);
     rex_file::put($orig . '/file2.txt', 'file2_new');
     rex_file::put($orig . '/dir3/file2.txt', 'file2_new');
     $this->assertTrue(rex_dir::copy($orig, $copy), 'copy() returns true on success');
     $this->assertTrue(is_dir($copy . '/dir1'), 'subdir of source dir exists in destination dir');
     $this->assertTrue(is_dir($copy . '/dir2'), 'existsing subdir of destination dir still exists');
     $this->assertTrue(is_file($copy . '/file1.txt'), 'file of source dir exists in destination dir');
     $this->assertTrue(is_file($copy . '/dir3/file1.txt'), 'existing file of destination dir still exists');
     $this->assertEquals('file2_new', rex_file::get($copy . '/file2.txt'), 'existing file in destination dir will be replaced');
     $this->assertEquals('file2_new', rex_file::get($copy . '/dir3/file2.txt'), 'existing file in destination dir will be replaced');
 }
Пример #2
0
 private function updateVersion()
 {
     $file = rex_path::core('boot.php');
     $content = rex_file::get($file);
     $content = preg_replace('/(?<=^rex::setProperty\\(\'version\', \').*?(?=\')/m', $this->version, $content);
     rex_file::put($file, $content);
 }
Пример #3
0
 public function getTemplate()
 {
     $file = $this->getFile();
     if (!$file) {
         return false;
     }
     return rex_file::get($file);
 }
Пример #4
0
 /**
  * Compile a fragment.
  *
  * @param string $value
  */
 public function compile($file)
 {
     if ($this->isExpired($file)) {
         $content = rex_file::get($file);
         if (rex_file::put($this->getCompiledFile($file), $this->compileString($content)) === false) {
             throw new rex_exception('Unable to generate fragment ' . $file . '!');
         }
     }
     return $this->getCompiledFile($file);
 }
Пример #5
0
    /**
     * @depends testConstruct
     */
    public function testAdd()
    {
        $path = $this->getPath('test3.log');
        $log = new rex_log_file($path);
        $log->add(['test1a', 'test1b']);
        $log->add(['test2a', 'test2b', 'test2c']);
        $format = <<<'EOF'
%i-%i-%i %i:%i:%i | test1a | test1b
%i-%i-%i %i:%i:%i | test2a | test2b | test2c
EOF;
        $this->assertStringMatchesFormat($format, rex_file::get($path));
    }
Пример #6
0
echo rex_view::title('yform');
if (rex::getUser()->isAdmin()) {
    $content = '';
    $searchtext = 'module:yform_basic_output';
    $gm = rex_sql::factory();
    $gm->setQuery('select * from rex_module where output LIKE "%' . $searchtext . '%"');
    $module_id = 0;
    $module_name = '';
    foreach ($gm->getArray() as $module) {
        $module_id = $module['id'];
        $module_name = $module['name'];
    }
    $yform_module_name = 'YForm Formbuilder';
    if (rex_request('install', "integer") == 1) {
        $input = rex_file::get(rex_path::addon('yform', 'module/module_input.inc'));
        $output = rex_file::get(rex_path::addon('yform', 'module/module_output.inc'));
        $mi = rex_sql::factory();
        // $mi->debugsql = 1;
        $mi->setTable('rex_module');
        $mi->setValue('input', $input);
        $mi->setValue('output', $output);
        if ($module_id == rex_request('module_id', 'integer', -1)) {
            $mi->setWhere('id="' . $module_id . '"');
            $mi->update();
            echo rex_view::success('Modul "' . $module_name . '" wurde aktualisiert');
        } else {
            $mi->setValue('name', $yform_module_name);
            $mi->insert();
            $module_id = (int) $mi->getLastId();
            $module_name = $yform_module_name;
            echo rex_view::success('yform Modul wurde angelegt unter "' . $yform_module_name . '"');
Пример #7
0
 static function save($name, $success, $message = '', $id = null)
 {
     global $REX;
     $year = date('Y');
     $month = date('m');
     // in den Log-Dateien festes Datumsformat verwenden
     // wird bei der Ausgabe entsprechend der lokalen Einstellungen umgewandelt
     // rex_formatter nicht verwenden, da im Frontend nicht verfuegbar
     $newline = date('Y-m-d H:i');
     if ($success) {
         $newline .= ' | SUCCESS | ';
     } else {
         $newline .= ' |  ERROR  | ';
     }
     if (!$id) {
         $id = '--';
     } else {
         $id = str_pad($id, 2, ' ', STR_PAD_LEFT);
     }
     $newline .= $id . ' | ' . $name;
     if ($message) {
         $newline .= ' | ' . str_replace(array("\r\n", "\n"), ' | ', trim(strip_tags($message)));
     }
     $dir = REX_CRONJOB_LOG_FOLDER . $year;
     $content = '';
     $file = $dir . '/' . $year . '-' . $month . '.log';
     if (file_exists($file)) {
         $content = rex_file::get($file);
     }
     $content = $newline . "\n" . $content;
     return rex_file::put($file, $content);
 }
Пример #8
0
 public function testCopyToDir()
 {
     $orig = $this->getPath('file.txt');
     $copyDir = $this->getPath('copy');
     $copyFile = $this->getPath('copy/file.txt');
     $content = 'test';
     rex_file::put($orig, $content);
     rex_dir::create($copyDir);
     $this->assertTrue(rex_file::copy($orig, $copyDir), 'copy() returns true on success');
     $this->assertEquals($content, rex_file::get($copyFile), 'content of new file is the same as of original file');
 }
Пример #9
0
<?php

$file = rex_file::get(rex_path::addon('focuspoint', 'license.md'));
$Parsedown = new Parsedown();
$content = $Parsedown->text($file);
$fragment = new rex_fragment();
$fragment->setVar('class', 'info', false);
$fragment->setVar('title', $this->i18n('licence'), false);
$fragment->setVar('body', $content, false);
echo $fragment->parse('core/page/section.php');
Пример #10
0
<?php

$file = rex_file::get(rex_path::addon('focuspoint', 'readme.md'));
$Parsedown = new Parsedown();
$content = $Parsedown->text($file);
$fragment = new rex_fragment();
$fragment->setVar('class', 'info', false);
$fragment->setVar('title', $this->i18n('info'), false);
$fragment->setVar('body', $content, false);
echo $fragment->parse('core/page/section.php');
Пример #11
0
 /**
  * Loads the translation definitions of the given file.
  *
  * @param string $file Path to the file
  *
  * @return bool TRUE on success, FALSE on failure
  */
 private static function loadFile($file)
 {
     if (($content = rex_file::get($file)) && preg_match_all("/^([^\\s]*)\\s*=\\s*(.*\\S)?\\s*\$/m", $content, $matches, PREG_SET_ORDER)) {
         foreach ($matches as $match) {
             self::addMsg($match[1], $match[2]);
         }
     }
 }
Пример #12
0
<?php

$func = rex_request('func', 'string');
if ($func == 'import_beispieldaten') {
    $current_user = rex::getUser()->getId();
    $sql = rex_sql::factory();
    //$sql->setDebug();
    $sql->setQuery('SELECT * FROM rex_user WHERE id = ' . $current_user);
    $user = $sql->getValue('name');
    $qry = "\n\n  -- Aufgaben\n\n  INSERT IGNORE `rex_aufgaben` VALUES\n      (1, 'Fav Icon erstellen', 'Wird immer benötigt',1,1,0,1,now(),now(),'{$user}','{$user}','',''),\n      (2, 'Touch Icon erstellen', '',1,1,0,1,now(),now(),'{$user}','{$user}','',''),\n      (3, 'Meta Infos erstellen', 'Sind Ortsbezogene meta Infos wichtig?',1,1,0,1,now(),now(),'{$user}','{$user}','',''),\n      (4, 'Print.css entwickeln', 'Wird immer vergessen',1,1,0,1,now(),now(),'{$user}','{$user}','',''),\n      (5, 'robots.txt prüfen', ':-)',7,1,0,1,now(),now(),'{$user}','{$user}','','');\n\n  -- Kategorien\n\n  INSERT IGNORE `rex_aufgaben_categories` VALUES\n      (1,'Grundlagen','#9EAEC2'),\n      (2,'Backend','#588D76'),\n      (3,'Design','#8D588A'),\n      (4,'Funktion','#9EAEC2'),\n      (5,'Fehler','#72A3A7'),\n      (6,'Wunsch','#FFD83D'),\n      (7,'SEO','#437047');\n\n-- User Settings\n\n  INSERT IGNORE `rex_aufgaben_user_settings` VALUES (1,{$current_user},5);\n  ";
    $sql = rex_sql::factory();
    // $sql->setDebug();
    $sql->setQuery($qry);
    echo '<div class="alert alert-success">Der Beispieldaten wurden eingefügt.</div>';
    $func = '';
}
$file = rex_file::get(rex_path::addon('aufgaben', 'README.md'));
$Parsedown = new Parsedown();
$content = '<div id="aufgaben">' . $Parsedown->text($file);
$content .= '
<hr/>
<p><a href="index.php?page=aufgaben/info&amp;func=import_beispieldaten"><i class="rex-icon rex-icon-module"></i> Beispieldaten importieren</a>
</p>
</div>
';
$fragment = new rex_fragment();
$fragment->setVar('title', 'Hilfe');
$fragment->setVar('body', $content, false);
echo $fragment->parse('core/page/section.php');
Пример #13
0
<?php

$file = rex_file::get(rex_path::addon('aufgaben', 'CHANGELOG.md'));
$Parsedown = new Parsedown();
$content = '<div id="aufgaben">' . $Parsedown->text($file) . '</div>';
$fragment = new rex_fragment();
$fragment->setVar('title', $this->i18n('aufgaben_changelog'));
$fragment->setVar('body', $content, false);
echo $fragment->parse('core/page/section.php');
Пример #14
0
<?php

$file = rex_file::get(rex_path::addon('out5', 'README.md'));
$Parsedown = new Parsedown();
$content = $Parsedown->text($file);
$fragment = new rex_fragment();
$fragment->setVar('title', 'Hilfe');
$fragment->setVar('body', $content, false);
echo $fragment->parse('core/page/section.php');
$file = rex_file::get(rex_path::addon('out5', 'CHANGELOG.md'));
$Parsedown = new Parsedown();
$content = $Parsedown->text($file);
$fragment = new rex_fragment();
$fragment->setVar('title', 'Changelog');
$fragment->setVar('body', $content, false);
echo $fragment->parse('core/page/section.php');
$file = rex_file::get(rex_path::addon('out5', 'LICENSE.md'));
$Parsedown = new Parsedown();
$content = $Parsedown->text($file);
$fragment = new rex_fragment();
$fragment->setVar('title', 'Lizenz');
$fragment->setVar('body', $content, false);
echo $fragment->parse('core/page/section.php');
Пример #15
0
if ($subpage == 'help') {
    $package = rex_package::get(rex_request('package', 'string'));
    $name = $package->getPackageId();
    $version = $package->getVersion();
    $author = $package->getAuthor();
    $supportPage = $package->getSupportPage();
    if (is_readable($package->getPath('help.php'))) {
        if (!$package->isAvailable() && is_readable($package->getPath('lang'))) {
            rex_i18n::addDirectory($package->getPath('lang'));
        }
        ob_start();
        $package->includeFile('help.php');
        $content .= ob_get_clean();
    } elseif (is_readable($package->getPath('README.md'))) {
        $fragment = new rex_fragment();
        $fragment->setVar('content', rex_markdown::factory()->parse(rex_file::get($package->getPath('README.md'))), false);
        $content .= $fragment->parse('core/page/docs.php');
    } else {
        $content .= rex_view::info(rex_i18n::msg('package_no_help_file'));
    }
    $fragment = new rex_fragment();
    $fragment->setVar('title', rex_i18n::msg('package_help') . ' ' . $name, false);
    $fragment->setVar('body', $content, false);
    echo $fragment->parse('core/page/section.php');
    $credits = '';
    $credits .= '<dl class="dl-horizontal">';
    $credits .= '<dt>' . rex_i18n::msg('credits_name') . '</dt><dd>' . htmlspecialchars($name) . '</dd>';
    if ($version) {
        $credits .= '<dt>' . rex_i18n::msg('credits_version') . '</dt><dd>' . $version . '</dd>';
    }
    if ($author) {
Пример #16
0
<?php

$file = rex_file::get(rex_path::addon('focuspoint', 'changelog.md'));
$Parsedown = new Parsedown();
$content = $Parsedown->text($file);
$fragment = new rex_fragment();
$fragment->setVar('class', 'info', false);
$fragment->setVar('title', $this->i18n('changelog'), false);
$fragment->setVar('body', $content, false);
echo $fragment->parse('core/page/section.php');
Пример #17
0
<?php

$fragment = new rex_fragment();
$content = '
<p>Folgendes im Template einfügen:</p>
';
$content .= rex_string::highlight(rex_file::get(rex_path::addon('focuspoint', 'pages/info_template.inc')));
$content .= '
<p>Bei der Installation wurde ein Effekt beim Media Manager AddOn hinzugefügt. Sollte dieser fehlen, bitte ein reinstall durchführen</p>
<p>Diese Ausgabe dient als Beispiel für ein Modul:</p>

';
$content .= rex_string::highlight(rex_file::get(rex_path::addon('focuspoint', 'pages/info_modul.inc')));
$fragment = new rex_fragment();
$fragment->setVar('class', 'info', false);
$fragment->setVar('title', $this->i18n('help'), false);
$fragment->setVar('body', $content, false);
echo $fragment->parse('core/page/section.php');
Пример #18
0
        $label = rex_i18n::msg('lang');
        $langs[$locale] = '<a class="list-group-item" href="' . rex_url::backendPage('setup', ['step' => 2, 'lang' => $locale]) . '">' . $label . '</a>';
    }
    rex_i18n::setLocale($saveLocale, false);
    echo rex_view::title(rex_i18n::msg('setup_100'));
    $content = '<div class="list-group">' . implode('', $langs) . '</div>';
    $fragment = new rex_fragment();
    $fragment->setVar('heading', rex_i18n::msg('setup_101'), false);
    $fragment->setVar('content', $content, false);
    echo $fragment->parse('core/page/section.php');
}
// ---------------------------------- Step 2 . license
if ($step == 2) {
    rex::setProperty('lang', $lang);
    $license_file = rex_path::base('LICENSE.md');
    $license = '<p>' . nl2br(rex_file::get($license_file)) . '</p>';
    $content = rex_i18n::rawMsg('setup_202');
    $content .= $license;
    $buttons = '<a class="btn btn-setup" href="' . rex_url::backendPage('setup', ['step' => 3, 'lang' => $lang]) . '">' . rex_i18n::msg('setup_203') . '</a>';
    echo rex_view::title(rex_i18n::msg('setup_200'));
    $fragment = new rex_fragment();
    $fragment->setVar('heading', rex_i18n::msg('setup_201'), false);
    $fragment->setVar('body', $content, false);
    $fragment->setVar('buttons', $buttons, false);
    echo $fragment->parse('core/page/section.php');
}
// ---------------------------------- Step 3 . Perms, Environment
$error_array = [];
$success_array = [];
$errors = rex_setup::checkEnvironment();
if (count($errors) > 0) {
Пример #19
0
<?php

/**
 * This file is part of the Dao Var package.
 *
 * @author (c) Thomas Blum <*****@*****.**>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
$content = '<div class="docs"><article>' . markdown(rex_file::get(rex_path::addon('dao_var', 'README.md'))) . '</article></div>';
$content = str_replace(['<pre>', '<code>'], ['<pre class="language-php">', '<code class="language-php">'], $content);
$fragment = new \rex_fragment();
//$fragment->setVar('title', $this->i18n('title'), false);
$fragment->setVar('body', $content, false);
$content = $fragment->parse('core/page/section.php');
echo $content;
$vars = [['var' => 'REX_DAO_LINK[]', 'inp' => ['REX_DAO_LINK[id="1" widget="1"]'], 'out' => ['REX_DAO_LINK[id="1"]' => '{"label":"$LABEL$","value":"$URL_ID$","name":"$ARTICLE_NAME$"}', 'REX_DAO_LINK[id="1" output="url"]' => '$URL$', 'REX_DAO_LINK[id="1" output="link"]' => '<a href="$URL$">$LABEL$</a>', 'REX_DAO_LINK[id="1" output="link" class="btn"]' => '<a class="btn" href="$URL$">$LABEL$</a>']], ['var' => 'REX_DAO_SELECT[]', 'inp' => ['REX_DAO_SELECT[id="1" widget="1" options="Please select,H1=h1,H2=h2"]', 'REX_DAO_SELECT[id="1" widget="1" options="Please select|optGroupA:Heading 1=h1,Heading 2=h2|optGroupB:Heading 3=h3,Heading 4=h4"]', 'REX_DAO_SELECT[id="1" widget="1" options="Please select|America:Canada=ca,USA=us|Europe:Germany=de,Danmark=dk" output="form:3:9" label="Country"]', 'REX_DAO_SELECT[id="1" widget="1" options="SELECT name, id FROM rex_article ORDER BY name" output="form:3:9" label="Select an article"]', 'REX_DAO_SELECT[id="1" widget="1" options="German articles:SELECT name, id FROM rex_article WHERE clang_id = 1 ORDER BY name|English articles:SELECT name, id FROM rex_article WHERE clang_id = 2 ORDER BY name" output="form:3:9" label="Select an article"]', 'options ' . "\n" . ' > key=value Pair > Comma "," separated ' . "\n" . ' > optgroups > Pipe "|" separated ' . "\n" . ' > optgroup label > colon ":" separated from the pairs'], 'out' => ['REX_DAO_SELECT[id="1"]']], ['var' => 'REX_DAO_CATEGORY_SELECT[]', 'inp' => ['REX_DAO_CATEGORY_SELECT[id="1" widget="1"]', 'REX_DAO_CATEGORY_SELECT[id="1" widget="1" root="5"]'], 'out' => ['REX_DAO_CATEGORY_SELECT[id="1"]']], ['var' => 'REX_DAO_VALUE[]', 'inp' => ['REX_DAO_VALUE[id="1" widget="1"]', 'REX_DAO_VALUE[id="1" widget="1" type="email"]', 'REX_DAO_VALUE[id="1" widget="1" type="textarea"]'], 'out' => ['REX_DAO_VALUE[id="1"]']]];
$rows = '';
foreach ($vars as $var) {
    $rows .= '<tr>';
    $rows .= '<th><code>' . $var['var'] . '</code></th>';
    $rows .= '<td>';
    $rows .= '<dl class="dl-horizontal text-left"><dt>Eingabe:</dt>';
    foreach ($var['inp'] as $value) {
        $rows .= '<dd><p><b><code>' . nl2br(htmlspecialchars($value)) . '</code></b></p></dd>';
    }
    $rows .= '</dl>';
    $rows .= '<dl class="dl-horizontal text-left"><dt>Ausgabe:</dt>';
    foreach ($var['out'] as $key => $value) {
        if (is_int($key)) {
Пример #20
0
 /**
  * Erstellt einen SQL Dump, der die aktuellen Datebankstruktur darstellt.
  * Dieser wird in der Datei $filename gespeichert.
  *
  * @param string $filename
  * @param array  $tables
  *
  * @return bool TRUE wenn ein Dump erstellt wurde, sonst FALSE
  */
 public static function exportDb($filename, array $tables = null)
 {
     $fp = @fopen($filename, 'w');
     if (!$fp) {
         return false;
     }
     $sql = rex_sql::factory();
     $nl = "\n";
     $insertSize = 5000;
     // ----- EXTENSION POINT
     rex_extension::registerPoint(new rex_extension_point('BACKUP_BEFORE_DB_EXPORT'));
     // Versionsstempel hinzufügen
     fwrite($fp, '## Redaxo Database Dump Version ' . rex::getVersion('%s') . $nl);
     fwrite($fp, '## Prefix ' . rex::getTablePrefix() . $nl);
     //fwrite($fp, '## charset '.rex_i18n::msg('htmlcharset').$nl.$nl);
     fwrite($fp, '## charset utf-8' . $nl . $nl);
     //  fwrite($fp, '/*!40110 START TRANSACTION; */'.$nl);
     if (is_null($tables)) {
         $tables = [];
         foreach (rex_sql::showTables(1, rex::getTablePrefix()) as $table) {
             if ($table != rex::getTable('user') && substr($table, 0, strlen(rex::getTablePrefix() . rex::getTempPrefix())) != rex::getTablePrefix() . rex::getTempPrefix()) {
                 // Tabellen die mit rex_tmp_ beginnne, werden nicht exportiert!
                 $tables[] = $table;
             }
         }
     }
     foreach ($tables as $table) {
         //---- export metadata
         $create = rex_sql::showCreateTable($table);
         fwrite($fp, 'DROP TABLE IF EXISTS `' . $table . '`;' . $nl);
         fwrite($fp, $create . ';' . $nl);
         $fields = $sql->getArray('SHOW FIELDS FROM `' . $table . '`');
         foreach ($fields as &$field) {
             if (preg_match('#^(bigint|int|smallint|mediumint|tinyint|timestamp)#i', $field['Type'])) {
                 $field = 'int';
             } elseif (preg_match('#^(float|double|decimal)#', $field['Type'])) {
                 $field = 'double';
             } elseif (preg_match('#^(char|varchar|text|longtext|mediumtext|tinytext)#', $field['Type'])) {
                 $field = 'string';
             }
             // else ?
         }
         //---- export tabledata
         $start = 0;
         $max = $insertSize;
         do {
             $array = $sql->getArray('SELECT * FROM `' . $table . '` LIMIT ' . $start . ',' . $max, [], PDO::FETCH_NUM);
             $count = $sql->getRows();
             if ($count > 0 && $start == 0) {
                 fwrite($fp, $nl . 'LOCK TABLES `' . $table . '` WRITE;');
                 fwrite($fp, $nl . '/*!40000 ALTER TABLE `' . $table . '` DISABLE KEYS */;');
             } elseif ($count == 0) {
                 break;
             }
             $start += $max;
             $values = [];
             foreach ($array as $row) {
                 $record = [];
                 foreach ($fields as $idx => $type) {
                     $column = $row[$idx];
                     switch ($type) {
                         case 'int':
                             $record[] = intval($column);
                             break;
                         case 'double':
                             $record[] = sprintf('%.10F', (double) $column);
                             break;
                         case 'string':
                         default:
                             $record[] = $sql->escape($column, "'");
                             break;
                     }
                 }
                 $values[] = $nl . '  (' . implode(',', $record) . ')';
             }
             if (!empty($values)) {
                 fwrite($fp, $nl . 'INSERT INTO `' . $table . '` VALUES ' . implode(',', $values) . ';');
                 unset($values);
             }
         } while ($count >= $max);
         if ($start > 0) {
             fwrite($fp, $nl . '/*!40000 ALTER TABLE `' . $table . '` ENABLE KEYS */;');
             fwrite($fp, $nl . 'UNLOCK TABLES;' . $nl . $nl);
         }
     }
     fclose($fp);
     $hasContent = true;
     // Den Dateiinhalt geben wir nur dann weiter, wenn es unbedingt notwendig ist.
     if (rex_extension::isRegistered('BACKUP_AFTER_DB_EXPORT')) {
         $content = rex_file::get($filename);
         $hashBefore = md5($content);
         // ----- EXTENSION POINT
         $content = rex_extension::registerPoint(new rex_extension_point('BACKUP_AFTER_DB_EXPORT', $content));
         $hashAfter = md5($content);
         if ($hashAfter != $hashBefore) {
             rex_file::put($filename, $content);
             $hasContent = !empty($content);
             unset($content);
         }
     }
     return $hasContent;
 }
Пример #21
0
 public function sendMedia($sourceCacheFilename, $headerCacheFilename, $save = false)
 {
     if ($this->asImage) {
         $src = $this->getImageSource();
     } else {
         $src = rex_file::get($this->getMediapath());
     }
     $this->setHeader('Content-Length', rex_string::size($src));
     $header = $this->getHeader();
     if (!array_key_exists('Content-Type', $header)) {
         $finfo = finfo_open(FILEINFO_MIME_TYPE);
         $content_type = finfo_file($finfo, $this->getMediapath());
         if ($content_type != '') {
             $this->setHeader('Content-Type', $content_type);
         }
     }
     if (!array_key_exists('Content-Disposition', $header)) {
         $this->setHeader('Content-Disposition', 'inline; filename="' . $this->getMediaFilename() . '";');
     }
     if (!array_key_exists('Last-Modified', $header)) {
         $this->setHeader('Last-Modified', gmdate('D, d M Y H:i:s T'));
     }
     rex_response::cleanOutputBuffers();
     foreach ($this->header as $t => $c) {
         header($t . ': ' . $c);
     }
     echo $src;
     if ($save) {
         rex_file::putCache($headerCacheFilename, $this->header);
         rex_file::put($sourceCacheFilename, $src);
     }
 }
Пример #22
0
 protected function __readTar($filename = '')
 {
     // Set the filename to load
     if (!$filename) {
         $filename = $this->filename;
     }
     // Read in the TAR file
     //    $fp = fopen($filename,"rb");
     //    $this->tar_file = fread($fp,filesize($filename));
     //    fclose($fp);
     // STM: hier mit get_file_contents ist viel schneller
     $this->tar_file = rex_file::get($filename);
     if ($this->tar_file[0] == chr(31) && $this->tar_file[1] == chr(139) && $this->tar_file[2] == chr(8)) {
         if (!function_exists('gzinflate')) {
             return false;
         }
         $this->isGzipped = true;
         $this->tar_file = gzinflate(substr($this->tar_file, 10, -4));
     }
     // Parse the TAR file
     $this->__parseTar();
     return true;
 }
Пример #23
0
 /**
  * Includes the sub-path of current page.
  *
  * @param array $context
  *
  * @return mixed
  */
 public static function includeCurrentPageSubPath(array $context = [])
 {
     $path = self::getCurrentPageObject()->getSubPath();
     if ('.md' !== strtolower(substr($path, -3))) {
         return self::includePath($path, $context);
     }
     $fragment = new rex_fragment();
     $fragment->setVar('content', rex_markdown::factory()->parse(rex_file::get($path)), false);
     $content = $fragment->parse('core/page/docs.php');
     $fragment = new rex_fragment();
     $fragment->setVar('body', $content, false);
     echo $fragment->parse('core/page/section.php');
 }