diff --git a/main/inc/lib/banner.lib.php b/main/inc/lib/banner.lib.php index 27a478162f..42b18ed970 100644 --- a/main/inc/lib/banner.lib.php +++ b/main/inc/lib/banner.lib.php @@ -465,11 +465,14 @@ function return_breadcrumb($interbreadcrumb, $language_file, $nameTools) { $navigation = array(); // part 1: Course Homepage. If we are in a course then the first breadcrumb is a link to the course homepage // hide_course_breadcrumb the parameter has been added to hide the name of the course, that appeared in the default $interbreadcrumb + $session_name = cut($session_name, MAX_LENGTH_BREADCRUMB); $my_session_name = is_null($session_name) ? '' : ' ('.$session_name.')'; if (!empty($_course) && !isset($_GET['hide_course_breadcrumb'])) { $navigation_item['url'] = $web_course_path . $_course['path'].'/index.php'.(!empty($session_id) ? '?id_session='.$session_id : ''); - + + $course_title = cut($_course['name'], MAX_LENGTH_BREADCRUMB); + switch (api_get_setting('breadcrumbs_course_homepage')) { case 'get_lang': $navigation_item['title'] = Display::img(api_get_path(WEB_CSS_PATH).'home.png', get_lang('CourseHomepageLink')).' '.get_lang('CourseHomepageLink'); @@ -478,13 +481,13 @@ function return_breadcrumb($interbreadcrumb, $language_file, $nameTools) { $navigation_item['title'] = Display::img(api_get_path(WEB_CSS_PATH).'home.png', $_course['official_code']).' '.$_course['official_code']; break; case 'session_name_and_course_title': - $navigation_item['title'] = Display::img(api_get_path(WEB_CSS_PATH).'home.png', $_course['name'].$my_session_name).' '.$_course['name'].$my_session_name; + $navigation_item['title'] = Display::img(api_get_path(WEB_CSS_PATH).'home.png', $_course['name'].$my_session_name).' '.$course_title.$my_session_name; break; default: if (api_get_setting('use_session_mode') == 'true' && api_get_session_id() != -1 ) { - $navigation_item['title'] = Display::img(api_get_path(WEB_CSS_PATH).'home.png', $_course['name'].$my_session_name).' '.$_course['name'].$my_session_name; + $navigation_item['title'] = Display::img(api_get_path(WEB_CSS_PATH).'home.png', $_course['name'].$my_session_name).' '.$course_title.$my_session_name; } else { - $navigation_item['title'] = Display::img(api_get_path(WEB_CSS_PATH).'home.png', $_course['name']).' '.$_course['name']; + $navigation_item['title'] = Display::img(api_get_path(WEB_CSS_PATH).'home.png', $_course['name']).' '.$course_title; } break; } @@ -497,6 +500,7 @@ function return_breadcrumb($interbreadcrumb, $language_file, $nameTools) { */ $navigation[] = $navigation_item; } + // part 2: Interbreadcrumbs. If there is an array $interbreadcrumb defined then these have to appear before the last breadcrumb (which is the tool itself) if (isset($interbreadcrumb) && is_array($interbreadcrumb)) { foreach ($interbreadcrumb as $breadcrumb_step) { @@ -529,9 +533,8 @@ function return_breadcrumb($interbreadcrumb, $language_file, $nameTools) { $navigation_item['title'] = get_lang('Gallery'); } //Fixes breadcrumb title now we applied the Security::remove_XSS and we cut the string depending of the MAX_LENGTH_BREADCRUMB value - if (api_strlen($navigation_item['title']) > MAX_LENGTH_BREADCRUMB) { - $navigation_item['title'] = api_substr($navigation_item['title'], 0, MAX_LENGTH_BREADCRUMB).' ...'; - } + + $navigation_item['title'] = cut($navigation_item['title'], MAX_LENGTH_BREADCRUMB); $navigation_item['title'] = Security::remove_XSS($navigation_item['title']); $navigation[] = $navigation_item; } @@ -551,11 +554,9 @@ function return_breadcrumb($interbreadcrumb, $language_file, $nameTools) { foreach ($navigation as $index => $navigation_info) { if (!empty($navigation_info['title'])) { + if ($navigation_info['url'] == '#') { - - - $final_navigation[$index] = ''.$navigation_info['title'].''; - + $final_navigation[$index] = ''.$navigation_info['title'].''; } else { $final_navigation[$index] = ''.$navigation_info['title'].''; } @@ -592,7 +593,7 @@ function return_breadcrumb($interbreadcrumb, $language_file, $nameTools) { } else { $lis.= Display::tag('li', $home_link); } - $html .= Display::tag('ul',$lis, array('class'=>'breadcrumb')); + $html .= Display::tag('ul', $lis, array('class'=>'breadcrumb')); } return $html ; } \ No newline at end of file diff --git a/main/inc/lib/text.lib.php b/main/inc/lib/text.lib.php index 08102f5155..2ed62c7258 100644 --- a/main/inc/lib/text.lib.php +++ b/main/inc/lib/text.lib.php @@ -563,7 +563,7 @@ function cut($text, $maxchar, $embed = false) { if ($embed) { return ''.api_substr($text, 0, $maxchar).'...'; } - return api_substr($text, 0, $maxchar).'...'; + return api_substr($text, 0, $maxchar).' ...'; } return $text; }