Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tamplating and Content #74

Merged
merged 5 commits into from
Sep 24, 2024
Merged

Tamplating and Content #74

merged 5 commits into from
Sep 24, 2024

Conversation

skerbis
Copy link
Member

@skerbis skerbis commented Sep 24, 2024

Erweiterung der PdfOut-Klasse: Grundtemplate und REDAXO-Artikel-Integration

Zusammenfassung

Dieser PR erweitert die PdfOut-Klasse um zwei wichtige Funktionen:

  1. Unterstützung für ein optionales Grundtemplate
  2. Direkte Integration von REDAXO-Artikeln

Änderungen im Detail

Neue Funktionen:

  • setBaseTemplate($template, $placeholder): Ermöglicht das Setzen eines HTML-Grundtemplates für das PDF.
  • addArticle($articleId, $ctype = null): Fügt den Inhalt eines REDAXO-Artikels direkt zum PDF hinzu.

Anpassungen:

  • Die run()-Methode wurde aktualisiert, um das optionale Grundtemplate zu berücksichtigen.
  • Umfangreiche PHPDoc-Kommentare wurden hinzugefügt, um die Verwendung der Klasse zu erleichtern.

Begründung

Diese Erweiterungen bieten mehr Flexibilität bei der PDF-Erstellung:

  • Das Grundtemplate ermöglicht eine konsistente Gestaltung über mehrere PDFs hinweg.
  • Die direkte Integration von REDAXO-Artikeln vereinfacht den Workflow bei der Erstellung von PDFs aus bestehenden Inhalten.

Auswirkungen

  • Bestehender Code, der die PdfOut-Klasse verwendet, sollte ohne Änderungen weiterhin funktionieren.
  • Die neuen Funktionen sind optional und beeinträchtigen die bisherige Funktionalität nicht.

Beispielverwendung

$pdf = new PdfOut();
$pdf->setBaseTemplate('<!DOCTYPE html><html><body><header>Meine Kopfzeile</header>{{CONTENT}}<footer>Meine Fußzeile</footer></body></html>')
   ->addArticle(1)
   ->setHtml('<p>Zusätzlicher Inhalt</p>')
   ->run();
   
## Beispiel 2

// Setze ein Grundtemplate
$pdf->setBaseTemplate('
<!DOCTYPE html>
<html>
<head>
    <title>Mein PDF</title>
    <style>
        body { font-family: Arial, sans-serif; }
        .header { background-color: #f0f0f0; padding: 10px; }
        .footer { text-align: center; margin-top: 20px; }
    </style>
</head>
<body>
    <div class="header">
        <h1>Mein Unternehmen</h1>
    </div>
    {{CONTENT}}
    <div class="footer">
        <p>Seite 1 von DOMPDF_PAGE_COUNT_PLACEHOLDER</p>
    </div>
</body>
</html>
');

// Füge Inhalte hinzu
$pdf->addArticle(1)
    ->addArticle(2, 1)
    ->setHtml('<p>Zusätzlicher HTML-Inhalt</p>')
    ->run();   
   
   

# Erweiterung der PdfOut-Klasse: Grundtemplate und REDAXO-Artikel-Integration

## Zusammenfassung
Dieser PR erweitert die `PdfOut`-Klasse um zwei wichtige Funktionen:
1. Unterstützung für ein optionales Grundtemplate
2. Direkte Integration von REDAXO-Artikeln

## Änderungen im Detail

### Neue Funktionen:
- `setBaseTemplate($template, $placeholder)`: Ermöglicht das Setzen eines HTML-Grundtemplates für das PDF.
- `addArticle($articleId, $ctype = null)`: Fügt den Inhalt eines REDAXO-Artikels direkt zum PDF hinzu.

### Anpassungen:
- Die `run()`-Methode wurde aktualisiert, um das optionale Grundtemplate zu berücksichtigen.
- Umfangreiche PHPDoc-Kommentare wurden hinzugefügt, um die Verwendung der Klasse zu erleichtern.

## Begründung
Diese Erweiterungen bieten mehr Flexibilität bei der PDF-Erstellung:
- Das Grundtemplate ermöglicht eine konsistente Gestaltung über mehrere PDFs hinweg.
- Die direkte Integration von REDAXO-Artikeln vereinfacht den Workflow bei der Erstellung von PDFs aus bestehenden Inhalten.

## Auswirkungen
- Bestehender Code, der die `PdfOut`-Klasse verwendet, sollte ohne Änderungen weiterhin funktionieren.
- Die neuen Funktionen sind optional und beeinträchtigen die bisherige Funktionalität nicht.

## Beispielverwendung

```php
$pdf = new PdfOut();
$pdf->setBaseTemplate('<!DOCTYPE html><html><body><header>Meine Kopfzeile</header>{{CONTENT}}<footer>Meine Fußzeile</footer></body></html>')
   ->addArticle(1)
   ->setHtml('<p>Zusätzlicher Inhalt</p>')
   ->run();
@skerbis skerbis merged commit cdda65a into master Sep 24, 2024
@skerbis skerbis deleted the skerbis-patch-1 branch September 24, 2024 14:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant