====== Wiki ====== Wir verwenden [[https://www.dokuwiki.org|DokuWiki]] in der nachfolgend dokumentierten Konfiguration. ===== Plugins ===== ^ 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: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: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: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. | | | [[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:searchindex|Searchindex Manager]] | This admin plugin allows you to rebuild the index used by the fulltext search. | | | [[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 | | | [[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: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 ===== * [[https://www.dokuwiki.org/template:bootstrap3|bootstrap3]] ===== Konfiguration ===== ==== Darstellung ==== * hidepages: **:(navbar|sidebar)** ==== Codemirror ==== * nativeeditor: **[X]** ==== 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]** ==== Template / Boostrap3 ==== === Navbar === * fixedTopNavbar: **[X]** * showHomePageLink: **[X]** * showUserHomeLink: **[X]** * showIndividualTool: **[X] user**, **[X] page**, **[X] site** * showAdminMenu: **[X]** === Layout === * tableFullWidth: **[X]** * tableStyle: **[X] striped**, **[X] hover**, **[X] responsive** * showPageId: **[X]** === Others === * showPageInfo: **[X]** * tagsOnTop: **[X]** * useAnchorJS: **[X]** ==== Template-Erweiterungen ==== === Dateien === Folgende Dateien sind für die Darstellung der linken Sidebar notwendig: * lib/tpl/bootstrap3/sidebarfooter.html * conf/userall.css === Sidebar === Um das Menü in der linken Sidebar darzustellen muss ein Wiki-Artikel "sidebar" mit folgendem Inhalt existieren: {{simplenavi>}} 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.
'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' => 1 ] ]); // 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 ''; echo 'icon . '\' title=\'' . $text . '\' alt=\'Raumstatus des ' . $spaceName . '\' style=\'width:100%;max-width:' . $cssMaxWidth . 'px;\' />'; echo ''; } ?>
Folgendes CSS formatiert das Menü in der Sidebar: .plugin__simplenavi { background-color: #f5f5f5; border: 1px solid #e3e3e3; border-radius: 4px; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05) inset; margin-bottom: 20px; min-height: 20px; } .plugin__simplenavi ul.nav { padding-left: 0px; } .plugin__simplenavi a.wikilink2:link, .plugin_simplenavi a.wikilink2:visited { border-bottom: 0px none; } .plugin__simplenavi > ul a[data-curid] { background: #08c; color: #fff; } .plugin__simplenavi > ul.nav li a { display: block; } .plugin__simplenavi > ul.nav li a::before { font-family: FontAwesome; } .plugin__simplenavi > ul.nav li.open > strong > a::before { font-family: FontAwesome; } .plugin__simplenavi > ul.nav li.closed > a::before { font-family: FontAwesome; } .plugin__simplenavi > ul.nav > ul.nav > li a { padding-left: 10px !important; } .plugin__simplenavi > ul.nav > ul.nav > li.open > ul.nav > li a { padding-left: 20px !important; } .plugin__simplenavi > ul.nav > ul.nav > li.open > ul.nav > li > ul.nav > li a { padding-left: 30px !important; } .plugin__simplenavi > ul.nav > ul.nav > li.open > ul.nav > li > ul.nav > li > ul.nav > li a { padding-left: 40px !important; } .plugin__simplenavi > ul.nav > ul.nav > li.open > ul.nav > li > ul.nav > li > ul.nav > li > ul.nav > li a { padding-left: 50px !important; } .plugin__simplenavi > ul.nav > ul.nav > li.open > ul.nav > li > ul.nav > li > ul.nav > li > ul.nav > li > ul.nav > li a { padding-left: 60px !important; } === Navigation === Die Verlinkungen zu bytespeicher.org und zum Pad erfolgen über den Wiki-Artikel "[[:navbar]]": * [[https://bytespeicher.org|Bytespeicher]] * [[https://www.makerspace-erfurt.de|Makerspace]] * [[https://pad.technikkultur-erfurt.de|Etherpad]] ~~NOCACHE~~ ==== Standard-Konfiguration des Wikis ==== Die Konfiguration beinhaltet oben erwähnte Konfigurationen: $conf['title'] = 'Technikkultur in Erfurt'; $conf['lang'] = 'de'; $conf['template'] = 'bootstrap3'; $conf['license'] = '0'; $conf['savedir'] = '../data/'; $conf['youarehere'] = 1; $conf['dformat'] = '%d.%m.%Y %H:%M'; $conf['hidepages'] = ':(navbar|sidebar)'; $conf['useacl'] = 1; $conf['passcrypt'] = 'sha512'; $conf['superuser'] = '@admin'; $conf['disableactions'] = 'register'; $conf['mediarevisions'] = 0; $conf['mailfrom'] = 'noreply@technikkultur-erfurt.de'; $conf['htmlmail'] = 0; $conf['userewrite'] = '1'; $conf['plugin']['codemirror']['nativeeditor'] = 1; **Location**: {location_link}\\\\ {description}'; $conf['plugin']['dw2pdf']['template'] = 'technikkultur'; $conf['plugin']['dw2pdf']['output'] = 'browser'; $conf['plugin']['dw2pdf']['qrcodesize'] = '160x160'; $conf['plugin']['captcha']['mode'] = 'math'; $conf['plugin']['iframe']['js_ok'] = 1; $conf['tpl']['bootstrap3']['useLocalBootswatch'] = 0; $conf['tpl']['bootstrap3']['fixedTopNavbar'] = 1; $conf['tpl']['bootstrap3']['showHomePageLink'] = 1; $conf['tpl']['bootstrap3']['showAdminMenu'] = 1; $conf['tpl']['bootstrap3']['pageOnPanel'] = 0; $conf['tpl']['bootstrap3']['tableStyle'] = 'striped,hover,responsive'; $conf['tpl']['bootstrap3']['showBadges'] = 0;