示例#1
0
文件: analytics.php 项目: anzhao/OVAL
function displayAnalytics()
{
    global $users, $userID, $userName, $videoID, $authorizedUsers, $classes, $classID;
    ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Video Usage Analytics</title>
<script type="text/javascript" src="kaltura-html5player-widget/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $('#date-heatmap .day').mouseover(function(event) {
        // the date and number of views (delineated by an underscore) are stored in the class tag
        var classTag  = $(this).attr('class');
        underscorePos = classTag.indexOf("_");
        viewDate      = classTag.substring(0, underscorePos);
        viewCount     = classTag.substring(underscorePos+1, classTag.indexOf(" "));
        if ("" == viewCount) viewCount = 0;

        $('<div id="date" style="border:1px solid gray;background-color:#fff;padding:2px 4px 2px 4px;width:auto;z-index:100;">' + viewDate + ' (' + viewCount + ' views)<br style="margin-bottom:10px;"/></div>').appendTo('body');

        showDate(event);
    });

    function showDate(event) {
        var tPosX = event.pageX + 15 + 'px';
        var tPosY = event.pageY + 15 + 'px';
        $('#date').css({'position': 'absolute', 'top': tPosY, 'left': tPosX});
    }

    $('#date-heatmap .day').mouseout(function(event) {
        $('#date').remove();
    });

});
</script>
    <link rel="stylesheet" type="text/css" href="style.css" />
    <link rel="stylesheet" type="text/css" href="admin-page.css" />
</head>
<body>
<?php 
    printAdminBar(false, $userName);
    ?>
    <div style="clear:both"></div>
    <strong>Video Usage Analytics</strong>
    <br />
    <br /> 
    <label align="left">select course <select name="class" id="class" onchange="jumpBoxClass()">
<?php 
    //print "classID: $classID";
    foreach ($classes as $class) {
        //print_r($class);
        $ID = $class['ID'];
        $name = $class['name'];
        $classID == $ID ? $selected = "selected=\"selected\"" : ($selected = "");
        print "\t<option value=\"{$ID}\" {$selected}>{$name}</option>\n";
    }
    ?>
    </select>
    </label>


<label style="font-size:100%">select video
    <select>
    <option>All</option>


  
    <?php 
    mysql_connect('localhost', 'root', 'Adelaide160');
    mysql_select_db('prod_annotation_tool');
    // $query="select title from media where video_id IN (SELECT video_id FROM videoGroup)";
    // $query="SELECT m.title FROM videoGroup v, media m WHERE v.group_id=$groupID AND m.video_id LIKE v.video_id ORDER BY m.title";
    $media = new media();
    print_r($groupIDs);
    //for ($i=0; $i<count($groupIDs); $i++):
    //$videoIDs = array_keys($media->getVideosByGroupID($userID,$groupIDs[$i]));
    //print_r($videoIDs);print "<br />";
    $result = mysql_query($query);
    while ($row = mysql_fetch_array($result)) {
        echo "<option>";
        echo $row['title'];
        echo "</option>";
    }
    ?>
</select>
   

    </select>
    </label>


    <form id="form1" name="form1" method="post" action="" >
        <table style="width:800px;height:auto;">
            <thead>
                <tr style="border-bottom:1px solid black">
                    <th>Video(s)</th>
                    <th>Unique Users</th>
                    <th>% of class</th>
                    <th>Total of Annotations</th>
                    <th>Total of Summaries</th>
                </tr>                
            </thead>
            <tbody>
<?php 
    $groupIDs = array_keys($users->getGroupsByClassID($classID));
    //print_r($groupIDs);print "<br />";
    $userInfo = null;
    $media = new media();
    for ($i = 0; $i < count($groupIDs); $i++) {
        // fetch videos for given group
        $videoIDs = array_keys($media->getVideosByGroupID($userID, $groupIDs[$i]));
        //print_r($videoIDs);print "<br />";
        for ($j = 0; $j < count($videoIDs); $j++) {
            $groupMembers = $users->getGroupMembers($groupIDs[$i]);
            // TODO: cache this info
            $userInfo = $users->getUserInfo($groupMembers);
            //print_r($groupMembers);print "<br />";
            //print "userInfo: "; print_r($userInfo);print "<br />";
            $thumbnail = $media->getProperty($videoIDs[$j], 'thumbnail_url');
            $title = $media->getProperty($videoIDs[$j], 'title');
            ?>
            <div style="width:900px;"></div>
<?php 
            for ($k = 0; $k < count($groupMembers); $k++) {
                //array_push($viewerStats, $media->getViewerStatistics($userInfo[$k]['User_ID'], $videoIDs[$j]));
                //$viewerStats[$k] = $media->getViewerStatistics($userInfo[$k]['User_ID'], $videoIDs[$j]);
                $playStatus[$k] = $media->getPlayStatistics($videoIDs[$j]);
                //print_r($viewerStats[$k]);
            }
            // find first timestamp and last time stamp
            $dates = getDateRange($viewerStats);
            // calculate range and convert it to days
            $range = intval((strtotime($dates['last_view']) - strtotime($dates['first_view'])) / (60 * 60 * 24)) + 1;
            $maxDailyViews;
            $dailyViews = getDailyViews($viewerStats, $maxDailyViews);
            for ($k = 0; $k < count($groupMembers); $k++) {
                //print "\$groupMembers[$k]: "; print_r($groupMembers);
                //print_r($viewerStats); print "<br />";
                ?>
            <tr style="border-bottom:1px solid black">
<?php 
                if (0 == $k) {
                    print "<td style=\"border-right:1px solid black;background-color:#eee;\" rowspan=\"" . count($groupMembers) . "\"><img src=\"{$thumbnail}\" alt=\"video thumbnail\" /><br />{$title}<br /></td>";
                    echo "<td>";
                    echo $media->getUniqueUsers($videoIDs[$j]);
                    echo "</td>";
                    echo "<td>";
                    echo round($media->getUniqueUsers($videoIDs[$j]) / $media->getNumAnnotations($videoIDs[$j]) * 100 / 2, 2);
                    echo "</td>";
                    echo "<td>" . $media->getNumAnnotations($videoIDs[$j]) . "</td>";
                    echo "<td>" . $media->getNumSummaries($videoIDs[$j]) . "</td>";
                }
                ?>
               
<?php 
            }
        }
    }
    $media->close();
    ?>
    

            </tr>

    
                               
        <br />  
        </tbody>
        </table>
    </form>
</body>
</html>
<?php 
}