コード例 #1
0
        }
    }
}
// get data
$logusers = $userid;
$logs = use_stats_extract_logs($from, time(), $userid, $course->id);
$aggregate = use_stats_aggregate_logs($logs, 'module');
// get course structure
$coursestructure = reports_get_course_structure($course->id, $items);
// print result
if ($output == 'html') {
    // time period form
    echo "<link rel=\"stylesheet\" href=\"reports.css\" type=\"text/css\" />";
    include "selector_form.html";
    $str = '';
    $dataobject = training_reports_print_html($str, $coursestructure, $aggregate, $done);
    $dataobject->items = $items;
    $dataobject->done = $done;
    /*
    if (!empty($aggregate)){
        foreach(array_keys($aggregate) as $module){
            $dataobject->done += count($aggregate[$module]);
        }
    }
    */
    if ($dataobject->done > $items) {
        $dataobject->done = $items;
    }
    training_reports_print_header_html($userid, $course->id, $dataobject);
    echo $str;
    $options['id'] = $course->id;
コード例 #2
0
/**
* a raster for html printing of a report structure.
*
* @param string ref $str a buffer for accumulating output
* @param object $structure a course structure object.
*/
function training_reports_print_html(&$str, $structure, &$aggregate, &$done, $indent = '', $level = 1)
{
    if (empty($structure)) {
        $str .= get_string('nostructure', 'report_trainingsessions');
        return;
    }
    $indent = str_repeat('&nbsp;&nbsp;', $level);
    $suboutput = '';
    // initiates a blank dataobject
    if (!isset($dataobject)) {
        $dataobject->elapsed = 0;
        $dataobject->events = 0;
    }
    if (is_array($structure)) {
        // if an array of elements produce sucessively each output and collect aggregates
        foreach ($structure as $element) {
            if (isset($element->instance) && empty($element->instance->visible)) {
                continue;
            }
            // non visible items should not be displayed
            $res = training_reports_print_html($str, $element, $aggregate, $done, $indent, $level);
            $dataobject->elapsed += $res->elapsed;
            $dataobject->events += $res->events;
        }
    } else {
        if (!isset($structure->instance) || !empty($structure->instance->visible)) {
            // non visible items should not be displayed
            // name is not empty. It is a significant module (non structural)
            if (!empty($structure->name)) {
                $str .= "<table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" class=\"sessionreport\">";
                $str .= "<tr class=\"sessionlevel{$level}\" valign=\"top\">";
                $str .= "<td width=\"60%\" class=\"sessionitem\">";
                $str .= $indent;
                if (debugging()) {
                    $str .= '[' . $structure->type . '] ';
                }
                $str .= shorten_text($structure->name, 85);
                $str .= '</td>';
                $str .= "<td width=\"40%\" class=\"reportvalue\" align=\"right\">";
                if (isset($structure->id) && !empty($aggregate[$structure->type][$structure->id])) {
                    $done++;
                    $dataobject = $aggregate[$structure->type][$structure->id];
                }
                if (!empty($structure->subs)) {
                    $res = training_reports_print_html($suboutput, $structure->subs, $aggregate, $done, $indent, $level + 1);
                    $dataobject->elapsed += $res->elapsed;
                    $dataobject->events += $res->events;
                }
                $str .= training_reports_format_time($dataobject->elapsed, 'html');
                $str .= ' (' . $dataobject->events . ')';
                // plug here specific details
                $str .= '</td>';
                $str .= '</tr>';
                $str .= "</table>\n";
            } else {
                // It is only a structural module that should not impact on level
                if (isset($structure->id) && !empty($aggregate[$structure->type][$structure->id])) {
                    $dataobject = $aggregate[$structure->type][$structure->id];
                }
                if (!empty($structure->subs)) {
                    $res = training_reports_print_html($suboutput, $structure->subs, $aggregate, $done, $indent, $level);
                    $dataobject->elapsed += $res->elapsed;
                    $dataobject->events += $res->events;
                }
            }
            if (!empty($structure->subs)) {
                $str .= "<table width=\"100%\" class=\"trainingreport\">";
                $str .= "<tr valign=\"top\">";
                $str .= "<td colspan=\"2\">";
                $str .= $suboutput;
                $str .= '</td>';
                $str .= '</tr>';
                $str .= "</table>\n";
            }
        }
    }
    return $dataobject;
}