Skip to content

Commit

Permalink
Merge pull request #15 from alexplusde/rex_var
Browse files Browse the repository at this point in the history
SPEED_UP REDAXO_VARs
  • Loading branch information
alxndr-w authored Aug 16, 2022
2 parents d1bf874 + 9cf6d19 commit 1fd4a61
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 9 deletions.
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Voraussetzung: YRewrite muss installiert und aktiviert sein.

3. Bei der Installation wurde ein Artikel-Metainfo-Feld `speed_up` angelegt. Deaktiviere die Einstellung fürs Prefetching an jedem Artikel, in dem dynamische Inhalte dargestellt werden (z.B. Aufruf mit Get-Parameter, Formulare und deren Zielseiten). Diese willst du schließlich nicht prefetchen. Nein, willst du wirklich nicht.

4. Füge im `<head>`-Bereich deiner Templates möglichst weit oben `$speed_up = new speed_up(); $speed_up->show();` ein, um eine Liste von `<link>`-Attributen auszugeben.
4. Füge im `<head>`-Bereich deiner Templates möglichst weit oben `$speed_up = new speed_up(); $speed_up->show();` oder `REX_VAR_SPEED_UP[]` ein, um eine Liste von `<link>`-Attributen auszugeben.

Das war's erstmal.

Expand Down Expand Up @@ -93,11 +93,18 @@ Optional lassen sich sämtliche Assets - zumeist CSS und JS-Dateien - mit einer
<link href="/assets/lib/project/css/project.css" rel="stylesheet" type="text/css">
```


**Beispiel nachher**

```php
<script src="<?= speed_up_asset::getUrl("project/js/script.js") ?>"></script>
<link href="<?= speed_up_asset::getUrl("project/css/project.css") ?>" rel="stylesheet" type="text/css">
<!-- oder als rex_var -->
<script src="REX_VAR_SPEED_UP_ASSETS[file="project/js/script.js"]"></script>
<link href="REX_VAR_SPEED_UP_ASSETS[file="project/css/project.css"]" rel="stylesheet" type="text/css">
```

```text
```

**Ausgabe im Frontend**
Expand All @@ -108,6 +115,7 @@ Optional lassen sich sämtliche Assets - zumeist CSS und JS-Dateien - mit einer
```

> **Tipp:** Dieselbe Optimierung lässt sich auch für Bilddateien durchführen und kommt im Geschwister-Addon [media_manager_responsive](https://github.com/alexplusde/media_manager_responsive/) zum Einsatz.
## Fragen und Wissenswertes

### Wie funktioniert prefetching?
Expand Down
13 changes: 13 additions & 0 deletions lib/rex_var_speed_up.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php
/**
* REX_SPEED_UP[]
*/
class rex_var_speed_up extends rex_var
{
protected function getOutput()
{
$speed_up = new speed_up();

return self::quote($speed_up->get());
}
}
15 changes: 15 additions & 0 deletions lib/rex_var_speed_up_asset.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php
/**
* REX_SPEED_UP_ASSET[file="file.jpg"] // Datei file.jpg aus dem Assets-Ordner
*/
class rex_var_speed_up_asset extends rex_var
{
protected function getOutput()
{
if ($this->hasArg('file')) {
return self::quote(speed_up_asset::getUrl($this->getArg('file')));
}

return self::quote("");
}
}
26 changes: 19 additions & 7 deletions lib/speed_up.php
Original file line number Diff line number Diff line change
Expand Up @@ -152,20 +152,32 @@ public function __construct($profile = 'auto')
}


public function show()
public function showOutput()
{
echo $this->get();
return;
}

public function show() /* Alias, BC */
{
return $this->showOutput();
}


public function getOutput()
{
if (self::getConfig('profile') === 'disabled') {
return;
}
echo PHP_EOL;
echo self::getConfig('preload').PHP_EOL;
echo self::getConfig('prefetch').PHP_EOL;
$output = PHP_EOL;
$output .= self::getConfig('preload').PHP_EOL;
$output .= self::getConfig('prefetch').PHP_EOL;

$preload_media_config = explode(",", speed_up::getConfig('preload_media'));

foreach ($preload_media_config as $file) {
if ($media = rex_media::get($file)) {
echo '<link rel="preload" href="'. $media->getUrl() .'" type="'.$media->getType().'">'.PHP_EOL;
$output .= '<link rel="preload" href="'. $media->getUrl() .'" type="'.$media->getType().'">'.PHP_EOL;
}
}

Expand All @@ -174,10 +186,10 @@ public function show()
}

foreach ($this->urls as $url) {
echo '<link rel="prefetch" href="'. $url .'">'.PHP_EOL;
$output .= '<link rel="prefetch" href="'. $url .'">'.PHP_EOL;
}

return;
return $output;
}

public static function install()
Expand Down
2 changes: 1 addition & 1 deletion package.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package: speed_up
version: '1.2.3'
version: '1.3.0-beta1'
author: 'Alexander Walther'
supportpage: https://www.alexplus.de

Expand Down

0 comments on commit 1fd4a61

Please sign in to comment.