コード例 #1
0
ファイル: log.server.php プロジェクト: abhinay100/forma_app
		.'</sessions>'
		.'</ews>';*/
if ($xml_answer === false) {
    aout('<?xml version="1.0" encoding="UTF-8"?><ews><errorcode>1</errorcode><errormessage>No data found</errormessage></ews>');
}
$dom_answer = new DoceboDOMDocument();
$dom_answer->loadXML(trim($xml_answer));
$dlist_code = $dom_answer->getElementsByTagName('errorcode');
$dlist_msg = $dom_answer->getElementsByTagName('errormessage');
$dnode_code = $dlist_code->item(0);
$dnode_msg = $dlist_msg->item(0);
$e_code = $dnode_code->textContent;
$e_msg = $dnode_msg->textContent;
if ($e_code == 0) {
    require_once $GLOBALS['where_scs'] . '/lib/lib.teleskill.php';
    $teleskill = new Teleskill_Management();
    $teleskill->clearRoomLog($roomid);
    $dlist_sessions = $dom_answer->getElementsByTagName('session');
    $dlist_sessions = $dlist_sessions->item(0);
    if ((int) $dlist_sessions->getAttribute('uid') != 0 && $dlist_sessions->getAttribute('uid') !== '') {
        $gmt = date('P', fromDatetimeToTimestamp($dlist_sessions->getAttribute('date')));
        $gmt_split = explode(':', $gmt);
        $gmt_offset = (int) $gmt_split[0];
        $query_control = "SELECT COUNT(*)" . " FROM " . $GLOBALS['prefix_scs'] . "_teleskill_log" . " WHERE roomid = '" . $dlist_sessions->getAttribute('roomid') . "'" . " AND idUser = '******'uid') . "'";
        list($control) = sql_fetch_row(sql_query($query_control));
        if ($control) {
            $query = "UPDATE " . $GLOBALS['prefix_scs'] . "_teleskill_log" . " SET role = '" . $dlist_sessions->getAttribute('role') . "'," . " duration = (duration + '" . $dlist_sessions->getAttribute('duration') . "')," . " access = (access + " . ($dlist_sessions->getAttribute('duration') == 0 ? 1 : 0) . ")" . " WHERE roomid = '" . $dlist_sessions->getAttribute('roomid') . "'" . " AND idUser = '******'uid') . "'";
            $result = sql_query($query);
        } else {
            $query = "INSERT INTO " . $GLOBALS['prefix_scs'] . "_teleskill_log (roomid, idUser, role, `date`, duration, access)" . " VALUES ('" . $dlist_sessions->getAttribute('roomid') . "',\r\n\t\t\t\t\t\t'" . (int) $dlist_sessions->getAttribute('uid') . "',\r\n\t\t\t\t\t\t'" . $dlist_sessions->getAttribute('role') . "',\r\n\t\t\t\t\t\t'" . date('Y-m-d H:i:s', fromDatetimeToTimestamp($dlist_sessions->getAttribute('date')) + $gmt_offset * 3600) . "',\r\n\t\t\t\t\t\t'" . $dlist_sessions->getAttribute('duration') . "',\r\n\t\t\t\t\t\t'" . ($dlist_sessions->getAttribute('duration') == 0 ? 1 : 0) . "')";
            $result = sql_query($query);
コード例 #2
0
ファイル: conference.php プロジェクト: abhinay100/forma_app
function showLog()
{
    require_once _base_ . '/lib/lib.form.php';
    require_once _base_ . '/lib/lib.table.php';
    $lang =& DoceboLanguage::createInstance('conference', 'lms');
    $id = Get::req('id', DOTY_INT, 0);
    $conference = new Conference_Manager();
    $room_info = $conference->roomInfo($id);
    $acl_man =& Docebo::user()->getAclManager();
    cout(getTitleArea('') . '<div class="std_block">', 'content');
    $room_log = array();
    switch ($room_info['room_type']) {
        case 'teleskill':
            require_once $GLOBALS['where_scs'] . '/lib/lib.teleskill.php';
            $teleskill = new Teleskill_Management();
            $roomid = $teleskill->getRoomId($id);
            if (isset($_POST['update_log'])) {
                $teleskill->updateRoomLog($roomid);
            }
            $room_log = $teleskill->getRoomLog($roomid);
            break;
    }
    $tb = new Table(0, $lang->def('_ROOM_LOG'), $lang->def('_ROOM_LOG'));
    $cont_h = array($lang->def('_FULLNAME'), $lang->def('_ROLE'), $lang->def('_DATE'), $lang->def('_TOTAL_TIME'), $lang->def('_NUMBER_OF_ACCESS'));
    $type_h = array('', '', '', '', '');
    $tb->setColsStyle($type_h);
    $tb->addHead($cont_h);
    foreach ($room_log as $log_row) {
        $user_info = $acl_man->getUser($log_row['idUser'], false);
        $cont = array();
        if ($user_info[ACL_INFO_FIRSTNAME] !== '' && $user_info[ACL_INFO_LASTNAME]) {
            $cont[] = $user_info[ACL_INFO_FIRSTNAME] . ' ' . $user_info[ACL_INFO_LASTNAME] . ' (' . $acl_man->relativeId($user_info[ACL_INFO_USERID]) . ')';
        } elseif ($user_info[ACL_INFO_FIRSTNAME] !== '') {
            $cont[] = $user_info[ACL_INFO_FIRSTNAME] . ' (' . $acl_man->relativeId($user_info[ACL_INFO_USERID]) . ')';
        } elseif ($user_info[ACL_INFO_LASTNAME] !== '') {
            $cont[] = $user_info[ACL_INFO_LASTNAME] . ' (' . $acl_man->relativeId($user_info[ACL_INFO_USERID]) . ')';
        } else {
            $cont[] = $acl_man->relativeId($user_info[ACL_INFO_USERID]);
        }
        $cont[] = $log_row['role'] == 1 ? $lang->def('_USER_ROLE') : $lang->def('_TUTOR_ROLE');
        $cont[] = Format::date($log_row['date'], 'datetime');
        $duration_s = 0;
        $duration_m = 0;
        $duration_h = 0;
        $duration = $log_row['duration'];
        $duration_s = $duration % 60;
        $duration -= $duration_s;
        if ($duration) {
            $duration_m = $duration % 3600 / 60;
            $duration -= $duration_m * 60;
            if ($duration) {
                $duration_h = $duration / 3600;
            }
        }
        $cont[] = $duration_h . ' ' . $lang->def('_HOURS') . ' ' . $duration_m . ' ' . $lang->def('_MINUTS') . ' ' . $duration_s . ' ' . $lang->def('_SECONDS');
        $cont[] = $log_row['access'];
        $tb->addBody($cont);
    }
    $tb->addActionAdd(Form::getButton('update_log', 'update_log', $lang->def('_UPDATE_LOG')));
    cout(Form::openForm('log_table', 'index.php?modname=conference&amp;op=log&amp;id=' . $id) . $tb->getTable() . Form::closeForm() . '<br/>' . getBackUi('index.php?modname=conference&amp;op=history', $lang->def('_BACK')), 'content');
    cout('</div>', 'content');
}
コード例 #3
0
 function getUrl($idConference, $room_type)
 {
     $conference = $this->roomInfo($idConference);
     switch ($room_type) {
         case "bbb":
             // TODO : support for BBB is experimental - must be refined
             $bbb = new Bbb_Manager();
             $url = $bbb->getUrl($idConference, $room_type);
             break;
         case "dimdim":
             $dimdim = new DimDim_Manager();
             $url = $dimdim->getUrl($idConference, $room_type);
             break;
         case "teleskill":
             $teleskill = new Teleskill_Management();
             $url = $teleskill->getUrl($idConference, $room_type);
             break;
     }
     return $url;
 }