Giter VIP home page Giter VIP logo

docs's Introduction

REDAXO Dokumentation

Die aktuelle Live-Version ist hier ersichtlich: https://redaxo.org/doku/main

Hinweise zur Mitarbeit

Wir freuen uns sehr über Mitarbeit bei der REDAXO-Dokumentation. Ihr könnt gern jederzeit komplette Kapitel übernehmen (bitte mit polarpixel, tbaddade oder skerbis absprechen) oder einfach nur Verbesserungen und Korrekturen einbringen (dann am besten als Pull request)

Bitte beachten

Bei der Formatierung und dem Markdown-Syntax an vorhandenen Dokumenten orientieren, möglich sind:

  • Überschriften
  • Sprunganker
  • Listen
  • Tabellen
  • Hinweise (eingerückt mit > **Hinweis:** ...)
  • Inline-Code und Code-Blöcke (ausgezeichnet mit 3 Backticks)
  • Bilder
  • ABBR (Erläuterung weiter unten)

Tipp: Der Markdown-Editor eurer Wahl unterstützt möglicherweise Linting und weitere Formatierungshilfen.

Inhaltsverzeichnis

Diese Sprunganker-Navigation (Inhaltsverzeichnis des Kapitels) muss direkt am Anfang hinter der ersten Überschrift kommen. Direkt danach muss die zweite Überschrift folgen. Bitte in jedes Kapitel eine Sprunganker-Navigation integrieren:

# Seitenüberschrift

- [Überschrift](#anker-zur-ueberschrift)
- [Anker 2](#anker-2)
    - [Anker 2a](#anker2a)
- [Anker 3](#anker-3)
    - [Anker 3a](#anker-3a)
    - [Anker 3b](#anker-3b)
    - [Anker 3c](#anker-3c)
- [Anker 4](#anker-4)

<a name="anker-zur-ueberschrift"></a>

## Überschrift 

[...]

Bearbeitungsstatus

Wenn man sich einen Inhalt vornimmt, bitte mit Namen und Status markieren in der dokumentation.md

Hinweis: Die Links in der Inhaltsverzeichnis-Datei dokumentation.md funktionieren nicht innerhalb von GitHub, da sie vorbereitet sind für den automatischen Import in die REDAXO-Website. Ihr müsst daher die gewünschte Datei selbst auswählen und öffnen.

Schreibstil

  • Möglichst ohne direkte Anrede (Du / Sie) auskommen. Falls in Ausnahmefällen nicht möglich, dann "Du" verwenden statt "Sie"

Schreibweisen häufig vorkommender Begriffe

  • REDAXO
  • AddOn
  • PlugIn

Coding-Standard

Bei den Code-Beispielen bitte bei den allgemein gültigen REDAXO-Coding-Standard beachten: http://symfony.com/doc/current/contributing/code/standards.html

Bilder und Screenshots

  • Breite 1600 Pixel Breite. Höhe, wie man es braucht.
  • Kein Browserfenster soll zu sehen sein.
  • Immer den kompletten REDAXO-Inhalt, inklusive Navigation.
  • Benennung: v5.2.0-[Kennung-was-das-Bild-zeigt].png
  • In den Assets-Ordner.
  • Immer Standard-Theme mit aktivierten AddOns aus der Installation verwenden, damit die Navigation gleich aussieht.

ABBR

Mit ABBR kann beim überfahren mit der Maus zum Beispiel die Langform einer Abkürzung anzeigt werden.

Steht irgendwo im Text z.B. folgendes: BSI, kann mit diesem Code der zusätzliche Hinweis angezeigt werden:

*[BSI]: Bundesamt für Sicherheit in der Informationstechnik

Beispiel aus der installation.md

Mehr dazu kann hier nachgelesen werden: PHP Markdown Extra

docs's People

Contributors

aeberhard avatar alxndr-w avatar bloep avatar christophboecker avatar crydotsnake avatar danidoedel avatar danielweitenauer avatar davidbruchmann avatar dergel avatar dtpop avatar eace avatar efetekdogan avatar elricco avatar engel4u avatar frood avatar gharlan avatar jbnmn avatar joachimdoerr avatar koala avatar marcohanke avatar olien avatar pflakus avatar polarpixel avatar pschuchmann avatar schuer avatar sipa66 avatar skerbis avatar staabm avatar tapulator avatar tbaddade avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docs's Issues

Sammel-Issue: Empfehlungen zum debuggen

Beim Entwickeln unterstützt Redaxo den Programmierer mit verschiedenen Debug-Werkzeugen. Auch im Fehlerfall lassen sich Probleme meist schnell beheben.

Erstmal als Notiz gedacht, bitte ergänzen.

  • was ist whoops?
  • Wie funktioniert der Debug-Modus und der Safe Mode
  • was tun, wenn ein Modul im Backend zu einem Fehler führt, bspw. In der Struktur bei Editieren
  • wie führen auch notices zu whoops: siehe redaxo/redaxo#2193 (comment)
  • Wie nutze ich dump()

Base Pfad == Frontend Pfad ?

"Base Pfad" und "Frontend Pfad" haben den selben Inhalt (rex_path::base).
Soll das so sein?

https://github.com/redaxo/docs/blob/master/pfade.md Zeile 59 und 69

base

Gibt den Base Pfad der übergebenen Datei zurück

Beispiel:
rex_path::base('media/meinbild.jpg') => '/htdocs/meinverzeichnis/media/meinbild.jpg'

frontend

Gibt den Frontend Pfad der übergebenen Datei zurück

Beispiel:
rex_path::base('media/meinbild.jpg') => '/htdocs/meinverzeichnis/media/meinbild.jpg'

FOR tricks

Sollten die FOR tricks irgendwo aus der doku heraus verlinkt sein?

Version 5.6

Aktuell wurde ja die Doku einfach auf 5.5 gehievt. Sollte man das jetzt für 5.6 machen? Oder duplizieren und als neue Version anlegen?

m.E. fehlt im Moment dafür die Zeit und ich wäre wieder für Variante 1.

Doku Konvertierung 4.x > 5.x - Hier sammeln

Hier meine Kurzform:

  1. Separate Installation von REDAXO 5 (ideal auf dem gleichen Server z.B. als neue Subdomain). Nur einen Nutzer anlegen, sonst erstmal leer lassen.
  2. Das yconverter Addon in der 4er Version (ab 4.6.1) installieren - https://github.com/yakamara/yconverter
    ——

Wichtig. Die Templates sollten nicht per require oder include eingebunden sein, sondern direkt eingepflegt sein, andernfalls kann yconverter keine Konvertierung hier durchführen.


3.Datenbank konvertieren
4. Hinweise beachten für die spätere Codenachbearbeitung, am besten die Meldungen kopieren und zwischenspeichern.
5. Die Übertragung zur neuen 5er kann dann mit dem Formular erfolgen.

ist nicht immer möglich. Dann nur Daten ohne Struktur exportieren und in vorinstalliertes R5 importierten über adminer. @alexplusde

  1. Es wird keine Erfolgsmeldung angezeigt, bitte selbst prüfen
  2. Benutzer werden nicht übertragen
  3. ggf auch xform Tabellen konvertieren
    6.1 xform Daten übertragen
    6.2 yform (nicht beta) installieren und staunen :-)
  4. Inhalt von /files nach /media in REDAXO 5 kopieren. Verzeichnisse wie AddOns oder Cache ignorieren und nicht übertragen.
    9.1 eigene individuelle Ordner nach REDAXO 5 kopieren
    ——
    ggf mehrfach durchführen
  5. Warmup installieren, starten und warten bis es Fehler gibt
    (alternativ Seiten absurfen und auf whoops achten)
  6. Fehler im Syslog überprüfen und die Templates und Module anpassen

Weiteres

  • Alles was SEO42 war im Template erstmal löschen

  • Umstellung von rex_search zu search_it bedarf nur die Änderung des Class-Aufrufes

  • Beachte: https://redaxo.org/doku/master/aenderungen-v4-v5

  • REDAXO Tricks zu den Modulen beachten

  • Läuft Eure 4er Version nicht mehr wg. Volltrottel-Hoster, Website auf lokalen Rechner ziehen und dort die Konvertierung der DB durchführen.

  • Module bereits konvertiert

von @skerbis

Suchfunktion

Suche auf redaxo.org ggf. Noch mehr inhalte durchsuchen als nur die doku

Man könnte auch für eine enfache 1. version ein formular bauen was die github suche des docs reposes verwendet

Q&A: Wie ziehe ich eine Redaxo-Website um?

Antwort

Um eine Redaxo-Installation von einem Server auf einen anderen Server zu übertragen, gibt es verschiedene Möglichkeiten. Im Regelfall müssen dazu das Dateisystem (Redaxo, einschließlich Addons und Konfigurationsdateien) und die Datenbank umgezogen werden.

Tipp: Falls sich dabei auch die (Sub-)Domain ändert, sollte nach dem Umzug im Bereich System die Domain angepasst werden. Wenn das YRewrite-Addon oder ein anderes Rewrite-Addon zum Einsatz kommen, müssen auch dort die Domain-Einstellungen angepasst werden.

Via FTP (Möglichkeit 1)

  1. Sicherung der kompletten Datenbank über das Backup-Addon in Redaxo.
    Tipp: Zusätzlich die Tabelle rex_user mit auswählen, um die Redaxo-Benutzer mit zu kopieren.
  2. Download der kompletten Redaxo-Installation über einen FTP-Client
  3. Upload der in Schritt 2 heruntergeladenen Dateien auf den Ziel-Server
  4. Import der Datenbank-Sicherung in der neuen Datenbank, z.B. mit PHPMyAdmin oder Adminer.
  5. Unter /redaxo/data/core/config.yml die Zeile setup von false auf true stellen.
  6. Ebenfalls unter /redaxo/data/core/config.yml unterhalb der Zeile db die neuen Datenbank-Zugangsdaten einstellen.
  7. Das Setup durchlaufen und in Schritt 4 des Setups keine Änderungen an der Datenbank vornehmen sowie keinen weiteren Administrator-Benutzer erstellen.
  8. Anschließend einloggen und ggf. im Bereich System den Cache löschen.

Via FTP (Möglichkeit 2)

  1. Sicherung der kompletten Datenbank über das Backup-Addon in Redaxo.
    Tipp: Zusätzlich die Tabelle rex_user mit auswählen, um die Redaxo-Benutzer mit zu kopieren.
  2. Download der kompletten Redaxo-Installation über einen FTP-Client
  3. Upload der in Schritt 2 heruntergeladenen Dateien auf den Ziel-Server
  4. Unter /redaxo/data/core/config.yml die Zeile setup von false auf true stellen.
  5. Das Setup durchlaufen und in Schritt 4 des Setups die neuen Datenbank-Zugangsdaten angeben. Außerdem einen Test-Admin anlegen.
  6. Mit dem Test-Admin einloggen und über das Backup-Addon die Datenbank-Sicherung einspielen. Achtung: Hierbei wird der gerade angelegte Test-Admin mit der id=1 überschrieben.
  7. Anschließend ggf. im Bereich System den Cache löschen.

kleiner fehler in der doku bei Extension Points

hier https://redaxo.org/doku/master/extension-points bei
Am Beispiel des Extension Point MEDIA_UPDATED:
gehört im Code

rex_extension::register('MEDIA_UPDATED', "meineUpdateFunction");

function meineUpdateFunction($ep) {
    # dump($ep); // auskommentieren, um alle Informationen des EP-Objekts zu erhalten
    $name = $ep->getParams();
    $subject = $ep->getParams(); ///// HIER IST DER FEHLER
    $subject = $ep->getSubject(); ///// RICHTIG
    $params = $ep->getParams();
    $filename = $ep->getParam('filename');

    return $subject;
}    

TOC generierung

aktuell pflegen wir in allen/vielen kapiteln manuel ein inhaltsverzeichnis am anfang der seite.

da dies manuell passiert kommt es dabei immer wieder mal zu kleineren problemen

  • anker falsch benannt
  • überschriften gar nicht im inhaltsverzeichnis

für dieses Problem gibt es unterschiedliche Lösungen, z.b. http://tableofcontents.herokuapp.com/ als online seite für copy&paste oder z.b. https://github.com/ekalinin/github-markdown-toc

welchen mechanismus man auch immer wählt, ich denke es wäre sinnvoll wenn der TOC automatisch zum Anfang von Doku seiten generiert würde.

ggf. brauchen wir die TOCs auch einfach gar nicht hier im repos und sie sollten stattdessn während des integrations-prozesses in richtung redaxo.org generiert werden.

Das ganze in dieser Form erstmals als Denkanstoß um darüber zu diskutieren, ggf. wollt ihr es ja auch gar nicht ändern.

Notiz: Media Manager Medieninfos

$media = rex_media_manager::create($type, $file)->getMedia();
$media->getFormat();
$media->getWidth();
$media->getHeight();
$media->getHeader();

Hinweis auf Demo-Addons

Im Bereich Addons wäre m. E. eine Hinweisseite mit Links auf die Demo-Addons hilfreich.
Ebenso zum document-Plugin des demo-Addons.

Anwender :: Docs im CMS

Während einer Schulung gestern regte ein Kunde an, den Abschnitt Anwender der Doku im System selbst darzustellen. Ist dies irgendwie möglich? Mir gefällt die Idee. Vielleicht über ein kleines AddOn, das ähnlich arbeitet wie auf REDAXO.org?

rex_form - auf unique validieren

Aus Slack via @gharlan. Kannst du die Notation für rex_sql_table noch liefern?

Beispiel (rex_form):

 $form->addErrorMessage(REX_FORM_ERROR_VIOLATE_UNIQUE_KEY, rex_i18n::msg('media_manager_error_type_name_not_unique'));

Voraussetzung: unique key (SQL):

ALTER TABLE `rex_dsgvo_client` ADD UNIQUE `unique_index`(`domain`, `lang`, `keyword`);

Updatehinweis von Rex3 zu Rex4.x

https://github.com/redaxo/docs/blob/4.6/updatehinweise.md

Für ein Update von Redaxo 3.x auf eine Redaxo-Version >= 4.3.0 muss vor der Installation die Datenbank auf den Stand von Redaxo 4 gebracht werden. Der dazu notwendige SQL-Code ist nur bis zur Redaxo-Version 4.2.1 bei der Installation mit vorhanden.

Der SQL-Code befindet sich in der Datei: redaxo/include/install/update3_0_to_4_0.sql

ALTER TABLE `rex_template` DROP `bcontent`;
ALTER TABLE `rex_template` DROP `date`;
ALTER TABLE `rex_template` ADD `attributes` TEXT NOT NULL;
ALTER TABLE `rex_article` DROP `cattype`;
ALTER TABLE `rex_article` ADD `label` VARCHAR(255) NOT NULL;
ALTER TABLE `rex_article` ADD `url` TEXT NOT NULL;
ALTER TABLE `rex_article` DROP `alias`;
ALTER TABLE `rex_article` CHANGE `attribute` `attributes` TEXT NOT NULL;
ALTER TABLE `rex_article` DROP `online_from`;
ALTER TABLE `rex_article` DROP `online_to`;
ALTER TABLE `rex_article` DROP `fe_user`;
ALTER TABLE `rex_article` DROP `fe_group`;
ALTER TABLE `rex_article` DROP `fe_ext`;
ALTER TABLE `rex_article` DROP `teaser`;
ALTER TABLE `rex_article` DROP `type_id`;
ALTER TABLE `rex_article` DROP `description`;
ALTER TABLE `rex_article` DROP `keywords`;
ALTER TABLE `rex_article` DROP `file`;
ALTER TABLE `rex_modultyp` DROP `bausgabe`;
ALTER TABLE `rex_modultyp` DROP `func`;
ALTER TABLE `rex_modultyp` DROP `php_enable`;
ALTER TABLE `rex_modultyp` DROP `html_enable`;
ALTER TABLE `rex_modultyp` DROP `perm_category`;
ALTER TABLE `rex_modultyp` DROP `label`;
ALTER TABLE `rex_modultyp` ADD `attributes` TEXT NOT NULL;
ALTER TABLE `rex_file_category` DROP `hide`;
ALTER TABLE `rex_file_category` ADD `attributes` TEXT NOT NULL;
ALTER TABLE `rex_file` ADD `attributes` TEXT NOT NULL AFTER `category_id`;
ALTER TABLE `rex_article_slice` CHANGE `value1` `value1` text NULL, CHANGE `value2` `value2` text NULL, CHANGE `value3` `value3` text NULL, CHANGE `value4` `value4` text NULL, CHANGE `value5` `value5` text NULL, CHANGE `value6` `value6` text NULL, CHANGE `value7` `value7` text NULL, CHANGE `value8` `value8` text NULL, CHANGE `value9` `value9` text NULL, CHANGE `value10` `value10` text NULL, CHANGE `value11` `value11` text NULL, CHANGE `value12` `value12` text NULL, CHANGE `value13` `value13` text NULL, CHANGE `value14` `value14` text NULL, CHANGE `value15` `value15` text NULL, CHANGE `value16` `value16` text NULL, CHANGE `value17` `value17` text NULL, CHANGE `value18` `value18` text NULL, CHANGE `value19` `value19` text NULL, CHANGE `value20` `value20` text NULL, CHANGE `file1` `file1` varchar(255) NULL, CHANGE `file2` `file2` varchar(255) NULL, CHANGE `file3` `file3` varchar(255) NULL, CHANGE `file4` `file4` varchar(255) NULL, CHANGE `file5` `file5` varchar(255) NULL, CHANGE `file6` `file6` varchar(255) NULL, CHANGE `file7` `file7` varchar(255) NULL, CHANGE `file8` `file8` varchar(255) NULL, CHANGE `file9` `file9` varchar(255) NULL, CHANGE `file10` `file10` varchar(255) NULL, CHANGE `filelist1` `filelist1` text NULL, CHANGE `filelist2` `filelist2` text NULL, CHANGE `filelist3` `filelist3` text NULL, CHANGE `filelist4` `filelist4` text NULL, CHANGE `filelist5` `filelist5` text NULL, CHANGE `filelist6` `filelist6` text NULL, CHANGE `filelist7` `filelist7` text NULL, CHANGE `filelist8` `filelist8` text NULL, CHANGE `filelist9` `filelist9` text NULL, CHANGE `filelist10` `filelist10` text NULL, CHANGE `link1` `link1` varchar(10) NULL, CHANGE `link2` `link2` varchar(10) NULL, CHANGE `link3` `link3` varchar(10) NULL, CHANGE `link4` `link4` varchar(10) NULL, CHANGE `link5` `link5` varchar(10) NULL, CHANGE `link6` `link6` varchar(10) NULL, CHANGE `link7` `link7` varchar(10) NULL, CHANGE `link8` `link8` varchar(10) NULL, CHANGE `link9` `link9` varchar(10) NULL, CHANGE `link10` `link10` varchar(10) NULL, CHANGE `linklist1` `linklist1` text NULL, CHANGE `linklist2` `linklist2` text NULL, CHANGE `linklist3` `linklist3` text NULL, CHANGE `linklist4` `linklist4` text NULL, CHANGE `linklist5` `linklist5` text NULL, CHANGE `linklist6` `linklist6` text NULL, CHANGE `linklist7` `linklist7` text NULL, CHANGE `linklist8` `linklist8` text NULL, CHANGE `linklist9` `linklist9` text NULL, CHANGE `linklist10` `linklist10` text NULL, CHANGE `php` `php` text NULL, CHANGE `html` `html` text NULL;
ALTER TABLE `rex_action` ADD `preview` TEXT NOT NULL, ADD `presave` TEXT NOT NULL, ADD `postsave` TEXT NOT NULL, ADD `previewmode` TINYINT NOT NULL, ADD `presavemode` TINYINT NOT NULL, ADD `postsavemode` TINYINT NOT NULL;
ALTER TABLE `rex_action` DROP `action`, DROP `prepost`, DROP `sadd`, DROP `sedit`, DROP `sdelete`;
ALTER TABLE `rex_action` ADD `createuser` VARCHAR(255) NOT NULL, ADD `createdate` INT NOT NULL, ADD `updateuser` VARCHAR(255) NOT NULL, ADD `updatedate` INT NOT NULL;
ALTER TABLE `rex_user` ADD `cookiekey` varchar(255);
ALTER TABLE `rex_article_slice` ADD `next_article_slice_id` int(11);
ALTER TABLE `rex_action` ADD `revision` int(11);
ALTER TABLE `rex_article` ADD `revision` int(11);
ALTER TABLE `rex_article_slice` ADD `revision` int(11);
ALTER TABLE `rex_clang` ADD `revision` int(11);
ALTER TABLE `rex_file` DROP `copyright`;
ALTER TABLE `rex_file` DROP `description`;
ALTER TABLE `rex_file` ADD `revision` int(11);
ALTER TABLE `rex_file_category` ADD `revision` int(11);
ALTER TABLE `rex_module_action` ADD `revision` int(11);
ALTER TABLE `rex_modultyp` ADD `revision` int(11);
ALTER TABLE `rex_template` ADD `revision` int(11);
ALTER TABLE `rex_user` ADD `revision` int(11);

UPDATE `rex_user` SET `status`=1;
UPDATE `rex_article_slice` SET `ctype`=`ctype`+1;

RENAME TABLE `rex_modultyp` TO `rex_module`;

DROP TABLE `rex_article_type`;

Dieses Update der Datenbank kann mit Hilfe von phpMyAdmin geschehen oder das Update erfolgt in zwei Schritten.
Erst eine Installation von Redaxo 4.2.1 durchführen und danach auf die letzte aktuelle Redaxo 4.x Version Updaten.

Zeilenumbrüche überprüfen

Hatte hier das Problem, dass die 1. Zeile fehlt:

image

Grund war, dass ART_ADDED direkt nach den 3 Backticks notiert wurde. Das Betraf den Text zu den Extension Points komplett, siehe #80 - evtl. ist die Doku da an anderen Stellen auch in der Darstellung fehlerhaft.

Das Issue hier habe ich aufgemacht, um zu klären, ob die Zeilenumbrüche eingefügt werden müssen, oder ein Skript auf redaxo.org angepasst werden muss, damit das richtig dargestellt wird. Ich bin der Meinung, die Notation war verkehrt und die Zeilenumbrüche müssen rein, da der Platz ja für Codeformatierungs-Angaben wie ```php o.ä. reserviert ist.

Zwei oder mehr Ebenen - Fehler im Codebeispiel

$path = rex_article::getCurrent()->getPathAsArray();
$path1 = ((!empty($path[0])) ? $path[0] : '');
$path2 = ((!empty($path[1])) ? $path[1] : '');

Das erste Feldelement hat den Index 0 statt 1

Fehler der REX_LINKLIST ausgabe

<?php foreach (explode(',', REXLINKLIST[id=1]) as $article_id): ?>
<a href="<?=rex_getUrl(article_id);?>">zum Artikel mit der ID <?=article_id;?></a>
<?php endforeach;?>

Da haben sich ein paar Fehler eingeschlichen, richtig wäre:
(Schreibweise von REX_LINKLIST, REX_LINKLIST als String in die explode-Methode, $article_id statt article_id)

<?php foreach (explode(',', 'REX_LINKLIST[id=1]') as $article_id): ?>
<a href="<?=rex_getUrl($article_id);?>">zum Artikel mit der ID <?=$article_id;?></a>
<?php endforeach;?>

Ich kann leider kein PR machen, weiß nicht ob es restricted ist, oder ich mich zu wenig mit GIT auskenne

Notiz: Tabellen erstellen - erweitern

von @gharlan

<?php

// Man muss nicht alle Methoden hintereinander hängen, zur Besseren Erklärung mache ich es jetzt mal einzeln:

// Bei get() kommt immer ein Objekt der Klasse rex_sql_table raus, egal, ob die Tabelle schon existiert oder nicht
// Eine nicht existente Tabelle wird hier aber noch nicht erzeugt!
$table = rex_sql_table::get(rex::getTable('foo'));

// Mit exists() kann man abfragen, ob die Tabelle schon existiert:
if ($table->exists()) { }

// Man kann die vorhandene Struktur abfragen:
$table->getColumns();
$table->getColumn('bar');
$table->getPrimaryKey();
$table->getIndexes();
// etc.

// Dann kann man die Struktur ändern, bzw. setzen
$table->setName('foo2');
$table->ensureColumn(...);
$table->renameColumn(...);
$table->removeColumn(...);
$table->ensureIndex(...);
// etc.

// WICHTIG: Die Methoden oben führen die Änderungen noch nicht durch
// sondern die werden immer gesammelt ausgeführt
// mit einer der drei folgenden Methoden:
$table->create(); // Tabelle anlegen; wenn schon vorhanden, kommt eine Exception
$table->alter(); // Die einzelnen Änderungen anwenden; wenn Tabelle noch gar nicht vorhanden, kommt eine Exception
$table->ensure(); // Genau die angegebene Definition sicherstellen, also Tabelle ggf. anlegen, oder korrigieren

Quickstart::Verbesserungswünsche

Erstmal ein großes Lob für das Tutorial!

Selbst ich als absolutes Greenhorn konnte innerhalb der vorgesehenen 15min. Redaxo 5_3_0 installieren.
Allerdings ist mir eine Kleinigkeit zum Ende hin aufgefallen:

Auch wenn man Module und Template nach Anleitung installiert und eingefügt hat sieht man auf der eigentlichen Website davon nichts. Dort steht lediglich ein kleiner Verweis, dass man einen Startartikel festlegen soll. Ich als Neuling muss mich aber erst einmal im Redaxo zurecht finden um dann zu merken, dass ich auch noch Artikel für die Homepage im Struktur-Reiter festlegen muss. Vielleicht sollte man die Info direkt zu Anfang irgendwo unterbringen damit man immer wieder zwischendurch mal auf seiner Website gucken kann was bis dato so passiert ist.

Den Rest der Doku sollte ich natürlich auch noch lesen ;-)

Link zum Bearbeiten in jedem Kapitel prominent platzieren

Damit man einfach dazu animieren kann, selbst Korrekturen / Ergänzungen einzureichen + auch selbst schneller an der richtigen Stelle ist.

z.B. ein bearbeiten-Icon an der Navigation links oder ein Bearbeiten-Link direkt neben der Überschrift

image

Fehlerseiten individualisieren (ab R5.7)

Seit R5.7 ist es möglich dass man die "Oooops Fehlerseiten" im Frontend als auch Backend individualisiert.

Die beiden Fehlerseiten sind als core-fragment im system enthalten und können z.b. via fragments Ordner im project addon (oder in einem beliebigen anderen addon) überschrieben werden.

Es gibt insgesamt 3 fehlerseiten im redaxo umfeld, davon sind aktuell nur 2 änderbar:

  • whooops Fehlerseite, die man nur sieht wenn man als admin im backend eingeloggt ist. Diese enthält debugging informationen und taucht sowohl in frontend und backend auf. sie ist nicht änderbar.
    image
  • die oooops Fehlerseite im redaxo backend (als fragment core/be_ooops.php überschreibbar), wenn man nicht als admin user im backend eingeloggt ist
    image
  • die oooops Fehlerseite im frontend (als fragment core/fe_ooops.php überschreibbar), wenn man nicht als admin user im backend eingeloggt ist
    image

eine Fehlerseite sollte eine vollständige html seite sein (inkl. html, head, body,..), die keine externen abhängigkeiten enthält (keine externen css, js dateien, bilder oder fonts etc).

Installationsvoraussetzungen und Empfehlungen

Wie in Slack diskutiert: Es wäre super, wenn auch die Installationsvoraussetzungen und Anforderungen bzw. Empfehlungen zu älteren Versionen sowie bekannte Inkompatibilitäten notiert sind.

@gharlan

R4.3/4.4: min php 4.3.2, max 5.6
R4.5/4.6: min php 5.3, max 5.6
R4.7: min php 5.3
R5: min php 5.5

@alexplusde

R4.7 kann aber auch PHP7.0, bis R5.5 erzeugt bei PHP7.2 notice.

bloep

PHP-Module für :redaxo5: https://github.com/redaxo/docs/issues/46 (bearbeitet)

Aus archive.org

1.2 Systemanforderungen
Folgende Voraussetzungen müssen zur einwandfreien Nutzung und Installation von REDAXO 4.x von Webspace, Webserver und Datenbank erfüllt werden:

PHP >= 4.3.2
MySQL (3,) 4, 5
FTP Zugangsdaten (Host, Login, Passwort)
MySQL Zugangsdaten (Host, Datenbank, Login, Passwort)

Änderungen REDAXO 4 zu 5: CLANG ID

Bitte ergänzen, dass sich die "Standard" CLANG_ID von 0 auf 1 geändert hat. Somit hat die erste Sprache die ID 1 und nicht wie bisher 0

Lib Beschreibung in addon-struktur.de

Im addon-struktur.md steht zum Ordner Lib folgendes:
Autoload-Ordner, alle hier gefundenen PHP-Classes und Functions werden automatisch eingebunden.
Das ist nur für die Klassen zutreffend! Funktionen werden nicht automatisch eingebunden. Die müssen über die boot.php eingebunden werden!

Addon :: Von @gupi aus Slack

Ein AddOn bei REDAXO hat die Aufgabe den REDAXO Kern um weitere Funktionalitäten zu erweitern.
Ein Addon wiederum kann durch Plugins in der Funktionalität erweitert werden.

Diese Vorgehensweise stellt sicher, dass niemand im bestehenden Kern herumdoktern muss, nur um eine neue Funktion oder Klasse einzubinden.
Wenn ich also eine Klasse geschrieben habe, so bringe ich diese als Addon in REDAXO ein. So ist sichergestellt, dass ich meine Funktionalitäten auch problemlos in ein anderes Projekt minehmen kann und dass ein Update bei Redaxo nicht meine eigenen Anpassungen im Kern überschreibt.

Ein AddOn wird in REDAXO eingebunden, indem man im Ordner /redaxo/src/addons/ den eigenen Addon Ordner anlegt. Also z.B. /redaxo/src/addons/mein_addon

Hier muss mindestens die Datei package.yml vorliegen.
Alle weiteren Dateien und Ordner sind optional.

Sobald ein Ordner lib existiert (z.B.: /redaxo/src/addons/mein_addon/lib) so schaut Redaxo dort nach .php Dateien. Enthalten diese Klassen, so werden diese für den Autoload bereitgestellt.

Sobald ich später, z.B. in einem Modul, auf diese Klassen zurückgreifen will, brauch ich mich um nichts mehr zu kümmern - require oder require_once usw. entfallen hier.
Bei jedem Aufruf einer REDAXO-Seite wird bei allen aktivierten Addons neben der package.yml auch nach einer eventuell vorhanden boot.php geschaut und diese abgearbeitet. So kann ich mit der passenden Ausgestaltung dieser beiden Dateien und dem Inhalt von /redaxo/src/addons/mein_addon/lib (fast) alles erledigt werden.

Q&A: Wie schütze ich meine Redaxo-Website bis zur Veröffentlichung?

Antwort

Wenn sich eine Redaxo-Website in der Entwicklung befindet, kann es sein, dass der Kunde bereits einen Blick auf die Website werfen will, ohne, dass die Website für Unbefugte erreichbar ist. Da auf unbestimmtem Wege auch eine halbfertige Website im Google-Index landen kann, sollte eine (Redaxo-)Website vor der Veröffentlichung durch einen der nachfolgendenen Techniken geschützt werden.

Tipp: Für die Entwicklungs-Website nutzen viele Redaxo-Entwickler eine Subdomain, z. B. neu.domain.de, dev.domain.de, beta.domain.de.

via .htpasswd

  1. vollständigen Pfad der Redaxo-Installation auf dem Webserver ausfindig machen.
  2. .htpasswd-Datei genereieren, z. B. über einen Online-htpasswd-Generator
  3. .htpasswd-Datei in das Verzeichnis der Redaxo-Installation hochladen
  4. Pfad zur .htpasswd-Datei innerhalb der .htaccess-Datei hinzufügen.

Tipp: Viele Hoster bieten in ihrem Webspace-Kundenmenü ebenfalls die Möglichkeit, ein Verzeichnis via .htpasswd heraus zu schützen.

Hinweis: Beim Einsatz Rewrite-AddOns (z. B. YRewrite) wird empfohlen, die .htaccess-Datei zu sichern. Bei einer erneuten Generierung der .htaccess-Datei muss auch Schritt 4 wiederholt werden.

Hinweis: Dieser Schutz funktioniert bei einem Apache-Server, jedoch nicht bei einem IIS-Server.

Via PHP http-auth

Siehe http://php.net/manual/de/features.http-auth.php, Beispiel 3.

Via Redaxo-Login

Diesen Code am Anfang des aktivierten Templates einbauen. Hierbei muss für den Kunden ein Redaxo-Benutzer angelegt sein. Der Kunde muss sich zunächst in Redaxo einloggen, anschließend kann er die Website aufrufen.

<?php
if (!rex::isBackend()) {
	if ($this->getConfig('status') != 'deaktiviert') {
		$session = rex_backend_login::hasSession();
		if (!$session) {
			header('Location: ' . $this->getConfig('url'));
			exit;
  		}
  	}
}
?>

Via GET-Parameter im Template

Diesen Code am Anfang der aktiven Templates einbauen, dem Kunden anschließend die URL meine-website.de/?vorschau=abc123 übermitteln.

<?php 

session_start();
$code = "abc123";
$code2 = rex_request('vorschau', 'string', 0);

// speichert den Code in der Session
if ($code2) {
  $_SESSION['vorschau'] = $code2;
}

// Ausgabe abbrechen, wenn der übermittelte Code nicht stimmt. 
if ($_SESSION['vorschau'] !== $code) {
  exit();
}

?>

Siehe auch

Diskussion auf GitHub

rex_article::getCurrentId() vs. REX_ARTICLE_ID

Wenn man in einem Artikel andere Artikel über rex_article_content einbindet, bezieht sich rex_article::getCurrentId() stets auf den einbindenden Artikel. Auch beim Aufruf im eingebundenen Artikel. REX_ARTICLE_ID hingegen bezieht sich jeweils auf den Artikel, in dem es aufgerufen wird.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.