Skip to main content

🖼️ Automatisches Erstellen des User-Ordners

🎯 Ziel

Jeder Benutzer erhält in MODX 3 einen eigenen Datei-Ordner und sieht im Manager (Dateibrowser/TVs) nur diesen Ordner: /assets/modx/content/user/<USER-ID>/


Tags werden in Media Sources geparst

1) Benutzer-Ordnerstruktur vorbereiten

Lege den Basisordner an:

assets/modx/content/user/

2) Snippet getUserID erstellen

Elemente → Snippets → Neu

<?php
/**
 * getUserID (MODX 3)
 * - holt die aktuell eingeloggte User-ID im mgr-Kontext
 * - legt bei Bedarf den User-Ordner unter assets/modx/content/user/<ID>/ an
 * - gibt die User-ID als String zurück
 */

$contextKey = 'mgr';

// aktuell eingeloggten User im Manager holen
$user = $modx->getUser($contextKey);
if (!$user || !$user->isAuthenticated($contextKey)) {
    return '';
}

$userId = (int) $user->get('id');
if ($userId <= 0) {
    return '';
}

// Basis-Pfad aus System-Setting assets_path holen
$assetsPath = $modx->getOption('assets_path', null, MODX_ASSETS_PATH);

// Zielordner: assets/modx/content/user/<UserID>/
$usersFolder = $assetsPath . 'modx/content/user/' . $userId . '/';

// Ordner anlegen, falls nicht vorhanden
if (!is_dir($usersFolder)) {
    mkdir($usersFolder, 0755, true);
}

return (string) $userId;

(MODX-API: $modx->getUser() / $user->get('id'))

3) Menü Medien → Medienquellen

Passe deine Medienquelle an:

  • basePath: assets/modx/content/user/[[!getUserID]]/
  • baseUrl: assets/modx/content/user/[[!getUserID]]/
  • basePathRelative: Ja
  • baseUrlRelative: Ja

Hinweis: Endet jeweils mit /.