2017
Einen Moment bitte ...
2017
Auch wenn man versucht, Module für jede Website individuell zu erstellen und möglichst simpel zu halten, so wird man manche durchaus umfangreicher aufbauen wollen. Schließlich möchte man für unterschiedliche, aber vom Prinzip her ähnliche Komponenten nicht lauter Einzel-Module haben, sondern lieber die Optionen in einem Modul zusammenfassen.
Zum Beispiel: Im Header-Modul, das sich sich auf 100% Breite und Höhe des Viewports skaliert und sich damit ideal für den Beginn einer Seite eignet (aber nicht nur dafür), kannst Du als Hintergrund ein Foto oder ein Video wählen. Diesen Hintergrund kannst Du mit einer Farbe oder einem Farbverlauf überlagern und die Deckkraft festlegen. Optional kannst Du auch noch eine Partikel-Animation wählen oder einen Scroll-Pfeil aktivieren.
Oftmals möchte man bestimmte Felder nur je nach gewählten Optionen anbieten. Da sich in REDAXO CSS- und JS-Anweisungen direkt in die Ein- oder Ausgabe-Code der Module schreiben lässt, sind der Phantasie für derlei User Interface-Optimierungen keine Grenzen gesetzt. Einige der Module zeigen Beispiele für solche Abhängigkeiten.
Natürlich kann man Code auch in eigene Dateien auslagern – das Project-AddOn wäre ein geeigneter Platz dafür – und via Extension Points an den gewünschten Stellen laden.
Mehr zu diesem Thema findest Du auch hier.
<?php
// Eine eigene CSS-Datei wird im Header des Backends geladen
if (rex::isBackend()) {
rex_view::addCssFile($this->getAssetsUrl('css/onepage.css'));
}
Es ist wichtig, in vielen Expeditionen reichlich Erfahrung zu sammeln. Das Unterwegs-Sein in in den einsamsten und unwirtlichsten Landstrichen ist meine Passion. Eine Selbstverständlichkeit ist dabei, die Natur mindestens so sauber zu hinterlassen, wie man sie vorgefunden hat. Denn in der Arktis dauert es Jahrzehnte, bis ein Stiefelabdruck nicht mehr sichtbar ist.
2022
2007
2013
Ich weiß, dass ich meinen für etliche Monate kalkulierten Proviant vor Eisbären schützen muss. Ich weiß auch, dass Eisbären Plastik- und selbst Metalltonnen so zusetzen können, dass sie an den Inhalt gelangen. Das geschah nun. Eine Tonne habe ich dadurch verloren.
Ich werden meinen Proviant also noch besser sichern und mein Lager ein Stück entfernt von den Tonnen aufschlagen müssen, um Eisbären nicht zum Zelt zu locken.
In dieser Demo werden de einzelnen Segmente mit Kategorien gebildet. Dies bietet große Flexibilität, denn in einer Kategorie können beliebig viele weitere Artikel mit jeweils beliebig vielen Modulen angelegt werden, die dann alle innerhalb eines Segments ausgelesen werden.
Ob man diese Möglichkeit benötigt, muss jeder selbst entscheiden. Aber diese Navigations-Variante soll als weitere Option gezeigt werden – zumal die Webdsite dann recht rasch zu einer Multipage-Website umgewandelt werden kann.
<?php
$content = '';
$path = rex_article::getCurrent()->getPathAsArray();
$path1 = ((!empty($path[1])) ? $path[1] : '');
echo '
<ul>';
// Unterkategorien des aktuellen Artikels
$cats = rex_category::get($this->article_id);
$children = $cats->getChildren(true);
// Array der Unterkategorien durchlaufen
if (is_array($children) && count($children) > 0) {
foreach ($children as $child) {
// Der Inhalt des aktuellen Artikels soll nicht nochmal erneut ausgelesen werden
if ($child->getId() == REX_ARTICLE_ID) continue;
// rex_string::normalize entfernt Sonderzeichen für eine gültige URL
echo '
<li><a href="" data-scroll="true" data-id="#'.rex_string::normalize($child->getName()).'">'.$child->getName().'</a></li>';
// Das Artikel-Objekt wird angesprochen, um die Inhalte zu erhalten
$category_content = new rex_article_content($child->getId());
// Der jeweilige Inhalt wird in eine Variable geschrieben
// Zu Beginn wird immer ein Sprunganker erzeugt
$content .= '
<div id="'.rex_string::normalize($child->getName()).'"></div>';
$content .= str_replace('class="button', 'class="btn btn-lg btn-black btn-arrow', $category_content->getArticle());
// Falls die Kategorie weitere Artikel hat,
// diese ebenfalls in das gleiche Segment laden
// Kommentare dazu im Template "Abschnitte als Artikel"
$cat = rex_category::get($child->getId());
$articles = $cat->getArticles(true);
if (is_array($articles) && count($articles) > 0) {
foreach ($articles as $article) {
if ($article->getId() == REX_ARTICLE_ID) continue;
if ($article->isStartArticle()) continue;
$article_content = new rex_article_content($article->getId());
$content .= $article_content->getArticle();
}
}
// Ende weitere Artikel der Kategorie holen
}
}
echo '
</ul>';
?>
Seit meiner Kindheit träume ich davon, den Nordpol zu erreichen, nun stehe ich auf dem Südpol.
Roald Amundsen, 1872-1928,
norwegischer Polarforscher
Der Drang, die weissen Flecken von der Landkarte zu entfernen, entspringt eher gewissen menschlichen Urinstinkten als der Wissenschaft oder dem Geschäftssinn.
Hugh Robert Mill, 1861 – 1950,
schottischer Geograph und Polarforscher
Unsäglich langsam nur vermochte das menschliche Auge die Nebel des Eismeeres zu durchdringen; hinter der Nebelwand lag das Land des Mythos.
Fridtjof Nansen, 1861-1930,
norwegischer Polarforscher
Ich hatte das Gefühl, als wäre ich auf einen anderen Planeten oder in ein anderes Erdzeitalter geraten, von dem der Mensch kein Wissen, an das er keine Erinnerung hat.
Richard Evelyn Byrd, 1888 – 1957,
amerikanischer Polarforscher und Konteradmiral
Ich bin Reise-Journalist ...
In der Versunkenheit des Zen sind alle dualistischen Unterscheidungen wie Ich und Du, wahr und falsch, Artikel und Kategorie, online und offline aufgehoben. Das “Zazen”, das Sitzen in Versunkenheit, stellt den direktesten Weg zur Erleuchtung dar.
Hier könnte dann das Impressum stehen. Passend für einen Onepager gibt es keine eigene Seite, sondern das Impressum blendet sich am unteren Seitenende ein. Gepflegt werden diese “Footer-Einblend-Segemente” als Artikel im Root-Verzeichnis, so dass hierfür alle Module verwendet werden können.
Demo: Peter Bickel, Polarpixel
Fotos: Unsplash
Video: Bjørn Klauer, Svalbard Expedition