Skip to content

FriendsOfREDAXO/github_installer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GitHub Installer

Bidirektionale GitHub-Integration fΓΌr REDAXO - Installiere Module, Templates und Classes aus GitHub-Repositories und lade deine eigenen Inhalte zu GitHub hoch.

πŸš€ Features

πŸ“₯ Installation von GitHub

  • Browse und installiere Module/Templates/Classes aus GitHub-Repositories
  • Asset-UnterstΓΌtzung: CSS/JS-Dateien werden automatisch kopiert nach /assets/modules/{key}/ bzw. /assets/templates/{key}/
  • Class-Support: PHP-Classes werden nach project/lib/ installiert mit Verzeichnis-Struktur
  • File-basiertes Caching fΓΌr bessere Performance
  • UnterstΓΌtzung fΓΌr private Repositories mit GitHub-Tokens
  • Multi-Language Support (Deutsch/Englisch)
  • Sauberes Repository-Management

πŸ“€ Upload zu GitHub

  • Bidirektionale Synchronisation: Lade deine lokalen REDAXO Module/Templates/Classes zu GitHub hoch
  • Settings-Integration: Einmalige Repository-Konfiguration (Owner, Repository, Branch, Author)
  • Intelligente Ordnernamenerkennung: Verwendet Modul-Keys (z.B. "gblock") statt IDs
  • VollstΓ€ndiger Upload: input.php, output.php, config.yml, README.md werden automatisch generiert
  • Class-Upload: PHP-Classes aus project/lib/ mit Verzeichnis-Struktur
  • Überschreiben: Vorhandene Module/Templates/Classes werden aktualisiert

πŸ“ Repository-Struktur

Dein GitHub-Repository sollte folgende Struktur haben:

repository/
β”œβ”€β”€ modules/
β”‚   └── module_key/              # z.B. "gblock", "text-simple"
β”‚       β”œβ”€β”€ config.yml           # Modul-Konfiguration
β”‚       β”œβ”€β”€ input.php            # Eingabe-Template
β”‚       β”œβ”€β”€ output.php           # Ausgabe-Template
β”‚       β”œβ”€β”€ README.md            # Dokumentation (optional)
β”‚       └── assets/              # CSS/JS-Dateien (optional)
β”‚           β”œβ”€β”€ styles.css
β”‚           └── script.js
β”œβ”€β”€ templates/
β”‚   └── template_key/            # z.B. "main-layout"
β”‚       β”œβ”€β”€ config.yml           # Template-Konfiguration
β”‚       β”œβ”€β”€ template.php         # Template-Inhalt
β”‚       β”œβ”€β”€ README.md            # Dokumentation (optional)  
β”‚       └── assets/              # CSS/JS-Dateien (optional)
β”‚           β”œβ”€β”€ template.css
β”‚           └── template.js
└── classes/
    β”œβ”€β”€ SimpleClass.php          # Einzelne Class-Datei
    β”œβ”€β”€ SimpleClass.md           # Dokumentation (optional)
    └── ComplexClass/            # Class mit Verzeichnis-Struktur
        β”œβ”€β”€ ComplexClass.php     # Haupt-Class-Datei
        β”œβ”€β”€ README.md            # Dokumentation (optional)
        └── config.yml           # Class-Konfiguration (optional)

πŸ“ config.yml Format

Module Konfiguration

title: "01 - Gridblock (gruppierte BlΓΆcke)"
description: "Flexibles Spaltenraster-System fΓΌr REDAXO"
author: "Falko MΓΌller"
version: "1.0.0"
redaxo_version: "5.13+"

Template Konfiguration

title: "Main Layout Template"
description: "Basis-Layout fΓΌr die Website"
author: "Developer Name"
version: "1.2.0"
redaxo_version: "5.13+"

Class Konfiguration

title: "Demo Helper Class"
description: "Hilfsklasse fΓΌr Demo-Funktionen"
author: "Developer Name"
version: "1.0.0"
redaxo_version: "5.13+"
namespace: "Demo"

πŸ› οΈ Installation & Konfiguration

1. Addon installieren

  1. GitHub Installer in REDAXO installieren
  2. Addon aktivieren

2. Upload-Einstellungen konfigurieren (optional)

FΓΌr das Hochladen zu GitHub:

  1. Backend β†’ Addons β†’ GitHub Installer β†’ Einstellungen
  2. Upload-Repository konfigurieren:
    • Owner: Dein GitHub-Username (z.B. skerbis)
    • Repository: Repository-Name (z.B. stuff)
    • Branch: Ziel-Branch (z.B. main)
    • Author: Dein Name fΓΌr die Metadaten

3. GitHub-Token konfigurieren (optional, aber empfohlen)

Wann wird ein Token benΓΆtigt?

  • Private Repositories: Zugriff auf nicht-ΓΆffentliche Repositories
  • HΓΆhere Rate-Limits: GitHub erlaubt mehr API-Anfragen mit Token
  • Upload-FunktionalitΓ€t: Zum Hochladen von Modulen/Templates/Classes zu GitHub

Token erstellen

  1. GitHub β†’ Settings β†’ Developer settings β†’ Personal access tokens β†’ Fine-grained tokens

  2. Generate new token

  3. Token-Name vergeben (z.B. "REDAXO GitHub Installer")

  4. Repository access auswΓ€hlen:

    • All repositories (fΓΌr alle Repositories) oder
    • Only select repositories (fΓΌr bestimmte Repositories)
  5. Erforderliche Berechtigungen auswΓ€hlen:

    Repository permissions:

    Nur zum Installieren (Lesen):

    • βœ… Contents: Read-only (Repository-Inhalte lesen)
    • βœ… Metadata: Read-only (automatisch gesetzt)

    Zum Installieren UND Hochladen:

    • βœ… Contents: Read and write (Repository-Inhalte lesen und schreiben)
    • βœ… Metadata: Read-only (automatisch gesetzt)

    Alle anderen Berechtigungen sind NICHT erforderlich:

    • ❌ Actions
    • ❌ Administration
    • ❌ Codespaces
    • ❌ Commit statuses
    • ❌ Discussions
    • ❌ Environments
    • ❌ Issues
    • ❌ Pull requests
    • ❌ etc.
  6. Expiration festlegen (empfohlen: 90 Tage oder weniger)

  7. Token generieren und sofort kopieren (wird nur einmal angezeigt!)

  8. Token in REDAXO einfΓΌgen: Backend β†’ Addons β†’ GitHub Installer β†’ Einstellungen

Sicherheitshinweise

  • ⚠️ Token niemals ΓΆffentlich teilen oder in Code committen
  • πŸ”’ Token mit minimalen Berechtigungen erstellen
  • πŸ”„ Token regelmÀßig erneuern (Ablaufdatum setzen)
  • πŸ—‘οΈ Ungenutzte Token lΓΆschen

🎯 Verwendung

Module/Templates/Classes installieren

  1. Backend β†’ Addons β†’ GitHub Installer β†’ Installieren (Module/Templates/Classes)
  2. Repository hinzufΓΌgen (z.B. username/repository)
  3. VerfΓΌgbare Module/Templates/Classes durchsuchen
  4. Installieren oder Neu laden klicken
  5. Assets werden automatisch nach /assets/modules/{key}/ kopiert
  6. Classes werden nach project/lib/ installiert (mit Verzeichnis-Struktur)

Module/Templates/Classes hochladen

  1. Backend β†’ Addons β†’ GitHub Installer β†’ Upload
  2. Modul, Template oder Class aus der Liste auswΓ€hlen
  3. Upload klicken
  4. Beschreibung und Version eingeben
  5. Das System erstellt automatisch:
    • Module: /modules/{key}/config.yml, input.php, output.php, README.md
    • Templates: /templates/{key}/config.yml, template.php, README.md
    • Classes: /classes/{classname}.php oder /classes/{classname}/ mit Struktur

πŸ”§ Asset-Management

Das Addon unterstΓΌtzt automatisches Asset-Management:

  • Bei Installation: CSS/JS-Dateien werden von {repository}/modules/{key}/assets/ nach /assets/modules/{key}/ kopiert
  • Bei Upload: Lokale Assets werden automatisch mit hochgeladen
  • UnterstΓΌtzte Dateien: .css, .js, .scss, .less, .jpg, .png, .gif, .svg, etc.

🎨 Beispiel-Repository

Siehe: https://github.com/skerbis/stuff

stuff/
β”œβ”€β”€ modules/
β”‚   β”œβ”€β”€ gblock/
β”‚   β”‚   β”œβ”€β”€ config.yml
β”‚   β”‚   β”œβ”€β”€ input.php
β”‚   β”‚   β”œβ”€β”€ output.php
β”‚   β”‚   └── assets/
β”‚   β”‚       └── gblock.css
β”‚   └── text-simple/
β”‚       β”œβ”€β”€ config.yml
β”‚       β”œβ”€β”€ input.php
β”‚       └── output.php
β”œβ”€β”€ templates/
β”‚   └── main-layout/
β”‚       β”œβ”€β”€ config.yml
β”‚       β”œβ”€β”€ template.php
β”‚       └── assets/
β”‚           β”œβ”€β”€ layout.css
β”‚           └── layout.js
└── classes/
    β”œβ”€β”€ SimpleHelper.php
    └── DemoHelper/
        β”œβ”€β”€ DemoHelper.php
        β”œβ”€β”€ README.md
        └── config.yml

πŸ†• Changelog

Version 1.3.0

  • βœ… Class-Support: VollstΓ€ndige UnterstΓΌtzung fΓΌr PHP-Classes
  • βœ… Verzeichnis-Struktur: Classes werden mit korrekter Ordner-Struktur installiert
  • βœ… Architecture-Refactor: Getrennte Install- und Update-Manager
  • βœ… UI-Verbesserungen: Konsistente BenutzeroberflΓ€che fΓΌr alle Typen
  • βœ… Terminologie: "Neu laden" statt "Aktualisieren" fΓΌr bessere Klarheit

Version 1.2.0

  • βœ… Bidirektionale Synchronisation: Upload-FunktionalitΓ€t hinzugefΓΌgt
  • βœ… Asset-UnterstΓΌtzung: Automatisches Kopieren von CSS/JS-Dateien
  • βœ… Settings-Integration: Repository-Konfiguration im Backend
  • βœ… Intelligente Ordnernamen: Verwendet Modul-Keys statt IDs
  • βœ… VollstΓ€ndiger Upload: Automatische Generierung von config.yml und README.md

Version 1.1.0

  • βœ… Asset-Installation: CSS/JS-Dateien werden automatisch kopiert
  • βœ… Verbesserte UI: Bessere Darstellung von Modulen mit Assets
  • βœ… Cache-Optimierung: Schnellere Repository-Browsing

Version 1.0.0

  • βœ… Basis-Installation: Module und Templates aus GitHub installieren
  • βœ… Repository-Management: GitHub-Repositories verwalten
  • βœ… Multi-Language: Deutsch/Englisch Support

About

Install modules, templates and Classes with Assets from GitHub or upload your own

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages