/** * Returns an array of all available field handles discovered in the * `TOOLKIT . /fields` or `EXTENSIONS . /{}/fields`. * * @return array * A single dimensional array of field handles. */ public function fetchTypes() { $structure = General::listStructure(TOOLKIT . '/fields', '/field.[a-z0-9_-]+.php/i', false, 'asc', TOOLKIT . '/fields'); $extensions = Symphony::ExtensionManager()->listInstalledHandles(); if (is_array($extensions) && !empty($extensions)) { foreach ($extensions as $handle) { if (is_dir(EXTENSIONS . '/' . $handle . '/fields')) { $tmp = General::listStructure(EXTENSIONS . '/' . $handle . '/fields', '/field.[a-z0-9_-]+.php/i', false, 'asc', EXTENSIONS . '/' . $handle . '/fields'); if (is_array($tmp['filelist']) && !empty($tmp['filelist'])) { $structure['filelist'] = array_merge($structure['filelist'], $tmp['filelist']); } } } $structure['filelist'] = General::array_remove_duplicates($structure['filelist']); } $types = array(); foreach ($structure['filelist'] as $filename) { $types[] = FieldManager::__getHandleFromFilename($filename); } return $types; }