Backup #242

ID242
Dateipfad/var/www/dev.campus.systemische-tools.de/src/Controller/DocsController.php
Version4
Typ modified
Größe3.6 KB
Hash836467a537f8daca06fce31ba87802e183a1e6596a2c96723c348623104f19a9
Datum2025-12-22 01:46:42
Geändert vonclaude-code-hook
GrundClaude Code Pre-Hook Backup vor Edit-Operation
Datei existiert Ja

Dateiinhalt

<?php

namespace Controller;

use Framework\Controller;
use Infrastructure\Persistence\DokumentationRepository;
use Infrastructure\Persistence\KiProtokollRepository;
use Infrastructure\Persistence\TaskAssignmentRepository;
use Infrastructure\Persistence\TaskCommentRepository;
use Infrastructure\Persistence\TaskRepository;
use Infrastructure\Persistence\TaskResultRepository;

class DocsController extends Controller
{
    private DokumentationRepository $docsRepo;

    public function __construct()
    {
        $this->docsRepo = new DokumentationRepository();
    }

    public function index(): void
    {
        $this->view('docs.index', [
            'title' => 'Dokumentation',
            'hierarchy' => $this->docsRepo->getHierarchy(),
        ]);
    }

    public function redirectBySlug(string $slug): void
    {
        $doc = $this->docsRepo->findDocBySlug($slug);

        if ($doc === null) {
            $this->notFound('Dokumentation nicht gefunden: ' . $slug);
        }

        header('Location: /docs' . $doc['path'], true, 301);
        exit;
    }

    public function show(string $path): void
    {
        $path = '/' . ltrim($path, '/');
        $doc = $this->docsRepo->findByPath($path);

        if ($doc === null) {
            $this->notFound('Dokumentation nicht gefunden: ' . $path);
        }

        $data = [
            'title' => $doc['title'],
            'doc' => $doc,
            'breadcrumb' => $this->docsRepo->getBreadcrumb((int) $doc['id']),
            'children' => $this->docsRepo->findChildren((int) $doc['id']),
            'siblings' => $this->docsRepo->getSiblings((int) $doc['id']),
        ];

        // Modul-spezifische Daten laden
        if ($doc['slug'] === 'ki-protokoll') {
            $repository = new KiProtokollRepository();
            $data['entries'] = $repository->findLatest(20);
        }

        $this->view('docs.show', $data);
    }

    public function tasksIndex(): void
    {
        $taskRepo = new TaskRepository();
        $data = [
            'title' => 'Tasks',
            'stats' => $taskRepo->getStatistics(),
            'tasks' => array_map(fn ($t) => $t->toArray(), $taskRepo->findAll([], 50, 0)),
        ];

        $this->view('tasks.index', $data);
    }

    public function tasksNew(): void
    {
        $this->view('tasks.new', [
            'title' => 'Neuer Task',
        ]);
    }

    public function tasksEdit(string $id): void
    {
        $taskRepo = new TaskRepository();
        $task = $taskRepo->findById((int) $id);

        if ($task === null) {
            http_response_code(404);
            echo '404 - Task nicht gefunden';

            return;
        }

        $this->view('tasks.edit', [
            'title' => 'Task bearbeiten',
            'task' => $task->toArray(),
        ]);
    }

    public function taskShow(string $id): void
    {
        $taskRepo = new TaskRepository();
        $task = $taskRepo->findById((int) $id);

        if ($task === null) {
            http_response_code(404);
            echo '404 - Task nicht gefunden';

            return;
        }

        $assignmentRepo = new TaskAssignmentRepository();
        $resultRepo = new TaskResultRepository();
        $commentRepo = new TaskCommentRepository();

        $this->view('tasks.show', [
            'title' => 'Task #' . $id,
            'task' => $task->toArray(),
            'assignments' => array_map(fn ($a) => $a->toArray(), $assignmentRepo->findByTaskId((int) $id)),
            'results' => array_map(fn ($r) => $r->toArray(), $resultRepo->findByTaskId((int) $id)),
            'comments' => array_map(fn ($c) => $c->toArray(), $commentRepo->findByTaskId((int) $id)),
        ]);
    }
}

Vollständig herunterladen

Aktionen

Herunterladen

Andere Versionen dieser Datei

ID Version Typ Größe Datum
1271 14 modified 4.1 KB 2025-12-25 12:52
688 13 modified 4.0 KB 2025-12-23 07:52
611 12 modified 4.3 KB 2025-12-23 04:42
408 11 modified 4.1 KB 2025-12-22 08:59
384 10 modified 4.3 KB 2025-12-22 08:27
383 9 modified 4.3 KB 2025-12-22 08:27
382 8 modified 4.4 KB 2025-12-22 08:27
381 7 modified 4.4 KB 2025-12-22 08:27
380 6 modified 3.5 KB 2025-12-22 08:26
243 5 modified 3.6 KB 2025-12-22 01:46
242 4 modified 3.6 KB 2025-12-22 01:46
241 3 modified 3.7 KB 2025-12-22 01:46
240 2 modified 3.8 KB 2025-12-22 01:46
1 1 modified 1.1 KB 2025-12-20 01:50

← Zurück zur Übersicht