dienste:wiki

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
dienste:wiki [20.02.2017 22:50] – Verlinkung korrigiert mape2kdienste:wiki [05.04.2022 22:12] (aktuell) – Registrieren unterbinden mape2k
Zeile 2: Zeile 2:
  
 Wir verwenden [[https://www.dokuwiki.org|DokuWiki]] in der nachfolgend dokumentierten Konfiguration. Wir verwenden [[https://www.dokuwiki.org|DokuWiki]] in der nachfolgend dokumentierten Konfiguration.
 +
 ===== Plugins ===== ===== Plugins =====
  
-==== Für Nutzer ==== +^ Name     ^ Anwendung        Kommentar       ^ 
- +[[http://www.dokuwiki.org/plugin:codemirror|Codemirror]]   | Enhances DokuWiki's Editor with syntax highlighting     | funktioniert mit aktueller DokuWiki-Version, wird aber nicht aktiv weiterentwickelt, im Wiki wird auf [[https://www.dokuwiki.org/plugin:prosemirror|prosemirror]] verwiesen   | 
-  [[http://www.dokuwiki.org/plugin:codemirror|Codemirror]] +[[http://www.dokuwiki.org/plugin:code|Code Replacement]]   | This plugin replaces the current DokuWiki handlers for code & file markup. It adds ability to recognize and render a title above the code box. |  
-  [[http://www.dokuwiki.org/plugin:code|Code Replacement]] +[[http://www.dokuwiki.org/plugin:edittable|editTable]]     | This plugin adds an additional edit button to every table. Using this button the table can be edited in an Excel-like visual interface. The plugin also adds a button to the standard toolbar for inserting new tables using this editor. | | 
-  [[http://www.dokuwiki.org/plugin:edittable|editTable]] +| [[http://www.dokuwiki.org/plugin:tablewidth|tableWidth]]   | The plugin allows to specify width for a DokuWiki table and its columns. |  | 
- +| [[http://www.dokuwiki.org/plugin:wrap|Wrap]]               | Universal plugin which combines the functionality of many other plugins. Wrap wiki text inside containers (divs or spans) and give them a class (choose from a variety of preset classes), a width and/or a language with its associated text direction. |  | 
-==== Für Admins ==== +| [[https://www.dokuwiki.org/plugin:mobiletable|MobileTable]] | This plugin creates a second representation of a table, where all columns are stacked on top of each other, which is only shown for mobile devices. This improves the mobile experience for wide tables as it prevents horizontal scrolling. | | 
- +[[http://www.dokuwiki.org/plugin:move|Move]] | Move pages, media files and namespaces while maintaining the link structure |  
-  [[http://www.dokuwiki.org/plugin:move|Move]] +[[http://www.dokuwiki.org/plugin:searchindex|Searchindex Manager]] | This admin plugin allows you to rebuild the index used by the fulltext search. | | 
-  [[http://www.dokuwiki.org/plugin:searchindex|Searchindex Manager]] +| [[http://www.dokuwiki.org/plugin:smtp|SMTP]] | This plugin replaces the way DokuWiki sends emails. Instead of relying on PHP's built-in mail function, it will contact a configured SMTP server directly to send emails. |  
- +[[https://www.dokuwiki.org/plugin:simplenavi|simplenavi]] | Create a simple navigation tree based on namespaces | | 
-==== System ==== +| [[https://www.dokuwiki.org/plugin:attribute|attribute]] | Arbitrary attribute definition and storage for user associated data  | wird für das 2FA-Plugin benötigt, um Daten abspeichern zu können | 
- +| [[https://www.dokuwiki.org/plugin:twofactor|Two Factor Authentication - Core Plugin]] | Provides modular two factor authentication functionality to DokuWiki | wird als Grundlage für die verschiedenen 2FA-Methoden benötigt | 
-  [[https://www.dokuwiki.org/plugin:simplenavi|simplenavi]]+| [[https://www.dokuwiki.org/plugin:twofactorgoogleauth|Two Factor Authentication - Google Authenticator Plugin]] | Google Authenticator support plugin for the Twofactor authentication plugin. | Implementiert die App-Veriante von 2FA. Es gibt auch noch eine Variante für [[https://www.dokuwiki.org/plugin:twofactoremail|2FA per E-Mail]], dieses ist jedoch aktuell nicht installiert. |
  
 ===== Template ===== ===== Template =====
Zeile 33: Zeile 34:
   * nativeeditor: **[X]**   * nativeeditor: **[X]**
  
-==== iCalendar ====+==== URL-Schemes ==== 
 + 
 +  * conf/scheme.local.conf angelegt und um "webcal" erweitert 
 + 
 +==== SMTP ==== 
 + 
 +  * smtp_host: **mail.bytespeicher.org** 
 +  * smtp_port: **465** 
 +  * smtp_ssl: **SSL** 
 +  * smtp_auth_user: **XXX@technikkultur-erfurt.de** 
 +  * smtp_auth_user: **PASSWORT fuer XXX** 
 + 
 +==== Twofactor ==== 
 + 
 +  * enable: **[X]** 
 +  * optinout: **opt-in** 
 +  * otpsubject: **OTP Verification Code** 
 +  * otpcontent: **$otp is your verification code.** 
 +  * generatorexpiry: **2** 
 +  * otplength: **7** 
 +  * sentexpiry: **5** 
 +  * loginnotice: **User** 
 +  * loginsubject: **Login Successful** 
 +  * logincontent: **Your account was logged into at $time.** 
 +  * refreshexpiry: **240** 
 +  * logging_level: **None** 
 +  * logging_path: **2fa_audit.txt** 
 + 
 +==== Twofactorgoogleauth ==== 
 + 
 +  * enable: **[X]** 
  
-  * table: **<nowiki>| **{date}**  | {summary} |  {location_link} |</nowiki>** 
  
 ==== Template / Boostrap3 ==== ==== Template / Boostrap3 ====
Zeile 76: Zeile 107:
 </code> </code>
  
-Der Raum-Status und die Social-Media-Links liegen in folgender Datei+Der Raum-Status und die Social-Media-Links liegen in der Datei lib/tpl/bootstrap3/sidebarfooter.html. Der PHP-Code des Raum-Status ist identisch mit dem im [[wp_tkev#raumstatus|Wordpress]] verwendeten.
  
 <file|lib/tpl/bootstrap3/sidebarfooter.html> <file|lib/tpl/bootstrap3/sidebarfooter.html>
-<!-- ***** Raum-Status ***** --> +<!-- ***** Info-Box  *****  -->
-<h1 style="text-align: center">Raum-Status</h1> +
-<a href="http://status.bytespeicher.org/"> +
-  <?php  +
-    $context = stream_context_create(array('http'=> array('timeout' => 3))); +
-    $status = json_decode(file_get_contents('http://status.bytespeicher.org/status.json', false, $context)); +
-    if($status && isset($status->state->open) && $status->state->open === true) { +
-      echo '<img src='.$status->icon->open.' style="max-width: 100%;">'; +
-    } else { +
-      echo '<img src='.$status->icon->closed.' style="max-width: 100%;">'; +
-    } +
-  ?> +
-</a> +
-<hr />+
 <div class="well" style="color: #999; padding: 10px;"> <div class="well" style="color: #999; padding: 10px;">
-  <h3 style="text-align: center; font-weight: bold;"><a href="http://technikkultur-erfurt.de/_media/verein:mitgliedsantrag.pdf">Mitglied werden!</a></h3+  <h3 style="text-align: center; font-weight: bold;"> 
-  <hr style="margin: 5px auto;" /> +        <a href="http://technikkultur-erfurt.de/_media/verein:mitgliedsantrag.pdf">Mitglied werden</a> 
-  <strong>Neues im Social Media:</strong><br /> +        <hr style="margin: 5px auto;" /> 
-  <a href="http://twitter.com/Bytespeicher_ef">Twitter</a•  +        <a href="https://technikkultur-erfurt.de/kontakt">Kontakt & Social Media</a> 
-  <a href="https://www.facebook.com/Bytespeicher">Facebook</a•  +  </h3
-  <a href="https://plus.google.com/u/0/communities/113086269259260523588">Google+</a>+</div> 
 +<!-- ***** Raumstatus ***** --> 
 +<div class="well" style="color#999; padding: 10px;"> 
 +<?php 
 + 
 +// Spaces 
 +$spaces = [ 
 +    'Bytespeicher' ='http://status.bytespeicher.org', 
 +    'Makerspace' => 'http://status.makerspace-erfurt.de', 
 +]; 
 + 
 +// Max width of icon (small = 100, large = 200) 
 +$cssMaxWidth = 100; 
 + 
 +// JSON path for URI 
 +$statusJsonPath = '/status-minimal.json'; 
 + 
 +// Create stream context with low timeout 
 +$context = stream_context_create([ 
 +    'http' => [ 
 +        'method' => "GET", 
 +        'timeout' =
 +    ] 
 +]); 
 + 
 +// Check every space 
 +// No output on errors 
 +foreach ($spaces as $spaceName =$statusUrl) { 
 +    // Get minimal status from spacestatus webpage 
 +    $jsonContent = file_get_contents($statusUrl . $statusJsonPath, false, $context); 
 +    if ($jsonContent === false) { 
 +        // Status could not be received, skip it 
 +        continue; 
 +    } 
 + 
 +    // Decode JSON with max depth of 2 
 +    $jsonContent = json_decode($jsonContent, false, 2); 
 +    if (is_null($jsonContent) || !isset($jsonContent->open) || !isset($jsonContent->icon)) { 
 +        // JSON could not be decoded or entries missing 
 +        continue; 
 +    } 
 + 
 +    // Output spaces 
 +    $text = 'Der ' . $spaceName . ' ist ' . ($jsonContent->open === true ? 'offen' : 'geschlossen') . '!'; 
 +    echo '<a href=\'' . $statusUrl . '\'>'; 
 +    echo '<img src=\'' . $jsonContent->icon . '\' title=\'' . $text . '\' alt=\'Raumstatus des ' . $spaceName . '\' style=\'width:100%;max-width:' $cssMaxWidth 'px;\' />'; 
 +    echo '</a>'; 
 +
 + 
 +?>
 </div> </div>
-<hr /> 
-<img src="/lib/tpl/bootstrap3/images/hetzner_hosted_160.gif" /> 
 </file> </file>
  
Zeile 135: Zeile 200:
  
 .plugin__simplenavi > ul.nav li a::before { .plugin__simplenavi > ul.nav li a::before {
-    content: "\f15c\ "; 
     font-family: FontAwesome;     font-family: FontAwesome;
 } }
  
 .plugin__simplenavi > ul.nav li.open > strong > a::before { .plugin__simplenavi > ul.nav li.open > strong > a::before {
-    content: "\f07c\ "; 
     font-family: FontAwesome;     font-family: FontAwesome;
 } }
  
 .plugin__simplenavi > ul.nav li.closed > a::before { .plugin__simplenavi > ul.nav li.closed > a::before {
-    content: "\f07b\ "; 
     font-family: FontAwesome;     font-family: FontAwesome;
 } }
Zeile 195: Zeile 257:
 $conf['passcrypt'] = 'sha512'; $conf['passcrypt'] = 'sha512';
 $conf['superuser'] = '@admin'; $conf['superuser'] = '@admin';
 +$conf['disableactions'] = 'register';
 $conf['mediarevisions'] = 0; $conf['mediarevisions'] = 0;
 $conf['mailfrom'] = 'noreply@technikkultur-erfurt.de'; $conf['mailfrom'] = 'noreply@technikkultur-erfurt.de';
Zeile 200: Zeile 263:
 $conf['userewrite'] = '1'; $conf['userewrite'] = '1';
 $conf['plugin']['codemirror']['nativeeditor'] = 1; $conf['plugin']['codemirror']['nativeeditor'] = 1;
-$conf['plugin']['iCalendar']['dformat'] = '%d. %B %Y'; 
-$conf['plugin']['iCalendar']['default'] = '===== {date}: {summary} ===== 
  
  
Zeile 208: Zeile 269:
  
 {description}'; {description}';
-$conf['plugin']['iCalendar']['list'] = '====== {date}: {summary} ====== 
- 
-**<sup>Location: {location}</sup>**\\\\ 
- 
-{description}'; 
-$conf['plugin']['iCalendar']['table'] = '| **{date}**  | {summary} |  {location_link} |'; 
 $conf['plugin']['dw2pdf']['template'] = 'technikkultur'; $conf['plugin']['dw2pdf']['template'] = 'technikkultur';
 $conf['plugin']['dw2pdf']['output'] = 'browser'; $conf['plugin']['dw2pdf']['output'] = 'browser';
Zeile 227: Zeile 282:
 $conf['tpl']['bootstrap3']['showBadges'] = 0; $conf['tpl']['bootstrap3']['showBadges'] = 0;
 </file> </file>
- 
  • dienste/wiki.1487627435.txt.gz
  • Zuletzt geändert: 20.02.2017 22:50
  • von mape2k