当前位置: 首页>>代码示例>>PHP>>正文


PHP DocumentManager::file_send_for_download方法代码示例

本文整理汇总了PHP中DocumentManager::file_send_for_download方法的典型用法代码示例。如果您正苦于以下问题:PHP DocumentManager::file_send_for_download方法的具体用法?PHP DocumentManager::file_send_for_download怎么用?PHP DocumentManager::file_send_for_download使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DocumentManager的用法示例。


在下文中一共展示了DocumentManager::file_send_for_download方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: export_complex_table_xml

 /**
  * Export hierarchical tabular data to XML-file
  * @param array  Hierarchical array of data to put in XML, each element presenting a 'name' and a 'value' property
  * @param string Name of file to be given to the user
  * @param string Name of common tag to place each line in
  * @param string Name of the root element. A root element should always be given.
  * @param string Encoding in which the data is provided
  * @return void  Prompts the user for a file download
  */
 public static function export_complex_table_xml($data, $filename = 'export', $wrapper_tagname, $encoding = 'ISO-8859-1')
 {
     $file = api_get_path(SYS_ARCHIVE_PATH) . '/' . uniqid('') . '.xml';
     $handle = fopen($file, 'a+');
     fwrite($handle, '<?xml version="1.0" encoding="' . $encoding . '"?>' . "\n");
     if (!is_null($wrapper_tagname)) {
         fwrite($handle, '<' . $wrapper_tagname . '>');
     }
     $s = self::_export_complex_table_xml_helper($data);
     fwrite($handle, $s);
     if (!is_null($wrapper_tagname)) {
         fwrite($handle, '</' . $wrapper_tagname . '>' . "\n");
     }
     fclose($handle);
     DocumentManager::file_send_for_download($file, true, $filename . '.xml');
     return false;
 }
开发者ID:ilosada,项目名称:chamilo-lms-icpna,代码行数:26,代码来源:export.lib.inc.php

示例2: trim

    if ($not_deleted_file['contains_file'] == 0) {
        $filename = trim($filename) . ".html";
        $work_temp = api_get_path(SYS_ARCHIVE_PATH) . api_get_unique_id() . '_' . $filename;
        file_put_contents($work_temp, $not_deleted_file['description']);
        $files[basename($work_temp)] = $filename;
        $zip_folder->add($work_temp, PCLZIP_OPT_REMOVE_PATH, api_get_path(SYS_ARCHIVE_PATH), PCLZIP_CB_PRE_ADD, 'my_pre_add_callback');
        @unlink($work_temp);
    }
}
if (!empty($files)) {
    //logging
    event_download(basename($work_data['title']) . '.zip (folder)');
    //start download of created file
    $name = basename($work_data['title']) . '.zip';
    if (Security::check_abs_path($temp_zip_file, api_get_path(SYS_ARCHIVE_PATH))) {
        DocumentManager::file_send_for_download($temp_zip_file, true, $name);
        @unlink($temp_zip_file);
        exit;
    }
} else {
    exit;
}
/*	Extra function (only used here) */
function my_pre_add_callback($p_event, &$p_header)
{
    global $files;
    if (isset($files[basename($p_header['stored_filename'])])) {
        $p_header['stored_filename'] = $files[basename($p_header['stored_filename'])];
        return 1;
    }
    return 0;
开发者ID:ragebat,项目名称:chamilo-lms,代码行数:31,代码来源:downloadfolder.inc.php

示例3: htmlToOdt

 /**
  * Export HTML content in a ODF document
  * @param string $html
  * @param string $name
  * @param string $format
  *
  * @return bool
  */
 public static function htmlToOdt($html, $name, $format = 'odt')
 {
     $unoconv = api_get_configuration_value('unoconv.binaries');
     if (empty($unoconv)) {
         return false;
     }
     if (!empty($html)) {
         $fs = new Filesystem();
         $paths = ['root_sys' => api_get_path(SYS_PATH), 'path.temp' => api_get_path(SYS_ARCHIVE_PATH)];
         $connector = new Connector();
         $drivers = new DriversContainer();
         $drivers['configuration'] = array('unoconv.binaries' => $unoconv, 'unoconv.timeout' => 60);
         $tempFilesystem = TemporaryFilesystem::create();
         $manager = new Manager($tempFilesystem, $fs);
         $alchemyst = new Alchemyst($drivers, $manager);
         $dataFileSystem = new Data($paths, $fs, $connector, $alchemyst);
         $content = $dataFileSystem->convertRelativeToAbsoluteUrl($html);
         $filePath = $dataFileSystem->putContentInTempFile($content, api_replace_dangerous_char($name), 'html');
         $try = true;
         while ($try) {
             try {
                 $convertedFile = $dataFileSystem->transcode($filePath, $format);
                 $try = false;
                 DocumentManager::file_send_for_download($convertedFile, false, $name . '.' . $format);
             } catch (Exception $e) {
                 // error_log($e->getMessage());
             }
         }
     }
 }
开发者ID:secuencia24,项目名称:chamilo-lms,代码行数:38,代码来源:export.lib.inc.php

示例4: scorm_export


//.........这里部分代码省略.........
            }
            //error_log(__LINE__.'checking existence of '.$main_path.$file_path.'',0);
            if (!is_file($main_path . $file_path) || !is_readable($main_path . $file_path)) {
                continue;
            }
            //error_log(__LINE__.'getting document from '.$main_path.$file_path.' removing '.api_get_path('SYS_COURSE_PATH').$_course['path'].'/',0);
            $dest_file = $archive_path . $temp_dir_short . '/document/' . $file_path;
            $this->create_path($dest_file);
            //error_log('Created path '.api_get_path(SYS_ARCHIVE_PATH).$temp_dir_short.'/document/'.$file_path,0);
            //error_log('copy '.api_get_path(SYS_COURSE_PATH).$_course['path'].'/'.$file_path.' to '.api_get_path(SYS_ARCHIVE_PATH).$temp_dir_short.'/'.$file_path,0);
            //echo $main_path.$file_path.' - '.$dest_file.'<br>';
            copy($main_path . $file_path, $dest_file);
            //check if the file needs a link update
            if (in_array($file_path, array_keys($link_updates))) {
                $string = file_get_contents($dest_file);
                unlink($dest_file);
                foreach ($link_updates[$file_path] as $old_new) {
                    //error_log('Replacing '.$old_new['orig'].' by '.$old_new['dest'].' in '.$file_path,0);
                    //this is an ugly hack that allows .flv files to be found by the flv player that
                    // will be added in document/main/inc/lib/flv_player/flv_player.swf and that needs
                    // to find the flv to play in document/main/, so we replace main/ in the flv path by
                    // ../../.. to return from inc/lib/flv_player to the document/main path
                    if (substr($old_new['dest'], -3) == 'flv' && substr($old_new['dest'], 0, 5) == 'main/') {
                        $old_new['dest'] = str_replace('main/', '../../../', $old_new['dest']);
                    }
                    if (substr($old_new['dest'], 0, 1) == '/') {
                        $old_new['dest'] = substr($old_new['dest'], 1);
                    }
                    $string = str_replace($old_new['orig'], $old_new['dest'], $string);
                    $string = str_replace(str_replace('https', 'http', $old_new['orig']), $old_new['dest'], $string);
                }
                file_put_contents($dest_file, $string);
            }
        }
        if (is_array($links_to_create)) {
            foreach ($links_to_create as $file => $link) {
                $file_content = '<html><body><div style="text-align:center"><a href="' . $link['url'] . '">' . $link['title'] . '</a></div></body></html>';
                file_put_contents($archive_path . $temp_dir_short . '/' . $file, $file_content);
            }
        }
        // add non exportable message explanation
        $lang_not_exportable = get_lang('ThisItemIsNotExportable');
        $file_content = <<<EOD
<html>
\t<head>
\t\t<style>
\t\t\t.error-message {
\t\t\t\tfont-family: arial, verdana, helvetica, sans-serif;
\t\t\t\tborder-width: 1px;
\t\t\t\tborder-style: solid;
\t\t\t\tleft: 50%;
\t\t\t\tmargin: 10px auto;
\t\t\t\tmin-height: 30px;
\t\t\t\tpadding: 5px;
\t\t\t\tright: 50%;
\t\t\t\twidth: 500px;
\t\t\t\tbackground-color: #FFD1D1;
\t\t\t\tborder-color: #FF0000;
\t\t\t\tcolor: #000;
\t\t\t}
\t\t</style>
\t<body>
\t\t<div class="error-message">
\t\t\t{$lang_not_exportable}
\t\t</div>
\t</body>
</html>
EOD;
        if (!is_dir($archive_path . $temp_dir_short . '/document')) {
            @mkdir($archive_path . $temp_dir_short . '/document');
        }
        file_put_contents($archive_path . $temp_dir_short . '/document/non_exportable.html', $file_content);
        //Add the extra files that go along with a SCORM package
        $main_code_path = api_get_path(SYS_CODE_PATH) . 'newscorm/packaging/';
        $extra_files = scandir($main_code_path);
        foreach ($extra_files as $extra_file) {
            if (strpos($extra_file, '.') === 0) {
                continue;
            } else {
                $dest_file = $archive_path . $temp_dir_short . '/' . $extra_file;
                $this->create_path($dest_file);
                copy($main_code_path . $extra_file, $dest_file);
            }
        }
        //Finalize the imsmanifest structure, add to the zip, then return the zip
        $xmldoc->save($archive_path . '/' . $temp_dir_short . '/imsmanifest.xml');
        $zip_folder->add($archive_path . '/' . $temp_dir_short, PCLZIP_OPT_REMOVE_PATH, $archive_path . '/' . $temp_dir_short . '/');
        //clean possible temporary files
        foreach ($files_cleanup as $file) {
            $res = unlink($file);
            if ($res === false) {
                error_log('Could not delete temp file ' . $file . ' ' . __FILE__ . ' ' . __LINE__, 0);
            }
        }
        //Send file to client
        //$name = 'scorm_export_'.$this->lp_id.'.zip';
        require_once api_get_path(LIBRARY_PATH) . 'fileUpload.lib.php';
        $name = preg_replace('([^a-zA-Z0-9_\\.])', '-', html_entity_decode($this->get_name(), ENT_QUOTES)) . '.zip';
        DocumentManager::file_send_for_download($temp_zip_file, true, $name);
    }
开发者ID:Eidn,项目名称:shanghai,代码行数:101,代码来源:learnpath.class.php

示例5: api_protect_course_script

 *	but this code will hopefully be replaced soon by an Apache URL
 *	rewrite mechanism.
 *
 *	@package chamilo.work
 */
//require_once '../inc/global.inc.php';
require_once 'work.lib.php';
// Course protection
api_protect_course_script(true);
$commentId = isset($_GET['comment_id']) ? intval($_GET['comment_id']) : null;
if (empty($commentId)) {
    api_not_allowed(true);
}
$workData = getWorkComment($commentId);
$courseInfo = api_get_course_info();
if (!empty($workData)) {
    if (empty($workData['file_path']) || isset($workData['file_path']) && !file_exists($workData['file_path'])) {
        api_not_allowed(true);
    }
    $work = get_work_data_by_id($workData['work_id']);
    protectWork($courseInfo, $work['parent_id']);
    if (user_is_author($workData['work_id']) || $courseInfo['show_score'] == 0 && $work['active'] == 1 && $work['accepted'] == 1) {
        if (Security::check_abs_path($workData['file_path'], api_get_path(SYS_COURSE_PATH) . api_get_course_path() . '/')) {
            DocumentManager::file_send_for_download($workData['file_path'], true, $workData['file_name_to_show']);
        }
    } else {
        api_not_allowed(true);
    }
} else {
    api_not_allowed(true);
}
开发者ID:omaoibrahim,项目名称:chamilo-lms,代码行数:31,代码来源:download_comment_file.php

示例6: export_zip

 /**
  * Exports the current SCORM object's files as a zip. Excerpts taken from learnpath_functions.inc.php::exportpath()
  * @param    integer    Learnpath ID (optional, taken from object context if not defined)
  */
 function export_zip($lp_id = null)
 {
     if ($this->debug > 0) {
         error_log('In scorm::export_zip method(' . $lp_id . ')', 0);
     }
     if (empty($lp_id)) {
         if (!is_object($this)) {
             return false;
         } else {
             $id = $this->get_id();
             if (empty($id)) {
                 return false;
             } else {
                 $lp_id = $this->get_id();
             }
         }
     }
     //error_log('New LP - in export_zip()',0);
     //zip everything that is in the corresponding scorm dir
     //write the zip file somewhere (might be too big to return)
     require_once 'learnpath_functions.inc.php';
     $course_id = api_get_course_int_id();
     $tbl_lp = Database::get_course_table(TABLE_LP_MAIN);
     $_course = api_get_course_info(api_get_course_id());
     $sql = "SELECT * FROM {$tbl_lp} WHERE c_id = " . $course_id . " AND id=" . $lp_id;
     $result = Database::query($sql);
     $row = Database::fetch_array($result);
     $LPname = $row['path'];
     $list = split('/', $LPname);
     $LPnamesafe = $list[0];
     //$zipfoldername = '/tmp';
     //$zipfoldername = '../../courses/'.$_course['directory'].'/temp/'.$LPnamesafe;
     $zipfoldername = api_get_path(SYS_COURSE_PATH) . $_course['directory'] . '/temp/' . $LPnamesafe;
     $scormfoldername = api_get_path(SYS_COURSE_PATH) . $_course['directory'] . '/scorm/' . $LPnamesafe;
     $zipfilename = $zipfoldername . '/' . $LPnamesafe . '.zip';
     // Get a temporary dir for creating the zip file.
     //error_log('New LP - cleaning dir '.$zipfoldername, 0);
     deldir($zipfoldername);
     // Make sure the temp dir is cleared.
     $res = mkdir($zipfoldername, api_get_permissions_for_new_directories());
     //error_log('New LP - made dir '.$zipfoldername, 0);
     // Create zipfile of given directory.
     $zip_folder = new PclZip($zipfilename);
     $zip_folder->create($scormfoldername . '/', PCLZIP_OPT_REMOVE_PATH, $scormfoldername . '/');
     //$zipfilename = '/var/www/chamilo/courses/TEST2/scorm/example_document.html';
     //This file sending implies removing the default mime-type from php.ini
     //DocumentManager :: file_send_for_download($zipfilename, true, $LPnamesafe.'.zip');
     DocumentManager::file_send_for_download($zipfilename, true);
     // Delete the temporary zip file and directory in fileManager.lib.php
     FileManager::my_delete($zipfilename);
     FileManager::my_delete($zipfoldername);
     return true;
 }
开发者ID:ilosada,项目名称:chamilo-lms-icpna,代码行数:57,代码来源:scorm.class.php

示例7: export_zip

 /**
  * Exports the current AICC object's files as a zip. Excerpts taken from learnpath_functions.inc.php::exportpath()
  * @param	integer	Learnpath ID (optional, taken from object context if not defined)
  */
 function export_zip($lp_id = null)
 {
     if ($this->debug > 0) {
         error_log('In aicc::export_zip method(' . $lp_id . ')', 0);
     }
     if (empty($lp_id)) {
         if (!is_object($this)) {
             return false;
         } else {
             $id = $this->get_id();
             if (empty($id)) {
                 return false;
             } else {
                 $lp_id = $this->get_id();
             }
         }
     }
     //error_log('New LP - in export_zip()',0);
     //zip everything that is in the corresponding scorm dir
     //write the zip file somewhere (might be too big to return)
     require_once api_get_path(LIBRARY_PATH) . "fileUpload.lib.php";
     require_once api_get_path(LIBRARY_PATH) . "fileManage.lib.php";
     require_once api_get_path(LIBRARY_PATH) . "document.lib.php";
     require_once api_get_path(LIBRARY_PATH) . "pclzip/pclzip.lib.php";
     require_once "learnpath_functions.inc.php";
     $tbl_lp = Database::get_course_table(TABLE_LP_MAIN);
     $_course = Database::get_course_info(api_get_course_id());
     $sql = "SELECT * FROM {$tbl_lp} WHERE id=" . $lp_id;
     $result = Database::query($sql, __FILE__, __LINE__);
     $row = Database::fetch_array($result);
     $LPname = $row['path'];
     $list = split('/', $LPname);
     $LPnamesafe = $list[0];
     //$zipfoldername = '/tmp';
     //$zipfoldername = '../../courses/'.$_course['directory']."/temp/".$LPnamesafe;
     $zipfoldername = api_get_path('SYS_COURSE_PATH') . $_course['directory'] . "/temp/" . $LPnamesafe;
     $scormfoldername = api_get_path('SYS_COURSE_PATH') . $_course['directory'] . "/scorm/" . $LPnamesafe;
     $zipfilename = $zipfoldername . "/" . $LPnamesafe . ".zip";
     //Get a temporary dir for creating the zip file
     //error_log('New LP - cleaning dir '.$zipfoldername,0);
     deldir($zipfoldername);
     //make sure the temp dir is cleared
     $res = mkdir($zipfoldername);
     //error_log('New LP - made dir '.$zipfoldername,0);
     //create zipfile of given directory
     $zip_folder = new PclZip($zipfilename);
     $zip_folder->create($scormfoldername . '/', PCLZIP_OPT_REMOVE_PATH, $scormfoldername . '/');
     //$zipfilename = '/var/www/dokeos-comp/courses/TEST2/scorm/example_document.html';
     //this file sending implies removing the default mime-type from php.ini
     //DocumentManager :: file_send_for_download($zipfilename, true, $LPnamesafe.".zip");
     DocumentManager::file_send_for_download($zipfilename, true);
     // Delete the temporary zip file and directory in fileManage.lib.php
     my_delete($zipfilename);
     my_delete($zipfoldername);
     return true;
 }
开发者ID:Eidn,项目名称:shanghai,代码行数:60,代码来源:aicc.class.php

示例8: array

$language_file = array('courses', 'index', 'admin');
$user_id = api_get_user_id();
if (!isset($_GET['file']) || !isset($_GET['title']) || !isset($_GET['ticket_id'])) {
    api_not_allowed();
}
if (!api_is_platform_admin()) {
    $ticket_id = $_GET['ticket_id'];
    $table_support_messages = Database::get_main_table(TABLE_SUPPORT_MESSAGE);
    $table_support_tickets = Database::get_main_table(TABLE_SUPPORT_TICKET);
    $table_support_message_attachments = Database::get_main_table(TABLE_SUPPORT_MESSAGE_ATTACHMENTS);
    $sql = "SELECT DISTINCT  ticket.request_user FROM  {$table_support_tickets} ticket, {$table_support_messages} message,  {$table_support_message_attachments} attch \n\t\t\tWHERE ticket.ticket_id = message.ticket_id  AND attch.message_id = message.message_id  AND ticket.ticket_id = {$ticket_id}";
    $rs = Database::query($sql);
    $row_users = Database::fetch_array($rs, 'ASSOC');
    $user_request_id = $row_users['request_user'];
    if (intval($user_request_id) != $user_id) {
        api_not_allowed();
    }
}
$file_url = $_GET['file'];
$file_url = str_replace('///', '&', $file_url);
$file_url = str_replace(' ', '+', $file_url);
$file_url = str_replace('/..', '', $file_url);
$file_url = Database::escape_string($file_url);
$title = $_GET['title'];
$path_attachment = api_get_path(SYS_PATH);
$path_message_attach = $path_attachment . 'tck_messageattch/';
$full_file_name = $path_message_attach . $file_url;
if (Security::check_abs_path($full_file_name, $path_message_attach)) {
    DocumentManager::file_send_for_download($full_file_name, TRUE, $title);
}
exit;
开发者ID:ragebat,项目名称:chamilo-lms,代码行数:31,代码来源:download.php

示例9: export_complete_report_xls


//.........这里部分代码省略.........
     // Database table definitions
     $table_survey_question = Database::get_course_table(TABLE_SURVEY_QUESTION);
     $table_survey_question_option = Database::get_course_table(TABLE_SURVEY_QUESTION_OPTION);
     $table_survey_answer = Database::get_course_table(TABLE_SURVEY_ANSWER);
     $course_id = api_get_course_int_id();
     // First line (questions)
     $sql = "SELECT\n                    questions.question_id,\n                    questions.type,\n                    questions.survey_question,\n                    count(options.question_option_id) as number_of_options\n\t\t\t\tFROM {$table_survey_question} questions\n\t\t\t\tLEFT JOIN {$table_survey_question_option} options\n                ON questions.question_id = options.question_id AND options.c_id = {$course_id}\n\t\t\t\tWHERE\n\t\t\t\t    questions.survey_id = '" . intval($_GET['survey_id']) . "' AND\n\t\t\t\t    questions.c_id = {$course_id}\n\t\t\t\tGROUP BY questions.question_id\n\t\t\t\tORDER BY questions.sort ASC";
     $result = Database::query($sql);
     while ($row = Database::fetch_array($result)) {
         // We show the questions if
         // 1. there is no question filter and the export button has not been clicked
         // 2. there is a quesiton filter but the question is selected for display
         if (!$_POST['submit_question_filter'] || is_array($_POST['questions_filter']) && in_array($row['question_id'], $_POST['questions_filter'])) {
             // We do not show comment and pagebreak question types
             if ($row['type'] != 'comment' && $row['type'] != 'pagebreak') {
                 if ($row['number_of_options'] == 0 && $row['type'] == 'open') {
                     $worksheet->SetCellValueByColumnAndRow($line, $column, api_html_entity_decode(strip_tags($row['survey_question']), ENT_QUOTES));
                     $column++;
                 } else {
                     for ($ii = 0; $ii < $row['number_of_options']; $ii++) {
                         $worksheet->SetCellValueByColumnAndRow($line, $column, api_html_entity_decode(strip_tags($row['survey_question']), ENT_QUOTES));
                         $column++;
                     }
                 }
             }
         }
     }
     $line++;
     $column = 1;
     // Show extra field values
     if ($display_extra_user_fields) {
         // Show the fields names for user fields
         foreach ($extra_user_fields as &$field) {
             $worksheet->SetCellValueByColumnAndRow($line, $column, api_html_entity_decode(strip_tags($field[3]), ENT_QUOTES));
             $column++;
         }
     }
     // Getting all the questions and options (second line)
     $sql = "SELECT\n                    survey_question.question_id, survey_question.survey_id, survey_question.survey_question, survey_question.display, survey_question.sort, survey_question.type,\n                    survey_question_option.question_option_id, survey_question_option.option_text, survey_question_option.sort as option_sort\n\t\t\t\tFROM {$table_survey_question} survey_question\n\t\t\t\tLEFT JOIN {$table_survey_question_option} survey_question_option\n\t\t\t\tON survey_question.question_id = survey_question_option.question_id AND survey_question_option.c_id = {$course_id}\n\t\t\t\tWHERE survey_question.survey_id = '" . intval($_GET['survey_id']) . "' AND\n\t\t\t\tsurvey_question.c_id = {$course_id}\n\t\t\t\tORDER BY survey_question.sort ASC, survey_question_option.sort ASC";
     $result = Database::query($sql);
     $possible_answers = array();
     $possible_answers_type = array();
     while ($row = Database::fetch_array($result)) {
         // We show the options if
         // 1. there is no question filter and the export button has not been clicked
         // 2. there is a quesiton filter but the question is selected for display
         if (!$_POST['submit_question_filter'] || is_array($_POST['questions_filter']) && in_array($row['question_id'], $_POST['questions_filter'])) {
             // We do not show comment and pagebreak question types
             if ($row['type'] != 'comment' && $row['type'] != 'pagebreak') {
                 $worksheet->SetCellValueByColumnAndRow($line, $column, api_html_entity_decode(strip_tags($row['option_text']), ENT_QUOTES));
                 $possible_answers[$row['question_id']][$row['question_option_id']] = $row['question_option_id'];
                 $possible_answers_type[$row['question_id']] = $row['type'];
                 $column++;
             }
         }
     }
     // Getting all the answers of the users
     $line++;
     $column = 0;
     $old_user = '';
     $answers_of_user = array();
     $sql = "SELECT * FROM {$table_survey_answer}\n                WHERE c_id = {$course_id} AND survey_id='" . intval($_GET['survey_id']) . "' ";
     if ($user_id != 0) {
         $sql .= "AND user='" . intval($user_id) . "' ";
     }
     $sql .= "ORDER BY user ASC";
     $open_question_iterator = 1;
     $result = Database::query($sql);
     while ($row = Database::fetch_array($result)) {
         if ($old_user != $row['user'] && $old_user != '') {
             $return = SurveyUtil::export_complete_report_row_xls($survey_data, $possible_answers, $answers_of_user, $old_user, true);
             foreach ($return as $elem) {
                 $worksheet->SetCellValueByColumnAndRow($line, $column, $elem);
                 $column++;
             }
             $answers_of_user = array();
             $line++;
             $column = 0;
         }
         if ($possible_answers_type[$row['question_id']] == 'open') {
             $temp_id = 'open' . $open_question_iterator;
             $answers_of_user[$row['question_id']][$temp_id] = $row;
             $open_question_iterator++;
         } else {
             $answers_of_user[$row['question_id']][$row['option_id']] = $row;
         }
         $old_user = $row['user'];
     }
     $return = SurveyUtil::export_complete_report_row_xls($survey_data, $possible_answers, $answers_of_user, $old_user, true);
     // this is to display the last user
     foreach ($return as $elem) {
         $worksheet->SetCellValueByColumnAndRow($line, $column, $elem);
         $column++;
     }
     $file = api_get_path(SYS_ARCHIVE_PATH) . api_replace_dangerous_char($filename);
     $writer = new PHPExcel_Writer_Excel2007($spreadsheet);
     $writer->save($file);
     DocumentManager::file_send_for_download($file, true, $filename);
     return null;
 }
开发者ID:jloguercio,项目名称:chamilo-lms,代码行数:101,代码来源:survey.lib.php

示例10: export_csv

 public function export_csv()
 {
     $course = Request::get_course_key();
     $items = Notebook::repository()->find_by_course($course);
     $writer = CsvWriter::create();
     $writer->add($items);
     $path = $writer->get_path();
     \DocumentManager::file_send_for_download($path, true, get_lang('Notebook') . '.csv');
 }
开发者ID:ilosada,项目名称:chamilo-lms-icpna,代码行数:9,代码来源:controller.class.php

示例11: zip_download

/**
* This function downloads all the files of the input array into one zip
* @param array $fileList containing all the ids of the files that have to be downloaded.
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University
* @todo consider removing the check if the user has received or sent this file (zip download of a folder already sufficiently checks for this).
* @todo integrate some cleanup function that removes zip files that are older than 2 days
*
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University
* @author Julio Montoya  Addin c_id support
* @version march 2006
*/
function zip_download($fileList)
{
    $_course = api_get_course_info();
    $dropbox_cnf = getDropboxConf();
    $course_id = api_get_course_int_id();
    $fileList = array_map('intval', $fileList);
    // note: we also have to add the check if the user has received or sent this file.
    $sql = "SELECT DISTINCT file.filename, file.title, file.author, file.description\n            FROM " . $dropbox_cnf['tbl_file'] . " file\n            INNER JOIN " . $dropbox_cnf['tbl_person'] . " person\n            ON (person.file_id=file.id AND file.c_id = {$course_id} AND person.c_id = {$course_id})\n            INNER JOIN " . $dropbox_cnf['tbl_post'] . " post\n            ON (post.file_id = file.id AND post.c_id = {$course_id} AND file.c_id = {$course_id})\n            WHERE\n                file.id IN (" . implode(', ', $fileList) . ") AND\n                file.id = person.file_id AND\n                (\n                    person.user_id = '" . api_get_user_id() . "' OR\n                    post.dest_user_id = '" . api_get_user_id() . "'\n                ) ";
    $result = Database::query($sql);
    $files = array();
    while ($row = Database::fetch_array($result)) {
        $files[$row['filename']] = array('filename' => $row['filename'], 'title' => $row['title'], 'author' => $row['author'], 'description' => $row['description']);
    }
    // Step 3: create the zip file and add all the files to it
    $temp_zip_file = api_get_path(SYS_ARCHIVE_PATH) . api_get_unique_id() . ".zip";
    Session::write('dropbox_files_to_download', $files);
    $zip = new PclZip($temp_zip_file);
    foreach ($files as $value) {
        $zip->add(api_get_path(SYS_COURSE_PATH) . $_course['path'] . '/dropbox/' . $value['filename'], PCLZIP_OPT_REMOVE_ALL_PATH, PCLZIP_CB_PRE_ADD, 'my_pre_add_callback');
    }
    Session::erase('dropbox_files_to_download');
    $name = 'dropbox-' . api_get_utc_datetime() . '.zip';
    DocumentManager::file_send_for_download($temp_zip_file, true, $name);
    @unlink($temp_zip_file);
    exit;
}
开发者ID:annickvdp,项目名称:Chamilo1.9.10,代码行数:37,代码来源:dropbox_functions.inc.php

示例12: api_get_path

<?php

/* For licensing terms, see /license.txt */
/**
 * Download script for course info
 * @package chamilo.course_info
 */
////require_once '../inc/global.inc.php';
$this_section = SECTION_COURSES;
$_cid = false;
if (isset($_GET['session']) && $_GET['session']) {
    $archive_path = api_get_path(SYS_ARCHIVE_PATH) . 'temp/';
    $_cid = true;
    $is_courseAdmin = true;
} else {
    $archive_path = api_get_path(SYS_ARCHIVE_PATH);
}
$archive_file = isset($_GET['archive']) ? $_GET['archive'] : null;
$archive_file = str_replace(array('..', '/', '\\'), '', $archive_file);
list($extension) = getextension($archive_file);
if (empty($extension) || !file_exists($archive_path . $archive_file)) {
    api_not_allowed(true);
}
if (Security::check_abs_path($archive_path . $archive_file, $archive_path)) {
    DocumentManager::file_send_for_download($archive_path . $archive_file, true, $archive_file);
    exit;
} else {
    api_not_allowed(true);
}
开发者ID:omaoibrahim,项目名称:chamilo-lms,代码行数:29,代码来源:download.php

示例13: scorm_export


//.........这里部分代码省略.........
                continue;
            }
            $dest_file = $archive_path . $temp_dir_short . '/document/' . $file_path;
            $this->create_path($dest_file);
            copy($main_path . $file_path, $dest_file);
            // Check if the file needs a link update.
            if (in_array($file_path, array_keys($link_updates))) {
                $string = file_get_contents($dest_file);
                unlink($dest_file);
                foreach ($link_updates[$file_path] as $old_new) {
                    // This is an ugly hack that allows .flv files to be found by the flv player that
                    // will be added in document/main/inc/lib/flv_player/flv_player.swf and that needs
                    // to find the flv to play in document/main/, so we replace main/ in the flv path by
                    // ../../.. to return from inc/lib/flv_player to the document/main path.
                    if (substr($old_new['dest'], -3) == 'flv' && substr($old_new['dest'], 0, 5) == 'main/') {
                        $old_new['dest'] = str_replace('main/', '../../../', $old_new['dest']);
                    }
                    $string = str_replace($old_new['orig'], $old_new['dest'], $string);
                }
                file_put_contents($dest_file, $string);
            }
        }
        if (is_array($links_to_create)) {
            foreach ($links_to_create as $file => $link) {
                $file_content = '<!DOCTYPE html><head>
                                <meta charset="' . api_get_language_isocode() . '" />
                                <title>' . $link['title'] . '</title>
                                </head>
                                <body dir="' . api_get_text_direction() . '">
                                <div style="text-align:center">
                                <a href="' . $link['url'] . '">' . $link['title'] . '</a></div>
                                </body>
                                </html>';
                file_put_contents($archive_path . $temp_dir_short . '/' . $file, $file_content);
            }
        }
        // Add non exportable message explanation.
        $lang_not_exportable = get_lang('ThisItemIsNotExportable');
        $file_content = '<!DOCTYPE html><head>
                        <meta charset="' . api_get_language_isocode() . '" />
                        <title>' . $lang_not_exportable . '</title>
                        <meta http-equiv="Content-Type" content="text/html; charset=' . api_get_system_encoding() . '" />
                        </head>
                        <body dir="' . api_get_text_direction() . '">';
        $file_content .= <<<EOD
                    <style>
            .error-message {
                font-family: arial, verdana, helvetica, sans-serif;
                border-width: 1px;
                border-style: solid;
                left: 50%;
                margin: 10px auto;
                min-height: 30px;
                padding: 5px;
                right: 50%;
                width: 500px;
                background-color: #FFD1D1;
                border-color: #FF0000;
                color: #000;
            }
        </style>
    <body>
        <div class="error-message">
            {$lang_not_exportable}
        </div>
    </body>
</html>
EOD;
        if (!is_dir($archive_path . $temp_dir_short . '/document')) {
            @mkdir($archive_path . $temp_dir_short . '/document', api_get_permissions_for_new_directories());
        }
        file_put_contents($archive_path . $temp_dir_short . '/document/non_exportable.html', $file_content);
        // Add the extra files that go along with a SCORM package.
        $main_code_path = api_get_path(SYS_CODE_PATH) . 'newscorm/packaging/';
        $extra_files = scandir($main_code_path);
        foreach ($extra_files as $extra_file) {
            if (strpos($extra_file, '.') === 0) {
                continue;
            } else {
                $dest_file = $archive_path . $temp_dir_short . '/' . $extra_file;
                $this->create_path($dest_file);
                copy($main_code_path . $extra_file, $dest_file);
            }
        }
        // Finalize the imsmanifest structure, add to the zip, then return the zip.
        $manifest = @$xmldoc->saveXML();
        $manifest = api_utf8_decode_xml($manifest);
        // The manifest gets the system encoding now.
        file_put_contents($archive_path . '/' . $temp_dir_short . '/imsmanifest.xml', $manifest);
        $zip_folder->add($archive_path . '/' . $temp_dir_short, PCLZIP_OPT_REMOVE_PATH, $archive_path . '/' . $temp_dir_short . '/');
        // Clean possible temporary files.
        foreach ($files_cleanup as $file) {
            $res = unlink($file);
            if ($res === false) {
                error_log('Could not delete temp file ' . $file . ' ' . __FILE__ . ' ' . __LINE__, 0);
            }
        }
        $name = api_replace_dangerous_char($this->get_name()) . '.zip';
        DocumentManager::file_send_for_download($temp_zip_file, true, $name);
    }
开发者ID:secuencia24,项目名称:chamilo-lms,代码行数:101,代码来源:learnpath.class.php

示例14: foreach

    if (!$pub->is_accessible()) {
        break;
    }
    if ($pub->is_file()) {
        $items[] = $pub;
    }
    /**
     * We ignore folders 
     */
}
/**
 * Requested files may not be accessible. 
 */
if (count($items) == 0) {
    Response::not_found();
}
/**
 * Zip files together. 
 */
$zip = Chamilo::temp_zip();
foreach ($items as $item) {
    $path = $item->get_absolute_path();
    $title = $item->get_title();
    $zip->add($path, $title);
}
/**
 * Send file for download 
 */
event_download(Uri::here());
DocumentManager::file_send_for_download($zip->get_path(), false, get_lang('StudentPublications') . '.zip');
开发者ID:ilosada,项目名称:chamilo-lms-icpna,代码行数:30,代码来源:file.php

示例15: export_complete_report_xls

/**
 * @param string $filename
 * @param array $array
 */
function export_complete_report_xls($filename, $array)
{
    global $global, $filter_score;
    $spreadsheet = new PHPExcel();
    $spreadsheet->setActiveSheetIndex(0);
    $worksheet = $spreadsheet->getActiveSheet();
    $line = 0;
    $column = 0;
    //skip the first column (row titles)
    if ($global) {
        $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('Courses'));
        $column++;
        $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('Exercises'));
        $column++;
        $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('ExamTaken'));
        $column++;
        $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('ExamNotTaken'));
        $column++;
        $worksheet->SetCellValueByColumnAndRow($line, $column, sprintf(get_lang('ExamPassX'), $filter_score) . '%');
        $column++;
        $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('ExamFail'));
        $column++;
        $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('TotalStudents'));
        $column++;
        $line++;
        foreach ($array as $row) {
            $column = 0;
            foreach ($row as $item) {
                $worksheet->SetCellValueByColumnAndRow($line, $column, html_entity_decode(strip_tags($item)));
                $column++;
            }
            $line++;
        }
        $line++;
    } else {
        $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('Exercises'));
        $column++;
        $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('User'));
        $column++;
        $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('Percentage'));
        $column++;
        $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('Status'));
        $column++;
        $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('Attempts'));
        $column++;
        $line++;
        foreach ($array as $row) {
            $column = 0;
            $worksheet->SetCellValueByColumnAndRow($line, $column, html_entity_decode(strip_tags($row['exercise'])));
            $column++;
            foreach ($row['users'] as $key => $user) {
                $column = 1;
                $worksheet->SetCellValueByColumnAndRow($line, $column, html_entity_decode(strip_tags($user)));
                $column++;
                foreach ($row['results'][$key] as $result_item) {
                    $worksheet->SetCellValueByColumnAndRow($line, $column, html_entity_decode(strip_tags($result_item)));
                    $column++;
                }
                $line++;
            }
        }
        $line++;
    }
    $file = api_get_path(SYS_ARCHIVE_PATH) . api_replace_dangerous_char($filename);
    $writer = new PHPExcel_Writer_Excel2007($spreadsheet);
    $writer->save($file);
    DocumentManager::file_send_for_download($file, true, $filename);
    exit;
}
开发者ID:KRCM13,项目名称:chamilo-lms,代码行数:73,代码来源:exams.php


注:本文中的DocumentManager::file_send_for_download方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。