예제 #1
0
파일: theme.php 프로젝트: pixxid/xengine
 /**
  * Ajoute un nouveau theme
  * @param string $themeName
  *
  * @return bool
  */
 public function add($themeName = null)
 {
     if ($themeName === null) {
         echo helper::theme(false, 'add');
         return false;
     }
     $themeDir = $this->themesDir . $themeName . DIRECTORY_SEPARATOR;
     // On vérifie que le thème n'existe pas déjà
     if (!file_exists($themeDir)) {
         // On crée le dossier du thème
         if (mkdir($themeDir, 0755, true)) {
             // On crée le fichier js par défaut
             if (file_put_contents($themeDir . 'default.js', $this->getDefaultJS($themeName))) {
                 // On crée le fichier css par défaut
                 if (file_put_contents($themeDir . 'default.css', $this->getDefaultCSS($themeName))) {
                     // On crée le répertoire des images
                     if (mkdir($themeDir . 'imgs', 0755, true)) {
                         echo helper::success("Le thème {$themeName} a été initialisé !\r\n");
                         echo helper::success("L'arborescence suivante a été créée :\r\n");
                         echo helper::info("-- public\n    -- assets/\n        -- {$themeName}/\n            -- imgs/\n            default.css\n            default.js\n");
                         return true;
                     }
                     echo helper::warning("Impossible de créer le répertoire {$themeDir}imgs !\r\n");
                     return false;
                 }
                 echo helper::warning("Impossible de créer le fichier default.css !\r\n");
                 return false;
             }
             echo helper::warning("Impossible de créer le fichier default.js !\r\n");
             return false;
         }
         echo helper::warning("Impossible de créer le répertoire {$themeDir} !\r\n");
         return false;
     }
     echo helper::warning("Un thème du nom {$themeName} existe déjà !\r\n");
     return false;
 }
예제 #2
0
파일: helper.php 프로젝트: pixxid/xengine
 /**
  * Aide du theme
  * @param bool $full
  * @param string|null $section
  * @return string
  */
 public static function theme($full = true, $section = null)
 {
     if ($full) {
         $msg = helper::info("[theme]\r\n");
     } else {
         $msg = helper::success("Usage : ");
     }
     if ($section === null) {
         $msg .= helper::success("xengine theme ") . helper::warning("[add] (themeName)") . "\r\n";
     }
     if ($section === null || $section === 'add') {
         $msg .= helper::warning("[add]") . helper::success("  xengine theme add\r\n") . helper::standard("  Crée le dossier pour le thème 'themeName'") . "\r\n";
     }
     return $msg;
 }
예제 #3
0
파일: init.php 프로젝트: pixxid/xengine
 /**
  * Génération du répertoire ressources/
  * @return bool
  */
 public function generateRessources($root)
 {
     // Création du répertoire ressources/
     if (mkdir($root . 'ressources', 0755)) {
         // Création du répertoires ressources/assets
         if (mkdir($root . 'ressources' . DIRECTORY_SEPARATOR . 'assets', 0755)) {
             // Création du répertoire ressources/assets/less/
             if (!mkdir($root . 'ressources' . DIRECTORY_SEPARATOR . 'assets' . DIRECTORY_SEPARATOR . 'less', 0755)) {
                 echo helper::warning("Impossible de créer le répertoire ressources/assets/less/ !\r\n");
                 return false;
             }
             // Création du répertoire ressources/assets/js/
             if (!mkdir($root . 'ressources' . DIRECTORY_SEPARATOR . 'assets' . DIRECTORY_SEPARATOR . 'js', 0755)) {
                 echo helper::warning("Impossible de créer le répertoire ressources/assets/js/ !\r\n");
                 return false;
             }
             // Création du répertoire ressources/assets/sass/
             if (!mkdir($root . 'ressources' . DIRECTORY_SEPARATOR . 'assets' . DIRECTORY_SEPARATOR . 'sass', 0755)) {
                 echo helper::warning("Impossible de créer le répertoire ressources/assets/sass/ !\r\n");
                 return false;
             }
             // Création du répertoire ressources/locale/
             if (mkdir($root . 'ressources' . DIRECTORY_SEPARATOR . 'locale', 0755)) {
                 // Création du répertoire ressources/locale/fr_FR
                 if (mkdir($root . 'ressources' . DIRECTORY_SEPARATOR . 'locale' . DIRECTORY_SEPARATOR . 'fr_FR', 0755)) {
                     // Création du répertoire ressources/models
                     if (mkdir($root . 'ressources' . DIRECTORY_SEPARATOR . 'locale' . DIRECTORY_SEPARATOR . 'fr_FR' . DIRECTORY_SEPARATOR . 'LC_MESSAGES', 0755)) {
                         // Création du répertoire ressources/models
                         if (mkdir($root . 'ressources' . DIRECTORY_SEPARATOR . 'models', 0755)) {
                             return true;
                         }
                         echo helper::warning("Impossible de créer le répertoire ressources/models/ !\r\n");
                         return false;
                     }
                     echo helper::warning("Impossible de créer le répertoire ressources/locale/fr_FR/LC_MESSAGES !\r\n");
                     return false;
                 }
                 echo helper::warning("Impossible de créer le répertoire ressources/locale/fr_FR/ !\r\n");
                 return false;
             }
             echo helper::warning("Impossible de créer le répertoire ressources/locale/ !\r\n");
             return false;
         }
         echo helper::warning("Impossible de créer le répertoire ressources/assets/ !\r\n");
         return false;
     }
     echo helper::warning("Impossible de créer le répertoire ressources/ !\r\n");
     return false;
 }
예제 #4
0
파일: module.php 프로젝트: pixxid/xengine
    /**
     * Mise à jour du fichier route.php
     * @param string $routeFile
     * @param string $controllerName
     * @param bool $add
     * @param string|null $redirect
     * @param bool $json
     *
     * @return bool
     */
    public function updateRouteFile($routeFile, $controllerName, $add = true, $redirect = null, $json = false)
    {
        // On charge le fichier xml
        if (($lines = file($routeFile)) !== false) {
            // Si c'est un ajout
            if ($add) {
                if ($redirect) {
                    $redirectStr = "'{$redirect}'";
                } else {
                    $redirectStr = "null";
                }
                $output = $json ? 'json' : 'html';
                $newLines = <<<EOF
        '{$controllerName}' => [
            'label' => 'Controller {$controllerName}',
            'output' => '{$output}',
            'view' => null,
            'folder' => null,
            'signup' => null,
            'redirect' => {$redirectStr},
            'params' => []
        ],

EOF;
                // On boucle sur les lignes pour trouver 'controllers' => [
                foreach ($lines as $index => $line) {
                    if (strpos($line, "'controllers' => [") !== false) {
                        array_splice($lines, $index + 1, 0, [$newLines]);
                        break;
                    }
                }
                $fileContent = implode($lines);
                // Sinon c'est une suppression
            } else {
                // On boucle sur les lignes pour trouver 'controllerName' => [
                $startLine = 0;
                $endLine = 0;
                foreach ($lines as $index => $line) {
                    if (strpos($line, "'{$controllerName}' => [") !== false) {
                        $startLine = $index;
                    }
                    // Si l'on a trouvé le début, on cherche :
                    // 'properties' => [
                    // ]; (fin du fichier)
                    // 'label' => ' (controller suivant)
                    if ($startLine !== 0 && (strpos($line, "'properties' =>") || strpos($line, "];") !== false || strpos($line, "'label' => '")) !== false && $index - 1 > $startLine) {
                        $endLine = $index - 1;
                        break;
                    }
                }
                $fileContent = implode(array_merge(array_slice($lines, 0, $startLine), array_slice($lines, $endLine)));
            }
            // On supprime le cache
            array_map('unlink', glob($this->root . "config/*.cache.*"));
            // On ré écrit le fichier
            if (file_put_contents($routeFile, $fileContent) !== false) {
                return true;
            }
        }
        echo helper::warning("Impossible de lire le fichier {$routeFile} !\r\n");
        return false;
    }