コード例 #1
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;
         }
     }
 }
コード例 #2
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;
 }