<?php
/* Vorlagenseite für Standard-Artikel. Diese Seite erzeugt anhand diverser Variablen und Text- bzw. Grafikabschnitte eine standardisierte Darstellung. Diese Seite ist eine reine php-Seite und wird durch eine reine PHP-Variablen-Seite aufgerufen. */
Zusätzliche Variablen ermitteln /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ ###### Lade die aktuelle Datei in eine Variable
$pageContent = file_get_contents(phpConvertPageToFilesystemPath(htmlspecialchars($_GET["id"])));
// ******************** // Variablen bestimmen // ******************** //###### URL zur Anzeige von Bildern über http/https $dokuwikiMediaUrl = 'https://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/lib/exe/fetch.php?media='; // ###### Rechte Sidbar $sidebarRight = phpConvertPageToFilesystemPath($pageVarArray['variables']['default']['sidebarRight']); // ###### Daten zum Erstellungszeitpunkt $pageVarArray['variables']['default']['authorCreationDate'] = date("d.m.Y",strtotime($pageVarArray['variables']['default']['authorCreationDate'])); $pageVarArray['variables']['default']['authorCreationTimeStamp'] = strtotime("{$pageVarArray['variables']['default']['authorCreationDate']} {$pageVarArray['variables']['default']['authorCreationTime']}"); //###### Falls ein oder mehrere Bilder verwendet werden, muss der DIV benannt werden $imageCounter = 0; //Führende und endende Leerzeichen und Zeilenumbrüche entfernen $pageVarArray['variables']['default']['pageEyeCatcher'] = trim($pageVarArray['variables']['default']['pageEyeCatcher']);
// ******************** // Fehlermeldung, falls keine CSS-Datei vorhanden ist // ******************** if ( (empty($pageVarArray['variables']['default']['styleSchema'])) || (!(file_exists(phpConvertPageToFilesystemPath($pageVarArray['variables']['default']['styleSchema']))))) { echo '<html> <div style="width: 100%; height: 100px; padding-top:25px; text-align: center; border: 2px solid black; font-weight: bold; font-size: 2vw;"> Es existiert keine Style-Sheet-Datei </div> </html>'; exit(); }
CSS-Datei inkludieren /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ include(phpConvertPageToFilesystemPath('includes:css:css_transform_page')); include(phpConvertPageToFilesystemPath($pageVarArray['variables']['default']['styleSchema'])); Funktionen
//################################################################################## //###### Funktion: Durchsuche angegebenen Pfad nach Bildern (nicht rekursiv) //################################################################################## function func_getAllImagesFromDir($dir, $filter, $excludeArray, $title, $description) { //CONDITION: Falls kein oder ein falscher Exclude-Filter gesetzt wurde, setze Asterisk als Filter if ( (empty($excludeArray)) || (!(isset($excludeArray))) || (!is_array($excludeArray)) ) { $excludeArray = NULL; } if (!(is_null($excludeArray))) { $excludeRegExString = ( (count($excludeArray) > 1) ? '(' . implode('|',$excludeArray) . ')' : $excludeArray[0] ); } //###### Wenn Uebergabewert In DokuWiki-Pfad-Syntax, dann konvertiere zu File-System-Pfad-Syntax if ((strpos($dir,':'))) { //###### String enthält : $tree = glob(rtrim(phpConvertNamespaceToFilesystemPath($dir), '/') . '/' . $filter); } elseif (strpos($dir,'/') !== false ) { //###### String enthält / $tree = glob(rtrim($dir, '/') . '/' . $filter); } else { //###### String enthält weder : noch / $tree = glob(rtrim(phpConvertNamespaceToFilesystemPath($dir), '/') . '/' . $filter); } if (is_array($tree)) { foreach ($tree as $file) { if (is_file($file)) { //###### Falls Datei verarbeitet werden soll, inkludieren und in ganzheitliches Array fuellen if ( (strpos($file, '.jpg')) || (strpos($file, '.png')) || (strpos($file, '.svg')) ) { //###### UpperCase zu LowerCase umbenennen $filePathSplitArray = explode('/', $file); $fileName = end($filePathSplitArray); if (preg_match("/[A-Z]/", $fileName)) { $fileNameLower = strtolower($fileName); array_pop($filePathSplitArray); $filePath = implode('/', $filePathSplitArray); echo $filePath . '-' . $fileNameLower. '<><><><> //// '; copy("$filePath/$fileName","$filePath/$fileNameLower"); unlink("$filePath/$fileName"); } if (!(preg_match($excludeRegExString, $file) === 1)) { $includedImages[] = [ 'image' => str_replace('media:', '', phpCreateDokuWikiConformName(substr(str_replace(realpath(dirname(__FILE__) . '/../../..'), '', $file),1))), 'title' => $title, 'description' => $description ]; } } } } } //###### globales Array uebergeben return $includedImages; }
//################################################################################## //###### Funktion 1v2: Erstelle das Repo einer Gallerie //###### Funktion 2v2: Erstelle das zum Repo zugehörige Ribbon //################################################################################## function func_buildGalleryRepo($givenGallerySectionData) { //CONDITION: Falls kein oder ein falscher Include-Filter gesetzt wurde, setze Asterisk als Filter if ( (empty($givenGallerySectionData['sectionContIncl'])) || (!(isset($givenGallerySectionData['sectionContIncl']))) || (!is_array($givenGallerySectionData['sectionContIncl'])) ) { $givenGallerySectionData['sectionContIncl'] = ['*']; } $currentGalleryImageArray = array(); foreach ($givenGallerySectionData['sectionContent'] as $currentImageSource) { if (strpos($currentImageSource[0], '.')) { $currentImageSourceFile = preg_replace(['/\/data\/pages\//i', '/.txt$/i'], ['/data/media/',''], phpConvertPageToFilesystemPath($currentImageSource[0])); unset($currentImageSourceDir); } else { $currentImageSourceDir = str_replace('/data/pages/', '/data/media/', phpConvertNamespaceToFilesystemPath($currentImageSource[0])); unset($currentImageSourceFile); } $currentImageTitle = $currentImageSource[1]; $currentImageDescription = $currentImageSource[2]; // CONDITION: Handelt es bei der aktuellen Bildquelle um ein Bild oder einen Ordner if (isset($currentImageSourceDir) && (file_exists($currentImageSourceDir))) { foreach($givenGallerySectionData['sectionContIncl'] as $curentImageFilter) { $foundImages = func_getAllImagesFromDir($currentImageSourceDir, $curentImageFilter, $givenGallerySectionData['sectionContExcl'], $currentImageTitle, $currentImageDescription); if (!(is_null($foundImages))) { $currentGalleryImageArray = array_merge($currentGalleryImageArray, $foundImages); } } } elseif (isset($currentImageSourceFile) && (file_exists($currentImageSourceFile))) { $currentGalleryImageArray[] = [ 'image' => str_replace('media:', '', phpCreateDokuWikiConformName(substr(str_replace(realpath(dirname(__FILE__) . '/../../..'), '', $currentImageSourceFile),1))), 'title' => $currentImageTitle, 'description' => $currentImageDescription ]; } } array_unique($currentGalleryImageArray); sort($currentGalleryImageArray); return $currentGalleryImageArray; } function func_buildGalleryRibbon($dokuwikiMediaUrl, $keyCurrentParagraph, $keyCurrentSection, $currentGalleryImageArrayRaw) { //###### Gallerie-Ribbon-String mit allen Bildern erstellen $imageRibbonString = ''; foreach ($currentGalleryImageArrayRaw as $key => $currentGalleryImage) { $currentGalleryImageArray['image'][$key] = $currentGalleryImage['image']; $currentGalleryImageArray['title'][$key] = phpCleanUpVarString($currentGalleryImage['title']); $currentGalleryImageArray['description'][$key] = phpCleanUpVarString($currentGalleryImage['description']); }
echo ' <script language="javaScript"> var jsGalleryImageArrayImage_' . $keyCurrentParagraph . '_' . $keyCurrentSection . ' = [\'' . implode('\', \'', $currentGalleryImageArray['image']) . '\']; var jsGalleryImageArrayTitle_' . $keyCurrentParagraph . '_' . $keyCurrentSection . ' = [\'' . implode('\', \'', $currentGalleryImageArray['title']) . '\']; var jsGalleryImageArrayDesc_' . $keyCurrentParagraph . '_' . $keyCurrentSection . ' = [\'' . implode('\', \'', $currentGalleryImageArray['description']) . '\']; initPreviewImage(\'previewImage-' . $keyCurrentParagraph . '-' . $keyCurrentSection . '\', jsGalleryImageArrayImage_' . $keyCurrentParagraph . '_' . $keyCurrentSection . ', jsGalleryImageArrayTitle_' . $keyCurrentParagraph . '_' . $keyCurrentSection . ', jsGalleryImageArrayDesc_' . $keyCurrentParagraph . '_' . $keyCurrentSection . ', 0); </script> '; foreach ($currentGalleryImageArray['image'] as $currentImageKey => $imageCurrent) { $imageRibbonString .= '<img id="slideshow" onclick="rotateimages(\'previewImage-' . $keyCurrentParagraph . '-' . $keyCurrentSection . '\', ' . $currentImageKey . '); return false;" onmouseover="rotateimages(\'previewImage-' . $keyCurrentParagraph . '-' . $keyCurrentSection . '\', ' . $currentImageKey . '); return false;" src="' . $dokuwikiMediaUrl . $imageCurrent . '" />'; } return $imageRibbonString; }
// ******************** // Funktion zum Anzeigen von Bildern // ******************** function func_showImage( $dokuwikiMediaUrl, $imagePath, $imageTitle, $imageDescription, $imageType, $keyCurrentParagraph, $keyCurrentSection) { return '<div class="ct-image-' . $imageType . '" onclick="fullscreen(\'previewImage-' . $keyCurrentParagraph . '-' . $keyCurrentSection . '\')"><img id="previewImage-' . $keyCurrentParagraph . '-' . $keyCurrentSection . '" src="' . $dokuwikiMediaUrl . $imagePath . '"></div><script language="javaScript">initPreviewImage(\'previewImage-' . $keyCurrentParagraph . '-' . $keyCurrentSection . '\', \'' . $imagePath . '\', \'' . $imageTitle . '\', \'' . $imageDescription . '\', 0);</script>'; }
// ******************** // JavaScript-Funktionen für Slideshow und FullScreen/Lightbox // ******************** //###### Lightbox-Funktionen-String erstellen (JavaScript) $jsLightboxFunctions = ' <script language="javascript">
function initPreviewImage(givenImageDiv, givenImageArray = null, givenTitleArray = null, givenDescArray = null, givenImageKey = 0) { imgFromGivenDiv = document.getElementById(givenImageDiv); if (Array.isArray(givenImageArray)) { imgFromGivenDiv.arrayKey = givenImageKey; imgFromGivenDiv.array = givenImageArray.slice(0); imgFromGivenDiv.arrayTitle = givenTitleArray.slice(0); imgFromGivenDiv.arrayDesc = givenDescArray.slice(0); imgFromGivenDiv.src = "' . $dokuwikiMediaUrl . '" + imgFromGivenDiv.array[givenImageKey]; } else { imgFromGivenDiv.src = "' . $dokuwikiMediaUrl . '" + givenImageArray; imgFromGivenDiv.title = givenTitleArray; imgFromGivenDiv.description = givenDescArray; } }
function rotateimages(givenImageDiv, givenImageKey){ imgFromGivenDiv = document.getElementById(givenImageDiv) imgFromGivenDiv.arrayKey = givenImageKey; imgFromGivenDiv.src = "' . $dokuwikiMediaUrl . '" + imgFromGivenDiv.array[givenImageKey]; imgFromGivenDiv.title = imgFromGivenDiv.arrayTitle[givenImageKey] }
function fullscreen(givenImageDivId) { ctFullscreen = document.getElementById("fullscreenContainer"); ctFullscreenImage = document.getElementById("fullscreenImage"); ctFullscreenInfo = document.getElementById("fullscreenInfo"); ctFullscreenInfoTitle = document.getElementById("fullscreenTitle"); ctFullscreenInfoDescription = document.getElementById("fullscreenDescription"); ctFullscreenInfoNav = document.getElementById("fullscreenNav"); ctFullscreenInfoPrev = document.getElementById("fullscreenPrev"); ctFullscreenInfoCount = document.getElementById("fullscreenCount"); ctFullscreenInfoNext = document.getElementById("fullscreenNext"); imgFromGivenDiv = document.getElementById(givenImageDivId);
if (typeof imgFromGivenDiv.array == "undefined") { ctFullscreenImage.src = imgFromGivenDiv.src; ctFullscreenImage.title = imgFromGivenDiv.title; ctFullscreenImage.description = imgFromGivenDiv.description; ctFullscreenInfoNav.style.display = "none"; } else { ctFullscreenImage.arrayKey = imgFromGivenDiv.arrayKey; ctFullscreenImage.array = imgFromGivenDiv.array; ctFullscreenImage.arrayTitle = imgFromGivenDiv.arrayTitle; ctFullscreenImage.arrayDesc = imgFromGivenDiv.arrayDesc; ctFullscreenImage.src = "' . $dokuwikiMediaUrl . '" + ctFullscreenImage.array[ctFullscreenImage.arrayKey]; ctFullscreenImage.title = ctFullscreenImage.arrayTitle[ctFullscreenImage.arrayKey]; ctFullscreenImage.description = ctFullscreenImage.arrayDesc[ctFullscreenImage.arrayKey]; ctFullscreenInfoNav.style.display = "flex"; ctFullscreenInfoCount.innerHTML = (parseInt(ctFullscreenImage.arrayKey) + 1) + "/" + ctFullscreenImage.array.length; if ((parseInt(ctFullscreenImage.arrayKey) + 1) == ctFullscreenImage.array.length) { ctFullscreenInfoNext.style.visibility = "hidden"; } else { ctFullscreenInfoNext.style.visibility = "visible"; } if (parseInt(ctFullscreenImage.arrayKey) == 0) { ctFullscreenInfoPrev.style.visibility = "hidden"; } else { ctFullscreenInfoPrev.style.visibility = "visible"; } } if ((typeof ctFullscreenImage.title == "undefined") || (ctFullscreenImage.title == "")) { ctFullscreenInfoTitle.innerHTML = "keine Beschreibung vorhanden"; } else { ctFullscreenInfoTitle.innerHTML = ctFullscreenImage.title; }
ctFullscreen.style.display = "flex"; }
function fullscreenClose() { ctFullscreen = document.getElementById("fullscreenContainer"); ctFullscreen.style.display = "none"; }
function fullscreenPrev() { ctFullscreen = document.getElementById("fullscreenImage"); ctFullscreen.arrayKey = parseInt(ctFullscreen.arrayKey) - 1; fullscreen("fullscreenImage"); }
function fullscreenNext() { ctFullscreen = document.getElementById("fullscreenImage"); ctFullscreen.arrayKey = parseInt(ctFullscreen.arrayKey) + 1; fullscreen("fullscreenImage"); } </script> ';
Medienverzeichnis prüfen und ggfs. anlegen (vereinfacht das Hochladen von Bildern über den MediaManager) /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ ###### Alle Bilder am angegebenen Pfad finden (hier Blog-Mediendateien)
//###### zugehoeriges Medien-Verzeichnis ermitteln $filePathOfPageImages = str_replace('/pages/media/', '/media/', phpConvertNamespaceToFilesystemPath('media:' . $_GET["id"])); //###### das übergeordnete (Parent)-Verzeichnis des Medien-Verzeichnises ermitteln $filePathOfPageImagesSplit = explode(':', $_GET["id"]); end($filePathOfPageImagesSplit); array_pop($filePathOfPageImagesSplit); $wikiPathOfParentPageImages = implode(':', $filePathOfPageImagesSplit); $filePathOfParentPageImages = str_replace('/pages/media/', '/media/', phpConvertNamespaceToFilesystemPath('media:' . $wikiPathOfParentPageImages)); //###### Erstelle den Pfad, falls er nicht existiert $filePathOfPageImagesSplit=explode('/', ltrim($filePathOfPageImages, '/')); $pathOfPageImagesBreadcrumb = ''; foreach($filePathOfPageImagesSplit as $currentPathOfPageImagesSubfolder) { $pathOfPageImagesBreadcrumb .= '/' . $currentPathOfPageImagesSubfolder; if (!file_exists($pathOfPageImagesBreadcrumb)) { mkdir($pathOfPageImagesBreadcrumb); } }
Generiere die eigentliche Seite /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ ###### HTML-Tag öffnen
//################################################################################## echo '<html>';
//###### JavaScript-Funktionen einbinden, falls gesetzt //################################################################################## if (isset($jsLightboxFunctions)) { echo $jsLightboxFunctions; }
//###### Fullscreen-Image-Container erzeugen //################################################################################## echo ' <div id="fullscreenContainer" class="ctr-fullscreen-outer-frame"> <div class="ctr-fullscreen-inner-frame"> <div class="ctr-fullscreen-img-outer-frame"> <div onclick="fullscreenClose()" class="ctr-fullscreen-img-inner-frame">' . ( (!empty($pageVarArray['variables']['default']['pageImageCover'])) ? '<img id="fullscreenImage" src="' . $dokuwikiMediaUrl . $pageVarArray['variables']['default']['pageImageCover'] . '">' : '' ) . '</div> </div> <div id="fullscreenInfo" class="ctr-fullscreen-info"> <div class="ctr-fullscreen-description-outer-frame"> <div id="fullscreenTitle" class="ctr-fullscreen-desc-title">keine Beschreibung vorhanden</div> <div id="fullscreenDescription" class="ctr-fullscreen-desc-content"></div> </div> <div id="fullscreenNav" class="ctr-fullscreen-nav"> <div id="fullscreenPrev" onclick="fullscreenPrev()" class="elem-fullscreen-overlay-nav-btn">◀</div> <div id="fullscreenCount" class="elem-fullscreen-overlay-nav-count">1/1</div> <div id="fullscreenNext" onclick="fullscreenNext()" class="elem-fullscreen-overlay-nav-btn">▶</div> </div> </div> </div> </div> ';
//###### Parent-Inhalts-Container //################################################################################## //###### BEGIN: parent-container: umspannender Inhalts-Container echo "
";
//###### BEGIN: parent-container-linke-spalte: umspannender Inhalts-Container echo " <div class='" . ( ((isset($pageVarArray['variables']['default']['sidebarRight'])) && (file_exists(phpConvertPageToFilesystemPath($pageVarArray['variables']['default']['sidebarRight'])))) ? 'ct-parent-column-left' : 'ct-parent-column-full' ) . "'>";
//CONDITION: Falls ein Top-Banner der Seite angezeigt werden soll if ( ($pageVarArray['variables']['default']['pageImageBannerDisplay']) && (!empty($pageVarArray['variables']['default']['pageImageBanner'])) ) { echo " <div class='ct-paragraph' style='border: none; background: none; border-radius: 0;'> <div class='ct-paragraph-section-content-image-banner' style='background: none;'>" . func_showImage($dokuwikiMediaUrl, $pageVarArray['variables']['default']['pageImageBanner'], '', '', 'stretch-top', '0', '0') . "</div> </div> "; }
//Informationen zu Datum, Webpage und Autor echo " <div style='margin-bottom: var(--global-font-size);'>Beitrag" . ( (!empty($pageVarArray['variables']['default']['authorCreationDate'])) ? " vom {$pageVarArray['variables']['default']['authorCreationDate']}" : "" ) . " auf {$_SERVER['SERVER_NAME']}" . ( (!empty($pageVarArray['variables']['default']['authorCreationUser'])) ? " von </html>[[user:{$pageVarArray['variables']['default']['authorCreationUser']}]]<html>" : "" ) . "</div> ";
//CONDITION: Falls der Titel der Seite angezeigt werden soll if ($pageVarArray['variables']['default']['pageTitleDisplay']) { echo " <div class='ct-paragraph'> <div class='ct-page-title-top'>" . str_replace('\\\\', '<br />', $pageVarArray['variables']['default']['pageTitleRow1']) . "</div>" . ( (!empty($pageVarArray['variables']['default']['pageTitleRow2'])) ? "<div class='ct-page-title-bottom'>{$pageVarArray['variables']['default']['pageTitleRow2']}</div>" : "" ) . " </div> "; }
//CONDITION: Falls der Eyecatcher der Seite angezeigt werden soll if ( ($pageVarArray['variables']['default']['pageEyeCatcherDisplay']) && (!empty($pageVarArray['variables']['default']['pageEyeCatcher'])) ) { echo " <div class='ct-paragraph'" . ( ($pageVarArray['variables']['default']['pageEyeCatcherStyled']) ? "" : " style='border: none; border-radius: none; background: none;'" ). "> <div class='ct-paragraph-eyecatcher'" . ( ($pageVarArray['variables']['default']['pageEyeCatcherStyled']) ? "" : " style='background: none;'" ). ">{$pageVarArray['variables']['default']['pageEyeCatcher']}</div> </div> "; }
//LOOP: Finde alle Content-Bereiche foreach($pageVarArray['paragraphs'] as $keyCurrentParagraph=>$currentParagraph) { unset($currentInlineSection); if ($currentParagraph['paragraphDisplay']) { echo " <div class='ct-paragraph'" . ( ($currentParagraph['paragraphStyled']) ? "" : " style='border: none; border-radius: 0; background: none;'" ). ">"; echo ( (($currentParagraph['paragraphTitleDisplay']) && (!empty($currentParagraph['paragraphTitle']))) ? "<div class='ct-paragraph-title'>" . trim($currentParagraph['paragraphTitle']) . "</div>" : "" ); foreach($currentParagraph['paragraphSections'] as $keyCurrentSection=>$currentParagraphSection) { //CONDITION: Handelt es sich beim aktuellen Abschnitt um einen Abschnitt mit einem "Nachbarn"? if ((isset($currentInlineSection['left'])) || ($currentParagraphSection['sectionAlignment'][0] == 'inline') || ($currentParagraphSection['sectionAlignment'][0] == 'column')) { if (isset($currentInlineSection['left'])) { if (($currentParagraphSection['sectionAlignment'][0] != 'inline') && ($currentParagraphSection['sectionAlignment'][0] != 'column')) { echo '<html> <div style="width: 100%; height: 100px; padding-top:25px; text-align: center; border: 2px solid black; font-weight: bold; font-size: 2vw;"> FEHLER: Es wurde nur einer von zwei Inline- oder Spalten-Bereichen angegeben </div> </html>'; exit(); } $currentInlineSection['right'] = $currentParagraphSection; $currentInlineSection['right']['sectionAlignment'][0] = 'inline-right'; //CONDITION: Falls zwei Nachbar-Bereiche korrekt angegeben wurden, stelle diese dar; Sollte einer von beiden als Spalte angegeben sein, deaktiviere den Fließtext if (($currentInlineSection['left']['sectionAlignment'][0] == 'column') || ($currentInlineSection['right']['sectionAlignment'][0] == 'column')) { $inlineSuffix = '-column'; } else { $inlineSuffix = ''; } echo "<div class='ct-paragraph-section-flow-outer{$inlineSuffix}'><div class='ct-paragraph-section-flow-inner{$inlineSuffix}'>" . ( ($currentInlineSection['right']['sectionType'][0] == 'image') ? func_showImage($dokuwikiMediaUrl, $currentInlineSection['right']['sectionContent'], $currentInlineSection['right']['sectionTitle'], $currentInlineSection['right']['sectionDescription'], $currentInlineSection['right']['sectionAlignment'][0], $keyCurrentParagraph, $keyCurrentSection . '-right') : trim($currentInlineSection['right']['sectionContent']) ) . "</div>" . ( ($currentInlineSection['left']['sectionType'][0] == 'image') ? func_showImage($dokuwikiMediaUrl, $currentInlineSection['left']['sectionContent'], $currentInlineSection['left']['sectionTitle'], $currentInlineSection['left']['sectionDescription'], $currentInlineSection['left']['sectionAlignment'][0], $keyCurrentParagraph, $keyCurrentSection . '-left') : trim($currentInlineSection['left']['sectionContent']) ) . "</div>"; } else { $currentInlineSection['left'] = $currentParagraphSection; $currentInlineSection['left']['sectionAlignment'][0] = 'inline-left'; continue; } unset($currentInlineSection); //CONDITION: Handelt es sich beim angegebenen Abschnitt um eine Gallerie } elseif ($currentParagraphSection['sectionType'][0] == 'gallery') { $currentGalleryImageArray = func_buildGalleryRepo($currentParagraphSection); echo func_showImage($dokuwikiMediaUrl, $currentGalleryImageArray[0]['image'], $currentGalleryImageArray[0]['title'], $currentGalleryImageArray[0]['description'], $currentParagraphSection['sectionType'][0], $keyCurrentParagraph, $keyCurrentSection); $imageRibbonString = func_buildGalleryRibbon($dokuwikiMediaUrl, $keyCurrentParagraph, $keyCurrentSection, $currentGalleryImageArray); echo ' <div class="ct-image-gallery-ribbon"> <div class="ct-image-gallery-ribbon-content">' . $imageRibbonString . '</div> </div> '; } else { echo ( (($currentParagraphSection['sectionTitleDisplay']) && (!empty($currentParagraphSection['sectionTitle']))) ? "<div class='ct-paragraph-section-title'>" . trim($currentParagraphSection['sectionTitle']) . "</div>" : "" ); echo " <div class='ct-paragraph-section-content'" . ( ($currentParagraph['paragraphStyled']) ? "" : " style='background: none;'" ). ">" . ( ($currentParagraphSection['sectionType'][0] == 'image') ? func_showImage($dokuwikiMediaUrl, $currentParagraphSection['sectionContent'], $currentParagraphSection['sectionTitle'], $currentParagraphSection['sectionDescription'], $currentParagraphSection['sectionAlignment'][0], $keyCurrentParagraph, $keyCurrentSection) : trim($currentParagraphSection['sectionContent']) ) . "</div> "; } } echo " </div> "; } }
//###### CLOSE: parent-container-linke-spalte: umspannender Inhalts-Container echo " </div>";
// CONDITION: Falls eine Seitenleiste eingeblendet werden soll, füge diese Hinzu if ((isset($pageVarArray['variables']['default']['sidebarRight'])) && (file_exists(phpConvertPageToFilesystemPath($pageVarArray['variables']['default']['sidebarRight'])))) { //###### BEGIN: parent-container-rechte-spalte: umspannender Inhalts-Container echo "<div class='ct-parent-column-right'>"; include($sidebarRight); //###### CLOSE: parent-container-rechte-spalte echo " </div>"; }; //###### CLOSE: parent-container: umspannender Inhalts-Container echo "</div>";
//###### JavaScript - tatsächliche Größe der ParentBox bestimmen und festlegen //################################################################################## echo ' <script language="javascript"> var biggestHeight = 0; // Loop through elements children to find & set the biggest height $(".parentbox*").each(function(){ // If this elements height is bigger than the biggestHeight if ($(this).height() > biggestHeight ) { // Set the biggestHeight to this Height biggestHeight = $(this).height(); } });
// Set the container height $(".parentbox").height(biggestHeight); </script> '; //###### HTML-Tag schließen //################################################################################## echo '</html>';
?>