Adding new action menu in order to view the session history

skala
Julio Montoya 12 years ago
parent c69667f714
commit 3519c18564
  1. 9
      main/inc/global.inc.php
  2. 4
      main/inc/lib/course.lib.php
  3. 208
      main/inc/lib/page.lib.php
  4. 8
      main/template/default/layout/page_body.tpl
  5. 4
      src/ChamiloLMS/Composer/Tasks.php
  6. 9
      src/ChamiloLMS/Controller/UserPortalController.php

@ -154,8 +154,8 @@ $app['languages_file'] = array();
$app['installed'] = $alreadyInstalled;
//Loading $app settings
require_once __DIR__.'/../../src/ChamiloLMS/Resources/config/prod.php';
//require_once __DIR__.'/../../src/ChamiloLMS/Resources/config/dev.php';
//require_once __DIR__.'/../../src/ChamiloLMS/Resources/config/prod.php';
require_once __DIR__.'/../../src/ChamiloLMS/Resources/config/dev.php';
//Setting HttpCacheService provider in order to use do: $app['http_cache']->run();
/*
@ -339,7 +339,7 @@ $app->register(
//Setting Twig options
$app['twig'] = $app->share(
$app->extend('twig', function ($twig, $app) {
$app->extend('twig', function ($twig) {
$twig->addFilter('get_lang', new Twig_Filter_Function('get_lang'));
$twig->addFilter('get_path', new Twig_Filter_Function('api_get_path'));
$twig->addFilter('get_setting', new Twig_Filter_Function('api_get_setting'));
@ -357,6 +357,9 @@ $app['twig'] = $app->share(
})
);
// Registering Menu extension
$app->register(new \Knp\Menu\Silex\KnpMenuServiceProvider());
//Monolog only available if cache is writable
if (is_writable($app['cache.path'])) {

@ -2927,9 +2927,7 @@ class CourseManager {
return $html;
}
function displayCourses($user_id, $filter, $load_dirs, $getCount, $start = null, $maxPerPage = null) {
static function displayCourses($user_id, $filter, $load_dirs, $getCount, $start = null, $maxPerPage = null) {
// Table definitions
$TABLECOURS = Database :: get_main_table(TABLE_MAIN_COURSE);

@ -248,7 +248,7 @@ class PageController
* @param array Array of attributes to add to the HTML block
* @return string HTML <div> block
* @assert ('a','') != ''
* @todo use the template system
* @todo use the menu builder
*/
public function show_right_block($title, $content, $id, $params = null) {
$app = $this->app;
@ -817,28 +817,30 @@ class PageController
$nbResults = CourseManager::displaySpecialCourses($user_id, $filter, $loadDirs, true);
$html = CourseManager::displaySpecialCourses($user_id, $filter, $loadDirs, false, $start, $this->maxPerPage);
if (!empty($html)) {
$adapter = new FixedAdapter($nbResults, array());
$pagerfanta = new Pagerfanta($adapter);
$pagerfanta->setMaxPerPage($this->maxPerPage); // 10 by default
$pagerfanta->setCurrentPage($page); // 1 by default
$view = new TwitterBootstrapView();
$adapter = new FixedAdapter($nbResults, array());
$pagerfanta = new Pagerfanta($adapter);
$pagerfanta->setMaxPerPage($this->maxPerPage); // 10 by default
$pagerfanta->setCurrentPage($page); // 1 by default
$app = $this->app;
$routeGenerator = function($page) use ($app, $filter) {
return $app['url_generator']->generate('userportal', array(
'filter' => $filter,
'type' => 'courses',
'page' => $page)
);
};
$view = new TwitterBootstrapView();
$pagination = $view->render($pagerfanta, $routeGenerator, array(
'proximity' => 3,
));
$app = $this->app;
$routeGenerator = function($page) use ($app, $filter) {
return $app['url_generator']->generate('userportal', array(
'filter' => $filter,
'type' => 'courses',
'page' => $page)
);
};
return $html.$pagination;
$pagination = $view->render($pagerfanta, $routeGenerator, array(
'proximity' => 3,
));
$html .= $pagination;
}
return $html;
}
/**
@ -864,29 +866,31 @@ class PageController
$nbResults = CourseManager::displayCourses($user_id, $filter, $loadDirs, true);
$html = CourseManager::displayCourses($user_id, $filter, $loadDirs, false, $start, $this->maxPerPage);
if (!empty($html)) {
$adapter = new FixedAdapter($nbResults, array());
$pagerfanta = new Pagerfanta($adapter);
$pagerfanta->setMaxPerPage($this->maxPerPage); // 10 by default
$pagerfanta->setCurrentPage($page); // 1 by default
$view = new TwitterBootstrapView();
$adapter = new FixedAdapter($nbResults, array());
$pagerfanta = new Pagerfanta($adapter);
$pagerfanta->setMaxPerPage($this->maxPerPage); // 10 by default
$pagerfanta->setCurrentPage($page); // 1 by default
$app = $this->app;
$view = new TwitterBootstrapView();
$routeGenerator = function($page) use ($app, $filter) {
return $app['url_generator']->generate('userportal', array(
'filter' => $filter,
'type' => 'courses',
'page' => $page)
);
};
$app = $this->app;
$pagination = $view->render($pagerfanta, $routeGenerator, array(
'proximity' => 3,
));
$routeGenerator = function($page) use ($app, $filter) {
return $app['url_generator']->generate('userportal', array(
'filter' => $filter,
'type' => 'courses',
'page' => $page)
);
};
return $html.$pagination;
$pagination = $view->render($pagerfanta, $routeGenerator, array(
'proximity' => 3,
));
$html .= $pagination;
}
return $html;
}
public function returnSessionsCategories($user_id, $filter, $page)
@ -912,10 +916,9 @@ class PageController
}
$load_directories_preview = api_get_setting('show_documents_preview') == 'true' ? true : false;
$sessions_with_category = $html;
if (is_array($session_categories)) {
if (isset($session_categories) && !empty($session_categories)) {
foreach ($session_categories as $session_category) {
$session_category_id = $session_category['session_category']['id'];
@ -999,42 +1002,82 @@ class PageController
$sessions_with_category .= CourseManager::course_item_parent(CourseManager::course_item_html($params, true), $html_sessions);
}
}
}
$adapter = new FixedAdapter($nbResults, array());
$adapter = new FixedAdapter($nbResults, array());
$pagerfanta = new Pagerfanta($adapter);
$pagerfanta = new Pagerfanta($adapter);
$pagerfanta->setMaxPerPage($this->maxPerPage); // 10 by default
$pagerfanta->setCurrentPage($page); // 1 by default
$pagerfanta->setMaxPerPage($this->maxPerPage); // 10 by default
$pagerfanta->setCurrentPage($page); // 1 by default
$view = new TwitterBootstrapView();
$view = new TwitterBootstrapView();
$app = $this->app;
$routeGenerator = function($page) use ($app, $filter) {
return $app['url_generator']->generate('userportal', array(
'filter' => $filter,
'type' => 'sessioncategories',
'page' => $page)
);
};
$app = $this->app;
$routeGenerator = function($page) use ($app, $filter) {
return $app['url_generator']->generate('userportal', array(
'filter' => $filter,
'type' => 'sessioncategories',
'page' => $page
));
};
$pagination = $view->render($pagerfanta, $routeGenerator, array(
'proximity' => 3,
));
return $sessions_with_category.$pagination;
$pagination = $view->render($pagerfanta, $routeGenerator, array(
'proximity' => 3,
));
$sessions_with_category .= $pagination;
}
return $sessions_with_category;
}
public function returnSessions($user_id, $filter, $page) {
if (empty($user_id)) {
return false;
}
$app = $this->app;
$load_history = (isset($filter) && $filter == 'history') ? true : false;
$loadHistory = (isset($filter) && $filter == 'history') ? true : false;
$app['session_menu'] = function($app) use ($loadHistory) {
$menu = $app['knp_menu.factory']->createItem('root');
$menu->setUri($app['request']->getRequestUri());
$menu->setChildrenAttributes(array(
'class' => 'nav nav-tabs',
'currentClass' => 'active'
));
$current = $menu->addChild(get_lang('Current'), array(
'route' => 'userportal',
'routeParameters' => array(
'filter' => 'current',
'type' => 'sessions'
)
)
);
$history = $menu->addChild(get_lang('HistoryTrainingSession'), array(
'route' => 'userportal',
'routeParameters' => array(
'filter' => 'history',
'type' => 'sessions'
)
)
);
//@todo use URIVoter
if ($loadHistory) {
$history->setCurrent(true);
} else {
$current->setCurrent(true);
}
return $menu;
};
//@todo move this in template
$app['knp_menu.menus'] = array('actions_menu' => 'session_menu');
$start = ($page -1) * $this->maxPerPage;
if ($load_history) {
if ($loadHistory) {
//Load sessions in category in *history*
$nbResults = (int) UserManager::get_sessions_by_category($user_id, true, true, true, null, null, 'no_category');
$session_categories = UserManager::get_sessions_by_category($user_id, true, false, true, $start, $this->maxPerPage, 'no_category');
@ -1046,8 +1089,9 @@ class PageController
$html = null;
//Showing history title
if ($load_history) {
$html .= Display::page_subheader(get_lang('HistoryTrainingSession'));
if ($loadHistory) {
// $html .= Display::page_subheader(get_lang('HistoryTrainingSession'));
if (empty($session_categories)) {
$html .= get_lang('YouDoNotHaveAnySessionInItsHistory');
}
@ -1057,7 +1101,8 @@ class PageController
$sessions_with_no_category = $html;
if (is_array($session_categories)) {
if (isset($session_categories) && !empty($session_categories)) {
foreach ($session_categories as $session_category) {
$session_category_id = $session_category['session_category']['id'];
@ -1123,27 +1168,28 @@ class PageController
}
}
}
}
$adapter = new FixedAdapter($nbResults, array());
$pagerfanta = new Pagerfanta($adapter);
$pagerfanta->setMaxPerPage($this->maxPerPage); // 10 by default
$pagerfanta->setCurrentPage($page); // 1 by default
$view = new TwitterBootstrapView();
$app = $this->app;
$routeGenerator = function($page) use ($app, $filter) {
return $app['url_generator']->generate('userportal', array(
'filter' => $filter,
'type' => 'sessions',
'page' => $page)
);
};
$adapter = new FixedAdapter($nbResults, array());
$pagerfanta = new Pagerfanta($adapter);
$pagerfanta->setMaxPerPage($this->maxPerPage); // 10 by default
$pagerfanta->setCurrentPage($page); // 1 by default
$view = new TwitterBootstrapView();
$app = $this->app;
$routeGenerator = function($page) use ($app, $filter) {
return $app['url_generator']->generate('userportal', array(
'filter' => $filter,
'type' => 'sessions',
'page' => $page)
);
};
$pagination = $view->render($pagerfanta, $routeGenerator, array(
'proximity' => 3,
));
return $sessions_with_no_category.$pagination;
$pagination = $view->render($pagerfanta, $routeGenerator, array(
'proximity' => 3,
));
$sessions_with_no_category .= $pagination;
}
return $sessions_with_no_category;
}
/**

@ -5,15 +5,19 @@
</div>
{% endif %}
{% if actions_menu != '' %}
{{ knp_menu_render('actions_menu', { 'currentClass': 'active'}) }}
{% endif %}
{# Page header #}
{% if header != '' %}
{% if header != '' %}
<div class="page-header">
<h1>{{ header }}</h1>
</div>
{% endif %}
{# Show messages #}
{% if message != '' %}
{% if message != '' %}
<section id="messages">
{{ message}}
</section>

@ -6,10 +6,10 @@ class Tasks
{
public static function postInstall()
{
chmod('../../app/cache', 0777);
/*chmod('../../app/cache', 0777);
chmod('../../app/config', 0777);
chmod('../../app/courses', 0777);
chmod('../../app/logs', 0777);
chmod('../../app/logs', 0777);*/
//chmod('console', 0500);
//exec('php console assetic:dump');
}

@ -55,6 +55,15 @@ class UserPortalController
$app['page_controller']->return_welcome_to_course_block($app['template']);
}
/*
$app['my_main_menu'] = function($app) {
$menu = $app['knp_menu.factory']->createItem('root');
$menu->addChild('Home', array('route' => api_get_path(WEB_CODE_PATH)));
return $menu;
};
$app['knp_menu.menus'] = array('main' => 'my_main_menu');*/
$app['template']->assign('content', $items);
$app['page_controller']->getSectionCourseBlock();

Loading…
Cancel
Save