2025-10-03 12:30:04 +02:00
|
|
|
# Hvordan tilpasse maler
|
|
|
|
|
|
|
|
|
|
Lær hvordan du tilpasser utseendet og følelsen av PnP-siden din.
|
|
|
|
|
|
|
|
|
|
## Tilpasse basismalen
|
|
|
|
|
|
|
|
|
|
Basismalen kontrollerer det overordnede oppsettet for siden din.
|
|
|
|
|
|
|
|
|
|
1. Naviger til `/app/custom/templates/`
|
|
|
|
|
2. Rediger `base.php`
|
|
|
|
|
3. Endre HTML-strukturen etter behov
|
|
|
|
|
|
|
|
|
|
Eksempel: Legg til en egendefinert header:
|
|
|
|
|
|
|
|
|
|
```php
|
|
|
|
|
<header>
|
|
|
|
|
<div class="logo">
|
|
|
|
|
<a href="/">Min egendefinerte side</a>
|
|
|
|
|
</div>
|
|
|
|
|
<nav>
|
|
|
|
|
<?php foreach ($navigation as $item): ?>
|
|
|
|
|
<a href="<?= $item['url'] ?>"><?= $item['title'] ?></a>
|
|
|
|
|
<?php endforeach; ?>
|
|
|
|
|
</nav>
|
|
|
|
|
</header>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Tilpasse listemalen
|
|
|
|
|
|
|
|
|
|
Listemalen kontrollerer hvordan mapper med innhold vises.
|
|
|
|
|
|
|
|
|
|
1. Rediger `/app/custom/templates/list.php`
|
|
|
|
|
2. Endre HTML-strukturen for listeelementer
|
|
|
|
|
|
|
|
|
|
Eksempel: Legg til en egendefinert wrapper:
|
|
|
|
|
|
|
|
|
|
```php
|
|
|
|
|
<article>
|
|
|
|
|
<?php foreach ($items as $item): ?>
|
|
|
|
|
<div class="card">
|
|
|
|
|
<?php if ($item['cover']): ?>
|
|
|
|
|
<img src="<?= $item['cover'] ?>" alt="<?= htmlspecialchars($item['title']) ?>">
|
|
|
|
|
<?php endif; ?>
|
|
|
|
|
<h2><a href="<?= $item['url'] ?>"><?= htmlspecialchars($item['title']) ?></a></h2>
|
|
|
|
|
<time><?= $item['date'] ?></time>
|
|
|
|
|
<?php if ($item['summary']): ?>
|
|
|
|
|
<p><?= htmlspecialchars($item['summary']) ?></p>
|
|
|
|
|
<?php endif; ?>
|
|
|
|
|
</div>
|
|
|
|
|
<?php endforeach; ?>
|
|
|
|
|
</article>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Tilpasse sidemalen
|
|
|
|
|
|
|
|
|
|
Sidemalen brukes for å pakke inn enkeltinnhold.
|
|
|
|
|
|
|
|
|
|
1. Rediger `/app/custom/templates/page.php`
|
|
|
|
|
2. Legg til egendefinerte elementer rundt innholdet
|
|
|
|
|
|
|
|
|
|
Eksempel:
|
|
|
|
|
|
|
|
|
|
```php
|
|
|
|
|
<article class="page-content">
|
2026-05-10 22:02:48 +02:00
|
|
|
<?php if (!empty($metadata) && isset($metadata['title'])): ?>
|
2025-10-03 12:30:04 +02:00
|
|
|
<header>
|
2026-05-10 22:02:48 +02:00
|
|
|
<h1><?= htmlspecialchars($metadata['title']) ?></h1>
|
2025-10-03 12:30:04 +02:00
|
|
|
</header>
|
|
|
|
|
<?php endif; ?>
|
|
|
|
|
|
|
|
|
|
<?= $content ?>
|
|
|
|
|
|
|
|
|
|
<footer>
|
|
|
|
|
<p>Sist oppdatert: <?= date('d.m.Y') ?></p>
|
|
|
|
|
</footer>
|
|
|
|
|
</article>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Tilpasse stiler
|
|
|
|
|
|
|
|
|
|
1. Rediger `/app/custom/styles/base.css`
|
|
|
|
|
2. Endre CSS-variabler for farger, fonter, etc.
|
|
|
|
|
|
|
|
|
|
Eksempel:
|
|
|
|
|
|
|
|
|
|
```css
|
|
|
|
|
:root {
|
|
|
|
|
--color-primary: oklch(0.65 0.25 30);
|
|
|
|
|
--color-background: oklch(0.98 0 0);
|
|
|
|
|
--font-body: 'Georgia', serif;
|
|
|
|
|
--font-heading: 'Helvetica Neue', sans-serif;
|
|
|
|
|
--spacing-base: 1rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body {
|
|
|
|
|
font-family: var(--font-body);
|
|
|
|
|
background: var(--color-background);
|
|
|
|
|
line-height: 1.6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
h1, h2, h3 {
|
|
|
|
|
font-family: var(--font-heading);
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Bruke standardmaler
|
|
|
|
|
|
|
|
|
|
Hvis `/app/custom/` ikke eksisterer, bruker PnP standardmaler fra `/app/default/`. Dette er nyttig for raske oppsett.
|
|
|
|
|
|
|
|
|
|
## Tilgjengelige variabler i maler
|
|
|
|
|
|
|
|
|
|
### I `base.php`:
|
|
|
|
|
- `$content` - Det rendrede innholdet
|
|
|
|
|
- `$navigation` - Array med navigasjonselementer
|
|
|
|
|
- `$currentLang` - Nåværende språk
|
|
|
|
|
- `$homeLabel` - Label for hjem-knappen
|
|
|
|
|
|
|
|
|
|
### I `page.php`:
|
|
|
|
|
- `$content` - Sideinnholdet
|
2026-05-10 22:02:48 +02:00
|
|
|
- `$metadata` - Metadata for siden
|
2025-10-03 12:30:04 +02:00
|
|
|
- `$pageTitle` - Sidens tittel
|
|
|
|
|
|
|
|
|
|
### I `list.php`:
|
|
|
|
|
- `$items` - Array med listeelementer
|
|
|
|
|
- `$metadata` - Metadata for mappen
|
|
|
|
|
- `$pageContent` - Valgfritt innhold fra page.md i mappen
|