Explorar el Código

Merge branch '1.10.x' of ssh://github.com/chamilo/chamilo-lms into 1.10.x

Julio Montoya hace 10 años
padre
commit
750087de58
Se han modificado 100 ficheros con 1891 adiciones y 1111 borrados
  1. 7 0
      .gitignore
  2. 2 2
      composer.lock
  3. 1 1
      home/home_menu.html
  4. 6 4
      main/admin/configure_homepage.php
  5. 25 1
      main/admin/group_list.php
  6. 10 14
      main/admin/settings.lib.php
  7. 6 1
      main/admin/skill_badge.php
  8. 1 1
      main/admin/skill_badge_create.php
  9. 0 6
      main/admin/skill_badge_help.php
  10. 1 18
      main/admin/user_list.php
  11. 24 21
      main/course_info/infocours.php
  12. 36 0
      main/cron/add_gradebook_certificates.php
  13. 325 192
      main/css/base.css
  14. 1 1
      main/css/base_chamilo.css
  15. 21 2
      main/css/chamilo/default.css
  16. 9 9
      main/dashboard/dashboard.php
  17. 10 1
      main/document/create_document.php
  18. 4 4
      main/document/document.php
  19. 2 1
      main/document/showinframes.php
  20. 1 1
      main/dropbox/dropbox_functions.inc.php
  21. BIN
      main/img/icons/128/badges-default.png
  22. BIN
      main/img/icons/22/edit-skill.png
  23. BIN
      main/img/icons/22/skill-badges.png
  24. BIN
      main/img/icons/22/social-files.png
  25. BIN
      main/img/icons/22/social-friends.png
  26. BIN
      main/img/icons/22/social-groups.png
  27. BIN
      main/img/icons/22/social-home.png
  28. BIN
      main/img/icons/22/social-invitations.png
  29. BIN
      main/img/icons/22/social-message.png
  30. BIN
      main/img/icons/22/social-profile.png
  31. BIN
      main/img/icons/22/social-search.png
  32. BIN
      main/img/icons/22/social_rss.png
  33. BIN
      main/img/icons/64/badges-default.png
  34. BIN
      main/img/icons/64/badges.png
  35. BIN
      main/img/openbadges.png
  36. 1 1
      main/inc/ajax/social.ajax.php
  37. 40 5
      main/inc/lib/display.lib.php
  38. 1 1
      main/inc/lib/document.lib.php
  39. 1 1
      main/inc/lib/javascript/tag/jquery.fcbkcomplete.js
  40. 3 13
      main/inc/lib/skill.lib.php
  41. 75 109
      main/inc/lib/social.lib.php
  42. 2 2
      main/inc/lib/svg-edit/svg-editor.php
  43. 42 11
      main/inc/lib/template.lib.php
  44. 2 2
      main/inc/lib/usermanager.lib.php
  45. 3 19
      main/inc/lib/userportal.lib.php
  46. 2 0
      main/install/configuration.dist.php
  47. 2 0
      main/lang/english/trad4all.inc.php
  48. 2 0
      main/lang/spanish/trad4all.inc.php
  49. 26 5
      main/messages/inbox.php
  50. 23 2
      main/messages/new_message.php
  51. 22 3
      main/messages/outbox.php
  52. 24 2
      main/messages/view_message.php
  53. 9 8
      main/newscorm/learnpath.class.php
  54. 3 3
      main/newscorm/lp_add_audio.php
  55. 1 1
      main/newscorm/lp_add_item.php
  56. 3 3
      main/newscorm/lp_admin_view.php
  57. 3 3
      main/newscorm/lp_build.php
  58. 11 6
      main/newscorm/lp_edit.php
  59. 3 3
      main/newscorm/lp_edit_item.php
  60. 3 3
      main/newscorm/lp_edit_item_prereq.php
  61. 3 3
      main/newscorm/lp_move_item.php
  62. 3 3
      main/newscorm/lp_view_item.php
  63. 22 2
      main/social/friends.php
  64. 1 1
      main/social/group_add.php
  65. 1 1
      main/social/group_edit.php
  66. 1 1
      main/social/group_invitation.php
  67. 1 1
      main/social/group_members.php
  68. 1 1
      main/social/group_topics.php
  69. 1 1
      main/social/group_waiting_list.php
  70. 43 7
      main/social/groups.php
  71. 132 133
      main/social/home.php
  72. 82 67
      main/social/invitations.php
  73. 22 2
      main/social/myfiles.php
  74. 179 44
      main/social/profile.php
  75. 22 2
      main/social/search.php
  76. 1 1
      main/survey/create_new_survey.php
  77. 8 5
      main/survey/reporting.php
  78. 130 113
      main/survey/survey.lib.php
  79. 42 37
      main/template/default/auth/courses_categories.php
  80. 9 9
      main/template/default/auth/sessions_catalog.tpl
  81. 12 12
      main/template/default/create_course/add_course.tpl
  82. 3 2
      main/template/default/layout/head.tpl
  83. 2 2
      main/template/default/layout/layout_1_col.tpl
  84. 4 3
      main/template/default/layout/layout_2_col.tpl
  85. 1 1
      main/template/default/layout/menu.tpl
  86. 0 29
      main/template/default/layout/social_layout.tpl
  87. 35 12
      main/template/default/skill/badge.tpl
  88. 61 44
      main/template/default/skill/badge_create.tpl
  89. 11 5
      main/template/default/skill/badge_issuer.tpl
  90. 12 15
      main/template/default/skill/badge_list.tpl
  91. 3 3
      main/template/default/skill/profile.tpl
  92. 41 34
      main/template/default/skill/skill_wheel.tpl
  93. 38 29
      main/template/default/skill/skill_wheel_student.tpl
  94. 29 0
      main/template/default/social/add_groups.tpl
  95. 29 0
      main/template/default/social/friends.tpl
  96. 29 0
      main/template/default/social/groups.tpl
  97. 24 0
      main/template/default/social/home.tpl
  98. 15 0
      main/template/default/social/inbox.tpl
  99. 15 0
      main/template/default/social/invitations.tpl
  100. 24 0
      main/template/default/social/myfiles.tpl

+ 7 - 0
.gitignore

@@ -42,11 +42,18 @@ searchdb/*
 *.orig
 *.orig
 nbproject/*
 nbproject/*
 
 
+# Plugins config files
 plugin/bbb/config.vm.php
 plugin/bbb/config.vm.php
 
 
+# Cron temp files
 main/cron/incoming/*
 main/cron/incoming/*
+
+# Stuff updated through composer
+composer.lock
 vendor
 vendor
 web/assets/*
 web/assets/*
+
+# Data directory (new directory for archive/)
 data/*
 data/*
 !data/index.html
 !data/index.html
 data/badges/*
 data/badges/*

+ 2 - 2
composer.lock

@@ -1924,12 +1924,12 @@
             "version": "v5.7.4",
             "version": "v5.7.4",
             "source": {
             "source": {
                 "type": "git",
                 "type": "git",
-                "url": "https://github.com/mpdf/mpdf.git",
+                "url": "https://github.com/finwe/mpdf.git",
                 "reference": "f9a374c7ea975ce8c795cec4dfd17ef55addac9c"
                 "reference": "f9a374c7ea975ce8c795cec4dfd17ef55addac9c"
             },
             },
             "dist": {
             "dist": {
                 "type": "zip",
                 "type": "zip",
-                "url": "https://api.github.com/repos/mpdf/mpdf/zipball/f9a374c7ea975ce8c795cec4dfd17ef55addac9c",
+                "url": "https://api.github.com/repos/finwe/mpdf/zipball/f9a374c7ea975ce8c795cec4dfd17ef55addac9c",
                 "reference": "f9a374c7ea975ce8c795cec4dfd17ef55addac9c",
                 "reference": "f9a374c7ea975ce8c795cec4dfd17ef55addac9c",
                 "shasum": ""
                 "shasum": ""
             },
             },

+ 1 - 1
home/home_menu.html

@@ -1 +1 @@
-<li class="forum-btn"><a href="http://www.chamilo.org/forum" target="_self">Forum</a></li>
+<li class="forum-btn"><a href="http://www.chamilo.org/forum" target="_self">Forum</a></li>

+ 6 - 4
main/admin/configure_homepage.php

@@ -462,6 +462,7 @@ if (!empty($action)) {
 					// If the requested action is to create a link, make some room
 					// If the requested action is to create a link, make some room
 					// for the new link in the home_menu array at the requested place
 					// for the new link in the home_menu array at the requested place
 					// and insert the new link there
 					// and insert the new link there
+                    $icon = '<i class="fa fa-external-link"></i>';
 					if ($action == 'insert_link' || $action == 'insert_tabs') {
 					if ($action == 'insert_link' || $action == 'insert_tabs') {
 						for ($i = sizeof($home_menu); $i; $i--) {
 						for ($i = sizeof($home_menu); $i; $i--) {
 							if ($i > $insert_where) {
 							if ($i > $insert_where) {
@@ -470,10 +471,10 @@ if (!empty($action)) {
 								break;
 								break;
 							}
 							}
 						}
 						}
-						$home_menu[$insert_where + 1] = '<li '.$class_add_in_tab.'><a href="'.$link_url.'" target="'.($target_blank ? '_blank' : '_self').'"><span>'.$link_name.'</span></a></li>';
+						$home_menu[$insert_where + 1] = '<li '.$class_add_in_tab.'><a href="'.$link_url.'" target="'.($target_blank ? '_blank' : '_self').'">'.$icon.' '.$link_name.'</a></li>';
 					} else {
 					} else {
 						// If the request is about a link edition, change the link
 						// If the request is about a link edition, change the link
-						$home_menu[$link_index]='<li '.$class_add_in_tab.'><a href="'.$link_url.'" target="'.($target_blank?'_blank':'_self').'"><span>'.$link_name.'</span></a></li>';
+						$home_menu[$link_index]='<li '.$class_add_in_tab.'><a href="'.$link_url.'" target="'.($target_blank?'_blank':'_self').'">'.$icon.' '.$link_name.'</a></li>';
 					}
 					}
 					// Re-build the file from the home_menu array
 					// Re-build the file from the home_menu array
 					$home_menu = implode("\n", $home_menu);
 					$home_menu = implode("\n", $home_menu);
@@ -867,7 +868,8 @@ switch ($action) {
 		if ($action == 'edit_link' && (empty($link_url) || $link_url == 'http://' || $link_url == 'https://')) {
 		if ($action == 'edit_link' && (empty($link_url) || $link_url == 'http://' || $link_url == 'https://')) {
 			$default['link_html'] = isset($_POST['link_html']) ? $_POST['link_html'] : $link_html;
 			$default['link_html'] = isset($_POST['link_html']) ? $_POST['link_html'] : $link_html;
 			$form->addHtmlEditor('link_html', get_lang('Content'), false, false, array('ToolbarSet' => 'PortalHomePage', 'Width' => '100%', 'Height' => '400'));
 			$form->addHtmlEditor('link_html', get_lang('Content'), false, false, array('ToolbarSet' => 'PortalHomePage', 'Width' => '100%', 'Height' => '400'));
-			$form->addElement('style_submit_button', null, get_lang('Save'), 'class="save"');
+            $form->addButtonSave(get_lang('Save'),'submit');
+
 		} else {
 		} else {
 			if (in_array($action, array('edit_tabs','insert_tabs'))) {
 			if (in_array($action, array('edit_tabs','insert_tabs'))) {
 				$default['link_html'] = isset($_POST['link_html']) ? $_POST['link_html'] : (!empty($link_html) ? $link_html : '');
 				$default['link_html'] = isset($_POST['link_html']) ? $_POST['link_html'] : (!empty($link_html) ? $link_html : '');
@@ -888,7 +890,7 @@ switch ($action) {
 				$form->addElement('html', $html_langs);
 				$form->addElement('html', $html_langs);
 			}
 			}
 			$form->addElement('html','</tr></table><br/>');
 			$form->addElement('html','</tr></table><br/>');
-			$form->addElement('style_submit_button', null, get_lang('Save'), 'class="save"');
+            $form->addButtonSave(get_lang('Save'),'submit');
 		}
 		}
 
 
 		$form->setDefaults($default);
 		$form->setDefaults($default);

+ 25 - 1
main/admin/group_list.php

@@ -102,9 +102,33 @@ function get_group_data($from, $number_of_items, $column, $direction) {
     $status[GROUP_PERMISSION_OPEN] = get_lang('Open');
     $status[GROUP_PERMISSION_OPEN] = get_lang('Open');
     $status[GROUP_PERMISSION_CLOSED] = get_lang('Closed');
     $status[GROUP_PERMISSION_CLOSED] = get_lang('Closed');
 
 
+    $result = Database::select(
+        'tGroupRelGroup.group_id, tGroup.id, tGroup.name',
+        Database::get_main_table(TABLE_MAIN_GROUP_REL_GROUP).
+        " AS tGroupRelGroup RIGHT JOIN ".Database::get_main_table(TABLE_MAIN_GROUP).
+        " AS tGroup ON tGroupRelGroup.subgroup_id = tGroup.id"
+    );
+    $groupRelations = array();
+    foreach ($result as $row) {
+        $groupRelations[$row['id']] = $row;
+    }
+
     while ($group = Database::fetch_row($res)) {
     while ($group = Database::fetch_row($res)) {
+        $name = null;
+        $id = $group[0];
+        // Loops while the current group is a subgroup
+        while (isset($groupRelations[$id]['group_id'])) {
+            $name = $name ?
+                $groupRelations[$id]['name'] . " > " . $name :
+                $groupRelations[$id]['name'];
+            $id = $groupRelations[$id]['group_id'];
+        }
+        // The base group
+        $name = $name ?
+            $groupRelations[$id]['name'] . " > " . $name :
+            $groupRelations[$id]['name'];
         $group[3] = $status[$group[3]];
         $group[3] = $status[$group[3]];
-        $group['1'] = '<a href="'.api_get_path(WEB_CODE_PATH).'social/groups.php?id='.$group['0'].'">'.$group['1'].'</a>';
+        $group['1'] = '<a href="'.api_get_path(WEB_CODE_PATH).'social/groups.php?id='.$group['0'].'">'.$name.'</a>';
         $groups[] = $group;
         $groups[] = $group;
     }
     }
     return $groups;
     return $groups;

+ 10 - 14
main/admin/settings.lib.php

@@ -92,13 +92,13 @@ function handle_regions()
     }
     }
     echo '</table>';
     echo '</table>';
     echo '<br />';
     echo '<br />';
-    echo '<button class="save" type="submit" name="submit_plugins">'.get_lang('EnablePlugins').'</button></form>';
+    echo '<button class="btn btn-success" type="submit" name="submit_plugins">'.get_lang('EnablePlugins').'</button></form>';
 }
 }
 
 
 function handle_extensions()
 function handle_extensions()
 {
 {
     echo Display::page_subheader(get_lang('ConfigureExtensions'));
     echo Display::page_subheader(get_lang('ConfigureExtensions'));
-    echo '<a class="btn" href="configure_extensions.php?display=ppt2lp">'.get_lang('Ppt2lp').'</a>';
+    echo '<a class="btn btn-success" href="configure_extensions.php?display=ppt2lp" role="button">'.get_lang('Ppt2lp').'</a>';
 
 
 }
 }
 /**
 /**
@@ -175,12 +175,12 @@ function handle_plugins()
 
 
             echo '<div class="btn-group">';
             echo '<div class="btn-group">';
             if (in_array($plugin, $installed_plugins)) {
             if (in_array($plugin, $installed_plugins)) {
-                echo Display::url(get_lang('Configure'), 'configure_plugin.php?name='.$plugin, array('class' => 'btn'));
-                echo Display::url(get_lang('Regions'), 'settings.php?category=Regions&name='.$plugin, array('class' => 'btn'));
+                echo Display::url('<i class="fa fa-cogs"></i> '.get_lang('Configure'), 'configure_plugin.php?name='.$plugin, array('class' => 'btn btn-default'));
+                echo Display::url('<i class="fa fa-th-large"></i> '.get_lang('Regions'), 'settings.php?category=Regions&name='.$plugin, array('class' => 'btn btn-default'));
             }
             }
 
 
             if (file_exists(api_get_path(SYS_PLUGIN_PATH).$plugin.'/readme.txt')) {
             if (file_exists(api_get_path(SYS_PLUGIN_PATH).$plugin.'/readme.txt')) {
-                echo Display::url("readme.txt", api_get_path(WEB_PLUGIN_PATH).$plugin."/readme.txt", array('class' => 'btn ajax', '_target' => '_blank'));
+                echo Display::url("<i class='fa fa-file-text-o'></i> readme.txt", api_get_path(WEB_PLUGIN_PATH).$plugin."/readme.txt", array('class' => 'btn btn-default', '_target' => '_blank'));
             }
             }
             echo '</div>';
             echo '</div>';
             echo '</td></tr>';
             echo '</td></tr>';
@@ -189,7 +189,7 @@ function handle_plugins()
     echo '</table>';
     echo '</table>';
 
 
     echo '<div class="form-actions bottom_actions">';
     echo '<div class="form-actions bottom_actions">';
-    echo '<button class="save" type="submit" name="submit_plugins">'.get_lang('EnablePlugins').'</button>';
+    echo '<button class="btn btn-success" type="submit" name="submit_plugins">'.get_lang('EnablePlugins').'</button>';
     echo '</div>';
     echo '</div>';
     echo '</form>';
     echo '</form>';
 }
 }
@@ -368,10 +368,7 @@ function handle_stylesheets()
                 $( "#tabs" ).tabs();
                 $( "#tabs" ).tabs();
             });
             });
             </script>';
             </script>';
-            echo Display::tabs(
-                array(get_lang('Update'), get_lang('UploadNewStylesheet')),
-                array($form_change->return_form(), $form->return_form())
-            );
+            echo Display::tabs(array(get_lang('Update'), get_lang('UploadNewStylesheet')), array($form_change->return_form(), $form->return_form()));
         } else {
         } else {
             $form_change->display();
             $form_change->display();
         }
         }
@@ -946,7 +943,7 @@ function add_edit_template() {
         $form->setDefaults($defaults);
         $form->setDefaults($defaults);
     }
     }
     // Setting the form elements: the submit button.
     // Setting the form elements: the submit button.
-    $form->addButtonSave(get_lang('Ok'));
+    $form->addElement('style_submit_button' , 'submit', get_lang('Ok') ,'class="save"');
 
 
     // Setting the rules: the required fields.
     // Setting the rules: the required fields.
     $form->addRule('title', get_lang('ThisFieldIsRequired'), 'required');
     $form->addRule('title', get_lang('ThisFieldIsRequired'), 'required');
@@ -1138,9 +1135,7 @@ function generate_settings_form($settings, $settings_by_access_list) {
 
 
     $i = 0;
     $i = 0;
     foreach ($settings as $row) {
     foreach ($settings as $row) {
-        if (in_array($row['variable'], array_keys($settings_to_avoid))) {
-            continue;
-        }
+        if (in_array($row['variable'], array_keys($settings_to_avoid))) { continue; }
 
 
         if (!empty($_configuration['multiple_access_urls'])) {
         if (!empty($_configuration['multiple_access_urls'])) {
             if (api_is_global_platform_admin()) {
             if (api_is_global_platform_admin()) {
@@ -1356,6 +1351,7 @@ function generate_settings_form($settings, $settings_by_access_list) {
         $form->setDefaults($default_values);
         $form->setDefaults($default_values);
     }
     }
     $form->addButtonSave(get_lang('SaveSettings'));
     $form->addButtonSave(get_lang('SaveSettings'));
+    //$form->addElement('button', 'submit_fixed_in_bottom', get_lang('SaveSettings'), 'class="save"');
     return $form;
     return $form;
 }
 }
 
 

+ 6 - 1
main/admin/skill_badge.php

@@ -14,6 +14,11 @@ $this_section = SECTION_PLATFORM_ADMIN;
 if (!api_is_platform_admin() || api_get_setting('allow_skills_tool') !== 'true') {
 if (!api_is_platform_admin() || api_get_setting('allow_skills_tool') !== 'true') {
     api_not_allowed(true);
     api_not_allowed(true);
 }
 }
+$backpack = 'https://backpack.openbadges.org/';
+
+if (array_key_exists('openbadges_backpack', $_configuration)) {
+    $backpack = $_configuration['openbadges_backpack'];
+}
 
 
 $interbreadcrumb = array(
 $interbreadcrumb = array(
     array(
     array(
@@ -23,7 +28,7 @@ $interbreadcrumb = array(
 );
 );
 
 
 $tpl = new Template(get_lang('Badges'));
 $tpl = new Template(get_lang('Badges'));
-
+$tpl->assign('backpack', $backpack);
 $contentTemplate = $tpl->get_template('skill/badge.tpl');
 $contentTemplate = $tpl->get_template('skill/badge.tpl');
 
 
 $tpl->display($contentTemplate);
 $tpl->display($contentTemplate);

+ 1 - 1
main/admin/skill_badge_create.php

@@ -70,7 +70,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
             $skillThumbPath = sprintf("%s%s%s-small.png", $sysDataPath, $fileDir, $fileName);
             $skillThumbPath = sprintf("%s%s%s-small.png", $sysDataPath, $fileDir, $fileName);
 
 
             $skillImageThumb = new Image($skillImagePath);
             $skillImageThumb = new Image($skillImagePath);
-            $skillImageThumb->resize(ICON_SIZE_SMALL, ICON_SIZE_SMALL);
+            $skillImageThumb->resize(ICON_SIZE_BIG, ICON_SIZE_BIG);
             $skillImageThumb->send_image($skillThumbPath);
             $skillImageThumb->send_image($skillThumbPath);
 
 
             $params['icon'] = sprintf("%s%s.png", $fileDir, $fileName);
             $params['icon'] = sprintf("%s%s.png", $fileDir, $fileName);

+ 0 - 6
main/admin/skill_badge_issuer.php → main/admin/skill_badge_help.php

@@ -13,11 +13,6 @@ if (!api_is_platform_admin() || api_get_setting('allow_skills_tool') !== 'true')
     api_not_allowed(true);
     api_not_allowed(true);
 }
 }
 
 
-$backpack = 'https://backpack.openbadges.org/';
-
-if (array_key_exists('openbadges_backpack', $_configuration)) {
-    $backpack = $_configuration['openbadges_backpack'];
-}
 
 
 $this_section = SECTION_PLATFORM_ADMIN;
 $this_section = SECTION_PLATFORM_ADMIN;
 
 
@@ -34,7 +29,6 @@ $interbreadcrumb = array(
 
 
 $tpl = new Template(get_lang('IssuerDetails'));
 $tpl = new Template(get_lang('IssuerDetails'));
 
 
-$tpl->assign('backpack', $backpack);
 
 
 $contentTemplate = $tpl->get_template('skill/badge_issuer.tpl');
 $contentTemplate = $tpl->get_template('skill/badge_issuer.tpl');
 
 

+ 1 - 18
main/admin/user_list.php

@@ -577,24 +577,7 @@ function modify_filter($user_id, $url_params, $row) {
 	}
 	}
 
 
 	if (api_is_platform_admin(true)) {
 	if (api_is_platform_admin(true)) {
-        $editProfileUrl = api_get_path(WEB_CODE_PATH) . "admin/user_edit.php?user_id=$user_id";
-
-        if (api_get_setting('sso_authentication') === 'true') {
-            $subSSOClass = api_get_setting('sso_authentication_subclass');
-
-            $objSSO = null;
-
-            if (!empty($subSSOClass)) {
-                require_once api_get_path(SYS_CODE_PATH) . "auth/sso/sso.$subSSOClass.class.php";
-
-                $subSSOClass = 'sso' . $subSSOClass;
-                $objSSO = new $subSSOClass();
-            } else {
-                $objSSO = new sso();
-            }
-
-            $editProfileUrl = $objSSO->generateProfileEditingURL($user_id, true);
-        }
+        $editProfileUrl = Display::getProfileEditionLink($user_id, true);
 
 
         if (!$user_is_anonymous && api_global_admin_can_edit_admin($user_id, null, true)) {
         if (!$user_is_anonymous && api_global_admin_can_edit_admin($user_id, null, true)) {
             $result .= '<a href="' . $editProfileUrl . '">'.Display::return_icon('edit.png', get_lang('Edit'), array(), ICON_SIZE_SMALL).'</a>&nbsp;';
             $result .= '<a href="' . $editProfileUrl . '">'.Display::return_icon('edit.png', get_lang('Edit'), array(), ICON_SIZE_SMALL).'</a>&nbsp;';

+ 24 - 21
main/course_info/infocours.php

@@ -125,18 +125,18 @@ if (file_exists($course_path.'/course-pic85x85.png')) {
 }
 }
 $form->addElement('html', $image_html);
 $form->addElement('html', $image_html);
 
 
-$form->addText('title', get_lang('Title'), true, array('class' => 'span6'));
+$form->addText('title', get_lang('Title'), true, array('class' => ''));
 $form->applyFilter('title', 'html_filter');
 $form->applyFilter('title', 'html_filter');
 $form->applyFilter('title', 'trim');
 $form->applyFilter('title', 'trim');
 
 
 $form->addElement('select', 'category_code', get_lang('Fac'), $categories, array('style'=>'width:350px', 'class'=>'chzn-select', 'id'=>'category_code'));
 $form->addElement('select', 'category_code', get_lang('Fac'), $categories, array('style'=>'width:350px', 'class'=>'chzn-select', 'id'=>'category_code'));
 $form->addElement('select_language', 'course_language', array(get_lang('Ln'), get_lang('TipLang')));
 $form->addElement('select_language', 'course_language', array(get_lang('Ln'), get_lang('TipLang')));
 
 
-$form->addText('department_name', get_lang('Department'), false, array('class' => 'span5'));
+$form->addText('department_name', get_lang('Department'), false, array('class' => ''));
 $form->applyFilter('department_name', 'html_filter');
 $form->applyFilter('department_name', 'html_filter');
 $form->applyFilter('department_name', 'trim');
 $form->applyFilter('department_name', 'trim');
 
 
-$form->addText('department_url', get_lang('DepartmentUrl'), false, array('class' => 'span5'));
+$form->addText('department_url', get_lang('DepartmentUrl'), false, array('class' => ''));
 $form->applyFilter('department_url', 'html_filter');
 $form->applyFilter('department_url', 'html_filter');
 
 
 // Picture
 // Picture
@@ -162,8 +162,8 @@ $group[]=$form->createElement('SelectTheme', 'course_theme', null, array('class'
 $form->addGroup($group, '', array(get_lang("Stylesheets")), '');
 $form->addGroup($group, '', array(get_lang("Stylesheets")), '');
 
 
 $form->addElement('label', get_lang('DocumentQuota'), format_file_size(DocumentManager::get_course_quota()));
 $form->addElement('label', get_lang('DocumentQuota'), format_file_size(DocumentManager::get_course_quota()));
-
-$form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class="save"');
+$form->addButtonSave(get_lang('SaveSettings'),'submit_save');
+//$form->addElement('style_submit_button', null,'<i class="fa fa-floppy-o"></i> '. get_lang('SaveSettings'), 'class="btn btn-primary"');
 $form->addElement('html', '</div></div>');
 $form->addElement('html', '</div></div>');
 
 
 // COURSE ACCESS
 // COURSE ACCESS
@@ -199,8 +199,8 @@ $form->addText('course_registration_password', get_lang('CourseRegistrationPassw
 
 
 $form->addElement('checkbox', 'activate_legal', array(null, get_lang('ShowALegalNoticeWhenEnteringTheCourse')), get_lang('ActivateLegal'));
 $form->addElement('checkbox', 'activate_legal', array(null, get_lang('ShowALegalNoticeWhenEnteringTheCourse')), get_lang('ActivateLegal'));
 $form->addElement('textarea', 'legal', get_lang('CourseLegalAgreement'), array('class'=>'span6', 'rows' => 8));
 $form->addElement('textarea', 'legal', get_lang('CourseLegalAgreement'), array('class'=>'span6', 'rows' => 8));
-
-$form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class="save"');
+$form->addButtonSave(get_lang('SaveSettings'),'submit_save');
+//$form->addElement('style_submit_button', null, '<i class="fa fa-floppy-o"></i> '.get_lang('SaveSettings'), 'class="btn btn-primary"');
 $form->addElement('html', '</div></div>');
 $form->addElement('html', '</div></div>');
 
 
 // Documents
 // Documents
@@ -212,8 +212,8 @@ if (api_get_setting('documents_default_visibility_defined_in_course') == 'true')
         $form->createElement('radio', 'documents_default_visibility', null, get_lang('Invisible'), 'invisible')
         $form->createElement('radio', 'documents_default_visibility', null, get_lang('Invisible'), 'invisible')
     );
     );
     $form->addGroup($group, '', array(get_lang("DocumentsDefaultVisibility")), '');
     $form->addGroup($group, '', array(get_lang("DocumentsDefaultVisibility")), '');
-
-    $form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class="save"');
+    $form->addButtonSave(get_lang('SaveSettings'),'submit_save');
+    //$form->addElement('style_submit_button', null,'<i class="fa fa-floppy-o"></i> '.get_lang('SaveSettings'), 'class="btn btn-primary"');
 
 
     $form->addElement('html', '</div></div>');
     $form->addElement('html', '</div></div>');
 }
 }
@@ -246,7 +246,8 @@ $group = array();
 $group[]=$form->createElement('radio', 'email_alert_manager_on_new_quiz', get_lang('QuizEmailAlert'), get_lang('QuizEmailAlertActivate'), 1);
 $group[]=$form->createElement('radio', 'email_alert_manager_on_new_quiz', get_lang('QuizEmailAlert'), get_lang('QuizEmailAlertActivate'), 1);
 $group[]=$form->createElement('radio', 'email_alert_manager_on_new_quiz', null, get_lang('QuizEmailAlertDeactivate'), 0);
 $group[]=$form->createElement('radio', 'email_alert_manager_on_new_quiz', null, get_lang('QuizEmailAlertDeactivate'), 0);
 $form->addGroup($group, '', array(get_lang("QuizEmailAlert")), '');
 $form->addGroup($group, '', array(get_lang("QuizEmailAlert")), '');
-$form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class="save"');
+$form->addButtonSave(get_lang('SaveSettings'),'submit_save');
+//$form->addElement('style_submit_button', null, '<i class="fa fa-floppy-o"></i> '.get_lang('SaveSettings'), 'class="btn btn-primary"');
 
 
 $form->addElement('html', '</div></div>');
 $form->addElement('html', '</div></div>');
 
 
@@ -272,8 +273,8 @@ $group = array();
 $group[]=$form->createElement('radio', 'allow_user_view_user_list', get_lang('AllowUserViewUserList'), get_lang('AllowUserViewUserListActivate'), 1);
 $group[]=$form->createElement('radio', 'allow_user_view_user_list', get_lang('AllowUserViewUserList'), get_lang('AllowUserViewUserListActivate'), 1);
 $group[]=$form->createElement('radio', 'allow_user_view_user_list', null, get_lang('AllowUserViewUserListDeactivate'), 0);
 $group[]=$form->createElement('radio', 'allow_user_view_user_list', null, get_lang('AllowUserViewUserListDeactivate'), 0);
 $form->addGroup($group, '', array(get_lang("AllowUserViewUserList")), '');
 $form->addGroup($group, '', array(get_lang("AllowUserViewUserList")), '');
-
-$form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class="save"');
+$form->addButtonSave(get_lang('SaveSettings'),'submit_save');
+//$form->addElement('style_submit_button', null, '<i class="fa fa-floppy-o"></i> '.get_lang('SaveSettings'), 'class="btn btn-primary"');
 $form->addElement('html', '</div></div>');
 $form->addElement('html', '</div></div>');
 
 
 // CHAT SETTINGS
 // CHAT SETTINGS
@@ -283,8 +284,8 @@ $group = array();
 $group[]=$form->createElement('radio', 'allow_open_chat_window', get_lang('AllowOpenchatWindow'), get_lang('AllowOpenChatWindowActivate'), 1);
 $group[]=$form->createElement('radio', 'allow_open_chat_window', get_lang('AllowOpenchatWindow'), get_lang('AllowOpenChatWindowActivate'), 1);
 $group[]=$form->createElement('radio', 'allow_open_chat_window', null, get_lang('AllowOpenChatWindowDeactivate'), 0);
 $group[]=$form->createElement('radio', 'allow_open_chat_window', null, get_lang('AllowOpenChatWindowDeactivate'), 0);
 $form->addGroup($group, '', array(get_lang("AllowOpenchatWindow")), '');
 $form->addGroup($group, '', array(get_lang("AllowOpenchatWindow")), '');
-
-$form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class="save"');
+$form->addButtonSave(get_lang('SaveSettings'),'submit_save');
+//$form->addElement('style_submit_button', null,'<i class="fa fa-floppy-o"></i> '. get_lang('SaveSettings'), 'class="btn btn-primary"');
 $form->addElement('html', '</div></div>');
 $form->addElement('html', '</div></div>');
 
 
 // LEARNING PATH
 // LEARNING PATH
@@ -327,7 +328,8 @@ if (isset($_configuration['allow_lp_return_link']) && $_configuration['allow_lp_
 }
 }
 
 
 if (is_settings_editable()) {
 if (is_settings_editable()) {
-    $form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class="save"');
+    $form->addButtonSave(get_lang('SaveSettings'),'submit_save');
+    //$form->addElement('style_submit_button', null, '<i class="fa fa-floppy-o"></i> '.get_lang('SaveSettings'), 'class="btn btn-primary"');
 } else {
 } else {
     // Is it allowed to edit the course settings?
     // Is it allowed to edit the course settings?
     if (!is_settings_editable()) {
     if (!is_settings_editable()) {
@@ -346,8 +348,8 @@ $group[]=$form->createElement('radio', 'display_info_advance_inside_homecourse',
 $group[]=$form->createElement('radio', 'display_info_advance_inside_homecourse', null, get_lang('DisplayAboutNextAdvanceNotDoneAndLastDoneAdvance'), 3);
 $group[]=$form->createElement('radio', 'display_info_advance_inside_homecourse', null, get_lang('DisplayAboutNextAdvanceNotDoneAndLastDoneAdvance'), 3);
 $group[]=$form->createElement('radio', 'display_info_advance_inside_homecourse', null, get_lang('DoNotDisplayAnyAdvance'), 0);
 $group[]=$form->createElement('radio', 'display_info_advance_inside_homecourse', null, get_lang('DoNotDisplayAnyAdvance'), 0);
 $form->addGroup($group, '', array(get_lang("InfoAboutAdvanceInsideHomeCourse")), '');
 $form->addGroup($group, '', array(get_lang("InfoAboutAdvanceInsideHomeCourse")), '');
-
-$form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class="save"');
+$form->addButtonSave(get_lang('SaveSettings'),'submit_save');
+//$form->addElement('style_submit_button', null,'<i class="fa fa-floppy-o"></i> '.get_lang('SaveSettings'), 'class="btn btn-primary"');
 $form->addElement('html', '</div></div>');
 $form->addElement('html', '</div></div>');
 
 
 // Document settings
 // Document settings
@@ -359,8 +361,8 @@ $group = array(
 
 
 );
 );
 $form->addGroup($group, '', array(get_lang("ShowSystemFolders")), '');
 $form->addGroup($group, '', array(get_lang("ShowSystemFolders")), '');
-
-$form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class="save"');
+$form->addButtonSave(get_lang('SaveSettings'),'submit_save');
+//$form->addElement('style_submit_button', null,'<i class="fa fa-floppy-o"></i> '.get_lang('SaveSettings'), 'class="btn btn-primary"');
 $form->addElement('html', '</div></div>');
 $form->addElement('html', '</div></div>');
 
 
 // Certificate settings
 // Certificate settings
@@ -370,8 +372,8 @@ if (api_get_setting('allow_public_certificates')=='true') {
     $group[]=$form->createElement('radio', 'allow_public_certificates', get_lang('AllowPublicCertificates'), get_lang('Yes'), 1);
     $group[]=$form->createElement('radio', 'allow_public_certificates', get_lang('AllowPublicCertificates'), get_lang('Yes'), 1);
     $group[]=$form->createElement('radio', 'allow_public_certificates', null, get_lang('No'), 0);
     $group[]=$form->createElement('radio', 'allow_public_certificates', null, get_lang('No'), 0);
     $form->addGroup($group, '', array(get_lang("AllowPublicCertificates")), '');
     $form->addGroup($group, '', array(get_lang("AllowPublicCertificates")), '');
-
-    $form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class="save"');
+    $form->addButtonSave(get_lang('SaveSettings'),'submit_save');
+    //$form->addElement('style_submit_button', null,'<i class="fa fa-floppy-o"></i> '.get_lang('SaveSettings'), 'class="btn  btn-primary"');
     $form->addElement('html', '</div></div>');
     $form->addElement('html', '</div></div>');
 }
 }
 
 
@@ -529,6 +531,7 @@ echo '<script>
 $(function() {
 $(function() {
 	$("#course_settings").accordion({
 	$("#course_settings").accordion({
 		autoHeight: false,
 		autoHeight: false,
+		heightStyle: "content",
 		header: "div > h3"
 		header: "div > h3"
 	});
 	});
 });
 });

+ 36 - 0
main/cron/add_gradebook_certificates.php

@@ -0,0 +1,36 @@
+<?php
+/* For licensing terms, see /license.txt */
+
+/**
+ * Adds gradebook certificates to gradebook_certificate table from users
+ * who have achieved the requirements but have not reviewed them yet
+ * @package chamilo.cron
+ * @author Imanol Losada <imanol.losada@beeznest.com>
+ */
+
+require_once __DIR__.'/../inc/global.inc.php';
+require_once api_get_path(LIBRARY_PATH).'database.lib.php';
+require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
+
+/**
+ * Get all categories and users ids from gradebook
+ * @return array Categories and users ids
+ */
+function getAllCategoriesAndUsers() {
+    $table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_RESULT);
+    $jointable = Database::get_main_table(TABLE_MAIN_GRADEBOOK_EVALUATION);
+    $joinStatement = ' JOIN '.$jointable.' ON '.$table.'.evaluation_id = '.$jointable.'.id';
+    return Database::select(
+        'DISTINCT '.$jointable.'.category_id,'.$table.'.user_id',
+        $table.$joinStatement
+    );
+}
+
+if ($categoriesAndUsers = getAllCategoriesAndUsers()) {
+    foreach ($categoriesAndUsers as $categoryAndUser) {
+        Category::register_user_certificate(
+            $categoryAndUser['category_id'],
+            $categoryAndUser['user_id']
+        );
+    }
+}

+ 325 - 192
main/css/base.css

@@ -5,6 +5,7 @@
 /* some changes to the bootstrap.css */
 /* some changes to the bootstrap.css */
 
 
 /* when doing a var_dump*/
 /* when doing a var_dump*/
+
 pre {
 pre {
     margin-top:40px;
     margin-top:40px;
 }
 }
@@ -349,52 +350,6 @@ form .formw input {
 
 
 /* New changes Chamilo 1.9 */
 /* New changes Chamilo 1.9 */
 
 
-.well h4 {
-    padding: 3px 15px;
-}
-
-#login_block #formLogin,
-#login_block #lang_form,
-#notice_block .homepage_notice {
-    padding: 3px 15px;
-}
-
-.nav-list > .active > a,
-.nav-list > .active > a:hover {
-    background-color: #999999;
-}
-
-.sidebar-nav {
-    padding:  8px 0px;
-}
-
-.sidebar-nav-skill-wheel {
-    padding-top:  0px;
-}
-
-.well_border {
-    /* border: 1px solid rgba(0, 0, 0, 0.05);*/
-    border: 1px solid #E1E1E0;
-    border-radius: 4px 4px 4px 4px;
-    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05) inset;
-    margin-bottom: 20px;
-    min-height: 20px;
-    padding: 19px;
-}
-
-.well_login {
-    margin: 0 auto;
-    width: 200px;
-}
-
-.well_login button {
-    margin-left: 0px;
-}
-
-#progress_bar img {
-    height:26px;
-}
-
 #lp_navigation_elem .buttons{
 #lp_navigation_elem .buttons{
     margin-bottom: 5px;
     margin-bottom: 5px;
 }
 }
@@ -411,15 +366,8 @@ html {
     min-height: 100%;
     min-height: 100%;
 }
 }
 
 
-body {
-    margin-bottom: 80px;
-    /* hack ignored by non-IE to enable ie to support :hover on button */
-    behavior:url("/main/css/csshover3.htc");
-    background-color: #fff;
-}
-
 footer {
 footer {
-    position: absolute;
+    position: relative;
     bottom: 0;
     bottom: 0;
     width: 100%;
     width: 100%;
     height: 80px;
     height: 80px;
@@ -447,6 +395,7 @@ footer {
     -moz-border-radius: 4px;
     -moz-border-radius: 4px;
     -webkit-border-radius: 4px;
     -webkit-border-radius: 4px;
     box-shadow: 0 1px 1px rgba(0,0,0,0.05);
     box-shadow: 0 1px 1px rgba(0,0,0,0.05);
+    margin-bottom: 20px;
 }
 }
 [dir=rtl] .actions {
 [dir=rtl] .actions {
     background:#efefef;
     background:#efefef;
@@ -456,7 +405,6 @@ footer {
     vertical-align:middle;
     vertical-align:middle;
     float: right;
     float: right;
 }
 }
-
 .actions .actions-pagination {
 .actions .actions-pagination {
   float:right;
   float:right;
   margin-top:2px;
   margin-top:2px;
@@ -474,26 +422,19 @@ footer {
 .actions form {
 .actions form {
     margin-bottom: 0px;
     margin-bottom: 0px;
 }
 }
-
 .actions fieldset {
 .actions fieldset {
     margin-top:0px;
     margin-top:0px;
 }
 }
-
-
 .muted {
 .muted {
-    color: #999999 !important;
+  color: #999999 !important;
 }
 }
-
-
 .actions a {
 .actions a {
     display: inline-block;
     display: inline-block;
     margin-right: 10px;
     margin-right: 10px;
 }
 }
-
 .actions .btn-toolbar {
 .actions .btn-toolbar {
     margin : 0px;
     margin : 0px;
 }
 }
-
 .actions span {
 .actions span {
     display: inline-block;
     display: inline-block;
     margin-right: 10px;
     margin-right: 10px;
@@ -503,11 +444,9 @@ footer {
     margin-right: 10px;
     margin-right: 10px;
     vertical-align:middle;
     vertical-align:middle;
 }
 }
-
 .actions fieldset {
 .actions fieldset {
     margin-top:0px;
     margin-top:0px;
 }
 }
-
 #friend-container .thumbnail {
 #friend-container .thumbnail {
     min-height: 140px;
     min-height: 140px;
 }
 }
@@ -2389,11 +2328,9 @@ div.admin_section h4 {
     /*min-width: 173px; */
     /*min-width: 173px; */
 }
 }
 
 
-.lp_tree {
-    padding: 15px;
-}
 #lp_item_list {
 #lp_item_list {
-    margin:0px;
+    margin:0;
+    padding: 0;
 }
 }
 #lp_item_list, #lp_item_list li {
 #lp_item_list, #lp_item_list li {
     list-style-type: none;
     list-style-type: none;
@@ -3160,6 +3097,7 @@ form .formw .freeze {
 }
 }
 .skill-options .skill-home{
 .skill-options .skill-home{
   margin-top: 1em;
   margin-top: 1em;
+  margin-bottom: 1em;
 }
 }
 .skill-options .btn-block {
 .skill-options .btn-block {
   box-sizing: border-box;
   box-sizing: border-box;
@@ -3179,7 +3117,6 @@ form .formw .freeze {
   margin-top: 1em;
   margin-top: 1em;
 }
 }
 .skill-options .form-search .holder{
 .skill-options .form-search .holder{
-  border: 1px solid #cccccc;
   padding-left: .5em;
   padding-left: .5em;
   padding-right: .5em;
   padding-right: .5em;
 }
 }
@@ -3245,6 +3182,7 @@ form .formw .freeze {
   background-color: #FFFFFF;
   background-color: #FFFFFF;
   padding-top: .5em;
   padding-top: .5em;
   padding-bottom: .5em;
   padding-bottom: .5em;
+  margin-bottom: 1em;
 }
 }
 .skill-options .section-info-skill{
 .skill-options .section-info-skill{
   display: inline-block;
   display: inline-block;
@@ -3267,6 +3205,9 @@ form .formw .freeze {
 .skill-options .button-skill{
 .skill-options .button-skill{
   margin-bottom: .5em;
   margin-bottom: .5em;
 }
 }
+.search-skill ul.holder li.bit-input input{
+  width: 100%;
+}
 .page-items-profile{
 .page-items-profile{
   padding-top: 2em;
   padding-top: 2em;
   padding-bottom: 2em;
   padding-bottom: 2em;
@@ -4316,7 +4257,7 @@ a.forum_group_link {
     left: 0;
     left: 0;
     position: fixed;
     position: fixed;
     right: 0;
     right: 0;
-    top: 38px;
+    top: 0px;
     z-index: 1030;
     z-index: 1030;
 }
 }
 
 
@@ -4338,26 +4279,8 @@ a.forum_group_link {
     padding-top:8px;
     padding-top:8px;
 }
 }
 
 
-footer {
-    /* Default gray footer */
-    background-color: #F5F5F5; /* Old browsers */
-    background-repeat: repeat-x; /* Repeat the gradient */
-    background-image: -moz-linear-gradient(top, #F5F5F5 0%, #EEEEEE 100%); /* FF3.6+ */
-    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F5F5F5), color-stop(100%,#EEEEEE)); /* Chrome,Safari4+ */
-    background-image: -webkit-linear-gradient(top, #F5F5F5 0%, #EEEEEE 100%); /* Chrome 10+,Safari 5.1+ */
-    background-image: -ms-linear-gradient(top, #F5F5F5 0%,#EEEEEE 100%); /* IE10+ */
-    background-image: -o-linear-gradient(top, #F5F5F5 0%,#EEEEEE 100%); /* Opera 11.10+ */
-    /* Fixes bug in ie8 */
-    /* filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F5F5F5', endColorstr='#EEEEEE',GradientType=0 ); */ /* IE6-9 */
-    background-image: linear-gradient(top, #F5F5F5 0%, #EEEEEE 100%); /* W3C */
-}
-
 /* Default LP left column values */
 /* Default LP left column values */
 
 
-#learning_path_breadcrumb_zone {
-
-}
-
 #learning_path_left_zone {
 #learning_path_left_zone {
     float:left;
     float:left;
     width:315px;
     width:315px;
@@ -4427,6 +4350,9 @@ footer {
     bottom: 0;
     bottom: 0;
     left: 0px;
     left: 0px;
     margin-bottom: 0px;
     margin-bottom: 0px;
+    background:#ECF0F1;
+    padding: 20px;
+    border-top: 3px solid #DCE4EC;
 }
 }
 
 
 .doc_folder {
 .doc_folder {
@@ -4548,104 +4474,6 @@ footer {
     box-shadow:none;
     box-shadow:none;
 }
 }
 
 
-i.size-32{
-    width:32px;
-    height:32px;
-    line-height: 32px;
-    margin:0;
-    padding:0;
-    border:none;
-    border-radius: 0;
-    background-repeat: no-repeat;
-    background-position:center center;
-    box-shadow:none;
-    background-color: transparent;
-    display:inline-block;
-}
-
-i.size-32.icon-new-folder{
-    background-image:  url('../img/icons/32/new_folder.png');
-}
-
-i.size-32.icon-new-link{
-    background-image:  url('../img/icons/32/new_link.png');
-}
-
-i.size-32.icon-export-csv{
-    background-image:  url('../img/icons/32/export_csv.png');
-}
-
-i.size-32.icon-import-csv{
-    background-image:  url('../img/icons/32/import_csv.png');
-}
-
-i.size-32.icon-delete-all{
-    background-image:  url('../img/icons/32/delete.png');
-}
-
-i.size-32.icon-back{
-    background-image:  url('../img/icons/32/back.png');
-}
-
-i.size-32.icon-settings{
-    background-image:  url('../img/icons/32/settings.png');
-}
-
-i.size-32.icon-view-detailed{
-    background-image:  url('../img/icons/32/view_detailed.png');
-}
-
-i.size-32.icon-view-text{
-    background-image:  url('../img/icons/32/view_text.png');
-}
-
-i.size-32.icon-sort-by-created-date{
-    background-image:  url('../img/icons/32/notes_order_by_date_new.png');
-}
-
-i.size-32.icon-sort-by-modified-date{
-    background-image:  url('../img/icons/32/notes_order_by_date_mod.png');
-}
-
-i.size-32.icon-sort-by-title{
-    background-image:  url('../img/icons/32/notes_order_by_title.png');
-}
-
-i.size-32.icon-new-announce{
-    background-image:  url('../img/icons/32/new_announce.png');
-}
-
-i.size-22{
-    width:22px;
-    height:22px;
-    line-height: 22px;
-    margin:0;
-    padding:0;
-    border:none;
-    border-radius: 0;
-    background-repeat: no-repeat;
-    background-position:center center;
-    box-shadow:none;
-    background-color: transparent;
-    display:inline-block;
-}
-
-i.size-22.icon-edit{
-    background-image:  url('../img/icons/22/edit.png');
-}
-
-i.size-22.icon-delete{
-    background-image:  url('../img/icons/22/delete.png');
-}
-
-i.icon-collapse{
-    background-image:  url('../img/div_show.gif');
-}
-
-i.icon-expand{
-    background-image:  url('../img/div_hide.gif');
-}
-
 .announcement {
 .announcement {
     /*    background: none repeat scroll 0 0 #F2F2F2;*/
     /*    background: none repeat scroll 0 0 #F2F2F2;*/
     border: 1px solid #D3D3D3;
     border: 1px solid #D3D3D3;
@@ -5238,23 +5066,23 @@ i.size-32.icon-new-work{
 .title-question{
 .title-question{
   font-size: 22px;
   font-size: 22px;
 }
 }
-#display-survey.table tbody tr th, #display-survey.table tbody tr:hover th{
+.display-survey.table tbody tr th, .display-survey.table tbody tr:hover th{
     background-color:#666;
     background-color:#666;
     text-align: center;
     text-align: center;
     font-size: 14px;
     font-size: 14px;
     color: #FFFFFF;
     color: #FFFFFF;
 }
 }
-#display-survey .total{
+.display-survey .total{
     background-color: #EBF3F5;
     background-color: #EBF3F5;
     text-align: center;
     text-align: center;
 }
 }
-#display-survey .center{
+.display-survey .center{
     text-align: center;
     text-align: center;
 }
 }
-#display-survey{
+.display-survey{
     border: 1px solid #ddd;
     border: 1px solid #ddd;
 }
 }
-#display-survey.table tbody tr:hover td,#display-survey.table tbody tr:hover th{
+.display-survey.table tbody tr:hover td,.display-survey.table tbody tr:hover th{
     background-color: none;
     background-color: none;
 }
 }
 .answered-people{
 .answered-people{
@@ -5267,3 +5095,308 @@ i.size-32.icon-new-work{
     font-size: 16px;
     font-size: 16px;
     font-weight: normal;
     font-weight: normal;
 }
 }
+/* CSS BASE BOOSTRAP 3 */
+.openbadges-introduction{
+  line-height: 30px;
+  margin-bottom: 30px;
+}
+.openbadges-introduction .title{
+  text-align: center;
+  margin-bottom: 20px;
+  color: #456176;
+  font-size: 35px;
+}
+.openbadges-introduction .lead{
+  font-size: 15px;
+}
+.openbadges-introduction .sub-title{
+  color: #456176;
+  text-align: center;
+  font-size: 20px;
+}
+.openbadges-introduction .badges-tablet{
+  padding-top: 15px;
+}
+.openbadges-introduction .block-content{
+  padding-top: 30px;
+  padding-bottom: 30px;
+}
+.openbadges-introduction .block-edit{
+  padding-top: 15px;
+  padding-bottom: 30px;
+}
+.openbadges-introduction .block-content .block-title,
+.openbadges-introduction .block-edit .block-title{
+  background-color: #e2eceb;
+  border: 1px solid #456176;
+  padding-left:10px;
+  padding-right: 10px;
+  padding-top: 5px;
+  padding-bottom: 5px;
+  font-size: 16px;
+  color: #456176;
+}
+.openbadges-introduction .block-content p{
+  padding-left: 5%;
+  font-size: 14px;
+}
+.openbadges-tablet{
+ margin-top: 15px;
+}
+.openbadges-tablet .table thead{
+  background-color: #E2ECEB;
+  border-top: 1px solid #677F8F;
+  border-bottom: 1px solid #677F8F;
+  border-left: 1px solid #677F8F;
+  border-right: 1px solid #677F8F;
+  font-size: 16px;
+  color: #456176;
+}
+.openbadges-tablet .table thead tr th{
+  font-weight: normal;
+}
+.openbadges-tablet .table td{
+  border-top: 1px solid #677F8F;
+  vertical-align: middle;
+
+}
+.openbadges-tabs ul.nav-tabs li a{
+  background-color: #E2ECEB;
+  border-top: 1px solid #677F8F;
+  border-right: 1px solid #677F8F;
+  border-left: 1px solid #677F8F;
+  border-bottom: 1px solid #677F8F;
+}
+.openbadges-tabs ul.nav-tabs .active a{
+  background: #fff;
+  border-bottom: 1px solid #ffffff;
+}
+.openbadges-tabs .nav-tabs{
+  border-bottom: 1px solid #677F8F;
+}
+.create-openbadges{
+  text-align: center;
+  margin-bottom: 10px;
+  padding-top: 5px;
+  padding-bottom: 5px;
+}
+.openbadges-img, .openbadges-view{
+  text-align: center;
+  padding: 10px;
+  margin-top: 10px;
+  border: 1px solid #b2b2b2;
+}
+.openbadges-text{
+  text-align: center;
+}
+/* Social Profile */
+
+.social-avatar{
+  text-align: center;
+  padding-top: 10px;
+}
+.social-avatar .avatar-profile{
+  margin-bottom: 5px;
+}
+.social-avatar .avatar-profile .img-responsive{
+  display: inline-block;
+  margin: auto;
+}
+.social-avatar .lastname{
+  font-size: 18px;
+  font-weight: bold;
+  color: #4d4d4d;
+}
+.social-avatar .firstname{
+  font-size: 16px;
+  font-weight: bold;
+  color: #4d4d4d;
+  margin-bottom: 5px;
+}
+.social-avatar .edit-profile{
+  margin-top: 15px;
+  margin-bottom: 15px;
+}
+.social-search form{
+  margin-bottom: 0px;
+}
+.social-group .group-title{
+  color: #456176;
+  font-weight: bold;
+  font-size: 14px;
+}
+.social-skill .list-badges{
+  list-style: none;
+  padding-left: 8px;
+  margin:0px;
+}
+.social-skill .list-badges li{
+  margin-top: 10px;
+  display: inline-block;
+  width: 100px;
+  margin-right: 5px;
+  font-size: 11px;
+  text-align: center;
+  border: 1px solid #bce8f1;
+  border-radius: 5px;
+  box-sizing: border-box;
+  vertical-align: top;
+  box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.09);
+}
+.social-skill .list-badges li img{
+  height: 100%;
+  max-height: 64px;
+  width: 100%;
+  max-width: 64px;
+  margin-top: 10px;
+  margin-bottom: 10px;
+}
+.social-skill .list-badges .badges-name{
+  background: #D9EDF7;
+  min-height: 35px;
+  border-bottom-left-radius: 4px;
+  border-bottom-right-radius: 4px;
+  color: #31708F;
+}
+.social-skill .dropdown-menu{
+  top: 30px;
+}
+.social-group .list-group-newest .items{
+  display: block;
+}
+.social-group .list-group-newest .items .group-image{
+  vertical-align: top;
+  padding-left: 10px;
+  padding-right: 10px;
+}
+.social-group .list-group-newest .items .group-image,
+.social-group .list-group-newest .items .group-info
+{
+  display: inline-block;
+}
+.social-group .list-group-newest .items .group-info{
+  width: auto;
+}
+.social-group .items{
+  border-bottom: 1px dotted #B1DDE0;
+  padding-bottom: 5px;
+  margin-bottom: 5px;
+}
+.social-group .group-name a{
+  font-size: 14px;
+  font-weight: bold;
+  color: #4D4D4D;
+}
+.social-group .count-username{
+  font-size: 12px;
+  color: #4D4D4D;
+}
+.social-group .description p{
+  color: #4D4D4D;
+  padding-top: 10px;
+  padding-bottom: 0px;
+  font-size: 11px;
+}
+.social-post .mediaPost{
+  padding-top:10px;
+  padding-bottom: 5px;
+  margin-bottom: 5px;
+}
+.social-post .sub-mediapost{
+  padding-left: 20px;
+  margin-left: 20px;
+}
+.top-mediapost .user-image img,
+.sub-mediapost .user-image img
+{
+  width: 50px;
+  height: 50px;
+  max-width: 50px;
+  max-height: 50px;
+}
+.top-mediapost .user-image,
+.sub-mediapost .user-image
+{
+  vertical-align: top;
+}
+.top-mediapost .user-image .avatar-thumb,
+.sub-mediapost .user-image .avatar-thumb{
+  padding: 5px;
+  border: 1px solid #dddddd;
+  margin-bottom: 5px;
+  margin-right: 5px;
+}
+.top-mediapost .user-data .username a,
+.sub-mediapost .user-data .username a{
+  font-size: 14px;
+  font-weight: bold;
+  color: #4D4D4D;
+}
+.top-mediapost .user-data .time,
+.sub-mediapost .user-data .time
+{
+  color: #9197a3;
+}
+.top-mediapost .msg-content .img-post .thumbnail,
+.sub-mediapost .msg-content .img-post .thumbnail{
+  border: 1px solid #dddddd;
+}
+.top-mediapost .msg-content p,
+.sub-mediapost .rep-post .msg-content p{
+  border-top:1px solid #dddddd;
+  padding-top: 5px;
+  padding-bottom: 5px;
+  margin-top: 5px;
+  margin-bottom: 5px;
+  line-height: 18px;
+  padding-left: 10px;
+  padding-right: 10px;
+}
+.top-mediapost .user-data .username a:hover,
+.sub-mediapost .user-data .username a:hover{
+  text-decoration: underline;
+}
+.top-mediapost .user-image, .top-mediapost .user-data,
+.sub-mediapost .rep-post .user-image, .sub-mediapost .rep-post .user-data{
+  display: inline-block;
+}
+
+.deleted-mgs a{
+  float: right;
+  font-size: 18px;
+  font-weight: bold;
+  text-shadow: 0 1px 0 #fff;
+  opacity: 0.2;
+  filter: alpha(opacity=20);
+  color: #000000;
+}
+
+.social-rss .title-rss{
+  margin-bottom: 5px;
+  margin-top: 5px;
+  font-size: 14px;
+}
+.social-rss .rss-items{
+  padding-top: 10px;
+  padding-bottom: 5px;
+  margin-bottom: 5px;
+}
+.social-rss .rss-items .rss-title a{
+  color: #4D4D4D;
+}
+.social-rss .rss-items .rss-title a:hover{
+  text-decoration: underline;
+}
+.social-rss .rss-items .rss-content p{
+  line-height: 18px;
+  font-size: 12px;
+  color: #666;
+}
+.menu-column .nav li a{
+  padding: 5px;
+  font-size: 12px;
+}
+.menu-column .nav li a img{
+  vertical-align: bottom;
+  margin-right: 5px;
+}

+ 1 - 1
main/css/base_chamilo.css

@@ -1003,7 +1003,7 @@ padding-top: 0px;   padding-right: 0px; padding-bottom: 0px;    padding-left: 0p
 .skip {
 .skip {
     display: none;
     display: none;
 }
 }
-
+/*
  Added: to fit img and blocks in home page
  Added: to fit img and blocks in home page
 */
 */
 #hellomindfactory {
 #hellomindfactory {

+ 21 - 2
main/css/chamilo/default.css

@@ -189,6 +189,25 @@ td,
 th {
 th {
   padding: 0;
   padding: 0;
 }
 }
+footer{
+  background-image: -webkit-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);
+  background-image: -o-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#54b4eb), color-stop(60%, #2fa4e7), to(#1d9ce5));
+  background-image: linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);
+  background-repeat: no-repeat;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff54b4eb', endColorstr='#ff1d9ce5', GradientType=0);
+  border-bottom: 1px solid #178acc;
+  -webkit-filter: none;
+  filter: none;
+  -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
+  box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
+}
+footer{
+  color: #ffffff;
+}
+footer a{
+  color: #ffffff;
+}
 /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
 /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
 @media print {
 @media print {
   *,
   *,
@@ -6332,9 +6351,9 @@ button.close {
 .show {
 .show {
   display: block !important;
   display: block !important;
 }
 }
-.invisible {
+/*.invisible {
   visibility: hidden;
   visibility: hidden;
-}
+}*/
 .text-hide {
 .text-hide {
   font: 0/0 a;
   font: 0/0 a;
   color: transparent;
   color: transparent;

+ 9 - 9
main/dashboard/dashboard.php

@@ -55,33 +55,33 @@ if (isset($dashboard_view) && $dashboard_view == 'blocks') {
 			}
 			}
 		}
 		}
 
 
-		echo '<div id="columns">';
+		echo '<div id="columns" class="row">';
 		if (count($columns) > 0) {
 		if (count($columns) > 0) {
 			$columns_name = array_keys($columns);
 			$columns_name = array_keys($columns);
 			// blocks for column 1
 			// blocks for column 1
 			if (in_array('column_1',$columns_name)) {
 			if (in_array('column_1',$columns_name)) {
-				echo '<ul id="column1" class="column">';
+				echo '<div id="column1" class="col-md-6">';
 					foreach ($columns['column_1'] as $content) {
 					foreach ($columns['column_1'] as $content) {
 						echo $content;
 						echo $content;
 					}
 					}
-				echo '</ul>';
+				echo '</div>';
 			} else {
 			} else {
-				echo '<ul id="column1" class="column">';
+				echo '<div id="column1" class="col-md-6">';
 				echo '&nbsp;';
 				echo '&nbsp;';
-				echo '</ul>';
+				echo '</div>';
 			}
 			}
 			// blocks for column 2
 			// blocks for column 2
 			if (in_array('column_2',$columns_name)) {
 			if (in_array('column_2',$columns_name)) {
 				// blocks for column 1
 				// blocks for column 1
-				echo '<ul id="column2" class="column">';
+				echo '<div id="column2" class="col-md-6">';
 					foreach ($columns['column_2'] as $content) {
 					foreach ($columns['column_2'] as $content) {
 						echo $content;
 						echo $content;
 					}
 					}
-				echo '</ul>';
+				echo '</div>';
 			} else {
 			} else {
-				echo '<ul id="column2" class="column">';
+				echo '<div id="column2" class="col-md-6">';
 				echo '&nbsp;';
 				echo '&nbsp;';
-				echo '</ul>';
+				echo '</div>';
 			}
 			}
 		}
 		}
 		echo '</div>';
 		echo '</div>';

+ 10 - 1
main/document/create_document.php

@@ -44,6 +44,15 @@ $(document).ready(function() {
         showTemplates();
         showTemplates();
     });
     });
 });
 });
+
+function setFocus() {
+   $("#document_title").focus();
+}
+
+$(window).load(function () {
+	setFocus();
+});
+
 </script>';
 </script>';
 
 
 //I'm in the certification module?
 //I'm in the certification module?
@@ -579,7 +588,7 @@ if ($form->validate()) {
 		Display::display_normal_message($create_certificate.': <br /><br/>'.$str_info,false);
 		Display::display_normal_message($create_certificate.': <br /><br/>'.$str_info,false);
 	}
 	}
     // HTML-editor
     // HTML-editor
-    echo '<div class="row-fluid" style="overflow:hidden">
+    echo '<div class="row" style="overflow:hidden">
             <div id="template_col" class="col-md-3" style="width:200px">
             <div id="template_col" class="col-md-3" style="width:200px">
                 <div id="frmModel" ></div>
                 <div id="frmModel" ></div>
             </div>
             </div>

+ 4 - 4
main/document/document.php

@@ -382,12 +382,12 @@ switch ($action) {
 
 
             if (file_exists($copyfile)) {
             if (file_exists($copyfile)) {
                 $message = get_lang('CopyAlreadyDone').'</p><p>';
                 $message = get_lang('CopyAlreadyDone').'</p><p>';
-                $message .= '<a class = "btn" '.
+                $message .= '<a class = "btn btn-default" '.
                         'href="'.api_get_self().'?'.api_get_cidreq().'&amp;id='.$parent_id.'">'.
                         'href="'.api_get_self().'?'.api_get_cidreq().'&amp;id='.$parent_id.'">'.
                         get_lang("No").
                         get_lang("No").
                     '</a>'.
                     '</a>'.
                     '&nbsp;&nbsp;|&nbsp;&nbsp;'.
                     '&nbsp;&nbsp;|&nbsp;&nbsp;'.
-                    '<a class = "btn" href="'.api_get_self().'?'.
+                    '<a class = "btn btn-default" href="'.api_get_self().'?'.
                         api_get_cidreq().'&amp;action=copytomyfiles&amp;id='.$document_info['id'].
                         api_get_cidreq().'&amp;action=copytomyfiles&amp;id='.$document_info['id'].
                         '&amp;copy=yes">'.
                         '&amp;copy=yes">'.
                     get_lang('Yes').
                     get_lang('Yes').
@@ -1369,7 +1369,7 @@ if ($is_allowed_to_edit ||
         $templateForm .= '<tr><td>'.get_lang('TemplateImage').' : </td>';
         $templateForm .= '<tr><td>'.get_lang('TemplateImage').' : </td>';
         $templateForm .= '<td><input type="file" name="template_image" id="template_image" /></td></tr>';
         $templateForm .= '<td><input type="file" name="template_image" id="template_image" /></td></tr>';
         $templateForm .= '</table>';
         $templateForm .= '</table>';
-        $templateForm .= '<button type="submit" class="add" name="create_template">'.get_lang('CreateTemplate').'</button>';
+        $templateForm .= '<button type="submit" class="btn-default" name="create_template">'.get_lang('CreateTemplate').'</button>';
         $templateForm .= '</form>';
         $templateForm .= '</form>';
     } elseif (isset($_GET['add_as_template']) && isset($_POST['create_template'])) {
     } elseif (isset($_GET['add_as_template']) && isset($_POST['create_template'])) {
 
 
@@ -1514,7 +1514,7 @@ if (!$is_certificate_mode) {
     $form = new FormValidator('search_document', 'get', api_get_self().'?'.api_get_cidreq());
     $form = new FormValidator('search_document', 'get', api_get_self().'?'.api_get_cidreq());
     $renderer = & $form->defaultRenderer();
     $renderer = & $form->defaultRenderer();
     $renderer->setElementTemplate('<span>{element}</span> ');
     $renderer->setElementTemplate('<span>{element}</span> ');
-    $form->addText('keyword', '', false, array('class' => 'span2'));
+    $form->addText('keyword', '', false, array('class' => 'col-md-2'));
     $form->addElement('hidden', 'cidReq', api_get_course_id());
     $form->addElement('hidden', 'cidReq', api_get_course_id());
     $form->addElement('hidden', 'id_session', api_get_session_id());
     $form->addElement('hidden', 'id_session', api_get_session_id());
     $form->addElement('hidden', 'gidReq', $groupId);
     $form->addElement('hidden', 'gidReq', $groupId);

+ 2 - 1
main/document/showinframes.php

@@ -348,7 +348,8 @@ if ($show_web_odf) {
     echo '</div>';
     echo '</div>';
 } else {
 } else {
     // ViewerJS already have download button
     // ViewerJS already have download button
-    echo '<a class="btn" href="'.$file_url_web.'" target="_blank">'.get_lang('Download').'</a>';
+    echo '<a class="btn btn-default" href="'.$file_url_web.'" target="_blank"><i class="fa fa-download"></i>
+'.get_lang('Download').'</a>';
 }
 }
 
 
 echo '</div>';
 echo '</div>';

+ 1 - 1
main/dropbox/dropbox_functions.inc.php

@@ -578,7 +578,7 @@ function display_add_form($dropbox_unid, $viewReceivedCategory, $viewSentCategor
     }
     }
 
 
     $form->addElement('select', 'recipients', get_lang('SendTo'), $options, array('multiple' => 'multiple', 'size' => '10', 'class' => 'span4'));
     $form->addElement('select', 'recipients', get_lang('SendTo'), $options, array('multiple' => 'multiple', 'size' => '10', 'class' => 'span4'));
-    $form->addElement('button', 'submitWork', get_lang('Upload'));
+    $form->addElement('button', 'submitWork', get_lang('Upload'),'paper-plane','btn btn-success');
     $form->display();
     $form->display();
 }
 }
 
 

BIN
main/img/icons/128/badges-default.png


BIN
main/img/icons/22/edit-skill.png


BIN
main/img/icons/22/skill-badges.png


BIN
main/img/icons/22/social-files.png


BIN
main/img/icons/22/social-friends.png


BIN
main/img/icons/22/social-groups.png


BIN
main/img/icons/22/social-home.png


BIN
main/img/icons/22/social-invitations.png


BIN
main/img/icons/22/social-message.png


BIN
main/img/icons/22/social-profile.png


BIN
main/img/icons/22/social-search.png


BIN
main/img/icons/22/social_rss.png


BIN
main/img/icons/64/badges-default.png


BIN
main/img/icons/64/badges.png


BIN
main/img/openbadges.png


+ 1 - 1
main/inc/ajax/social.ajax.php

@@ -196,7 +196,7 @@ switch ($action) {
             for($i = 0; $i < count($array); $i++) {
             for($i = 0; $i < count($array); $i++) {
                 $post = $array[$i]['html'];
                 $post = $array[$i]['html'];
                 $comment = SocialManager::getWallMessagesHTML($userId, $friendId, $array[$i]['id']);
                 $comment = SocialManager::getWallMessagesHTML($userId, $friendId, $array[$i]['id']);
-                $html .= '<div class="well_border">'.$post.$comment.'</div>';
+                $html .= '<div class="panel panel-info"><div class="panel-body">'.$post.$comment.'</div></div>';
             }
             }
             $html .= Display::div(
             $html .= Display::div(
                 Display::url(
                 Display::url(

+ 40 - 5
main/inc/lib/display.lib.php

@@ -83,8 +83,9 @@ class Display
 
 
         if (!empty(self::$preview_style)) {
         if (!empty(self::$preview_style)) {
             self::$global_template->preview_theme = self::$preview_style;
             self::$global_template->preview_theme = self::$preview_style;
-            self::$global_template->set_css_files();
+            self::$global_template->setCssFiles();
             self::$global_template->set_js_files();
             self::$global_template->set_js_files();
+            self::$global_template->setCssCustomFiles();
         }
         }
         if (!empty($page_header)) {
         if (!empty($page_header)) {
             self::$global_template->assign('header', $page_header);
             self::$global_template->assign('header', $page_header);
@@ -1891,15 +1892,14 @@ class Display
      */
      */
     public static function group_button($title, $elements)
     public static function group_button($title, $elements)
     {
     {
-        $html = '<div class="btn-toolbar">
-            <div class="btn-group">
-            <button class="btn dropdown-toggle" data-toggle="dropdown">'.$title.' <span class="caret"></span></button>
+        $html = '<div class="btn-group">
+            <button class="btn btn-default dropdown-toggle" data-toggle="dropdown">'.$title.'  <span class="caret"></span></button>
             <ul class="dropdown-menu">';
             <ul class="dropdown-menu">';
         foreach ($elements as $item) {
         foreach ($elements as $item) {
             $html .= Display::tag('li', Display::url($item['title'], $item['href']));
             $html .= Display::tag('li', Display::url($item['title'], $item['href']));
         }
         }
         $html .= '</ul>
         $html .= '</ul>
-            </div> </div>';
+            </div>';
         return $html;
         return $html;
     }
     }
 
 
@@ -1987,4 +1987,39 @@ class Display
     {
     {
         Session::erase('flash_messages');
         Session::erase('flash_messages');
     }
     }
+
+    /**
+     * Get the profile edition link for a user
+     * @param int $userId The user id
+     * @param boolean $asAdmin Optional. Whether get the URL for the platform admin
+     * @return string The link
+     */
+    public static function getProfileEditionLink($userId, $asAdmin = false)
+    {
+        $editProfileUrl = api_get_path(WEB_CODE_PATH) . 'auth/profile.php';
+
+        if ($asAdmin) {
+            $editProfileUrl = api_get_path(WEB_CODE_PATH) . "admin/user_edit.php?user_id=" . intval($userId);
+        }
+
+        if (api_get_setting('sso_authentication') === 'true') {
+            $subSSOClass = api_get_setting('sso_authentication_subclass');
+
+            $objSSO = null;
+
+            if (!empty($subSSOClass)) {
+                require_once api_get_path(SYS_CODE_PATH) . "auth/sso/sso.$subSSOClass.class.php";
+
+                $subSSOClass = 'sso' . $subSSOClass;
+                $objSSO = new $subSSOClass();
+            } else {
+                $objSSO = new sso();
+            }
+
+            $editProfileUrl = $objSSO->generateProfileEditingURL($userId, $asAdmin);
+        }
+
+        return $editProfileUrl;
+    }
+
 }
 }

+ 1 - 1
main/inc/lib/document.lib.php

@@ -5775,7 +5775,7 @@ class DocumentManager
         $form->addElement('hidden', 'id', intval($dirId));
         $form->addElement('hidden', 'id', intval($dirId));
         $form->addElement('header', '', get_lang('CreateDir'));
         $form->addElement('header', '', get_lang('CreateDir'));
         $form->addElement('text', 'dirname', get_lang('NewDir'), array('autofocus' => 'autofocus'));
         $form->addElement('text', 'dirname', get_lang('NewDir'), array('autofocus' => 'autofocus'));
-        $form->addElement('style_submit_button', 'submit', get_lang('CreateFolder'), 'class="add"');
+        $form->addElement('style_submit_button', 'submit','<i class="fa fa-folder-open"></i> '. get_lang('CreateFolder'), 'class="btn-primary"');
         $new_folder_text = $form->return_form();
         $new_folder_text = $form->return_form();
         return $new_folder_text;
         return $new_folder_text;
     }
     }

+ 1 - 1
main/inc/lib/javascript/tag/jquery.fcbkcomplete.js

@@ -201,7 +201,7 @@ jQuery(
 	                var input = $(document.createElement("input"));
 	                var input = $(document.createElement("input"));
 	                
 	                
 	                li.attr({"class": "bit-input","id": elemid + "_annoninput"});        
 	                li.attr({"class": "bit-input","id": elemid + "_annoninput"});        
-	                input.attr({"type": "text","class": "maininput","size": "1"});        
+	                input.attr({"type": "text","class": "maininput","size": "1"});
 	                holder.append(li.append(input));
 	                holder.append(li.append(input));
 	                
 	                
 	                input.focus(
 	                input.focus(

+ 3 - 13
main/inc/lib/skill.lib.php

@@ -500,20 +500,10 @@ class Skill extends Model
                 $row['level']       = count($a) - 1;
                 $row['level']       = count($a) - 1;
                 $row['gradebooks']  = self::get_gradebooks_by_skill($row['id']);
                 $row['gradebooks']  = self::get_gradebooks_by_skill($row['id']);
                 $skills[$row['id']] = $row;
                 $skills[$row['id']] = $row;
-            }
-        }
 
 
-        /*
-        if ($load_user_data && $user_id) {
-            $passed_skills = $this->get_user_skills($user_id);
-            foreach ($skills as &$skill) {
-                $skill['done_by_user'] = 0;
-                if (in_array($skill['id'], $passed_skills)) {
-                    $skill['done_by_user'] = 1;
-                }
-            }
-        }*/
 
 
+            }
+        }
 
 
         //Load all children of the parent_id
         //Load all children of the parent_id
         if (!empty($skills) && !empty($parent_id)) {
         if (!empty($skills) && !empty($parent_id)) {
@@ -740,6 +730,7 @@ class Skill extends Model
 
 
         $result = Database::query($sql);
         $result = Database::query($sql);
         $skills = Database::store_result($result, 'ASSOC');
         $skills = Database::store_result($result, 'ASSOC');
+
         $clean_skill = array();
         $clean_skill = array();
         if (!empty($skills)) {
         if (!empty($skills)) {
             foreach ($skills as $skill) {
             foreach ($skills as $skill) {
@@ -752,7 +743,6 @@ class Skill extends Model
                             sha1($skill['name'])
                             sha1($skill['name'])
                         );
                         );
                     }
                     }
-
                     $clean_skill[$skill['id']] = array_merge(
                     $clean_skill[$skill['id']] = array_merge(
                         $skill,
                         $skill,
                         array(
                         array(

+ 75 - 109
main/inc/lib/social.lib.php

@@ -420,17 +420,18 @@ class SocialManager extends UserManager
             if (!empty($rss->items)) {
             if (!empty($rss->items)) {
                 $icon_rss = '';
                 $icon_rss = '';
                 if (!empty($feed)) {
                 if (!empty($feed)) {
-                    $icon_rss = Display::url(Display::return_icon('rss.png', '', array(), 32), Security::remove_XSS($feed['rssfeeds']), array('target' => '_blank'));
+                    $icon_rss = Display::url(Display::return_icon('social_rss.png', '', array(), 22), Security::remove_XSS($feed['rssfeeds']), array('target' => '_blank'));
                 }
                 }
-                $res .= '<h2>'.$rss->channel['title'].''.$icon_rss.'</h2>';
-                $res .= '<div class="social-rss-channel-items">';
+
+                $res .= '<h3 class="title-rss">'.$icon_rss.' '.$rss->channel['title'].'</h3>';
+                $res .= '<div class="rss-items">';
                 foreach ($rss->items as $item) {
                 foreach ($rss->items as $item) {
                     if ($limit >= 0 and $i > $limit) {
                     if ($limit >= 0 and $i > $limit) {
                         break;
                         break;
                     }
                     }
-                    $res .= '<h3><a href="'.$item['link'].'">'.$item['title'].'</a></h3>';
-                    $res .= '<div class="social-rss-item-date">'.api_get_local_time($item['date_timestamp']).'</div>';
-                    $res .= '<div class="social-rss-item-content">'.$item['description'].'</div><br />';
+                    $res .= '<h4 class="rss-title"><a href="'.$item['link'].'">'.$item['title'].'</a></h4>';
+                    $res .= '<div class="rss-date">'.api_get_local_time($item['date_timestamp']).'</div>';
+                    $res .= '<div class="rss-content"><p>'.$item['description'].'</p></div>';
                     $i++;
                     $i++;
                 }
                 }
                 $res .= '</div>';
                 $res .= '</div>';
@@ -594,47 +595,34 @@ class SocialManager extends UserManager
         $group_pending_invitations = count($group_pending_invitations);
         $group_pending_invitations = count($group_pending_invitations);
         $total_invitations = $number_of_new_messages_of_friend + $group_pending_invitations;
         $total_invitations = $number_of_new_messages_of_friend + $group_pending_invitations;
         $total_invitations = (!empty($total_invitations) ? Display::badge($total_invitations) : '');
         $total_invitations = (!empty($total_invitations) ? Display::badge($total_invitations) : '');
-        $showUserImage = user_is_online($user_id) || api_is_platform_admin();
 
 
-        $html = '<div>';
+        $html = '<div class="avatar-profile">';
         if (in_array($show, $show_groups) && !empty($group_id)) {
         if (in_array($show, $show_groups) && !empty($group_id)) {
             //--- Group image
             //--- Group image
             $group_info = GroupPortalManager::get_group_data($group_id);
             $group_info = GroupPortalManager::get_group_data($group_id);
             $big = GroupPortalManager::get_picture_group($group_id, $group_info['picture_uri'], 160, GROUP_IMAGE_SIZE_BIG);
             $big = GroupPortalManager::get_picture_group($group_id, $group_info['picture_uri'], 160, GROUP_IMAGE_SIZE_BIG);
 
 
-            $html .= '<div class="social-content-image">';
-            $html .= '<div class="well social-background-content">';
+
             $html .= Display::url('<img src='.$big['file'].' class="social-groups-image" /> </a><br /><br />', api_get_path(WEB_CODE_PATH).'social/groups.php?id='.$group_id);
             $html .= Display::url('<img src='.$big['file'].' class="social-groups-image" /> </a><br /><br />', api_get_path(WEB_CODE_PATH).'social/groups.php?id='.$group_id);
             if (GroupPortalManager::is_group_admin($group_id, api_get_user_id())) {
             if (GroupPortalManager::is_group_admin($group_id, api_get_user_id())) {
-                $html .= '<div id="edit_image" class="hidden_message" style="display:none">
+                $html .= '<div id="edit_image">
                             <a href="'.api_get_path(WEB_CODE_PATH).'social/group_edit.php?id='.$group_id.'">'.
                             <a href="'.api_get_path(WEB_CODE_PATH).'social/group_edit.php?id='.$group_id.'">'.
                     get_lang('EditGroup').'</a></div>';
                     get_lang('EditGroup').'</a></div>';
             }
             }
-            $html .= '</div>';
-            $html .= '</div>';
+
         } else {
         } else {
-            if ($showUserImage) {
-                $img_array = UserManager::get_user_picture_path_by_id($user_id, 'web', true, true);
-            } else {
-                $img_array = UserManager::get_user_picture_path_by_id(null, 'web', true, true);
-            }
+            $img_array = UserManager::get_user_picture_path_by_id($user_id, 'web', true, true);
             $big_image = UserManager::get_picture_user($user_id, $img_array['file'], '', USER_IMAGE_SIZE_BIG);
             $big_image = UserManager::get_picture_user($user_id, $img_array['file'], '', USER_IMAGE_SIZE_BIG);
             $big_image = $big_image['file'].'?'.uniqid();
             $big_image = $big_image['file'].'?'.uniqid();
             $normal_image = $img_array['dir'].$img_array['file'].'?'.uniqid();
             $normal_image = $img_array['dir'].$img_array['file'].'?'.uniqid();
 
 
             //--- User image
             //--- User image
-
-            $html .= '<div class="well social-background-content">';
             if ($img_array['file'] != 'unknown.jpg') {
             if ($img_array['file'] != 'unknown.jpg') {
-                $html .= '<a class="thumbnail thickbox" href="'.$big_image.'"><img src='.$normal_image.' /> </a>';
+                $html .= '<a class="thickbox" href="'.$big_image.'"><img class="img-responsive" src='.$normal_image.' /> </a>';
             } else {
             } else {
                 $html .= '<img src='.$normal_image.' width="110px" />';
                 $html .= '<img src='.$normal_image.' width="110px" />';
             }
             }
-            if (api_get_user_id() == $user_id) {
-                $html .= '<div id="edit_image" class="hidden_message" style="display:none">';
-                $html .= '<a href="'.api_get_path(WEB_CODE_PATH).'auth/profile.php">'.get_lang('EditProfile').'</a></div>';
-            }
-            $html .= '</div>';
+
         }
         }
         $html .= '</div>';
         $html .= '</div>';
         return $html;
         return $html;
@@ -711,33 +699,34 @@ class SocialManager extends UserManager
         $active = null;
         $active = null;
         if (!in_array($show, array('shared_profile', 'groups', 'group_edit', 'member_list', 'waiting_list', 'invite_friends'))) {
         if (!in_array($show, array('shared_profile', 'groups', 'group_edit', 'member_list', 'waiting_list', 'invite_friends'))) {
 
 
-            $html .= '<div class="well sidebar-nav"><ul class="nav nav-list">';
+            $html .= '<div class="panel panel-default sidebar-nav">';
+            $html .= '<div class="panel-body">';
+            $html .= '<ul class="nav nav-pills nav-stacked">';
             $active = $show == 'home' ? 'active' : null;
             $active = $show == 'home' ? 'active' : null;
-            $html .= '<li class="home-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/home.php">'.get_lang('Home').'</a></li>';
+            $html .= '<li class="home-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/home.php">'.Display::return_icon('social-home.png',get_lang('Home'),'',ICON_SIZE_SMALL).' '.get_lang('Home').'</a></li>';
             $active = $show == 'messages' ? 'active' : null;
             $active = $show == 'messages' ? 'active' : null;
-            $html .= '<li class="messages-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'messages/inbox.php?f=social">'.get_lang('Messages').$count_unread_message.'</a></li>';
+            $html .= '<li class="messages-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'messages/inbox.php?f=social">'.Display::return_icon('social-message.png',get_lang('Messages'),'',ICON_SIZE_SMALL).' '.get_lang('Messages').$count_unread_message.'</a></li>';
 
 
             //Invitations
             //Invitations
             $active = $show == 'invitations' ? 'active' : null;
             $active = $show == 'invitations' ? 'active' : null;
-            $html .= '<li class="invitations-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/invitations.php">'.get_lang('Invitations').$total_invitations.'</a></li>';
+            $html .= '<li class="invitations-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/invitations.php">'.Display::return_icon('social-invitations.png',get_lang('Invitations'),'',ICON_SIZE_SMALL).' '.get_lang('Invitations').$total_invitations.'</a></li>';
 
 
             //Shared profile and groups
             //Shared profile and groups
             $active = $show == 'shared_profile' ? 'active' : null;
             $active = $show == 'shared_profile' ? 'active' : null;
-            $html .= '<li class="shared-profile-icon'.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/profile.php">'.get_lang('ViewMySharedProfile').'</a></li>';
+            $html .= '<li class="shared-profile-icon'.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/profile.php">'.Display::return_icon('social-profile.png',get_lang('ViewMySharedProfile'),'',ICON_SIZE_SMALL).' '.get_lang('ViewMySharedProfile').'</a></li>';
             $active = $show == 'friends' ? 'active' : null;
             $active = $show == 'friends' ? 'active' : null;
-            $html .= '<li class="friends-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/friends.php">'.get_lang('Friends').'</a></li>';
+            $html .= '<li class="friends-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/friends.php">'.Display::return_icon('social-friends.png',get_lang('Friends'),'',ICON_SIZE_SMALL).' '.get_lang('Friends').'</a></li>';
             $active = $show == 'browse_groups' ? 'active' : null;
             $active = $show == 'browse_groups' ? 'active' : null;
-            $html .= '<li class="browse-groups-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/groups.php">'.get_lang('SocialGroups').'</a></li>';
+            $html .= '<li class="browse-groups-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/groups.php">'.Display::return_icon('social-groups.png',get_lang('SocialGroups'),'',ICON_SIZE_SMALL).' '.get_lang('SocialGroups').'</a></li>';
 
 
             //Search users
             //Search users
             $active = $show == 'search' ? 'active' : null;
             $active = $show == 'search' ? 'active' : null;
-            $html .= '<li class="search-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/search.php">'.get_lang('Search').'</a></li>';
+            $html .= '<li class="search-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/search.php">'.Display::return_icon('social-search.png',get_lang('Search'),'',ICON_SIZE_SMALL).' '.get_lang('Search').'</a></li>';
 
 
             //My files
             //My files
             $active = $show == 'myfiles' ? 'active' : null;
             $active = $show == 'myfiles' ? 'active' : null;
-            $html .= '<li class="myfiles-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/myfiles.php">'.get_lang('MyFiles').'</span></a></li>';
-            $html .='</ul>
-                  </div>';
+            $html .= '<li class="myfiles-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/myfiles.php">'.Display::return_icon('social-files.png',get_lang('MyFiles'),'',ICON_SIZE_SMALL).' '.get_lang('MyFiles').'</span></a></li>';
+            $html .='</ul></div></div>';
         }
         }
 
 
         if (in_array($show, $show_groups) && !empty($group_id)) {
         if (in_array($show, $show_groups) && !empty($group_id)) {
@@ -749,23 +738,24 @@ class SocialManager extends UserManager
         }
         }
 
 
         if ($show == 'shared_profile') {
         if ($show == 'shared_profile') {
-            $html .= '<div class="well sidebar-nav">
-                    <ul class="nav nav-list">';
+            $html .= '<div class="panel panel-default sidebar-nav">';
+            $html .= '<div class="panel-body">';
+            $html .=  '<ul class="nav nav-pills nav-stacked">';
 
 
             // My own profile
             // My own profile
             if ($show_full_profile && $user_id == intval(api_get_user_id())) {
             if ($show_full_profile && $user_id == intval(api_get_user_id())) {
-                $html .= '<li class="home-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/home.php">'.get_lang('Home').'</a></li>
-                          <li class="messages-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'messages/inbox.php?f=social">'.get_lang('Messages').$count_unread_message.'</a></li>';
+                $html .= '<li class="home-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/home.php">'.Display::return_icon('social-home.png',get_lang('Home'),'',ICON_SIZE_SMALL).' '.get_lang('Home').'</a></li>
+                          <li class="messages-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'messages/inbox.php?f=social">'.Display::return_icon('social-message.png',get_lang('Messages'),'',ICON_SIZE_SMALL).' '.get_lang('Messages').$count_unread_message.'</a></li>';
                 $active = $show == 'invitations' ? 'active' : null;
                 $active = $show == 'invitations' ? 'active' : null;
-                $html .= '<li class="invitations-icon'.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/invitations.php">'.get_lang('Invitations').$total_invitations.'</a></li>';
+                $html .= '<li class="invitations-icon'.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/invitations.php">'.Display::return_icon('social-invitations.png',get_lang('Invitations'),'',ICON_SIZE_SMALL).' '.get_lang('Invitations').$total_invitations.'</a></li>';
 
 
-                $html .= '<li class="shared-profile-icon active"><a href="'.api_get_path(WEB_CODE_PATH).'social/profile.php">'.get_lang('ViewMySharedProfile').'</a></li>
-                          <li class="friends-icon"><a href="'.api_get_path(WEB_CODE_PATH).'social/friends.php">'.get_lang('Friends').'</a></li>
-                          <li class="browse-groups-icon"><a href="'.api_get_path(WEB_CODE_PATH).'social/groups.php">'.get_lang('SocialGroups').'</a></li>';
+                $html .= '<li class="shared-profile-icon active"><a href="'.api_get_path(WEB_CODE_PATH).'social/profile.php">'.Display::return_icon('social-profile.png',get_lang('ViewMySharedProfile'),'',ICON_SIZE_SMALL).' '.get_lang('ViewMySharedProfile').'</a></li>
+                          <li class="friends-icon"><a href="'.api_get_path(WEB_CODE_PATH).'social/friends.php">'.Display::return_icon('social-friends.png',get_lang('Friends'),'',ICON_SIZE_SMALL).' '.get_lang('Friends').'</a></li>
+                          <li class="browse-groups-icon"><a href="'.api_get_path(WEB_CODE_PATH).'social/groups.php">'.Display::return_icon('social-groups.png',get_lang('SocialGroups'),'',ICON_SIZE_SMALL).' '.get_lang('SocialGroups').'</a></li>';
                 $active = $show == 'search' ? 'active' : null;
                 $active = $show == 'search' ? 'active' : null;
-                $html .= '<li class="search-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/search.php">'.get_lang('Search').'</a></li>';
+                $html .= '<li class="search-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/search.php">'.Display::return_icon('social-search.png',get_lang('Search'),'',ICON_SIZE_SMALL).' '.get_lang('Search').'</a></li>';
                 $active = $show == 'myfiles' ? 'active' : null;
                 $active = $show == 'myfiles' ? 'active' : null;
-                $html .= '<li class="myfiles-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/myfiles.php">'.get_lang('MyFiles').'</a></li>';
+                $html .= '<li class="myfiles-icon '.$active.'"><a href="'.api_get_path(WEB_CODE_PATH).'social/myfiles.php">'.Display::return_icon('social-files.png',get_lang('MyFiles'),'',ICON_SIZE_SMALL).' '.get_lang('MyFiles').'</a></li>';
             }
             }
 
 
             // My friend profile.
             // My friend profile.
@@ -822,7 +812,7 @@ class SocialManager extends UserManager
                     }
                     }
                 }
                 }
             }
             }
-            $html .= '</ul></div>';
+            $html .= '</ul></div></div>';
 
 
             if ($show_full_profile && $user_id == intval(api_get_user_id())) {
             if ($show_full_profile && $user_id == intval(api_get_user_id())) {
                 $personal_course_list = UserManager::get_personal_session_course_list($user_id);
                 $personal_course_list = UserManager::get_personal_session_course_list($user_id);
@@ -909,7 +899,7 @@ class SocialManager extends UserManager
                 $html .='<div class="row">';
                 $html .='<div class="row">';
             }
             }
 
 
-            $html .= '<div class="span'.$column_size.'">';
+            $html .= '<div class="col-md-'.$column_size.'">';
 
 
             $html .= '<ul id="online_grid_container" class="thumbnails">';
             $html .= '<ul id="online_grid_container" class="thumbnails">';
         }
         }
@@ -941,7 +931,7 @@ class SocialManager extends UserManager
                 $img = '<img title = "'.$name.'" alt="'.$name.'" src="'.$friends_profile['file'].'">';
                 $img = '<img title = "'.$name.'" alt="'.$name.'" src="'.$friends_profile['file'].'">';
             }
             }
             $name = '<a href="'.$url.'">'.$status_icon.$user_status.$name.'</a><br>';
             $name = '<a href="'.$url.'">'.$status_icon.$user_status.$name.'</a><br>';
-            $html .= '<li class="span'.($column_size / 3).'"><div class="thumbnail">'.$img.'<div class="caption">'.$name.'</div</div></li>';
+            $html .= '<li class="col-md-'.($column_size / 3).'"><div class="thumbnail">'.$img.'<div class="caption">'.$name.'</div</div></li>';
         }
         }
         $counter = $_SESSION['who_is_online_counter'];
         $counter = $_SESSION['who_is_online_counter'];
 
 
@@ -949,7 +939,7 @@ class SocialManager extends UserManager
             $html .= '</ul></div>';
             $html .= '</ul></div>';
         }
         }
         if (count($user_list) >= 9) {
         if (count($user_list) >= 9) {
-            $html .= '<div class="span'.$column_size.'"><a class="btn btn-large" id="link_load_more_items" data_link="'.$counter.'" >'.get_lang('More').'</a></div>';
+            $html .= '<div class="col-md-'.$column_size.'"><a class="btn btn-large btn-default" id="link_load_more_items" data_link="'.$counter.'" >'.get_lang('More').'</a></div>';
         }
         }
         if ($wrap && $add_row) {
         if ($wrap && $add_row) {
             $html .= '</div>';
             $html .= '</div>';
@@ -1272,8 +1262,7 @@ class SocialManager extends UserManager
 
 
         $isOwnWall = (api_get_user_id() == $userId  && $userId == $friendId);
         $isOwnWall = (api_get_user_id() == $userId  && $userId == $friendId);
         $messages = self::getWallMessages($userId, MESSAGE_STATUS_WALL, $idMessage, $start, $limit, $offset);
         $messages = self::getWallMessages($userId, MESSAGE_STATUS_WALL, $idMessage, $start, $limit, $offset);
-        $formattedList = '<div class="mediaPost" style="width:calc(100%-14px);
-        display:block;padding-left:14px">';
+        $formattedList = '<div class="sub-mediapost">';
         $users = array();
         $users = array();
 
 
         // The messages are ordered by date descendant, for comments we need ascendant
         // The messages are ordered by date descendant, for comments we need ascendant
@@ -1290,50 +1279,38 @@ class SocialManager extends UserManager
                 : $users[$userIdLoop]['lastname'] . ' ' . $users[$userIdLoop]['firstname'];
                 : $users[$userIdLoop]['lastname'] . ' ' . $users[$userIdLoop]['firstname'];
             $url = api_get_path(WEB_CODE_PATH).'social/profile.php?u='.$userIdLoop;
             $url = api_get_path(WEB_CODE_PATH).'social/profile.php?u='.$userIdLoop;
             $media = '';
             $media = '';
-            $media .= '<div class="media" style="width:100%; display:inline-block; margin-bottom:5px;">';
-            $media .= '<div class="media-body" style="width: 100%; height: 32px; margin-bottom:5px;">';
-            $media .= '<div class="pull-left" style="width: 32px; height: 100%;">';
-            $media .= '<a href="'.$url.'" >'
-            . '<img class="" src="'. $users[$userIdLoop]['avatar'] .'" '
-            . 'alt="'.$users[$userIdLoop]['complete_name'].'" style="width: 32px; height: 32px;"> '
-            . '</a>';
-            $media .= '</div>';
-            $media .= '<div class="pull-left" style="padding-left:4px;width: calc(100% - 36px);height: 100%;">';
-            $media .= '<div style="width: 100%; height: 50%;">';
-            $media .= '<h4 class="media-heading" style="width: inherit;">'
-            . '<a href="'.$url.'">'.$nameComplete.'</a></h4>';
-            $media .= '</div>';
-            $media .= '<div style="width: 100%; height: 50%;">';
-            $media .= '<div class="pull-left" style="height: 100%;">';
-            $media .= '<small><span class="time timeago" title="'.$date.'">'.$date.'</span></small>';
-            $media .= '</div>';
-            $media .= '</div>';
-            $media .= '</div>';
-            $media .= '</div>';
+            $media .= '<div class="rep-post">';
             if ($isOwnWall) {
             if ($isOwnWall) {
-                $media .= '<div style="width: 100%;height:20px">';
-                $media .= '<div><a href="'.api_get_path(WEB_CODE_PATH).'social/profile.php?messageId='.
-                $message['id'].'">'.get_lang('SocialMessageDelete').'</a></div>';
+                $media .= '<div class="pull-right deleted-mgs">';
+                $media .= '<a title="'.get_lang("SocialMessageDelete").'" href="'.api_get_path(WEB_CODE_PATH).'social/profile.php?messageId='.
+                    $message['id'].'">'.get_lang('x').'</a>';
                 $media .= '</div>';
                 $media .= '</div>';
             }
             }
-            $media .= '<div style="width:100%;text-align:justify;">';
-            $media .= '<span class="content">'.Security::remove_XSS($message['content']).'</span>';
+            $media .= '<div class="user-image">';
+            $media .= '<a href="'.$url.'" ><img src="'. $users[$userIdLoop]['avatar'] .
+                       '" alt="'.$users[$userIdLoop]['complete_name'].'" class="avatar-thumb"></a>';
             $media .= '</div>';
             $media .= '</div>';
-            $media .= '</div>'; // end media
+            $media .= '<div class="user-data">';
+            $media .= '<div class="username">' . '<a href="'.$url.'">'.$nameComplete.'</a></div>';
+            $media .= '<div class="time timeago" title="'.$date.'">'.$date.'</div>';
+            $media .= '</div>';
+            $media .= '<div class="msg-content">';
+            $media .= '<p>'.Security::remove_XSS($message['content']).'</p>';
+            $media .= '</div></div>';
+
             $formattedList .= $media;
             $formattedList .= $media;
         }
         }
 
 
         $formattedList .= '</div>';
         $formattedList .= '</div>';
 
 
-        $formattedList .= '<div class="mediaPost" style="display:inline-block;">';
+        $formattedList .= '<div class="mediapost-form">';
             $formattedList .= '<form name="social_wall_message" method="POST">
             $formattedList .= '<form name="social_wall_message" method="POST">
                 <label for="social_wall_new_msg" class="hide">'.get_lang('SocialWriteNewComment').'</label>
                 <label for="social_wall_new_msg" class="hide">'.get_lang('SocialWriteNewComment').'</label>
                 <input type="hidden" name = "messageId" value="'.$idMessage.'" />
                 <input type="hidden" name = "messageId" value="'.$idMessage.'" />
                 <textarea placeholder="'.get_lang('SocialWriteNewComment').
                 <textarea placeholder="'.get_lang('SocialWriteNewComment').
-                '" name="social_wall_new_msg" rows="1" cols="80" style="width: 98%"></textarea>
-                <br />
-                <input type="submit" name="social_wall_new_msg_submit"
-                value="'.get_lang('Post').'" class="float right btn" />
+                '" name="social_wall_new_msg" rows="1" style="width:80%;" ></textarea>
+                <button type="submit" name="social_wall_new_msg_submit"
+                class="pull-right btn btn-default" /><i class="fa fa-pencil"></i> '.get_lang('Post').'</button>
                 </form>';
                 </form>';
         $formattedList .= '</div>';
         $formattedList .= '</div>';
         return $formattedList;
         return $formattedList;
@@ -1429,40 +1406,29 @@ class SocialManager extends UserManager
 
 
         $htmlDelete = '';
         $htmlDelete = '';
         if ($isOwnWall) {
         if ($isOwnWall) {
-            $htmlDelete .= '<a href="'.api_get_path(WEB_CODE_PATH).'social/profile.php?messageId='.
-            $message['id'].'">'.get_lang('SocialMessageDelete').'</a>';
+            $htmlDelete .= '<a title="'.get_lang("SocialMessageDelete").'" href="'.api_get_path(WEB_CODE_PATH).'social/profile.php?messageId='.
+            $message['id'].'">'.get_lang('x').'</a>';
         }
         }
 
 
         $html = '';
         $html = '';
-        $html .= '<div class="mediaPost" style="width: 100%; display:inline-block; margin-bottom:5px;">';
-        $html .= '<div class="media-body" style="width: 100%; height: 40px; margin-bottom:5px;">';
-        $html .= '<div class="pull-left" style="width: 40px; height: 100%;">';
-        $html .= '<a href="'.$urlAuthor.'">'.'<img class="" src="'.$avatarAuthor.
-        '" alt="'.$nameCompleteAuthor.'" style="width: 40px; height: 40px;"></a>';
-        $html .= '</div>';
-        $html .= '<div class="pull-left" style="padding-left:4px; width: calc(100% - 44px);height: 100%;">';
-        $html .= '<div style="width: 100%; height: 50%;">';
-        $html .= '<h4 class="media-heading" style="width: inherit;">';
-        $html .= '<a href="'.$urlAuthor.'">'.$nameCompleteAuthor.'</a>'.$htmlReceiver.'</h4>';
-        $html .= '</div>';
-        $html .= '<div style="width: 100%; height: 50%;">';
-        $html .= '<div class="pull-left" style="height: 100%;">';
-        $html .= '<small><span class="time timeago" title="'.$date.'">'.$date.'</span></small>';
-        $html .= '</div>';
-        $html .= '</div>';
-        $html .= '</div>';
-        $html .= '</div>';
+        $html .= '<div class="top-mediapost" >';
         if ($isOwnWall) {
         if ($isOwnWall) {
-            $html .= '<div style="width: 100%;height:20px">';
+            $html .= '<div class="pull-right deleted-mgs">';
             $html .= $htmlDelete;
             $html .= $htmlDelete;
             $html .= '</div>';
             $html .= '</div>';
         }
         }
-        $html .= '<div style="width: 100%;">';
+        $html .= '<div class="user-image" >';
+        $html .= '<a href="'.$urlAuthor.'">'.'<img class="avatar-thumb" src="'.$avatarAuthor.'" alt="'.$nameCompleteAuthor.'"></a>';
+        $html .= '</div>';
+        $html .= '<div class="user-data">';
+        $html .= '<div class="username"><a href="'.$urlAuthor.'">'.$nameCompleteAuthor.'</a>'.$htmlReceiver.'</div>';
+        $html .= '<div class="time timeago" title="'.$date.'">'.$date.'</div>';
+        $html .= '</div>';
+        $html .= '<div class="msg-content">';
+        $html .= '<div class="img-post">';
         $html .= $wallImage;
         $html .= $wallImage;
         $html .= '</div>';
         $html .= '</div>';
-        $html .= '<div style="width:100%;text-align:justify;">';
-        $html .= '<span class="content">'.
-            Security::remove_XSS(self::readContentWithOpenGraph($message['content'])).'</span>';
+        $html .= '<p>'. Security::remove_XSS(self::readContentWithOpenGraph($message['content'])).'</p>';
         $html .= '</div>';
         $html .= '</div>';
         $html .= '</div>'; // end mediaPost
         $html .= '</div>'; // end mediaPost
 
 

+ 2 - 2
main/inc/lib/svg-edit/svg-editor.php

@@ -26,8 +26,8 @@ if (!isset($_SESSION['draw_dir'])) {
     <link rel="stylesheet" href="svg-editor.css" type="text/css"/>
     <link rel="stylesheet" href="svg-editor.css" type="text/css"/>
     <link rel="stylesheet" href="custom.css" type="text/css"/>
     <link rel="stylesheet" href="custom.css" type="text/css"/>
     <link rel="stylesheet" href="spinbtn/JQuerySpinBtn.css" type="text/css"/>
     <link rel="stylesheet" href="spinbtn/JQuerySpinBtn.css" type="text/css"/>
-    <?php echo api_get_jquery_js(); ?>
-
+    <?php /* echo api_get_js('jquery.min.js'); */?>
+    <script src="jquery.js"></script>
     <script src="js-hotkeys/jquery.hotkeys.min.js"></script>
     <script src="js-hotkeys/jquery.hotkeys.min.js"></script>
     <script src="jquerybbq/jquery.bbq.min.js"></script>
     <script src="jquerybbq/jquery.bbq.min.js"></script>
     <script src="svgicons/jquery.svgicons.js"></script>
     <script src="svgicons/jquery.svgicons.js"></script>

+ 42 - 11
main/inc/lib/template.lib.php

@@ -460,9 +460,11 @@ class Template
     }
     }
 
 
     /**
     /**
-     * Set theme, include CSS files
+     * Set theme, include mainstream CSS files
+     * @return void
+     * @see setCssCustomFiles() for additional CSS sheets
      */
      */
-    public function set_css_files()
+    public function setCssFiles()
     {
     {
         global $disable_js_and_css_files;
         global $disable_js_and_css_files;
         $css = array();
         $css = array();
@@ -489,19 +491,43 @@ class Template
         }
         }
 
 
         // Base CSS
         // Base CSS
-        $css[] = api_get_cdn_path(api_get_path(WEB_CSS_PATH).'base.css');
+        $css[] = api_get_cdn_path(api_get_path(WEB_CSS_PATH) . 'bootstrap.css');
 
 
         //Extra CSS files
         //Extra CSS files
-        $css[] = api_get_path(WEB_LIBRARY_PATH).'javascript/thickbox.css';
-        $css[] = api_get_path(WEB_LIBRARY_PATH).'javascript/chosen/chosen.css';
+        $css[] = api_get_path(WEB_LIBRARY_PATH) . 'javascript/thickbox.css';
+        $css[] = api_get_path(WEB_LIBRARY_PATH) . 'javascript/chosen/chosen.css';
 
 
         if (api_is_global_chat_enabled()) {
         if (api_is_global_chat_enabled()) {
-            $css[] = api_get_path(WEB_LIBRARY_PATH).'javascript/chat/css/chat.css';
+            $css[] = api_get_path(WEB_LIBRARY_PATH) . 'javascript/chat/css/chat.css';
         }
         }
 
 
+        $css[] = api_get_path(WEB_CSS_PATH) . 'font-awesome.css';
+        $css[] = api_get_path(WEB_LIBRARY_PATH) . 'javascript/mediaelement/mediaelementplayer.css';
+        $css[] = api_get_path(WEB_LIBRARY_PATH) . 'javascript/daterange/daterangepicker-bs3.css';
+
         //THEME CSS STYLE
         //THEME CSS STYLE
-       // $css[] = api_get_cdn_path(api_get_path(WEB_CSS_PATH).'responsive.css');
-       // $css[] = api_get_cdn_path(api_get_path(WEB_CSS_PATH).$this->theme.'/default.css');
+        // $css[] = api_get_cdn_path(api_get_path(WEB_CSS_PATH).'responsive.css');
+
+        $css_file_to_string = null;
+        foreach ($css as $file) {
+            $css_file_to_string .= api_get_css($file);
+        }
+
+        if (!$disable_js_and_css_files) {
+            $this->assign('css_static_file_to_string', $css_file_to_string);
+        }
+    }
+    /**
+     * Prepare custom CSS to be added at the very end of the <head> section
+     * @return void
+     * @see setCssFiles() for the mainstream CSS files
+     */
+    public function setCssCustomFiles()
+    {
+        global $disable_js_and_css_files;
+        // Base CSS
+        $css[] = api_get_cdn_path(api_get_path(WEB_CSS_PATH).'base.css');
+        $css[] = api_get_cdn_path(api_get_path(WEB_CSS_PATH).$this->theme.'/default.css');
 
 
         if ($this->show_learnpath) {
         if ($this->show_learnpath) {
             $css[] = api_get_path(WEB_CSS_PATH).$this->theme.'/learnpath.css';
             $css[] = api_get_path(WEB_CSS_PATH).$this->theme.'/learnpath.css';
@@ -540,9 +566,13 @@ class Template
         }
         }
 
 
         if (!$disable_js_and_css_files) {
         if (!$disable_js_and_css_files) {
-            $this->assign('css_file_to_string', $css_file_to_string);
+            $this->assign('css_custom_file_to_string', $css_file_to_string);
 
 
-            $style_print = api_get_css(api_get_cdn_path(api_get_path(WEB_CSS_PATH).$this->theme.'/print.css'), 'print');
+            $style_print = '';
+            if (is_readable(api_get_path(SYS_CSS_PATH).$this->theme.'/print.css')) {
+                $style_print = api_get_css(api_get_cdn_path(api_get_path(WEB_CSS_PATH) . $this->theme . '/print.css'),
+                    'print');
+            }
             $this->assign('css_style_print', $style_print);
             $this->assign('css_style_print', $style_print);
         }
         }
 
 
@@ -709,8 +739,9 @@ class Template
         $this->assign('title_string', $title_string);
         $this->assign('title_string', $title_string);
 
 
         //Setting the theme and CSS files
         //Setting the theme and CSS files
-        $this->set_css_files();
+        $css = $this->setCssFiles();
         $this->set_js_files();
         $this->set_js_files();
+        $this->setCssCustomFiles($css);
         //$this->set_js_files_post();
         //$this->set_js_files_post();
 
 
         $browser = api_browser_support('check_browser');
         $browser = api_browser_support('check_browser');

+ 2 - 2
main/inc/lib/usermanager.lib.php

@@ -3850,8 +3850,8 @@ class UserManager
         $searchType = isset($_GET['search_type']) ? $_GET['search_type'] : null;
         $searchType = isset($_GET['search_type']) ? $_GET['search_type'] : null;
 
 
         return '
         return '
-        <form method="GET" class="well form-search" action="'.api_get_path(WEB_PATH).'main/social/search.php">
-                <input placeholder="'.get_lang('UsersGroups').'" type="text" class="input-small" value="'.api_htmlentities(Security::remove_XSS($query)).'" name="q"/> &nbsp;
+        <form method="GET" class="form-search" action="'.api_get_path(WEB_PATH).'main/social/search.php">
+                <input placeholder="'.get_lang('UsersGroups').'" type="text" value="'.api_htmlentities(Security::remove_XSS($query)).'" name="q"/> &nbsp;
                 ' . get_lang('Type') .'
                 ' . get_lang('Type') .'
                 <select name="search_type" onchange="javascript: extra_field_toogle();">
                 <select name="search_type" onchange="javascript: extra_field_toogle();">
                 <option value="0">--'.get_lang('Select').'--</option>
                 <option value="0">--'.get_lang('Select').'--</option>

+ 3 - 19
main/inc/lib/userportal.lib.php

@@ -325,12 +325,12 @@ class IndexManager
         if (api_get_setting('allow_skills_tool') == 'true') {
         if (api_get_setting('allow_skills_tool') == 'true') {
             $content = '<ul class="nav nav-pills nav-stacked">';
             $content = '<ul class="nav nav-pills nav-stacked">';
 
 
-            $content .= Display::tag('li', Display::url(get_lang('MySkills'), api_get_path(WEB_CODE_PATH).'social/my_skills_report.php'));
+            $content .= Display::tag('li', Display::url(Display::return_icon('skill-badges.png',get_lang('MySkills'),null,ICON_SIZE_SMALL).get_lang('MySkills'), api_get_path(WEB_CODE_PATH).'social/my_skills_report.php'));
 
 
             $allowSkillsManagement = api_get_setting('allow_hr_skills_management') == 'true';
             $allowSkillsManagement = api_get_setting('allow_hr_skills_management') == 'true';
 
 
             if (($allowSkillsManagement && api_is_drh()) || api_is_platform_admin()) {
             if (($allowSkillsManagement && api_is_drh()) || api_is_platform_admin()) {
-                $content .= Display::tag('li', Display::url(get_lang('ManageSkills'), api_get_path(WEB_CODE_PATH).'admin/skills_wheel.php'));
+                $content .= Display::tag('li', Display::url(Display::return_icon('edit-skill.png',get_lang('MySkills'),null,ICON_SIZE_SMALL).get_lang('ManageSkills'), api_get_path(WEB_CODE_PATH).'admin/skills_wheel.php'));
             }
             }
             $content .= '</ul>';
             $content .= '</ul>';
             $html = self::show_right_block(get_lang("Skills"), $content, 'skill_block');
             $html = self::show_right_block(get_lang("Skills"), $content, 'skill_block');
@@ -891,23 +891,7 @@ class IndexManager
             }
             }
         }
         }
 
 
-        $editProfileUrl = api_get_path(WEB_CODE_PATH) . 'auth/profile.php';
-
-        if (api_get_setting('sso_authentication') === 'true') {
-            $subSSOClass = api_get_setting('sso_authentication_subclass');
-            $objSSO = null;
-
-            if (!empty($subSSOClass)) {
-                require_once api_get_path(SYS_CODE_PATH) . 'auth/sso/sso.' . $subSSOClass . '.class.php';
-
-                $subSSOClass = 'sso' . $subSSOClass;
-                $objSSO = new $subSSOClass();
-            } else {
-                $objSSO = new sso();
-            }
-
-            $editProfileUrl = $objSSO->generateProfileEditingURL();
-        }
+        $editProfileUrl = Display::getProfileEditionLink($user_id);
 
 
         $profile_content .= '<li class="profile-social"><a href="' . $editProfileUrl . '">'.Display::return_icon('edit-profile.png',get_lang('EditProfile'),null,ICON_SIZE_SMALL).get_lang('EditProfile').'</a></li>';
         $profile_content .= '<li class="profile-social"><a href="' . $editProfileUrl . '">'.Display::return_icon('edit-profile.png',get_lang('EditProfile'),null,ICON_SIZE_SMALL).get_lang('EditProfile').'</a></li>';
         $profile_content .= '</ul>';
         $profile_content .= '</ul>';

+ 2 - 0
main/install/configuration.dist.php

@@ -286,6 +286,8 @@ $_configuration['system_stable']     = NEW_VERSION_STABLE;
 //$_configuration['exercise_max_ckeditors_in_page'] = 0;
 //$_configuration['exercise_max_ckeditors_in_page'] = 0;
 // Default upload option
 // Default upload option
 //$_configuration['document_if_file_exists_option'] = 'rename'; // overwrite
 //$_configuration['document_if_file_exists_option'] = 'rename'; // overwrite
+// Enable add_gradebook_certificates.php cron task
+//$_configuration['add_gradebook_certificates_cron_task_enabled'] = true;
 // Which OpenBadges backpack send the badges
 // Which OpenBadges backpack send the badges
 //$_configuration['openbadges_backpack'] = 'https://backpack.openbadges.org/';
 //$_configuration['openbadges_backpack'] = 'https://backpack.openbadges.org/';
 // Custom name_order_conventions
 // Custom name_order_conventions

+ 2 - 0
main/lang/english/trad4all.inc.php

@@ -1151,6 +1151,8 @@ $SlideShow = "Slideshow";
 $PublicationEndDate = "Published end date";
 $PublicationEndDate = "Published end date";
 $ViewSlideshow = "View Slideshow";
 $ViewSlideshow = "View Slideshow";
 $UploadADocument = "Upload a document";
 $UploadADocument = "Upload a document";
+$QuestionsOverallReportDetail = "In this report you see the results of all questions";
+$QuestionsOverallReport = "Questions' overall report";
 $langNameOfLang['bosnian'] = "bosnian";
 $langNameOfLang['bosnian'] = "bosnian";
 $langNameOfLang['czech'] = "czech";
 $langNameOfLang['czech'] = "czech";
 $langNameOfLang['dari'] = "dari";
 $langNameOfLang['dari'] = "dari";

+ 2 - 0
main/lang/spanish/trad4all.inc.php

@@ -1151,6 +1151,8 @@ $SlideShow = "Presentación";
 $PublicationEndDate = "Fecha de fin publicada";
 $PublicationEndDate = "Fecha de fin publicada";
 $ViewSlideshow = "Ver presentación";
 $ViewSlideshow = "Ver presentación";
 $UploadADocument = "Enviar un documento";
 $UploadADocument = "Enviar un documento";
+$QuestionsOverallReportDetail = "En este informe se ven los resultados de todas las preguntas.";
+$QuestionsOverallReport = "Informe general de preguntas";
 $langNameOfLang['bosnian'] = "bosnio";
 $langNameOfLang['bosnian'] = "bosnio";
 $langNameOfLang['czech'] = "checo";
 $langNameOfLang['czech'] = "checo";
 $langNameOfLang['dari'] = "dari";
 $langNameOfLang['dari'] = "dari";

+ 26 - 5
main/messages/inbox.php

@@ -127,10 +127,31 @@ if (isset($_GET['f']) && $_GET['f'] == 'social' || api_get_setting('allow_social
         $actions .= '<a href="'.api_get_path(WEB_PATH).'main/messages/outbox.php">'.Display::return_icon('outbox.png', get_lang('Outbox')).'</a>';
         $actions .= '<a href="'.api_get_path(WEB_PATH).'main/messages/outbox.php">'.Display::return_icon('outbox.png', get_lang('Outbox')).'</a>';
     }
     }
 }
 }
-
+$userInfo    = UserManager::get_user_info_by_id($user_id);
 //LEFT CONTENT
 //LEFT CONTENT
 if (api_get_setting('allow_social_tool') == 'true') {
 if (api_get_setting('allow_social_tool') == 'true') {
-    $social_avatar_block = SocialManager::show_social_avatar_block('messages');
+    //Block Social Avatar
+    $social_avatar_block = '<div class="panel panel-info social-avatar">';
+    $social_avatar_block .= SocialManager::show_social_avatar_block('messages');
+    $social_avatar_block .= '<div class="lastname">'.$userInfo['lastname'].'</div>';
+    $social_avatar_block .= '<div class="firstname">'.$userInfo['firstname'].'</div>';
+    /* $social_avatar_block .= '<div class="username">'.Display::return_icon('user.png','','',ICON_SIZE_TINY).$userInfo['username'].'</div>'; */
+    $social_avatar_block .= '<div class="email">'.Display::return_icon('instant_message.png').'&nbsp;' .$userInfo['email'].'</div>';
+    $chat_status = $userInfo['extra'];
+    if(!empty($chat_status['user_chat_status'])){
+        $social_avatar_block.= '<div class="status">'.Display::return_icon('online.png').get_lang('Chat')." (".get_lang('Online').')</div>';
+    }else{
+        $social_avatar_block.= '<div class="status">'.Display::return_icon('offline.png').get_lang('Chat')." (".get_lang('Offline').')</div>';
+    }
+
+    $editProfileUrl = Display::getProfileEditionLink($user_id);
+
+    $social_avatar_block .= '<div class="edit-profile">
+                            <a class="btn" href="' . $editProfileUrl . '">' . get_lang('EditProfile') . '</a>
+                         </div>';
+    $social_avatar_block .= '</div>';
+
+    //Block Social Menu
     $social_menu_block = SocialManager::show_social_menu('messages');
     $social_menu_block = SocialManager::show_social_menu('messages');
 }
 }
 
 
@@ -138,13 +159,13 @@ if (api_get_setting('allow_social_tool') == 'true') {
 $social_right_content = null;
 $social_right_content = null;
 
 
 if (api_get_setting('allow_social_tool') == 'true') {
 if (api_get_setting('allow_social_tool') == 'true') {
-    $social_right_content .= '<div class="col-md-9">';
+    $social_right_content .= '<div class="col-md-12">';
     $social_right_content .= '<div class="actions">';
     $social_right_content .= '<div class="actions">';
     $social_right_content .= '<a href="'.api_get_path(WEB_PATH).'main/messages/new_message.php?f=social">'.Display::return_icon('compose_message.png', get_lang('ComposeMessage'), array(), 32).'</a>';
     $social_right_content .= '<a href="'.api_get_path(WEB_PATH).'main/messages/new_message.php?f=social">'.Display::return_icon('compose_message.png', get_lang('ComposeMessage'), array(), 32).'</a>';
     $social_right_content .= '<a href="'.api_get_path(WEB_PATH).'main/messages/outbox.php?f=social">'.Display::return_icon('outbox.png', get_lang('Outbox'), array(), 32).'</a>';
     $social_right_content .= '<a href="'.api_get_path(WEB_PATH).'main/messages/outbox.php?f=social">'.Display::return_icon('outbox.png', get_lang('Outbox'), array(), 32).'</a>';
     $social_right_content .= '</div>';
     $social_right_content .= '</div>';
     $social_right_content .= '</div>';
     $social_right_content .= '</div>';
-    $social_right_content .= '<div class="span9">';
+    $social_right_content .= '<div class="col-md-12">';
 }
 }
 //MAIN CONTENT
 //MAIN CONTENT
 
 
@@ -170,7 +191,7 @@ if (api_get_setting('allow_social_tool') == 'true') {
     $tpl->assign('social_avatar_block', $social_avatar_block);
     $tpl->assign('social_avatar_block', $social_avatar_block);
     $tpl->assign('social_menu_block', $social_menu_block);
     $tpl->assign('social_menu_block', $social_menu_block);
     $tpl->assign('social_right_content', $social_right_content);
     $tpl->assign('social_right_content', $social_right_content);
-    $social_layout = $tpl->get_template('layout/social_layout.tpl');
+    $social_layout = $tpl->get_template('social/inbox.tpl');
     $tpl->display($social_layout);
     $tpl->display($social_layout);
 } else {
 } else {
     $content = $social_right_content;
     $content = $social_right_content;

+ 23 - 2
main/messages/new_message.php

@@ -309,8 +309,29 @@ if ($group_id != 0) {
 
 
 // LEFT COLUMN
 // LEFT COLUMN
 $social_left_content = null;
 $social_left_content = null;
+$userInfo    = UserManager::get_user_info_by_id($user_id);
 if (api_get_setting('allow_social_tool') == 'true') {
 if (api_get_setting('allow_social_tool') == 'true') {
-    $social_avatar_block = SocialManager::show_social_avatar_block('messages');
+    //Block Social Avatar
+    $social_avatar_block = '<div class="panel panel-info social-avatar">';
+    $social_avatar_block .= SocialManager::show_social_avatar_block('messages');
+    $social_avatar_block .= '<div class="lastname">'.$userInfo['lastname'].'</div>';
+    $social_avatar_block .= '<div class="firstname">'.$userInfo['firstname'].'</div>';
+    $social_avatar_block .= '<div class="email">'.Display::return_icon('instant_message.png').'&nbsp;' .$userInfo['email'].'</div>';
+    $chat_status = $userInfo['extra'];
+    if(!empty($chat_status['user_chat_status'])){
+        $social_avatar_block.= '<div class="status">'.Display::return_icon('online.png').get_lang('Chat')." (".get_lang('Online').')</div>';
+    }else{
+        $social_avatar_block.= '<div class="status">'.Display::return_icon('offline.png').get_lang('Chat')." (".get_lang('Offline').')</div>';
+    }
+
+    $editProfileUrl = Display::getProfileEditionLink($user_id);
+
+    $social_avatar_block .= '<div class="edit-profile">
+                            <a class="btn" href="' . $editProfileUrl . '">' . get_lang('EditProfile') . '</a>
+                         </div>';
+    $social_avatar_block .= '</div>';
+
+    //Block Social Menu
     $social_menu_block = SocialManager::show_social_menu('messages');
     $social_menu_block = SocialManager::show_social_menu('messages');
     $social_right_content .= '<div class="span9">';
     $social_right_content .= '<div class="span9">';
     $social_right_content .= '<div class="actions">';
     $social_right_content .= '<div class="actions">';
@@ -371,7 +392,7 @@ if (api_get_setting('allow_social_tool') == 'true') {
     $tpl->assign('social_avatar_block', $social_avatar_block);
     $tpl->assign('social_avatar_block', $social_avatar_block);
     $tpl->assign('social_menu_block', $social_menu_block);
     $tpl->assign('social_menu_block', $social_menu_block);
     $tpl->assign('social_right_content', $social_right_content);
     $tpl->assign('social_right_content', $social_right_content);
-    $social_layout = $tpl->get_template('layout/social_layout.tpl');
+    $social_layout = $tpl->get_template('social/inbox.tpl');
     $tpl->display($social_layout);
     $tpl->display($social_layout);
 } else {
 } else {
     $content = $social_right_content;
     $content = $social_right_content;

+ 22 - 3
main/messages/outbox.php

@@ -108,9 +108,28 @@ if (isset($_REQUEST['action'])) {
 }
 }
 
 
 $social_right_content = '';
 $social_right_content = '';
-
+$userInfo    = UserManager::get_user_info_by_id($user_id);
 if (api_get_setting('allow_social_tool') == 'true') {
 if (api_get_setting('allow_social_tool') == 'true') {
-    $social_avatar_block = SocialManager::show_social_avatar_block('messages');
+    //Block Social Avatar
+    $social_avatar_block = '<div class="panel panel-info social-avatar">';
+    $social_avatar_block .= SocialManager::show_social_avatar_block('messages');
+    $social_avatar_block .= '<div class="lastname">'.$userInfo['lastname'].'</div>';
+    $social_avatar_block .= '<div class="firstname">'.$userInfo['firstname'].'</div>';
+    $social_avatar_block .= '<div class="email">'.Display::return_icon('instant_message.png').'&nbsp;' .$userInfo['email'].'</div>';
+    $chat_status = $userInfo['extra'];
+    if(!empty($chat_status['user_chat_status'])){
+        $social_avatar_block.= '<div class="status">'.Display::return_icon('online.png').get_lang('Chat')." (".get_lang('Online').')</div>';
+    }else{
+        $social_avatar_block.= '<div class="status">'.Display::return_icon('offline.png').get_lang('Chat')." (".get_lang('Offline').')</div>';
+    }
+
+    $editProfielUrl = Display::getProfileEditionLink($user_id);
+
+    $social_avatar_block .= '<div class="edit-profile">
+                            <a class="btn" href="' . $editProfileUrl . '">' . get_lang('EditProfile') . '</a>
+                         </div>';
+    $social_avatar_block .= '</div>';
+    //Block Social Menu
     $social_menu_block = SocialManager::show_social_menu('messages');
     $social_menu_block = SocialManager::show_social_menu('messages');
     $social_right_content .= '<div class="span9">';
     $social_right_content .= '<div class="span9">';
         $social_right_content .= '<div class="actions">';
         $social_right_content .= '<div class="actions">';
@@ -153,7 +172,7 @@ if (api_get_setting('allow_social_tool') == 'true') {
     $tpl->assign('social_avatar_block', $social_avatar_block);
     $tpl->assign('social_avatar_block', $social_avatar_block);
     $tpl->assign('social_menu_block', $social_menu_block);
     $tpl->assign('social_menu_block', $social_menu_block);
     $tpl->assign('social_right_content', $social_right_content);
     $tpl->assign('social_right_content', $social_right_content);
-    $social_layout = $tpl->get_template('layout/social_layout.tpl');
+    $social_layout = $tpl->get_template('social/home.tpl');
     $tpl->display($social_layout);
     $tpl->display($social_layout);
 } else {
 } else {
     $content = $social_right_content;
     $content = $social_right_content;

+ 24 - 2
main/messages/view_message.php

@@ -53,8 +53,30 @@ if (empty($_GET['id'])) {
 $message  = '';
 $message  = '';
 
 
 //LEFT COLUMN
 //LEFT COLUMN
+$userInfo    = UserManager::get_user_info_by_id($user_id);
 if (api_get_setting('allow_social_tool') == 'true') {
 if (api_get_setting('allow_social_tool') == 'true') {
-    $social_avatar_block = SocialManager::show_social_avatar_block($show_menu);
+    //Block Social Avatar
+    $social_avatar_block = '<div class="panel panel-info social-avatar">';
+    $social_avatar_block .= SocialManager::show_social_avatar_block($show_menu);
+    $social_avatar_block .= '<div class="lastname">'.$userInfo['lastname'].'</div>';
+    $social_avatar_block .= '<div class="firstname">'.$userInfo['firstname'].'</div>';
+    $social_avatar_block .= '<div class="email">'.Display::return_icon('instant_message.png').'&nbsp;' .$userInfo['email'].'</div>';
+    $chat_status = $userInfo['extra'];
+    if(!empty($chat_status['user_chat_status'])){
+        $social_avatar_block.= '<div class="status">'.Display::return_icon('online.png').get_lang('Chat')." (".get_lang('Online').')</div>';
+    }else{
+        $social_avatar_block.= '<div class="status">'.Display::return_icon('offline.png').get_lang('Chat')." (".get_lang('Offline').')</div>';
+    }
+
+    $editProfileUrl = Display::getProfileEditionLink($user_id);
+
+    $social_avatar_block .= '<div class="edit-profile">
+                            <a class="btn" href="' . $editProfileUrl . '">' . get_lang('EditProfile') . '</a>
+                         </div>';
+    $social_avatar_block .= '</div>';
+
+
+    //Block Social Menu
     $social_menu_block = SocialManager::show_social_menu($show_menu);
     $social_menu_block = SocialManager::show_social_menu($show_menu);
     $message .='<div class="span9">';
     $message .='<div class="span9">';
 }
 }
@@ -75,7 +97,7 @@ if (api_get_setting('allow_social_tool') == 'true') {
     $tpl->assign('social_avatar_block', $social_avatar_block);
     $tpl->assign('social_avatar_block', $social_avatar_block);
     $tpl->assign('social_menu_block', $social_menu_block);
     $tpl->assign('social_menu_block', $social_menu_block);
     $tpl->assign('social_right_content', $social_right_content);
     $tpl->assign('social_right_content', $social_right_content);
-    $social_layout = $tpl->get_template('layout/social_layout.tpl');
+    $social_layout = $tpl->get_template('social/inbox.tpl');
     $tpl->display($social_layout);
     $tpl->display($social_layout);
 } else {
 } else {
     $content = $social_right_content;
     $content = $social_right_content;

+ 9 - 8
main/newscorm/learnpath.class.php

@@ -5384,12 +5384,12 @@ class learnpath
         } else {
         } else {
             $return_audio = '<table class="data_table">';
             $return_audio = '<table class="data_table">';
             $return_audio .= '<tr>';
             $return_audio .= '<tr>';
-            $return_audio .= '<th width="60%">' . get_lang('Title') . '</th>';
+            $return_audio .= '<th width="40%">' . get_lang('Title') . '</th>';
             $return_audio .= '<th>' . get_lang('Audio') . '</th>';
             $return_audio .= '<th>' . get_lang('Audio') . '</th>';
             $return_audio .= '</tr>';
             $return_audio .= '</tr>';
 
 
             if ($update_audio != 'true') {
             if ($update_audio != 'true') {
-                $return .= '<div class="span12">';
+                $return .= '<div class="col-md-12">';
                 $return .= self::return_new_tree($update_audio);
                 $return .= self::return_new_tree($update_audio);
                 $return .='</div>';
                 $return .='</div>';
                 $return .= Display::div(Display::url(get_lang('Save'), '#', array('id'=>'listSubmit', 'class'=>'btn')), array('style'=>'float:left; margin-top:15px;width:100%'));
                 $return .= Display::div(Display::url(get_lang('Save'), '#', array('id'=>'listSubmit', 'class'=>'btn')), array('style'=>'float:left; margin-top:15px;width:100%'));
@@ -5400,7 +5400,7 @@ class learnpath
 
 
             // We need to close the form when we are updating the mp3 files.
             // We need to close the form when we are updating the mp3 files.
             if ($update_audio == 'true') {
             if ($update_audio == 'true') {
-                $return .= '<div style="margin:40px 0; float:right;"><button class="save" type="submit" name="save_audio" id="save_audio">' . get_lang('SaveAudioAndOrganization') . '</button></div>'; // TODO: What kind of language variable is this?
+                $return .= '<div><button class="save" type="submit" name="save_audio" id="save_audio">' . get_lang('SaveAudioAndOrganization') . '</button></div>'; // TODO: What kind of language variable is this?
             }
             }
         }
         }
 
 
@@ -5618,9 +5618,10 @@ class learnpath
             }
             }
         }
         }
 
 
-        $return .= '<div class="lp_tree well">';
+        $return .= '<div class="panel panel-default">';
+        $return .= '<div class="panel-heading">'.$this->name.'</div>';
+        $return .= '<div class="panel-body">';
         $return .= '<ul id="lp_item_list">';
         $return .= '<ul id="lp_item_list">';
-        $return .='<h4>'.$this->name.'</h4><br>';
 
 
         $tree = self::print_recursive($elements, $default_data, $default_content);
         $tree = self::print_recursive($elements, $default_data, $default_content);
 
 
@@ -5635,7 +5636,7 @@ class learnpath
         if ($update_audio == 'true') {
         if ($update_audio == 'true') {
             $return = $return_audio;
             $return = $return_audio;
         } else {
         } else {
-            $return .= '</div>';
+            $return .= '</div></div>';
         }
         }
         return $return;
         return $return;
     }
     }
@@ -8326,7 +8327,7 @@ class learnpath
             $return .= '<tr>';
             $return .= '<tr>';
             $return .= '<td class="radio"' . (($item['item_type'] != TOOL_QUIZ && $item['item_type'] != TOOL_HOTPOTATOES) ? ' colspan="3"' : '') . '>';
             $return .= '<td class="radio"' . (($item['item_type'] != TOOL_QUIZ && $item['item_type'] != TOOL_HOTPOTATOES) ? ' colspan="3"' : '') . '>';
             $return .= '<label for="id' . $item['id'] . '">';
             $return .= '<label for="id' . $item['id'] . '">';
-            $return .= '<input' . (($item['id'] == $prerequisiteId) ? ' checked="checked" ' : '') . (($item['item_type'] == 'dokeos_module' || $item['item_type'] == 'dokeos_chapter') ? ' disabled="disabled" ' : ' ') . 'id="id' . $item['id'] . '" name="prerequisites" style="margin-left:' . $item['depth'] * 10 . 'px; margin-right:10px;" type="radio" value="' . $item['id'] . '" />';
+            $return .= '<input' . (in_array($prerequisiteId, array($item['id'], $item['ref'])) ? ' checked="checked" ' : '') . (($item['item_type'] == 'dokeos_module' || $item['item_type'] == 'dokeos_chapter') ? ' disabled="disabled" ' : ' ') . 'id="id' . $item['id'] . '" name="prerequisites" style="margin-left:' . $item['depth'] * 10 . 'px; margin-right:10px;" type="radio" value="' . $item['id'] . '" />';
             $icon_name = str_replace(' ', '', $item['item_type']);
             $icon_name = str_replace(' ', '', $item['item_type']);
 
 
             if (file_exists('../img/lp_' . $icon_name . '.png')) {
             if (file_exists('../img/lp_' . $icon_name . '.png')) {
@@ -8402,7 +8403,7 @@ class learnpath
                 ORDER BY display_order ";
                 ORDER BY display_order ";
         $rs = Database::query($sql);
         $rs = Database::query($sql);
         $return = '';
         $return = '';
-        $return .= '<select name="prerequisites" >';
+        $return .= '<select name="prerequisites" class="form-control">';
         $return .= '<option value="0">'.get_lang('None').'</option>';
         $return .= '<option value="0">'.get_lang('None').'</option>';
         if (Database::num_rows($rs) > 0) {
         if (Database::num_rows($rs) > 0) {
             while ($row = Database::fetch_array($rs)) {
             while ($row = Database::fetch_array($rs)) {

+ 3 - 3
main/newscorm/lp_add_audio.php

@@ -99,8 +99,8 @@ if (isset($lp_item->audio) && !empty($lp_item->audio)) {
 }
 }
 
 
 $page = $_SESSION['oLP']->build_action_menu(true);
 $page = $_SESSION['oLP']->build_action_menu(true);
-$page .= '<div class="row-fluid" style="overflow:hidden">';
-$page .= '<div id="lp_sidebar" class="span4">';
+$page .= '<div class="row" style="overflow:hidden">';
+$page .= '<div id="lp_sidebar" class="col-md-4">';
 $page .= $_SESSION['oLP']->return_new_tree(null, true);
 $page .= $_SESSION['oLP']->return_new_tree(null, true);
 
 
 // Show the template list.
 // Show the template list.
@@ -108,7 +108,7 @@ $page .= '</div>';
 
 
 $recordVoiceForm = Display::page_subheader(get_lang('RecordYourVoice'));
 $recordVoiceForm = Display::page_subheader(get_lang('RecordYourVoice'));
 
 
-$page .= '<div id="doc_form" class="span8">';
+$page .= '<div id="doc_form" class="col-md-8">';
 
 
 $tpl = new Template(null);
 $tpl = new Template(null);
 $tpl->assign('unique_file_id', api_get_unique_id());
 $tpl->assign('unique_file_id', api_get_unique_id());

+ 1 - 1
main/newscorm/lp_add_item.php

@@ -178,7 +178,7 @@ $(document).ready(function() {
 
 
 echo $learnPath->build_action_menu();
 echo $learnPath->build_action_menu();
 
 
-echo '<div class="row-fluid" style="overflow:hidden">';
+echo '<div class="row" style="overflow:hidden">';
 echo '<div id="lp_sidebar" class="col-md-4">';
 echo '<div id="lp_sidebar" class="col-md-4">';
 
 
 echo $learnPath->return_new_tree(null, true);
 echo $learnPath->return_new_tree(null, true);

+ 3 - 3
main/newscorm/lp_admin_view.php

@@ -277,12 +277,12 @@ function confirmation(name) {
 
 
 echo $_SESSION['oLP']->build_action_menu();
 echo $_SESSION['oLP']->build_action_menu();
 
 
-echo '<div class="row-fluid">';
-echo '<div class="span3">';
+echo '<div class="row">';
+echo '<div class="col-md-4">';
 echo $_SESSION['oLP']->return_new_tree(null, true);
 echo $_SESSION['oLP']->return_new_tree(null, true);
 echo '</div>';
 echo '</div>';
 
 
-echo '<div class="span9">';
+echo '<div class="col-md-8">';
 switch ($_GET['action']) {
 switch ($_GET['action']) {
     case 'edit_item':
     case 'edit_item':
         if (isset($is_success) && $is_success === true) {
         if (isset($is_success) && $is_success === true) {

+ 3 - 3
main/newscorm/lp_build.php

@@ -125,12 +125,12 @@ function confirmation(name) {
 
 
 echo $_SESSION['oLP']->build_action_menu();
 echo $_SESSION['oLP']->build_action_menu();
 
 
-echo '<div class="row-fluid">';
-echo '<div class="span4">';
+echo '<div class="row">';
+echo '<div class="col-md-4">';
 // Build the tree with the menu items in it.
 // Build the tree with the menu items in it.
 echo $_SESSION['oLP']->return_new_tree();    
 echo $_SESSION['oLP']->return_new_tree();    
 echo '</div>';        
 echo '</div>';        
-echo '<div class="span8">';
+echo '<div class="col-md-8">';
 
 
 if (isset($is_success) && $is_success === true) {
 if (isset($is_success) && $is_success === true) {
     Display::display_confirmation_message(get_lang('ItemRemoved'));
     Display::display_confirmation_message(get_lang('ItemRemoved'));

+ 11 - 6
main/newscorm/lp_edit.php

@@ -161,8 +161,12 @@ $expired_on     = $_SESSION['oLP'] ->expired_on;
 $publicated_on  = $_SESSION['oLP'] ->publicated_on;
 $publicated_on  = $_SESSION['oLP'] ->publicated_on;
 
 
 // Prerequisites
 // Prerequisites
-$form->addElement('html', '<div class="control-group"><label class="control-label">'.get_lang('LearnpathPrerequisites').'</label>
-<div class="controls">'.$_SESSION['oLP']->display_lp_prerequisites_list().' <span class="help-block">'.get_lang('LpPrerequisiteDescription').'</span></div></div>');
+$form->addElement('html','<div class="form-group">');
+$items = $_SESSION['oLP']->display_lp_prerequisites_list();
+$form->addElement('html','<label class="col-md-2">'.get_lang('LearnpathPrerequisites').'</label>');
+$form->addElement('html','<div class="col-md-10">');
+$form->addElement('html',$items);
+$form->addElement('html', '<div class="help-block">'.get_lang('LpPrerequisiteDescription').'</div></div></div>');
 
 
 //Start date
 //Start date
 $form->addElement('checkbox', 'activate_start_date_check', null,get_lang('EnableStartTime'), array('onclick' => 'activate_start_date()'));
 $form->addElement('checkbox', 'activate_start_date_check', null,get_lang('EnableStartTime'), array('onclick' => 'activate_start_date()'));
@@ -201,7 +205,8 @@ if ($enableLpExtraFields) {
 }
 }
 
 
 //Submit button
 //Submit button
-$form->addElement('style_submit_button', 'Submit',get_lang('SaveLPSettings'),'class="save"');
+//$form->addElement('style_submit_button', 'Submit',get_lang('SaveLPSettings'),'class="save"');
+$form->addButtonSave(get_lang('SaveLPSettings'));
 
 
 // Hidden fields
 // Hidden fields
 $form->addElement('hidden', 'action', 'update_lp');
 $form->addElement('hidden', 'action', 'update_lp');
@@ -230,14 +235,14 @@ echo $_SESSION['oLP']->build_action_menu();
 echo '<div class="row">';
 echo '<div class="row">';
 
 
 if ($_SESSION['oLP']->get_hide_toc_frame() == 1) {
 if ($_SESSION['oLP']->get_hide_toc_frame() == 1) {
-    echo '<div class="span12">';
+    echo '<div class="col-md-12">';
     $form -> display();
     $form -> display();
     echo '</div>';
     echo '</div>';
 } else{
 } else{
-    echo '<div class="span6">';
+    echo '<div class="col-md-8">';
     $form -> display();
     $form -> display();
     echo '</div>';
     echo '</div>';
-    echo '<div class="span6" align="center">';
+    echo '<div class="col-md-4" align="center">';
     echo '<img src="../img/course_setting_layout.png" />';
     echo '<img src="../img/course_setting_layout.png" />';
     echo '</div>';
     echo '</div>';
 }
 }

+ 3 - 3
main/newscorm/lp_edit_item.php

@@ -117,8 +117,8 @@ function confirmation(name) {
 
 
 echo $_SESSION['oLP']->build_action_menu();
 echo $_SESSION['oLP']->build_action_menu();
 
 
-echo '<div class="row-fluid">';
-echo '<div class="span3">';
+echo '<div class="row">';
+echo '<div class="col-md-3">';
 
 
 $path_item = isset($_GET['path_item']) ? $_GET['path_item'] : 0;
 $path_item = isset($_GET['path_item']) ? $_GET['path_item'] : 0;
 $path_item = Database::escape_string($path_item);
 $path_item = Database::escape_string($path_item);
@@ -139,7 +139,7 @@ if (Database::num_rows($res_doc) > 0 && $path_parts['extension'] == 'html') {
 }
 }
 
 
 echo '</div>';
 echo '</div>';
-echo '<div class="span9">';
+echo '<div class="col-md-9">';
 
 
 if (isset($is_success) && $is_success === true) {
 if (isset($is_success) && $is_success === true) {
     $msg = '<div class="lp_message" style="margin-bottom:10px;">';
     $msg = '<div class="lp_message" style="margin-bottom:10px;">';

+ 3 - 3
main/newscorm/lp_edit_item_prereq.php

@@ -100,11 +100,11 @@ $suredel = trim(get_lang('AreYouSureToDelete'));
 
 
 echo $lp->build_action_menu();
 echo $lp->build_action_menu();
 
 
-echo '<div class="row-fluid">';
-echo '<div class="span3">';
+echo '<div class="row">';
+echo '<div class="col-md-3">';
 echo $lp->return_new_tree();
 echo $lp->return_new_tree();
 echo '</div>';
 echo '</div>';
-echo '<div class="span9">';
+echo '<div class="col-md-9">';
 if (isset($is_success) && $is_success == true) {
 if (isset($is_success) && $is_success == true) {
     echo $lp->display_manipulate($_GET['id'], null);
     echo $lp->display_manipulate($_GET['id'], null);
     echo Display::return_message(get_lang("PrerequisitesAdded"));
     echo Display::return_message(get_lang("PrerequisitesAdded"));

+ 3 - 3
main/newscorm/lp_move_item.php

@@ -159,12 +159,12 @@ function confirmation(name)
 
 
 echo $_SESSION['oLP']->build_action_menu();
 echo $_SESSION['oLP']->build_action_menu();
 
 
-echo '<div class="row-fluid">';
-echo '<div class="span3">';
+echo '<div class="row">';
+echo '<div class="col-md-3">';
     echo $_SESSION['oLP']->return_new_tree();
     echo $_SESSION['oLP']->return_new_tree();
 echo '</div>';
 echo '</div>';
 
 
-echo '<div class="span9">';
+echo '<div class="col-md-9">';
 
 
 if (isset($is_success) && $is_success === true) {
 if (isset($is_success) && $is_success === true) {
     $msg = '<div class="lp_message" style="margin-bottom:10px;">';
     $msg = '<div class="lp_message" style="margin-bottom:10px;">';

+ 3 - 3
main/newscorm/lp_view_item.php

@@ -136,11 +136,11 @@ if (is_object($_SESSION['oLP'])) {
     switch ($mode) {
     switch ($mode) {
         case 'fullpage':
         case 'fullpage':
             echo $_SESSION['oLP']->build_action_menu();
             echo $_SESSION['oLP']->build_action_menu();
-            echo '<div class="row-fluid">';
-            echo '<div class="span3">';
+            echo '<div class="row">';
+            echo '<div class="col-md-3">';
             echo $_SESSION['oLP']->return_new_tree();
             echo $_SESSION['oLP']->return_new_tree();
             echo '</div>';
             echo '</div>';
-            echo '<div class="span9">';
+            echo '<div class="col-md-9">';
                 echo $_SESSION['oLP']->display_item($id);
                 echo $_SESSION['oLP']->display_item($id);
             echo '</div>';
             echo '</div>';
             echo '</div>';
             echo '</div>';

+ 22 - 2
main/social/friends.php

@@ -80,8 +80,28 @@ function clear_form () {
 
 
 $interbreadcrumb[] = array('url' => 'profile.php', 'name' => get_lang('SocialNetwork'));
 $interbreadcrumb[] = array('url' => 'profile.php', 'name' => get_lang('SocialNetwork'));
 $interbreadcrumb[] = array('url' => '#', 'name' => get_lang('Friends'));
 $interbreadcrumb[] = array('url' => '#', 'name' => get_lang('Friends'));
+//Block Social Avatar
+$user_info    = UserManager::get_user_info_by_id($user_id);
+$social_avatar_block = '<div class="panel panel-info social-avatar">';
+$social_avatar_block .= SocialManager::show_social_avatar_block('friends');
+$social_avatar_block .= '<div class="lastname">'.$user_info['lastname'].'</div>';
+$social_avatar_block .= '<div class="firstname">'.$user_info['firstname'].'</div>';
+/* $social_avatar_block .= '<div class="username">'.Display::return_icon('user.png','','',ICON_SIZE_TINY).$user_info['username'].'</div>'; */
+$social_avatar_block .= '<div class="email">'.Display::return_icon('instant_message.png').'&nbsp;' .$user_info['email'].'</div>';
+$chat_status = $user_info['extra'];
+if(!empty($chat_status['user_chat_status'])){
+    $social_avatar_block.= '<div class="status">'.Display::return_icon('online.png').get_lang('Chat')." (".get_lang('Online').')</div>';
+}else{
+    $social_avatar_block.= '<div class="status">'.Display::return_icon('offline.png').get_lang('Chat')." (".get_lang('Offline').')</div>';
+}
+
+$editProfileUrl = Display::getProfileEditionLink($user_id);
 
 
-$social_avatar_block = SocialManager::show_social_avatar_block('friends');
+$social_avatar_block .= '<div class="edit-profile">
+                            <a class="btn" href="' . $editProfileUrl . '">' . get_lang('EditProfile') . '</a>
+                         </div>';
+$social_avatar_block .= '</div>';
+//Block Social Menu
 $social_menu_block = SocialManager::show_social_menu('friends');
 $social_menu_block = SocialManager::show_social_menu('friends');
 
 
 $user_id = api_get_user_id();
 $user_id = api_get_user_id();
@@ -142,5 +162,5 @@ $tpl->assign('social_avatar_block', $social_avatar_block);
 $tpl->assign('social_menu_block', $social_menu_block);
 $tpl->assign('social_menu_block', $social_menu_block);
 $tpl->assign('social_right_content', $social_right_content);
 $tpl->assign('social_right_content', $social_right_content);
 
 
-$social_layout = $tpl->get_template('layout/social_layout.tpl');
+$social_layout = $tpl->get_template('social/friends.tpl');
 $tpl->display($social_layout);
 $tpl->display($social_layout);

+ 1 - 1
main/social/group_add.php

@@ -81,5 +81,5 @@ $tpl->assign('social_menu_block', $social_menu_block);
 $tpl->assign('social_right_content', $social_right_content);
 $tpl->assign('social_right_content', $social_right_content);
 //$tpl->assign('actions', $actions);
 //$tpl->assign('actions', $actions);
 //$tpl->assign('message', $show_message);
 //$tpl->assign('message', $show_message);
-$social_layout = $tpl->get_template('layout/social_layout.tpl');
+$social_layout = $tpl->get_template('social/add_groups.tpl');
 $tpl->display($social_layout);
 $tpl->display($social_layout);

+ 1 - 1
main/social/group_edit.php

@@ -107,5 +107,5 @@ $tpl->set_help('Groups');
 $tpl->assign('social_avatar_block', $social_avatar_block);
 $tpl->assign('social_avatar_block', $social_avatar_block);
 $tpl->assign('social_menu_block', $social_menu_block);
 $tpl->assign('social_menu_block', $social_menu_block);
 $tpl->assign('social_right_content', $social_right_content);
 $tpl->assign('social_right_content', $social_right_content);
-$social_layout = $tpl->get_template('layout/social_layout.tpl');
+$social_layout = $tpl->get_template('social/home.tpl');
 $tpl->display($social_layout);
 $tpl->display($social_layout);

+ 1 - 1
main/social/group_invitation.php

@@ -602,5 +602,5 @@ $tpl->set_help('Groups');
 $tpl->assign('social_avatar_block', $social_avatar_block);
 $tpl->assign('social_avatar_block', $social_avatar_block);
 $tpl->assign('social_menu_block', $social_menu_block);
 $tpl->assign('social_menu_block', $social_menu_block);
 $tpl->assign('social_right_content', $social_right_content);
 $tpl->assign('social_right_content', $social_right_content);
-$social_layout = $tpl->get_template('layout/social_layout.tpl');
+$social_layout = $tpl->get_template('social/add_groups.tpl');
 $tpl->display($social_layout);
 $tpl->display($social_layout);

+ 1 - 1
main/social/group_members.php

@@ -203,5 +203,5 @@ $tpl->assign('social_avatar_block', $social_avatar_block);
 $tpl->assign('social_menu_block', $social_menu_block);
 $tpl->assign('social_menu_block', $social_menu_block);
 $tpl->assign('social_right_content', $social_right_content);
 $tpl->assign('social_right_content', $social_right_content);
 
 
-$social_layout = $tpl->get_template('layout/social_layout.tpl');
+$social_layout = $tpl->get_template('social/home.tpl');
 $tpl->display($social_layout);
 $tpl->display($social_layout);

+ 1 - 1
main/social/group_topics.php

@@ -250,5 +250,5 @@ $tpl->assign('social_right_content', $social_right_content);
 //$tpl->assign('actions', $actions);
 //$tpl->assign('actions', $actions);
 //$tpl->assign('message', $show_message);
 //$tpl->assign('message', $show_message);
 $tpl->assign('content', $content);
 $tpl->assign('content', $content);
-$social_layout = $tpl->get_template('layout/social_layout.tpl');
+$social_layout = $tpl->get_template('social/home.tpl');
 $tpl->display($social_layout);
 $tpl->display($social_layout);

+ 1 - 1
main/social/group_waiting_list.php

@@ -110,5 +110,5 @@ $tpl->assign('social_right_content', $social_right_content);
 $tpl->assign('actions', $actions);
 $tpl->assign('actions', $actions);
 $tpl->assign('message', $show_message);
 $tpl->assign('message', $show_message);
 $tpl->assign('content', $content);
 $tpl->assign('content', $content);
-$social_layout = $tpl->get_template('layout/social_layout.tpl');
+$social_layout = $tpl->get_template('social/home.tpl');
 $tpl->display($social_layout);
 $tpl->display($social_layout);

+ 43 - 7
main/social/groups.php

@@ -218,22 +218,58 @@ if ($group_id != 0) {
     }
     }
 }
 }
 $create_thread_link = '';
 $create_thread_link = '';
-
+$userInfo    = UserManager::get_user_info_by_id($user_id);
 if ($group_id != 0) {
 if ($group_id != 0) {
-    $social_avatar_block = SocialManager::show_social_avatar_block(
+    //Block Social Avatar
+    $social_avatar_block = '<div class="panel panel-info social-avatar">';
+    $social_avatar_block .= SocialManager::show_social_avatar_block(
         'groups',
         'groups',
         $group_id
         $group_id
     );
     );
+    $social_avatar_block .= '<div class="lastname">'.$userInfo['lastname'].'</div>';
+    $social_avatar_block .= '<div class="firstname">'.$userInfo['firstname'].'</div>';
+    $social_avatar_block .= '<div class="email">'.Display::return_icon('instant_message.png').'&nbsp;' .$userInfo['email'].'</div>';
+    $chat_status = $userInfo['extra'];
+    if(!empty($chat_status['user_chat_status'])){
+        $social_avatar_block.= '<div class="status">'.Display::return_icon('online.png').get_lang('Chat')." (".get_lang('Online').')</div>';
+    }else{
+        $social_avatar_block.= '<div class="status">'.Display::return_icon('offline.png').get_lang('Chat')." (".get_lang('Offline').')</div>';
+    }
+
+    $editProfileUrl = Display::getProfileEditionLink($user_id);
+
+    $social_avatar_block .= '<div class="edit-profile">
+                            <a class="btn" href="' . $editProfileUrl . '">' . get_lang('EditProfile') . '</a>
+                         </div>';
+    $social_avatar_block .= '</div>';
+
+    //Block Social Menu
     $social_menu_block = SocialManager::show_social_menu('groups', $group_id);
     $social_menu_block = SocialManager::show_social_menu('groups', $group_id);
 } else {
 } else {
     $show_menu = 'browse_groups';
     $show_menu = 'browse_groups';
     if (isset($_GET['view']) && $_GET['view'] == 'mygroups') {
     if (isset($_GET['view']) && $_GET['view'] == 'mygroups') {
         $show_menu = $_GET['view'];
         $show_menu = $_GET['view'];
     }
     }
-    $social_avatar_block = SocialManager::show_social_avatar_block(
-        $show_menu,
-        $group_id
-    );
+    //Block Social Avatar
+    $social_avatar_block  = '<div class="panel panel-info social-avatar">';
+    $social_avatar_block .= SocialManager::show_social_avatar_block($show_menu,$group_id);
+    $social_avatar_block .= '<div class="lastname">'.$user_info['lastname'].'</div>';
+    $social_avatar_block .= '<div class="firstname">'.$user_info['firstname'].'</div>';
+    $social_avatar_block .= '<div class="email">'.Display::return_icon('instant_message.png').'&nbsp;' .$user_info['email'].'</div>';
+    $chat_status = $user_info['extra'];
+    if(!empty($chat_status['user_chat_status'])){
+        $social_avatar_block.= '<div class="status">'.Display::return_icon('online.png').get_lang('Chat')." (".get_lang('Online').')</div>';
+    }else{
+        $social_avatar_block.= '<div class="status">'.Display::return_icon('offline.png').get_lang('Chat')." (".get_lang('Offline').')</div>';
+    }
+
+    $editProfileUrl = Display::getProfileEditionLink($user_id);
+
+    $social_avatar_block .= '<div class="edit-profile">
+                            <a class="btn" href="' . $editProfileUrl . '">' . get_lang('EditProfile') . '</a>
+                         </div>';
+    $social_avatar_block .= '</div>';
+
     $social_menu_block = SocialManager::show_social_menu($show_menu, $group_id);
     $social_menu_block = SocialManager::show_social_menu($show_menu, $group_id);
 }
 }
 
 
@@ -888,5 +924,5 @@ $tpl->assign('social_right_content', $social_right_content);
 
 
 $tpl->assign('message', $show_message);
 $tpl->assign('message', $show_message);
 $tpl->assign('content', $content);
 $tpl->assign('content', $content);
-$social_layout = $tpl->get_template('layout/social_layout.tpl');
+$social_layout = $tpl->get_template('social/groups.tpl');
 $tpl->display($social_layout);
 $tpl->display($social_layout);

+ 132 - 133
main/social/home.php

@@ -3,6 +3,7 @@
 /**
 /**
  * @package chamilo.social
  * @package chamilo.social
  * @author Julio Montoya <gugli100@gmail.com>
  * @author Julio Montoya <gugli100@gmail.com>
+ * @autor Alex Aragon <alex.aragon@beeznest.com> CSS Design and Template
  */
  */
 /**
 /**
  * Initialization
  * Initialization
@@ -57,7 +58,8 @@ if (api_get_setting('profile', 'picture') == 'true') {
         'style_submit_button',
         'style_submit_button',
         'apply_change',
         'apply_change',
         get_lang('SaveSettings'),
         get_lang('SaveSettings'),
-        'class="save"'
+        'floppy-o',
+        'btn btn-success'
     );
     );
 
 
     if ($form->validate()) {
     if ($form->validate()) {
@@ -81,61 +83,71 @@ if (api_get_setting('profile', 'picture') == 'true') {
     }
     }
 }
 }
 
 
-$user_info = UserManager :: get_user_info_by_id(api_get_user_id());
+$userInfo = UserManager :: get_user_info_by_id(api_get_user_id());
 
 
-$social_avatar_block = SocialManager::show_social_avatar_block('home');
+$social_avatar_block = '<div class="panel panel-default social-avatar">';
+$social_avatar_block .= SocialManager::show_social_avatar_block('home');
+$social_avatar_block .= '<div class="lastname">'.$userInfo['lastname'].'</div>';
+$social_avatar_block .= '<div class="firstname">'.$userInfo['firstname'].'</div>';
+$social_avatar_block .= '<div class="email">'.Display::return_icon('instant_message.png').'&nbsp;' .$userInfo['email'].'</div>';
+$chat_status = $userInfo['extra'];
+ if(!empty($chat_status['user_chat_status'])){
+     $social_avatar_block.= '<div class="status">'.Display::return_icon('online.png').get_lang('Chat')." (".get_lang('Online').')</div>';
+ }else{
+     $social_avatar_block.= '<div class="status">'.Display::return_icon('offline.png').get_lang('Chat')." (".get_lang('Offline').')</div>';
+ }
+
+$editProfileUrl = Display::getProfileEditionLink(api_get_user_id());
+
+$social_avatar_block .= '<div class="edit-profile">
+                            <a class="btn" href="' . $editProfileUrl . '">' . get_lang('EditProfile') . '</a>
+                         </div>';
+$social_avatar_block .= '</div>';
+
+//Block Menu
 $social_menu_block = SocialManager::show_social_menu('home');
 $social_menu_block = SocialManager::show_social_menu('home');
 
 
-$socialRightContent = '<div class="span5">';
-$socialRightContent .= '<div class="well_border">';
-$socialRightContent .= '<h3>' . get_lang('ContactInformation') . '</h3>';
-
-$list = array(
-    array(
-        'title' => get_lang('Name'),
-        'content' => api_get_person_name(
-            $user_info['firstname'],
-            $user_info['lastname']
-        )
-    ),
-    array('title' => get_lang('Email'), 'content' => $user_info['email']),
-);
-// information current user
-$socialRightContent .= '<div>' . Display::description($list) . '</div>';
-
-$editProfileUrl = api_get_path(WEB_CODE_PATH) . 'auth/profile.php';
-
-if (api_get_setting('sso_authentication') === 'true') {
-    $subSSOClass = api_get_setting('sso_authentication_subclass');
-    $objSSO = null;
-
-    if (!empty($subSSOClass)) {
-        require_once api_get_path(SYS_CODE_PATH) . 'auth/sso/sso.' . $subSSOClass . '.class.php';
-
-        $subSSOClass = 'sso' . $subSSOClass;
-        $objSSO = new $subSSOClass();
-    } else {
-        $objSSO = new sso();
-    }
+//Search box
+$social_search_block = '<div class="panel panel-default social-search">';
+$social_search_block .= '<div class="panel-heading">'.get_lang("SearchUsers").'</div>';
+$social_search_block .= '<div class="panel-body">';
+$social_search_block.= UserManager::get_search_form('');
+$social_search_block.= '</div>';
+$social_search_block.= '</div>';
 
 
-    $editProfileUrl = $objSSO->generateProfileEditingURL();
-}
+//BLock Social Skill
+$social_skill_block = '';
 
 
-$socialRightContent .= '
-    <div class="form-actions">
-    <a class="btn" href="' . $editProfileUrl . '">
-        ' . get_lang('EditProfile') . '
-    </a>
-    </div></div></div>';
-$socialRightInformation = '<div class="col-md-4">';
 if (api_get_setting('allow_skills_tool') == 'true') {
 if (api_get_setting('allow_skills_tool') == 'true') {
-    $socialRightInformation .= '<div class="well_border">';
     $skill = new Skill();
     $skill = new Skill();
-    $ranking = $skill->get_user_skill_ranking(api_get_user_id());
 
 
+    $ranking = $skill->get_user_skill_ranking(api_get_user_id());
     $skills = $skill->get_user_skills(api_get_user_id(), true);
     $skills = $skill->get_user_skills(api_get_user_id(), true);
 
 
-    $socialRightInformation .= '<h3>' . get_lang('Skills') . '</h3>';
+    $social_skill_block = '<div class="panel panel-default social-skill">';
+    $social_skill_block .= '<div class="panel-heading">' . get_lang('Skills');
+    $social_skill_block .= '<div class="btn-group pull-right"> <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
+                            <span class="caret"></span></a>
+                             <ul class="dropdown-menu">';
+    if (api_is_student() || api_is_student_boss() || api_is_drh()) {
+        $social_skill_block .= '<li>' . Display::url(
+            get_lang('SkillsReport'),
+            api_get_path(WEB_CODE_PATH) . 'social/my_skills_report.php'
+            ) . '</li>';
+    }
+
+    $social_skill_block .= '<li>' . Display::url(
+        get_lang('SkillsWheel'),
+        api_get_path(WEB_CODE_PATH) . 'social/skills_wheel.php'
+        ) . '</li>';
+
+    $social_skill_block .= '<li>' . Display::url(
+        sprintf(get_lang('YourSkillRankingX'), $ranking),
+        api_get_path(WEB_CODE_PATH) . 'social/skills_ranking.php'
+    ) . '</li>';
+
+    $social_skill_block .= '</ul></div></div>';
+
     $lis = '';
     $lis = '';
     if (!empty($skills)) {
     if (!empty($skills)) {
         foreach ($skills as $skill) {
         foreach ($skills as $skill) {
@@ -143,100 +155,83 @@ if (api_get_setting('allow_skills_tool') == 'true') {
 
 
             if (!empty($skill['icon'])) {
             if (!empty($skill['icon'])) {
                 $badgeImage = Display::img(
                 $badgeImage = Display::img(
-                    api_get_path(WEB_DATA_PATH) . $skill['iconThumb'],
+                    api_get_path(WEB_DATA_PATH) . $skill['icon'],
                     $skill['name']
                     $skill['name']
                 );
                 );
             } else {
             } else {
                 $badgeImage = Display::return_icon(
                 $badgeImage = Display::return_icon(
-                    'award_red.png',
+                    'badges-default.png',
                     $skill['name'],
                     $skill['name'],
-                    array('title' => $skill['name'])
+                    array('title' => $skill['name']),ICON_SIZE_BIG
                 );
                 );
             }
             }
 
 
             $lis .= Display::tag(
             $lis .= Display::tag(
                 'li',
                 'li',
-                $badgeImage . Display::span(
-                    $skill['name'],
-                    array('class' => 'label_tag skill')
-                )
+                $badgeImage .
+                '<div class="badges-name">' . $skill['name'] . '</div>'
             );
             );
         }
         }
-        $socialRightInformation .= Display::tag('ul', $lis, array('class' => 'menulist'));
+        $social_skill_block .= '<div class="panel-body">';
+        $social_skill_block .= Display::tag('ul', $lis, array('class' => 'list-badges'));
+        $social_skill_block .= '</div>';
+    }else{
+
+        $social_skill_block .= '<div class="panel-body">';
+        $social_skill_block .= '<p>'. get_lang("WithoutAchievedSkills") . '</p>';
+        $social_skill_block .= '<p>' . Display::url(get_lang('SkillsWheel'),api_get_path(WEB_CODE_PATH) . 'social/skills_wheel.php').'</p>';
+        $social_skill_block .= '</div>';
     }
     }
-    $socialRightInformation .= '<div class="menulist">';
-    if (api_is_student() || api_is_student_boss() || api_is_drh()) {
-        $socialRightInformation .= Display::url(
-            get_lang('SkillsReport'),
-            api_get_path(WEB_CODE_PATH) . 'social/my_skills_report.php',
-            array('class' => 'btn')
-        );
-    }
-    $socialRightInformation .= Display::url(
-        get_lang('SkillsWheel'),
-        api_get_path(WEB_CODE_PATH) . 'social/skills_wheel.php',
-        array('class' => 'btn')
-    );
-    $socialRightInformation .= Display::url(
-        sprintf(get_lang('YourSkillRankingX'), $ranking),
-        api_get_path(WEB_CODE_PATH) . 'social/skills_ranking.php',
-        array('class' => 'btn')
-    );
-    $socialRightInformation .= '</div><br />';
+    $social_skill_block.='</div>';
 }
 }
 
 
 
 
-//Search box
-$socialRightInformation .= '<div>';
-$socialRightInformation .= UserManager::get_search_form('');
-$socialRightInformation .= '<br /></div>';
 
 
 //Group box by age
 //Group box by age
+$social_group_block = '<div class="panel panel-default social-group">';
+$social_group_block .= '<div class="panel-heading">'.get_lang('Group').'</div>';
+$social_group_block .= '<div class="panel-body">';
+
 $results = GroupPortalManager::get_groups_by_age(1, false);
 $results = GroupPortalManager::get_groups_by_age(1, false);
 
 
 $groups_newest = array();
 $groups_newest = array();
+
 if (!empty($results)) {
 if (!empty($results)) {
     foreach ($results as $result) {
     foreach ($results as $result) {
         $id = $result['id'];
         $id = $result['id'];
-        $result['description'] = Security::remove_XSS(
-            $result['description'],
-            STUDENT,
-            true
-        );
+        $result['description'] = Security::remove_XSS( $result['description'], STUDENT, true );
         $result['name'] = Security::remove_XSS($result['name'], STUDENT, true);
         $result['name'] = Security::remove_XSS($result['name'], STUDENT, true);
+
         if ($result['count'] == 1) {
         if ($result['count'] == 1) {
             $result['count'] = '1 ' . get_lang('Member');
             $result['count'] = '1 ' . get_lang('Member');
         } else {
         } else {
             $result['count'] = $result['count'] . ' ' . get_lang('Members');
             $result['count'] = $result['count'] . ' ' . get_lang('Members');
         }
         }
+
         $group_url = "groups.php?id=$id";
         $group_url = "groups.php?id=$id";
-        $result['name'] = Display::url(
-                api_ucwords(cut($result['name'], 40, true)),
-                $group_url
-            ) . Display::span(
-                '<br />' . $result['count'],
-                array('class' => 'box_description_group_member')
-            );
+
+        $result['name'] = '<div class="group-name">'.Display::url(
+                          api_ucwords(cut($result['name'], 40, true)), $group_url)
+                          .'</div><div class="count-username">'.Display::return_icon('user.png','','',ICON_SIZE_TINY).$result['count'].'</div>';
+
         $picture = GroupPortalManager::get_picture_group(
         $picture = GroupPortalManager::get_picture_group(
             $id,
             $id,
             $result['picture_uri'],
             $result['picture_uri'],
             80
             80
         );
         );
-        $result['picture_uri'] = '<img class="social-groups-image" src="' . $picture['file'] . '" hspace="10" height="44" border="2" align="left" width="44" />';
-        $group_actions = '<div class="box_description_group_actions"><a href="groups.php?#tab_browse-2">' . get_lang(
-                'SeeMore'
-            ) . '</a></div>';
+
+        $result['picture_uri'] = '<img class="group-image" src="' . $picture['file'] . '" />';
+        $group_actions = '<div class="group-more"><a href="groups.php?#tab_browse-2">' . get_lang('SeeMore') . '</a></div>';
+        $group_info= '<div class="description"><p>' . cut($result['description'], 120, true) . "</p></div>";
         $groups_newest[] = array(
         $groups_newest[] = array(
             Display::url(
             Display::url(
                 $result['picture_uri'],
                 $result['picture_uri'],
                 $group_url
                 $group_url
-            ),
-            $result['name'],
-            cut($result['description'], 120, true) . $group_actions
+            ),$result['name'],$group_info.$group_actions
         );
         );
     }
     }
 }
 }
-
+//Top popular
 $results = GroupPortalManager::get_groups_by_popularity(1, false);
 $results = GroupPortalManager::get_groups_by_popularity(1, false);
 
 
 $groups_pop = array();
 $groups_pop = array();
@@ -255,49 +250,52 @@ foreach ($results as $result) {
     } else {
     } else {
         $result['count'] = $result['count'] . ' ' . get_lang('Members');
         $result['count'] = $result['count'] . ' ' . get_lang('Members');
     }
     }
-    $result['name'] = Display::url(
-            api_ucwords(cut($result['name'], 40, true)),
-            $group_url
-        ) . Display::span(
-            '<br />' . $result['count'],
-            array('class' => 'box_description_group_member')
-        );
+    $result['name'] = '<div class="group-name">'.Display::url(
+            api_ucwords(cut($result['name'], 40, true)),$group_url)
+        .'</div><div class="count-username">'.Display::return_icon('user.png','','',ICON_SIZE_TINY).$result['count'].'</div>';
+
     $picture = GroupPortalManager::get_picture_group(
     $picture = GroupPortalManager::get_picture_group(
         $id,
         $id,
         $result['picture_uri'],
         $result['picture_uri'],
         80
         80
     );
     );
-    $result['picture_uri'] = '<img class="social-groups-image" src="' . $picture['file'] . '" hspace="10" height="44" border="2" align="left" width="44" />';
-    $group_actions = '<div class="box_description_group_actions" ><a href="groups.php?#tab_browse-3">' . get_lang(
-            'SeeMore'
-        ) . '</a></div>';
+    $result['picture_uri'] = '<img class="group-image" src="' . $picture['file'] . '" />';
+    $group_actions = '<div class="group-more" ><a href="groups.php?#tab_browse-3">' . get_lang('SeeMore') . '</a></div>';
+    $group_info= '<div class="description"><p>' . cut($result['description'], 120, true) . "</p></div>";
     $groups_pop[] = array(
     $groups_pop[] = array(
         Display::url($result['picture_uri'], $group_url),
         Display::url($result['picture_uri'], $group_url),
-        $result['name'],
-        cut($result['description'], 120, true) . $group_actions
+        $result['name'],$group_info. $group_actions
     );
     );
 }
 }
 
 
-if (count($groups_newest) > 0) {
-    $socialRightInformation .= '<div class="social-groups-home-title">' . get_lang(
-            'Newest'
-        ) . '</div>';
-    $socialRightInformation .= Display::return_sortable_grid(
-        'home_group',
-        array(),
-        $groups_newest,
-        array('hide_navigation' => true, 'per_page' => 100),
-        array(),
-        false,
-        array(true, true, true, false)
-    );
+$list=count($groups_newest);
+
+if ($list > 0) {
+    $social_group_block .= '<div class="list-group-newest">';
+    $social_group_block .= '<div class="group-title">' . get_lang('Newest') . '</div>';
+    for($i = 0;$i < $list; $i++){
+        $social_group_block.='<div class="items">';
+        $social_group_block.='<div class="group-image">' . $groups_newest[$i][0] . '</div>';
+        $social_group_block.='<div class="group-info">' . $groups_newest[$i][1];
+        $social_group_block.= $groups_newest[$i][2] . '</div>';
+        $social_group_block.="</div>";
+    }
+    $social_group_block.= "</div>";
 }
 }
+$list=count($groups_pop);
+if ($list > 0) {
+    $social_group_block .= '<div class="list-group-newest">';
+    $social_group_block .= '<div class="group-title">' . get_lang('Popular') . '</div>';
+
+    for($i = 0;$i < $list; $i++){
+        $social_group_block.='<div class="items">';
+        $social_group_block.='<div class="group-image">' . $groups_pop[$i][0] . '</div>';
+        $social_group_block.='<div class="group-info">' . $groups_pop[$i][1];
+        $social_group_block.= $groups_pop[$i][2] . '</div>';
+        $social_group_block.="</div>";
+    }
 
 
-if (count($groups_pop) > 0) {
-    $socialRightInformation .= '<div class="social-groups-home-title">' . get_lang(
-            'Popular'
-        ) . '</div>';
-    $socialRightInformation .= Display::return_sortable_grid(
+    /*$social_group_block .= Display::return_sortable_grid(
         'home_group',
         'home_group',
         array(),
         array(),
         $groups_pop,
         $groups_pop,
@@ -305,14 +303,15 @@ if (count($groups_pop) > 0) {
         array(),
         array(),
         false,
         false,
         array(true, true, true, true, true)
         array(true, true, true, true, true)
-    );
+    );*/
 }
 }
-$socialRightInformation .= '</div>';
+$social_group_block .= '</div>';
 
 
 $tpl = new Template(get_lang('SocialNetwork'));
 $tpl = new Template(get_lang('SocialNetwork'));
 $tpl->assign('social_avatar_block', $social_avatar_block);
 $tpl->assign('social_avatar_block', $social_avatar_block);
 $tpl->assign('social_menu_block', $social_menu_block);
 $tpl->assign('social_menu_block', $social_menu_block);
-$tpl->assign('social_right_content', $socialRightContent);
-$tpl->assign('socialRightInformation', $socialRightInformation);
-$social_layout = $tpl->get_template('layout/social_layout.tpl');
+$tpl->assign('social_search_block', $social_search_block);
+$tpl->assign('social_skill_block', $social_skill_block);
+$tpl->assign('social_group_block', $social_group_block);
+$social_layout = $tpl->get_template('social/home.tpl');
 $tpl->display($social_layout);
 $tpl->display($social_layout);

+ 82 - 67
main/social/invitations.php

@@ -91,12 +91,31 @@ if (is_array($_GET) && count($_GET)>0) {
         }
         }
     }
     }
 }
 }
+//Block Avatar Social
+$userInfo    = UserManager::get_user_info_by_id($user_id);
+
+$social_avatar_block = '<div class="panel panel-info social-avatar">';
+$social_avatar_block .= SocialManager::show_social_avatar_block('invitations');
+$social_avatar_block .= '<div class="lastname">'.$userInfo['lastname'].'</div>';
+$social_avatar_block .= '<div class="firstname">'.$userInfo['firstname'].'</div>';
+$social_avatar_block .= '<div class="email">'.Display::return_icon('instant_message.png').'&nbsp;' .$userInfo['email'].'</div>';
+$chat_status = $userInfo['extra'];
+if(!empty($chat_status['user_chat_status'])){
+    $social_avatar_block.= '<div class="status">'.Display::return_icon('online.png').get_lang('Chat')." (".get_lang('Online').')</div>';
+}else{
+    $social_avatar_block.= '<div class="status">'.Display::return_icon('offline.png').get_lang('Chat')." (".get_lang('Offline').')</div>';
+}
+
+$editProfileUrl = Display::getProfileEditionLink($user_id);
 
 
-$social_avatar_block = SocialManager::show_social_avatar_block('invitations');
+$social_avatar_block .= '<div class="edit-profile">
+                            <a class="btn" href="' . $editProfileUrl . '">' . get_lang('EditProfile') . '</a>
+                         </div>';
+$social_avatar_block .= '</div>';
+//Block Menu Social
 $social_menu_block = SocialManager::show_social_menu('invitations');
 $social_menu_block = SocialManager::show_social_menu('invitations');
-$social_right_content = '<div class="span9">
-                            <div id="id_response" align="center"></div>
-                        </div></div>';
+//Block Invitations
+$socialInvitationsBlock = '<div id="id_response" align="center"></div>';
 
 
 $user_id = api_get_user_id();
 $user_id = api_get_user_id();
 $list_get_invitation		= SocialManager::get_list_invitation_of_friends_by_user_id($user_id);
 $list_get_invitation		= SocialManager::get_list_invitation_of_friends_by_user_id($user_id);
@@ -107,15 +126,17 @@ $number_loop                = count($list_get_invitation);
 $total_invitations = $number_loop + count($list_get_invitation_sent) + count($pending_invitations);
 $total_invitations = $number_loop + count($list_get_invitation_sent) + count($pending_invitations);
 
 
 if ($total_invitations == 0 && count($_GET) <= 0) {
 if ($total_invitations == 0 && count($_GET) <= 0) {
-    $social_right_content .= '<div class="row"><div class="span9"><a class="btn" href="search.php">'.get_lang('TryAndFindSomeFriends').'</a></div></div>';
+    $socialInvitationsBlock .= '<div class="row"><div class="col-md-12"><a class="btn btn-default" href="search.php">'.get_lang('TryAndFindSomeFriends').'</a></div></div>';
 }
 }
 
 
 if ($number_loop != 0) {
 if ($number_loop != 0) {
-    $social_right_content .= '<div class="row"><div class="span9">'.Display::page_subheader(get_lang('InvitationReceived')).'</div></div>';
+    $socialInvitationsBlock .= '<div class="panel panel-default">';
+    $socialInvitationsBlock .= '<div class="panel-heading">'.get_lang('InvitationReceived').'</div>';
+    $socialInvitationsBlock .= '<div class="panel-body">';
 
 
     foreach ($list_get_invitation as $invitation) {
     foreach ($list_get_invitation as $invitation) {
         $sender_user_id = $invitation['user_sender_id'];
         $sender_user_id = $invitation['user_sender_id'];
-        $social_right_content .= '<div id="id_'.$sender_user_id.'" class="row invitation-clear">';
+        $socialInvitationsBlock .= '<div id="id_'.$sender_user_id.'" class="well">';
 
 
         $picture = UserManager::get_user_picture_path_by_id($sender_user_id, 'web', false, true);
         $picture = UserManager::get_user_picture_path_by_id($sender_user_id, 'web', false, true);
         $friends_profile = SocialManager::get_picture_user($sender_user_id, $picture['file'], 92);
         $friends_profile = SocialManager::get_picture_user($sender_user_id, $picture['file'], 92);
@@ -123,34 +144,37 @@ if ($number_loop != 0) {
         $title 		= Security::remove_XSS($invitation['title'], STUDENT, true);
         $title 		= Security::remove_XSS($invitation['title'], STUDENT, true);
         $content 	= Security::remove_XSS($invitation['content'], STUDENT, true);
         $content 	= Security::remove_XSS($invitation['content'], STUDENT, true);
         $date		= api_convert_and_format_date($invitation['send_date'], DATE_TIME_FORMAT_LONG);
         $date		= api_convert_and_format_date($invitation['send_date'], DATE_TIME_FORMAT_LONG);
-
-        $social_right_content .= '<div class="span2">
-                                  <a class="thumbnail" href="profile.php?u='.$sender_user_id.'">
-                                  <img src="'.$friends_profile['file'].'" /></a></div>
-                                  <div class="span7"><div class="title-profile">
-                                  <a href="profile.php?u='.$sender_user_id.'">
-                                  '.api_get_person_name($user_info['firstName'], $user_info['lastName']).'</a>:
-                                  </div><div class="content-invitation">'.$content.'</div><div class="alert date-invitation">
-                    '.get_lang('DateSend').' : '.$date.'
-                    </div>
-                    <div class="buttons">
-                        <button class="btn btn-success" name="btn_accepted" type="submit" id="btn_accepted_'.$sender_user_id.'" value="'.get_lang('Accept').' "onclick="javascript:register_friend(this)">
-                        '.get_lang('AcceptInvitation').'</button>
-
-                        <button class="btn btn-danger" name="btn_denied" type="submit" id="btn_deniedst_'.$sender_user_id.' " value="'.get_lang('Deny').' " onclick="javascript:denied_friend(this)" >
-                        '.get_lang('DenyInvitation').'</button>
-                    </div>
-                </div>
-        </div>';
+        $socialInvitationsBlock .= '<div class="row">';
+        $socialInvitationsBlock .= '<div class="col-md-2">';
+        $socialInvitationsBlock .= '<a href="profile.php?u='.$sender_user_id.'"><img src="'.$friends_profile['file'].'"/></a>';
+        $socialInvitationsBlock .= '</div>';
+        $socialInvitationsBlock .= '<div class="col-md-10">';
+        $socialInvitationsBlock .= '<h4 class="title-profile"><a href="profile.php?u='.$sender_user_id.'">
+                                    '.api_get_person_name($user_info['firstName'], $user_info['lastName']).'</a>:
+                                    </h4>';
+        $socialInvitationsBlock .= '<div class="content-invitation">'.$content.'</div>';
+        $socialInvitationsBlock .= '<div class="date-invitation">'.get_lang('DateSend').' : '.$date.'</div>';
+        $socialInvitationsBlock .= '<div class="btn-group" role="group">
+                                    <button class="btn btn-success" type="submit" id="btn_accepted_'.$sender_user_id.'" onclick="javascript:register_friend(this)">
+                                    <i class="fa fa-check"></i> '.get_lang('AcceptInvitation').'</button>
+                                    <button class="btn btn-danger" type="submit" id="btn_deniedst_'.$sender_user_id.' " onclick="javascript:denied_friend(this)" >
+                                    <i class="fa fa-times"></i> '.get_lang('DenyInvitation').'</button>
+                                    ';
+        $socialInvitationsBlock .= '</div>';
+        $socialInvitationsBlock .= '</div>';
+        $socialInvitationsBlock .= '</div></div>';
     }
     }
+    $socialInvitationsBlock .= '</div></div>';
 }
 }
 
 
 if (count($list_get_invitation_sent) > 0) {
 if (count($list_get_invitation_sent) > 0) {
-    $social_right_content .= '<div class="row"><div class="span9">'.Display::page_subheader(get_lang('InvitationSent')).'</div></div>';
+    $socialInvitationsBlock .= '<div class="panel panel-default">';
+    $socialInvitationsBlock .= '<div class="panel-heading">'.get_lang('InvitationSent').'</div>';
+    $socialInvitationsBlock .= '<div class="panel-body">';
     foreach ($list_get_invitation_sent as $invitation) {
     foreach ($list_get_invitation_sent as $invitation) {
         $sender_user_id = $invitation['user_receiver_id'];
         $sender_user_id = $invitation['user_receiver_id'];
 
 
-        $social_right_content .= '<div id="id_'.$sender_user_id.'" class="row invitation-clear">';
+        $socialInvitationsBlock .= '<div id="id_'.$sender_user_id.'" class="well">';
 
 
         $picture = UserManager::get_user_picture_path_by_id($sender_user_id, 'web', false, true);
         $picture = UserManager::get_user_picture_path_by_id($sender_user_id, 'web', false, true);
         $friends_profile = SocialManager::get_picture_user($sender_user_id, $picture['file'], 92);
         $friends_profile = SocialManager::get_picture_user($sender_user_id, $picture['file'], 92);
@@ -159,63 +183,54 @@ if (count($list_get_invitation_sent) > 0) {
         $title      = Security::remove_XSS($invitation['title'], STUDENT, true);
         $title      = Security::remove_XSS($invitation['title'], STUDENT, true);
         $content    = Security::remove_XSS($invitation['content'], STUDENT, true);
         $content    = Security::remove_XSS($invitation['content'], STUDENT, true);
         $date       = api_convert_and_format_date($invitation['send_date'], DATE_TIME_FORMAT_LONG);
         $date       = api_convert_and_format_date($invitation['send_date'], DATE_TIME_FORMAT_LONG);
-        $social_right_content .= '
-                        <div class="span2">
-                            <a class="thumbnail" href="profile.php?u='.$sender_user_id.'">
-                                <img src="'.$friends_profile['file'].'"  /></a>
-                            </div>
-                        <div class="span7">
-                            <a class="profile_link" href="profile.php?u='.$sender_user_id.'">'.api_get_person_name($user_info['firstName'], $user_info['lastName']).'</a>
-                            <div>
-                            '. $title.' : '.$content.'
-                            </div>
-                            <div>
-                            '. get_lang('DateSend').' : '.$date.'
-                            </div>
-                    </div>
-        </div>';
+
+        $socialInvitationsBlock .= '<div class="row">';
+        $socialInvitationsBlock .= '<div class="col-md-2">';
+        $socialInvitationsBlock .= '<a href="profile.php?u='.$sender_user_id.'"><img src="'.$friends_profile['file'].'"  /></a>';
+        $socialInvitationsBlock .= '</div>';
+        $socialInvitationsBlock .= '<div class="col-md-10">';
+        $socialInvitationsBlock .= '<h4 class="title-profile"><a class="profile_link" href="profile.php?u='.$sender_user_id.'">'.api_get_person_name($user_info['firstName'], $user_info['lastName']).'</a></h4>';
+        $socialInvitationsBlock .= '<div class="content-invitation">'.$title.' : '.$content.'</div>';
+        $socialInvitationsBlock .= '<div class="date-invitation">'. get_lang('DateSend').' : '.$date.'</div>';
+        $socialInvitationsBlock .= '</div>';
+        $socialInvitationsBlock .= '</div></div>';
     }
     }
+    $socialInvitationsBlock .= '</div></div>';
 }
 }
 
 
 if (count($pending_invitations) > 0) {
 if (count($pending_invitations) > 0) {
-    $social_right_content .= '<div class="row"><div class="span9">'.Display::page_subheader(get_lang('GroupsWaitingApproval')).'</div></div>';
+    $socialInvitationsBlock .= '<div class="panel panel-default">';
+    $socialInvitationsBlock .= '<div class="panel-heading">'.get_lang('GroupsWaitingApproval').'</div>';
+    $socialInvitationsBlock .= '<div class="panel-body">';
+
     $new_invitation = array();
     $new_invitation = array();
     foreach ($pending_invitations as $invitation) {
     foreach ($pending_invitations as $invitation) {
         $picture = GroupPortalManager::get_picture_group($invitation['id'], $invitation['picture_uri'],80);
         $picture = GroupPortalManager::get_picture_group($invitation['id'], $invitation['picture_uri'],80);
         $img = '<img class="social-groups-image" src="'.$picture['file'].'" />';
         $img = '<img class="social-groups-image" src="'.$picture['file'].'" />';
         $invitation['picture_uri'] = '<a href="groups.php?id='.$invitation['id'].'">'.$img.'</a>';
         $invitation['picture_uri'] = '<a href="groups.php?id='.$invitation['id'].'">'.$img.'</a>';
-        $invitation['name'] = '<div class="title-group"><a href="groups.php?id='.$invitation['id'].'">'.cut($invitation['name'],120,true).'</a></div>';
-        $invitation['join'] = '<a class="btn btn-success" href="invitations.php?accept='.$invitation['id'].'">'.get_lang('AcceptInvitation').'</a>';
-        $invitation['deny'] = '<a class="btn btn-danger" href="invitations.php?deny='.$invitation['id'].'">'.get_lang('DenyInvitation').'</a>';
+        $invitation['name'] = '<a href="groups.php?id='.$invitation['id'].'">'.cut($invitation['name'],120,true).'</a>';
         $invitation['description'] = cut($invitation['description'],220,true);
         $invitation['description'] = cut($invitation['description'],220,true);
         $new_invitation[]=$invitation;
         $new_invitation[]=$invitation;
 
 
-    $social_right_content .= '<div class="row invitation-clear">
-                                <div class="span2"><div class="thumbnail">'.$invitation['picture_uri'].'</div></div>
-                                <div class="span7">'
-                                .$invitation['name'].'<div class="description-group">'.$invitation['description'].'</div>
-                                <div class="buttons">'.$invitation['join'].' '.$invitation['deny'].'</div>
-                                </div>
-                            </div>
-    ';
+        $socialInvitationsBlock .= '<div class="well"><div class="row">';
+            $socialInvitationsBlock .= '<div class="col-md-2">'.$invitation['picture_uri'].'</div>';
+            $socialInvitationsBlock .= '<div class="col-md-10">';
+            $socialInvitationsBlock .= '<h4 class="tittle-profile">'.$invitation['name'].'</h4>';
+            $socialInvitationsBlock .= '<div class="description-group">'.$invitation['description'].'</div>';
+            $socialInvitationsBlock .= '<div class="btn-group" role="group">';
+            $socialInvitationsBlock .= '<a class="btn btn-success" href="invitations.php?accept='.$invitation['id'].'"><i class="fa fa-check"></i> '.get_lang('AcceptInvitation').'</a>';
+            $socialInvitationsBlock .= '<a class="btn btn-danger" href="invitations.php?deny='.$invitation['id'].'"><i class="fa fa-times"></i> '.get_lang('DenyInvitation').'</a>';
+            $socialInvitationsBlock .='</div>';
+        $socialInvitationsBlock .= '</div></div>';
     }
     }
-    /*$social_right_content .= Display::return_sortable_grid(
-        'waiting_user',
-        array(),
-        $new_invitation,
-        array('hide_navigation'=>true, 'per_page' => 100),
-        array(),
-        false,
-        array(true, true, true, false, false, true, true, true, true)
-    );*/
+    $socialInvitationsBlock.='</div>';
 }
 }
 
 
 $tpl = new Template(null);
 $tpl = new Template(null);
 $tpl->assign('social_avatar_block', $social_avatar_block);
 $tpl->assign('social_avatar_block', $social_avatar_block);
 $tpl->assign('social_menu_block', $social_menu_block);
 $tpl->assign('social_menu_block', $social_menu_block);
-$tpl->assign('social_right_content', $social_right_content);
-
+$tpl->assign('social_invitations_block',$socialInvitationsBlock);
 $tpl->assign('message', $show_message);
 $tpl->assign('message', $show_message);
 $tpl->assign('content', $content);
 $tpl->assign('content', $content);
-$social_layout = $tpl->get_template('layout/social_layout.tpl');
+$social_layout = $tpl->get_template('social/invitations.tpl');
 $tpl->display($social_layout);
 $tpl->display($social_layout);

+ 22 - 2
main/social/myfiles.php

@@ -129,8 +129,28 @@ if (is_array($_GET) && count($_GET) > 0) {
         }
         }
     }
     }
 }
 }
+//Social Avatar BLock
+$user_info    = UserManager::get_user_info_by_id($user_id);
+$social_avatar_block = '<div class="panel panel-info social-avatar">';
+$social_avatar_block .= SocialManager::show_social_avatar_block('myfiles');
+$social_avatar_block .= '<div class="lastname">'.$user_info['lastname'].'</div>';
+$social_avatar_block .= '<div class="firstname">'.$user_info['firstname'].'</div>';
+/* $social_avatar_block .= '<div class="username">'.Display::return_icon('user.png','','',ICON_SIZE_TINY).$user_info['username'].'</div>'; */
+$social_avatar_block .= '<div class="email">'.Display::return_icon('instant_message.png').'&nbsp;' .$user_info['email'].'</div>';
+$chat_status = $user_info['extra'];
+if(!empty($chat_status['user_chat_status'])){
+    $social_avatar_block.= '<div class="status">'.Display::return_icon('online.png').get_lang('Chat')." (".get_lang('Online').')</div>';
+}else{
+    $social_avatar_block.= '<div class="status">'.Display::return_icon('offline.png').get_lang('Chat')." (".get_lang('Offline').')</div>';
+}
+
+$editProfileUrl = Display::getProfileEditionLink($user_id);
 
 
-$social_avatar_block = SocialManager::show_social_avatar_block('myfiles');
+$social_avatar_block .= '<div class="edit-profile">
+                            <a class="btn" href="' . $editProfileUrl . '">' . get_lang('EditProfile') . '</a>
+                         </div>';
+$social_avatar_block .= '</div>';
+//Social Menu Block
 $social_menu_block = SocialManager::show_social_menu('myfiles');
 $social_menu_block = SocialManager::show_social_menu('myfiles');
 $actions = null;
 $actions = null;
 
 
@@ -167,5 +187,5 @@ $tpl->assign('social_right_content', $social_right_content);
 $tpl->assign('actions', $actions);
 $tpl->assign('actions', $actions);
 $tpl->assign('message', $show_message);
 $tpl->assign('message', $show_message);
 
 
-$social_layout = $tpl->get_template('layout/social_layout.tpl');
+$social_layout = $tpl->get_template('social/myfiles.tpl');
 $tpl->display($social_layout);
 $tpl->display($social_layout);

+ 179 - 44
main/social/profile.php

@@ -21,7 +21,7 @@ if (api_get_setting('allow_social_tool') !='true') {
 
 
 $user_id = api_get_user_id();
 $user_id = api_get_user_id();
 
 
-$friendId = isset($_GET['u']) ? Security::remove_XSS($_GET['u']) : api_get_user_id();
+$friendId = isset($_GET['u']) ? intval($_GET['u']) : api_get_user_id();
 
 
 $isAdmin = api_is_platform_admin($user_id);
 $isAdmin = api_is_platform_admin($user_id);
 
 
@@ -29,6 +29,14 @@ $show_full_profile = true;
 //social tab
 //social tab
 $this_section = SECTION_SOCIAL;
 $this_section = SECTION_SOCIAL;
 
 
+//Initialize blocks
+$social_extra_info_block = null;
+$social_course_block = null;
+$social_group_info_block = null;
+$social_rss_block = null;
+$social_skill_block = null;
+$social_session_block = null;
+
 if (!empty($_POST['social_wall_new_msg_main']) || !empty($_FILES['picture']['tmp_name'])) {
 if (!empty($_POST['social_wall_new_msg_main']) || !empty($_FILES['picture']['tmp_name'])) {
     $messageId = 0;
     $messageId = 0;
     $idMessage = SocialManager::sendWallMessage(api_get_user_id(), $friendId, $_POST['social_wall_new_msg_main'], $messageId, MESSAGE_STATUS_WALL_POST);
     $idMessage = SocialManager::sendWallMessage(api_get_user_id(), $friendId, $_POST['social_wall_new_msg_main'], $messageId, MESSAGE_STATUS_WALL_POST);
@@ -366,8 +374,31 @@ if (is_array($personal_course_list)) {
     //to avoid repeted courses
     //to avoid repeted courses
     $course_list_code = array_unique_dimensional($course_list_code);
     $course_list_code = array_unique_dimensional($course_list_code);
 }
 }
+//Block Avatar Social
+$social_avatar_block = '<div class="panel panel-default social-avatar">';
+$social_avatar_block .= SocialManager::show_social_avatar_block('shared_profile', null, $user_id);
+$social_avatar_block .= '<div class="lastname">'.$user_info['lastname'].'</div>';
+$social_avatar_block .= '<div class="firstname">'.$user_info['firstname'].'</div>';
+/* $social_avatar_block .= '<div class="username">'.Display::return_icon('user.png','','',ICON_SIZE_TINY).$user_info['username'].'</div>'; */
+$social_avatar_block .= '<div class="email">'.Display::return_icon('instant_message.png').'&nbsp;' .$user_info['email'].'</div>';
+$chat_status = $user_info['extra'];
+if(!empty($chat_status['user_chat_status'])){
+    $social_avatar_block.= '<div class="status">'.Display::return_icon('online.png').get_lang('Chat')." (".get_lang('Online').')</div>';
+}else{
+    $social_avatar_block.= '<div class="status">'.Display::return_icon('offline.png').get_lang('Chat')." (".get_lang('Offline').')</div>';
+}
+
+if (api_get_user_id() === $friendId) {
+    $editProfileUrl = Display::getProfileEditionLink(api_get_user_id());
+
+    $social_avatar_block .= '<div class="edit-profile">
+                                <a class="btn" href="' . $editProfileUrl . '">' . get_lang('EditProfile') . '</a>
+                             </div>';
+}
 
 
-$social_avatar_block = SocialManager::show_social_avatar_block('shared_profile', null, $user_id);
+$social_avatar_block .= '</div>';
+
+//Social Block Menu
 $social_menu_block = SocialManager::show_social_menu('shared_profile', null, $user_id, $show_full_profile);
 $social_menu_block = SocialManager::show_social_menu('shared_profile', null, $user_id, $show_full_profile);
 
 
 //Setting some session info
 //Setting some session info
@@ -385,6 +416,7 @@ foreach ($sessionList as $session) {
 $friend_html = listMyFriends($user_id, $link_shared ,$show_full_profile);
 $friend_html = listMyFriends($user_id, $link_shared ,$show_full_profile);
 $social_left_content = '<div class="well sidebar-nav">' .$friend_html . '</div>';
 $social_left_content = '<div class="well sidebar-nav">' .$friend_html . '</div>';
 
 
+/*
 $personal_info = null;
 $personal_info = null;
 if (!empty($user_info['firstname']) || !empty($user_info['lastname'])) {
 if (!empty($user_info['firstname']) || !empty($user_info['lastname'])) {
     $personal_info .= '<div><h3>'.api_get_person_name($user_info['firstname'], $user_info['lastname']).'</h3></div>';
     $personal_info .= '<div><h3>'.api_get_person_name($user_info['firstname'], $user_info['lastname']).'</h3></div>';
@@ -423,11 +455,24 @@ if ($show_full_profile) {
     }
     }
     $personal_info .=  '</dl>';
     $personal_info .=  '</dl>';
 }
 }
+*/
+//Social Block Wall
 
 
 $wallSocialAddPost = wallSocialAddPost();
 $wallSocialAddPost = wallSocialAddPost();
-$social_right_content = SocialManager::social_wrapper_div($wallSocialAddPost, 5);
+$social_wall_block = $wallSocialAddPost;
+
+//Social Post Wall
+$post_wall = wallSocialPost($my_user_id,$friendId) ;
+$social_post_wall_block  = '<div class="panel panel-default social-post">';
+$social_post_wall_block .= '<div class="panel-heading">Mis publicaciones</div>';
+$social_post_wall_block .='<div class="panel-body">';
+if(empty($post_wall)){
+    $social_post_wall_block .= '<p>'.get_lang("NoPosts").'</p>';
+}else{
+    $social_post_wall_block .= $post_wall;
+}
+$social_post_wall_block .= '</div></div>';
 
 
-$social_right_content .= wallSocialPost($my_user_id, $friendId);
 $socialAutoExtendLink = Display::url(
 $socialAutoExtendLink = Display::url(
     get_lang('SeeMore'),
     get_lang('SeeMore'),
     $socialAjaxUrl . '?u='. $my_user_id . '&a=listWallMessage&start=10&length=5',
     $socialAjaxUrl . '?u='. $my_user_id . '&a=listWallMessage&start=10&length=5',
@@ -436,22 +481,24 @@ $socialAutoExtendLink = Display::url(
     )
     )
 );
 );
 
 
-$socialRightInformation =  SocialManager::social_wrapper_div($personal_info, 4);
+/* $socialRightInformation =  SocialManager::social_wrapper_div($personal_info, 4); */
+$socialRightInformation = null;
 
 
 //$social_right_content .= SocialManager::social_wrapper_div($wallSocial, 5);
 //$social_right_content .= SocialManager::social_wrapper_div($wallSocial, 5);
-
+$social_right_content = null;
 
 
 if ($show_full_profile) {
 if ($show_full_profile) {
 
 
-    // Extra information
+    // Block Extra information
     $t_uf    = Database :: get_main_table(TABLE_MAIN_USER_FIELD);
     $t_uf    = Database :: get_main_table(TABLE_MAIN_USER_FIELD);
     $t_ufo    = Database :: get_main_table(TABLE_MAIN_USER_FIELD_OPTIONS);
     $t_ufo    = Database :: get_main_table(TABLE_MAIN_USER_FIELD_OPTIONS);
     $extra_user_data = UserManager::get_extra_user_data($user_id);
     $extra_user_data = UserManager::get_extra_user_data($user_id);
     $extra_information = '';
     $extra_information = '';
     if (is_array($extra_user_data) && count($extra_user_data)>0 ) {
     if (is_array($extra_user_data) && count($extra_user_data)>0 ) {
 
 
-        $extra_information .= '<div><h3>'.get_lang('ExtraInformation').'</h3></div>';
-        $extra_information .='<div class="social-profile-info">';
+        $extra_information .= '<div class="panel panel-default">';
+        $extra_information .= '<div class="panel-heading">'.get_lang('ExtraInformation').'</div>';
+        $extra_information .='<div class="panel-body">';
         $extra_information_value = '';
         $extra_information_value = '';
         foreach($extra_user_data as $key=>$data) {
         foreach($extra_user_data as $key=>$data) {
             //Avoding parameters
             //Avoding parameters
@@ -524,17 +571,20 @@ if ($show_full_profile) {
         if (!empty($extra_information_value)) {
         if (!empty($extra_information_value)) {
             $extra_information .= $extra_information_value;
             $extra_information .= $extra_information_value;
         }
         }
-        $extra_information .= '</div>'; //social-profile-info
+        $extra_information .= '</div></div>'; //social-profile-info
     }
     }
-    //     if there are information to show
+
+ //If there are information to show Block Extra Information
+
     if (!empty($extra_information_value)) {
     if (!empty($extra_information_value)) {
-        $socialRightInformation .=  SocialManager::social_wrapper_div($extra_information, 4);
+        $social_extra_info_block =  $extra_information;
     }
     }
 
 
     // MY GROUPS
     // MY GROUPS
     $results = GroupPortalManager::get_groups_by_user($my_user_id, 0);
     $results = GroupPortalManager::get_groups_by_user($my_user_id, 0);
     $grid_my_groups = array();
     $grid_my_groups = array();
     $max_numbers_of_group = 4;
     $max_numbers_of_group = 4;
+
     if (is_array($results) && count($results) > 0) {
     if (is_array($results) && count($results) > 0) {
         $i = 1;
         $i = 1;
         foreach ($results as $result) {
         foreach ($results as $result) {
@@ -586,6 +636,7 @@ if ($show_full_profile) {
         }
         }
     }
     }
 
 
+    //Block My Groups
     if (count($grid_my_groups) > 0) {
     if (count($grid_my_groups) > 0) {
         $my_groups = '';
         $my_groups = '';
         $count_groups = 0;
         $count_groups = 0;
@@ -594,7 +645,8 @@ if ($show_full_profile) {
         } else {
         } else {
             $count_groups = count($results);
             $count_groups = count($results);
         }
         }
-        $my_groups .=  '<div><h3>'.get_lang('MyGroups').' ('.$count_groups.') </h3></div>';
+        $my_groups .= '<div class="panel panel-default">';
+        $my_groups .= '<div class="panel-heading">'.get_lang('MyGroups').' ('.$count_groups.') </div>';
 
 
         if ($i > $max_numbers_of_group) {
         if ($i > $max_numbers_of_group) {
             if (api_get_user_id() == $user_id) {
             if (api_get_user_id() == $user_id) {
@@ -609,34 +661,30 @@ if ($show_full_profile) {
                     .'</a></div>';
                     .'</a></div>';
             }
             }
         }
         }
-        /*
-        Display::display_sortable_grid(
-            'shared_profile_mygroups',
-            array(),
-            $grid_my_groups,
-            array('hide_navigation'=>true, 'per_page' => 2),
-            $query_vars,
-            false,
-            array(true, true, true,false)
-        );
-        */
+
         $total = count($grid_my_groups);
         $total = count($grid_my_groups);
         $i = 1;
         $i = 1;
         foreach($grid_my_groups as $group) {
         foreach($grid_my_groups as $group) {
+            $my_groups .= '<div class="panel-body">';
             $my_groups .=  $group[0];
             $my_groups .=  $group[0];
+            $my_groups .= '</div>';
             if ($i < $total) {
             if ($i < $total) {
                 $my_groups .=  ', ';
                 $my_groups .=  ', ';
             }
             }
             $i++;
             $i++;
         }
         }
-        $socialRightInformation .=  SocialManager::social_wrapper_div($my_groups, 4);
+        $my_groups .= '</div>';
+        $social_group_info_block =  $my_groups;
     }
     }
 
 
+    //Block Social Course
+
     $my_courses = null;
     $my_courses = null;
     // COURSES LIST
     // COURSES LIST
     if ( is_array($list) ) {
     if ( is_array($list) ) {
-        $my_courses .=  '<div><h3>'.api_ucfirst(get_lang('MyCourses')).'</h3></div>';
-        $my_courses .=  '<div class="social-content-training">';
+        $my_courses .=  '<div class="panel panel-default">';
+        $my_courses .=  '<div class="panel-heading">'.api_ucfirst(get_lang('MyCourses')).'</div>';
+        $my_courses .=  '<div class="panel-body">';
 
 
         //Courses without sessions
         //Courses without sessions
         $i=1;
         $i=1;
@@ -648,24 +696,101 @@ if ($show_full_profile) {
                 $i++;
                 $i++;
             }
             }
         }
         }
-        $my_courses .=  '</div>';        //social-content-training
-        $socialRightInformation .=  SocialManager::social_wrapper_div($my_courses, 4);
-    }
+        $my_courses .=  '</div></div>';
 
 
+        $social_course_block .=  $my_courses;
+    }
 
 
-    $sessions =  '<div><h3>'.api_ucfirst(get_lang('MySessions')).'</h3></div>';
-    $sessions .=  "<div class='social-content-training'>$htmlSessionList</div>";
-    $socialRightInformation .=  SocialManager::social_wrapper_div($sessions, 4);
+    //Block Social Sessions
 
 
+    if (count($sessionList) > 0) {
+        $sessions  = '<div class="panel panel-default">';
+        $sessions .= '<div class="panel-heading">'.api_ucfirst(get_lang('MySessions')).'</div>';
+        $sessions .= '<div class="panel-body">'.$htmlSessionList.'</div>';
+        $sessions .= '</div>';
+        $social_session_block = $sessions;
+    }
 
 
-    // user feeds
+    // Block Social User Feeds
     $user_feeds = SocialManager::get_user_feeds($user_id);
     $user_feeds = SocialManager::get_user_feeds($user_id);
+
     if (!empty($user_feeds)) {
     if (!empty($user_feeds)) {
-        $rss =  '<div><h3>'.get_lang('RSSFeeds').'</h3></div>';
-        $rss .=  '<div class="social-content-training">'.$user_feeds.'</div>';
-        $socialRightInformation .=  SocialManager::social_wrapper_div($rss, 4);
+        $rss  = '<div class="panel panel-default social-rss">';
+        $rss .= '<div class="panel-heading">'.get_lang('RSSFeeds').'</div>';
+        $rss .= '<div class="panel-body">'.$user_feeds.'</div></div>';
+        $social_rss_block =  $rss;
+
+    }
+
+    //BLock Social Skill
+    if (api_get_setting('allow_skills_tool') == 'true') {        
+        $skill = new Skill();
+
+        $ranking = $skill->get_user_skill_ranking($my_user_id);
+        $skills = $skill->get_user_skills($my_user_id, true);
+
+        $social_skill_block = '<div class="panel panel-default social-skill">';
+        $social_skill_block .= '<div class="panel-heading">' . get_lang('Skills');
+        $social_skill_block .= '<div class="btn-group pull-right"> <a class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" href="#">
+                            <span class="caret"></span></a>
+                             <ul class="dropdown-menu">';
+        if (api_is_student() || api_is_student_boss() || api_is_drh()) {
+            $social_skill_block .= '<li>' . Display::url(
+                    get_lang('SkillsReport'),
+                    api_get_path(WEB_CODE_PATH) . 'social/my_skills_report.php'
+                ) . '</li>';
+        }
+
+        $social_skill_block .= '<li>' . Display::url(
+                get_lang('SkillsWheel'),
+                api_get_path(WEB_CODE_PATH) . 'social/skills_wheel.php'
+            ) . '</li>';
+
+        $social_skill_block .= '<li>' . Display::url(
+                sprintf(get_lang('YourSkillRankingX'), $ranking),
+                api_get_path(WEB_CODE_PATH) . 'social/skills_ranking.php'
+            ) . '</li>';
+
+        $social_skill_block .= '</ul></div></div>';
+
+        $lis = '';
+        if (!empty($skills)) {
+            foreach ($skills as $skill) {
+                $badgeImage = null;
+
+                if (!empty($skill['icon'])) {
+                    $badgeImage = Display::img(
+                        api_get_path(WEB_DATA_PATH) . $skill['icon'],
+                        $skill['name']
+                    );
+                } else {
+                    $badgeImage = Display::return_icon(
+                        'badges-default.png',
+                        $skill['name'],
+                        array('title' => $skill['name']),ICON_SIZE_BIG
+                    );
+                }
+
+                $lis .= Display::tag(
+                    'li',
+                    $badgeImage .
+                    '<div class="badges-name">' . $skill['name'] . '</div>'
+                );
+            }
+            $social_skill_block .= '<div class="panel-body">';
+            $social_skill_block .= Display::tag('ul', $lis, array('class' => 'list-badges'));
+            $social_skill_block .= '</div>';
+        }else{
+
+            $social_skill_block .= '<div class="panel-body">';
+            $social_skill_block .= '<p>'. get_lang("WithoutAchievedSkills") . '</p>';
+            $social_skill_block .= '<p>' . Display::url(get_lang('SkillsWheel'),api_get_path(WEB_CODE_PATH) . 'social/skills_wheel.php').'</p>';
+            $social_skill_block .= '</div>';
+        }
+        $social_skill_block.='</div>';
     }
     }
 
 
+
     //--Productions
     //--Productions
     $production_list =  UserManager::build_production_list($user_id);
     $production_list =  UserManager::build_production_list($user_id);
 
 
@@ -782,10 +907,17 @@ $social_right_content .= MessageManager::generate_invitation_form('send_invitati
 $tpl = new Template(get_lang('Social'));
 $tpl = new Template(get_lang('Social'));
 $tpl->assign('social_avatar_block', $social_avatar_block);
 $tpl->assign('social_avatar_block', $social_avatar_block);
 $tpl->assign('social_menu_block', $social_menu_block);
 $tpl->assign('social_menu_block', $social_menu_block);
-$tpl->assign('social_right_content', $social_right_content);
+$tpl->assign('social_wall_block', $social_wall_block);
+$tpl->assign('social_post_wall_block', $social_post_wall_block);
+$tpl->assign('social_extra_info_block', $social_extra_info_block);
+$tpl->assign('social_course_block', $social_course_block);
+$tpl->assign('social_group_info_block', $social_group_info_block);
+$tpl->assign('social_rss_block', $social_rss_block);
+$tpl->assign('social_skill_block', $social_skill_block);
+$tpl->assign('social_session_block', $social_session_block);
 $tpl->assign('socialRightInformation', $socialRightInformation);
 $tpl->assign('socialRightInformation', $socialRightInformation);
 $tpl->assign('socialAutoExtendLink', $socialAutoExtendLink);
 $tpl->assign('socialAutoExtendLink', $socialAutoExtendLink);
-$social_layout = $tpl->get_template('layout/social_layout.tpl');
+$social_layout = $tpl->get_template('social/profile.tpl');
 $tpl->display($social_layout);
 $tpl->display($social_layout);
 
 
 /*
 /*
@@ -853,16 +985,19 @@ function listMyFriends($user_id, $link_shared, $show_full_profile)
 
 
 function wallSocialAddPost()
 function wallSocialAddPost()
 {
 {
-    $html = '';
-    $html .= '<h3>' . get_lang('SocialWall') . '</h3>';
+    $html  = '<div class="panel panel-default social-wall">';
+    $html .= '<div class="panel-heading">' . get_lang('SocialWall') . '</div>';
+    $html .= '<div class="panel-body">';
     $html .=
     $html .=
         '<form name="social_wall_main" method="POST" enctype="multipart/form-data">
         '<form name="social_wall_main" method="POST" enctype="multipart/form-data">
             <label for="social_wall_new_msg_main" class="hide">' . get_lang('SocialWallWhatAreYouThinkingAbout') . '</label>
             <label for="social_wall_new_msg_main" class="hide">' . get_lang('SocialWallWhatAreYouThinkingAbout') . '</label>
         <textarea name="social_wall_new_msg_main" rows="2" cols="80" style="width: 98%" placeholder="'.get_lang('SocialWallWhatAreYouThinkingAbout').'"></textarea>
         <textarea name="social_wall_new_msg_main" rows="2" cols="80" style="width: 98%" placeholder="'.get_lang('SocialWallWhatAreYouThinkingAbout').'"></textarea>
         <br />
         <br />
-        <input class="" name="picture" type="file" accept="image/*">
-        <input type="submit" name="social_wall_new_msg_main_submit" value="'.get_lang('Post').'" class="float right btn btn-primary" />
+        <input class="" name="picture" type="file" accept="image/*" style="width:80%;">
+        <button type="submit" name="social_wall_new_msg_main_submit"  class="pull-right btn btn-success" />
+        <i class="fa fa-pencil"></i> '.get_lang('Post').'</button>
     </form>';
     </form>';
+    $html.= '</div></div>';
 
 
     return $html;
     return $html;
 }
 }
@@ -876,7 +1011,7 @@ function wallSocialPost($userId, $friendId)
         $post = $array[$i]['html'];
         $post = $array[$i]['html'];
         $comment = SocialManager::getWallMessagesHTML($userId, $friendId, $array[$i]['id']);
         $comment = SocialManager::getWallMessagesHTML($userId, $friendId, $array[$i]['id']);
 
 
-        $html .= SocialManager::social_wrapper_div($post.$comment, 5);
+        $html .= $post.$comment;
     }
     }
 
 
     return $html;
     return $html;

+ 22 - 2
main/social/search.php

@@ -146,8 +146,28 @@ if (!empty($extra_fields)) {
         }
         }
     }
     }
 }
 }
+$user_info    = UserManager::get_user_info_by_id($user_id);
+//Block Social Avatar
+$social_avatar_block = '<div class="panel panel-info social-avatar">';
+$social_avatar_block .= SocialManager::show_social_avatar_block('search');
+$social_avatar_block .= '<div class="lastname">'.$user_info['lastname'].'</div>';
+$social_avatar_block .= '<div class="firstname">'.$user_info['firstname'].'</div>';
+/* $social_avatar_block .= '<div class="username">'.Display::return_icon('user.png','','',ICON_SIZE_TINY).$user_info['username'].'</div>'; */
+$social_avatar_block .= '<div class="email">'.Display::return_icon('instant_message.png').'&nbsp;' .$user_info['email'].'</div>';
+$chat_status = $user_info['extra'];
+if(!empty($chat_status['user_chat_status'])){
+    $social_avatar_block.= '<div class="status">'.Display::return_icon('online.png').get_lang('Chat')." (".get_lang('Online').')</div>';
+}else{
+    $social_avatar_block.= '<div class="status">'.Display::return_icon('offline.png').get_lang('Chat')." (".get_lang('Offline').')</div>';
+}
+
+$editProfileUrl = Display::getProfileEditionLink($user_id);
 
 
-$social_avatar_block = SocialManager::show_social_avatar_block('search');
+$social_avatar_block .= '<div class="edit-profile">
+                            <a class="btn" href="' . $editProfileUrl . '">' . get_lang('EditProfile') . '</a>
+                         </div>';
+$social_avatar_block .= '</div>';
+//Block Social Menu
 $social_menu_block = SocialManager::show_social_menu('search');
 $social_menu_block = SocialManager::show_social_menu('search');
 $social_right_content = '<div class="span9">'.UserManager::get_search_form($query).'</div>';
 $social_right_content = '<div class="span9">'.UserManager::get_search_form($query).'</div>';
 
 
@@ -330,5 +350,5 @@ $tpl->assign('social_avatar_block', $social_avatar_block);
 $tpl->assign('social_menu_block', $social_menu_block);
 $tpl->assign('social_menu_block', $social_menu_block);
 $tpl->assign('social_right_content', $social_right_content);
 $tpl->assign('social_right_content', $social_right_content);
 
 
-$social_layout = $tpl->get_template('layout/social_layout.tpl');
+$social_layout = $tpl->get_template('social/search.tpl');
 $tpl->display($social_layout);
 $tpl->display($social_layout);

+ 1 - 1
main/survey/create_new_survey.php

@@ -322,7 +322,7 @@ if ($form->validate()) {
         }
         }
     }
     }
 
 
-    Display::addFlash(Display::return_message($return['message'], false));
+    Display::addFlash(Display::return_message(($return['message']=='SurveyUpdatedSuccesfully'?get_lang($return['message']):$return['message']), false));
     // Redirecting to the survey page (whilst showing the return message)
     // Redirecting to the survey page (whilst showing the return message)
     header('location: '.api_get_path(WEB_CODE_PATH).'survey/survey.php?survey_id='.$return['id'].'&message='.$return['message'].'&'.api_get_cidreq());
     header('location: '.api_get_path(WEB_CODE_PATH).'survey/survey.php?survey_id='.$return['id'].'&message='.$return['message'].'&'.api_get_cidreq());
     exit;
     exit;

+ 8 - 5
main/survey/reporting.php

@@ -129,7 +129,8 @@ if (!isset($_GET['action']) || isset($_GET['action']) && $_GET['action'] == 'ove
     );
     );
     switch ($_GET['action']) {
     switch ($_GET['action']) {
         case 'questionreport':
         case 'questionreport':
-            $tool_name = get_lang('DetailedReportByQuestion');
+            $singlePage = isset($_GET['single_page']) ? intval($_GET['single_page']) : 0;
+            $tool_name = $singlePage ? get_lang('QuestionsOverallReport') : get_lang('DetailedReportByQuestion');
             break;
             break;
         case 'userreport':
         case 'userreport':
             $tool_name = get_lang('DetailedReportByUser');
             $tool_name = get_lang('DetailedReportByUser');
@@ -161,13 +162,15 @@ if (!isset($_GET['action']) ||
     $_GET['action'] == 'overview'
     $_GET['action'] == 'overview'
 ) {
 ) {
     $myweb_survey_id = $survey_id;
     $myweb_survey_id = $survey_id;
-    echo '<div class="sectiontitle"><a href="'.api_get_path(WEB_CODE_PATH).'survey/reporting.php?action=questionreport&amp;survey_id='.$myweb_survey_id.'&'.api_get_cidreq().'">'.
+    echo '<div class="sectiontitle"><a href="'.api_get_path(WEB_CODE_PATH).'survey/reporting.php?action=questionreport&amp;survey_id='.$myweb_survey_id.'&amp;'.$cidReq.'&amp;single_page=1">'.
+        Display::return_icon('survey_reporting_question.gif',get_lang('QuestionsOverallReport')).' '.get_lang('QuestionsOverallReport').'</a></div><div class="sectioncomment">'.get_lang('QuestionsOverallReportDetail').' </div>';
+    echo '<div class="sectiontitle"><a href="'.api_get_path(WEB_CODE_PATH).'survey/reporting.php?action=questionreport&amp;survey_id='.$myweb_survey_id.'&'.$cidReq.'">'.
         Display::return_icon('survey_reporting_question.gif',get_lang('DetailedReportByQuestion')).' '.get_lang('DetailedReportByQuestion').'</a></div><div class="sectioncomment">'.get_lang('DetailedReportByQuestionDetail').' </div>';
         Display::return_icon('survey_reporting_question.gif',get_lang('DetailedReportByQuestion')).' '.get_lang('DetailedReportByQuestion').'</a></div><div class="sectioncomment">'.get_lang('DetailedReportByQuestionDetail').' </div>';
-    echo '<div class="sectiontitle"><a href="'.api_get_path(WEB_CODE_PATH).'survey/reporting.php?action=userreport&amp;survey_id='.$myweb_survey_id.'&'.api_get_cidreq().'">'.
+    echo '<div class="sectiontitle"><a href="'.api_get_path(WEB_CODE_PATH).'survey/reporting.php?action=userreport&amp;survey_id='.$myweb_survey_id.'&'.$cidReq.'">'.
         Display::return_icon('survey_reporting_user.gif',get_lang('DetailedReportByUser')).' '.get_lang('DetailedReportByUser').'</a></div><div class="sectioncomment">'.get_lang('DetailedReportByUserDetail').'.</div>';
         Display::return_icon('survey_reporting_user.gif',get_lang('DetailedReportByUser')).' '.get_lang('DetailedReportByUser').'</a></div><div class="sectioncomment">'.get_lang('DetailedReportByUserDetail').'.</div>';
-    echo '<div class="sectiontitle"><a href="'.api_get_path(WEB_CODE_PATH).'survey/reporting.php?action=comparativereport&amp;survey_id='.$myweb_survey_id.'&'.api_get_cidreq().'">'.
+    echo '<div class="sectiontitle"><a href="'.api_get_path(WEB_CODE_PATH).'survey/reporting.php?action=comparativereport&amp;survey_id='.$myweb_survey_id.'&'.$cidReq.'">'.
         Display::return_icon('survey_reporting_comparative.gif',get_lang('ComparativeReport')).' '.get_lang('ComparativeReport').'</a></div><div class="sectioncomment">'.get_lang('ComparativeReportDetail').'.</div>';
         Display::return_icon('survey_reporting_comparative.gif',get_lang('ComparativeReport')).' '.get_lang('ComparativeReport').'</a></div><div class="sectioncomment">'.get_lang('ComparativeReportDetail').'.</div>';
-    echo '<div class="sectiontitle"><a href="reporting.php?action=completereport&amp;survey_id='.$myweb_survey_id.'&'.api_get_cidreq().'">'.
+    echo '<div class="sectiontitle"><a href="reporting.php?action=completereport&amp;survey_id='.$myweb_survey_id.'&'.$cidReq.'">'.
         Display::return_icon('survey_reporting_complete.gif',get_lang('CompleteReport')).' '.get_lang('CompleteReport').'</a></div><div class="sectioncomment">'.get_lang('CompleteReportDetail').'</div>';
         Display::return_icon('survey_reporting_complete.gif',get_lang('CompleteReport')).' '.get_lang('CompleteReport').'</a></div><div class="sectioncomment">'.get_lang('CompleteReportDetail').'</div>';
 }
 }
 
 

+ 130 - 113
main/survey/survey.lib.php

@@ -1957,6 +1957,7 @@ class SurveyUtil
      */
      */
     public static function display_question_report($survey_data)
     public static function display_question_report($survey_data)
     {
     {
+        $singlePage = isset($_GET['single_page']) ? intval($_GET['single_page']) : 0;
         $course_id = api_get_course_int_id();
         $course_id = api_get_course_int_id();
         // Database table definitions
         // Database table definitions
         $table_survey_question 			= Database :: get_course_table(TABLE_SURVEY_QUESTION);
         $table_survey_question 			= Database :: get_course_table(TABLE_SURVEY_QUESTION);
@@ -1966,7 +1967,7 @@ class SurveyUtil
         // Determining the offset of the sql statement (the n-th question of the survey)
         // Determining the offset of the sql statement (the n-th question of the survey)
         $offset = !isset($_GET['question']) ? 0 : intval($_GET['question']);
         $offset = !isset($_GET['question']) ? 0 : intval($_GET['question']);
         $currentQuestion = isset($_GET['question']) ? intval($_GET['question']) : 0;
         $currentQuestion = isset($_GET['question']) ? intval($_GET['question']) : 0;
-        $question = array();
+        $questions = array();
         $surveyId = intval($_GET['survey_id']);
         $surveyId = intval($_GET['survey_id']);
         $action = Security::remove_XSS($_GET['action']);
         $action = Security::remove_XSS($_GET['action']);
 
 
@@ -1976,12 +1977,14 @@ class SurveyUtil
         echo '</div>';
         echo '</div>';
 
 
         if ($survey_data['number_of_questions'] > 0) {
         if ($survey_data['number_of_questions'] > 0) {
-            echo '<div id="question_report_questionnumbers" class="pagination">';
-            /* echo '<ul><li class="disabled"><a href="#">'.get_lang('Question').'</a></li>'; */
+            $limitStatement = null;
+            if (!$singlePage) {
+                echo '<div id="question_report_questionnumbers" class="pagination">';
+                /* echo '<ul><li class="disabled"><a href="#">'.get_lang('Question').'</a></li>'; */
 
 
-            if ($currentQuestion != 0 ) {
-                echo '<li><a href="'.api_get_path(WEB_CODE_PATH).'survey/reporting.php?action='.$action.'&amp;'.api_get_cidreq().'&amp;survey_id='.$surveyId.'&amp;question='.($offset-1).'">'.get_lang('PreviousQuestion').'</a></li>';
-            }
+                if ($currentQuestion != 0) {
+                    echo '<li><a href="' . api_get_path(WEB_CODE_PATH) . 'survey/reporting.php?action=' . $action . '&amp;' . api_get_cidreq() . '&amp;survey_id=' . $surveyId . '&amp;question=' . ($offset - 1) . '">' . get_lang('PreviousQuestion') . '</a></li>';
+                }
 
 
                 for ($i = 1; $i <= $survey_data['number_of_questions']; $i++) {
                 for ($i = 1; $i <= $survey_data['number_of_questions']; $i++) {
                     if ($offset != $i - 1) {
                     if ($offset != $i - 1) {
@@ -1993,11 +1996,13 @@ class SurveyUtil
                         echo ' | ';
                         echo ' | ';
                     }*/
                     }*/
                 }
                 }
-            if ($currentQuestion < ($survey_data['number_of_questions'] - 1)) {
-                echo '<li><a href="'.api_get_path(WEB_CODE_PATH).'survey/reporting.php?action='.$action.'&amp;'.api_get_cidreq().'&amp;survey_id='.$surveyId.'&amp;question='.($offset+1).'">'.get_lang('NextQuestion').'</li></a>';
+                if ($currentQuestion < ($survey_data['number_of_questions'] - 1)) {
+                    echo '<li><a href="' . api_get_path(WEB_CODE_PATH) . 'survey/reporting.php?action=' . $action . '&amp;' . api_get_cidreq() . '&amp;survey_id=' . $surveyId . '&amp;question=' . ($offset + 1) . '">' . get_lang('NextQuestion') . '</li></a>';
+                }
+                echo '</ul>';
+                echo '</div>';
+                $limitStatement = " LIMIT $offset, 1";
             }
             }
-            echo '</ul>';
-            echo '</div>';
 
 
             // Getting the question information
             // Getting the question information
             $sql = "SELECT * FROM $table_survey_question
             $sql = "SELECT * FROM $table_survey_question
@@ -2006,9 +2011,13 @@ class SurveyUtil
                         survey_id='".Database::escape_string($_GET['survey_id'])."' AND
                         survey_id='".Database::escape_string($_GET['survey_id'])."' AND
                         type<>'pagebreak' AND type<>'comment'
                         type<>'pagebreak' AND type<>'comment'
                     ORDER BY sort ASC
                     ORDER BY sort ASC
-                    LIMIT ".$offset.",1";
+                    $limitStatement";
             $result = Database::query($sql);
             $result = Database::query($sql);
-            $question = Database::fetch_array($result);
+            //$question = Database::fetch_array($result);
+
+            while ($row = Database::fetch_array($result)) {
+                $questions[$row['question_id']] = $row;
+            }
 
 
             // Navigate through the questions (next and previous)
             // Navigate through the questions (next and previous)
             /*if ($currentQuestion != 0 ) {
             /*if ($currentQuestion != 0 ) {
@@ -2024,124 +2033,132 @@ class SurveyUtil
                 echo get_lang('NextQuestion').' '.Display::return_icon('action_next.png', get_lang('NextQuestion'), array('align' => 'middle'));
                 echo get_lang('NextQuestion').' '.Display::return_icon('action_next.png', get_lang('NextQuestion'), array('align' => 'middle'));
             }*/
             }*/
         }
         }
-        echo '<div class="title-question">';
+
+        $htmlHeadXtra[] = '<script src="' . api_get_path(WEB_LIBRARY_PATH) . 'javascript/tag/jquery.fcbkcomplete.js" type="text/javascript" language="javascript"></script>';
+
+        foreach ($questions as $question) {
+            $chartData = array();
+            $options = array();
+            echo '<div class="title-question">';
             echo strip_tags(isset($question['survey_question']) ? $question['survey_question'] : null);
             echo strip_tags(isset($question['survey_question']) ? $question['survey_question'] : null);
-        echo '</div>';
-        if ($question['type'] == 'score') {
-            /** @todo This function should return the options as this is needed further in the code */
-            $options = SurveyUtil::display_question_report_score($survey_data, $question, $offset);
-        } elseif ($question['type'] == 'open') {
-            /** @todo Also get the user who has answered this */
-            $sql = "SELECT * FROM $table_survey_answer
+            echo '</div>';
+
+            if ($question['type'] == 'score') {
+                /** @todo This function should return the options as this is needed further in the code */
+                $options = SurveyUtil::display_question_report_score($survey_data, $question, $offset);
+            } elseif ($question['type'] == 'open') {
+                /** @todo Also get the user who has answered this */
+                $sql = "SELECT * FROM $table_survey_answer
                     WHERE
                     WHERE
                         c_id = $course_id AND
                         c_id = $course_id AND
-                        survey_id='".Database::escape_string($_GET['survey_id'])."' AND
-                        question_id = '".Database::escape_string($question['question_id'])."'";
-            $result = Database::query($sql);
-            while ($row = Database::fetch_array($result)) {
-                echo $row['option_id'].'<hr noshade="noshade" size="1" />';
-            }
-        } else {
-            // Getting the options
-            $sql = "SELECT * FROM $table_survey_question_option
+                        survey_id='" . Database::escape_string($_GET['survey_id']) . "' AND
+                        question_id = '" . Database::escape_string($question['question_id']) . "'";
+                $result = Database::query($sql);
+                while ($row = Database::fetch_array($result)) {
+                    echo $row['option_id'] . '<hr noshade="noshade" size="1" />';
+                }
+            } else {
+                // Getting the options ORDER BY sort ASC
+                $sql = "SELECT * FROM $table_survey_question_option
                     WHERE
                     WHERE
-                        c_id = $course_id AND survey_id='".Database::escape_string($_GET['survey_id'])."' AND
-                        question_id = '".Database::escape_string($question['question_id'])."'
+                        c_id = $course_id AND
+                        survey_id='" . Database::escape_string($_GET['survey_id']) . "'
+                        AND question_id = '" . Database::escape_string($question['question_id']) . "'
                     ORDER BY sort ASC";
                     ORDER BY sort ASC";
-            $result = Database::query($sql);
-            while ($row = Database::fetch_array($result)) {
-                $options[$row['question_option_id']] = $row;
-            }
-            // Getting the answers
-            $sql = "SELECT *, count(answer_id) as total FROM $table_survey_answer
+                $result = Database::query($sql);
+                while ($row = Database::fetch_array($result)) {
+                    $options[$row['question_option_id']] = $row;
+                }
+                // Getting the answers
+                $sql = "SELECT *, count(answer_id) as total FROM $table_survey_answer
                     WHERE
                     WHERE
                         c_id = $course_id AND
                         c_id = $course_id AND
-                        survey_id='".Database::escape_string($_GET['survey_id'])."' AND
-                        question_id = '".Database::escape_string($question['question_id'])."'
+                        survey_id='" . Database::escape_string($_GET['survey_id']) . "'
+                        AND question_id = '" . Database::escape_string($question['question_id']) . "'
                     GROUP BY option_id, value";
                     GROUP BY option_id, value";
-            $result = Database::query($sql);
-            $number_of_answers = 0;
-            $data = array();
-            while ($row = Database::fetch_array($result)) {
-                $number_of_answers += $row['total'];
-                $data[$row['option_id']] = $row;
-            }
+                $result = Database::query($sql);
+                $number_of_answers = array();
+                $data = array();
+                while ($row = Database::fetch_array($result)) {
+                    if (!isset($number_of_answers[$row['question_id']])) {
+                        $number_of_answers[$row['question_id']] = 0;
+                    }
+                    $number_of_answers[$row['question_id']] += $row['total'];
+                    $data[$row['option_id']] = $row;
+                }
 
 
-            $chartData = array();
-            foreach ($options as $option) {
-                $optionText = strip_tags($option['option_text']);
-                $optionText = html_entity_decode($optionText);
-                $votes = $data[$option['question_option_id']]['total'];
-                if (empty($votes)) {
-                    $votes = '0';
+                foreach ($options as $option) {
+                    $optionText = strip_tags($option['option_text']);
+                    $optionText = html_entity_decode($optionText);
+                    $votes = isset($data[$option['question_option_id']]['total']) ?
+                        $data[$option['question_option_id']]['total'] :
+                        '0';
+                    array_push($chartData, array('option' => $optionText, 'votes' => $votes));
                 }
                 }
-                array_push($chartData, array('option' => $optionText, 'votes' => $votes));
-            }
-            echo '<div id="chartContainer" class="span12">';
-            echo self::drawChart($chartData);
-            echo '</div>';
+                $chartContainerId = 'chartContainer'.$question['question_id'];
+                echo '<div id="'.$chartContainerId.'" class="span12">';
+                echo self::drawChart($chartData, false, $chartContainerId);
 
 
-            $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/tag/jquery.fcbkcomplete.js" type="text/javascript" language="javascript"></script>';
+                // displaying the table: headers
 
 
-            // displaying the table: headers
+                echo '<table class="display-survey table">';
+                echo '	<tr>';
+                echo '		<th>&nbsp;</th>';
+                echo '		<th>' . get_lang('AbsoluteTotal') . '</th>';
+                echo '		<th>' . get_lang('Percentage') . '</th>';
+                echo '		<th>' . get_lang('VisualRepresentation') . '</th>';
+                echo '	<tr>';
 
 
-            echo '<table id="display-survey" class="table">';
-            echo '	<tr>';
-            echo '		<th>&nbsp;</th>';
-            echo '		<th>'.get_lang('AbsoluteTotal').'</th>';
-            echo '		<th>'.get_lang('Percentage').'</th>';
-            echo '		<th>'.get_lang('VisualRepresentation').'</th>';
-            echo '	<tr>';
+                // Displaying the table: the content
+                if (is_array($options)) {
+                    foreach ($options as $key => & $value) {
+                        $absolute_number = null;
+                        if (isset($data[$value['question_option_id']])) {
+                            $absolute_number = $data[$value['question_option_id']]['total'];
+                        }
+                        if ($question['type'] == 'percentage' && empty($absolute_number)) {
+                            continue;
+                        }
+                        if ($number_of_answers[$option['question_id']] == 0) {
+                            $answers_number = 0;
+                        } else {
+                            $answers_number = $absolute_number / $number_of_answers[$option['question_id']] * 100;
+                        }
+                        echo '	<tr>';
+                        echo '		<td class="center">' . $value['option_text'] . '</td>';
+                        echo '		<td class="center">';
+                        if ($absolute_number != 0) {
+                            echo '<a href="' . api_get_path(WEB_CODE_PATH) . 'survey/reporting.php?action=' . $action . '&amp;survey_id=' . $surveyId . '&amp;question=' . $offset . '&amp;viewoption=' . $value['question_option_id'] . '">' . $absolute_number . '</a>';
+                        } else {
+                            echo '0';
+                        }
 
 
-            // Displaying the table: the content
-            if (is_array($options)) {
-                foreach ($options as $key => & $value) {
-                    $absolute_number = null;
-                    if (isset($data[$value['question_option_id']])) {
-                        $absolute_number = $data[$value['question_option_id']]['total'];
-                    }
-                    if ($question['type'] == 'percentage' && empty($absolute_number)) {
-                        continue;
-                    }
-                    if ($number_of_answers == 0) {
-                        $answers_number = 0;
-                    } else {
-                        $answers_number = $absolute_number/$number_of_answers*100;
-                    }
-                    echo '	<tr>';
-                    echo '		<td class="center">'.$value['option_text'].'</td>';
-                    echo '		<td class="center">';
-                    if ($absolute_number!=0){
-		                echo '<a href="'.api_get_path(WEB_CODE_PATH).'survey/reporting.php?action='.$action.'&amp;survey_id='.$surveyId.'&amp;question='.$offset.'&amp;viewoption='.$value['question_option_id'].'">'.$absolute_number.'</a>';
-		            }else{
-		                 echo '0';
-		            }
-
-		            echo '      </td>';
-                    echo '		<td class="center">'.round($answers_number, 2).' %</td>';
-                    echo '		<td class="center">';
-                    $size = $answers_number*2;
-                    if ($size > 0) {
-                        echo '<div style="border:1px solid #264269; background-color:#aecaf4; height:10px; width:'.$size.'px">&nbsp;</div>';
-                    }else{
-                        echo '<div style="text-align: left;">'.get_lang("NoDataAvailable").'</div>';
+                        echo '      </td>';
+                        echo '		<td class="center">' . round($answers_number, 2) . ' %</td>';
+                        echo '		<td class="center">';
+                        $size = $answers_number * 2;
+                        if ($size > 0) {
+                            echo '<div style="border:1px solid #264269; background-color:#aecaf4; height:10px; width:' . $size . 'px">&nbsp;</div>';
+                        } else {
+                            echo '<div style="text-align: left;">' . get_lang("NoDataAvailable") . '</div>';
+                        }
+                        echo ' </td>';
+                        echo ' </tr>';
                     }
                     }
-                    echo ' </td>';
-                    echo ' </tr>';
                 }
                 }
-            }
-            // displaying the table: footer (totals)
-            echo '	<tr>';
-            echo '		<td class="total"><b>'.get_lang('Total').'</b></td>';
-            echo '		<td class="total"><b>'.($number_of_answers==0?'0':$number_of_answers).'</b></td>';
-            echo '		<td class="total">&nbsp;</td>';
-            echo '		<td class="total">&nbsp;</td>';
-            echo '	</tr>';
+                // displaying the table: footer (totals)
+                echo '	<tr>';
+                echo '		<td class="total"><b>' . get_lang('Total') . '</b></td>';
+                echo '		<td class="total"><b>' . ($number_of_answers[$option['question_id']] == 0 ? '0' : $number_of_answers[$option['question_id']]) . '</b></td>';
+                echo '		<td class="total">&nbsp;</td>';
+                echo '		<td class="total">&nbsp;</td>';
+                echo '	</tr>';
 
 
-            echo '</table>';
+                echo '</table>';
 
 
+                echo '</div>';
+            }
         }
         }
-
         if (isset($_GET['viewoption'])) {
         if (isset($_GET['viewoption'])) {
             echo '<div class="answered-people">';
             echo '<div class="answered-people">';
 
 
@@ -4394,14 +4411,14 @@ class SurveyUtil
      * @param	boolean	Tells if the chart has a serie. False by default
      * @param	boolean	Tells if the chart has a serie. False by default
      * @return	void 	(direct output)
      * @return	void 	(direct output)
      */
      */
-    public static function drawChart($chartData, $hasSerie = false)
+    public static function drawChart($chartData, $hasSerie = false, $chartContainerId = 'chartContainer')
     {
     {
         $htmlChart = '';
         $htmlChart = '';
         if (api_browser_support("svg")) {
         if (api_browser_support("svg")) {
             $htmlChart .= api_get_js("d3/d3.v3.5.4.min.js");
             $htmlChart .= api_get_js("d3/d3.v3.5.4.min.js");
             $htmlChart .= api_get_js("dimple.v2.1.2.min.js") . '
             $htmlChart .= api_get_js("dimple.v2.1.2.min.js") . '
             <script type="text/javascript">
             <script type="text/javascript">
-            var svg = dimple.newSvg("#chartContainer", "100%", 400);
+            var svg = dimple.newSvg("#'.$chartContainerId.'", "100%", 400);
             var data = [';
             var data = [';
             $serie = array();
             $serie = array();
             $order = array();
             $order = array();

+ 42 - 37
main/template/default/auth/courses_categories.php

@@ -106,9 +106,10 @@ $code = isset($code) ? $code : null;
 </script>
 </script>
 
 
     <div class="row">
     <div class="row">
-        <div class="span3">
-            <div id="course_category_well" class="well">
-                <ul class="nav nav-list">
+        <div class="col-md-3">
+            <div class="panel panel-default">
+                <div class="panel-heading"><?php echo get_lang('Search'); ?></div>
+                <div class="panel-body">
                     <?php if ($showCourses) { ?>
                     <?php if ($showCourses) { ?>
                     <?php if (!isset($_GET['hidden_links']) || intval($_GET['hidden_links']) != 1) { ?>
                     <?php if (!isset($_GET['hidden_links']) || intval($_GET['hidden_links']) != 1) { ?>
                         <form class="form-search" method="post" action="<?php echo getCourseCategoryUrl(1, $pageLength, 'ALL', 0, 'subscribe'); ?>">
                         <form class="form-search" method="post" action="<?php echo getCourseCategoryUrl(1, $pageLength, 'ALL', 0, 'subscribe'); ?>">
@@ -118,32 +119,34 @@ $code = isset($code) ? $code : null;
                                 <div class="control-group">
                                 <div class="control-group">
                                     <div class="controls">
                                     <div class="controls">
                                         <div class="input-append">
                                         <div class="input-append">
-                                            <input class="span2" type="text" name="search_term" value="<?php echo (empty($_POST['search_term']) ? '' : api_htmlentities(Security::remove_XSS($_POST['search_term']))); ?>" />
-                                            <button class="btn" type="submit"><?php echo get_lang('Search'); ?></button>
+                                            <input type="text" name="search_term" value="<?php echo (empty($_POST['search_term']) ? '' : api_htmlentities(Security::remove_XSS($_POST['search_term']))); ?>" />
+                                            <div class="btn-group">
+                                            <button class="btn btn-default btn-sm" type="submit"><i class="fa fa-search"></i> <?php echo get_lang('Search'); ?></button>
+                                            <?php
+                                            $hidden_links = 0;
+                                            } else {
+                                                $hidden_links = 1;
+                                            }
+
+                                            /* Categories will only show down to 4 levels, if you want more,
+                                             * you will have to patch the following code. We don't recommend
+                                             * it, as this can considerably slow down your system
+                                             */
+                                            if (!empty($browse_course_categories)) {
+                                            echo '<a class="btn btn-default btn-sm" href="'.api_get_self().'?action=display_random_courses">'.get_lang('RandomPick').'</a>';
+                                            ?>
+                                            </div>
                                         </div>
                                         </div>
                                     </div>
                                     </div>
                                 </div>
                                 </div>
                             </fieldset>
                             </fieldset>
                         </form>
                         </form>
-                        <?php
-                        $hidden_links = 0;
-                    } else {
-                        $hidden_links = 1;
-                    }
-
-                    /* Categories will only show down to 4 levels, if you want more,
-                     * you will have to patch the following code. We don't recommend
-                     * it, as this can considerably slow down your system
-                     */
-                    if (!empty($browse_course_categories)) {
-                    echo '<a class="btn" href="'.api_get_self().'?action=display_random_courses">'.get_lang('RandomPick').'</a><br /><br />';
-                    ?>
-                </ul>
+                </div>
             </div>
             </div>
-            <div class="well">
-                <ul class="nav nav-list">
+            <div class="panel panel-default">
+                <div class="panel-heading">
                     <?php
                     <?php
-                    echo '<li class="nav-header">'.get_lang('CourseCategories').'</li>';
+                    echo get_lang('CourseCategories').'</div>';
 
 
                     $action = 'display_courses';
                     $action = 'display_courses';
                     // level 1
                     // level 1
@@ -168,8 +171,10 @@ $code = isset($code) ? $code : null;
                                 $category_link = ''.$category_name.' ('.$count_courses_lv1.')';
                                 $category_link = ''.$category_name.' ('.$count_courses_lv1.')';
                             }
                             }
                         }
                         }
+                        echo '<div class="panel-body">';
+                        echo '<ul class="nav nav-pills nav-stacked">';
                         echo '<li>'.$category_link.'</li>';
                         echo '<li>'.$category_link.'</li>';
-
+                        echo '</ul></div>';
                         // level 2
                         // level 2
                         if (!empty($browse_course_categories[$category_code])) {
                         if (!empty($browse_course_categories[$category_code])) {
                             foreach ($browse_course_categories[$category_code] as $subcategory1) {
                             foreach ($browse_course_categories[$category_code] as $subcategory1) {
@@ -243,17 +248,17 @@ $code = isset($code) ? $code : null;
             }
             }
             ?>
             ?>
             <?php if ($showSessions) { ?>
             <?php if ($showSessions) { ?>
-                <div class="well">
-                    <ul class="nav nav-list">
-                        <li class="nav-header"><?php echo get_lang('Sessions'); ?></li>
-                        <li>
+                <div class="panel panel-default">
+
+                        <div class="panel-heading"><?php echo get_lang('Sessions'); ?></div>
+                        <div class="panel-body">
                             <?php if ($action == 'display_sessions' && $_SERVER['REQUEST_METHOD'] != 'POST') { ?>
                             <?php if ($action == 'display_sessions' && $_SERVER['REQUEST_METHOD'] != 'POST') { ?>
                                 <strong><?php echo get_lang('Sessions'); ?></strong>
                                 <strong><?php echo get_lang('Sessions'); ?></strong>
                             <?php } else { ?>
                             <?php } else { ?>
                                 <a href="<?php echo getCourseCategoryUrl(1, $pageLength, null, 0, 'display_sessions'); ?>"><?php echo get_lang('SessionList'); ?></a>
                                 <a href="<?php echo getCourseCategoryUrl(1, $pageLength, null, 0, 'display_sessions'); ?>"><?php echo get_lang('SessionList'); ?></a>
                             <?php } ?>
                             <?php } ?>
-                        </li>
-                        <li class="nav-header"><?php echo get_lang('SearchActiveSessions') ?></li>
+
+                        <p><?php echo get_lang('SearchActiveSessions') ?></p>
                         <form class="form-search" method="post" action="<?php echo getCourseCategoryUrl(1, $pageLength, null, 0, 'display_sessions'); ?>">
                         <form class="form-search" method="post" action="<?php echo getCourseCategoryUrl(1, $pageLength, null, 0, 'display_sessions'); ?>">
                             <div class="input-append">
                             <div class="input-append">
                                 <?php echo Display::input('date', 'date', $date, array(
                                 <?php echo Display::input('date', 'date', $date, array(
@@ -261,18 +266,18 @@ $code = isset($code) ? $code : null;
                                     'id' => 'date',
                                     'id' => 'date',
                                     'readonly' => ''
                                     'readonly' => ''
                                 )); ?>
                                 )); ?>
-                                <button class="btn" type="submit"><?php echo get_lang('Search'); ?></button>
+                                <button class="btn btn-default" type="submit"><?php echo get_lang('Search'); ?></button>
                             </div>
                             </div>
                         </form>
                         </form>
-                    </ul>
+                    </div>
                 </div>
                 </div>
             <?php } ?>
             <?php } ?>
         </div>
         </div>
 
 
-        <div class="span9">
-            <div class="page-header">
+        <div class="col-md-9">
+
                 <h2><?php echo get_lang('CourseCatalog')?></h2>
                 <h2><?php echo get_lang('CourseCatalog')?></h2>
-            </div>
+
             <?php if ($showCourses && $action != 'display_sessions') { ?>
             <?php if ($showCourses && $action != 'display_sessions') { ?>
                 <?php if (!empty($message)) { Display::display_confirmation_message($message, false); }
                 <?php if (!empty($message)) { Display::display_confirmation_message($message, false); }
                 if (!empty($error)) { Display::display_error_message($error, false); }
                 if (!empty($error)) { Display::display_error_message($error, false); }
@@ -317,7 +322,7 @@ $code = isset($code) ? $code : null;
                         display_thumbnail($course, $icon_title);
                         display_thumbnail($course, $icon_title);
 
 
                         // display course title and button bloc
                         // display course title and button bloc
-                        echo '<div class="span4">';
+                        echo '<div class="col-md-8">';
                         display_title($course);
                         display_title($course);
                         // display button line
                         // display button line
                         echo '<div class="btn-toolbar">';
                         echo '<div class="btn-toolbar">';
@@ -355,7 +360,7 @@ $code = isset($code) ? $code : null;
                         echo '</div>'; // span4
                         echo '</div>'; // span4
 
 
                         // display counter
                         // display counter
-                        echo '<div class="span2">';
+                        echo '<div class="col-md-2">';
                         echo '<div class="course-block-popularity"><span>'.get_lang('ConnectionsLastMonth').'</span><div class="course-block-popularity-score">'.$count_connections.'</div></div>';
                         echo '<div class="course-block-popularity"><span>'.get_lang('ConnectionsLastMonth').'</span><div class="course-block-popularity-score">'.$count_connections.'</div></div>';
                         echo '</div>';
                         echo '</div>';
 
 
@@ -394,7 +399,7 @@ function display_thumbnail($course, $icon_title)
     }
     }
 
 
     // course image
     // course image
-    echo '<div class="span2">';
+    echo '<div class="col-md-2">';
     echo '<div class="thumbnail">';
     echo '<div class="thumbnail">';
     if (api_get_setting('show_courses_descriptions_in_catalog') == 'true') {
     if (api_get_setting('show_courses_descriptions_in_catalog') == 'true') {
         echo '<a class="ajax" href="'.api_get_path(WEB_CODE_PATH).'inc/ajax/course_home.ajax.php?a=show_course_information&amp;code='.$course['code'].'" title="'.$icon_title.'" rel="gb_page_center[778]">';
         echo '<a class="ajax" href="'.api_get_path(WEB_CODE_PATH).'inc/ajax/course_home.ajax.php?a=show_course_information&amp;code='.$course['code'].'" title="'.$icon_title.'" rel="gb_page_center[778]">';

+ 9 - 9
main/template/default/auth/sessions_catalog.tpl

@@ -50,7 +50,7 @@
         });
         });
     </script>
     </script>
 
 
-    <div class="span3">
+    <div class="col-md-3">
         {% if showCourses %}
         {% if showCourses %}
             <div class="well">
             <div class="well">
                 {% if not hiddenLinks %}
                 {% if not hiddenLinks %}
@@ -102,25 +102,25 @@
             </div>
             </div>
         {% endif %}
         {% endif %}
     </div>
     </div>
-    <div class="span9">
+    <div class="col-md-9">
         {% for session in sessions_blocks %}
         {% for session in sessions_blocks %}
             <div class="well well-small session-group" id="session-{{ session.id }}">
             <div class="well well-small session-group" id="session-{{ session.id }}">
-                <div class="row-fluid">
-                    <div class="span9">
-                        <div class="row-fluid padding-clear">
-                            <div class="span2">
+                <div class="row">
+                    <div class="col-md-9">
+                        <div class="row padding-clear">
+                            <div class="col-md-2">
                                 <span class="thumbnail">
                                 <span class="thumbnail">
                                     {{ session.icon }}
                                     {{ session.icon }}
                                 </span>
                                 </span>
                             </div>
                             </div>
-                            <div class="span10 border-info">
+                            <div class="col-md-10 border-info">
                                 <h3>{{ session.name }}</h3>
                                 <h3>{{ session.name }}</h3>
                                 <div class="tutor">
                                 <div class="tutor">
                                     <img src="{{ 'teacher.png' | icon(22) }}" width="16"> {{ 'GeneralCoach' | get_lang }} {{ session.coach_name }}
                                     <img src="{{ 'teacher.png' | icon(22) }}" width="16"> {{ 'GeneralCoach' | get_lang }} {{ session.coach_name }}
                                 </div>
                                 </div>
                             </div>
                             </div>
                         </div>
                         </div>
-                        <div class="row-fluid">
+                        <div class="row">
                             <div class="accordion" id="session-{{ session.id }}-accordion">
                             <div class="accordion" id="session-{{ session.id }}-accordion">
                                 <div class="accordion-group">
                                 <div class="accordion-group">
                                     <div class="accordion-heading">
                                     <div class="accordion-heading">
@@ -135,7 +135,7 @@
                             </div>
                             </div>
                         </div>
                         </div>
                     </div>
                     </div>
-                    <div class="span3">
+                    <div class="col-md-3">
                         {% if session.showDescription %}
                         {% if session.showDescription %}
                             <div class="buttom-subscribed">
                             <div class="buttom-subscribed">
                                 <a class="ajax btn btn-large btn-info" href="{{ _p.web_ajax }}session.ajax.php?a=get_description&session={{ session.id }}">{{ 'Description' | get_lang }}</a>
                                 <a class="ajax btn btn-large btn-info" href="{{ _p.web_ajax }}session.ajax.php?a=get_description&session={{ session.id }}">{{ 'Description' | get_lang }}</a>

+ 12 - 12
main/template/default/create_course/add_course.tpl

@@ -8,43 +8,43 @@
 <br />
 <br />
 
 
 <div id="course_thing_to_do" class="row">
 <div id="course_thing_to_do" class="row">
-    <div class="span3">
+    <div class="col-md-3">
         <div class="thumbnail">
         <div class="thumbnail">
             <img src="{{ _p.web_img }}icons/64/info.png"/>
             <img src="{{ _p.web_img }}icons/64/info.png"/>
             <div class="caption">
             <div class="caption">
-                <a href="{{ _p.web_main }}course_description/?cidReq={{ course_id }}" class="btn">
-                    {{'AddCourseDescription'|get_lang}}
+                <a href="{{ _p.web_main }}course_description/?cidReq={{ course_id }}" class="btn btn-default">
+                    <i class="fa fa-info-circle"></i> {{'AddCourseDescription'|get_lang}}
                 </a>
                 </a>
             </div>
             </div>
         </div>
         </div>
     </div>
     </div>
-    <div class="span3">
+    <div class="col-md-3">
         <div class="thumbnail">
         <div class="thumbnail">
             <img src="{{ _p.web_img }}icons/64/folder_document.png"/>
             <img src="{{ _p.web_img }}icons/64/folder_document.png"/>
             <div class="caption">
             <div class="caption">
-                <a href="{{ _p.web_main }}document/document.php?cidReq={{ course_id }}" class="btn">
-                    {{'UploadADocument'|get_lang}}
+                <a href="{{ _p.web_main }}document/document.php?cidReq={{ course_id }}" class="btn btn-default">
+                    <i class="fa fa-paper-plane"></i> {{'UploadADocument'|get_lang}}
                 </a>
                 </a>
             </div>
             </div>
         </div>
         </div>
     </div>
     </div>
-    <div class="span3">
+    <div class="col-md-3">
         <div class="thumbnail">
         <div class="thumbnail">
             <img src="{{ _p.web_img }}icons/64/forum.png"/>
             <img src="{{ _p.web_img }}icons/64/forum.png"/>
             <div class="caption">
             <div class="caption">
-                <a href="{{ _p.web_main }}forum/index.php?cidReq={{ course_id }}" class="btn">
-                    {{ 'AddForum'|get_lang }}
+                <a href="{{ _p.web_main }}forum/index.php?cidReq={{ course_id }}" class="btn btn-default">
+                    <i class="fa fa-users"></i> {{ 'AddForum'|get_lang }}
                 </a>
                 </a>
             </div>
             </div>
         </div>
         </div>
     </div>
     </div>
     {% if ("allow_user_course_subscription_by_course_admin" | get_setting) == 'true' or _u.is_admin == 1 %}
     {% if ("allow_user_course_subscription_by_course_admin" | get_setting) == 'true' or _u.is_admin == 1 %}
-    <div class="span3">
+    <div class="col-md-3">
         <div class="thumbnail">
         <div class="thumbnail">
         <img src="{{ _p.web_img }}icons/64/user.png"/>
         <img src="{{ _p.web_img }}icons/64/user.png"/>
             <div class="caption">
             <div class="caption">
-            <a href="{{ _p.web_main }}user/subscribe_user.php?cidReq={{ course_id }}" class="btn">
-                {{ 'SubscribeUserToCourse'|get_lang }}
+            <a href="{{ _p.web_main }}user/subscribe_user.php?cidReq={{ course_id }}" class="btn btn-default">
+                <i class="fa fa-user-plus"></i> {{ 'SubscribeUserToCourse'|get_lang }}
             </a>
             </a>
             </div>
             </div>
         </div>
         </div>

+ 3 - 2
main/template/default/layout/head.tpl

@@ -12,8 +12,7 @@
 {#  Improve usability in portal devices #}
 {#  Improve usability in portal devices #}
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>{{ title_string }}</title>
 <title>{{ title_string }}</title>
-{{ css_file_to_string }}
-{{ css_style_print }}
+{{ css_static_file_to_string }}
 {{ js_file_to_string }}
 {{ js_file_to_string }}
 <script>
 <script>
 
 
@@ -445,5 +444,7 @@ $(function() {
     });*/
     });*/
 });
 });
 </script>
 </script>
+{{ css_custom_file_to_string }}
+{{ css_style_print }}
 {# Extra header configured in admin section, only shown to non-admins #}
 {# Extra header configured in admin section, only shown to non-admins #}
 {{ header_extra_content }}
 {{ header_extra_content }}

+ 2 - 2
main/template/default/layout/layout_1_col.tpl

@@ -11,12 +11,12 @@
 
 
     {#  Plugin top  #}
     {#  Plugin top  #}
     {% if plugin_content_top %}
     {% if plugin_content_top %}
-        <div id="plugin_content_top" class="col-md-12">
+        <div id="plugin_content_top" class="col-md-12 movil">
             {{ plugin_content_top }}
             {{ plugin_content_top }}
         </div>
         </div>
     {% endif %}
     {% endif %}
 
 
-    <div class="col-md-12">
+    <div class="col-xs-12 col-md-12">
         {% include template ~ "/layout/page_body.tpl" %}
         {% include template ~ "/layout/page_body.tpl" %}
         {% block content %}
         {% block content %}
             {% if content is not null %}
             {% if content is not null %}

+ 4 - 3
main/template/default/layout/layout_2_col.tpl

@@ -25,7 +25,6 @@
 		{% endif %}
 		{% endif %}
         {% endblock %}
         {% endblock %}
 
 
-
 		{# User picture #}
 		{# User picture #}
 
 
         {{ user_image_block }}
         {{ user_image_block }}
@@ -40,6 +39,8 @@
         {# Course block - teacher #}
         {# Course block - teacher #}
 		{{ teacher_block }}
 		{{ teacher_block }}
 
 
+        {# Skills #}
+        {{ skills_block }}
 
 
 		{# Notice #}
 		{# Notice #}
 		{{ notice_block }}
 		{{ notice_block }}
@@ -50,6 +51,7 @@
 		{# Links that are not added in the tabs #}
 		{# Links that are not added in the tabs #}
 		{{ navigation_course_links }}
 		{{ navigation_course_links }}
 
 
+
 		{# Reservation block  #}
 		{# Reservation block  #}
 		{{ reservation_block }}
 		{{ reservation_block }}
 
 
@@ -59,8 +61,7 @@
 		{# Classes #}
 		{# Classes #}
 		{{ classes_block }}
 		{{ classes_block }}
 
 
-		{# Skills #}
-		{{ skills_block }}
+
 
 
 		{# Plugin courses sidebar #}
 		{# Plugin courses sidebar #}
         {# Plugins for footer section #}
         {# Plugins for footer section #}

+ 1 - 1
main/template/default/layout/menu.tpl

@@ -32,7 +32,7 @@
                {% if logout_link is not null %}
                {% if logout_link is not null %}
                <li>
                <li>
                    <a id="logout_button" title="{{ "Logout"|get_lang }}" href="{{ logout_link }}" >
                    <a id="logout_button" title="{{ "Logout"|get_lang }}" href="{{ logout_link }}" >
-                       {{ "Logout"|get_lang }}
+                       <i class="fa fa-sign-out"></i> {{ "Logout"|get_lang }}
                    </a>
                    </a>
                </li>
                </li>
                {% endif %}
                {% endif %}

+ 0 - 29
main/template/default/layout/social_layout.tpl

@@ -1,29 +0,0 @@
-{% extends template ~ "/layout/layout_1_col.tpl" %}
-
-{% block content %}
-    <div class="row">
-        <div class="col-md-3">
-            <div class="social-menu">
-            {{ social_avatar_block }}
-            {{ social_menu_block }}
-            </div>
-        </div>
-        <div id="wallMessages" class="col-md-5" style="min-height:1px">
-            <div class="row">
-                <div class="col-md-5">
-                    <div id="message_ajax_reponse" class=""></div>
-                </div>
-            </div>
-            <div class="row">
-                {{ social_right_content}}
-            </div>
-            <div id="display_response_id" class="span5"></div>
-            {{ socialAutoExtendLink }}
-        </div>
-        <div class="col-md-4">
-            <div class="row">
-                {{ socialRightInformation}}
-            </div>
-        </div>
-    </div>
-{% endblock %}

+ 35 - 12
main/template/default/skill/badge.tpl

@@ -1,27 +1,50 @@
 {% extends "default/layout/main.tpl" %}
 {% extends "default/layout/main.tpl" %}
 
 
 {% block body %}
 {% block body %}
-    <div class="span12">
-        <h1 class="page-header">{{ 'Badges' | get_lang }}</h1>
+
+    <div class="col-md-12">
+        <div class="openbadges-tabs">
         <ul class="nav nav-tabs">
         <ul class="nav nav-tabs">
             <li class="active">
             <li class="active">
                 <a href="{{ _p.web_main }}admin/skill_badge.php">{{ 'Home' | get_lang }}</a>
                 <a href="{{ _p.web_main }}admin/skill_badge.php">{{ 'Home' | get_lang }}</a>
             </li>
             </li>
             <li>
             <li>
-                <a href="{{ _p.web_main }}admin/skill_badge_issuer.php">{{ 'IssuerDetails' | get_lang }}</a>
-            </li>
-            <li>
-                <a href="{{ _p.web_main }}admin/skill_badge_list.php">{{ 'Skills' | get_lang }}</a>
+                <a href="{{ _p.web_main }}admin/skill_badge_list.php">{{ 'Insignias Actuales' | get_lang }}</a>
             </li>
             </li>
         </ul>
         </ul>
+        </div>
         <div class="tab-content">
         <div class="tab-content">
             <div class="tab-pane active">
             <div class="tab-pane active">
-                <div class="hero-unit">
-                    <h1>{{ 'OpenBadgesIntroduction' | get_lang }}</h1>
-                    <p class="lead">{{ 'OpenBadgesBannerText' | get_lang }}</p>
-                    <p class="lead">
-                        <a href="http://openbadges.org/">http://openbadges.org/</a>
-                    </p>
+                <div class="openbadges-introduction">
+                    <h1 class="title"><img src="{{ 'badges.png' | icon(64) }}">{{ 'OpenBadgesTitle' | get_lang }}</h1>
+                    <div class="row">
+                        <div class="col-xs-12 col-md-6">
+                            <p class="lead">
+                                {{ 'OpenBadgesBannerText' | get_lang }}
+                            </p>
+                            <p class="lead">
+                                {{ 'OpenBadgesIntroduction' | get_lang }} <a href="http://openbadges.org">http://openbadges.org/</a>.
+                            </p>
+                        </div>
+                        <div class="col-xs-12 col-md-6">
+                            <img class="img-responsive" src="{{ 'openbadges.png' | icon() }}">
+                        </div>
+                    </div>
+
+                    <h3 class="sub-title">{{ 'OpenBadgesBannerCall' | get_lang }}</h3>
+                    <div class="block-content">
+                        <div class="block-title">{{ 'IssuerDetails' | get_lang }}</div>
+
+                        <p>{{ 'Name' | get_lang }} : {{ _s.institution }}</p>
+                        <p>{{ 'URL' | get_lang }} : {{ _p.web }}</p>
+
+                        <div class="block-title">{{ 'BackpackDetails' | get_lang }}</div>
+
+                        <p>{{ 'URL' | get_lang }} : {{ backpack }}</p>
+
+                        <p>{{ 'TheBadgesWillBeSentToThatBackpack' | get_lang }}</p>
+
+                    </div>
                 </div>
                 </div>
             </div>
             </div>
         </div>
         </div>

+ 61 - 44
main/template/default/skill/badge_create.tpl

@@ -4,6 +4,11 @@
     <script>
     <script>
         (function () {
         (function () {
             var designer = null;
             var designer = null;
+            $(document).on('ready',function(){
+                $('.help-badges').tooltip();
+                $('.help-badges-img').tooltip();
+            }
+            );
 
 
             $(document).on('ready', function () {
             $(document).on('ready', function () {
                 $('#btn-open-designer').on('click', function (e) {
                 $('#btn-open-designer').on('click', function (e) {
@@ -39,69 +44,81 @@
             });
             });
         })();
         })();
     </script>
     </script>
-    <div class="span12">
-        <h1 class="page-header">{{ 'Badges' | get_lang }}</h1>
-        <ul class="nav nav-tabs">
-            <li>
-                <a href="{{ _p.web_main }}admin/skill_badge.php">{{ 'Home' | get_lang }}</a>
-            </li>
-            <li>
-                <a href="{{ _p.web_main }}admin/skill_badge_issuer.php">{{ 'IssuerDetails' | get_lang }}</a>
-            </li>
-            <li>
-                <a href="{{ _p.web_main }}admin/skill_badge_list.php">{{ 'Skills' | get_lang }}</a>
-            </li>
-            <li class="active">
-                <a href="#">{{ 'Edit' | get_lang }}</a>
-            </li>
-        </ul>
+    <div class="col-md-12">
+
+        <div class="openbadges-tabs">
+            <ul class="nav nav-tabs">
+                <li>
+                    <a href="{{ _p.web_main }}admin/skill_badge.php">{{ 'Home' | get_lang }}</a>
+                </li>
+                <li>
+                    <a href="{{ _p.web_main }}admin/skill_badge_list.php">{{ 'BadgePreview' | get_lang }}</a>
+                </li>
+                <li class="active">
+                    <a href="#">{{ 'Edit' | get_lang }}</a>
+                </li>
+            </ul>
+        </div>
+
         <div class="tab-content">
         <div class="tab-content">
             <div class="tab-pane active">
             <div class="tab-pane active">
+                <div class="openbadges-introduction">
                 <div class="row">
                 <div class="row">
-                    <div class="span3">
-                        <p>{{ 'DesignANewBadgeComment' | get_lang }}</p>
-                        <p>
-                            <button id="btn-open-designer" class="btn btn-info btn-large btn-block" type="button">{{ 'DesignNewBadge' | get_lang }}</button>
-                        </p>
-                        <hr>
-                        <div class="well well-small {{ skill.icon ? '' : 'hide' }}" id="badge-container">
-                            <img id="badge-preview" alt="{{ 'BadgePreview' | get_lang }}" src="{{ skill.icon ? [_p.web_data, skill.icon] | join('') : '' }}">
+                    <div class="col-md-12">
+                        <div class="block-edit">
+                            <div class="block-title">{{ 'SkillInfo' | get_lang }}</div>
                         </div>
                         </div>
                     </div>
                     </div>
-                    <div class="span9">
+                </div>
+                <div class="row">
+                    <div class="col-md-9">
                         <form action="{{ _p.web_self_query_vars }}" class="form-horizontal" method="post" enctype="multipart/form-data">
                         <form action="{{ _p.web_self_query_vars }}" class="form-horizontal" method="post" enctype="multipart/form-data">
                             <fieldset>
                             <fieldset>
-                                <legend>{{ 'SkillInfo' | get_lang }}</legend>
-                                <div class="control-group">
-                                    <label class="control-label" for="name">{{ 'Name' | get_lang }}</label>
-                                    <div class="controls">
-                                        <input type="text" name="name" id="name" class="input-xxlarge" value="{{ skill.name }}">
+
+                                <div class="form-group">
+                                    <label class="col-sm-2 control-label" for="name">{{ 'Name' | get_lang }}</label>
+                                    <div class="col-sm-10">
+                                        <input type="text" name="name" id="name" class="form-control" value="{{ skill.name }}">
                                     </div>
                                     </div>
                                 </div>
                                 </div>
-                                <div class="control-group">
-                                    <label class="control-label" for="name">{{ 'Description' | get_lang }}</label>
-                                    <div class="controls">
-                                        <textarea name="description" id="description" class="input-xxlarge" rows="4">{{ skill.description }}</textarea>
+                                <div class="form-group">
+                                    <label class="col-sm-2 control-label" for="name">{{ 'Description' | get_lang }}</label>
+                                    <div class="col-sm-10">
+                                        <textarea name="description" id="description" class="form-control" rows="4">{{ skill.description }}</textarea>
                                     </div>
                                     </div>
                                 </div>
                                 </div>
-                                <div class="control-group">
-                                    <label class="control-label" for="image">{{ 'Image' | get_lang }}</label>
-                                    <div class="controls">
-                                        <input type="file" name="image" id="image" class="input-xxlarge" accept="image/*">
+                                <div class="form-group">
+                                    <label class="col-sm-2 control-label" for="image">{{ 'Image' | get_lang }}</label>
+                                    <div class="col-sm-10">
+                                        <input data-placement="left" data-toggle="tooltip" title="{{ 'Medidas de la insignia 200 x 200 pixeles en formato PNG' | get_lang }}" type="file" name="image" id="image" class="help-badges-img" accept="image/*">
                                     </div>
                                     </div>
                                 </div>
                                 </div>
-                                <div class="control-group">
-                                    <label class="control-label" for="criteria">{{ 'CriteriaToEarnTheBadge' | get_lang }}</label>
-                                    <div class="controls">
-                                        <textarea name="criteria" id="criteria" class="input-xxlarge" rows="10">{{ skill.criteria }}</textarea>
+                                <div class="form-group">
+                                    <label class="col-sm-2 control-label" for="criteria">{{ 'CriteriaToEarnTheBadge' | get_lang }}</label>
+                                    <div class="col-sm-10">
+                                        <textarea name="criteria" id="criteria" class="form-control" rows="10">{{ skill.criteria }}</textarea>
                                     </div>
                                     </div>
                                 </div>
                                 </div>
                             </fieldset>
                             </fieldset>
-                            <div class="form-actions">
-                                <button type="submit" class="btn btn-primary">{{ 'Create'| get_lang }}</button>
+                            <div class="form-group">
+                                <div class="col-sm-offset-2 col-sm-10">
+                                    <button type="submit" class="btn btn-primary btn-large"><i class="fa fa-floppy-o"></i> {{ 'Guardar Insignia'| get_lang }}</button>
+                                </div>
                             </div>
                             </div>
                         </form>
                         </form>
                     </div>
                     </div>
+                    <div class="col-md-3">
+                        <div class="create-openbadges">
+                            <button id="btn-open-designer" class="help-badges btn btn-primary btn-large btn-block" data-toggle="tooltip" data-placement="bottom" title="{{ 'DesignANewBadgeComment' | get_lang }}" type="button">
+                                <i class="fa fa-plus"></i> {{ 'DesignNewBadge' | get_lang }}
+                            </button>
+                        </div>
+                        <p class="openbadges-text">{{'OpenBadgeImagePreview' | get_lang }}</p>
+                        <div class="openbadges-img {{ skill.icon ? '' : 'hide' }}" id="badge-container">
+                            <img id="badge-preview" alt="{{ 'BadgePreview' | get_lang }}" src="{{ skill.icon ? [_p.web_data, skill.icon] | join('') : '' }}">
+                        </div>
+                    </div>
+                </div>
                 </div>
                 </div>
             </div>
             </div>
         </div>
         </div>

+ 11 - 5
main/template/default/skill/badge_issuer.tpl

@@ -1,17 +1,23 @@
 {% extends "default/layout/main.tpl" %}
 {% extends "default/layout/main.tpl" %}
 
 
 {% block body %}
 {% block body %}
+
+
+
+
+
+
     <div class="span12">
     <div class="span12">
-        <h1 class="page-header">{{ 'Badges' | get_lang }}</h1>
+        
         <ul class="nav nav-tabs">
         <ul class="nav nav-tabs">
             <li>
             <li>
                 <a href="{{ _p.web_main }}admin/skill_badge.php">{{ 'Home' | get_lang }}</a>
                 <a href="{{ _p.web_main }}admin/skill_badge.php">{{ 'Home' | get_lang }}</a>
             </li>
             </li>
-            <li class="active">
-                <a href="{{ _p.web_main }}admin/skill_badge_issuer.php">{{ 'IssuerDetails' | get_lang }}</a>
+            <li >
+                <a href="{{ _p.web_main }}admin/skill_badge_list.php">{{ 'IssuerDetails' | get_lang }}</a>
             </li>
             </li>
-            <li>
-                <a href="{{ _p.web_main }}admin/skill_badge_list.php">{{ 'Skills' | get_lang }}</a>
+            <li class="active">
+                <a href="{{ _p.web_main }}admin/skill_badge_help.php">{{ 'Skills' | get_lang }}</a>
             </li>
             </li>
         </ul>
         </ul>
         <div class="tab-content">
         <div class="tab-content">

+ 12 - 15
main/template/default/skill/badge_list.tpl

@@ -1,27 +1,27 @@
 {% extends "default/layout/main.tpl" %}
 {% extends "default/layout/main.tpl" %}
 
 
 {% block body %}
 {% block body %}
-    <div class="span12">
-        <h1 class="page-header">{{ 'Badges' | get_lang }}</h1>
+    <div class="col-md-12">
+        <div class="openbadges-tabs">
         <ul class="nav nav-tabs">
         <ul class="nav nav-tabs">
             <li>
             <li>
                 <a href="{{ _p.web_main }}admin/skill_badge.php">{{ 'Home' | get_lang }}</a>
                 <a href="{{ _p.web_main }}admin/skill_badge.php">{{ 'Home' | get_lang }}</a>
             </li>
             </li>
-            <li>
-                <a href="{{ _p.web_main }}admin/skill_badge_issuer.php">{{ 'IssuerDetails' | get_lang }}</a>
-            </li>
             <li class="active">
             <li class="active">
-                <a href="{{ _p.web_main }}admin/skill_badge_list.php">{{ 'Skills' | get_lang }}</a>
+                <a href="{{ _p.web_main }}admin/skill_badge_list.php">{{ 'Insignias Actuales' | get_lang }}</a>
             </li>
             </li>
         </ul>
         </ul>
+        </div>
         <div class="tab-content">
         <div class="tab-content">
             <div class="tab-pane active">
             <div class="tab-pane active">
+                <div class="openbadges-introduction">
                 {% if not errorMessage is empty %}
                 {% if not errorMessage is empty %}
                     <div class="alert alert-error">
                     <div class="alert alert-error">
                         {{ errorMessage }}
                         {{ errorMessage }}
                     </div>
                     </div>
                 {% endif %}
                 {% endif %}
-                <table class="table table-bordered table-striped">
+                <div class="openbadges-tablet">
+                <table class="table">
                     <thead>
                     <thead>
                         <tr>
                         <tr>
                             <th>{{ 'Name' | get_lang }}</th>
                             <th>{{ 'Name' | get_lang }}</th>
@@ -29,18 +29,13 @@
                             <th>{{ 'Actions' | get_lang }}</th>
                             <th>{{ 'Actions' | get_lang }}</th>
                         </tr>
                         </tr>
                     </thead>
                     </thead>
-                    <tfoot>
-                        <tr>
-                            <th>{{ 'Name' | get_lang }}</th>
-                            <th>{{ 'Description' | get_lang }}</th>
-                            <th>{{ 'Actions' | get_lang }}</th>
-                        </tr>
-                    </tfoot>
                     <tbody>
                     <tbody>
                         {% for skill in skills %}
                         {% for skill in skills %}
                             <tr>
                             <tr>
                                 <td>
                                 <td>
-                                    {% if skill.icon %}
+                                    {% if skill.icon is empty %}
+                                        <img src="{{ 'badges-default.png' | icon(128) }}" width="50" alt="{{ skill.name }}">
+                                    {% else %}
                                         <img src="{{ [_p.web_data, skill.icon] | join('') }}" width="50" alt="{{ skill.name }}">
                                         <img src="{{ [_p.web_data, skill.icon] | join('') }}" width="50" alt="{{ skill.name }}">
                                     {% endif %}
                                     {% endif %}
                                     {{ skill.name }}
                                     {{ skill.name }}
@@ -55,6 +50,8 @@
                         {% endfor %}
                         {% endfor %}
                     </tbody>
                     </tbody>
                 </table>
                 </table>
+                </div>
+                </div>
             </div>
             </div>
         </div>
         </div>
     </div>
     </div>

+ 3 - 3
main/template/default/skill/profile.tpl

@@ -29,8 +29,8 @@
 {% if order_user_list is not null %}
 {% if order_user_list is not null %}
     {% for count, user_list in order_user_list %}
     {% for count, user_list in order_user_list %}
         <div class="page-items-profile">
         <div class="page-items-profile">
-            <div class="row-fluid">
-                <div class="span12">
+            <div class="row">
+                <div class="col-md-12">
                     <h4 class="title-skill">
                     <h4 class="title-skill">
                         {% if count == total_search_skills %}
                         {% if count == total_search_skills %}
                             {{ "CompleteMatch"|get_lang }}
                             {{ "CompleteMatch"|get_lang }}
@@ -45,7 +45,7 @@
                 </div>
                 </div>
             </div>
             </div>
 
 
-            <div class="row-fluid">
+            <div class="row">
                 {% for user in user_list %}
                 {% for user in user_list %}
                     <div class="block-items">
                     <div class="block-items">
                         <div class="border-items">
                         <div class="border-items">

+ 41 - 34
main/template/default/skill/skill_wheel.tpl

@@ -476,38 +476,32 @@ $(document).ready(function() {
 </script>
 </script>
 <div id="page-back">
 <div id="page-back">
 <div class="container-fluid">
 <div class="container-fluid">
-    <div class="row-fluid">
+    <div class="row">
 
 
-        <div class="span3 skill-options">
+        <div class="col-md-3 skill-options">
             <div class="skill-home">
             <div class="skill-home">
                 <a class="btn btn-large btn-block btn-success" href="{{ _p.web }}user_portal.php">{{ "ReturnToCourseList"|get_lang }}</a>
                 <a class="btn btn-large btn-block btn-success" href="{{ _p.web }}user_portal.php">{{ "ReturnToCourseList"|get_lang }}</a>
             </div>
             </div>
-            <!-- Legend -->
-            <div class="legend">
-                <h4 class="title-skill">{{ "Legend"|get_lang }}</h4>
-                <p><span class="label-warning">&nbsp;&nbsp;&nbsp;&nbsp;</span> {{ "SkillsYouCanLearn"|get_lang }}</p>
-                <p><span class="label-important">&nbsp;&nbsp;&nbsp;&nbsp;</span> {{ "SkillsSearchedFor"|get_lang }}</p>
-            </div>
-            <!-- End Legend -->
+
 
 
             <!-- ACCORDION -->
             <!-- ACCORDION -->
 
 
-            <div class="accordion" id="accordion2">
-            <div class="accordion-group">
-                <div class="accordion-heading">
-                    <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">
-                        <h4 class="title-skill">{{ 'SkillsSearch' | get_lang }}</h4>
+            <div class="panel-group" id="accordion2">
+            <div class="panel panel-default">
+                <div class="panel-heading">
+                    <a data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">
+                        {{ 'SkillsSearch' | get_lang }}
                     </a>
                     </a>
                 </div>
                 </div>
-                <div id="collapseOne" class="accordion-body collapse">
-                    <div class="accordion-inner">
+                <div id="collapseOne" class="panel-collapse collapse">
+                    <div class="panel-body">
                         <!-- SEARCH -->
                         <!-- SEARCH -->
                         <div class="search-skill">
                         <div class="search-skill">
                             <p>{{ 'EnterTheSkillNameToSearch' | get_lang }}</p>
                             <p>{{ 'EnterTheSkillNameToSearch' | get_lang }}</p>
                             <form id="skill_search" class="form-search">
                             <form id="skill_search" class="form-search">
                                 <select id="skill_id" name="skill_id" /></select>
                                 <select id="skill_id" name="skill_id" /></select>
                                 <div class="button-skill">
                                 <div class="button-skill">
-                                    <a class="btn btn-block btn-large btn-danger load_root" rel="0" href="#">{{ "ViewSkillsWheel"|get_lang }}</a>
+                                    <a class="btn btn-default btn-block btn-large btn-danger load_root" rel="0" href="#">{{ "ViewSkillsWheel"|get_lang }}</a>
                                     <!-- <a id="clear_selection" class="btn">{{ "Clear"|get_lang }}</a> -->
                                     <!-- <a id="clear_selection" class="btn">{{ "Clear"|get_lang }}</a> -->
                                 </div>
                                 </div>
                                 <ul id="skill_holder" class="holder_simple border"></ul>
                                 <ul id="skill_holder" class="holder_simple border"></ul>
@@ -517,25 +511,25 @@ $(document).ready(function() {
                     </div>
                     </div>
                 </div>
                 </div>
             </div>
             </div>
-            <div class="accordion-group">
-                <div class="accordion-heading">
-                    <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo">
-                        <h4 class="title-skill">{{ 'ProfileSearch'|get_lang }}</h4>
+            <div class="panel panel-default">
+                <div class="panel-heading">
+                    <a data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo">
+                        {{ 'ProfileSearch'|get_lang }}
                     </a>
                     </a>
                 </div>
                 </div>
-                <div id="collapseTwo" class="accordion-body collapse">
-                    <div class="accordion-inner">
+                <div id="collapseTwo" class="panel-collapse collapse">
+                    <div class="panel-body">
                         <!-- SEARCH PROFILE -->
                         <!-- SEARCH PROFILE -->
                         <div class="search-profile-skill">
                         <div class="search-profile-skill">
 
 
                             <p class="description">{{ 'WhatSkillsAreYouLookingFor'|get_lang }}</p>
                             <p class="description">{{ 'WhatSkillsAreYouLookingFor'|get_lang }}</p>
                             <ul id="profile_search" class="holder holder_simple"></ul>
                             <ul id="profile_search" class="holder holder_simple"></ul>
                             <form id="search_profile_form" class="form-search">
                             <form id="search_profile_form" class="form-search">
-                                <input class="btn btn-block" type="submit" value="{{ "SearchProfileMatches"|get_lang }}">
+                                <input class="btn btn-default btn-block" type="submit" value="{{ "SearchProfileMatches"|get_lang }}">
                             </form>
                             </form>
                             <p class="description">{{ 'IsThisWhatYouWereLookingFor'|get_lang }}</p>
                             <p class="description">{{ 'IsThisWhatYouWereLookingFor'|get_lang }}</p>
                             <form id="save_profile_form_button" class="form-search">
                             <form id="save_profile_form_button" class="form-search">
-                                <input class="btn btn-block" type="submit" value="{{ "SaveThisSearch"|get_lang }}">
+                                <input class="btn btn-default btn-block" type="submit" value="{{ "SaveThisSearch"|get_lang }}">
                             </form>
                             </form>
                         </div>
                         </div>
                         <!-- END SEARCH PROFILE-->
                         <!-- END SEARCH PROFILE-->
@@ -543,14 +537,14 @@ $(document).ready(function() {
                     </div>
                     </div>
                 </div>
                 </div>
             </div>
             </div>
-                <div class="accordion-group">
-                    <div class="accordion-heading">
-                        <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseThree">
-                            <h4 class="title-skill">{{ 'DisplayOptions' | get_lang }}</h4>
+                <div class="panel panel-default">
+                    <div class="panel-heading">
+                        <a data-toggle="collapse" data-parent="#accordion2" href="#collapseThree">
+                            {{ 'DisplayOptions' | get_lang }}
                         </a>
                         </a>
                     </div>
                     </div>
-                    <div id="collapseThree" class="accordion-body collapse">
-                        <div class="accordion-inner">
+                    <div id="collapseThree" class="panel-collapse collapse">
+                        <div class="panel-body">
                             <p>{{ 'ChooseABackgroundColor' | get_lang }}</p>
                             <p>{{ 'ChooseABackgroundColor' | get_lang }}</p>
                             <ul>
                             <ul>
                                 <li><a href="#" id="white">{{ 'White' | get_lang }}</a></li>
                                 <li><a href="#" id="white">{{ 'White' | get_lang }}</a></li>
@@ -562,11 +556,24 @@ $(document).ready(function() {
                         </div>
                         </div>
                     </div>
                     </div>
                 </div>
                 </div>
+                <div class="panel panel-default">
+                    <div class="panel-heading">
+                        <a data-toggle="collapse" data-parent="#accordion2" href="#collapseFour">
+                            {{ "Legend"|get_lang }}
+                        </a>
+                    </div>
+                    <div id="collapseFour" class="panel-collapse collapse">
+                        <div class="panel-body">
+                            <p><span class="label-warning">&nbsp;&nbsp;&nbsp;&nbsp;</span> {{ "SkillsYouCanLearn"|get_lang }}</p>
+                            <p><span class="label-important">&nbsp;&nbsp;&nbsp;&nbsp;</span> {{ "SkillsSearchedFor"|get_lang }}</p>
+                        </div>
+                    </div>
+                </div>
             </div>
             </div>
 
 
             <!-- END ACCORDEON -->
             <!-- END ACCORDEON -->
         </div>
         </div>
-        <div id="wheel_container" class="span9">
+        <div id="wheel_container" class="col-md-9">
             <div id="skill_wheel">
             <div id="skill_wheel">
                 <img src="">
                 <img src="">
             </div>
             </div>
@@ -581,7 +588,7 @@ $(document).ready(function() {
             <div class="control-group">            
             <div class="control-group">            
                 <label class="control-label" for="name">{{ 'Name' | get_lang }}</label>            
                 <label class="control-label" for="name">{{ 'Name' | get_lang }}</label>            
                 <div class="controls">
                 <div class="controls">
-                    <input type="text" name="name" id="name" class="span4" />             
+                    <input type="text" name="name" id="name" class="col-md-4" />             
                 </div>
                 </div>
             </div>
             </div>
             
             
@@ -620,7 +627,7 @@ $(document).ready(function() {
             <div class="control-group">            
             <div class="control-group">            
                 <label class="control-label" for="name">{{ 'Description'|get_lang }}</label>            
                 <label class="control-label" for="name">{{ 'Description'|get_lang }}</label>            
                 <div class="controls">
                 <div class="controls">
-                    <textarea name="description" id="description" class="span4" rows="7"></textarea>
+                    <textarea name="description" id="description" class="col-md-4" rows="7"></textarea>
                 </div>
                 </div>
             </div>  
             </div>  
         </fieldset>
         </fieldset>

+ 38 - 29
main/template/default/skill/skill_wheel_student.tpl

@@ -264,8 +264,8 @@ $(document).ready(function() {
 </script>
 </script>
 <div id="page-back">
 <div id="page-back">
     <div class="container-fluid">
     <div class="container-fluid">
-        <div class="row-fluid">
-            <div class="span3 skill-options">
+        <div class="row">
+            <div class="col-md-3 skill-options">
                 <div class="skill-home">
                 <div class="skill-home">
                     <a class="btn btn-large btn-block btn-success" href="{{ _p.web }}user_portal.php">{{ "ReturnToCourseList"|get_lang }}</a>
                     <a class="btn btn-large btn-block btn-success" href="{{ _p.web }}user_portal.php">{{ "ReturnToCourseList"|get_lang }}</a>
                 </div>
                 </div>
@@ -292,25 +292,18 @@ $(document).ready(function() {
                         {% endfor %}
                         {% endfor %}
                     </div>
                     </div>
                 </div>
                 </div>
-                <!-- Legend -->
-                <div class="legend">
-                    <h4 class="title-skill">{{ "Legend"|get_lang }}</h4>
-                    <p><span class="label-info">&nbsp;&nbsp;&nbsp;&nbsp;</span> {{ "SkillsYouAcquired"|get_lang }}</p>
-                    <p><span class="label-warning">&nbsp;&nbsp;&nbsp;&nbsp;</span> {{ "SkillsYouCanLearn"|get_lang }}</p>
-                    <p><span class="label-important">&nbsp;&nbsp;&nbsp;&nbsp;</span> {{ "SkillsSearchedFor"|get_lang }}</p>
-                </div>
-                <!-- End Legend -->
+
                 <!-- ACCORDION -->
                 <!-- ACCORDION -->
                 <div class="accordion" id="accordion2">
                 <div class="accordion" id="accordion2">
                     {% if mySkills is not empty %}
                     {% if mySkills is not empty %}
-                        <div class="accordion-group">
+                        <div class="panel panel-default">
                             <div class="accordion-heading">
                             <div class="accordion-heading">
-                                <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">
-                                    <h4 class="title-skill">{{ 'MySkills'|get_lang }}</h4>
+                                <a   data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">
+                                    {{ 'MySkills'|get_lang }}
                                 </a>
                                 </a>
                             </div>
                             </div>
-                            <div id="collapseOne" class="accordion-body collapse">
-                                <div class="accordion-inner">
+                            <div id="collapseOne" class="panel-collapse collapse">
+                                <div class="panel-body">
                                     <!-- MY SKILLS -->
                                     <!-- MY SKILLS -->
                                     <div id="my_skills" class="skill-items">
                                     <div id="my_skills" class="skill-items">
                                         <ul class="skill-winner">
                                         <ul class="skill-winner">
@@ -326,21 +319,21 @@ $(document).ready(function() {
                             </div>
                             </div>
                         </div>
                         </div>
                     {% endif %}
                     {% endif %}
-                    <div class="accordion-group">
-                        <div class="accordion-heading">
-                            <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo">
-                                <h4 class="title-skill">{{ 'GetNewSkills' | get_lang }}</h4>
+                    <div class="panel panel-default">
+                        <div class="panel-heading">
+                            <a data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo">
+                                {{ 'GetNewSkills' | get_lang }}
                             </a>
                             </a>
                         </div>
                         </div>
-                        <div id="collapseTwo" class="accordion-body collapse">
-                            <div class="accordion-inner">
+                        <div id="collapseTwo" class="panel-collapse collapse">
+                            <div class="panel-body">
                                 <!-- SEARCH -->
                                 <!-- SEARCH -->
                                 <div class="search-skill">
                                 <div class="search-skill">
                                     <p>{{ 'EnterTheSkillNameToSearch' | get_lang }}</p>
                                     <p>{{ 'EnterTheSkillNameToSearch' | get_lang }}</p>
                                     <form id="skill_search" class="form-search">
                                     <form id="skill_search" class="form-search">
                                         <select id="skill_id" name="skill_id" /></select>
                                         <select id="skill_id" name="skill_id" /></select>
                                         <div class="button-skill">
                                         <div class="button-skill">
-                                            <a class="btn btn-block btn-large btn-danger load_root" rel="0" href="#">{{ "ViewSkillsWheel"|get_lang }}</a>
+                                            <a class="btn btn-default btn-block btn-large btn-danger load_root" rel="0" href="#">{{ "ViewSkillsWheel"|get_lang }}</a>
                                             <!-- <a id="clear_selection" class="btn">{{ "Clear"|get_lang }}</a> -->
                                             <!-- <a id="clear_selection" class="btn">{{ "Clear"|get_lang }}</a> -->
                                         </div>
                                         </div>
                                         <ul id="skill_holder" class="holder_simple"></ul>
                                         <ul id="skill_holder" class="holder_simple"></ul>
@@ -356,14 +349,14 @@ $(document).ready(function() {
                             </div>
                             </div>
                         </div>
                         </div>
                     </div>
                     </div>
-                    <div class="accordion-group">
-                        <div class="accordion-heading">
-                            <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseThree">
-                                <h4 class="title-skill">{{ 'DisplayOptions' | get_lang }}</h4>
+                    <div class="panel panel-default">
+                        <div class="panel-heading">
+                            <a data-toggle="collapse" data-parent="#accordion2" href="#collapseThree">
+                                {{ 'DisplayOptions' | get_lang }}
                             </a>
                             </a>
                         </div>
                         </div>
-                        <div id="collapseThree" class="accordion-body collapse">
-                            <div class="accordion-inner">
+                        <div id="collapseThree" class="panel-collapse collapse">
+                            <div class="panel-body">
                                 <p>{{ 'ChooseABackgroundColor' | get_lang }}</p>
                                 <p>{{ 'ChooseABackgroundColor' | get_lang }}</p>
                                 <ul>
                                 <ul>
                                     <li><a href="#" id="white">{{ 'White' | get_lang }}</a></li>
                                     <li><a href="#" id="white">{{ 'White' | get_lang }}</a></li>
@@ -375,10 +368,26 @@ $(document).ready(function() {
                             </div>
                             </div>
                         </div>
                         </div>
                     </div>
                     </div>
+                    <div class="panel panel-default">
+                        <div class="panel-heading">
+                            <a   data-toggle="collapse" data-parent="#accordion2" href="#collapseFour">
+                                {{ "Legend"|get_lang }}
+                            </a>
+                        </div>
+                        <div id="collapseFour" class="panel-collapse collapse">
+                            <div class="panel-body">
+                                <p><span class="label-info">&nbsp;&nbsp;&nbsp;&nbsp;</span> {{ "SkillsYouAcquired"|get_lang }}</p>
+                                <p><span class="label-warning">&nbsp;&nbsp;&nbsp;&nbsp;</span> {{ "SkillsYouCanLearn"|get_lang }}</p>
+                                <p><span class="label-important">&nbsp;&nbsp;&nbsp;&nbsp;</span> {{ "SkillsSearchedFor"|get_lang }}</p>
+                            </div>
+                        </div>
+                    </div>
                 </div>
                 </div>
                 <!-- END ACCORDEON -->
                 <!-- END ACCORDEON -->
+
+
             </div>
             </div>
-            <div id="wheel_container" class="span9">
+            <div id="wheel_container" class="col-md-9">
                 <div id="skill_wheel">
                 <div id="skill_wheel">
                     <img src="">
                     <img src="">
                 </div>
                 </div>

+ 29 - 0
main/template/default/social/add_groups.tpl

@@ -0,0 +1,29 @@
+{% extends template ~ "/layout/layout_1_col.tpl" %}
+
+{% block content %}
+<div class="row">
+    <div class="col-md-3">
+        <div class="social-menu">
+            {{ social_avatar_block }}
+            {{ social_menu_block }}
+        </div>
+    </div>
+    <div id="wallMessages" class="col-md-5" style="min-height:1px">
+        <div class="row">
+            <div class="col-md-12">
+                <div id="message_ajax_reponse" class=""></div>
+            </div>
+        </div>
+        <div class="row">
+            {{ social_right_content}}
+        </div>
+        <div id="display_response_id" class="col-md-5"></div>
+        {{ socialAutoExtendLink }}
+    </div>
+    <div class="col-md-4">
+        <div class="row">
+            {{ socialRightInformation}}
+        </div>
+    </div>
+</div>
+{% endblock %}

+ 29 - 0
main/template/default/social/friends.tpl

@@ -0,0 +1,29 @@
+{% extends template ~ "/layout/layout_1_col.tpl" %}
+
+{% block content %}
+<div class="row">
+    <div class="col-md-3">
+        <div class="social-menu">
+            {{ social_avatar_block }}
+            {{ social_menu_block }}
+        </div>
+    </div>
+    <div id="wallMessages" class="col-md-5" style="min-height:1px">
+        <div class="row">
+            <div class="col-md-12">
+                <div id="message_ajax_reponse" class=""></div>
+            </div>
+        </div>
+        <div class="row">
+            {{ social_right_content}}
+        </div>
+        <div id="display_response_id" class="span5"></div>
+        {{ socialAutoExtendLink }}
+    </div>
+    <div class="col-md-4">
+        <div class="row">
+            {{ socialRightInformation}}
+        </div>
+    </div>
+</div>
+{% endblock %}

+ 29 - 0
main/template/default/social/groups.tpl

@@ -0,0 +1,29 @@
+{% extends template ~ "/layout/layout_1_col.tpl" %}
+
+{% block content %}
+<div class="row">
+    <div class="col-md-3">
+        <div class="social-menu">
+            {{ social_avatar_block }}
+            {{ social_menu_block }}
+        </div>
+    </div>
+    <div id="wallMessages" class="col-md-5" style="min-height:1px">
+        <div class="row">
+            <div class="col-md-12">
+                <div id="message_ajax_reponse" class=""></div>
+            </div>
+        </div>
+        <div class="row">
+            {{ social_right_content}}
+        </div>
+        <div id="display_response_id" class="col-md-5"></div>
+        {{ socialAutoExtendLink }}
+    </div>
+    <div class="col-md-4">
+        <div class="row">
+            {{ socialRightInformation}}
+        </div>
+    </div>
+</div>
+{% endblock %}

+ 24 - 0
main/template/default/social/home.tpl

@@ -0,0 +1,24 @@
+{% extends template ~ "/layout/layout_1_col.tpl" %}
+
+{% block content %}
+    <div class="row">
+        <div class="col-md-3">
+            {{ social_avatar_block }}
+
+            <div class="social-menu">
+            {{ social_menu_block }}
+            </div>
+        </div>
+        <div class="col-md-6">
+            {{ social_search_block }}
+            {{ social_skill_block }}
+            {{ social_group_block }}
+            <div id="message_ajax_reponse" class=""></div>
+            <div id="display_response_id"></div>
+            {{ socialAutoExtendLink }}
+        </div>
+        <div class="col-md-3">
+
+        </div>
+    </div>
+{% endblock %}

+ 15 - 0
main/template/default/social/inbox.tpl

@@ -0,0 +1,15 @@
+{% extends template ~ "/layout/layout_1_col.tpl" %}
+
+{% block content %}
+<div class="row">
+    <div class="col-md-3">
+        <div class="social-menu">
+            {{ social_avatar_block }}
+            {{ social_menu_block }}
+        </div>
+    </div>
+    <div class="col-md-9">
+        {{ social_right_content}}
+    </div>
+</div>
+{% endblock %}

+ 15 - 0
main/template/default/social/invitations.tpl

@@ -0,0 +1,15 @@
+{% extends template ~ "/layout/layout_1_col.tpl" %}
+
+{% block content %}
+<div class="row">
+    <div class="col-md-3">
+        <div class="social-menu">
+            {{ social_avatar_block }}
+            {{ social_menu_block }}
+        </div>
+    </div>
+    <div class="col-md-9">
+        {{ social_invitations_block }}
+    </div>
+</div>
+{% endblock %}

+ 24 - 0
main/template/default/social/myfiles.tpl

@@ -0,0 +1,24 @@
+{% extends template ~ "/layout/layout_1_col.tpl" %}
+
+{% block content %}
+<div class="row">
+    <div class="col-md-3">
+        <div class="social-menu">
+            {{ social_avatar_block }}
+            {{ social_menu_block }}
+        </div>
+    </div>
+    <div id="wallMessages" class="col-md-9" style="min-height:1px">
+        <div class="row">
+            <div class="col-md-12">
+                <div id="message_ajax_reponse" class=""></div>
+            </div>-
+        </div>
+        <div class="row">
+            {{ social_right_content}}
+        </div>
+        <div id="display_response_id" class="col-md-12"></div>
+        {{ socialAutoExtendLink }}
+    </div>
+</div>
+{% endblock %}

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio