CMS - Workbench | DE


Templating and Coding for CMS (WordPress, Bludit, Automad, Typesetter, GetSimple, Pico and more)


GetSimple Loop

Lesen Sie im GetSimple CMS alle Posts auf der Startseite aus, der Beitrag zeigt Ihnen wie das geht.

Der so genannte Loop ist aus WordPress bekannt und soll dafür sorgen, das auf der Startseite zunächste alle oder eine gewisse Anzahl an Beiträge angelistet werden. Das GetSimple CMS macht dies leider nicht, es ist aber ganz einfach mit wenig Zeilen PHP-Code erledigt.

<?php if(!defined('IN_GS')){ die('you cannot load this page directly.'); }
/****************************************************
*
* @File:         template.php
* @Package:        GetSimple
* @Action:        Reaktor-Block-4 Theme for GetSimple CMS
*
*****************************************************/
?>
<!DOCTYPE html>
<html>
<head>

    <!-- Site Title -->
    <title><?php get_page_clean_title(); ?> &lt; <?php get_site_name(); ?></title>
    <?php get_header(); ?>
    <meta name="robots" content="index, follow" />
    <meta charset="utf-8">
      <link rel="stylesheet" href="<?php get_theme_url(); ?>/bootstrap-4-3-1-dist/css/bootstrap.min.css">

</head>
<body>
   
    <nav class="navbar navbar-expand-lg navbar-light bg-light shadow-lg" style="box-shadow: 0px 0px 100px #000000 !important; background-color: LightSlateGray !important; color: #FFFFFF;">
    <ul class="navbar-nav mr-auto mt-2 mt-lg-0">
    <li class="nav-item"> <a class="nav-link text-light" href="http://greenalty.de/"> Home </a> </li>
    </ul>
    </nav>
   
    <div class="jumbotron jumbotron-fluid shadow-lg">
        <div class="container -mt-5 -mb-5">
              <a class="text-dark" href="http://greenalty.de/"><h1 class="display-4"><?php get_site_name(); ?></h1></a>
              <hr class="my-6">
              <p class="lead"><?php get_page_excerpt(); ?></p>
        </div>
      </div>
   
    <div class="container">
        <div class="row">
            <div class="col-sm">
                <h1><?php get_page_title(); ?></h1>
       
                <?php get_page_content(); ?>
       
                <hr>
                <p class="small"><?php get_page_date('F jS, Y'); ?></p>
            </div>
            <div class="col-sm">
                <?php get_component('sidebar');    ?>
                <?php get_component('tagline'); ?>
            </div>
        </div>

    <?php
    // der Loop --------------------------------------------------------------
    function get_content($page){ 
        $path     = "data/pages";
        $thisfile = @file_get_contents('data/pages/'.$page.'.xml');
        $data     = simplexml_load_string($thisfile);
        return stripslashes(htmlspecialchars_decode($data->content, ENT_QUOTES));;
    }

    $data = menu_data();

    foreach($data as $value) {
        echo '<a class="text-dark" href="';
        echo $value['url'];
        echo '" title="';
        echo $value['title'];
        echo '"><h1 class="display-4">';
        echo $value['title'];
        echo '</h1></a>';
        echo '<p>'.get_content($value['slug']).'</p>';
    }
    // der Loop --------------------------------------------------------------
    ?>
       
    </div>
   
</body>
</html>

Der wichtige Teil des Codings ist mit Loop gekennzeichnet und beinhaltet im wesentlichen eine Funktion die das XML-File (Post-File) läd, bereinigt und an den Aufrufer im Loop zurück gibt. Aufgerufen wird diese Funktion aus der Schleife foreeach($data...) die den slug ermittelt den die Funktion get_content() benötigt.

Das restliche Template besteht dann nur noch aus Layoutings im Bootstrap-CSS.

25.11.2020 • GetSimple • Loop


Oliver Lohse - Ich bin diplomierter Wirtschafts-Informatiker und Organisations-Programmierer in verschiedenen Sprachen bzw. Markup-Dialekten, z.B.: Java, JEE, COBOL, PHP, Python, MySQL, HTML, CSS, ANSI C, Lisp, Rexx, JavaScript, Scheme, ActionScript 2.0, Maschinensprache, Assembler und JCL. Seit mehr als 22 Jahren arbeite ich in einem grossen Softwareunternehmen in Niedersachsen. Sie sehen auf dieser Seite mein eigens für Bludit CMS entwickeltes Theme "Reaktor-Block IV".

Kontakt: Κontakt@Οliver-Lohse.de



CMS Workbench

Hilfreiche Tipps, Tricks, Codings und Codeschnipsel, die im Rahmen der Entwicklung, Weiterentwicklung und Templatings zum Thema CMS immer wieder benötigt werden - aus verschiedenen Sprachdialekten wie Java, JavaScript, PHP, Python und anderen.