<?php ###### Funktionsaufruf (alle Blog-Dateien finden, korrigieren und einbinden) ##################################################################################
$includedFiles = recursiveScan($convertedPath, $excludeArray); //##### pruefe, ob zu der pagedata-Page eine Wiki-Page existiert foreach ($includedFiles as $file) { //###### alle zu pagedata uebergeordneten Namespaces finden (noch mit Doppelungen) $allNamespacesAbovePagedata[] = str_replace(':pagedata:' . end(explode(':', $file)), '' , $file); $cutPagedataFromCurrentFile = phpConvertPageToFilesystemPath(str_replace('pagedata:', '' , $file)); if (!(file_exists($cutPagedataFromCurrentFile))) { //###### Template fuer fehlende Wiki-Pages zu Produkttest $currentNamespaceTemplate = $unconvertedPath . ':vorlagen:nsp_tpl_' . str_replace(':' , '_', $unconvertedPath . str_replace($unconvertedPath , '' , str_replace(':pagedata:' . end(explode(':', $file)), '' , $file))); $pageFileContent = ' ~~NOCACHE~~ <phpwikify> include(phpConvertPageToFilesystemPath("' . $currentNamespaceTemplate . '")); </phpwikify> '; file_put_contents( $cutPagedataFromCurrentFile, str_replace(' ', '', $pageFileContent) ); } else { } } //##### pruefe, ob zu der Wiki-Page eine pagedata-Page existiert $allNamespacesAbovePagedata = array_unique($allNamespacesAbovePagedata); foreach ($allNamespacesAbovePagedata as $singleNamespaceAbovePagedata) { $filesInNamespace = glob(phpConvertNamespaceToFilesystemPath($singleNamespaceAbovePagedata) . '/*.txt'); foreach ($filesInNamespace as $singleFileInNamespace) { $connectedPagedataFile = str_replace('/'. end(explode('/', $singleFileInNamespace)),'',$singleFileInNamespace) . '/pagedata/' . end(explode('/', $singleFileInNamespace)); if ( (!(strpos('_template', $connectedPagedataFile))) && (!(file_exists($connectedPagedataFile))) ){ unlink($singleFileInNamespace); } } }
//##### inkludiere alle relevanten Blog-pagedata-Pages und passe Werte an foreach ($includedFiles as $file) { include (phpConvertPageToFilesystemPath($file)); $includedBlogArrayId = key(array_slice($blogPageData, -1, 1, true)); //###### Setze den Pointer auf das letzte Array-Elelment //###### Inkludiere Blog-Daten, falls Blog auf Published steht UND eine zugehoerige Produktseite existiert if ( (!($blogPageData[$includedBlogArrayId]['blogPageReleaseState'] == 'published')) ){ array_pop($blogPageData); } else { //###### sezte deutsches Zeitformat als Erstelldatum $blogPageData[$includedBlogArrayId]['blogPageCreationDate'] = date("d.m.Y",strtotime($blogPageData[$includedBlogArrayId]['blogPageCreationDate'])); $blogPageData[$includedBlogArrayId]['blogPageCreationTimeStamp'] = strtotime("{$blogPageData[$includedBlogArrayId]['blogPageCreationDate']} {$blogPageData[$includedBlogArrayId]['blogPageCreationTime']}"); //###### Füge dem Array die zugehörge Produkt-Test-Page und die pagedata-Page hinzu $blogPageData[$includedBlogArrayId]['includeFileBlogData'] = str_replace('pagedata:', '', $file); $blogPageData[$includedBlogArrayId]['blogPageDataFile'] = $file;
//###### Dateinamen für Blog-Cover ermitteln if ( (!isset($blogPageData[$includedBlogArrayId]['blogPageCover'])) || (empty($blogPageData[$includedBlogArrayId]['blogPageCover'])) || (!file_exists(phpConvertPageToFilesystemPath($blogPageData[$includedBlogArrayId]['blogPageCover'])))) { $blogPageData[$includedBlogArrayId]['blogPageCover'] = 'blog_cover.jpg'; } } } //###### alle validen Blog-Eintraege werden zeitlich sortiert array_multisort(array_column($blogPageData, 'blogPageCreationTimeStamp'), SORT_DESC, $blogPageData );
###### Übergabe-Variabeln korrigieren ##################################################################################
$displayedPagesStart = 0; $displayedPagesPerPage = $displayedPagesMax - $displayedPagesStart; if ($displayedPagesPerPage == -1) { $displayedPagesPerPage = sizeof( $blogPageData ); } if (isset($_GET['displayedPagesStart'])) { $displayedPagesStart = $_GET['displayedPagesStart']; } if (isset($_GET['displayedPagesMax'])) { $displayedPagesMax = $_GET['displayedPagesMax']; } if (($displayedPagesMax == -1)) { $displayedPagesMax = sizeof( $blogPageData ); }
###### Navigation ##################################################################################
if (!($displayedPagesPerPage == sizeof( $blogPageData ))) { echo 'Artikel-Index: '; echo '[[' . $_GET['id'] . '|[Neueste] ]]'; if ($displayedPagesStart >= $displayedPagesPerPage) { echo '[[' . $_GET['id'] . '?displayedPagesStart=' . ( $displayedPagesStart - $displayedPagesPerPage ) . '&displayedPagesMax=' . $displayedPagesStart . '|[<<] ]]'; } if ($displayedPagesMax < sizeof( $blogPageData )) { echo '[[' . $_GET['id'] . '?displayedPagesStart=' . $displayedPagesStart . '&displayedPagesMax=' . ($displayedPagesMax + $displayedPagesPerPage) . '| [Ältere] ]]'; echo '[[' . $_GET['id'] . '?displayedPagesStart=' . $displayedPagesMax . '&displayedPagesMax=' . ( $displayedPagesMax + $displayedPagesPerPage ) . '|[>>] ]]'; } if (($displayedPagesStart > 0) || ($displayedPagesMax < sizeof( $blogPageData ))) { echo '[[' . $_GET['id'] . '?displayedPagesStart=0&displayedPagesMax=-1|[Alle]]]'; } }
###### CSS-Datei inkludieren ##################################################################################
include($includeCss);
###### HTML-Tag öffnen ##################################################################################
echo '<html>';
###### Darstellungsstruktur ##################################################################################
echo ' <div class="parentbox"><!-- ###### parentbox umspannender Inhalts-Container (öffnen) --> <div class="sectionbox-row"><!-- ###### Sectionbox für Spalten im umspannenden Inhalts-Container (öffnen) -->
<div class="contentbox-left"><!-- ###### Linke Spalte (öffnen) -->
';
if ($displayedPagesMax > sizeof( $blogPageData )) { $displayedPagesMax = sizeof( $blogPageData ); } if ($displayedPagesStart < 0) { $displayedPagesStart = 0; } for ($articleCounter=$displayedPagesStart; $articleCounter < $displayedPagesMax ; $articleCounter++) { if (array_key_exists($articleCounter, $blogPageData)) { if ( (!(empty($blogPageData[$articleCounter]['includeFileData']))) && (file_exists(phpConvertPageToFilesystemPath($blogPageData[$articleCounter]['includeFileData']))) ) { include(phpConvertPageToFilesystemPath($blogPageData[$articleCounter]['includeFileData'])); $includedProductArrayId = key(array_slice($product, -1, 1, true)); $namespaceOfProduct = str_replace(':pagedata', '', $blogPageData[$articleCounter]['includeFileData']); echo $namespaceOfProduct . ' \\\\ '; $namespaceOfProduct = phpCreateDokuWikiConformName('wiki:ernährung:marke:' . $product[$includedProductArrayId]['marke']['wert']); $namespaceOfProduct = 'wiki:ernaehrung:marke:' . phpCreateDokuWikiConformName($product[$includedProductArrayId]['marke']['wert']) . ':' . phpCreateDokuWikiConformName($product[$includedProductArrayId]['produktlinie']['wert'] . ' -' . (!empty($product[$includedProductArrayId]['produktname']['wert']) ? ' ' . $product[$includedProductArrayId]['produktname']['wert']:'') . (!empty($product[$includedProductArrayId]['produktnamenszusatz']['wert']) ? ' ' . $product[$includedProductArrayId]['produktnamenszusatz']['wert']:'') ); echo $namespaceOfProduct . ' \\\\ '; $blogPageData[$articleCounter]['includedProductArrayId'] = $includedProductArrayId; } if (!(strstr($blogPageData[$articleCounter]['blogPageCover'],':'))) { $blogPageData[$articleCounter]['blogPageCover'] = $namespaceOfProduct . ':' . $blogPageData[$articleCounter]['blogPageCover']; } if ($articleCounter == 0) { echo " <br /> <div>Aktuelles auf {$_SERVER['SERVER_NAME']}</div> <hr /><br /> "; } elseif ( ($blogPageData[$articleCounter]['blogPageCreationDate'] != $blogPageData[$articleCounter - 1]['blogPageCreationDate']) || ($displayedPagesStart > 0) ){ echo " <br /> <div class='dateBox'>Beiträge vom {$blogPageData[$articleCounter]['blogPageCreationDate']}</div> <hr /><br /> "; }
echo ' <div class="sectionbox-column"><!-- Blogeintrag (Zusammenfassung) (öffnen) --> <div class="titlebox"><!-- ###### Titel (öffnen) --> <div class="titlebox-top"></html>' . $product[$includedProductArrayId]['marke']['wert'] . ' \\\\ ' . $product[$includedProductArrayId]['produktlinie']['wert'] . ' \\\\ ' . $product[$includedProductArrayId]['produktname']['wert'] . ' ' . $product[$includedProductArrayId]['produktnamenszusatz']['wert'] . '<html></div> <div class="titlebox-bottom"></html>' . $blogPageData[$articleCounter]['blogPageCategories'] . '<html></div> </div><!-- ###### Titel (schließen) --> <div class="contentbox"><!-- ###### Titelbild (öffnen) --> <div class="contentbox-information"></html>{{' . $blogPageData[$articleCounter]['blogPageCover'] . '?nolink}}<html><br /><br /></div> </div><!-- ###### Titelbild (schließen) --> <div class="eyecatcherbox"><!-- ###### Eyecatcher (öffnen) --> <div class="eyecatcherbox-top"></html>' . $blogPageData[$articleCounter]['blogPageEyeCatcher'] . ' [[' . $blogPageData[$articleCounter]['includeFileBlogData'] . '|weiterlesen...]]<html></div> <div class="eyecatcherbox-bottom"></html>' . $blogPageData[$articleCounter]['blogPageCreationDate'] . ', ' .$blogPageData[$articleCounter]['blogPageCreationTime'] . '<html></div> </div><!-- ###### Eyecatcher (schließen) --> </div><!-- Blogeintrag (Zusammenfassung) (schließen) --> '; } } echo' </div><!-- ###### Linke Spalte (schließen) -->
<div class="contentbox-right"><!-- ###### Rechte Spalte (öffnen) --> '; include($sidebarRight); echo ' </div><!-- ###### Rechte Spalte (schließen) -->
</div><!-- ###### Sectionbox für Spalten im umspannenden Inhalts-Container (schließen) --> </div><!-- parentbox umspannender Inhalts-Container (schließen) --> ';
###### 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>';
?>