Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekt-offen:software:dokuwiki
β™ŒοΈ Sternzeichen des Tages: LΓΆwe 03.08.2026 - β–Ό (hier Klicken zum Γ–ffnen) β–Ό
Wir wΓΌnschen allen β€žLΓΆwe" - Geborenen viel GlΓΌck und Erfolg! πŸ€
β€’ β€’ β€’
πŸ“œ Schon in der Antike wurde der LΓΆwe mit KΓΆnigtum verbunden. In der griechischen Mythologie bestand eine der zwΓΆlf Aufgaben des Herakles darin, den unverwundbaren Nemeischen LΓΆwen zu bezwingen. Auch im Mittelalter galten unter diesem Zeichen Geborene oft als vom Schicksal begΓΌnstigte Herrscher.
LΓΆwe
(23. Juli – 23. August)
πŸ“– Weitere Infos
Element: πŸ”₯ Feuer   |   πŸͺ Herrscherplanet: Sonne
πŸ›οΈ Schutzgottheit: Apollon (Gott der Sonne)
πŸ“ Charakteristik: Der LΓΆwe ist großzΓΌgig, charismatisch und selbstbewusst. Er strahlt natΓΌrliche AutoritΓ€t aus und zieht Menschen in seinen Bann. Ein geboren AnfΓΌhrer mit großem Herzen.
πŸ’ž Liebe & KompatibilitΓ€t: βœ… Passt gut mit: Widder, SchΓΌtze, Waage | ⚠️ Schwierig mit: Stier, Skorpion
πŸ€ GlΓΌckszahl: 1   |   🎨 GlΓΌcksfarbe: Gold   |   πŸ“† GlΓΌckstag: Sonntag
πŸ’Ž GlΓΌcksstein: Rubin   |   🦴 KΓΆrperteil: Herz & RΓΌcken
🌟 Bekannte Persânlichkeiten: Napoleon Bonaparte, Coco Chanel, Barack Obama
πŸ’‘ 10 Tipps fΓΌr LΓΆwe-Geborene:
  1. Bescheiden bleiben – nicht ΓΌberheblich wirken
  2. ZuhΓΆren – auch andere Meinungen gelten lassen
  3. Teamplayer sein – den Erfolg teilen
  4. SchwΓ€chen zeigen – niemand ist perfekt
  5. Kompromisse suchen – den Partner miteinbeziehen
  6. Entspannen – nicht immer Vollgas geben
  7. Fehler verzeihen – nachsichtig mit sich sein
  8. GenΓΌgsam bleiben – GlΓΌck kommt von Innen
  9. FΓΌr andere da sein – nicht nur an sich denken
  10. Neues wagen – ΓΌber den Tellerrand blicken
πŸ’‘ Weisheit des Tages ... vom: 03.08.2026 - β–Ό (hier Klicken zum Γ–ffnen) β–Ό
Heute von: Isaac Newton (1643 – 1727)
β€’ β€’ β€’
„Was wir wissen, ist ein Tropfen, was wir nicht wissen, ein Ozean.“
Isaac Newton
πŸ“œ Kurzbiografie
Sir Isaac Newton war ein englischer Naturforscher und Verwaltungsbeamter. In der Sprache seiner Zeit, die zwischen natΓΌrlicher Theologie, Naturwissenschaften und Philosophie noch nicht scharf trennte, wurde Newton als Philosoph bezeichnet.

Projekt: DokuWiki


Unternehmens-Wiki: Was man bei der EinfΓΌhrung eines Firmenwikis beachten muss…




===== EinfΓΌhrung und Realisierung eines Unternehmens-Wiki =====


Hier noch zwei YouTube-Videos zur Handhabung...


Webserver/htaccess/Passwortschutz

Webserver/htaccess

Webserver/htaccess/


β€” Roland Otto 2023/05/21 13:45



DokuWiki

DokuWiki ist eine einfach zu bedienende und Àußerst vielseitige Open-Source-Wiki-Software, die keine Datenbank benâtigt.

Es wird von den Nutzern wegen seiner sauberen und lesbaren Syntax geliebt. Die einfache Wartung, Sicherung und Integration machen es zu einem Favoriten für Administratoren. Eingebaute Zugriffskontrollen und Authentifizierungs-Connectoren machen DokuWiki besonders nützlich im Unternehmenskontext, und die große Anzahl von Plugins der lebendigen Community ermâglicht eine breite Palette von AnwendungsfÀllen jenseits eines traditionellen Wikis.

DokuWiki (ErklΓ€rung)

.: Warum DokuWiki? :.

DokuWiki ist eine beliebte Wahl bei der Wahl einer Wiki-Software und bietet viele Vorteile gegenΓΌber Γ€hnlicher Software.

  • Einfach zu installieren und zu bedienen
  • Geringe Systemanforderungen
  • Eingebaute Zugriffskontrolllisten
  • Große Vielfalt an Erweiterungen
  • Über 50 unterstΓΌtzte Sprachen
  • GerΓ€teunabhΓ€ngig
  • Open Source (!)

β€” Roland Otto 2026/04/14 20:30



.: AnwendungsfΓ€lle DokuWiki :.

Wikis lassen sich schnell aktualisieren und neue Seiten werden leicht hinzugefΓΌgt. DokuWiki wurde fΓΌr Zusammenarbeit konzipiert und gleichzeitig eine Historie jeder Γ„nderung verwaltet und kΓΆnnte als:

  • Unternehmenswissensdatenbank
  • Privates Notizbuch
  • Softwarehandbuch
  • Projektarbeitsbereich
  • CMS – Intranet

β€” Roland Otto 2026/04/14 20:30



.: DokuWiki anpassen :.

Wir unterstΓΌtzen Individualisierung auf allen Fachwissensebenen. Von der einfachen Konfiguration ΓΌber die Admin-OberflΓ€che ΓΌber das Herunterladen von Vorlagen und Plugins bis hin zur Entwicklung eigener Erweiterungen.

β€” Roland Otto 2026/04/14 20:30



.: Unsere Gemeinschaft :.

Ein Teil von OpenSource ist, der Community etwas zurΓΌckzugeben, indem man sich engagiert. Es gibt zahlreiche MΓΆglichkeiten, dies zu tun.

β€” Roland Otto 2026/04/14 20:30



.: Urheberrecht :.

2004-2025 Β© Andreas Gohr andi [at] splitbrain [dot] org1) und die DokuWiki-Community

Die DokuWiki-Engine ist unter GNU General Public License Version 2 lizenziert.
Wenn du DokuWiki in deinem Unternehmen nutzt, solltest du ein paar Euro spendenwink.

Ich bin mir nicht sicher, was das bedeutet? Siehe die FAQ zu den Lizenzen.


1) Bitte kontaktieren Sie mich nicht fΓΌr Hilfe und UnterstΓΌtzung – nutzen Sie stattdessen die Mailingliste oder das Forum





Spezial-Programmierungen

.: automatische Jahre… :.

==== Überblick: Was war das Ziel? ====

Du wolltest in deiner DokuWiki‑Seite einen Satz wie

β€žErfahrung von ΓΌber 15 Jahren Unterricht bei der VHS.β€œ

nicht jedes Jahr manuell anpassen, sondern automatisch berechnen lassen, ausgehend von einem festen Startdatum (z.β€―B. 01.09.2010).

Konkret sollte also DokuWiki selbst ausrechnen:

  • wie viele volle Jahre seit einem Startdatum vergangen sind
  • und diese Zahl im Text anzeigen

Beispiel:

''Erfahrung: 15 Jahre Unterricht bei der VHS.''

statt:

''Erfahrung: {{vhsexperience>2010-09-01}}''

===== 1. Erste Idee: Fertige Plugins wie β€ždateβ€œ oder β€žyearβ€œ =====

==== 1.1 Das β€ždateβ€œ-Plugin ====

Die ursprΓΌngliche Idee war, ein vorhandenes Plugin zu nutzen, z.β€―B. das Date‑Plugin.
Dieses Plugin bietet u.β€―a. eine Syntax, um Datumsdifferenzen zu berechnen, z.β€―B.:

''{{date>diff:2010-09-01:now:years}}''

Die Idee dahinter:

  • 2010-09-01 = Startdatum
  • now = aktuelles Datum
  • years = Ausgabe in Jahren

Erwartetes Ergebnis wΓ€re z.β€―B.:

''15''

oder eingebettet:

''Erfahrung: {{date>diff:2010-09-01:now:years}} Jahre Unterricht bei der VHS.''

==== 1.2 Warum das bei dir nicht funktioniert hat ====

In deinem Wiki wurde der Ausdruck aber nicht berechnet, sondern quasi β€žauseinandergerissenβ€œ angezeigt, etwa so:

''Erfahrung: diff:2010-09-01:now:years Jahre Unterricht bei der VHS.''

Das ist ein typisches Zeichen dafΓΌr, dass:

  • die Γ€ußere Plugin‑Syntax ... nicht erkannt wurde
  • das Plugin nicht installiert oder nicht geladen ist
  • DokuWiki den Inhalt daher einfach als normalen Text behandelt

ZusΓ€tzlich ist das Date‑Plugin relativ alt und kann mit neueren DokuWiki‑Versionen Probleme haben (InkompatibilitΓ€t, nicht mehr gepflegt, etc.).


===== 2. Alternative: Year‑Plugin (Jahresdifferenz ΓΌber das Jahr) =====

Eine einfachere Alternative ist das Year‑Plugin, das nur mit Jahreszahlen arbeitet.

Beispiel:

''{{year>2010}}''

Das berechnet:

  • aktuelles Jahr – 2010

Also z.β€―B. im Jahr 2026:

''{{year>2010}}  β†’  16''

Eingebettet:

''Erfahrung: {{year>2010}} Jahre Unterricht bei der VHS.''

Vorteil:

  • sehr simpel
  • oft kompatibler als komplexere Plugins

Nachteil:

  • rechnet nur mit Jahren, nicht mit exakten Daten
  • berΓΌcksichtigt nicht, ob der Jahrestag im aktuellen Jahr schon erreicht ist

===== 3. EndgΓΌltige LΓΆsung: Eigenes Mini‑Plugin vhsexperience =====

Da die fertigen Plugins bei dir nicht zuverlÀssig liefen bzw. nicht installiert waren, hast du dich für eine eigene, maßgeschneiderte Lâsung entschieden: ein kleines, eigenes Plugin.

Ziel:

  • Syntax im Wiki:
''{{vhsexperience>2010-09-01}}''
  • Ausgabe im HTML:
''15 Jahre''

===== 4. Wie DokuWiki‑Plugins grundsΓ€tzlich aufgebaut sind =====

Damit deine SchΓΌler verstehen, was da passiert, lohnt sich ein kurzer Blick auf den Aufbau eines DokuWiki‑Plugins.

==== 4.1 Plugin‑Ordner ====

Plugins liegen in:

''lib/plugins/<pluginname>/''

Wichtig:

  • <pluginname> darf nur Kleinbuchstaben und Ziffern enthalten
  • keine Unterstriche, keine Bindestriche, keine Großbuchstaben
  • Beispiel: vhsexperience ist gΓΌltig, vhs_experience ist ungΓΌltig

==== 4.2 plugin.info.txt ====

In jedem Plugin‑Ordner liegt eine Datei plugin.info.txt, die DokuWiki sagt:

  • wie das Plugin heißt
  • wer der Autor ist
  • wofΓΌr es gedacht ist

Beispiel:

''base   vhsexperience
author Roland
email  -
name   VHS Experience Plugin
desc   Berechnet automatisch die Jahre seit einem Startdatum.
url    https://euroba.de
version 2026-04-14''

Wichtig:

  • base muss exakt dem Ordnernamen entsprechen (vhsexperience)

==== 4.3 syntax.php ====

FΓΌr eine eigene Syntax (also neue software '' ‑Konstrukte) braucht man eine ''syntax.php.
Darin steckt eine PHP‑Klasse, die von DokuWiki_Syntax_Plugin erbt.


===== 5. Das konkrete Plugin vhsexperience =====

==== 5.1 Ordnerstruktur ====

''lib/
  plugins/
    vhsexperience/
   plugin.info.txt
      syntax.php''

==== 5.2 Der ursprΓΌngliche Fehler: UngΓΌltiger Pluginname ====

Du hattest zuerst den Ordner so genannt:

''lib/plugins/vhs_experience/''

DokuWiki meldete:

Plugin name 'vhs_experience' is not a valid plugin name, only the characters a-z and 0-9 are allowed.

Das bedeutet:

  • der Unterstrich _ ist nicht erlaubt
  • DokuWiki kann das Plugin so nicht korrekt registrieren

Die LΓΆsung war:

  • Ordner umbenennen in vhsexperience
  • base in plugin.info.txt auf vhsexperience setzen
  • Klassenname und Registrierung in syntax.php anpassen

===== 6. Funktionsweise des Plugins im Detail =====

Hier die zentrale Datei syntax.php in verstΓ€ndlicher Form erklΓ€rt.

==== 6.1 GrundgerΓΌst der Klasse ====

''class syntax_plugin_vhsexperience extends DokuWiki_Syntax_Plugin {
    // ...
}''

* syntax_plugin_ + vhsexperience β†’ muss zum Plugin‑Namen passen

  • Die Klasse sagt: β€žIch bin ein Syntax‑Pluginβ€œ

==== 6.2 Typ und Verhalten ====

''public function getType() {
    return 'substition';
}

public function getPType() {
    return 'normal';
}

public function getSort() {
    return 155;
}''

* getType(): substition bedeutet, dass ein Platzhalter durch Inhalt ersetzt wird

  • getPType(): normal β†’ normales Verhalten im Textfluss
  • getSort(): Reihenfolge, in der das Plugin im Vergleich zu anderen Syntax‑Plugins verarbeitet wird

==== 6.3 Erkennen der eigenen Syntax ====

''public function connectTo($mode) {
    $this->Lexer->addSpecialPattern('\{\{vhsexperience>.*?\}\}', $mode, 'plugin_vhsexperience');
}''

* Hier wird DokuWiki gesagt:

  β€žWenn du im Text etwas findest, das aussieht wie ''{{vhsexperience>...}}'', dann bin ich zustΓ€ndig.β€œ
  • Die Regex \{ \{vhsexperience>.*?\}\} bedeutet:
  • UngΓΌltiges Datum am Ende

==== 6.4 Zerlegen der Syntax: handle() ====

''public function handle($match, $state, $pos, Doku_Handler $handler) {
    // Entferne {{vhsexperience> und }}
    $match = trim(substr($match, 17, -2));
    return array('startdate' => $match);
}''

* $match enthΓ€lt z.β€―B.:

''{{vhsexperience>2010-09-01}}''
  • substr($match, 17, -2) schneidet vorne UngΓΌltiges Datum ab

Übrig bleibt:

''2010-09-01''

Das wird als startdate zurΓΌckgegeben und spΓ€ter im render() verwendet

==== 6.5 Ausgabe erzeugen: render() ====

''public function render($mode, Doku_Renderer $renderer, $data) {
    if($mode != 'xhtml') return false;
    $start = strtotime($data['startdate']);
    if(!$start) {
   $renderer->doc .= '<span class="error">UngΓΌltiges Datum</span>';
        return true;
    }

    $now = time();

    // Berechnung der vollen Jahre
    $years = date('Y', $now) - date('Y', $start);

    // Falls Startdatum im Jahr noch nicht erreicht β†’ 1 Jahr abziehen
    $anniversary = strtotime(date('Y', $now) . '-' . date('m-d', $start));
    if($now <$anniversary) {
        $years--;
    }

    $renderer->doc .= $years . ' Jahre';
    return true;
}
''

Schritt fΓΌr Schritt:

Modus prΓΌfen

''if($mode != 'xhtml') return false;''

* Nur im HTML‑Rendermodus wird etwas ausgegeben

  • Andere Modi (z.β€―B. fΓΌr RSS, Text, etc.) werden ignoriert

Startdatum einlesen

''$start = strtotime($data['startdate']);
if(!$start) {
    $renderer->doc .= '<span class="error">UngΓΌltiges Datum</span>';
    return true;
}''

* strtotime() wandelt den String 2010-09-01 in einen Unix‑Zeitstempel um

  • Wenn das nicht klappt β†’ Fehlermeldung β€žUngΓΌltiges Datumβ€œ

Aktuelles Datum holen

''$now = time();''

Jahresdifferenz berechnen

''$years = date('Y', $now) - date('Y', $start);''

* z.β€―B. 2026 - 2010 = 16

PrΓΌfen, ob der Jahrestag schon war

''$anniversary = strtotime(date('Y', $now) . '-' . date('m-d', $start));
if($now <$anniversary) {
    $years--;
}
''

Idee:

  • date('m-d', $start) β†’ Monat und Tag des Startdatums, z.β€―B. 09-01
  • date('Y', $now) β†’ aktuelles Jahr, z.β€―B. 2026
  • Zusammengesetzt: 2026-09-01 = Jahrestag im aktuellen Jahr
  • Wenn heute ($now) vor diesem Jahrestag liegt β†’ ein Jahr abziehen

Beispiel: * Start: 2010‑09‑01

  • Heute: 2026‑04‑14
  • Jahrestag 2026: 2026‑09‑01
  • Heute < Jahrestag β†’ years– β†’ aus 16 wird 15 -

Ausgabe erzeugen

''$renderer->doc .= $years . ' Jahre';''

* Das ist der Text, der spΓ€ter im HTML‑Dokument erscheint

  • Beispiel: 15 Jahre

===== 7. Verwendung im Wiki =====

FΓΌr deine SchΓΌler ist die Nutzung dann sehr einfach:

''{{vhsexperience>2010-09-01}}''

Ergebnis (Stand April 2026):

''15 Jahre''

Eingebettet in einen Satz:

''Erfahrung: {{vhsexperience>2010-09-01}} Unterricht bei der VHS.''

β†’

''Erfahrung: 15 Jahre Unterricht bei der VHS.''

===== 8. Didaktische Kernaussagen fΓΌr deine SchΓΌler =====

Ziel: Wiederkehrende Angaben (z.β€―B. β€žX Jahre Erfahrungβ€œ) sollen nicht manuell gepflegt werden mΓΌssen.

Fertige Plugins wie date oder year kΓΆnnen das teilweise, sind aber:

  • manchmal nicht installiert
  • manchmal nicht kompatibel
  • teilweise eingeschrΓ€nkt in der Funktion

Eigenes Plugin:

  • gibt dir volle Kontrolle
  • ist klein, ΓΌberschaubar und gut dokumentierbar
  • zeigt exemplarisch, wie DokuWiki‑Syntax‑Plugins funktionieren

Wichtige technische Punkte:

  • Plugin‑Ordnername: nur a-z und 0-9
  • base in plugin.info.txt = Ordnername
  • Klassenname syntax_plugin_<name> muss zum Plugin passen
  • connectTo() registriert die Syntax
  • handle() zerlegt die Eingabe
  • render() erzeugt die Ausgabe

Verbesserung? Lass es uns wissen. Deine Meinung zΓ€hlt:

Gib Deinen Kommentar ein. Wiki-Syntax ist zugelassen:
Bitte gib alle Buchstaben in das Eingabefeld ein um zu zeigen dass du ein Mensch bist. X O Wβ€€Lβ€―Y
 
Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki