SteviesWebsite

Meta Daten erstellen Teil 2 (CMS)

4. Februar 2010
Code & Blog / Schlagwörter:

Die Metadaten des CMS-Tutorials werden heute ausgelesen und gespeichert. Im letzten Beitrag haben wir bereits die Klasse Meta erstellt und ein Formular für die Meta Daten beim Seite Bearbeiten angezeigt.

Mit der system/classes/meta.php geht es auch direkt weiter. Wir haben dort bereits die Methoden load und save erstellt, die nun mit Leben befüllt werden:

    public function load(){
      global $dbpraefix;
      $res = mysql_query("SELECT name, content
                          FROM ".$dbpraefix."meta_local
                          WHERE page = '".$this->pageid."'");
      while($row = mysql_fetch_row($res)){
        if(strtolower($row['name'] == 'description')){
          $this->description = $row['content'];
        }
        else if(strtolower($row['name'] == 'keywords')){
          $this->keywords = $row['content'];
        }
        else if(strtolower($row['name'] == 'robots')){
          $this->robots = $row['content'];
        }
      }
    }
    
    public function save(){
      global $dbpraefix;
      mysql_query("DELETE FROM ".$dbpraefix."meta_local WHERE page = '".$this->pageid."'");
      if(trim($this->keywords) != ""){
        mysql_query("INSERT INTO ".$dbpraefix."meta_local (page,               name      , content)
                                                    VALUES('".$this->pageid."','keywords','".$this->keywords."')");
      }
      if(trim($this->description) != ""){
        mysql_query("insert into ".$dbpraefix."meta_local (page,               name      , content)
                                                    VALUES('".$this->pageid."','description','".$this->description."')");
      }
      if(trim(strtolower($this->robots)) != 'index, follow'){
        mysql_query("insert into ".$dbpraefix."meta_local (page,               name      , content)
                                                    VALUES('".$this->pageid."','robots','".$this->robots."')");
      }                                        
    }

Das ist glaub ich nicht weiter zu erklären. Die Funktion save muss noch in der Klasse /system/classes/page.php aufgerufen werden. Dies geschieht auch in einer Funktion namens save:

  function save(){
    global $dbpraefix;
    $res = mysql_query("UPDATE ".$dbpraefix."pages SET
                              title = '".$this->title."',
                              alias = '".$this->alias."',
                              menu = '".$this->menu."' 
                        WHERE id = '".$this->id."'");
    $this->meta->save();
    if($res){
      $args['title'] = $this->title;
      $args['alias'] = $this->alias;
      $args['menu']  = $this->menu;
      $args['id']    = $this->id;
      EventManager::raiseEvent("page_saved","../",$args);
    }
    return $res;
  }

Zu guter letzt müssen in der Datei /admin/includes/site-edit.php noch die eingebenen Daten in die Meta-Klasse geschreiben werden. Das geht so:

<?php
  if($_POST['save']){
    $page->deleteContent("../");
    $page->meta->description = $_POST['meta-description'];
    $page->meta->keywords = $_POST['meta-keywords'];
    $page->meta->robots = $_POST['meta-robots'];
    $page->save();
    $page->writeContent("../",$_POST['content']);
    $content = $_POST['content'];
  }
?>

Jetzt könnt ihr für eine Seite Meta-Daten erstellen und testen, ob sie auf der Seite richtig eingefügt werden.

RSS-Feed für Kommentare zu diesem Artikel. TrackBack-URL

Keine Kommentare »

Einen Kommentar hinterlassen

Trackbacks/Pingbacks

Code & Blog LogoErstelle dein eigenes CMS mit PHP. Dieses Tutorial wird dir zeigen wie das geht. Also lies dir es durch und frische deine PHP Kenntnisse auf. Viel Spaß dabei! [mehr...]

  • RSS
  • Blogverzeichnis - Blog Verzeichnis bloggerei.de
© SteviesWebsite.de - Kontakt | Impressum