asdlkif
This commit is contained in:
285
README.md
285
README.md
@@ -1,220 +1,155 @@
|
||||
# HUGE – Installation und Setup
|
||||
# HUGE - Elias Fähnrich
|
||||
|
||||
## Schnellstart
|
||||
---
|
||||
|
||||
- Voraussetzungen prüfen (siehe unten)
|
||||
- Abhängigkeiten installieren
|
||||
- Datenbank anlegen
|
||||
- Webserver auf `public/` zeigen lassen
|
||||
- Starten und testen
|
||||
## Anpassung der Useranmeldung
|
||||
|
||||
Befehle (Beispiele):
|
||||
#### Registrierung ohne Captcha und E-Mail-Verifikation
|
||||
|
||||
```bash
|
||||
# Composer installieren (macOS – über Homebrew)
|
||||
brew install composer
|
||||
**Beschreibung:**
|
||||
Die Registrierung wurde so angepasst, dass Benutzer ohne Captcha und E-Mail-Verifikation registriert werden können. Benutzer werden nach der Registrierung automatisch aktiviert.
|
||||
|
||||
# Abhängigkeiten holen (im Projektordner)
|
||||
composer install
|
||||
**Technische Umsetzung:**
|
||||
- Entfernung des Captcha-Features aus dem Registrierungsprozess
|
||||
- Deaktivierung der E-Mail-Verifizierung
|
||||
- Automatische Aktivierung neuer Benutzerkonten
|
||||
- Vereinfachung des Registrierungsformulars
|
||||
|
||||
# Datenbank & Tabellen anlegen
|
||||
mysql -u root -p < application/_installation/01-create-database.sql
|
||||
mysql -u root -p < application/_installation/02-create-table-users.sql
|
||||
mysql -u root -p < application/_installation/03-create-table-notes.sql
|
||||
**Admin-Funktion:**
|
||||
- Nur Administratoren können über das gleiche Formular neue Benutzer anlegen
|
||||
- Sicherstellung, dass nur autorisierte Personen Benutzerkonten erstellen können
|
||||
|
||||
# Rechte für Avatare (je nach OS anpassen)
|
||||
# Ubuntu/Debian:
|
||||
sudo chown -R www-data:www-data public/avatars
|
||||
sudo chmod -R 775 public/avatars
|
||||
|
||||
# macOS (Apache Standardnutzer _www):
|
||||
sudo chown -R _www:_www public/avatars
|
||||
sudo chmod -R 775 public/avatars
|
||||
```
|
||||
<!-- Screenshot Platzhalter -->
|
||||
[📸 Screenshot: Vereinfachtes Registrierungsformular]
|
||||
[📸 Screenshot: Admin-Benutzererstellung]
|
||||
[📸 Screenshot: Automatisch aktivierter Benutzer]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Voraussetzungen
|
||||
## Erweiterung der Admin-Funktionen
|
||||
|
||||
- PHP >= 5.5 (laut composer.json)
|
||||
- Composer
|
||||
- Apache 2.4 mit `mod_rewrite`
|
||||
- MySQL/MariaDB
|
||||
- PHP-Erweiterungen: PDO + pdo_mysql, OpenSSL, mbstring
|
||||
- Schreibrechte für `public/avatars/`
|
||||
#### 👥 Benutzergruppen-Verwaltung
|
||||
|
||||
---
|
||||
**Beschreibung:**
|
||||
Implementierung einer erweiterten Benutzerverwaltung mit Gruppen-System. Anstelle des einfachen Typen-Feldes wurde eine vollwertige Gruppenverwaltung eingeführt.
|
||||
|
||||
## Projekt beziehen
|
||||
**Gruppenstruktur:**
|
||||
- **Admin (Typ 7)**: Voll administrative Rechte
|
||||
- **Gast (Typ 1)**: Leserechte für öffentliche Inhalte
|
||||
- **Normaler Benutzer (Typ 2)**: Standard-Benutzerrechte
|
||||
- **Typen 3-6**: Reserviert für zukünftige Gruppenerweiterungen
|
||||
|
||||
- Repository klonen oder entpacken
|
||||
- In den Projektordner wechseln
|
||||
**Technische Umsetzung:**
|
||||
- Erstellung einer neuen Tabelle `user_groups` zur Gruppendefinition
|
||||
- Zuweisung von Gruppennamen zu den Typen
|
||||
- Integration in die Benutzerverwaltung des Admins
|
||||
|
||||
---
|
||||
#### Öffentliches Benutzerverzeichnis mit DataTables
|
||||
|
||||
## Abhängigkeiten installieren (Composer)
|
||||
**Beschreibung:**
|
||||
Implementierung einer öffentlichen Benutzerliste, die alle Benutzer und ihre Gruppen anzeigt. Diese Liste ist für alle zugänglich, jedoch schreibgeschützt.
|
||||
|
||||
- Im Projektordner ausführen:
|
||||
**Technische Features:**
|
||||
- Integration von DataTables/jQuery für interaktive Tabellen
|
||||
- Sortier- und Filterfunktionen
|
||||
- Paginierung der Benutzerliste
|
||||
- Responsive Darstellung auf verschiedenen Geräten
|
||||
|
||||
```bash
|
||||
composer install
|
||||
**Zugriffsrechte:**
|
||||
- **Öffentlicher Zugriff**: Nur Anzeige der Benutzerliste
|
||||
- **Admin-Zugriff**: Vollständige Verwaltungsfunktionen
|
||||
|
||||
```
|
||||
<!-- Screenshot Platzhalter -->
|
||||
[📸 Screenshot: Admin-Gruppenzuweisung]
|
||||
[📸 Screenshot: Öffentliches Benutzerverzeichnis mit DataTables]
|
||||
[📸 Screenshot: jQuery DataTables in Aktion]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Webserver konfigurieren (Apache)
|
||||
## jQuery - Einführung und Grundlagen
|
||||
|
||||
- DocumentRoot auf `.../huge/public` setzen
|
||||
- `AllowOverride All` aktivieren (damit `.htaccess` greift)
|
||||
- `mod_rewrite` aktivieren
|
||||
- Apache neu starten
|
||||
#### JavaScript Basics
|
||||
jQuery ist eine JavaScript-Bibliothek, die grundlegende JavaScript-Kenntnisse voraussetzt. Wichtige Grundlagen umfassen:
|
||||
|
||||
Minimalbeispiel VirtualHost:
|
||||
- DOM-Manipulation
|
||||
- Event-Handling
|
||||
- Asynchrone Programmierung
|
||||
- Objektorientierte Programmierung
|
||||
|
||||
```apacheconf
|
||||
<VirtualHost *:80>
|
||||
ServerName huge.local
|
||||
DocumentRoot "/pfad/zu/huge/public"
|
||||
#### jQuery Grundlagen
|
||||
Die jQuery-Bibliothek ist zentral für die Interaktivität der Benutzeroberfläche:
|
||||
|
||||
<Directory "/pfad/zu/huge/public">
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
SetEnv APPLICATION_ENV development
|
||||
ErrorLog "${APACHE_LOG_DIR}/huge_error.log"
|
||||
CustomLog "${APACHE_LOG_DIR}/huge_access.log" combined
|
||||
</VirtualHost>
|
||||
**Einbindung:**
|
||||
```html
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
```
|
||||
|
||||
Hinweis: `.htaccess` leitet auf `public/index.php` um.
|
||||
**Zentrale Elemente:**
|
||||
- **Dollarzeichen ($)**: Hauptselektor für DOM-Elemente
|
||||
- **Basis-Syntax**: `$("element")`
|
||||
- **Document Ready**: `$(document).ready(function(){ ... })`
|
||||
|
||||
---
|
||||
**Wichtige Selektoren:**
|
||||
```javascript
|
||||
// ID-Selektor (schnellste Methode)
|
||||
$("#elementId")
|
||||
|
||||
## Datenbank anlegen
|
||||
// Klassen-Selektor
|
||||
$(".klassenname")
|
||||
|
||||
- SQL-Skripte in dieser Reihenfolge ausführen (`application/_installation/`):
|
||||
- `01-create-database.sql`
|
||||
- `02-create-table-users.sql`
|
||||
- `03-create-table-notes.sql`
|
||||
// Multi-Selektor
|
||||
$("div, p, a, span")
|
||||
|
||||
Beispiel in der Shell:
|
||||
|
||||
```bash
|
||||
mysql -u root -p < application/_installation/01-create-database.sql
|
||||
mysql -u root -p < application/_installation/02-create-table-users.sql
|
||||
mysql -u root -p < application/_installation/03-create-table-notes.sql
|
||||
// Komplexe Selektoren
|
||||
$("#container .item:first-child")
|
||||
```
|
||||
|
||||
---
|
||||
**DOM-Manipulation:**
|
||||
```javascript
|
||||
// Einzelne Eigenschaft ändern
|
||||
$("#test").css("color", "#FFFFFF");
|
||||
|
||||
## Framework-Konfiguration (Entwicklung)
|
||||
// Mehrere Eigenschaften ändern
|
||||
$("#test").css({
|
||||
"color": "#FFFFFF",
|
||||
"height": "25px"
|
||||
});
|
||||
|
||||
- Datei: `application/config/config.development.php`
|
||||
- Wichtige Schlüssel:
|
||||
- URL
|
||||
- `URL` (Basis-URL, endet mit `/`; auto-detect möglich)
|
||||
- Pfade
|
||||
- `PATH_CONTROLLER`, `PATH_VIEW` (meist unverändert)
|
||||
- Routing
|
||||
- `DEFAULT_CONTROLLER`, `DEFAULT_ACTION`
|
||||
- Datenbank
|
||||
- `DB_TYPE`, `DB_HOST`, `DB_PORT`, `DB_NAME`, `DB_USER`, `DB_PASS`, `DB_CHARSET`
|
||||
- Captcha
|
||||
- `CAPTCHA_WIDTH`, `CAPTCHA_HEIGHT`
|
||||
- Cookies & Session
|
||||
- `COOKIE_RUNTIME`, `COOKIE_PATH`, `COOKIE_DOMAIN`, `COOKIE_SECURE`, `COOKIE_HTTP`
|
||||
- `SESSION_RUNTIME`
|
||||
- Avatare/Gravatar
|
||||
- `USE_GRAVATAR`, `GRAVATAR_DEFAULT_IMAGESET`, `GRAVATAR_RATING`
|
||||
- `AVATAR_SIZE`, `AVATAR_JPEG_QUALITY`, `AVATAR_DEFAULT_IMAGE`
|
||||
- Ordner `public/avatars/` beschreibbar machen
|
||||
- Sicherheit
|
||||
- `ENCRYPTION_KEY`, `HMAC_SALT` (für eigene Installation ändern)
|
||||
- E-Mail
|
||||
- `EMAIL_USED_MAILER`, `EMAIL_USE_SMTP`
|
||||
- `EMAIL_SMTP_HOST`, `EMAIL_SMTP_AUTH`, `EMAIL_SMTP_USERNAME`, `EMAIL_SMTP_PASSWORD`, `EMAIL_SMTP_PORT`, `EMAIL_SMTP_ENCRYPTION`
|
||||
- `EMAIL_PASSWORD_RESET_*`, `EMAIL_VERIFICATION_*`
|
||||
|
||||
---
|
||||
|
||||
## Umgebungen (Environment)
|
||||
|
||||
- Klasse: `application/core/Environment.php`
|
||||
- Ermittelt `APPLICATION_ENV` (Fallback: `development`)
|
||||
- Weitere Datei möglich: `config.production.php`
|
||||
- Apache-Variable setzen:
|
||||
|
||||
```apacheconf
|
||||
SetEnv APPLICATION_ENV production
|
||||
// Methodenverkettung (Chaining)
|
||||
$("#test")
|
||||
.css({ "color": "#FFFFFF", "height": "25px" })
|
||||
.html("Neuer Text")
|
||||
.show();
|
||||
```
|
||||
|
||||
---
|
||||
#### DataTables Integration
|
||||
DataTables erweitert HTML-Tabellen um leistungsstarke Funktionen:
|
||||
|
||||
## Verzeichnisrechte
|
||||
|
||||
- `public/avatars/` beschreibbar
|
||||
- Optional Logs/Uploads je nach Bedarf
|
||||
|
||||
---
|
||||
|
||||
## Starten
|
||||
|
||||
- Browser: `http://<host>/`
|
||||
- Registrierung/Login testen
|
||||
- Mailversand nur mit korrekt konfiguriertem SMTP
|
||||
|
||||
---
|
||||
|
||||
## Tests ausführen
|
||||
|
||||
- PHPUnit unter `vendor/bin/phpunit`
|
||||
- Konfiguration: `tests/phpunit.xml`
|
||||
|
||||
```bash
|
||||
vendor/bin/phpunit -c tests/phpunit.xml
|
||||
```javascript
|
||||
$(document).ready(function() {
|
||||
$('#benutzerTabelle').DataTable({
|
||||
"language": {
|
||||
"url": "//cdn.datatables.net/plug-ins/1.10.25/i18n/German.json"
|
||||
},
|
||||
"pageLength": 25,
|
||||
"responsive": true
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Häufige Probleme
|
||||
|
||||
- 404 bei allen Routen
|
||||
- `mod_rewrite` aktivieren
|
||||
- `AllowOverride All` setzen
|
||||
- DocumentRoot auf `public/`
|
||||
- Falsche Links/Assets
|
||||
- `URL` in der Config prüfen
|
||||
- Datenbankfehler
|
||||
- `DB_*`-Werte und Rechte prüfen
|
||||
- E-Mails kommen nicht an
|
||||
- `EMAIL_USE_SMTP=true` und SMTP-Daten prüfen
|
||||
- Avatare fehlen
|
||||
- Schreibrechte für `public/avatars/`
|
||||
**Features:**
|
||||
- Automatische Sortierung aller Spalten
|
||||
- Suchfunktion in Echtzeit
|
||||
- Paginierung mit anpassbarer Seitenlänge
|
||||
- Responsive Darstellung auf mobilen Geräten
|
||||
- Mehrsprachige Unterstützung (Deutsch implementiert)
|
||||
|
||||
---
|
||||
|
||||
## Option: Vagrant „One-Click-Installation“
|
||||
|
||||
- Ordner: `_one-click-installation/`
|
||||
- Voraussetzungen: Vagrant + VirtualBox
|
||||
|
||||
```bash
|
||||
cd _one-click-installation
|
||||
vagrant up
|
||||
```
|
||||
|
||||
- Projekt über die VM nutzen (Host/Ports laut Vagrant-Ausgabe)
|
||||
|
||||
---
|
||||
|
||||
## Struktur (Kurz)
|
||||
|
||||
- `public/` (Webroot, `.htaccess`, `index.php`)
|
||||
- `application/controller/` (Controller)
|
||||
- `application/model/` (Modelle)
|
||||
- `application/view/` (Views)
|
||||
- `application/config/` (Konfiguration je Environment)
|
||||
- `application/_installation/` (SQL-Skripte)
|
||||
- `vendor/` (Composer-Abhängigkeiten)
|
||||
- `tests/` (PHPUnit)
|
||||
<div align="center">
|
||||
<img src="./assets/footer/gray0_ctp_on_line.svg" alt="Gadze"/>
|
||||
</div>
|
||||
Reference in New Issue
Block a user