function ppd_process_files(&$files)
{
    if (empty($files) || !is_array($files)) {
        return array();
    }
    foreach ($files as $key => $file) {
        $_real_path = ppd_check_path($file['filename']);
        if (empty($_real_path)) {
            unset($files[$key]);
            continue;
        }
        $files[$key]['size'] = ppd_convertfrom_bytes($file['size']);
        $files[$key]['fileicon'] = ppd_get_url_fileicon($file['fileicon']);
    }
    return $files;
}
function ppd_filetype_show()
{
    global $available_fields, $smarty, $tables, $config, $target;
    global $app_catalogs;
    global $page;
    if (!isset($page)) {
        $page = isset($_GET['page']) ? (int) $_GET['page'] : 1;
    }
    $page = (int) $page;
    if ($_SERVER['REQUEST_METHOD'] != 'GET') {
        ppd_filetype_redirect();
    }
    $_new_types =& cw_session_register('_new_types');
    if (!empty($_new_types)) {
        $smarty->assign('_new_types', $_new_types);
        cw_session_unregister('_new_types');
    }
    $limit_types = null;
    $number_types = cw_query_first_cell('SELECT COUNT(type_id) FROM ' . $tables['ppd_types']);
    $navigation = cw_core_get_navigation($target, $number_types, $page);
    $navigation['script'] = "{$app_catalogs['admin']}/index.php?target={$target}";
    $smarty->assign('navigation', $navigation);
    if (isset($navigation['first_page']) && isset($navigation['objects_per_page'])) {
        $limit_types = " LIMIT {$navigation['first_page']}, {$navigation['objects_per_page']}";
    }
    $types = array();
    if (!empty($number_types)) {
        $types = cw_query('SELECT `' . implode('`, `', array_keys($available_fields)) . '` FROM ' . $tables['ppd_types'] . $limit_types);
    }
    if (empty($types) || !is_array($types)) {
        return;
    }
    foreach ($types as $key => $file) {
        $types[$key]['fileicon_exists'] = true;
        $types[$key]['fileicon_url'] = ppd_get_url_fileicon($types[$key]['fileicon']);
        if (empty($types[$key]['fileicon_url'])) {
            $types[$key]['fileicon_exists'] = false;
        }
    }
    $smarty->assign('ppd_types', $types);
}
function ppd_details($product_id)
{
    global $tables, $top_message, $smarty, $available_fields;
    $product_id = (int) $product_id;
    global $file_id;
    if (!isset($file_id)) {
        $file_id = isset($_GET['file_id']) ? (int) $_GET['file_id'] : 0;
    }
    $file_id = (int) $file_id;
    if (empty($file_id) || $_SERVER['REQUEST_METHOD'] != 'GET') {
        ppd_redirect($product_id);
    }
    $table = $tab_type_tables[$tab_type];
    unset($available_fields['type_id']);
    $file_data = cw_query_first('SELECT `' . implode('`, `', array_keys($available_fields)) . '`, `type`, `fileicon` FROM ' . $tables['ppd_files'] . ' AS files LEFT JOIN ' . $tables['ppd_types'] . ' AS types ON files.type_id = types.type_id WHERE product_id = \'' . $product_id . '\' AND file_id = \'' . $file_id . '\'');
    if (empty($file_data) || !is_array($file_data)) {
        ppd_redirect($product_id);
    }
    $file_data['fileicon'] = ppd_get_url_fileicon($file_data['fileicon']);
    $file_data['filename'] = ppd_get_pathto_file($file_data['filename']);
    $file_data['fileicon'] = empty($file_data['filename']) ? null : $file_data['fileicon'];
    if (!empty($file_data['size'])) {
        $file_data['size'] = ppd_convertfrom_bytes($file_data['size']);
        $additional_lang_data = array('size' => $file_data['size']);
        $file_data['size'] = cw_get_langvar_by_name('lbl_ppd_detailed_filesize', $additional_lang_data);
    }
    $file_data['perms_owner'] = ppd_permissions($file_data['perms_owner']);
    $file_data['perms_all'] = ppd_permissions($file_data['perms_all']);
    $smarty->assign('file_data', $file_data);
    $smarty->assign('types', ppd_get_filetypes());
}
function ppd_get_filetypes()
{
    global $tables;
    static $types;
    $required_fields = array('type_id', 'type', 'fileicon');
    if (!isset($types)) {
        $types = cw_query('SELECT `' . implode('`, `', $required_fields) . '` FROM ' . $tables['ppd_types']);
        foreach ($types as $key => $type) {
            $types[$key]['fileicon'] = ppd_get_url_fileicon($type['fileicon']);
        }
    }
    return $types;
}