function getExtraFieldsFromINI($path, $iniFileName, $recurse = false, $fullPath = false, $i18n = false) { $fields = array(); $iniFileName = basename($iniFileName); if (empty($iniFileName)) return $fields; $filePath = JPATH_ROOT . DS . $path . DS . $iniFileName; if ($i18n) $filePath = AriAppUtils::getLocalizedFileName($filePath); if (!@file_exists($filePath) || !is_file($filePath) || !is_readable($filePath)) return $fields; $iniFields = parse_ini_file($filePath, true); if (empty($iniFields)) return $fields; foreach ($iniFields as $secName => $secItems) { $prop = strtolower($secName); foreach ($secItems as $itemKey => $itemValue) { $key = $itemKey; if ($fullPath) $key = $path . DS . $key; if (!isset($fields[$key])) $fields[$key] = array(); $fields[$key][$prop] = $itemValue; } } if ($recurse) { $subFolders = JFolder::folders($path); foreach ($subFolders as $subFolder) { $subFolderFields = AriAppUtils::getExtraFieldsFromINI($path . DS . $subFolder, $iniFileName, $recurse, $fullPath); if (count($subFolderFields) > 0) $fields = array_merge($fields, $subFolderFields); } } return $fields; }
function getDescriptions($fileName, $path) { $data = array(); $filePath = AriAppUtils::getLocalizedFileName($path . DS . $fileName); if (empty($fileName) || @!file_exists($filePath) || !@is_readable($filePath)) return $data; $csvParser = new AriCSVParser(); $csvParser->auto($filePath); $csvData = $csvParser->data; if (!empty($csvData)) { foreach ($csvData as $csvDataItem) { if (isset($csvDataItem['File'])) $data[$csvDataItem['File']] = $csvDataItem; } } return $data; }