Exemplo n.º 1
0
 /**
  * Shows the right menu of the Social Network tool
  *
  * @param string $show highlight link possible values:
  * group_add,
  * home,
  * messages,
  * messages_inbox,
  * messages_compose ,
  * messages_outbox,
  * invitations,
  * shared_profile,
  * friends,
  * groups search
  * @param int $group_id group id
  * @param int $user_id user id
  * @param bool $show_full_profile show profile or not (show or hide the user image/information)
  * @param bool $show_delete_account_button
  *
  */
 public static function show_social_menu($show = '', $group_id = 0, $user_id = 0, $show_full_profile = false, $show_delete_account_button = false)
 {
     if (empty($user_id)) {
         $user_id = api_get_user_id();
     }
     $usergroup = new UserGroup();
     $user_info = api_get_user_info($user_id, true);
     $current_user_id = api_get_user_id();
     $current_user_info = api_get_user_info($current_user_id, true);
     if ($current_user_id == $user_id) {
         $user_friend_relation = null;
     } else {
         $user_friend_relation = SocialManager::get_relation_between_contacts($current_user_id, $user_id);
     }
     $show_groups = array('groups', 'group_messages', 'messages_list', 'group_add', 'mygroups', 'group_edit', 'member_list', 'invite_friends', 'waiting_list', 'browse_groups');
     // get count unread message and total invitations
     $count_unread_message = MessageManager::get_number_of_messages(true);
     $count_unread_message = !empty($count_unread_message) ? Display::badge($count_unread_message) : null;
     $number_of_new_messages_of_friend = SocialManager::get_message_number_invitation_by_user_id(api_get_user_id());
     $group_pending_invitations = $usergroup->get_groups_by_user(api_get_user_id(), GROUP_USER_PERMISSION_PENDING_INVITATION, false);
     $group_pending_invitations = count($group_pending_invitations);
     $total_invitations = $number_of_new_messages_of_friend + $group_pending_invitations;
     $total_invitations = !empty($total_invitations) ? Display::badge($total_invitations) : '';
     $filesIcon = Display::return_icon('sn-files.png', get_lang('MyFiles'), '', ICON_SIZE_SMALL);
     $friendsIcon = Display::return_icon('sn-friends.png', get_lang('Friends'), '', ICON_SIZE_SMALL);
     $groupsIcon = Display::return_icon('sn-groups.png', get_lang('SocialGroups'), '', ICON_SIZE_SMALL);
     $homeIcon = Display::return_icon('sn-home.png', get_lang('Home'), '', ICON_SIZE_SMALL);
     $invitationsIcon = Display::return_icon('sn-invitations.png', get_lang('Invitations'), '', ICON_SIZE_SMALL);
     $messagesIcon = Display::return_icon('sn-message.png', get_lang('Messages'), '', ICON_SIZE_SMALL);
     $sharedProfileIcon = Display::return_icon('sn-profile.png', get_lang('ViewMySharedProfile'));
     $searchIcon = Display::return_icon('sn-search.png', get_lang('Search'), '', ICON_SIZE_SMALL);
     $html = '';
     $active = null;
     if (!in_array($show, array('shared_profile', 'groups', 'group_edit', 'member_list', 'waiting_list', 'invite_friends'))) {
         $links = '<ul class="nav nav-pills nav-stacked">';
         $active = $show == 'home' ? 'active' : null;
         $links .= '
             <li class="home-icon ' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'social/home.php">
                     ' . $homeIcon . ' ' . get_lang('Home') . '
                 </a>
             </li>';
         $active = $show == 'messages' ? 'active' : null;
         $links .= '
             <li class="messages-icon ' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'messages/inbox.php?f=social">
                     ' . $messagesIcon . ' ' . get_lang('Messages') . $count_unread_message . '
                 </a>
             </li>';
         //Invitations
         $active = $show == 'invitations' ? 'active' : null;
         $links .= '
             <li class="invitations-icon ' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'social/invitations.php">
                     ' . $invitationsIcon . ' ' . get_lang('Invitations') . $total_invitations . '
                 </a>
             </li>';
         //Shared profile and groups
         $active = $show == 'shared_profile' ? 'active' : null;
         $links .= '
             <li class="shared-profile-icon' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'social/profile.php">
                     ' . $sharedProfileIcon . ' ' . get_lang('ViewMySharedProfile') . '
                 </a>
             </li>';
         $active = $show == 'friends' ? 'active' : null;
         $links .= '
             <li class="friends-icon ' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'social/friends.php">
                     ' . $friendsIcon . ' ' . get_lang('Friends') . '
                 </a>
             </li>';
         $active = $show == 'browse_groups' ? 'active' : null;
         $links .= '
             <li class="browse-groups-icon ' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'social/groups.php">
                     ' . $groupsIcon . ' ' . get_lang('SocialGroups') . '
                 </a>
             </li>';
         //Search users
         $active = $show == 'search' ? 'active' : null;
         $links .= '
             <li class="search-icon ' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'social/search.php">
                     ' . $searchIcon . ' ' . get_lang('Search') . '
                 </a>
             </li>';
         //My files
         $active = $show == 'myfiles' ? 'active' : null;
         $myFiles = '
             <li class="myfiles-icon ' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'social/myfiles.php">
                     ' . $filesIcon . ' ' . get_lang('MyFiles') . '
                 </a>
             </li>';
         if (api_get_setting('platform.allow_my_files') === 'false') {
             $myFiles = '';
         }
         $links .= $myFiles;
         $links .= '</ul>';
         $html .= Display::panelCollapse(get_lang('SocialNetwork'), $links, 'social-network-menu', null, 'sn-sidebar', 'sn-sidebar-collapse');
     }
     if (in_array($show, $show_groups) && !empty($group_id)) {
         $html .= $usergroup->show_group_column_information($group_id, api_get_user_id(), $show);
     }
     if ($show == 'shared_profile') {
         $links = '<ul class="nav nav-pills nav-stacked">';
         // My own profile
         if ($show_full_profile && $user_id == intval(api_get_user_id())) {
             $links .= '
                 <li class="home-icon ' . $active . '">
                     <a href="' . api_get_path(WEB_CODE_PATH) . 'social/home.php">
                         ' . $homeIcon . ' ' . get_lang('Home') . '
                     </a>
                 </li>
                 <li class="messages-icon ' . $active . '">
                     <a href="' . api_get_path(WEB_CODE_PATH) . 'messages/inbox.php?f=social">
                         ' . $messagesIcon . ' ' . get_lang('Messages') . $count_unread_message . '
                     </a>
                 </li>';
             $active = $show == 'invitations' ? 'active' : null;
             $links .= '
                 <li class="invitations-icon' . $active . '">
                     <a href="' . api_get_path(WEB_CODE_PATH) . 'social/invitations.php">
                         ' . $invitationsIcon . ' ' . get_lang('Invitations') . $total_invitations . '
                     </a>
                 </li>';
             $links .= '
                 <li class="shared-profile-icon active">
                     <a href="' . api_get_path(WEB_CODE_PATH) . 'social/profile.php">
                         ' . $sharedProfileIcon . ' ' . get_lang('ViewMySharedProfile') . '
                     </a>
                 </li>
                 <li class="friends-icon">
                     <a href="' . api_get_path(WEB_CODE_PATH) . 'social/friends.php">
                         ' . $friendsIcon . ' ' . get_lang('Friends') . '
                     </a>
                 </li>
                 <li class="browse-groups-icon">
                     <a href="' . api_get_path(WEB_CODE_PATH) . 'social/groups.php">
                         ' . $groupsIcon . ' ' . get_lang('SocialGroups') . '
                     </a>
                 </li>';
             $active = $show == 'search' ? 'active' : null;
             $links .= '
                 <li class="search-icon ' . $active . '">
                     <a href="' . api_get_path(WEB_CODE_PATH) . 'social/search.php">
                         ' . $searchIcon . ' ' . get_lang('Search') . '
                     </a>
                 </li>';
             $active = $show == 'myfiles' ? 'active' : null;
             $myFiles = '
                 <li class="myfiles-icon ' . $active . '">
                  <a href="' . api_get_path(WEB_CODE_PATH) . 'social/myfiles.php">
                         ' . $filesIcon . ' ' . get_lang('MyFiles') . '
                     </a>
                 </li>';
             if (api_get_setting('platform.allow_my_files') === 'false') {
                 $myFiles = '';
             }
             $links .= $myFiles;
         }
         // My friend profile.
         if ($user_id != api_get_user_id()) {
             $sendMessageText = get_lang('SendMessage');
             $sendMessageIcon = Display::return_icon('new-message.png', $sendMessageText);
             $sendMesssageUrl = api_get_path(WEB_AJAX_PATH) . 'user_manager.ajax.php?' . http_build_query(['a' => 'get_user_popup', 'user_id' => $user_id]);
             $links .= '<li>';
             $links .= Display::url("{$sendMessageIcon} {$sendMessageText}", $sendMesssageUrl, ['class' => 'ajax', 'title' => $sendMessageText, 'data-title' => $sendMessageText]);
             $links .= '</li>';
         }
         // Check if I already sent an invitation message
         $invitation_sent_list = SocialManager::get_list_invitation_sent_by_user_id(api_get_user_id());
         if (isset($invitation_sent_list[$user_id]) && is_array($invitation_sent_list[$user_id]) && count($invitation_sent_list[$user_id]) > 0) {
             $links .= '<li><a href="' . api_get_path(WEB_CODE_PATH) . 'social/invitations.php">' . Display::return_icon('invitation.png', get_lang('YouAlreadySentAnInvitation')) . '&nbsp;&nbsp;' . get_lang('YouAlreadySentAnInvitation') . '</a></li>';
         } else {
             if (!$show_full_profile) {
                 $links .= '<li><a class="btn-to-send-invitation" href="#" data-send-to="' . $user_id . '" title="' . get_lang('SendInvitation') . '">' . Display::return_icon('invitation.png', get_lang('SocialInvitationToFriends')) . '&nbsp;' . get_lang('SendInvitation') . '</a></li>';
             }
         }
         $links .= '</ul>';
         $html .= Display::panelCollapse(get_lang('SocialNetwork'), $links, 'social-network-menu', null, 'sn-sidebar', 'sn-sidebar-collapse');
         if ($show_full_profile && $user_id == intval(api_get_user_id())) {
             $personal_course_list = UserManager::get_personal_session_course_list($user_id);
             $course_list_code = array();
             $i = 1;
             if (is_array($personal_course_list)) {
                 foreach ($personal_course_list as $my_course) {
                     if ($i <= 10) {
                         $course_list_code[] = array('code' => $my_course['code']);
                     } else {
                         break;
                     }
                     $i++;
                 }
                 // To avoid repeated courses
                 $course_list_code = ArrayClass::array_unique_dimensional($course_list_code);
             }
             // Announcements
             $my_announcement_by_user_id = intval($user_id);
             $announcements = array();
             foreach ($course_list_code as $course) {
                 $course_info = api_get_course_info($course['code']);
                 if (!empty($course_info)) {
                     $content = AnnouncementManager::get_all_annoucement_by_user_course($course_info['code'], $my_announcement_by_user_id);
                     if (!empty($content)) {
                         $url = Display::url(Display::return_icon('announcement.png', get_lang('Announcements')) . $course_info['name'] . ' (' . $content['count'] . ')', api_get_path(WEB_CODE_PATH) . 'announcements/announcements.php?cidReq=' . $course['code']);
                         $announcements[] = Display::tag('li', $url);
                     }
                 }
             }
             if (!empty($announcements)) {
                 $html .= '<div class="social_menu_items">';
                 $html .= '<ul>';
                 foreach ($announcements as $announcement) {
                     $html .= $announcement;
                 }
                 $html .= '</ul>';
                 $html .= '</div>';
             }
         }
     }
     if ($show_delete_account_button) {
         $html .= '<div class="sidebar-nav"><ul><li>';
         $url = api_get_path(WEB_CODE_PATH) . 'auth/unsubscribe_account.php';
         $html .= Display::url(Display::return_icon('delete.png', get_lang('Unsubscribe'), array(), ICON_SIZE_TINY) . get_lang('Unsubscribe'), $url);
         $html .= '</li></ul></div>';
     }
     $html .= '';
     return $html;
 }
                    <div class="topics">' . $subTitle2 . '</div>
                    <h4 class="title-topics">' . Display::returnFontAwesomeIcon('book') . $thematic_info2['title'] . '</h4>
                    <p class="date">' . Display::returnFontAwesomeIcon('calendar-o') . $thematic_advance_info2['start_date'] . '</p>
                    <div class="views">' . Display::returnFontAwesomeIcon('file-text-o') . strip_tags($thematic_advance_info2['content']) . '</div>
                    <p class="time">' . Display::returnFontAwesomeIcon('clock-o') . get_lang('DurationInHours') . ' : ' . $thematic_advance_info2['duration'] . ' - <a href="' . $thematicUrl . '">' . get_lang('SeeDetail') . '</a></p>
                    </div>
                </div>';
        }
        $thematicPanel = '<div class="row">';
        $thematicPanel .= '<div class="col-md-2">' . $infoUser . '</div>';
        $thematicPanel .= '<div class="col-md-10"><div class="row">' . $thematicItemOne . $thematicItemTwo . '</div></div>';
        $thematicPanel .= '</div>';
        $thematicPanel .= '<div class="separate">
                        <a href="' . $thematicUrl . '" class="btn btn-default btn-block">' . get_lang('ShowFullCourseAdvance') . '</a>
                    </div>';
        $thematicProgress = Display::panelCollapse($titleThematic, $thematicPanel, 'thematic', null, 'accordion-thematic', 'collapse-thematic', false);
    }
}
$introduction_section .= '<div class="row">';
if (!empty($thematic_advance_info)) {
    $introduction_section .= '<div class="col-md-12">';
    $introduction_section .= $thematic_description_html;
    $introduction_section .= $thematicProgress;
    $introduction_section .= '</div>';
}
$editIconButton = '';
if (api_is_allowed_to_edit() && empty($session_id)) {
    $editIconButton = Display::url('<em class="fa fa-wrench"></em> ', api_get_path(WEB_CODE_PATH) . 'course_info/tools.php?' . api_get_cidreq(), ['class' => 'btn btn-default', 'title' => get_lang('CustomizeIcons')]);
}
$toolbar = '';
$textIntro = '';
Exemplo n.º 3
0
                         $extra_field_title = ucfirst($extraFieldInfo['display_text']);
                         if ($extra_field_title == 'Skype') {
                             $data = '<a href="skype:' . $data . '?chat">' . get_lang('Chat') . '</a>';
                             $extra_information_value .= '<li class="list-group-item">' . Display::return_icon('skype.png', $extraFieldInfo['display_text'], null, ICON_SIZE_TINY, false) . ' ' . $data . '</li>';
                         } else {
                             $extra_information_value .= '<dt>' . ucfirst($extraFieldInfo['display_text']) . ':</dt><dd>' . $data . '</dd>';
                         }
                     }
                     break;
             }
         }
     }
     $extra_information_value .= '</ul>';
     // if there are information to show
     if (!empty($extra_information_value)) {
         $extra_information .= Display::panelCollapse(get_lang('ExtraInformation'), $extra_information_value, 'sn-extra-information', null, 'sn-extra-accordion', 'sn-extra-collapse');
     }
 }
 // If there are information to show Block Extra Information
 if (!empty($extra_information_value)) {
     $social_extra_info_block = $extra_information;
 }
 // MY GROUPS
 $results = $userGroup->get_groups_by_user($my_user_id, 0);
 $grid_my_groups = array();
 $max_numbers_of_group = 4;
 if (is_array($results) && count($results) > 0) {
     $i = 1;
     foreach ($results as $result) {
         if ($i > $max_numbers_of_group) {
             break;
Exemplo n.º 4
0
     $remind_highlight = 'no_remind_highlight';
 }
 $exercise_actions = '';
 $is_remind_on = false;
 $attributes = array('id' => 'remind_list[' . $questionId . ']');
 if (in_array($questionId, $remind_list)) {
     $is_remind_on = true;
     $attributes['checked'] = 1;
     $remind_question = true;
     $remind_highlight = ' remind_highlight ';
 }
 // Showing the exercise description
 if (!empty($objExercise->description)) {
     if ($objExercise->type == ONE_PER_PAGE || $objExercise->type != ONE_PER_PAGE && $i == 1) {
         //echo Display::panel($objExercise->description, get_lang('ExerciseDescriptionLabel'));
         echo Display::panelCollapse('<span>' . get_lang('ExerciseDescriptionLabel') . '</span>', $objExercise->description, 'exercise-description', [], 'description', 'exercise-collapse', false, true);
     }
 }
 echo '<div id="question_div_' . $questionId . '" class="main-question ' . $remind_highlight . '" >';
 // Shows the question and its answers
 ExerciseLib::showQuestion($questionId, false, $origin, $i, true, false, $user_choice, false);
 // Button save and continue
 switch ($objExercise->type) {
     case ONE_PER_PAGE:
         $exercise_actions .= $objExercise->show_button($questionId, $current_question);
         break;
     case ALL_ON_ONE_PAGE:
         $button = '<a href="javascript://" class="btn btn-info" onclick="save_now(\'' . $questionId . '\'); ">' . get_lang('SaveForNow') . '</a>';
         $button .= '<span id="save_for_now_' . $questionId . '"></span>&nbsp;';
         $exercise_actions .= Display::div($button, array('class' => 'exercise_save_now_button'));
         break;
Exemplo n.º 5
0
 /**
  * @param string string $update_audio
  * @param bool $drop_element_here
  * @return string
  */
 public function return_new_tree($update_audio = 'false', $drop_element_here = false)
 {
     $return = '';
     $is_allowed_to_edit = api_is_allowed_to_edit(null, true);
     $course_id = api_get_course_int_id();
     $tbl_lp_item = Database::get_course_table(TABLE_LP_ITEM);
     $sql = "SELECT * FROM {$tbl_lp_item}\n                WHERE c_id = {$course_id} AND lp_id = " . $this->lp_id;
     $result = Database::query($sql);
     $arrLP = array();
     while ($row = Database::fetch_array($result)) {
         $arrLP[] = array('id' => $row['id'], 'item_type' => $row['item_type'], 'title' => Security::remove_XSS($row['title']), 'path' => $row['path'], 'description' => Security::remove_XSS($row['description']), 'parent_item_id' => $row['parent_item_id'], 'previous_item_id' => $row['previous_item_id'], 'next_item_id' => $row['next_item_id'], 'max_score' => $row['max_score'], 'min_score' => $row['min_score'], 'mastery_score' => $row['mastery_score'], 'prerequisite' => $row['prerequisite'], 'display_order' => $row['display_order'], 'audio' => $row['audio'], 'prerequisite_max_score' => $row['prerequisite_max_score'], 'prerequisite_min_score' => $row['prerequisite_min_score']);
     }
     $this->tree_array($arrLP);
     $arrLP = isset($this->arrMenu) ? $this->arrMenu : null;
     unset($this->arrMenu);
     $default_data = null;
     $default_content = null;
     $elements = array();
     $return_audio = null;
     for ($i = 0; $i < count($arrLP); $i++) {
         $title = $arrLP[$i]['title'];
         $title_cut = cut($arrLP[$i]['title'], 25);
         //Link for the documents
         if ($arrLP[$i]['item_type'] == 'document') {
             $url = api_get_self() . '?' . api_get_cidreq() . '&action=view_item&mode=preview_document&id=' . $arrLP[$i]['id'] . '&lp_id=' . $this->lp_id;
             $title_cut = Display::url($title_cut, $url, array('class' => 'ajax', 'data-title' => $title_cut));
         }
         if ($i % 2 == 0) {
             $oddClass = 'row_odd';
         } else {
             $oddClass = 'row_even';
         }
         $return_audio .= '<tr id ="lp_item_' . $arrLP[$i]['id'] . '" class="' . $oddClass . '">';
         $icon_name = str_replace(' ', '', $arrLP[$i]['item_type']);
         $icon = '';
         if (file_exists('../img/lp_' . $icon_name . '.png')) {
             $icon = '<img src="../img/lp_' . $icon_name . '.png" />';
         } else {
             if (file_exists('../img/lp_' . $icon_name . '.gif')) {
                 $icon = '<img src="../img/lp_' . $icon_name . '.gif"  />';
             } else {
                 $icon = '<img src="../img/folder_document.gif" />';
             }
         }
         // The audio column.
         $return_audio .= '<td align="left" style="padding-left:10px;">';
         $audio = '';
         if (!$update_audio || $update_audio != 'true') {
             if (!empty($arrLP[$i]['audio'])) {
                 /*$audio .= '<span id="container'.$i.'"><a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.</span>';
                   $audio .= '<script type="text/javascript" src="../inc/lib/mediaplayer/swfobject.js"></script>';
                   $audio .= '<script type="text/javascript">
                                   var s1 = new SWFObject("../inc/lib/mediaplayer/player.swf","ply","250","20","9","#FFFFFF");
                                   s1.addParam("allowscriptaccess","always");
                                   s1.addParam("flashvars","file=../../courses/' . $_course['path'] . '/document/audio/' . $arrLP[$i]['audio'] . '");
                                   s1.write("container' . $i . '");
                               </script>';*/
             } else {
                 $audio .= '';
             }
         } else {
             $types = self::getChapterTypes();
             if (!in_array($arrLP[$i]['item_type'], $types)) {
                 $audio .= '<input type="file" name="mp3file' . $arrLP[$i]['id'] . '" id="mp3file" />';
                 if (!empty($arrLP[$i]['audio'])) {
                     $audio .= '<br />' . Security::remove_XSS($arrLP[$i]['audio']) . '<br />
                     <input type="checkbox" name="removemp3' . $arrLP[$i]['id'] . '" id="checkbox' . $arrLP[$i]['id'] . '" />' . get_lang('RemoveAudio');
                 }
             }
         }
         $return_audio .= Display::span($icon . ' ' . $title) . Display::tag('td', $audio, array('style' => ''));
         $return_audio .= '</td>';
         $move_icon = '';
         $move_item_icon = '';
         $edit_icon = '';
         $delete_icon = '';
         $audio_icon = '';
         $prerequisities_icon = '';
         if ($is_allowed_to_edit) {
             if (!$update_audio || $update_audio != 'true') {
                 $move_icon .= '<a class="moved" href="#">';
                 $move_icon .= Display::return_icon('move_everywhere.png', get_lang('Move'), array(), ICON_SIZE_TINY);
                 $move_icon .= '</a>';
             }
             // No edit for this item types
             if (!in_array($arrLP[$i]['item_type'], array('sco', 'asset'))) {
                 if (!in_array($arrLP[$i]['item_type'], array('dokeos_chapter', 'dokeos_module'))) {
                     $edit_icon .= '<a href="' . api_get_self() . '?' . api_get_cidreq() . '&action=edit_item&view=build&id=' . $arrLP[$i]['id'] . '&lp_id=' . $this->lp_id . '&path_item=' . $arrLP[$i]['path'] . '">';
                     $edit_icon .= Display::return_icon('edit.png', get_lang('LearnpathEditModule'), array(), ICON_SIZE_TINY);
                     $edit_icon .= '</a>';
                 } else {
                     $edit_icon .= '<a href="' . api_get_self() . '?' . api_get_cidreq() . '&action=edit_item&id=' . $arrLP[$i]['id'] . '&lp_id=' . $this->lp_id . '&path_item=' . $arrLP[$i]['path'] . '">';
                     $edit_icon .= Display::return_icon('edit.png', get_lang('LearnpathEditModule'), array(), ICON_SIZE_TINY);
                     $edit_icon .= '</a>';
                 }
             }
             $delete_icon .= ' <a href="' . api_get_self() . '?' . api_get_cidreq() . '&action=delete_item&id=' . $arrLP[$i]['id'] . '&lp_id=' . $this->lp_id . '" onClick="return confirmation(\'' . addslashes($title) . '\');">';
             $delete_icon .= Display::return_icon('delete.png', get_lang('LearnpathDeleteModule'), array(), ICON_SIZE_TINY);
             $delete_icon .= '</a>';
             $url = api_get_self() . '?' . api_get_cidreq() . '&view=build&id=' . $arrLP[$i]['id'] . '&lp_id=' . $this->lp_id;
             if (!in_array($arrLP[$i]['item_type'], array('dokeos_chapter', 'dokeos_module', 'dir'))) {
                 $prerequisities_icon = Display::url(Display::return_icon('accept.png', get_lang('LearnpathPrerequisites'), array(), ICON_SIZE_TINY), $url . '&action=edit_item_prereq');
                 $move_item_icon = Display::url(Display::return_icon('move.png', get_lang('Move'), array(), ICON_SIZE_TINY), $url . '&action=move_item');
                 $audio_icon = Display::url(Display::return_icon('audio.png', get_lang('UplUpload'), array(), ICON_SIZE_TINY), $url . '&action=add_audio');
             }
         }
         if ($update_audio != 'true') {
             $row = $move_icon . ' ' . $icon . Display::span($title_cut) . Display::span($audio . $edit_icon . $prerequisities_icon . $move_item_icon . $audio_icon . $delete_icon, array('class' => 'button_actions'));
         } else {
             $row = Display::span($title . $icon) . Display::span($audio, array('class' => 'button_actions'));
         }
         $parent_id = $arrLP[$i]['parent_item_id'];
         $default_data[$arrLP[$i]['id']] = $row;
         $default_content[$arrLP[$i]['id']] = $arrLP[$i];
         if (empty($parent_id)) {
             $elements[$arrLP[$i]['id']]['data'] = $row;
             $elements[$arrLP[$i]['id']]['type'] = $arrLP[$i]['item_type'];
         } else {
             $parent_arrays = array();
             if ($arrLP[$i]['depth'] > 1) {
                 //Getting list of parents
                 for ($j = 0; $j < $arrLP[$i]['depth']; $j++) {
                     foreach ($arrLP as $item) {
                         if ($item['id'] == $parent_id) {
                             if ($item['parent_item_id'] == 0) {
                                 $parent_id = $item['id'];
                                 break;
                             } else {
                                 $parent_id = $item['parent_item_id'];
                                 if (empty($parent_arrays)) {
                                     $parent_arrays[] = intval($item['id']);
                                 }
                                 $parent_arrays[] = $parent_id;
                                 break;
                             }
                         }
                     }
                 }
             }
             if (!empty($parent_arrays)) {
                 $parent_arrays = array_reverse($parent_arrays);
                 $val = '$elements';
                 $x = 0;
                 foreach ($parent_arrays as $item) {
                     if ($x != count($parent_arrays) - 1) {
                         $val .= '["' . $item . '"]["children"]';
                     } else {
                         $val .= '["' . $item . '"]["children"]';
                     }
                     $x++;
                 }
                 $val .= "";
                 $code_str = $val . "[" . $arrLP[$i]['id'] . "][\"load_data\"] = '" . $arrLP[$i]['id'] . "' ; ";
                 eval($code_str);
             } else {
                 $elements[$parent_id]['children'][$arrLP[$i]['id']]['data'] = $row;
                 $elements[$parent_id]['children'][$arrLP[$i]['id']]['type'] = $arrLP[$i]['item_type'];
             }
         }
     }
     $list = '<ul id="lp_item_list">';
     $tree = self::print_recursive($elements, $default_data, $default_content);
     if (!empty($tree)) {
         $list .= $tree;
     } else {
         if ($drop_element_here) {
             $list .= Display::return_message(get_lang("DragAndDropAnElementHere"));
         }
     }
     $list .= '</ul>';
     //$return .= Display::panel($list, $this->name);
     $return .= Display::panelCollapse($this->name, $list, 'scorm-list', null, 'scorm-list-accordion', 'scorm-list-collapse');
     if ($update_audio == 'true') {
         $return = $return_audio;
     }
     return $return;
 }
Exemplo n.º 6
0
 /**
  * @param string string $update_audio
  * @param bool $drop_element_here
  * @return string
  */
 public function return_new_tree($update_audio = 'false', $drop_element_here = false)
 {
     $return = '';
     $is_allowed_to_edit = api_is_allowed_to_edit(null, true);
     $course_id = api_get_course_int_id();
     $tbl_lp_item = Database::get_course_table(TABLE_LP_ITEM);
     $sql = "SELECT * FROM {$tbl_lp_item}\n                WHERE c_id = {$course_id} AND lp_id = " . $this->lp_id;
     $result = Database::query($sql);
     $arrLP = array();
     while ($row = Database::fetch_array($result)) {
         $arrLP[] = array('id' => $row['id'], 'item_type' => $row['item_type'], 'title' => Security::remove_XSS($row['title']), 'path' => $row['path'], 'description' => Security::remove_XSS($row['description']), 'parent_item_id' => $row['parent_item_id'], 'previous_item_id' => $row['previous_item_id'], 'next_item_id' => $row['next_item_id'], 'max_score' => $row['max_score'], 'min_score' => $row['min_score'], 'mastery_score' => $row['mastery_score'], 'prerequisite' => $row['prerequisite'], 'display_order' => $row['display_order'], 'audio' => $row['audio'], 'prerequisite_max_score' => $row['prerequisite_max_score'], 'prerequisite_min_score' => $row['prerequisite_min_score']);
     }
     $this->tree_array($arrLP);
     $arrLP = isset($this->arrMenu) ? $this->arrMenu : null;
     unset($this->arrMenu);
     $default_data = null;
     $default_content = null;
     $elements = array();
     $return_audio = null;
     for ($i = 0; $i < count($arrLP); $i++) {
         $title = $arrLP[$i]['title'];
         $title_cut = cut($arrLP[$i]['title'], 25);
         $url = api_get_self() . '?' . api_get_cidreq() . '&action=view_item&id=' . $arrLP[$i]['id'] . '&lp_id=' . $this->lp_id;
         $title_cut = Display::url($title_cut, $url, array('class' => 'ajax moved', 'data-title' => $title_cut));
         if ($i % 2 == 0) {
             $oddClass = 'row_odd';
         } else {
             $oddClass = 'row_even';
         }
         $return_audio .= '<tr id ="lp_item_' . $arrLP[$i]['id'] . '" class="' . $oddClass . '">';
         $icon_name = str_replace(' ', '', $arrLP[$i]['item_type']);
         if (file_exists('../img/lp_' . $icon_name . '.png')) {
             $icon = Display::return_icon('lp_' . $icon_name . '.png');
         } else {
             if (file_exists('../img/lp_' . $icon_name . '.gif')) {
                 $icon = Display::return_icon('lp_' . $icon_name . '.gif');
             } else {
                 $icon = Display::return_icon('folder_document.gif');
             }
         }
         // The audio column.
         $return_audio .= '<td align="left" style="padding-left:10px;">';
         $audio = '';
         if (!$update_audio || $update_audio != 'true') {
             if (!empty($arrLP[$i]['audio'])) {
             } else {
                 $audio .= '';
             }
         } else {
             $types = self::getChapterTypes();
             if (!in_array($arrLP[$i]['item_type'], $types)) {
                 $audio .= '<input type="file" name="mp3file' . $arrLP[$i]['id'] . '" id="mp3file" />';
                 if (!empty($arrLP[$i]['audio'])) {
                     $audio .= '<br />' . Security::remove_XSS($arrLP[$i]['audio']) . '<br />
                     <input type="checkbox" name="removemp3' . $arrLP[$i]['id'] . '" id="checkbox' . $arrLP[$i]['id'] . '" />' . get_lang('RemoveAudio');
                 }
             }
         }
         $return_audio .= Display::span($icon . ' ' . $title) . Display::tag('td', $audio, array('style' => ''));
         $return_audio .= '</td>';
         $move_icon = '';
         $move_item_icon = '';
         $edit_icon = '';
         $delete_icon = '';
         $audio_icon = '';
         $prerequisities_icon = '';
         $forumIcon = '';
         $previewIcon = '';
         if ($is_allowed_to_edit) {
             if (!$update_audio || $update_audio != 'true') {
                 $move_icon .= '<a class="moved" href="#">';
                 $move_icon .= Display::return_icon('move_everywhere.png', get_lang('Move'), array(), ICON_SIZE_TINY);
                 $move_icon .= '</a>';
             }
             // No edit for this item types
             if (!in_array($arrLP[$i]['item_type'], array('sco', 'asset'))) {
                 if (!in_array($arrLP[$i]['item_type'], array('dokeos_chapter', 'dokeos_module'))) {
                     $edit_icon .= '<a href="' . api_get_self() . '?' . api_get_cidreq() . '&action=edit_item&view=build&id=' . $arrLP[$i]['id'] . '&lp_id=' . $this->lp_id . '&path_item=' . $arrLP[$i]['path'] . '" class="btn btn-default">';
                     $edit_icon .= Display::return_icon('edit.png', get_lang('LearnpathEditModule'), array(), ICON_SIZE_TINY);
                     $edit_icon .= '</a>';
                     if (!in_array($arrLP[$i]['item_type'], ['forum', 'thread'])) {
                         if ($this->items[$arrLP[$i]['id']]->getForumThread($this->course_int_id, $this->lp_session_id)) {
                             $forumIconUrl = api_get_self() . '?' . api_get_cidreq() . '&' . http_build_query(['action' => 'dissociate_forum', 'id' => $arrLP[$i]['id'], 'lp_id' => $this->lp_id]);
                             $forumIcon = Display::url(Display::return_icon('forum.png', get_lang('DissociateForumToLPItem'), [], ICON_SIZE_TINY), $forumIconUrl, ['class' => 'btn btn-default lp-btn-dissociate-forum']);
                         } else {
                             $forumIconUrl = api_get_self() . '?' . api_get_cidreq() . '&' . http_build_query(['action' => 'create_forum', 'id' => $arrLP[$i]['id'], 'lp_id' => $this->lp_id]);
                             $forumIcon = Display::url(Display::return_icon('forum.png', get_lang('AssociateForumToLPItem'), [], ICON_SIZE_TINY), $forumIconUrl, ['class' => "btn btn-default lp-btn-associate-forum"]);
                         }
                     }
                 } else {
                     $edit_icon .= '<a href="' . api_get_self() . '?' . api_get_cidreq() . '&action=edit_item&id=' . $arrLP[$i]['id'] . '&lp_id=' . $this->lp_id . '&path_item=' . $arrLP[$i]['path'] . '" class="btn btn-default">';
                     $edit_icon .= Display::return_icon('edit.png', get_lang('LearnpathEditModule'), array(), ICON_SIZE_TINY);
                     $edit_icon .= '</a>';
                 }
             }
             $delete_icon .= ' <a href="' . api_get_self() . '?' . api_get_cidreq() . '&action=delete_item&id=' . $arrLP[$i]['id'] . '&lp_id=' . $this->lp_id . '" onclick="return confirmation(\'' . addslashes($title) . '\');" class="btn btn-default">';
             $delete_icon .= Display::return_icon('delete.png', get_lang('LearnpathDeleteModule'), array(), ICON_SIZE_TINY);
             $delete_icon .= '</a>';
             $url = api_get_self() . '?' . api_get_cidreq() . '&view=build&id=' . $arrLP[$i]['id'] . '&lp_id=' . $this->lp_id;
             if ($arrLP[$i]['item_type'] == 'document') {
                 $urlPreviewLink = api_get_self() . '?' . api_get_cidreq() . '&action=view_item&mode=preview_document&id=' . $arrLP[$i]['id'] . '&lp_id=' . $this->lp_id;
                 $previewIcon = Display::url(Display::return_icon('preview_view.png', get_lang('Preview'), array(), ICON_SIZE_TINY), $urlPreviewLink, array('class' => 'btn btn-default ajax', 'data-title' => $arrLP[$i]['title']));
             } else {
                 $previewIcon = Display::url(Display::return_icon('preview_view.png', get_lang('Preview'), array(), ICON_SIZE_TINY), $url . '&action=view_item', ['class' => 'btn btn-default']);
             }
             if (!in_array($arrLP[$i]['item_type'], array('dokeos_chapter', 'dokeos_module', 'dir'))) {
                 $prerequisities_icon = Display::url(Display::return_icon('accept.png', get_lang('LearnpathPrerequisites'), array(), ICON_SIZE_TINY), $url . '&action=edit_item_prereq', ['class' => 'btn btn-default']);
                 $move_item_icon = Display::url(Display::return_icon('move.png', get_lang('Move'), array(), ICON_SIZE_TINY), $url . '&action=move_item', ['class' => 'btn btn-default']);
                 $audio_icon = Display::url(Display::return_icon('audio.png', get_lang('UplUpload'), array(), ICON_SIZE_TINY), $url . '&action=add_audio', ['class' => 'btn btn-default']);
             }
         }
         if ($update_audio != 'true') {
             $row = $move_icon . ' ' . $icon . Display::span($title_cut) . Display::tag('div', "<div class=\"btn-group btn-group-xs\">{$previewIcon} {$audio} {$edit_icon} {$forumIcon} {$prerequisities_icon} {$move_item_icon} {$audio_icon} {$delete_icon}</div>", array('class' => 'btn-toolbar button_actions'));
         } else {
             $row = Display::span($title . $icon) . Display::span($audio, array('class' => 'button_actions'));
         }
         $parent_id = $arrLP[$i]['parent_item_id'];
         $default_data[$arrLP[$i]['id']] = $row;
         $default_content[$arrLP[$i]['id']] = $arrLP[$i];
         if (empty($parent_id)) {
             $elements[$arrLP[$i]['id']]['data'] = $row;
             $elements[$arrLP[$i]['id']]['type'] = $arrLP[$i]['item_type'];
         } else {
             $parent_arrays = array();
             if ($arrLP[$i]['depth'] > 1) {
                 //Getting list of parents
                 for ($j = 0; $j < $arrLP[$i]['depth']; $j++) {
                     foreach ($arrLP as $item) {
                         if ($item['id'] == $parent_id) {
                             if ($item['parent_item_id'] == 0) {
                                 $parent_id = $item['id'];
                                 break;
                             } else {
                                 $parent_id = $item['parent_item_id'];
                                 if (empty($parent_arrays)) {
                                     $parent_arrays[] = intval($item['id']);
                                 }
                                 $parent_arrays[] = $parent_id;
                                 break;
                             }
                         }
                     }
                 }
             }
             if (!empty($parent_arrays)) {
                 $parent_arrays = array_reverse($parent_arrays);
                 $val = '$elements';
                 $x = 0;
                 foreach ($parent_arrays as $item) {
                     if ($x != count($parent_arrays) - 1) {
                         $val .= '["' . $item . '"]["children"]';
                     } else {
                         $val .= '["' . $item . '"]["children"]';
                     }
                     $x++;
                 }
                 $val .= "";
                 $code_str = $val . "[" . $arrLP[$i]['id'] . "][\"load_data\"] = '" . $arrLP[$i]['id'] . "' ; ";
                 eval($code_str);
             } else {
                 $elements[$parent_id]['children'][$arrLP[$i]['id']]['data'] = $row;
                 $elements[$parent_id]['children'][$arrLP[$i]['id']]['type'] = $arrLP[$i]['item_type'];
             }
         }
     }
     $list = '<ul id="lp_item_list">';
     $tree = self::print_recursive($elements, $default_data, $default_content);
     if (!empty($tree)) {
         $list .= $tree;
     } else {
         if ($drop_element_here) {
             $list .= Display::return_message(get_lang("DragAndDropAnElementHere"));
         }
     }
     $list .= '</ul>';
     $return .= Display::panelCollapse($this->name, $list, 'scorm-list', null, 'scorm-list-accordion', 'scorm-list-collapse');
     if ($update_audio == 'true') {
         $return = $return_audio;
     }
     return $return;
 }
Exemplo n.º 7
0
    for ($i = 0; $i < $list; $i++) {
        $social_group_block .= '<div class="row">';
        $social_group_block .= '<div class="col-md-2">' . $groups_pop[$i][0] . '</div>';
        $social_group_block .= '<div class="col-md-10">' . $groups_pop[$i][1];
        $social_group_block .= $groups_pop[$i][2] . '</div>';
        $social_group_block .= "</div>";
    }
    $social_group_block .= "</div>";
}
// My friends
$friend_html = SocialManager::listMyFriendsBlock($user_id, '', $show_full_profile);
//Block Social Sessions
$social_session_block = null;
$user_info = api_get_user_info($user_id);
$sessionList = SessionManager::getSessionsFollowedByUser($user_id, $user_info['status']);
if (count($sessionList) > 0) {
    $social_session_block = $sessionList;
}
$social_group_block = Display::panelCollapse(get_lang('Group'), $social_group_block, 'sm-groups', null, 'grups-acordion', 'groups-collapse');
//$tpl =  new Template(get_lang('SocialNetwork'));
$tpl = \Chamilo\CoreBundle\Framework\Container::getTwig();
SocialManager::setSocialUserBlock($tpl, api_get_user_id(), 'home');
$tpl->addGlobal('social_menu_block', $social_menu_block);
$tpl->addGlobal('social_friend_block', $friend_html);
$tpl->addGlobal('sessionList', $social_session_block);
$tpl->addGlobal('social_search_block', $social_search_block);
$tpl->addGlobal('social_skill_block', SocialManager::getSkillBlock($user_id));
$tpl->addGlobal('social_group_block', $social_group_block);
$tpl->addGlobal('social_right_content', '');
$tpl->addGlobal('social_auto_extend_link', '');
echo $tpl->render('@template_style/social/home.html.twig');
Exemplo n.º 8
0
global $_custom;
if (isset($_custom['exercises_hidden_when_no_start_date']) && $_custom['exercises_hidden_when_no_start_date']) {
    if (empty($objExercise->start_time) || $objExercise->start_time == '0000-00-00 00:00:00') {
        Display::display_warning_message(sprintf(get_lang('ExerciseNoStartedYet'), $exercise_title, $objExercise->selectAttempts()));
        if ($origin != 'learnpath') {
            Display::display_footer();
        }
    }
}
//Timer control
if ($time_control) {
    echo $objExercise->return_time_left_div();
    echo '<div style="display:none" class="warning-message" id="expired-message-id">' . get_lang('ExerciseExpiredTimeMessage') . '</div>';
}
if (!empty($objExercise->description)) {
    echo Display::panelCollapse(get_lang('ExerciseDescriptionLabel'), $objExercise->description, 'exercise-description', null, 'description', 'exercise-collapse');
}
if ($origin != 'learnpath') {
    echo '<div id="highlight-plugin" class="glossary-content">';
}
if ($reminder == 2) {
    if ($debug) {
        error_log(' $reminder == 2');
    }
    $data_tracking = $exercise_stat_info['data_tracking'];
    $data_tracking = explode(',', $data_tracking);
    $current_question = 1;
    //set by default the 1st question
    if (!empty($my_remind_list)) {
        //Checking which questions we are going to call from the remind list
        for ($i = 0; $i < count($data_tracking); $i++) {
Exemplo n.º 9
0
            $item_1 = Display::tag('p', $url_open . $name . $url_close);
            $block_groups .= '
                <div class="col-md-4">
                    <div class="items-user">
                        <div class="items-user-avatar">
                            ' . $group['picture'] . '
                        </div>
                        <div class="user-info">
                            ' . $item_1 . '
                            <p>' . $members . '</p>
                            <p>' . $group['description'] . '</p>
                            <p>' . $tags . '</p>
                            <p>' . $url_open . get_lang('SeeMore') . $url_close . '</p>
                        </div>
                    </div>
                </div>';
        }
        $block_groups .= '</div></div></div>';
    }
    $visibility = array(true, true, true, true, true);
    $block_groups .= Display::return_sortable_grid('groups', null, $grid_groups, array('hide_navigation' => false, 'per_page' => $itemPerPage), $query_vars, false, $visibility, true, array(), $totalGroups);
    $block_search .= Display::panelCollapse(get_lang('Groups'), $block_groups, 'search-groups', null, 'groups-acorderon', 'groups-collapse');
}
$tpl = \Chamilo\CoreBundle\Framework\Container::getTwig();
// Block Social Avatar
SocialManager::setSocialUserBlock($tpl, api_get_user_id(), 'search');
$tpl->addGlobal('social_menu_block', $social_menu_block);
$tpl->addGlobal('social_search', $block_search);
$tpl->addGlobal('search_form', $searchForm);
$tpl->addGlobal('invitation_form', MessageManager::generate_invitation_form('send_invitation'));
echo $tpl->render('@template_style/social/search.html.twig');