Skip to content

Commit

Permalink
Revert "Initial Commit"
Browse files Browse the repository at this point in the history
This reverts commit af6d2fb.
  • Loading branch information
pschuchmann committed Feb 22, 2020
1 parent af6d2fb commit edef35c
Show file tree
Hide file tree
Showing 30 changed files with 498 additions and 711 deletions.
28 changes: 26 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,30 @@
# Changelog

## Version 1.0.0 // 22.02.2020
## Version 1.1.0 // xx.xx.2018

Neu

* Übersetzung es_es (Danke an @2062nandes)
* CHANGELOG.md hinzugefügt
* CSRF-Schutz Einstellungen-Seite (pages/config.php)

Änderungen

* REDAXO-Version auf 5.5 gesetzt (CSRF-Schutz)
* README.md angepasst
* documentation-plugin
* Link-Handling optimiert, URL-Änderung jetzt über pushState (vorher window.location), Anpassungen CSS
* Sprachwähler bei mehreren vorhanden Sprachen der Dokumentationen anzeigen. Position oben rechts in der Navigation.
* Image-Handling
* Images in Unterordner assets
* Intgegration von Images aus dem Unterordner möglich
* Externe Links in der Navigation möglich
* Dokumentation Texte angepasst, Beispiel Images in _vorlage.md, Bilder in Unterordner assets

Bugfixes

* keine

## Version 1.0.0 // 28.11.2017

* Erste Veröffentlichung des Addons
* Baut auf derm [Demo Addon](https://github.com/FriendsOfREDAXO/demo_addon) und einem [Trick](https://friendsofredaxo.github.io/tricks/addons/yform/im-addon) von Christoph Böcker auf
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2020 Friends Of REDAXO
Copyright (c) 2016 Friends Of REDAXO

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
# Beispiel-Addon für die Verwendung von Yorm ORM in REDAXO 5
# Beispiel-Addon für REDAXO 5

Zeigt den Aufbau und die Funktionalität von Yorm ORM.
Zeigt den Aufbau und Basisfunktionalität von Addons.

* `documentation`-Plugin als Basis für eine Hilfe/Dokumentation für REDAXO5-AddOns
* Hauptseite des Addons - Einbinden einer YForm Tabelle in ein eigenes Addon
* Hauptseite des Addons - Beschreibungen der Beispiele in einzelnen Blöcken und Hinweise auf den PHP-Code <sup><b>(todo)</b></sup>
* Quellcode dokumentieren <sup><b>(todo)</b></sup>
* Addon-Einstellungen in Tabelle `rex_config` speichern
* Beispiel einer Tabellenverwaltung mit `rex_form` (inkl. Beispieltabelle) <sup><b>(todo)</b></sup>
* Beispiel Extension Point(s) <sup><b>(todo)</b></sup>
* ...

## AddOn-Entwicklung in der REDAXO-Dokumentation
Expand Down
2 changes: 1 addition & 1 deletion assets/css/style.css
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
.demo_yorm {
.demo_addon {
}
2 changes: 1 addition & 1 deletion assets/js/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
// https://api.jquery.com/ready/
$(document).ready(function () {

console.log('Demo-Yorm');
console.log('Demo-Addon');

});
})(jQuery);
20 changes: 13 additions & 7 deletions boot.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,21 @@

/** @var rex_addon $this */

// Yorm ORM Klasse registrieren
rex_yform_manager_dataset::setModelClass(rex::getTable('product'), Product::class);
rex_yform_manager_dataset::setModelClass(rex::getTable('product_category'), ProductCategory::class);
rex_yform_manager_dataset::setModelClass(rex::getTable('product_rating'), ProductRating::class);
// Diese Datei ist keine Pflichdatei mehr.

// Daten wie Autor, Version, Subpages etc. sollten wenn möglich in der package.yml notiert werden.
// Sie können aber auch weiterhin hier gesetzt werden:
$this->setProperty('author', 'Friends Of REDAXO');

// Die Datei sollte keine veränderbare Konfigurationen mehr enthalten, um die Updatefähigkeit zu erhalten.
// Stattdessen sollte dafür die rex_config verwendet werden (siehe install.php)

// Klassen und lang-Dateien müssen hier nicht mehr eingebunden werden, sie werden nun automatisch gefunden.

// Addonrechte (permissions) registieren
if (rex::isBackend() && is_object(rex::getUser())) {
rex_perm::register('demo_yorm[]');
rex_perm::register('demo_yorm[config]');
rex_perm::register('demo_addon[]');
rex_perm::register('demo_addon[config]');
}

// Assets werden bei der Installation des Addons in den assets-Ordner kopiert und stehen damit
Expand All @@ -23,7 +29,7 @@
rex_view::addCssFile($this->getAssetsUrl('css/style.css'));

// Die script.js nur auf der Unterseite »config« des Addons einbinden
if (rex_be_controller::getCurrentPagePart(2) == 'main') {
if (rex_be_controller::getCurrentPagePart(2) == 'config') {
rex_view::addJsFile($this->getAssetsUrl('js/script.js'));
}
}
31 changes: 24 additions & 7 deletions install.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,29 @@

/** @var rex_addon $this */

//Install tables via table manager api
$table_definitions = $this->getPath('install/tables.json');
if (file_exists($table_definitions)) {
$table_data = file_get_contents($table_definitions);
rex_yform_manager_table_api::importTablesets($table_data);
// Diese Datei ist keine Pflichtdatei mehr.

// SQL-Anweisungen können auch weiterhin über die install.sql ausgeführt werden.

// Abhängigkeiten (PHP-Version, PHP-Extensions, Redaxo-Version, andere Addons/Plugins) sollten in die package.yml eingetragen werden.
// Sie brauchen hier dann nicht mehr überprüft werden!

// Hier können zum Beispiel Konfigurationswerte in der rex_config initialisiert werden.
// Das if-Statement ist notwendig, um bei einem reinstall die Konfiguration nicht zu überschreiben.
if (!$this->hasConfig()) {
$this->setConfig('url', 'http://www.example.com');
$this->setConfig('ids', [1, 4, 5]);
}

// clear table cache
rex_yform_manager_table::deleteCache();
// Mit einer rex_functional_exception kann die Installation mit einer Fehlermeldung abgebrochen werden.
$somethingIsWrong = false;
if ($somethingIsWrong) {
throw new rex_functional_exception('Something is wrong');
}

// Alternativ kann ähnlich wie in R4 mit den Properties "install" und "installmsg" die Installation als nicht erfolgreich markiert werden.
// Im Gegensatz zu R4 muss für eine erfolgreiche Installation keine Property mehr gesetzt werden.
if ($somethingIsWrong) {
$this->setProperty('installmsg', 'Something is wrong');
$this->setProperty('install', false);
}
Loading

0 comments on commit edef35c

Please sign in to comment.