function get_feed_data_struct($idcat = 0, $name = '') { require_once PATH_TO_ROOT . '/download/download_auth.php'; require_once PATH_TO_ROOT . '/download/download_cats.class.php'; import('content/syndication/feed_data'); import('util/date'); import('util/url'); global $Cache, $Sql, $LANG, $DOWNLOAD_LANG, $CONFIG, $CONFIG_DOWNLOAD, $DOWNLOAD_CATS; load_module_lang('download'); $Cache->load('download'); $data = new FeedData(); $data->set_title($DOWNLOAD_LANG['xml_download_desc']); $data->set_date(new Date()); $data->set_link(new Url('/syndication.php?m=download&cat=' . $idcat)); $data->set_host(HOST); $data->set_desc($DOWNLOAD_LANG['xml_download_desc']); $data->set_lang($LANG['xml_lang']); $data->set_auth_bit(DOWNLOAD_READ_CAT_AUTH_BIT); $cats = new DownloadCats(); $children_cats = array(); $cats->build_children_id_list($idcat, $children_cats, RECURSIVE_EXPLORATION, ADD_THIS_CATEGORY_IN_LIST); $req = "SELECT id, idcat, title, contents, timestamp, image\n FROM " . PREFIX . "download\n WHERE visible = 1 AND idcat IN (" . implode($children_cats, ',') . " )\n ORDER BY timestamp DESC" . $Sql->limit(0, $CONFIG_DOWNLOAD['nbr_file_max']); $result = $Sql->query_while($req, __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $item = new FeedItem(); $link = new Url('/download/download' . url('.php?id=' . $row['id'], '-' . $row['id'] . '+' . url_encode_rewrite($row['title']) . '.php')); $item->set_title($row['title']); $item->set_link($link); $item->set_guid($link); $item->set_desc(second_parse($row['contents'])); $item->set_date(new Date(DATE_TIMESTAMP, TIMEZONE_SYSTEM, $row['timestamp'])); $item->set_image_url($row['image']); $item->set_auth($cats->compute_heritated_auth($row['idcat'], DOWNLOAD_READ_CAT_AUTH_BIT, AUTH_PARENT_PRIORITY)); $data->add_item($item); } $Sql->query_close($result); return $data; }
} import('util/url'); $file_relative_url = new Url($file_url); $Sql->query_inject("INSERT INTO " . PREFIX . "download (title, idcat, url, size, count, force_download, contents, short_contents, image, timestamp, release_timestamp, start, end, visible, approved, users_note) " . "VALUES ('" . $file_title . "', '" . $file_cat_id . "', '" . $file_relative_url->relative() . "', '" . $file_size . "', '" . $file_hits . "', '" . ($file_download_method == 'force_download' ? DOWNLOAD_FORCE_DL : DOWNLOAD_REDIRECT) . "', '" . strparse($file_contents) . "', '" . strparse($file_short_contents) . "', '" . $file_image . "', '" . $file_creation_date->get_timestamp() . "', '" . ($ignore_release_date ? 0 : $file_release_date->get_timestamp()) . "', '" . $start_timestamp . "', '" . $end_timestamp . "', '" . $visible . "', '" . (int) $auth_write . "', '')", __LINE__, __FILE__); $new_id_file = $Sql->insert_id("SELECT MAX(id) FROM " . PREFIX . "download"); if (!$auth_write) { import('events/contribution'); import('events/contribution_service'); $download_contribution = new Contribution(); $download_contribution->set_id_in_module($new_id_file); $download_contribution->set_description(stripslashes($contribution_counterpart)); $download_contribution->set_entitled(sprintf($DOWNLOAD_LANG['contribution_entitled'], $file_title)); $download_contribution->set_fixing_url('/download/management.php?edit=' . $new_id_file); $download_contribution->set_poster_id($User->get_attribute('user_id')); $download_contribution->set_module('download'); $download_contribution->set_auth(Authorizations::capture_and_shift_bit_auth(Authorizations::merge_auth($CONFIG_DOWNLOAD['global_auth'], $download_categories->compute_heritated_auth($file_cat_id, DOWNLOAD_WRITE_CAT_AUTH_BIT, AUTH_CHILD_PRIORITY), DOWNLOAD_WRITE_CAT_AUTH_BIT, AUTH_CHILD_PRIORITY), DOWNLOAD_WRITE_CAT_AUTH_BIT, CONTRIBUTION_AUTH_BIT)); ContributionService::save_contribution($download_contribution); redirect(HOST . DIR . '/download/contribution.php'); } $download_categories->Recount_sub_files(); import('content/syndication/feed'); Feed::clear_cache('download'); redirect(HOST . DIR . '/download/' . url('download.php?id=' . $new_id_file, 'download-' . $new_id_file . '+' . url_encode_rewrite($file_title) . '.php')); } else { redirect(HOST . DIR . '/download/' . url('download.php')); } } elseif ($preview) { $contribution_counterpart_source = strprotect(retrieve(POST, 'counterpart', '', TSTRING_AS_RECEIVED), HTML_PROTECT, ADDSLASHES_NONE); $begining_calendar = new MiniCalendar('begining_date'); $begining_calendar->set_date($begining_date); $end_calendar = new MiniCalendar('end_date');