<?php

###### Funktionsaufruf (alle Blog-Dateien finden, validieren und einbinden) ################################################################################## $includedFiles = getAndValidateBlogEntries($findBlogContentInThisPath); ################################################################################## ###### Funktion: Rekursives durchsuchen nach Blog-Eintraegen ###### Hinweis: Wird durch die Funktion getAndValidateBlogEntries() aufgerufen ################################################################################## function scanForPages($givenFilePath, $recurse) { ###### Wenn Uebergabewert In DokuWiki-Pfad-Syntax, dann konvertiere zu File-System-Pfad-Syntax

  if ((strpos($givenFilePath,':'))) {
  //###### String enthält :
    $tree = glob(rtrim(phpConvertNamespaceToFilesystemPath($givenFilePath), '/') . '/*');
  } elseif (strpos($givenFilePath,'/') !== false ) {
  //###### String enthält /
    $tree = glob(rtrim($givenFilePath, '/') . '/*');
  } else {
  //###### String enthält weder : noch /
    $tree = glob(rtrim(phpConvertNamespaceToFilesystemPath($givenFilePath), '/') . '/*');
  }
  global $includedFile;
  //###### Exclude-Liste (Verzeichnisse und Dateien) in Array umwandeln

if (is_array($tree)) { foreach($tree as $file) { echo "Gefunden: $file <br />";

      //###### Falls ein Verzeichnis gefunden wird, auch dieses rekursiv durchsuchen
      if ( (is_dir($file)) && (!(strpos($file, 'pagedata'))) &&(!(strpos($file, 'vorlagen'))) ){
        //echo "Verzeichnis gefunden: $file  <br />";
        if ($recurse) {
          scanForPages($file, $recurse);
        };
      //###### Falls eine Datei gefunden wird, weitere Schritte vornehmen
      } elseif (is_file($file)) {
        if ( (!(strpos($file, 'pagedata'))) &&(!(strpos($file, 'vorlagen'))) && (!(strpos($file, '_template'))) && (!($file == phpConvertPageToFilesystemPath($_GET["id"]))) && (!(strpos($file, 'start.txt'))) ) {
          //###### Diese Datei einschliessen
          //echo "Datei $file einschliessen <br /> ";
          //###### 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");
          }
          $dokuWikiConformPagePath= phpCreateDokuWikiConformName(substr(str_replace(realpath(dirname(__FILE__) . '/../../..'), '', $file),1));

echo "Test: " . $_SERVER["SCRIPT_NAME"] . " – " . realpath(dirname(FILE)) . " – " . str_replace(realpath(dirname(FILE) . '/../../..'), , $file). "<br />"; echo $dokuWikiConformPagePath . "<br />"; ###### Datei dem Blog-Page-Array hinzufuegen $includedFile[] = $dokuWikiConformPagePath; } } } } ###### globales Array uebergeben return $includedFile; } $filePathOfCurrentPageSplit = explode(':', $_GET["id"]); end($filePathOfCurrentPageSplit); array_pop($filePathOfCurrentPageSplit); $wikiPathOfCurrentPage = implode(':', $filePathOfCurrentPageSplit); $filePathOfCurrentPage = phpConvertNamespaceToFilesystemPath($wikiPathOfCurrentPage); $includedFiles = scanForPages($filePathOfCurrentPage, true); Variablen bestimmen ###### URL zur Anzeige von Bildern über http/https $dokuwikiMediaUrl = 'https:' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/lib/exe/fetch.php?media='; Variablen der Blog-Startseite auslesen $startPageData['variables']=phpGetWrappedVariables(htmlspecialchars($_GET["id"])); ###### Lese die Variablen der Blog-Seiten aus foreach ($includedFiles as $currentFile) { Variablen auslesen und korrigieren/ergänzen $variableArrayExtractedWrapped = phpGetWrappedVariables($currentFile); ###### sezte deutsches Zeitformat als Erstelldatum $variableArrayExtractedWrapped['pageCreationDate'] = date("d.m.Y",strtotime($variableArrayExtractedWrapped['pageCreationDate'])); $variableArrayExtractedWrapped['pageCreationTimeStamp'] = strtotime("{$variableArrayExtractedWrapped['pageCreationDate']} {$variableArrayExtractedWrapped['pageCreationTime']}"); ###### Füge dem Array die zugehörge Produkt-Test-Page und die Blog-Page hinzu $variableArrayExtractedWrapped['pageDataFile'] = $currentFile; ###### Inkludiere Blog-Daten, falls Blog auf Published steht und prüfe weiter if ( $variableArrayExtractedWrapped['pageReleaseState'] == 'published' ) { if (empty($hasToContainTagsArray)) { $pageData[]['variables'] = $variableArrayExtractedWrapped; } else { $hasToContainTagsString = ; foreach($hasToContainTagsArray as $TagToContain) { $hasToContainTagsString .= '#' . $TagToContain . ' '; if ( (strpos(strtolower($variableArrayExtractedWrapped['pageCategories']),strtolower($TagToContain))) || (strpos(strtolower($variableArrayExtractedWrapped['pageTags']),strtolower($TagToContain))) ) { ###### Setze Schalter: Behalte diesen Blog-Eintrag $popThispage = 0; } } if ($popThispage == 0) { $pageData[]['variables'] = $variableArrayExtractedWrapped; } } } } ###### alle validen Blog-Eintraege werden zeitlich sortiert (ab PHP7 usort mit space ship operator) array_multisort(array_column($pageData, 'pageCreationTimeStamp'), SORT_DESC, $pageData ); usort($pageData, function($a, $b) { return $b['variables']['pageCreationTimeStamp'] ⇔ $a['variables']['pageCreationTimeStamp']; }); ###### Übergabe-Variabeln korrigieren ################################################################################## ###### Initial vorgegebener Start-Beitrag $displayedPagesStart = $startPageData['variables']['displayedPagesStart']; ###### Falls ein Index für den ersten anzuzeigenden Beitrag übergeben wurde, nimm diesen if (isset($_GET['displayedPagesStart'])) { $displayedPagesStart = $_GET['displayedPagesStart']; } ##### Falls der erste Beitrag die Anzahl an Beiträgen übersteigt, korrigiere das if ($displayedPagesStart > (sizeof($pageData) - 1)) { $displayedPagesStart = sizeof($pageData) - 1; } ###### Initial vorgegebene Beiträge pro Seite $displayedPagesMax = $startPageData['variables']['displayedPagesMax']; ###### Falls ein Index für Beiträge pro Seite übergeben wurde, nimm diesen if (isset($_GET['displayedPagesMax'])) { $displayedPagesMax = $_GET['displayedPagesMax']; } ###### Falls der letzte anzuzeigende Beitrag die Anzahl an Beiträgen übersteigt, korrigiere das if ( ($displayedPagesMax == -1) || 1) ){ $displayedPagesEnd = (sizeof($pageData) - 1); } else { $displayedPagesEnd = ($displayedPagesStart + $displayedPagesMax) - 1; } echo '<html>

Es werden Beiträge ' . ($displayedPagesStart + 1) . ' bis ' . ($displayedPagesEnd + 1) . ' angezeigt.

<br /></html>'; ###### Navigation ################################################################################## Falls nicht alle verfügbaren Beiträge auf einer Seite angezeigt werden, blende die Navigation ein if 2) { ###### Wenn der erste angezeigte Beitrag nicht der erste Beitrag ist, dann zeige "Zurück" an echo '<html>

0) ? 'visible' : 'hidden' ) . ';"></html><<

';

  //###### Wenn der erste angezeigte Beitrag nicht der erste Beitrag ist, dann zeige "Neueste" an.
  echo '<html><div style="border: 2px solid lightgrey; border-radius: 10px; padding: 0.2vw; background: ghostwhite; display: inline-block; visibility: ' . ( ($displayedPagesStart > 0) ? 'visible' : 'hidden' ) . ';"></html>[[' . $_GET['id'] . '?displayedPagesStart=0|Neueste]]<html></div></html>';
  echo '<html><div style="border: 2px solid lightgrey; border-radius: 10px; padding: 0.2vw; background: ghostwhite; display: inline-block;"></html>[[' . $_GET['id'] . '?displayedPagesStart=0&displayedPagesMax=-1|Alle]]<html></div></html>';
  echo '<html><div style="border: 2px solid lightgrey; border-radius: 10px; padding: 0.2vw; background: ghostwhite; display: inline-block; visibility: ' . ( ($displayedPagesEnd < (sizeof( $pageData ) - 1)) ? 'visible' : 'hidden' ) . ';"></html>[[' . $_GET['id'] . '?displayedPagesStart=' . (sizeof($pageData) - $displayedPagesMax) . '|Älteste]]<html></div></html>';
  echo '<html><div style="border: 2px solid lightgrey; border-radius: 10px; padding: 0.2vw; background: ghostwhite; display: inline-block; visibility: ' . ( ($displayedPagesEnd < (sizeof( $pageData ) - 1)) ? 'visible' : 'hidden' ) . ';"></html>[[' . $_GET['id'] . '?displayedPagesStart=' . ($displayedPagesEnd + 1) . '|>>]]<html></div></html>';
}

###### CSS-Datei inkludieren ##################################################################################

include(phpConvertPageToFilesystemPath($startPageData['variables']['pageCssStyle']));

###### 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="parentbox-contentbox-left"><!-- ###### Linke Spalte (öffnen) -->

';

//##### Falls Such-Tags für anzuzeigende Artikel gesetzt wurden, liste sie hier
if ( !(empty($hasToContainTagsString)) ) {
  echo "
    <br />
    <div class='dateBox'><b>Tags: {$hasToContainTagsString}</b></div>
    <hr /><br />
  ";
}
for ($articleCounter=$displayedPagesStart; $articleCounter <= $displayedPagesEnd ; $articleCounter++) {
  if (array_key_exists($articleCounter, $pageData)) {
  
    //###### Page-Preview ermitteln
    //##################################################################################
    //###### Korrektur fehlerhafter Angaben / pürfe auf Existenz
    //##################################################################################
    //###### Es wurde eine Bild-Datei (jpg oder png) angegeben
    if ((strpos($pageData[$articleCounter]['variables']['pagePreview'],'.png')) || (strpos($pageData[$articleCounter]['variables']['pagePreview'],'.jpg'))) {
      //###### Es wurde ein vollständiger Wiki-Pfad angegeben
      if (strpos($pageData[$articleCounter]['variables']['pagePreview'],':')) {
        //###### Das angegebene Bild existiert nicht - lösche es aus der Variablen
        if (!(file_exists(str_replace('/data/pages/','/data/media/',phpConvertNamespaceToFilesystemPath($pageData[$articleCounter]['variables']['pagePreview']))))) {
          $pageData[$articleCounter]['variables']['pagePreview'] = '';
        }
      //###### Es wurde nur eine Bild-Datei angegeben
      } else {
        //###### Das angegebene Bild existiert nicht - lösche es aus der Variablen
        $pageData[$articleCounter]['variables']['pagePreview'] = $pageData[$articleCounter]['variables']['pageDataFile'] . ':' . $pageData[$articleCounter]['variables']['pagePreview'];
        if (!(file_exists(str_replace('/data/pages/','/data/media/',phpConvertNamespaceToFilesystemPath($pageData[$articleCounter]['variables']['pagePreview']))))) {
          $pageData[$articleCounter]['variables']['pagePreview'] = '';
        }
      }
    //###### Es wurde kein eBild-Datei angegeben - lösche den Variablen-Inhalt
    } else {
      $pageData[$articleCounter]['variables']['pagePreview'] = '';
    }
   
    //###### Fehlende Bild-Datei-Angabe korrigieren
    //##################################################################################
    //###### Es wurde keine Bild-Datei angegeben
    if ($pageData[$articleCounter]['variables']['pagePreview'] == ''){
      if ( file_exists(str_replace('/data/pages/','/data/media/',phpConvertNamespaceToFilesystemPath($pageData[$articleCounter]['variables']['pageDataFile'] . ':page_preview.png'))) ) { 
        //###### Falls page_preview.png existiert, weise dies zu
        $pageData[$articleCounter]['variables']['pagePreview'] = $pageData[$articleCounter]['variables']['pageDataFile'] . ':page_preview.png';
      } elseif ( file_exists(str_replace('/data/pages/','/data/media/',phpConvertNamespaceToFilesystemPath($pageData[$articleCounter]['variables']['pageDataFile'] . ':page_preview.jpg'))) ) { 
        //###### Falls page_preview.jpg existiert, weise dies zu
        $pageData[$articleCounter]['variables']['pagePreview'] = $pageData[$articleCounter]['variables']['pageDataFile'] . ':page_preview.jpg';
      } else {
        //###### Es wurde keine Preview-Datei im zugehörigen Medien-Verzeichnis gefunden - Suche eine Ebene höher nach Standard-Bildern
        $wikiPathOfCurrentFileSplit = explode(':', $pageData[$articleCounter]['variables']['pageDataFile']);
        array_pop($wikiPathOfCurrentFileSplit);
        $pageData[$articleCounter]['variables']['pageDataFile'] = implode(':', $wikiPathOfCurrentFileSplit);
      //###### Falls page_preview.jpg nicht existiert, weise Standard-Image aus uebergeordnetem Verzeichnis zu
        $search = array('/data/pages/', '.txt');
        $replace = array('/data/media/', '');
      //###### Falls standard_page_preview.png existiert, weise dies zu
        if (file_exists(str_replace($search , $replace , phpConvertNamespaceToFilesystemPath($pageData[$articleCounter]['variables']['pageDataFile'] . ':standard_page_preview.png')))) {
        $pageData[$articleCounter]['variables']['pagePreview'] = str_replace(':pagedata:' , ':' , $pageData[$articleCounter]['variables']['pageDataFile']) . ':standard_page_preview.png';
      //###### Falls page_preview.jpg existiert, weise dies zu
        } elseif (file_exists(str_replace($search , $replace , phpConvertNamespaceToFilesystemPath($pageData[$articleCounter]['variables']['pageDataFile'] . ':standard_page_preview.jpg')))) {
        $pageData[$articleCounter]['variables']['pagePreview'] = str_replace(':pagedata:' , ':' , $pageData[$articleCounter]['variables']['pageDataFile']) . ':standard_page_preview.jpg';
        }
      }
        //##################################################################################
    }
    //###### Datumsgruppierung und Datumsueberschrift der Blog-Pages
    //##################################################################################
    //###### Anzahl Tage seit letzter Blog-Page
    $timestampNow = time(); // Input your date here e.g. strtotime("2014-01-02")
    $timestampPublished = strtotime($pageData[$articleCounter]['variables']['pageCreationDate']);
    $day_diff = floor(($timestampNow - $timestampPublished)/(60*60*24));
    
    if (($articleCounter == 0) && ($day_diff <= 14)) {
      echo "
        <br />
        <div>Aktuelles auf {$_SERVER['SERVER_NAME']}</div>
        <hr /><br />
      ";
    } elseif ( ($pageData[$articleCounter]['variables']['pageCreationDate'] != $pageData[$articleCounter - 1]['variables']['pageCreationDate']) || ($displayedPagesStart > 0) ){
      echo "
        <br />
        <div class='dateBox'>Beiträge vom {$pageData[$articleCounter]['variables']['pageCreationDate']}</div>
        <hr /><br />
      ";
    }
    echo '
        <div class="blog-preview-sectionbox"><!-- Blogeintrag (Zusammenfassung) (öffnen) -->
          <div class="titlebox"><!-- ###### Titel (öffnen) -->
            <div class="titlebox-title"></html>' . str_replace('\\\\', '\\\\  ', $pageData[$articleCounter]['variables']['pageTitleRow1']) . '<html></div>
            <div class="titlebox-categories"></html>' . $pageData[$articleCounter]['variables']['pageCategories'] . '<html></div>
          </div><!-- ###### Titel (schließen) -->
          <div class="contentbox-preview"><!-- ###### Titelbild (öffnen) -->
            <div class="blog-previewbox-image"><img src="' . $dokuwikiMediaUrl . $pageData[$articleCounter]['variables']['pagePreview'] . '"></div>
          </div><!-- ###### Titelbild (schließen) -->
          <div class="blog-previewbox"><!-- ###### Eyecatcher (öffnen) -->
            <div class="blog-previewbox-eyecatcher"></html>' . $pageData[$articleCounter]['variables']['pageEyeCatcher'] . ' [[' . $pageData[$articleCounter]['variables']['pageDataFile'] . '|weiterlesen...]]<html></div>
            <div class="eyecatcherbox-bottom">Erstellt von </html>' . $pageData[$articleCounter]['variables']['pageCreationUser'] . ' am ' . $pageData[$articleCounter]['variables']['pageCreationDate'] . ' um ' . $pageData[$articleCounter]['variables']['pageCreationTime'] . ' Uhr<html></div>
          </div><!-- ###### Eyecatcher (schließen) -->
        </div><!-- Blogeintrag (Zusammenfassung) (schließen) -->
    ';
}
}
echo'
      </div><!-- ###### Linke Spalte (schließen) -->
      <div class="parentbox-contentbox-right"><!-- ###### Rechte Spalte (öffnen) -->
    ';
    include(phpConvertPageToFilesystemPath($startPageData['variables']['pageSidebarRight']));
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>';

?>


1)
$displayedPagesStart + $displayedPagesMax) > sizeof( $pageData
2)
$displayedPagesEnd - $displayedPagesStart) < (sizeof($pageData) - 1
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