function module_icon($module=null) { if (empty($module)) { return ''; } // Find our module location foreach (module_folders() as $folder) { if (is_file($folder . $module .'/icon.png')) { $icon = $folder . $module .'/icon.png'; return base_url() . str_replace(FCPATH, '', $icon); } } return ''; }
/** * Returns an associative array of files within one or more modules. * * @param $module_name string If not NULL, will return only files from that module. * @param $module_folder string If not NULL, will return only files within that folder of each module (ie 'views') * @param $exclude_core boolean Whether we should ignore all core modules. * * @return array An associative array, like: array('module_name' => array('folder' => array('file1', 'file2'))) */ function module_files($module_name = null, $module_folder = null, $exclude_core = false) { if (!function_exists('directory_map')) { $ci =& get_instance(); $ci->load->helper('directory'); } $files = array(); foreach (module_folders() as $path) { // If we're ignoring core modules and we find the core_module folder... skip it. if ($exclude_core === true && strpos($path, 'core_modules') !== false) { continue; } if (!empty($module_name) && is_dir($path . $module_name)) { $path = $path . $module_name; $modules[$module_name] = directory_map($path); } else { $modules = directory_map($path); } // If the element is not an array, we know that it's a file, // so we ignore it, otherwise it is assumbed to be a module. if (!is_array($modules) || !count($modules)) { continue; } foreach ($modules as $mod_name => $values) { if (is_array($values)) { // Add just the specified folder for this module if (!empty($module_folder) && isset($values[$module_folder]) && count($values[$module_folder])) { $files[$mod_name] = array($module_folder => $values[$module_folder]); } else { if (empty($module_folder)) { $files[$mod_name] = $values; } } } } } return count($files) ? $files : false; }