Файловый менеджер - Редактировать - /var/www/html/components/com_jdownloads/tmpl/summary/default.php
Ðазад
<?php /** * @package jDownloads * @version 4.0 * @copyright (C) 2007 - 2023 - Arno Betz - www.jdownloads.com * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.txt * * jDownloads is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ defined('_JEXEC') or die('Restricted access'); setlocale(LC_ALL, 'C.UTF-8', 'C'); use Joomla\String\StringHelper; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Factory; use Joomla\CMS\Router\Route; use Joomla\CMS\Language\Text; use Joomla\CMS\Uri\Uri; use Joomla\CMS\Pagination\Pagination; use Joomla\CMS\Plugin\PluginHelper; use Joomla\Registry\Registry; use Joomla\CMS\Version; use Joomla\Database\DatabaseInterface; use JDownloads\Component\JDownloads\Site\Helper\JDHelper; use JDownloads\Component\JDownloads\Site\Helper\RouteHelper; // For Tooltip HTMLHelper::_('bootstrap.tooltip'); HTMLHelper::_('behavior.keepalive'); HTMLHelper::_('behavior.formvalidator'); $db = Factory::getContainer()->get(DatabaseInterface::class); $document = Factory::getApplication()->getDocument(); $jinput = Factory::getApplication()->getInput(); $app = Factory::getApplication(); $user = Factory::getApplication()->getIdentity(); $user->authorise('core.admin') ? $is_admin = true : $is_admin = false; // Get jD user limits and settings $jd_user_settings = $this->user_rules; // Create shortcuts to some parameters. $params = $this->params; $files = $this->items; $user_rules = $this->user_rules; $is_mirror = $this->state->get('download.mirror.id'); $fileid = $this->state->get('download.id'); $catid = $this->state->get('download.catid'); $sum_selected_files = $this->state->get('sum_selected_files'); $sum_selected_volume = $this->state->get('sum_selected_volume'); $sum_files_prices = $this->state->get('sum_files_prices'); $must_confirm_license = $this->state->get('must_confirm_license'); $directlink = $this->state->get('directlink_used'); $marked_files_id = $this->state->get('download.marked_files.id'); $html = ''; $footer_text = ''; $layout = ''; $license_text = ''; $license_url = ''; $countdown = ''; $zip_file_info = ''; $dummy = ''; $sum_aup_points = $sum_files_prices; $aup_valid = true; $user_random_id = 0; $has_licenses = false; $must_confirm = false; $extern_site = false; $open_in_blank_page = false; $directlink = false; $total_consumed = false; $may_download = false; $zip_files_array = array(); $password_used = false; $password_valid = false; $password_invalid_msg = ''; $captcha_valid = false; $captcha_invalid_msg = ''; $licenses_exist = false; // Get the needed layout $layout = $this->layout; if ($layout){ // Unused language placeholders must at first get removed from layout $layout_text = JDHelper::removeUnusedLanguageSubstring($layout->template_text); $header = JDHelper::removeUnusedLanguageSubstring($layout->template_header_text); $subheader = JDHelper::removeUnusedLanguageSubstring($layout->template_subheader_text); $footer = JDHelper::removeUnusedLanguageSubstring($layout->template_footer_text); } else { // We have not a valid layout data echo '<big>No valid layout found!</big>'; } // Check at first whether we have a single download and it is used the files password option // If so, then can we not use Captcha if ($this->state->get('download.id') && $this->items[0]->password_md5 != ''){ $password_used = true; JDHelper::writeSessionEncoded('1', 'jd_password_run'); $password_input = $jinput->getString('password_input', ''); if ($password_input != ''){ if (hash('sha256', $password_input) == $this->items[0]->password_md5){ $password_valid = true; JDHelper::writeSessionEncoded('2', 'jd_password_run'); } else { $password_invalid_msg = Text::_('COM_JDOWNLOADS_PASSWORD_INVALID'); } } // We need this switch to handle the data output $captcha_valid = true; JDHelper::writeSessionEncoded('0', 'jd_captcha_run'); } else { // Captcha check if ($this->user_rules->view_captcha){ // Support only for reCaptcha v3 and hCaptcha! // Get the activated captcha plugin name from global config $active_captcha = $app->getCfg('captcha'); // Get captcha plugin // Caution: If several captcha plugins are installed and activated, a captcha may not be generated. PluginHelper::importPlugin('captcha'); $plugin = PluginHelper::getPlugin('captcha', $active_captcha); if ($plugin){ // Get plugin params $pluginParams = new Registry($plugin->params); if ($active_captcha == 'hcaptcha'){ // The alternate hCaptcha plugin is activated $public_key = $pluginParams->get('publicKey', ''); $dummy = $jinput->getString('h-captcha-response'); } else { // The default reCaptcha plugin is activated $public_key = $pluginParams->get('public_key', ''); $dummy = $jinput->getString('g-recaptcha-response'); } // We now check whether the user has already used the captcha or had it displayed. if ($dummy){ $captcha_res = $app->triggerEvent('onInit', array('dynamic_recaptcha_invisible_1')); if (!$captcha_res[0]){ // First time or not successful so we will need will initiate it. JDHelper::writeSessionEncoded('1', 'jd_captcha_run'); // Init again for next try. $app->triggerEvent('onInit', array('dynamic_recaptcha_invisible_1')); $captcha_invalid_msg = Text::_('COM_JDOWNLOADS_FIELD_CAPTCHA_INCORRECT_HINT'); } else { // Successful, so we save this. JDHelper::writeSessionEncoded('2', 'jd_captcha_run'); $captcha_valid = true; } } else { // Init for first try JDHelper::writeSessionEncoded('1', 'jd_captcha_run'); $exist_event = $app->triggerEvent('onInit', array('dynamic_recaptcha_invisible_1')); // When plugin event not exist, we must do the work without it. But give NOT a public info about this problem. if (!$exist_event){ $captcha_valid = true; JDHelper::writeSessionEncoded('2', 'jd_captcha_run'); } } } else { // ReCaptcha plugin not activated - so we can not use it. $captcha_valid = true; } } else { // We need this switch to handle the data output $captcha_valid = true; } // Not used - so must set it to true $password_valid = true; } // Required for captcha $form_uri = Uri::getInstance()->toString(); $form_uri = $this->escape($form_uri); // Get CSS button settings $menu_color = $params->get('css_menu_button_color'); $menu_size = $params->get('css_menu_button_size'); $status_color_hot = $params->get('css_button_color_hot'); $status_color_new = $params->get('css_button_color_new'); $status_color_updated = $params->get('css_button_color_updated'); $download_color = $params->get('css_button_color_download'); $download_size = $params->get('css_button_size_download'); $download_size_mirror = $params->get('css_button_size_download_mirror'); $download_color_mirror1 = $params->get('css_button_color_mirror1'); $download_color_mirror2 = $params->get('css_button_color_mirror2'); $download_size_listings = $params->get('css_button_size_download_small'); if ($params->get('css_buttons_with_font_symbols')){ $span_home_symbol = '<span class="icon-home-2 jd-menu-icon"> </span>'; $span_search_symbol = '<span class="icon-search jd-menu-icon"> </span>'; $span_upper_symbol = '<span class="icon-arrow-up-2 jd-menu-icon"> </span>'; $span_upload_symbol = '<span class="icon-new jd-menu-icon"> </span>'; } else { $span_home_symbol = ''; $span_search_symbol = ''; $span_upper_symbol = ''; $span_upload_symbol = ''; } // Build random value for zip filename if (count($files) > 1) { $user_random_id = JDHelper::buildRandomNumber(); } // We need the filed id when not used checkboxes if (!$marked_files_id){ $marked_files_id = array($fileid); } $marked_files_id_string = implode(',', $marked_files_id); // We must compute up to this point, what this user has downloaded before and compare it then later with the defined user limitations // Important: Please note, that we can check it only for registered users. By visitors it is not really useful, then we have here only a changeable IP. $total_consumed = JDHelper::getUserLimits($user_rules, $marked_files_id); // When $total_consumed['limits_info'] has a value, we must check whether this user may download the selected files // If so, then the result is: TRUE - otherwise: the limitations message // Has $total_consumed['limits_info'] not any value, it exists not any limitations for this user if ($total_consumed['limits_info']){ $may_download = JDHelper::checkUserDownloadLimits($user_rules, $total_consumed, $sum_selected_files, $sum_selected_volume, $marked_files_id); } else { $may_download = true; } // Check whether user has enough points from alphauserpoints (when used and installed) if ($may_download === true && $params->get('use_alphauserpoints')){ $aup_result = JDHelper::checkUserPoints($sum_aup_points, $marked_files_id); if ($aup_result['may_download'] === true){ $may_download = true; } else { $may_download = $aup_result['points_info']; } } // Write data in session if ($may_download === true){ if ($user_random_id){ JDHelper::writeSessionEncoded($user_random_id, 'jd_random_id'); JDHelper::writeSessionEncoded($marked_files_id_string, 'jd_list'); JDHelper::writeSessionClear('jd_fileid'); } else { // Single file download if ($fileid){ JDHelper::writeSessionEncoded($fileid, 'jd_fileid'); } else { JDHelper::writeSessionEncoded($marked_files_id[0], 'jd_fileid'); } JDHelper::writeSessionClear('jd_random_id'); JDHelper::writeSessionClear('jd_list'); } JDHelper::writeSessionEncoded($catid, 'jd_catid'); } // Get current category menu ID when exist and all needed menu IDs for the header links $menuItemids = JDHelper::getMenuItemids($catid); // Get all other menu category IDs so we can use it when we need it $cat_link_itemids = JDHelper::getAllJDCategoryMenuIDs(); // "Home" menu link itemid $root_itemid = $menuItemids['root']; $Itemid = JDHelper::getSingleCategoryMenuID($cat_link_itemids, $catid, $root_itemid); $html = '<div class="jd-item-page'.$this->pageclass_sfx.'">'; if ($this->params->get('show_page_heading')) { $html .= '<h1>'.$this->escape($this->params->get('page_heading')).'</h1>'; } // ========================================== // HEADER SECTION // ========================================== if ($header != ''){ // Component title $header = str_replace('{component_title}', $document->getTitle('title'), $header); // Replace both Google adsense placeholder with script $header = JDHelper::insertGoogleAdsenseCode($header); // Components description if ($params->get('downloads_titletext') != '') { $header_text = stripslashes(JDHelper::getOnlyLanguageSubstring($params->get('downloads_titletext'))); // Replace both Google adsense placeholder with script $header_text = JDHelper::insertGoogleAdsenseCode($header_text); $header .= $header_text; } // Check $Itemid exist if (!isset($menuItemids['search'])) $menuItemids['search'] = $menuItemids['root']; if (!isset($menuItemids['upload'])) $menuItemids['upload'] = $menuItemids['root']; // Build home link $home_link = '<a href="'.Route::_('index.php?option=com_jdownloads&Itemid='.$menuItemids['root']).'" title="'.Text::_('COM_JDOWNLOADS_HOME_LINKTEXT_HINT').'">'.'<span class="jdbutton '.$menu_color.' '.$menu_size.'">'.$span_home_symbol.Text::_('COM_JDOWNLOADS_HOME_LINKTEXT').'</span>'.'</a>'; // Build search link $search_link = '<a href="'.Route::_('index.php?option=com_jdownloads&view=search&Itemid='.$menuItemids['search']).'" title="'.Text::_('COM_JDOWNLOADS_SEARCH_LINKTEXT_HINT').'">'.'<span class="jdbutton '.$menu_color.' '.$menu_size.'">'.$span_search_symbol.Text::_('COM_JDOWNLOADS_SEARCH_LINKTEXT').'</span>'.'</a>'; // Build frontend upload link $upload_link = '<a href="'.Route::_('index.php?option=com_jdownloads&view=form&layout=edit&Itemid='.$menuItemids['upload']).'" title="'.Text::_('COM_JDOWNLOADS_UPLOAD_LINKTEXT_HINT').'">'.'<span class="jdbutton '.$menu_color.' '.$menu_size.'">'.$span_upload_symbol.Text::_('COM_JDOWNLOADS_UPLOAD_LINKTEXT').'</span>'.'</a>'; $header = str_replace('{home_link}', $home_link, $header); $header = str_replace('{search_link}', $search_link, $header); if ($jd_user_settings->uploads_view_upload_icon){ if ($this->view_upload_button){ $header = str_replace('{upload_link}', $upload_link, $header); } else { $header = str_replace('{upload_link}', '', $header); } } else { $header = str_replace('{upload_link}', '', $header); } if ($menuItemids['upper'] > 1){ // 1 is 'root' // Exists a single category menu link for the category a level up? $level_up_cat_itemid = JDHelper::getSingleCategoryMenuID($cat_link_itemids, $menuItemids['upper'], $root_itemid); $upper_link = Route::_('index.php?option=com_jdownloads&view=category&catid='.$menuItemids['upper'].'&Itemid='.$level_up_cat_itemid); } else { $upper_link = Route::_('index.php?option=com_jdownloads&view=categories&Itemid='.$menuItemids['root']); } $header = str_replace('{upper_link}', '<a href="'.$upper_link.'" title="'.Text::_('COM_JDOWNLOADS_UPPER_LINKTEXT_HINT').'">'.'<span class="jdbutton '.$menu_color.' '.$menu_size.'">'.$span_upper_symbol.Text::_('COM_JDOWNLOADS_UPPER_LINKTEXT').'</span>'.'</a>', $header); // Create category listbox and viewed it when it is activated in configuration if ($params->get('show_header_catlist')){ // Get current selected cat id from listbox $catlistid = $jinput->get('catid', '0', 'integer'); $orderby_pri = ''; $data = JDHelper::buildCategorySelectBox($catlistid, $cat_link_itemids, $root_itemid, $params->get('view_empty_categories', 1), $orderby_pri ); // Build special selectable URLs for category listbox $root_url = Route::_('index.php?option=com_jdownloads&Itemid='.$root_itemid); $allfiles_url = str_replace('Itemid[0]', 'Itemid', Route::_('index.php?option=com_jdownloads&view=downloads&Itemid='.$root_itemid)); $topfiles_url = str_replace('Itemid[0]', 'Itemid', Route::_('index.php?option=com_jdownloads&view=downloads&type=top&Itemid='.$root_itemid)); $newfiles_url = str_replace('Itemid[0]', 'Itemid', Route::_('index.php?option=com_jdownloads&view=downloads&type=new&Itemid='.$root_itemid)); $listbox = HTMLHelper::_('select.genericlist', $data['options'], 'cat_list', 'class="form-select" title="'.Text::_('COM_JDOWNLOADS_SELECT_A_VIEW').'" onchange="gocat(\''.$root_url.'\', \''.$allfiles_url.'\', \''.$topfiles_url.'\', \''.$newfiles_url.'\' ,\''.$data['url'].'\')"', 'value', 'text', $data['selected'] ); $header = str_replace('{category_listbox}', '<form name="go_cat" id="go_cat" method="post">'.$listbox.'</form>', $header); } else { $header = str_replace('{category_listbox}', '', $header); } $html .= $header; } // ========================================== // SUB HEADER SECTION // ========================================== if ($subheader != ''){ $subheader = str_replace('{summary_title}', Text::_('COM_JDOWNLOADS_FRONTEND_HEADER_SUMMARY_TITLE'), $subheader); // Remove this placeholder when it is used not for files layout $subheader = str_replace('{summary_title}', '', $subheader); // Replace both Google adsense placeholder with script $subheader = JDHelper::insertGoogleAdsenseCode($subheader); $html .= $subheader; } // ========================================== // BODY SECTION - VIEW THE DOWNLOADS DATA // ========================================== $html_files = ''; $id_text = ''; if ($layout_text != ''){ $event = $this->event->beforeDisplayContent; $html_sum = $event.$layout_text; // summary pic $sumpic = '<img src="'.URI::base().'components/com_jdownloads/assets/images/summary.png" width="'.$params->get('cat_pic_size').'" height="'.$params->get('cat_pic_size_height').'" style="border:0px;" alt="summary" /> '; $html_sum = str_replace('{summary_pic}', $sumpic, $html_sum); // info text $html_sum = str_replace('{title_text}', Text::_('COM_JDOWNLOADS_FE_SUMMARY_PAGE_TITLE_TEXT'), $html_sum); // ============================================================================== // User may not download this files - limits reached. So we view only the message // ============================================================================== if ($may_download !== true){ $html_sum = str_replace('{download_link}', $may_download, $html_sum); // replace both Google adsense placeholder with script $html_sum = JDHelper::insertGoogleAdsenseCode($html_sum); // remove all other (not used) place holders $html_sum = str_replace('{info_zip_file_size}', '', $html_sum); $html_sum = str_replace('{license_text}', '', $html_sum); $html_sum = str_replace('{license_title}', '', $html_sum); $html_sum = str_replace('{license_checkbox}', '', $html_sum); $html_sum = str_replace('{download_liste}', '', $html_sum); $html_sum = str_replace('{external_download_info}', '', $html_sum); $html_sum = str_replace('{aup_points_info}', '', $html_sum); $html_sum = str_replace('{captcha}', '', $html_sum); $html_sum = str_replace('{password}', '', $html_sum); } else { // ============================ // user may download this files // ============================ $files_list = '<div class="jd_summary_list">'; // when exists - no checkbox was used if ($fileid){ $directlink = true; $id_text = $fileid; $filename = Route::_('index.php?option=com_jdownloads&task=download.send&id='.$fileid.'&catid='.$catid.'&m='.$is_mirror.'&Itemid='.$Itemid); if ($files[0]->license && $files[0]->license_agree) $must_confirm = true; $download_link = $filename; $file_title = ' - '.$files[0]->title; } // move in text for view the files list $number = 0; if (!$id_text){ $number = count($marked_files_id); if ( $number > 1 ){ $id_text = implode(',', $marked_files_id); } else { $id_text = $marked_files_id[0]; } } // Add password protection when used but then is not possible to use the captcha if ($password_used){ if ($password_valid === false){ $password = '<div class="container pt-5" style="padding:5px; text-align:center;">'; $password .= '<div id="jd_container" class="alert alert-secondary">'; if ($password_invalid_msg == ''){ $password .= Text::_('COM_JDOWNLOADS_PASSWORD_DESC'); } else { $password .= $password_invalid_msg; } $password .= '<form action="'.$form_uri.'" method="post" id="summary" class="form-validate" enctype="multipart/form-data" accept-charset="utf-8">'; $password .= '<br /><input type="text" name="password_input" size="20" value="">'; $password .= '<input type="hidden" name="f_file_id" value="'.$fileid.'">'; $password .= '<input type="hidden" name="f_cat_id" value="'.$catid.'">'; $password .= '<input type="hidden" name="f_marked_files_id" value="'.implode(',',$marked_files_id).'">'; $password .= '<input type="submit" name="submit" id="jd_password" class="button" value="'.Text::_('COM_JDOWNLOADS_FORM_BUTTON_TEXT').'" />'; $password .= HTMLHelper::_('form.token').'</form></div></div>'; $html_sum = str_replace('{password}', $password, $html_sum); } else { $html_sum = str_replace('{password}', '', $html_sum); } $html_sum = str_replace('{captcha}', '', $html_sum); } else { // We will support now only reCaptcha invisible v3 and hCaptcha. if ($this->user_rules->view_captcha){ $captcha = ""; if (!$captcha_valid){ $captchadiv = '<div class="jd_recaptcha">'; $captcha = '<form action="'.$form_uri.'" method="post" id="summary" class="form-validate" enctype="multipart/form-data" accept-charset="utf-8">'; $captcha .= $this->form->renderField('captcha'); $captcha .= $captchadiv; if ($active_captcha == 'hcaptcha'){ // $captcha .= '<div id="h-captcha" class="h-captcha required" data-sitekey="'.$public_key.'" data-badge="bottomright" data-tabindex="0"></div>'; } else { $captcha .= '<div id="dynamic_recaptcha_invisible_1" class="required g-recaptcha" data-sitekey="'.$public_key.'" data-badge="bottomright" data-size="invisible" data-tabindex="0" data-callback="" data-expired-callback="" data-error-callback=""></div>'; } if ($captcha_invalid_msg != ''){ $captcha .= $captcha_invalid_msg; } $captcha .= '<input type="hidden" name="f_file_id" value="'.$fileid.'">'; $captcha .= '<input type="hidden" name="f_cat_id" value="'.$catid.'">'; $captcha .= '<input type="hidden" name="f_marked_files_id" value="'.implode(',',$marked_files_id).'">'; $captcha .= '<button class="btn btn-primary validate" type="submit" name="submit" id="jd_captcha">'.Text::_('COM_JDOWNLOADS_FORM_BUTTON_TEXT').'</button>'; $captcha .= HTMLHelper::_('form.token').'</form></div>'; $html_sum = str_replace('{captcha}', $captcha, $html_sum); } else { $html_sum = str_replace('{captcha}', '', $html_sum); } } $html_sum = str_replace('{password}', '', $html_sum); $html_sum = str_replace('{captcha}', '', $html_sum); } $files_list .= ' <div class="divTable jd_div_table"> <div class="divTableHeading"> <div class="divTableRow"> <div class="divTableHead">'.Text::_('COM_JDOWNLOADS_TITLE').'</div> <div class="divTableHead">'.Text::_('COM_JDOWNLOADS_FE_DETAILS_FILE_NAME_TITLE').'</div> <div class="divTableHead">'.Text::_('COM_JDOWNLOADS_FE_DETAILS_LICENSE_TITLE').'</div> <div class="divTableHead">'.Text::_('COM_JDOWNLOADS_FE_DETAILS_FILESIZE_TITLE').'</div> </div> </div> <div class="divTableBody">'; // build the information list about the selected files for ($i=0; $i<count($files); $i++){ if (!$files[$i]->url_download && $files[$i]->other_file_id > 0 && $files[$i]->other_file_name != ''){ // Special situation when a file from other Download was assigned $filename_text = JDHelper::getShorterFilename($files[$i]->other_file_name); $filesize = $files[$i]->other_file_size; } else { $filename_text = JDHelper::getShorterFilename($files[$i]->url_download); $filesize = $files[$i]->size; } // Get license name if ($files[$i]->license > 0){ $has_licenses = true; if ($files[$i]->license_agree){ $must_confirm = true; $license_text = stripslashes($files[$i]->license_text); $license_url = $files[$i]->license_url; } if ($files[$i]->license_url){ // With link to license $files_list .= '<div class="divTableRow"> <div class="divTableCell">'.$this->escape($files[$i]->title.' '.$files[$i]->release).'</div> <div class="divTableCell">'.$filename_text.'</div> <div class="divTableCell"><a href="'.$files[$i]->license_url.'" target="_blank">'.$this->escape($files[$i]->license_title).'</a></div> <div class="divTableCell">'.$this->escape($filesize).'</div> </div>'; } else { // Only with license title $files_list .= '<div class="divTableRow"> <div class="divTableCell">'.$this->escape($files[$i]->title.' '.$files[$i]->release).'</div> <div class="divTableCell">'.$filename_text.'</div> <div class="divTableCell">'.$this->escape($files[$i]->license_title).'</div> <div class="divTableCell">'.$this->escape($filesize).'</div> </div>'; } } else { // No license $files_list .= '<div class="divTableRow"> <div class="divTableCell">'.$this->escape($files[$i]->title.' '.$files[$i]->release).'</div> <div class="divTableCell">'.$filename_text.'</div> <div class="divTableCell">'.Text::_('COM_JDOWNLOADS_NONE').'</div> <div class="divTableCell">'.$this->escape($filesize).'</div> </div>'; } } $files_list .= '</div></div></div>'; $html_sum = str_replace('{download_liste}', $files_list, $html_sum); // set flag when link must opened in a new browser window if (!$is_mirror && $i == 1 && $files[0]->extern_site){ $extern_site = true; } if ($is_mirror == 1 && $i == 1 && $files[0]->extern_site_mirror_1){ $extern_site = true; } if ($is_mirror == 2 && $i == 1 && $files[0]->extern_site_mirror_2){ $extern_site = true; } // get file extension when only one file selected - set flag when link must opened in a new browser window if (count($files) == 1 && $files[0]->url_download) { $view_types = array(); $view_types = explode(',', $params->get('file_types_view')); $fileextension = strtolower(substr(strrchr($files[0]->url_download,"."),1)); if (in_array($fileextension, $view_types)){ $open_in_blank_page = true; } } // when mass download with checkboxes if (!$directlink){ // more as one file is selected - zip it in a temp file $download_dir = $params->get('files_uploaddir').'/'; $zip_dir = $params->get('files_uploaddir').'/'.$params->get('tempzipfiles_folder_name').'/'; if (count($files) > 1) { for ($i=0; $i<count($files); $i++) { // get file url $filename = $files[$i]->url_download; if ($files[$i]->category_cat_dir_parent){ $cat_dir = $files[$i]->category_cat_dir_parent.'/'.$files[$i]->category_cat_dir.'/'; } else { $cat_dir = $files[$i]->category_cat_dir.'/'; } if ($files[$i]->url_download != ''){ $zip_files_array[] = $download_dir.$cat_dir.$filename; } // Check whether a license is selected for later confirmation if ( (int)$files[$i]->license > 0){ $licenses_exist = true; } } $zip_destination = $zip_dir.$params->get('zipfile_prefix').$user_random_id.'.zip'; // create the temp zip file $success = JDHelper::createZipFile($zip_files_array, $zip_destination, true); // if not success display error if (!$success){ $html_sum = str_replace('{info_zip_file_size}', Text::_('COM_JDOWNLOADS_FRONTEND_SUMMARY_ZIP_ERROR'), $html_sum); $html_sum = str_replace('{download_link}', '', $html_sum); } else { // success $zip_size = JDHelper::getFileSize($zip_destination); $zip_file_info = Text::_('COM_JDOWNLOADS_FRONTEND_SUMMARY_ZIP_FILESIZE').': <strong>'.$zip_size.'</strong>'; // delete before older temporary zip files $del_ok = JDHelper::deleteOldZipFiles($zip_dir); $download_link = Route::_('index.php?option=com_jdownloads&task=download.send&catid='.$catid.'&list='.$id_text.'&user='.$user_random_id.'&Itemid='.$Itemid); } } else { // only one file selected $download_link = Route::_('index.php?option=com_jdownloads&task=download.send&id='.(int)$files[0]->id.'&catid='.$files[0]->catid.'&Itemid='.$Itemid); $file_title = ' - '.$files[0]->title; } } // info about temp zip file size (when used) $html_sum = str_replace('{info_zip_file_size}', $zip_file_info, $html_sum); // replace both Google adsense placeholder with script $html_sum = JDHelper::insertGoogleAdsenseCode($html_sum); // build countdown timer if ($user_rules->countdown_timer_duration > 0 && $user_rules->countdown_timer_msg != ''){ $countdown_msg = JDHelper::getOnlyLanguageSubstring($user_rules->countdown_timer_msg); $countdown = '<script type="text/javascript"> counter='.(int)$user_rules->countdown_timer_duration.'; active=setInterval("countdown2()",1000); function countdown2(){ if (counter >0){ counter-=1; document.getElementById("countdown").innerHTML=sprintf(\''.$countdown_msg.'\',counter); } else { document.getElementById("countdown").innerHTML=\''.'{link}'.'\' window.clearInterval(active); } } </script>'; } // View AlphaUserPoints result if ($params->get('use_alphauserpoints')){ $html_sum = str_replace('{aup_points_info}', $aup_result['points_info'], $html_sum); } else { $html_sum = str_replace('{aup_points_info}', '', $html_sum); } // We may view all other data only when this switches are true if ($captcha_valid && $password_valid){ if (count($files) > 1) { // mass download if ($must_confirm && $licenses_exist){ $html_sum = str_replace('{license_title}','', $html_sum); $html_sum = str_replace('{license_text}', '', $html_sum); $agree_form = '<form action="'.$download_link.'" method="post" name="jd_agreeForm" id="jd_agreeForm" >'; $agree_form .= '<input type="checkbox" name="license_agree" onclick="enableDownloadButton(this)" /> '; if (isset($files[$i]->license_url)){ $agree_form .= Text::_('COM_JDOWNLOADS_FRONTEND_VIEW_AGREE_TEXT_URL').'<br /><br />'; } else { $agree_form .= Text::_('COM_JDOWNLOADS_FRONTEND_VIEW_AGREE_TEXT').'<br /><br />'; } $agree_form .= '<input type="submit" name="submit" id="jd_license_submit" class="jdbutton '.$download_color.' '.$download_size.'" value="'.Text::_('COM_JDOWNLOADS_LINKTEXT_DOWNLOAD_URL').'" disabled="disabled" />'; $agree_form .= HTMLHelper::_('form.token')."</form>"; } else { $html_sum = str_replace('{license_text}', '', $html_sum); $html_sum = str_replace('{license_title}', '', $html_sum); $html_sum = str_replace('{license_checkbox}', '', $html_sum); } $link = '<div id="countdown" style="text-align:center"><a href="'.$download_link.'" target="_self" title="'.Text::_('COM_JDOWNLOADS_LINKTEXT_ZIP').'" class="jdbutton '.$download_color.' '.$download_size.'">'.Text::_('COM_JDOWNLOADS_LINKTEXT_DOWNLOAD_URL').'</a></div>'; if ($countdown){ if ($must_confirm){ $countdown = str_replace('{link}', $agree_form, $countdown); $html_sum = str_replace('{license_checkbox}', '<div id="countdown">'.$countdown.'</div>', $html_sum); $html_sum = str_replace('{download_link}', '', $html_sum); } else { $countdown = str_replace('{link}', $link, $countdown); $html_sum = str_replace('{download_link}', '<div id="countdown">'.$countdown.'</div>', $html_sum); } } else { if ($must_confirm){ $html_sum = str_replace('{license_checkbox}', $agree_form, $html_sum); $html_sum = str_replace('{download_link}', '', $html_sum); } else { $html_sum = str_replace('{download_link}', $link, $html_sum); } } $html_sum = str_replace('{external_download_info}', '', $html_sum); } else { // Single download if ($must_confirm){ if ($license_text != ''){ $html_sum = str_replace('{license_title}', Text::_('COM_JDOWNLOADS_FE_SUMMARY_LICENSE_VIEW_TITLE'), $html_sum); $html_sum = str_replace('{license_text}', '<div id="jd_license_text">'.$license_text.'</div>', $html_sum); } else { $html_sum = str_replace('{license_title}', '', $html_sum); $html_sum = str_replace('{license_text}', '', $html_sum); } $agree_form = '<form action="'.$download_link.'" method="post" name="jd_agreeForm" id="jd_agreeForm" >'; $agree_form .= '<input type="checkbox" name="license_agree" onclick="enableDownloadButton(this)" /> '; if ($license_url != '') { $agree_form .= Text::_('COM_JDOWNLOADS_FRONTEND_VIEW_AGREE_TEXT_URL').'<br /><br />'; } else { $agree_form .= Text::_('COM_JDOWNLOADS_FRONTEND_VIEW_AGREE_TEXT').'<br /><br />'; } $agree_form .= '<input type="submit" name="submit" id="jd_license_submit" class="jdbutton '.$download_color.' '.$download_size.'" value="'.Text::_('COM_JDOWNLOADS_LINKTEXT_DOWNLOAD_URL').'" disabled="disabled" />'; $agree_form .= HTMLHelper::_('form.token')."</form>"; } else { $html_sum = str_replace('{license_text}', '', $html_sum); $html_sum = str_replace('{license_title}', '', $html_sum); $html_sum = str_replace('{license_checkbox}', '', $html_sum); } if ($open_in_blank_page || $extern_site){ $targed = '_blank'; if ($extern_site){ $html_sum = str_replace('{external_download_info}', Text::_('COM_JDOWNLOADS_FRONTEND_DOWNLOAD_GO_TO_OTHER_SITE_INFO'), $html_sum); } else { $html_sum = str_replace('{external_download_info}', '', $html_sum); } } else { $targed = '_self'; $html_sum = str_replace('{external_download_info}', '', $html_sum); } $link = '<div id="countdown" style="text-align:center"><a href="'.$download_link.'" target="'.$targed.'" title="'.Text::_('COM_JDOWNLOADS_LINKTEXT_ZIP').'" class="jdbutton '.$download_color.' '.$download_size.'">'.Text::_('COM_JDOWNLOADS_LINKTEXT_DOWNLOAD_URL').'</a></div>'; if ($countdown){ if ($must_confirm){ $countdown = str_replace('{link}', $agree_form, $countdown); $html_sum = str_replace('{license_checkbox}', '<div id="countdown">'.$countdown.'</div>', $html_sum); $html_sum = str_replace('{download_link}', '', $html_sum); } else { $countdown = str_replace('{link}', $link, $countdown); $html_sum = str_replace('{download_link}', '<div id="countdown">'.$countdown.'</div>', $html_sum); } } else { if ($must_confirm){ $html_sum = str_replace('{license_checkbox}', $agree_form, $html_sum); $html_sum = str_replace('{download_link}', '', $html_sum); } else { $html_sum = str_replace('{download_link}', $link, $html_sum); } } } } else { // remove all other (not used) place holders $html_sum = str_replace('{info_zip_file_size}', '', $html_sum); $html_sum = str_replace('{license_text}', '', $html_sum); $html_sum = str_replace('{license_title}', '', $html_sum); $html_sum = str_replace('{license_checkbox}', '', $html_sum); $html_sum = str_replace('{download_liste}', '', $html_sum); $html_sum = str_replace('{external_download_info}', '', $html_sum); $html_sum = str_replace('{aup_points_info}', '', $html_sum); $html_sum = str_replace('{download_link}', '', $html_sum); } } // view the plugins event data $html_sum .= $this->event->afterDisplayContent; // view user his limits when activated if ($user_rules->view_user_his_limits && $user_rules->view_user_his_limits_msg != '' && $total_consumed['limits_info'] != '' && !$user->guest){ $html_sum = str_replace('{user_limitations}', $total_consumed['limits_info'], $html_sum); } else { $html_sum = str_replace('{user_limitations}', '', $html_sum); } // Report download link if ($jd_user_settings->view_report_form && count($files) == 1){ // Create also link for report link when only one file selected $report_link = '<a href="'.Route::_("index.php?option=com_jdownloads&view=report&id=".(int)$files[0]->id."&catid=".$files[0]->catid."&Itemid=".$root_itemid).'" rel="nofollow">'.Text::_('COM_JDOWNLOADS_FRONTEND_REPORT_FILE_LINK_TEXT').'</a>'; $html_sum = str_replace('{report_link}', $report_link, $html_sum); } else { $html_sum = str_replace('{report_link}', '', $html_sum); } $html .= $html_sum; } // ========================================== // FOOTER SECTION // ========================================== // components footer text if ($params->get('downloads_footer_text') != '') { $footer_text = stripslashes(JDHelper::getOnlyLanguageSubstring($params->get('downloads_footer_text'))); // replace both Google adsense placeholder with script $footer_text = JDHelper::insertGoogleAdsenseCode($footer_text); $html .= $footer_text; } // back button if ($params->get('view_back_button')){ $footer = str_replace('{back_link}', '<a href="javascript:history.go(-1)">'.Text::_('COM_JDOWNLOADS_FRONTEND_BACK_BUTTON').'</a>', $footer); } else { $footer = str_replace('{back_link}', '', $footer); } $footer .= JDHelper::checkCom(); $html .= $footer; $html .= '</div>'; // support for global content plugins if ($params->get('activate_general_plugin_support')) { $html = HTMLHelper::_('content.prepare', $html, '', 'com_jdownloads.summary'); } // remove empty html tags if ($params->get('remove_empty_tags')){ $html = JDHelper::removeEmptyTags($html); } // ========================================== // VIEW THE BUILDED OUTPUT // ========================================== if ( !$params->get('offline') ) { echo $html; } else { // admins can view it always if ($is_admin) { echo $html; } else { // build the offline message $html = ''; // offline message if ($params->get('offline_text') != '') { $html .= JDHelper::getOnlyLanguageSubstring($params->get('offline_text')); } echo $html; } } ?>
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка