Exemple #1
0
 function createFile($filename)
 {
     $filename = trim($filename);
     if (!$this->checkName($filename)) {
         return false;
     }
     //check that the page not exists
     if (getFileObjectAndFind($this->path . SLASH . $this->getUnixName($filename))) {
         return setError(sprintf(_('The page %s ever exists'), $filename));
     }
     if (preg_match('/\\.([a-z]*)$/i', $filename, $tabExt)) {
         if (!($tabExt[1] == 'html' || $tabExt[1] == 'htm' || $tabExt[1] == 'lnk')) {
             return setError(sprintf(_('%s file extension is not allowed'), $tabExt[1]));
         } else {
             if (preg_replace('/\\.[a-z]*$/i', '', $filename) == '') {
                 return setError(_('You must specify a name for the file to create.'));
             }
         }
     }
     $filenameori = $filename;
     if (strlen($filename) == 0) {
         return setError(_('You must specify a name for the file to create.'));
     }
     if (!preg_match('/\\.[a-z]*$/', $filename)) {
         $filename .= '.html';
     }
     $strPageName = preg_replace('/\\.[a-z]*$/', '', $filename);
     $strFileName = $this->getUnixName($filename);
     //On vérifie qu'un fichier du même nom n'existe pas dans le répertoire
     if ($this->findFile($strFileName) !== false) {
         return setError('La page ' . $strPageName . ' existe déjà');
     }
     //on supprime le cache du menu
     if (!deleteMenuCache()) {
         return false;
     }
     if (!parent::createFile($strFileName)) {
         return false;
     }
     if (!($oPage = getFileObject($this->path . SLASH . basename($strFileName)))) {
         return setError('internal error, pdircategory, createFile');
     }
     if (!$oPage->setVirtualName($strPageName)) {
         return false;
     }
     return $oPage;
 }