0251 / 590 837 15
info@a-coding-project.de
;

Seitentyp Neue Seite erstellen (CMS)

Heute morgen haben wir das Ordner erstellen übertragen. Jetzt geht es um das Seiten erstellen. Dazu gibt es den Seitentyp /system/classes/pagecreatorpage.php. Diese beinhaltet den Inhalt der alten /admin/includes/site-new.html mit kleinen Änderungen:

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

    public function display(){
      if(!$_POST['alias']){
        $template = new Template();
        $template->load("site_new");
        $template->assign_var("URL",getSetting("global","global","host").$this->page->alias.".html");
        $template->assign_var("ALIAS",$_POST['alias']);
        $template->assign_var("DIR",$_SESSION['dir']);
        $template->assign_var("HOST",getSetting("global","global","host"));
        $template->assign_var("ENDING",".html");
        $types = Page::getPagesTypes();
        if($types){
          foreach($types as $type){
            $index = $template->add_loop_item("TYPES");
            $template->assign_loop_var("TYPES",$index,"CLASS",$type->class);
            $template->assign_loop_var("TYPES",$index,"NAME",$type->name);
          }
        }
        $template->output();
      }
      else{
        if($_SESSION['dir']){
          $dir = $GLOBALS['db']->EscapeString($_SESSION['dir'])."/";
        }
        else{
          $dir = "/";
        }
        $id = Page::create("../",$dir.$GLOBALS['db']->EscapeString($_POST['alias']),$GLOBALS['db']->EscapeString($_POST['type']));
        if($id){
          $template = new Template();
          $template->load("site_new_succeeded");
          $template->assign_var("URL","/admin/home.html?dir=".$_SESSION['dir']);;
          $template->output();
        }
        else{
          $template = new Template();
          $template->load("message");
          $template->assign_var("MESSAGE","Die Seite konnte leider nicht erstellt werden.");
          $template->output();
        }
      }
    }
    function getHeader(){
    }

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

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

Für eine erleichterte Bedienung wird statt der Textbox mit dem Namen Alias jetzt die komplette Url mit Textbox angezeigt. So weiß auch jeder was gemeint ist. Das Template /system/templates/site_new.html sieht nun so aus:

<form action="{VAR:URL}" method="post">
  <table>
    <tr>
      <td>{LANG:TYPE}:</td>
      <td>
        <select name="type">
            {LOOP:TYPES}
            <option value="{VAR:CLASS}">{VAR:NAME}</option>
          {/LOOP:TYPES}
        </select>
      </td>
    </tr>
    <tr>
      <td>Url:</td>
      <td>{VAR:HOST}{VAR:DIR}<input name="alias" />{VAR:ENDING}</td>
    </tr>
    <tr>
      <td></td>
      <td><input type="submit" value="{LANG:CREATE}" /></td>
    </tr>
  </table>
</form>

Alle Änderungen stehen in Revision 30.