Beispiel #1
0
 /**
  * Clear assets cache.
  *
  * @param bool   $refresh        Install and compile new assets?
  * @param string $themeDirectory Theme directory.
  *
  * @return void
  */
 public function clear($refresh = true, $themeDirectory = '')
 {
     $location = $this->_getLocation();
     $files = FsUtilities::fsRecursiveGlob($location, '*');
     // get all file names
     // iterate files
     foreach ($files as $file) {
         if (is_file($file)) {
             @unlink($file);
             // delete file
         }
     }
     if ($refresh) {
         $this->installAssets($themeDirectory);
     }
 }
Beispiel #2
0
 /**
  * Create new package according to data.
  *
  * @param array $data Package data.
  *
  * @return void
  */
 public function createPackage($data)
 {
     $data['defaultModuleUpper'] = ucfirst(Application::SYSTEM_DEFAULT_MODULE);
     $data['nameUpper'] = ucfirst($data['name']);
     $data['moduleNamespace'] = '';
     if ($data['type'] == self::PACKAGE_TYPE_THEME) {
         $packageLocation = $this->getPackageLocation($data['type']) . $data['name'];
     } elseif ($data['type'] == self::PACKAGE_TYPE_WIDGET && !empty($data['module'])) {
         $data['moduleNamespace'] = ucfirst($data['module']);
         $packageLocation = $this->getPackageLocation(self::PACKAGE_TYPE_MODULE) . $data['moduleNamespace'] . '/Widget/' . $data['nameUpper'];
         $data['moduleNamespace'] .= '\\';
     } else {
         $packageLocation = $this->getPackageLocation($data['type']) . $data['nameUpper'];
     }
     Utilities::fsCheckLocation($packageLocation);
     // copy package structure
     Utilities::fsCopyRecursive(__DIR__ . DIRECTORY_SEPARATOR . 'Structure' . DIRECTORY_SEPARATOR . $data['type'], $packageLocation, false, ['.gitignore']);
     if ($data['type'] == self::PACKAGE_TYPE_PLUGIN) {
         @rename($packageLocation . DS . 'plugin.php', $packageLocation . DS . $data['nameUpper'] . '.php');
     }
     // Replace placeholders in package.
     $placeholders = array_keys($data);
     $placeholdersValues = array_values($data);
     foreach ($placeholders as $key => $placeholder) {
         // Check header for comment block.
         if ($placeholder == 'header' && (strpos($placeholdersValues[$key], DS . '*') === false || strpos($placeholdersValues[$key], '*/') === false)) {
             $placeholdersValues[$key] = '';
         }
         $placeholders[$key] = '%' . $placeholder . '%';
     }
     foreach (Utilities::fsRecursiveGlob($packageLocation . DS, '*.*') as $filename) {
         $file = file_get_contents($filename);
         file_put_contents($filename, str_replace($placeholders, $placeholdersValues, $file));
     }
 }