<?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;
    if (file_exists(phpConvertPageToFilesystemPath($blogPageData[$includedBlogArrayId]['includeFileData']))) {
      //###### Dateinamen-Prefix für Images anhand der Produktseite ermitteln
      $imageFilePrefix = '';
      $imageFilePrefixArray = explode('_',end(explode(':',$blogPageData[$includedBlogArrayId]['includeFileData'])));
      foreach ($imageFilePrefixArray as $imageFilePrefixString) {
        if (strstr($blogCoverString, '-')) {
          $imageFilePrefix .= $imageFilePrefixString. '_';
        } else {
          $imageFilePrefix .= substr($imageFilePrefixString, 0, 3) . '_';
        }
      }
      //###### Dateinamen für Blog-Cover ermitteln
      if ((!isset($blogPageData[$includedBlogArrayId]['blogPageCover'])) || (empty($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)) {
    include(phpConvertPageToFilesystemPath($blogPageData[$articleCounter]['includeFileData']));
    $includedProductArrayId = key(array_slice($product, -1, 1, true));
    $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']:'') );
    $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>';

?>

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information