glossary_form.class.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace Glossary;
  3. use Chamilo;
  4. /**
  5. * Form to edit/Create glossary entries.
  6. *
  7. * @license /licence.txt
  8. * @author Laurent Opprecht <laurent@opprecht.info>
  9. */
  10. class GlossaryForm extends \FormValidator
  11. {
  12. /**
  13. *
  14. * @param string $action
  15. * @param \Glossary\Glossary $item
  16. * @return \Glossary\GlossaryForm
  17. */
  18. static function create($action, $item = null)
  19. {
  20. $result = new self('glossary', 'post', $action);
  21. if ($item) {
  22. $result->init($item);
  23. }
  24. return $result;
  25. }
  26. protected $glossary;
  27. function __construct($form_name = 'glossary', $method = 'post', $action = '', $target = '', $attributes = null, $track_submit = true)
  28. {
  29. parent::__construct($form_name, $method, $action, $target, $attributes, $track_submit);
  30. }
  31. /**
  32. *
  33. * @return \Glossary\Glossary
  34. */
  35. public function get_glossary()
  36. {
  37. return $this->glossary;
  38. }
  39. public function set_glossary($value)
  40. {
  41. $this->glossary = $value;
  42. }
  43. /**
  44. *
  45. * @param \Glossary\Glossary $glossary
  46. */
  47. function init($glossary = null)
  48. {
  49. $this->set_glossary($glossary);
  50. $defaults = array();
  51. $defaults['name'] = $glossary->name;
  52. $defaults['description'] = $glossary->description;
  53. $this->add_hidden('c_id', $glossary->c_id);
  54. $this->add_hidden('id', $glossary->id);
  55. $this->add_hidden('session_id', $glossary->session_id);
  56. $this->add_hidden(Request::PARAM_SEC_TOKEN, Access::instance()->get_token());
  57. $form_name = $glossary->id ? get_lang('TermEdit') : get_lang('TermAddNew');
  58. $this->add_header($form_name);
  59. $this->add_textfield('name', get_lang('TermName'), $required = true, array('class' => 'span3'));
  60. $this->add_html_editor('description', get_lang('TermDefinition'), true, array('ToolbarSet' => 'Glossary', 'Width' => '90%', 'Height' => '300'));
  61. $this->add_button('save', get_lang('Save'), array('class' => 'btn save'));
  62. $this->setDefaults($defaults);
  63. }
  64. function update_model()
  65. {
  66. $values = $this->exportValues();
  67. $glossary = $this->get_glossary();
  68. $glossary->name = $values['name'];
  69. $glossary->description = $values['description'];
  70. }
  71. function validate()
  72. {
  73. $result = parent::validate();
  74. if ($result) {
  75. $this->update_model();
  76. }
  77. return $result;
  78. }
  79. }