Kontakt aufnehmen

Datenbankklasse Teil 8 (CMS)

Heute geht es in unserem Contentlion CMS wieder um die Datenbank. Diesmal ist das Seiten Bearbeiten an der Reihe.

Fangen wir mit der Hauptdatei des Bearbeitens /admin/includes/site-edit.php an:

$page->loadProperties($GLOBALS['db']->EscapeString($_GET['site']));

Und weiter unten die Menüs:

      <?PHP
        foreach(sys::getMenues() as $menue){
          echo "<option value="".$menue->id.""";
          if($_POST['menu'] == $menue->id){
            echo " selected="selected"";
          }
          else if($page->menu == $menue->id && !$_POST['menu']){
            echo " selected="selected"";
          }

          echo ">".$menue->name."</option>";
        }
      ?>

Weiter geht’s mit der Datei /system/sys.php. Dort gibt es die Funktion getMenues:

  function getMenues(){
    return $GLOBALS['db']->ReadRows("SELECT id, name, (
                                       SELECT COUNT( * ) 
                                       FROM {'dbprefix'}menu
                                       WHERE menuID = {'dbprefix'}menu_names.id
                                     )count
                                     FROM `{'dbprefix'}menu_names`");
  }

In der Klasse /system/classes/page.php bearbeiten wir nun die Methode save:

  function save(){
    $res = $GLOBALS['db']->Execute("UPDATE {'dbprefix'}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;
  }

Und zu guter letzt noch die Klasse /system/classes/meta.php:

<?PHP
  class Meta{
    public $pageid      = '';
    public $description = '';
    public $keywords    = '';
    public $robots      = 'index, follow';
    
    public function load(){
      $rows = $GLOBALS['db']->ReadRows("SELECT name, content
                                       FROM {'dbprefix'}meta_local
                                       WHERE page = '".$this->pageid."'");
      if($rows){
        foreach($rows as $row){
          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(){
      $GLOBALS['db']->Execute("DELETE FROM {'dbprefix'}meta_local WHERE page = '".$this->pageid."'");
      if(trim($this->keywords) != ""){
        $GLOBALS['db']->Execute("INSERT INTO {'dbprefix'}meta_local (page,               name      , content)
                                                              VALUES('".$this->pageid."','keywords','".$this->keywords."')");
      }
      if(trim($this->description) != ""){
        $GLOBALS['db']->Execute("insert into {'dbprefix'}meta_local (page,               name      , content)
                                                              VALUES('".$this->pageid."','description','".$this->description."')");
      }
      if(trim(strtolower($this->robots)) != 'index, follow'){
        $GLOBALS['db']->Execute("insert into {'dbprefix'}meta_local (page,               name      , content)
                                                              VALUES('".$this->pageid."','robots','".$this->robots."')");
      }                                        
    }
    
  }
?>

Ich denke, dass wir in der Datenbankklasse nun ca. die Hälfte geschafft haben.

Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.

Kommentare

Daniel schrieb am 19.03.2010:

Wenn ich eine neue Seite erstelle kommt immer die Meldung -Die Seite konnte leider nicht erstellt werden.- . Aber die Seite wird trotzdem erstellt. Das könnte den Nutzer verunsichern. PS.: Werde in der nächsten Woche nicht mittesten können (mitarbeiten im Thema MySQLI ist mir sowieso noch zu hoch). Ich verweile in einem Center-Parcs Park. Eine Woche mal ohne Rechner. MfG Daniel

Stefan Wienströer schrieb am 19.03.2010:

Kannste dort mal nen echo mysql_error() eingeben? Weil wenn dort steht das es nicht erfolgreich ist, ist irgendetwas schiefgegangen. Die Fehlermeldung wurde wahrscheinlich unterdrückt. Viel Spaß in der nächsten Woche, mal sehen, ob die DB-Klasse bis dahin fertig ist ;-)

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

Helfen Sie dabei, uns noch besser zu machen. Wir nutzen Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern