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; } } }