Adding new files to look Chat, chat.css, jquery.tinyscrollbar.js and images necessary

1.9.x
aragonc 12 years ago
parent 7f5f75a9f6
commit fee237c082
  1. 11
      main/chat/chat.php
  2. 9
      main/chat/chat_chat.php
  3. 8
      main/chat/chat_message.php
  4. 37
      main/chat/chat_whoisonline.php
  5. 24
      main/chat/header_frame.inc.php
  6. BIN
      main/css/bg-scrollbar-thumb-y.png
  7. BIN
      main/css/bg-scrollbar-track-y.png
  8. BIN
      main/css/bg-scrollbar-trackend-y.png
  9. 238
      main/css/chat.css
  10. 12
      main/inc/lib/course_home.lib.php
  11. 243
      main/inc/lib/javascript/jquery.tinyscrollbar.js

@ -50,6 +50,7 @@ $cidreq = Security::remove_XSS($_GET['cidReq']);
<html>
<head>
<meta charset="<?php echo api_get_system_encoding(); ?>" />
<link rel="stylesheet" type="text/css" href="<?php echo api_get_path(WEB_CSS_PATH); ?>chat.css">
<?php
echo'<title>'.get_lang('Chat').' - '.$mycourseid.' - '.api_get_setting('siteName').'</title>';
@ -74,10 +75,14 @@ if (!empty($groupId)) {
if (empty($open_chat_window)) {
Display::display_header($tool_name, 'Chat');
}
echo '<iframe src="chat_whoisonline.php?cidReq='.$cidreq.'" name="chat_whoisonline" scrolling="auto" style="height:320px; width:20%; border: 0px none; float:left"></iframe>';
echo '<iframe src="chat_chat.php?origin='.$origin.'&target='.$target.'&amp;cidReq='.$cidreq.'" name="chat_chat" scrolling="auto" height="300" style="width:80%; border: 0px none; float:right"></iframe>';
echo '<iframe src="chat_message.php?cidReq='.$cidreq.'" name="chat_message" scrolling="no" height="100" style="width:80%; border: 0px none; float:right"></iframe>';
echo '<div class="page-chat">';
echo '<iframe src="chat_whoisonline.php?cidReq='.$cidreq.'" name="chat_whoisonline" scrolling="no" style="height:500px; width:35%; border: 0px none; float:left"></iframe>';
echo '<iframe src="chat_chat.php?origin='.$origin.'&target='.$target.'&amp;cidReq='.$cidreq.'" name="chat_chat" scrolling="auto" height="380" style="width:65%; border: 0px none; float:right"></iframe>';
echo '<iframe src="chat_message.php?cidReq='.$cidreq.'" name="chat_message" scrolling="no" height="120" style="width:65%; border: 0px none; float:right"></iframe>';
echo '<iframe src="chat_hidden.php?cidReq='.$cidreq.'" name="chat_hidden" height="0" style="border: 0px none"></iframe>';
echo '</div>';
if (empty($open_chat_window)) {
Display::display_footer();

@ -141,19 +141,17 @@ if (!empty($course)) {
$result = Database::query($sql);
}
echo '<div class="content-chat">';
echo '<div id="content-chat">';
foreach ($content as & $this_line) {
echo strip_tags(api_html_entity_decode($this_line), '<div> <br> <span> <b> <i> <img> <font>');
}
echo '</div>';
echo '<div class="delete-chat">';
echo '<a name="bottom" style="text-decoration:none;">&nbsp;</a>';
if ($isMaster || $is_courseCoach) {
$rand = mt_rand(1, 1000);
echo '<div style="margin-left: 5px;">';
echo '<div id="clear-chat">';
echo '<a href="'.api_get_self().'?rand='.$rand.'&reset=1&'.api_get_cidreq().'#bottom" onclick="javascript: if(!confirm(\''.addslashes(api_htmlentities(get_lang('ConfirmReset'), ENT_QUOTES)).'\')) return false;">'.Display::return_icon('delete.gif', get_lang('ClearList')).' '.get_lang('ClearList').'</a>';
echo '</div>';
echo '</div>';
}
} else {
echo '</div>';
@ -161,5 +159,4 @@ if (!empty($course)) {
$message = get_lang('CloseOtherSession');
Display :: display_error_message($message);
}
require 'footer_frame.inc.php';
require 'footer_frame.inc.php';

@ -212,7 +212,7 @@ if (!empty($course) && !empty($_user['user_id'])) {
$fp = fopen($chat_path.$basename_chat.'.log.html', 'a');
// view user picture
$user_image = UserManager::get_user_picture_path_by_id($user_id, 'web', false, true);
$user_photo = $user_image['dir'].$user_image['file'];
$user_photo = $user_image['dir'].'medium_'.$user_image['file'];
$file_photo = '<img class="chat-image" src="'.$user_photo.'"/>';
if ($isMaster) {
@ -241,11 +241,11 @@ if (!empty($course) && !empty($_user['user_id'])) {
<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tr>
<td width="320" valign="middle">
<?php $talkboxsize=(api_get_course_setting('allow_open_chat_window')) ? 'width: 350px; height: 35px' : 'width: 450px; height: 35px'; ?>
<textarea name="message" style=" <?php echo $talkboxsize; ?>" onkeydown="send_message(event);" onclick="javascript: insert_smile(this);"></textarea>
<?php $talkboxsize=(api_get_course_setting('allow_open_chat_window')) ? 'width: 350px; height: 80px' : 'width: 450px; height: 35px'; ?>
<textarea class="message-text" name="message" style=" <?php echo $talkboxsize; ?>" onkeydown="send_message(event);" onclick="javascript: insert_smile(this);"></textarea>
</td>
<td>
<button type="submit" value="<?php echo get_lang('Send'); ?>" class="btn"><?php echo get_lang('Send'); ?></button>
<button type="submit" value="<?php echo get_lang('Send'); ?>" class="btn-enviar"><?php echo get_lang('Send'); ?></button>
</td>
</tr>
<tr>

@ -52,7 +52,7 @@ if (!empty($course)) {
$course_id = api_get_course_int_id();
if (empty($session_id)) {
$query = "SELECT DISTINCT t1.user_id,username,firstname,lastname,picture_uri,t3.status
$query = "SELECT DISTINCT t1.user_id,username,firstname,lastname,picture_uri,email,t3.status
FROM $tbl_user t1, $tbl_chat_connected t2, $tbl_course_user t3
WHERE t2.c_id = $course_id AND
t1.user_id=t2.user_id AND
@ -65,7 +65,7 @@ if (!empty($course)) {
$users = Database::store_result($result);
} else {
// select learners
$query = "SELECT DISTINCT t1.user_id,username,firstname,lastname,picture_uri
$query = "SELECT DISTINCT t1.user_id,username,firstname,lastname,picture_uri,email
FROM $tbl_user t1, $tbl_chat_connected t2, $tbl_session_course_user t3
WHERE
t2.c_id = $course_id AND
@ -78,7 +78,7 @@ if (!empty($course)) {
}
// select session coach
$query = "SELECT DISTINCT t1.user_id,username,firstname,lastname,picture_uri
$query = "SELECT DISTINCT t1.user_id,username,firstname,lastname,picture_uri,email
FROM $tbl_user t1,$tbl_chat_connected t2,$tbl_session t3
WHERE t2.c_id = $course_id AND
t1.user_id=t2.user_id AND t3.id_coach=t2.user_id AND t3.id = '".$session_id."' AND t2.last_connection>'".$date_inter."' $extra_condition ORDER BY username";
@ -88,7 +88,7 @@ if (!empty($course)) {
}
// select session course coach
$query = "SELECT DISTINCT t1.user_id,username,firstname,lastname,picture_uri
$query = "SELECT DISTINCT t1.user_id,username,firstname,lastname,picture_uri,email
FROM $tbl_user t1,$tbl_chat_connected t2,$tbl_session_course_user t3
WHERE
t2.c_id = $course_id AND
@ -107,9 +107,12 @@ if (!empty($course)) {
require 'header_frame.inc.php';
?>
<div class="user-online">
<div id="user-online-scroll" class="user-online">
<div class="title"><?php echo get_lang('Connected'); ?></div>
<ul class="perfil">
<div class="scrollbar"><div class="track"><div class="thumb"><div class="end"></div></div></div></div>
<div class="viewport"><div id="hidden" class="overview">
<ul class="perfil list-group">
<?php
foreach ($users as & $user) {
if (empty($session_id)) {
@ -118,20 +121,22 @@ if (!empty($course)) {
$status = CourseManager::is_course_teacher($user['user_id'], $_SESSION['_course']['id']) ? 1 : 5;
}
$user_image = UserManager::get_user_picture_path_by_id($user['user_id'], 'web', false, true);
$file_url = $user_image['dir'].$user_image['file'];
$file_url = $user_image['dir'].'medium_'.$user_image['file'];
$email_url = $user['email'];
$url_user_profile=api_get_path(WEB_CODE_PATH).'social/profile.php?u='.$user['user_id'].'&';
?>
<li>
<!-- <img src="<?php echo $file_url;?>" border="0" width="22" alt="" /> -->
<?php if ($status == 1) echo Display::return_icon('teachers.gif', get_lang('Teacher'), array('height' => '18')).' '; else echo Display::return_icon('students.gif', get_lang('Student'), array('height' => '18')); ?>
<a <?php if ($status == 1) echo 'class="master"'; ?> name="user_<?php echo $user['user_id']; ?>" href="<?php echo api_get_self(); ?>?<?php echo api_get_cidreq(); ?>&showPic=<?php if ($showPic == $user['user_id']) echo '0'; else echo $user['user_id']; ?>#user_<?php echo $user['user_id']; ?>"><?php echo api_get_person_name($user['firstname'], $user['lastname']); ?></a>
<?php if ($showPic == $user['user_id']) { ?>
<div>
<img src="<?php echo $file_url; ?>" border="0" width="100" alt="" />
<li class="list-group-item">
<img src="<?php echo $file_url;?>" border="0" width="50" alt="" class="user-image-chat" />
<div class="user-name">
<a href="<?php echo $url_user_profile; ?>" target="_blank"><?php echo api_get_person_name($user['firstname'], $user['lastname']); ?></a>
<?php if ($status == 1) echo Display::return_icon('teachers.gif', get_lang('Teacher'), array('height' => '18')).' '; else echo Display::return_icon('students.gif', get_lang('Student'), array('height' => '18')); ?>
</div>
<div class="user-email"><?php echo $email_url; ?></div>
</li>
<?php } } unset($users); ?>
<?php } unset($users); ?>
</ul>
</div>
</div></div></div>
<?php
}
require 'footer_frame.inc.php';

@ -48,6 +48,28 @@ header('Content-Type: text/html; charset='.api_get_system_encoding());
<meta charset="<?php echo api_get_system_encoding(); ?>" />
<title>Chat</title>
<link rel="stylesheet" type="text/css" href="<?php echo api_get_path(WEB_CSS_PATH); ?>chat.css">
<?php echo api_get_js('jquery.min.js'); ?>
<?php echo api_get_js('jquery.tinyscrollbar.js'); ?>
<script type="text/javascript">
$(document).ready(function() {
var posicion = $("#clear-chat").offset();
var margenSuperior = 15;
$(window).scroll(function() {
if ($(window).scrollTop() > posicion.top) {
$("#clear-chat").stop().animate({
marginTop: $(window).scrollTop() - posicion.top + margenSuperior
});
} else {
$("#clear-chat").stop().animate({
marginTop: 0
});
};
});
});
$(document).ready(function(){
$('#user-online-scroll').tinyscrollbar();
});
</script>
<style>
a {
font-size: 12px;
@ -101,4 +123,4 @@ function send_message(evenement) {
}
</script>
</head>
<body <?php echo $bodyXtra; ?> >
<body <?php echo $bodyXtra; ?> >

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

@ -0,0 +1,238 @@
body{
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 13px;
line-height: 18px;
color: #333333;
background-color:#F5F5F5;
margin: 0;
padding: 0;
}
.page-chat{
padding: 10px;
background: #F5F5F5;
}
#clear-chat{
position: absolute;
top:0;
left: 10px;
border: 1px solid #CCC;
background-color: #F2F2F2;
width:100px;
}
#content-chat{
background:#fff;
padding: 30px;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
}
textarea {
width: 52%;
padding: 3%;
height: 100px;
float: left;
border: 0;
background-color: #fff;
font-size: 0.75em;
font-family: Helvetica, arial, sans-serif;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
border: 1px solid #CCCCCC;
color: #555555;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.075) inset;
}
.message-student .chat-image, .message-teacher .chat-image{
width: 80px;
height: auto;
max-height: 80px;
display: inline-block;
vertical-align: top;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
border:2px solid #D8D8D8;
}
.message-student .content-message{
background-color: #ffffff;
color: #555555;
padding: 10px;
margin-bottom: 15px;
border-top: 1px solid #ECECEC;
border-left: 1px solid #ECECEC;
border-right: 1px solid #ECECEC;
border-bottom: 3px solid #ECECEC;
border-radius: 10px;
display: inline-block;
font-size: 13px;
padding: 15px;
vertical-align: top;
width: 310px;
}
.message-teacher .icon-message{
display: inline-block;
margin-left: -6px;
margin-top: 10px;
width: 0;
height: 0;
border-top: 0px solid transparent;
border-bottom: 15px solid transparent;
border-left: 15px solid #DFF0D8;
}
.message-student .icon-message{
display: inline-block;
margin-right: -6px;
margin-top: 10px;
width: 0;
height: 0;
border-top: 0px solid transparent;
border-bottom: 15px solid transparent;
border-right: 15px solid white;
}
.message-teacher .content-message{
background-color: #DFF0D8;
color: #468847;
padding: 10px;
margin-bottom: 15px;
border-top: 1px solid #D6E9C6;
border-left: 1px solid #D6E9C6;
border-right: 1px solid #D6E9C6;
border-bottom: 3px solid #D6E9C6;
border-radius: 10px;
display: inline-block;
font-size: 13px;
padding: 15px;
vertical-align: top;
width: 320px;
}
.message-teacher .message-date{
color: #666;
font-style: italic;
font-size: 10px;
text-align: right;
margin-right: 35px;
margin-top: 10px;
}
.message-student .message-date{
color: #666;
font-style: italic;
font-size: 10px;
text-align: left;
margin-top: 10px;
}
.user-online .perfil{
list-style: none;
padding: 0;
margin:0;
}
.user-online .perfil li{
margin-bottom: 5px;
}
.user-online .perfil li a{
color: #666;
text-decoration: none;
}
.user-online .title{
color: #fff;
padding: 5px;
font-weight: bold;
font-size: 16px;
margin-bottom: 15px;
width: 90%;
background: #2a83bf; /* Old browsers */
background: -moz-linear-gradient(top, #2a83bf 0%, #216da8 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2a83bf), color-stop(100%,#216da8)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #2a83bf 0%,#216da8 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #2a83bf 0%,#216da8 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #2a83bf 0%,#216da8 100%); /* IE10+ */
background: linear-gradient(to bottom, #2a83bf 0%,#216da8 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2a83bf', endColorstr='#216da8',GradientType=0 ); /* IE6-9 */
}
.delete-chat{
background: #F8F8F8;
padding-bottom: 15px;
}
.list-group {
margin-bottom: 20px;
padding-left: 0;
}
.list-group-item {
position: relative;
display: block;
padding: 10px 15px;
margin-bottom: -1px;
background-color: #ffffff;
border: 1px solid #dddddd;
}
li.list-group-item:hover, li.list-group-item:focus {
text-decoration: none;
background-color: #EEEEEE;
}
.user-image-chat{
width: 40px;
height: auto;
max-height: 40px;
display: inline-block;
vertical-align: top;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
border:2px solid #ffffff;
float: left;
margin-right: 5px;
}
#user-online-scroll .viewport { width: 260px; height: 450px; overflow: hidden; position: relative; }
#user-online-scroll .overview { list-style: none; position: relative; left: 0; top: 0; padding: 0; margin: 0; }
#user-online-scroll .scrollbar{ background: transparent url(bg-scrollbar-track-y.png) no-repeat 0 0; position: relative; background-position: 0 0; float: right; width: 15px; }
#user-online-scroll .track { background: transparent url(bg-scrollbar-trackend-y.png) no-repeat 0 100%; height: 100%; width:13px; position: relative; padding: 0 1px; }
#user-online-scroll .thumb { background: transparent url(bg-scrollbar-thumb-y.png) no-repeat 50% 100%; height: 20px; width: 25px; cursor: pointer; overflow: hidden; position: absolute; top: 0; left: -5px; }
#user-online-scroll .thumb .end { background: transparent url(bg-scrollbar-thumb-y.png) no-repeat 50% 0; overflow: hidden; height: 5px; width: 25px; }
#user-online-scroll .disable { display: none; }
.noSelect { user-select: none; -o-user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; }
.btn-enviar {
-moz-box-shadow:inset 0px 1px 0px 0px #c1ed9c;
-webkit-box-shadow:inset 0px 1px 0px 0px #c1ed9c;
box-shadow:inset 0px 1px 0px 0px #c1ed9c;
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #9dce2c), color-stop(1, #8cb82b) );
background:-moz-linear-gradient( center top, #9dce2c 5%, #8cb82b 100% );
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9dce2c', endColorstr='#8cb82b');
background-color:#9dce2c;
-webkit-border-top-left-radius:10px;
-moz-border-radius-topleft:10px;
border-top-left-radius:10px;
-webkit-border-top-right-radius:10px;
-moz-border-radius-topright:10px;
border-top-right-radius:10px;
-webkit-border-bottom-right-radius:10px;
-moz-border-radius-bottomright:10px;
border-bottom-right-radius:10px;
-webkit-border-bottom-left-radius:10px;
-moz-border-radius-bottomleft:10px;
border-bottom-left-radius:10px;
text-indent:0;
border:1px solid #83c41a;
display:inline-block;
color:#ffffff;
font-family:Arial;
font-size:22px;
font-weight:bold;
font-style:normal;
height:80px;
line-height:80px;
width:131px;
text-decoration:none;
text-align:center;
text-shadow:1px 1px 0px #689324;
cursor: pointer;
}
.btn-enviar:hover {
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #8cb82b), color-stop(1, #9dce2c) );
background:-moz-linear-gradient( center top, #8cb82b 5%, #9dce2c 100% );
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#8cb82b', endColorstr='#9dce2c');
background-color:#8cb82b;
}.btn-enviar:active {
position:relative;
top:1px;
}

@ -143,7 +143,7 @@ class CourseHome
if (strpos($tool['name'], 'visio_') !== false) {
$cell_content .= '<a href="javascript: void(0);" onclick="javascript: window.open(\''.$tool['link'].$link_annex.'\',\'window_visio'.$_SESSION['_cid'].'\',config=\'height=\'+730+\', width=\'+1020+\', left=2, top=2, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no\')" target="'.$tool['target'].'"><img src="'.$tool['img'].'" title="'.$tool_name.'" alt="'.$tool_name.'" align="absmiddle" border="0">'.$tool_name.'</a>';
} elseif (strpos($tool['name'], 'chat') !== false && api_get_course_setting('allow_open_chat_window')) {
$cell_content .= '<a href="javascript: void(0);" onclick="javascript: window.open(\''.$tool['link'].$link_annex.'\',\'window_chat'.$_SESSION['_cid'].'\',config=\'height=\'+380+\', width=\'+625+\', left=2, top=2, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no\')" target="'.$tool['target'].'"><img src="'.$tool['img'].'" title="'.$tool_name.'" alt="'.$tool_name.'" align="absmiddle" border="0">'.$tool_name.'</a>';
$cell_content .= '<a href="javascript: void(0);" onclick="javascript: window.open(\''.$tool['link'].$link_annex.'\',\'window_chat'.$_SESSION['_cid'].'\',config=\'height=\'+540+\', width=\'+825+\', left=2, top=2, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no\')" target="'.$tool['target'].'"><img src="'.$tool['img'].'" title="'.$tool_name.'" alt="'.$tool_name.'" align="absmiddle" border="0">'.$tool_name.'</a>';
// don't replace img with display::return_icon because $tool['img'] = api_get_path(WEB_IMG_PATH).$tool['img']
} else {
$cell_content .= '<a href="'.$tool['link'].$link_annex.'" target="'.$tool['target'].'"><img src="'.$tool['img'].'" title="'.$tool_name.'" alt="'.$tool_name.'" align="absmiddle" border="0">'.$tool_name.'</a>';
@ -155,7 +155,7 @@ class CourseHome
if (strpos($tool['name'], 'visio_') !== false) {
$cell_content .= '<a href="javascript: void(0);" onclick="window.open(\''.$tool['link'].$link_annex.'\',\'window_visio'.$_SESSION['_cid'].'\',config=\'height=\'+730+\', width=\'+1020+\', left=2, top=2, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no\')" target="'.$tool['target'].'"><img src="'.str_replace(".gif", "_na.gif", $tool['img']).'" title="'.$tool_name.'" alt="'.$tool_name.'" align="absmiddle" border="0">'.$tool_name.'</a>';
} elseif (strpos($tool['name'], 'chat') !== false && api_get_course_setting('allow_open_chat_window')) {
$cell_content .= '<a href="javascript: void(0);" onclick="javascript: window.open(\''.$tool['link'].$link_annex.'\',\'window_chat'.$_SESSION['_cid'].'\',config=\'height=\'+380+\', width=\'+625+\', left=2, top=2, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no\')" target="'.$tool['target'].'" class="invisible"><img src="'.str_replace(".gif", "_na.gif", $tool['img']).'" title="'.$tool_name.'" alt="'.$tool_name.'" align="absmiddle" border="0">'.$tool_name.'</a>';
$cell_content .= '<a href="javascript: void(0);" onclick="javascript: window.open(\''.$tool['link'].$link_annex.'\',\'window_chat'.$_SESSION['_cid'].'\',config=\'height=\'+540+\', width=\'+825+\', left=2, top=2, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no\')" target="'.$tool['target'].'" class="invisible"><img src="'.str_replace(".gif", "_na.gif", $tool['img']).'" title="'.$tool_name.'" alt="'.$tool_name.'" align="absmiddle" border="0">'.$tool_name.'</a>';
// don't replace img with display::return_icon because $tool['img'] = api_get_path(WEB_IMG_PATH).$tool['img']
} else {
$cell_content .= '<a href="'.$tool['link'].$link_annex.'" target="'.$tool['target'].'" class="invisible">
@ -318,7 +318,7 @@ class CourseHome
if (strpos($tool['name'], 'visio_') !== false) {
$html .= '<a '.$class.' href="javascript: void(0);" onclick="javascript: window.open(\''.htmlspecialchars($tool['link']).(($tool['image'] == 'external.gif' || $tool['image'] == 'external_na.gif') ? '' : $qm_or_amp.api_get_cidreq()).'\',\'window_visio'.$_SESSION['_cid'].'\',config=\'height=\'+730+\', width=\'+1020+\', left=2, top=2, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no\')" target="'.$tool['target'].'">';
} elseif (strpos($tool['name'], 'chat') !== false && api_get_course_setting('allow_open_chat_window')) {
$html .= '<a href="javascript: void(0);" onclick="javascript: window.open(\''.htmlspecialchars($tool['link']).$qm_or_amp.api_get_cidreq().'\',\'window_chat'.$_SESSION['_cid'].'\',config=\'height=\'+380+\', width=\'+625+\', left=2, top=2, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no\')" target="'.$tool['target'].'"'.$class.'>';
$html .= '<a href="javascript: void(0);" onclick="javascript: window.open(\''.htmlspecialchars($tool['link']).$qm_or_amp.api_get_cidreq().'\',\'window_chat'.$_SESSION['_cid'].'\',config=\'height=\'+540+\', width=\'+825+\', left=2, top=2, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no\')" target="'.$tool['target'].'"'.$class.'>';
} else {
$html .= '<a href="'.htmlspecialchars($tool['link']).(($tool['image'] == 'external.gif' || $tool['image'] == 'external_na.gif') ? '' : $qm_or_amp.api_get_cidreq()).'" target="'.$tool['target'].'" '.$class.'>';
}
@ -731,7 +731,7 @@ class CourseHome
$tool_link_params = array('id' => 'tooldesc_'.$tool["id"],
'class' => $class,
'href' => 'javascript: void(0);',
'onclick' => 'javascript: window.open(\''.$tool['link'].'\',\'window_chat'.$_SESSION['_cid'].'\',config=\'height=\'+380+\', width=\'+625+\', left=2, top=2, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no\')',
'onclick' => 'javascript: window.open(\''.$tool['link'].'\',\'window_chat'.$_SESSION['_cid'].'\',config=\'height=\'+540+\', width=\'+825+\', left=2, top=2, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no\')', //Chat Open Windows
'target' => $tool['target']);
} else {
if (count(explode('type=classroom', $tool['link'])) == 2 || count(explode('type=conference', $tool['link'])) == 2) {
@ -1033,7 +1033,7 @@ class CourseHome
$url_current = parse_url($_SERVER['REQUEST_URI']);
if (strpos($navigation_item['link'], 'chat') !== false && api_get_course_setting('allow_open_chat_window', $course_id)) {
$html .= '<a href="javascript: void(0);" onclick="javascript: window.open(\''.$navigation_item['link'].'\',\'window_chat'.$_SESSION['_cid'].'\',config=\'height=\'+380+\', width=\'+625+\', left=2, top=2, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no\')" target="'.$navigation_item['target'].'"';
$html .= '<a href="javascript: void(0);" onclick="javascript: window.open(\''.$navigation_item['link'].'\',\'window_chat'.$_SESSION['_cid'].'\',config=\'height=\'+540+\', width=\'+825+\', left=2, top=2, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no\')" target="'.$navigation_item['target'].'"';
} else {
$html .= '<a href="'.$navigation_item['link'].'" target="_top" ';
}
@ -1075,7 +1075,7 @@ class CourseHome
foreach ($navigation_items as $key => $navigation_item) {
if (strpos($navigation_item['link'], 'chat') !== false && api_get_course_setting('allow_open_chat_window')) {
$html .= '<a href="javascript: void(0);" onclick="javascript: window.open(\''.$navigation_item['link'].'\',\'window_chat'.$_SESSION['_cid'].'\',config=\'height=\'+380+\', width=\'+625+\', left=2, top=2, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no\')" target="'.$navigation_item['target'].'"';
$html .= '<a href="javascript: void(0);" onclick="javascript: window.open(\''.$navigation_item['link'].'\',\'window_chat'.$_SESSION['_cid'].'\',config=\'height=\'+540+\', width=\'+825+\', left=2, top=2, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no\')" target="'.$navigation_item['target'].'"';
} else {
$html .= '<a href="'.$navigation_item['link'].'"';
}

@ -0,0 +1,243 @@
;(function (factory)
{
if (typeof define === 'function' && define.amd)
{
define(['jquery'], factory);
}
else if (typeof exports === 'object')
{
factory(require('jquery'));
}
else
{
factory(jQuery);
}
}
(function ($)
{
"use strict";
var pluginName = "tinyscrollbar"
, defaults =
{
axis : 'y' // Vertical or horizontal scrollbar? ( x || y ).
, wheel : true // Enable or disable the mousewheel;
, wheelSpeed : 40 // How many pixels must the mouswheel scroll at a time.
, wheelLock : true // Lock default scrolling window when there is no more content.
, scrollInvert : false // Enable invert style scrolling
, trackSize : false // Set the size of the scrollbar to auto or a fixed number.
, thumbSize : false // Set the size of the thumb to auto or a fixed number.
}
;
function Plugin($container, options)
{
this.options = $.extend({}, defaults, options);
this._defaults = defaults;
this._name = pluginName;
var self = this
, $viewport = $container.find(".viewport")
, $overview = $container.find(".overview")
, $scrollbar = $container.find(".scrollbar")
, $track = $scrollbar.find(".track")
, $thumb = $scrollbar.find(".thumb")
, mousePosition = 0
, isHorizontal = this.options.axis === 'x'
, hasTouchEvents = ("ontouchstart" in document.documentElement)
, wheelEvent = ("onwheel" in document || document.documentMode >= 9) ? "wheel" :
(document.onmousewheel !== undefined ? "mousewheel" : "DOMMouseScroll")
, sizeLabel = isHorizontal ? "width" : "height"
, posiLabel = isHorizontal ? "left" : "top"
;
this.contentPosition = 0;
this.viewportSize = 0;
this.contentSize = 0;
this.contentRatio = 0;
this.trackSize = 0;
this.trackRatio = 0;
this.thumbSize = 0;
this.thumbPosition = 0;
function initialize()
{
self.update();
setEvents();
return self;
}
this.update = function(scrollTo)
{
var sizeLabelCap = sizeLabel.charAt(0).toUpperCase() + sizeLabel.slice(1).toLowerCase();
this.viewportSize = $viewport[0]['offset'+ sizeLabelCap];
this.contentSize = $overview[0]['scroll'+ sizeLabelCap];
this.contentRatio = this.viewportSize / this.contentSize;
this.trackSize = this.options.trackSize || this.viewportSize;
this.thumbSize = Math.min(this.trackSize, Math.max(0, (this.options.thumbSize || (this.trackSize * this.contentRatio))));
this.trackRatio = this.options.thumbSize ? (this.contentSize - this.viewportSize) / (this.trackSize - this.thumbSize) : (this.contentSize / this.trackSize);
$scrollbar.toggleClass("disable", this.contentRatio >= 1);
switch (scrollTo)
{
case "bottom":
this.contentPosition = this.contentSize - this.viewportSize;
break;
case "relative":
this.contentPosition = Math.min(this.contentSize - this.viewportSize, Math.max(0, this.contentPosition));
break;
default:
this.contentPosition = parseInt(scrollTo, 10) || 0;
}
setSize();
return self;
};
function setSize()
{
$thumb.css(posiLabel, self.contentPosition / self.trackRatio);
$overview.css(posiLabel, -self.contentPosition);
$scrollbar.css(sizeLabel, self.trackSize);
$track.css(sizeLabel, self.trackSize);
$thumb.css(sizeLabel, self.thumbSize);
}
function setEvents()
{
if(hasTouchEvents)
{
$viewport[0].ontouchstart = function(event)
{
if(1 === event.touches.length)
{
event.stopPropagation();
start(event.touches[0]);
}
};
}
else
{
$thumb.bind("mousedown", start);
$track.bind("mousedown", drag);
}
$(window).resize(function()
{
self.update("relative");
});
if(self.options.wheel && window.addEventListener)
{
$container[0].addEventListener(wheelEvent, wheel, false );
}
else if(self.options.wheel)
{
$container[0].onmousewheel = wheel;
}
}
function start(event)
{
$("body").addClass("noSelect");
mousePosition = isHorizontal ? event.pageX : event.pageY;
self.thumbPosition = parseInt($thumb.css(posiLabel), 10) || 0;
if(hasTouchEvents)
{
document.ontouchmove = function(event)
{
event.preventDefault();
drag(event.touches[0]);
};
document.ontouchend = end;
}
else
{
$(document).bind("mousemove", drag);
$(document).bind("mouseup", end);
$thumb.bind("mouseup", end);
}
}
function wheel(event)
{
if(self.contentRatio < 1)
{
var evntObj = event || window.event
, deltaDir = "delta" + self.options.axis.toUpperCase()
, wheelSpeedDelta = -(evntObj[deltaDir] || evntObj.detail || (-1 / 3 * evntObj.wheelDelta)) / 40
;
self.contentPosition -= wheelSpeedDelta * self.options.wheelSpeed;
self.contentPosition = Math.min((self.contentSize - self.viewportSize), Math.max(0, self.contentPosition));
$container.trigger("move");
$thumb.css(posiLabel, self.contentPosition / self.trackRatio);
$overview.css(posiLabel, -self.contentPosition);
if(self.options.wheelLock || (self.contentPosition !== (self.contentSize - self.viewportSize) && self.contentPosition !== 0))
{
evntObj = $.event.fix(evntObj);
evntObj.preventDefault();
}
}
}
function drag(event)
{
if(self.contentRatio < 1)
{
var mousePositionNew = isHorizontal ? event.pageX : event.pageY
, thumbPositionDelta = mousePositionNew - mousePosition
;
if(self.options.scrollInvert && hasTouchEvents)
{
thumbPositionDelta = mousePosition - mousePositionNew;
}
var thumbPositionNew = Math.min((self.trackSize - self.thumbSize), Math.max(0, self.thumbPosition + thumbPositionDelta));
self.contentPosition = thumbPositionNew * self.trackRatio;
$container.trigger("move");
$thumb.css(posiLabel, thumbPositionNew);
$overview.css(posiLabel, -self.contentPosition);
}
}
function end()
{
$("body").removeClass("noSelect");
$(document).unbind("mousemove", drag);
$(document).unbind("mouseup", end);
$thumb.unbind("mouseup", end);
document.ontouchmove = document.ontouchend = null;
}
return initialize();
}
$.fn[pluginName] = function(options)
{
return this.each(function()
{
if(!$.data(this, "plugin_" + pluginName))
{
$.data(this, "plugin_" + pluginName, new Plugin($(this), options));
}
});
};
}));
Loading…
Cancel
Save