Loading...   Upload Image

content für startseite aus anderer Datei statt mysql tabelleForum » Webzone » PHP & MySQL » content für startseite aus anderer Datei statt mysql tabelle

Neues Thema verfassen Neues Thema

  • selfmadeUser ist offline
    Newbie



    Registriert: 09.07.2013
    Beitraege: 4

    09.07.2013 um 16:40 Uhr

    Hallo an alle,

    mir wie leider kein besserer Titel ein :D

    Ich komme mit meinen Kenntnissen leider nicht mehr weiter und hoffe ihr könnt mir helfen.
    Ich schreibe ein kleines CMS mit den Funktionen die ich brauche. Nun habe ich das Template der späteren Website schon fertig. Der Inhalt der einzelnen Seiten wird aus mysql ausgelesen und im CMS kann ich das ganze per TinyMCE verändern.

    Nun möchte ich aber auf der Startseite nicht aus der Tabelle auslesen wo der Seiteninhalt herkommt sonder aus einer anderen, da die Startseite wie ein Blog benutzt werden soll. Dazu will ich das Newssystem aus dem Tutorial von dieser Seite verwenden. Es funktioniert alles bis auf die Einbindung auf der Startseite.

    Hier der Code für die index.php:

    <?php
    // Inkludiert unsere Datei die sich um die Datenbankverbindung und die Abfragen kümmert 
    include( 'include/funktionen.inc.php' );
    include( 'include/stats.inc.php' );
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title><?php echo $metadaten['title']; // Titel der Seite ?></title>
    <meta name="keywords" content="<?php echo $metadaten['keywords']; // Meta-Tag Keywords ?>" />
    <meta name="description" content="<?php echo $metadaten['description']; // Meta-Tag Beschreibung der Seite ?>" />
    <meta name="author" content="<?php echo $metadaten['autor']; // Meta-Tag Autor der Seite ?>" />
          <link href="notepress/np_template/layout/css/style.css" rel="stylesheet" type="text/css" media="screen"/>
    </head>
    
    <body>
    <!-- WRAPPER STARTS -->
    <div id="wrapper">
    <div id="newsletter"><img border="0" alt="Post"><a href="#" target="_self">SUBSCRIBE<a></div>
    <div id="social_nav">
      <ul class="social_menu">
        <li>
          <a href="https://plus.google.com/u/0/108162942199369870167/about/p/pub" target="_blank" title="Google+" id="social_goog"></a>
          <a href="http://www.youtube.com/tonjongleur" target="_blank" title="YouTube" id="social_you"></a>
          <a href="http://www.soundcloud.com/tonjongleur" target="_blank" title="Soundcloud" id="social_sc"></a>
          <a href="http://www.twitter.com/tonjongleur" target="_blank" title="Twitter" id="social_twit"></a>
          <a href="http://www.facebook.com/tonjongleur" target="_blank" title="Facebook" id="social_fb"></a>
       </li>
      </ul>
    </div>
    
    <!-- HEADER START -->
    <div id="header">
      <a href="../" target="_self" title="Tonjongleur"></a> 
    </div>
    <!-- HEADER END -->
    
    <!-- NAVI START -->
    <div id="navi_container">
      <ul id="navi_menu" class="navi_menu">
        <li>
    
                   <?php
                   // Menu wird erzeugt
    			   if (is_array( $navi ))
                   {
                       for ($i = 0; $i < count( $navi['alias'] ); $i++)
    				   {
                           echo '<a href="' .$navi['alias'][$i]. '.html">' .$navi['link_title'][$i]. "</a>\n";
                       }
                   }
    			   ?>
        </li>
      </ul>
    </div>
    <!-- NAVI END -->
            
                <?php 
             
    	            echo $artikel['inhalt']; // Gibt den Seiteninhalt aus  
               
                
                 ?>
                
    </div>
    <!-- WRAPPER ENDS-->
    </body>
    </html>


    Hier der Code meiner function.inc.php:
    <?php
    
    /* ************************************** */
    /* *** Datenbankverbindung herstellen *** */
    /* ************************************** */
    
    
    {
    	// Zum Server verbinden und die Resource ID in $conid ablegen
    	$conid = @mysql_connect( $dbhost, $dbbenutzer, $dbpasswort );
    	// Bei erfolgreicher Verbindung die entsprechende Tabelle auswählen
    	if (is_resource( $conid ) && @mysql_select_db( $dbname, $conid) )
    	{
    		// Resource ID in den öffentlichen Bereich zurückgeben
    		return $conid;
    	}
    	else
    	{
    		// Falls keine Verbindung hergestellt werden konnte wird das Script beendet
    		die( 'Es konnte keine Verbindung zur Datenbank hergestellt werden!' );
    	}
    }
    
    
    /* ********************************* */
    /* *** Navigation-Links erzeugen *** */
    /* ********************************* */
    function navigation( $conid )
    {
    	// Prüfen ob eine gültige Resource ID (geöffnete DBverbindung) vorhanden ist
    	if ($conid)
    	{
    		// Menüeinträge auslesen
    		$ergebnis = mysql_query( "SELECT `alias`, `link_title` FROM `np_navi` ORDER BY id ASC", $conid );
    		// Wenn etwas ausgelesen wurde ...
    		if (@mysql_num_rows($ergebnis) > 0)
    		{
    			// ... werden die Informationen für die Menüeinträge in ein Array umgeladen
    			while ($zeile = mysql_fetch_array( $ergebnis ))
    			{
    				$datensatz['alias'][]      = $zeile['alias'];
    				$datensatz['link_title'][] = $zeile['link_title'];
    			}
    		}
    		else
    		{
    			// Wenn keine Datensätze für das Menü ausgelesen wurde, bricht das Script ab
    			die( 'Es wurden keine Links fuer die Navigation gefunden!' );
    		}
    		// Abfrageergebnis löschen und Speicher freigeben
    		mysql_free_result( $ergebnis );
    		// Das Array mit den Informationen für das Menü in den öffentlichen Bereich zurückgeben
    		return $datensatz;
    	}
    }
    
    /* ********************** */
    /* * METADATEN AUSLESEN * */
    /* ********************** */  
    function metadaten( $conid )
    {
    	// Prüfen ob eine gültige Resource ID (geöffnete DBverbindung) vorhanden ist
    	if ($conid)
    	{
    		// Menüeinträge auslesen
    		$ergebnis = mysql_query( "SELECT `title`, `author`, `keywords`, `description` FROM `np_meta`", $conid);
    		// Wenn etwas ausgelesen wurde ...
    		if (@mysql_num_rows($ergebnis) > 0)
    		{
    			// ... werden die Informationen für die Menüeinträge in ein Array umgeladen
    			while ($zeile = mysql_fetch_array( $ergebnis ))
    			{
    				$datensatz['title']       = $zeile['title'];
    				$datensatz['keywords']    = $zeile['keywords'];
    				$datensatz['description'] = $zeile['description'];
    				$datensatz['autor']       = $zeile['autor'];
    			}
    		}
    		// Abfrageergebnis löschen und Speicher freigeben
    		mysql_free_result( $ergebnis );
    		// Das Array mit den Informationen für das Menü in den öffentlichen Bereich zurückgeben
    		return $datensatz;
    	}
    }
    
    
    /* ********************* */
    /* *** Artikel laden *** */
    /* ********************* */
    function artikel( $conid )
    {
    	// Die aufgerufene Adresse (z.B. http://www.domain.tld/ordner/dateiname.html)
    	// wird am Slash (/) zerlegt und mittels array_pop() wird der letzte Teil des Array
    	// (dateiname.html) abgetrennt und in der Variable $aufgerufene_url abgelegt.
    	$array = explode( "/", $_GET['url'] ); 
    	$aufgerufene_url = array_pop($array);  
    	// Prüft ob ein Dateiname aufgerufen wurde.
    	// Ist kein Wert vorhanden, wurde die Index Datei oder eine unbekannte Datei aufgerufen.
    	if (!isset( $aufgerufene_url ) ||
    		empty( $aufgerufene_url ) ||
    		strpos( $aufgerufene_url, '.html' ) === false )
    	{
    		// Setzt manuell den Artikel Alias für die Startseite
    		$alias = "news";
    	}
    	else
    	{
    		// Ist ein Wert vorhanden, haben wir hier eine Zeichenkette nach dem Muster von
    		// z.B. dateiname.html
    		// Diesen String zerlegen wir wieder mit explode am Punkt (.) aber diesmal
    		// trennen wir den ersten Teil des Array ab, da sich darin unser benötigter Artikel Alias
    		// befindet. array_shift() ist also das Gegenstück zu array_pop()
    		$array = explode( ".", $aufgerufene_url ); 
    	    $alias = array_shift($array);
    	}
    	// Datensatz aus der DB laden
    	// Prüfen ob eine gültige Resource ID (geöffnete DBverbindung) vorhanden ist
    	if ($conid)
    	{
    		// Artikel mit dem entsprechenden Alias auslesen
    		$ergebnis = @mysql_query( "SELECT `inhalt` FROM `np_content` WHERE `alias` = '" .mysql_real_escape_string($alias). "'", $conid );
    		// Wurde exakt 1 Artikel gefunden ...
    		if (@mysql_num_rows($ergebnis) == 1)
    		{
    			// ... werden die Artikel Informationen in einem Array abgelegt
    			while ($zeile = mysql_fetch_array( $ergebnis ))
    			{
    				$datensatz['inhalt']      = $zeile['inhalt'];
    			}
    		}
    		else
    		{
    			// Wurde kein Artikel in der DB gefunden, bricht das Script ab
    			// Hier könnte man auch eine Fehlerseite ausgeben oder auf die Startseite umleiten
    			die( 'Es wurde kein Artikel gefunden!' );
    		}
    		// Abfrageergebnis löschen und Speicher freigeben
    		mysql_free_result( $ergebnis );
    		// Array mit den Artikel Information in den öffentlichen Bereich zurückgeben
    		return $datensatz;
    	}
    }
    
    
    /* Datenbankverbindung öffnen */
    $conid = dbconnect();
    
    // Navigation laden
    $navi = navigation( $conid );
    
    // METADATEN LADEN
    $metadaten = metadaten( $conid );
    
    // CONTENT AUSLESEN
    $artikel = artikel( $conid );
    ?>


    Das ganze funktioniert einwandfrei. Habe auf meinem Server noch eine .htaccess liegen. Damit sieht die URL anstatt lalala.de/index.php?....... nun so aus lalala.de/news.html

    Nun will ich das ein Standartcontent auf der Newsseite platziert wird:

    Hier der Code aus dem Newssystem Tut der als Standartcontent dienen auf news.html dienen soll:
    <?php
    include( 'notepress/np_system/inc/navigation.inc.php' );
    // Sofern Kategorie angegeben
    if(isset($_GET['cat'])){ 
    
    	$where = "WHERE cat = '".clean_it($_GET['cat'])."'"; 
    	
    	echo "<h2 class=\"blue\">Abgelegtes unter '".clean_it($_GET['cat'])."'</h2>";	
    
    	$pfad = "news.php?cat=".urlencode(clean_it($_GET['cat']))."go=";
    	
    }else{
    
    	$pfad = "news.php?go=";
    }
    
    // News auslesen
    $abfrage = mysql_query("SELECT id FROM np_posts ".$where."");
    $total = mysql_num_rows($abfrage); 					// Anzahl aller Zeilen in DB ermitteln
    
    // ---------------------- Seitennavigationsdaten --------------------------------------------------
    
    $per_page = "5";      		// Anzahl der News die Pro Seite ausgegeben werden sollen
    $p = "5";                  // Anzahl der Links die in der Seitenavigation ausgegeben werden
    
    isset($_GET['go']) ? $go = clean_it($_GET['go']) : $go = ''; // Variable definieren
    
    // Blaetterfunktion aufrufen
    list ($start, $ende) = get_navi($go, $total, $pfad, false, $per_page, $p);
    // ---------------------- ENDE Seitennavigationsdaten----------------------------------------------
    
    $abfrage = mysql_query("SELECT id, autor, title, cat, news, DATE_FORMAT(date, '%d.%m.%Y') AS datum FROM np_posts ".$where." ORDER BY date DESC LIMIT $start,$ende");
    
    // News ausgeben ausgeben
    while($row = mysql_fetch_object($abfrage)){
        
       // Anzahl der Kommentare ermitteln
        $comments = mysql_query("SELECT id FROM np_comments WHERE news_id='$row->id'"); 
    	$com_num = mysql_num_rows($comments); // Anzahl der Kommentare
    	
        echo "<div class=\"news\">\n"; 
        echo "<h2>".$row->title."\n <small>verfasst von ".$row->autor." am ".$row->datum." | \n";
        
        if(!empty($row->cat)){  // sofern Kategorie angegeben
        	echo "abgelegt unter: <a href=\"news.php?cat=".urlencode($row->cat)."\">".$row->cat."</a> | \n";
        }
        echo "<a href=\"comments.php?id=".$row->id."\">Kommentare ".$com_num."</a></small>\n </h2>";
    
    	if(isset($_GET['cat'])){	// Kategorieseite nur einen Auszug ausgeben
    		$max_show = "250"; // max 450 Zeichen anzeigen
    
    		if (strlen($row->news) > $max_show){ // sofern $news mehr als 450 Zeichen enthaelt
    			echo "<p>".bbcode(substr($row->news, 0, strpos($row->news, ".", 120 )+1 ))."\n"; 
    			// Ab 150 Zeichen nach nem punkt suchen und alles das was davor enthalten ist ausgeben
    	
    			echo "<a href=\"comments.php?id=".$row->id."\" class=\"right\">read more...</a>\n";
    			echo "<br style=\"clear: right;\" /></p>"; // link ausgeben
    		}else{ // komplett ausgeben
    			echo $row->news);
    		}
    	}else{
    		echo $row->news);
    	}
        echo "</div>\n";
    
    } // close while
    
    // -------------------------------------- Seitennavigation ausgeben ----------------------------
    
    get_navi($go, $total, $pfad, true, $per_page, $p);
    
    // -------------------------------------- Seitennavigation ende --------------------------------
    ?>


    AUF DEN PUNKT: ruft einer die seite auf kommt news.html auf der soll das aus dem Newssystem angezeigt werden klickt er auf einen andern Link soll der Content der Seite wechseln auf das was aus der content Tabelle (mysql) kommt.

    Ich hoffe das ich das richtig erklärt habe und das nicht viel zu viel Code ist.
    Bitte helft mir!! :)

    LG selfmade



    Der Beitrag wurde insgesamt 1 mal editiert, zuletzt 11.07.2013 um 09:48 Uhr ...
  • selfmadeUser ist offline
    Newbie



    Registriert: 09.07.2013
    Beitraege: 4

    09.07.2013 um 21:23 Uhr

    Habs jetzt selber geschafft..man sollte eben doch mal in die php Manuals schauen und lernen ;)

    :::::::::: CLOSED ::::::::::



  • AliceUser ist offline
    Admin


    Alice

    Registriert: 14.12.2006
    Beitraege: 1059

    11.07.2013 um 09:49 Uhr

    Hallo Selfmade,

    freut mich, dass du es selbst hinbekommen hast!

    Liebe Gruesse
    Alice



    ... { signatur } ...

[ 1 ] Seite 1 von 1


Affiliates:   Pat DG  •   Blue-Graphics  •   Design Grafixx  •   Colorful Gfx  •   Chibi Graphics  •   Gallery Yuri  •   The Seduction  • Show all ...
designenlassen.de - Der Design-Marktplatz für Webdesign, Logo-Design, Flyerdesign u.v.m.        ALL-INKL.COM - Webhosting Server Hosting Domain Provider