resource_sequence.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. use Chamilo\CoreBundle\Entity\Sequence;
  4. $cidReset = true;
  5. require_once __DIR__.'/../inc/global.inc.php';
  6. api_protect_global_admin_script();
  7. // setting breadcrumbs
  8. $interbreadcrumb[] = ['url' => 'index.php', 'name' => get_lang('PlatformAdmin')];
  9. $tpl = new Template(get_lang('ResourcesSequencing'));
  10. $sessionListFromDatabase = SessionManager::get_sessions_list();
  11. $sessionList = [];
  12. if (!empty($sessionListFromDatabase)) {
  13. foreach ($sessionListFromDatabase as $sessionItem) {
  14. $sessionList[$sessionItem['id']] = $sessionItem['name'].' ('.$sessionItem['id'].')';
  15. }
  16. }
  17. $formSequence = new FormValidator('sequence_form', 'post', api_get_self(), null, null, 'inline');
  18. $formSequence->addText('name', get_lang('Sequence'), true, ['cols-size' => [3, 8, 1]]);
  19. $formSequence->addButtonCreate(get_lang('AddSequence'), 'submit_sequence', false, ['cols-size' => [3, 8, 1]]);
  20. $em = Database::getManager();
  21. // Add sequence
  22. if ($formSequence->validate()) {
  23. $values = $formSequence->exportValues();
  24. $sequence = new Sequence();
  25. $sequence->setName($values['name']);
  26. $em->persist($sequence);
  27. $em->flush();
  28. header('Location: '.api_get_self());
  29. exit;
  30. }
  31. $selectSequence = new FormValidator('frm_select_delete');
  32. $selectSequence->addHidden('sequence_type', 'session');
  33. $em = Database::getManager();
  34. $sequenceList = $em->getRepository('ChamiloCoreBundle:Sequence')->findAll();
  35. $selectSequence->addSelect(
  36. 'sequence',
  37. get_lang('Sequence'),
  38. $sequenceList,
  39. ['id' => 'sequence_id', 'cols-size' => [3, 7, 2]]
  40. );
  41. if (!empty($sequenceList)) {
  42. $selectSequence->addButtonDelete(get_lang('Delete'));
  43. }
  44. if ($selectSequence->validate()) {
  45. $values = $selectSequence->exportValues();
  46. $sequence = $em->find('ChamiloCoreBundle:Sequence', $values['sequence']);
  47. $em
  48. ->createQuery('DELETE FROM ChamiloCoreBundle:SequenceResource sr WHERE sr.sequence = :seq')
  49. ->execute(['seq' => $sequence]);
  50. $em->remove($sequence);
  51. $em->flush();
  52. Display::addFlash(
  53. Display::return_message(get_lang('Deleted'), 'success')
  54. );
  55. header('Location: '.api_get_self());
  56. exit;
  57. }
  58. $form = new FormValidator('');
  59. $form->addHtml("<div class='col-md-6'>");
  60. $form->addHidden('sequence_type', 'session');
  61. $form->addSelect(
  62. 'sessions',
  63. get_lang('Sessions'),
  64. $sessionList,
  65. ['id' => 'item', 'cols-size' => [4, 7, 1]]
  66. );
  67. $form->addButtonNext(get_lang('UseAsReference'), 'use_as_reference', ['cols-size' => [4, 7, 1]]);
  68. $form->addHtml("</div>");
  69. $form->addHtml("<div class='col-md-6'>");
  70. $form->addSelect(
  71. 'requirements',
  72. get_lang('Requirements'),
  73. $sessionList,
  74. ['id' => 'requirements', 'cols-size' => [3, 7, 2]]
  75. );
  76. $form->addButtonCreate(get_lang('SetAsRequirement'), 'set_requirement', false, ['cols-size' => [3, 7, 2]]);
  77. $form->addHtml("</div>");
  78. $formSave = new FormValidator('');
  79. $formSave->addHidden('sequence_type', 'session');
  80. $formSave->addButton(
  81. 'save_resource',
  82. get_lang('SaveSettings'),
  83. 'floppy-o',
  84. 'success',
  85. null,
  86. null,
  87. ['cols-size' => [1, 10, 1]]
  88. );
  89. $tpl->assign('create_sequence', $formSequence->returnForm());
  90. $tpl->assign('select_sequence', $selectSequence->returnForm());
  91. $tpl->assign('configure_sequence', $form->returnForm());
  92. $tpl->assign('save_sequence', $formSave->returnForm());
  93. $layout = $tpl->get_template('admin/resource_sequence.tpl');
  94. $tpl->display($layout);