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; } } }
/** * @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; }