コード例 #1
0
ファイル: app.php プロジェクト: nikolaskarica/bds-alliance
 /**
  * @param string $type
  * @param string $path
  * @return array
  */
 public static function objects($type, $path = null)
 {
     $type = strtolower($type);
     App::import('Core', 'GummFolder');
     switch ($type) {
         case 'controller':
             if (!$path) {
                 $path = GUMM_CONTROLLERS;
             }
             $Folder = new GummFolder($path);
     }
     $objects = array();
     if (isset($Folder)) {
         $list = $Folder->read();
         foreach ($list[1] as $objectFile) {
             $objectName = str_replace('_' . $type, '', $objectFile);
             $objectName = str_replace('.php', '', $objectName);
             $objectName = Inflector::camelize($objectName);
             $objectClass = $type == 'model' ? $objectName : $objectName . ucwords($type);
             // App::import($type, $objectName);
             $objects[$objectName] = $objectClass;
         }
     }
     return $objects;
 }
コード例 #2
0
 private function importElements()
 {
     App::import('Core', 'GummFolder');
     $Folder = new GummFolder(GUMM_LAYOUT_ELEMENTS);
     $elementFiles = $Folder->findRecursive('.*\\.php');
     $Folder->cd(GUMM_LAYOUT_ELEMENTS_SINGLE);
     $elementFiles = array_merge($elementFiles, $Folder->findRecursive('.*\\.php'));
     $availableElements = Set::flatten(Set::classicExtract(array_values(Configure::read('Data.BuilderElements')), '{n}.elements'));
     $elementsAvaialbleMap = array();
     foreach ($elementFiles as $layoutElementFullPath) {
         $basename = basename($layoutElementFullPath, '.php');
         if (in_array($basename, $availableElements)) {
             $elementsAvaialbleMap[$basename] = $layoutElementFullPath;
         }
     }
     foreach ($availableElements as $basename) {
         if (isset($elementsAvaialbleMap[$basename])) {
             require_once $elementsAvaialbleMap[$basename];
             $className = Inflector::camelize($basename) . 'LayoutElement';
             $settings = array();
             if ($this->post) {
                 $settings['postId'] = $this->post->ID;
             }
             $obj = new $className($settings);
             $this->elementsAvailable[Inflector::underscore($basename)] = $obj;
         }
     }
 }
コード例 #3
0
 /**
  * @param string $id
  * @return void
  */
 public function admin_edit($id = null)
 {
     if (!$id) {
         $id = $this->RequestHandler->getNamed('id');
     }
     if (!$id) {
         $id = uniqid();
     }
     $skin = $this->Skin->findById($id);
     if ($this->data) {
         if (!$this->validates()) {
             die(__('Security check failed.', 'gummfw'));
         }
         $this->Skin->save($this->data);
         if ($this->RequestHandler->isAjax()) {
             $skins = $this->Skin->find('list');
             $activeSkinId = null;
             if ($this->Skin->lastModifiedId && isset($skins[$this->Skin->lastModifiedId])) {
                 $activeSkinId = $this->Skin->lastModifiedId;
             }
             $this->set(compact('skins', 'activeSkinId'));
             $this->render('admin_index');
         }
     }
     App::import('Core', 'GummFolder');
     $Folder = new GummFolder(GUMM_ASSETS . 'css' . DS . 'skins');
     if ($cssFilesAvailable = end($Folder->read(false))) {
         $cssFilesAvailable = array_combine($cssFilesAvailable, $cssFilesAvailable);
     }
     array_unshift($cssFilesAvailable, 'none');
     $this->set(compact('id', 'skin', 'cssFilesAvailable'));
 }
コード例 #4
0
 /**
  * Get the real path (taking ".." and such into account)
  *
  * @param string $path Path to resolve
  * @return string The resolved path
  */
 function realpath($path)
 {
     $path = str_replace('/', DS, trim($path));
     if (strpos($path, '..') === false) {
         if (!GummFolder::isAbsolute($path)) {
             $path = GummFolder::addPathElement($this->path, $path);
         }
         return $path;
     }
     $parts = explode(DS, $path);
     $newparts = array();
     $newpath = '';
     if ($path[0] === DS) {
         $newpath = DS;
     }
     while (($part = array_shift($parts)) !== NULL) {
         if ($part === '.' || $part === '') {
             continue;
         }
         if ($part === '..') {
             if (!empty($newparts)) {
                 array_pop($newparts);
                 continue;
             } else {
                 return false;
             }
         }
         $newparts[] = $part;
     }
     $newpath .= implode(DS, $newparts);
     return GummFolder::slashTerm($newpath);
 }
コード例 #5
0
 /**
  * @param string
  * @return array
  */
 private function getPatternFromPath($path, $type = null)
 {
     if (!class_exists('GummFolder')) {
         App::import('Core', 'GummFolder');
     }
     $pi = pathinfo($path);
     $patternName = $pi['filename'];
     // if (is_file($path)) {
     $pattern = array_merge($this->_schema, array('id' => Inflector::slug($patternName, '-'), 'type' => $type, 'name' => $patternName, 'url' => GUMM_THEME_URL . '/images/textures/' . $type . '/' . $patternName, 'schemes' => array()));
     if (is_dir($path)) {
         $Folder = new GummFolder($path);
         $contents = $Folder->read(true, false, true);
         $defaultPatternUrl = $pattern['url'];
         if ($contents[0]) {
             foreach ($contents[0] as $patternSchemeFullPath) {
                 $patternSchemeName = basename($patternSchemeFullPath);
                 $Folder->cd($patternSchemeFullPath);
                 $schemeContents = $Folder->read(true, false, true);
                 $pattern['schemes'][$patternSchemeName] = array('weights' => array());
                 foreach ($schemeContents[1] as $schemeWeightFullPath) {
                     $pi = pathinfo($schemeWeightFullPath);
                     if ($pi['extension'] != 'png') {
                         continue;
                     }
                     $weight = 100;
                     if (preg_match("'.*\\-([0-9]+)'", $pi['basename'], $weight)) {
                         $weight = (int) $weight[1];
                     }
                     $pattern['schemes'][$patternSchemeName]['weights'][$weight] = array('value' => $weight, 'url' => $pattern['url'] . '/' . $patternSchemeName . '/' . $pi['basename']);
                     if ($patternSchemeName == 'dark' && (int) $weight == 100) {
                         $defaultPatternUrl = $pattern['schemes'][$patternSchemeName]['weights'][$weight]['url'];
                     }
                 }
             }
             $pattern['url'] = $defaultPatternUrl;
         } elseif ($contents[1]) {
             $pattern['url'] .= basename($contents[1][0]);
         }
     }
     return $pattern;
 }