Gespräch vereinbaren
Werbung
FeatValue
Das Kundenportal für Agenturen und Freelancer
Integriert sich in das bestehende Projektmagement-System
Kostenlos registrieren

Seitentyp „Seite bearbeiten“ (CMS)

Heute wird der nächste und wichtigste Teil ins neue Backend übertragen: Das „Seite Bearbeiten“. Zuvor wurde diese Aufgabe von /admin/includes/site-edit.php erledigt. Die neue Datei heißt /system/classes/pageeditpage.php. Sie beinhaltet den alten Quelltext mit kleinen Änderungen:

<?PHP
  class PageEditPage extends Editor{
    function __construct($page){
      $this->page = $page;
    }

    public function display(){
      $template = new Template();
      $template->load("site_edit");
      $page = new Page();
      $page->loadProperties($GLOBALS['db']->EscapeString($_GET['site']));
      if($_POST['save']){
        $oldpage = $page;
        $page->title = $_POST['title'];
        $page->menu = $_POST['menu'];
        $page->meta->description = $_POST['meta-description'];
        $page->meta->keywords = $_POST['meta-keywords'];
        $page->meta->robots = $_POST['meta-robots'];
        $page->alias = $_POST['alias'];
        $page->save();
        $page->editor->save($page,$oldpage);
        Role::clearAccess($page);
        if($_POST['rights']){
          foreach($_POST['rights'] as $right){
            $role = new Role();
            $role->load($right);
            $role->allowAccess($page);
          }
        }
      }
      else if(isset($_POST['menu'])){
        $page->title = $_POST['title'];
        $page->alias = $_POST['alias'];
        $page->menu = $_POST['menu'];
        $page->editor->content = $_POST['content'];
      }
      $template->assign_var("PATH",getSetting("global","global","host")."admin/pageedit.html?site=".$page->alias);
      $template->assign_var("ALIAS",$page->alias);

      if(!isset($_POST['menu'])){
        foreach(Role::getAllRolls() as $role){
          $index = $template->add_loop_item("RIGHTS");
          $template->assign_loop_var("RIGHTS", $index, "LABEL","/");
          $template->assign_loop_var("RIGHTS", $index, "VALUE",$role->ID);
          $template->assign_loop_var("RIGHTS", $index, "NAME",$role->name);
          if($role->canAccess($page)){
            $template->assign_loop_var("RIGHTS", $index, "SELECTED", "selected="1" ");
          }
          else{
            $template->assign_loop_var("RIGHTS", $index, "SELECTED", "");
          }
        }
      }
      else{
        foreach(Role::getAllRolls() as $role){
          $index = $template->add_loop_item("RIGHTS");
          $template->assign_loop_var("RIGHTS", $index, "LABEL","/");
          $template->assign_loop_var("RIGHTS", $index, "VALUE",$role->ID);
          $template->assign_loop_var("RIGHTS", $index, "NAME",$role->name);
          if(isset($_POST['rights']) && in_array($role->ID,$_POST['rights'])){
            $template->assign_loop_var("RIGHTS", $index, "SELECTED", "selected="1" ");
          }
          else{
            $template->assign_loop_var("RIGHTS", $index, "SELECTED", "");
          }
        }
      }
      $index = $template->add_loop_item("MENU");
      $template->assign_loop_var("MENU", $index, "VALUE","0");
      $template->assign_loop_var("MENU", $index, "NAME","-- Kein Menü --");
      foreach(sys::getMenues($_SESSION['dir']) as $menu){
        $index = $template->add_loop_item("MENU");
        $template->assign_loop_var("MENU", $index, "VALUE",$menu->id);
        $template->assign_loop_var("MENU", $index, "NAME",$menu->name);
        if($_POST['menu'] == $menue->id){
          $template->assign_loop_var("MENU", $index, "SELECTED", "selected="1" ");
        }
        else if($page->menu == $menue->id && !$_POST['menu']){
          $template->assign_loop_var("MENU", $index, "SELECTED", "");
        }
      }
      if($_POST['menu']){
        $template->assign_var("MENUPREVIEW",Menu::getCode($_POST['menu'],"<ul>","</ul>","<li>","</li>",""));
      }
      else if($page->menu > 0){
        $template->assign_var("MENUPREVIEW",Menu::getCode($page->menu,"<ul>","</ul>","<li>","</li>",""));
      }
      else{
        $template->assign_var("MENUPREVIEW","");
      }
      $template->assign_var("METADESCRIPTION",$page->meta->description);
      $template->assign_var("METAKEYWORDS",$page->meta->keywords);
      $template->assign_var("METAROBOTS",$page->meta->robots);
      $template->assign_var("TITLE",$page->title);
      $template->assign_var("EDITOR",$page->editor->getEditableCode());
      $template->output();
    }

   function getHeader(){
    }

    public function getEditableCode(){
      return "<input name="save" type="submit" value="Ändern" onclick="form.action='".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."' ; target='_self' ; return true" />";
    }

    public function save($newPage,$oldPage){
    }
}
?>

Neben dieser Änderung wurde die Klasse sys verschoben und ein Bug mit den Rechten gelöst. Alle Änderungen stehen in Revision 36.

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

Über mich

Stefan Wienströer

Ich entwickle Webanwendungen mit viel Leidenschaft. Mein Wissen gebe ich dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

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

Auswahl speichern