Kontakt aufnehmen

Neuen Ordner erstellen (CMS)

Zwischen den Änderungen am Standard Skin, werde ich auch einige Seiten vom alten Backend ins neue übertragen. Derzeit können wir keine Ordner mehr erstellen. Nach diesem Beitrag geht es wieder 😉

Wir brauchen zunächst einen neuen Seitentyp. Dieser heißt /system/classes/newfolderpage.php. Die Benutzung ist eigentlich relativ simpel:

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

    public function display(){
      $contentpath = getSetting("global","global","root")."content/articles/".$_SESSION['dir']."/";
      if(isset($_POST['name'])){
        FileServer::createFolder($contentpath,$_POST['name']);
        ?>
        <script language="JavaScript"><!--
          window.location.href="home.html?dir=<?PHP echo $_SESSION['dir']."/".$_POST['name']; ?>";
        // --></script> 
        <?PHP
      }
      $template = new Template();
      $template->load("new_folder");
      $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){
    }
}
?>

Es wird das neue Template /system/templates/new_folder.html verwendet:

<form method="POST">
  Name: <input name="name" /><br />
  <input type="submit" value="Erstellen">
</form>

Damit wir auch wissen wo unser Ordner erstellt werden soll, wird im Dashboard eine Session-Variable des ausgewählten Ordners angelegt:

...
              if($_GET['dir']){
                $_SESSION['dir'] = $_GET['dir'];
                $first = true;
                $fulldir = "";
                foreach(explode('/',$_GET['dir']) as $dir){
                  if(!$first){
                    echo $separator." ";
                    $fulldir .= "/".$dir;
                  }
                  else{
                    $first = false;
                    $fulldir .= $dir;
                  }
                  echo "<a style='display:inline' href='".$host.$this->page->alias.".html?dir=".$fulldir."'>".$dir."</a>";
                }
              }
              else{
                $_SESSION['dir'] = "";
              }
...

Diese Seite muss natürlich auch in der Pages-, Menu-, und Role-Rights Tabelle angelegt werden.

Alle Änderungen stehen in Revision 29 bei Google. In den letzten Tagen gab es keine Update-Packages. Ich habe mir überlegt, diese jetzt jeden Samstag zu erstellen, so dass nicht so viele Updates installiert werden müssen. Ich denke heut Nachmittag wird es soweit sein.

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

Ü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