PageRenderTime 43ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/Ip/Internal/Admin/FormHelper.php

https://gitlab.com/x33n/ImpressPages
PHP | 219 lines | 155 code | 44 blank | 20 comment | 3 complexity | 629254bf47ba5eb7b0c66fad66c877c4 MD5 | raw file
  1. <?php
  2. namespace Ip\Internal\Admin;
  3. class FormHelper
  4. {
  5. public static function getLanguageSelectForm()
  6. {
  7. //create form object
  8. $form = new \Ip\Form();
  9. $form->setEnvironment(\Ip\Form::ENVIRONMENT_ADMIN);
  10. $form->addClass('ipsLanguageSelect');
  11. //add text field to form object
  12. $field = new \Ip\Form\Field\Select(
  13. array(
  14. 'name' => 'languageCode',
  15. 'values' => self::getAvailableLocales()
  16. ));
  17. $field->setValue(ipConfig()->adminLocale());
  18. $form->addfield($field);
  19. return $form;
  20. }
  21. protected static function getAvailableLocales()
  22. {
  23. $locales = array();
  24. $translationDirectories = array(
  25. ipFile('Ip/Internal/Translations/translations'),
  26. ipFile('file/translations/original'),
  27. ipFile('file/translations/override')
  28. );
  29. $files = array();
  30. foreach($translationDirectories as $dir) {
  31. if (!is_dir($dir)) {
  32. continue;
  33. }
  34. $files = array_merge($files, scandir($dir));
  35. }
  36. $files = array_unique($files, SORT_STRING);
  37. sort($files);
  38. foreach ($files as $file) {
  39. if (preg_match('/^Ip-admin-([a-z\_A-Z]+)\.json$/', $file, $matches)) {
  40. $locales[] = array($matches[1], strtoupper($matches[1]));
  41. }
  42. }
  43. if (empty($locales)) {
  44. $locales = array(array('en', 'EN'));
  45. }
  46. return $locales;
  47. }
  48. public static function getLoginForm()
  49. {
  50. //create form object
  51. $form = new \Ip\Form();
  52. $form->setEnvironment(\Ip\Form::ENVIRONMENT_ADMIN);
  53. //add text field to form object
  54. $field = new \Ip\Form\Field\Hidden(
  55. array(
  56. 'name' => 'sa',
  57. 'value' => 'Admin.loginAjax', //html "name" attribute
  58. ));
  59. $form->addfield($field);
  60. //add text field to form object
  61. $field = new \Ip\Form\Field\Blank(
  62. array(
  63. 'name' => 'global_error',
  64. ));
  65. $form->addfield($field);
  66. //add text field to form object
  67. $field = new \Ip\Form\Field\Text(
  68. array(
  69. 'name' => 'login', //html "name" attribute
  70. 'label' => __('Username', 'Ip-admin', false)
  71. ));
  72. $field->addValidator('Required');
  73. $form->addField($field);
  74. //add text field to form object
  75. $field = new \Ip\Form\Field\Password(
  76. array(
  77. 'name' => 'password', //html "name" attribute
  78. 'label' => __('Password', 'Ip-admin', false)
  79. ));
  80. $field->addValidator('Required');
  81. $form->addField($field);
  82. //add text field to form object
  83. $field = new \Ip\Form\Field\Submit(
  84. array(
  85. 'value' => __('Login', 'Ip-admin', false)
  86. ));
  87. $field->addClass('ipsLoginButton');
  88. $form->addField($field);
  89. return $form;
  90. }
  91. public static function getPasswordResetForm1()
  92. {
  93. //create form object
  94. $form = new \Ip\Form();
  95. $form->setEnvironment(\Ip\Form::ENVIRONMENT_ADMIN);
  96. //add text field to form object
  97. $field = new \Ip\Form\Field\Hidden(
  98. array(
  99. 'name' => 'sa',
  100. 'value' => 'Admin.passwordResetAjax', //html "name" attribute
  101. ));
  102. $form->addfield($field);
  103. //add text field to form object
  104. $field = new \Ip\Form\Field\Blank(
  105. array(
  106. 'name' => 'global_error',
  107. ));
  108. $form->addfield($field);
  109. //add text field to form object
  110. $field = new \Ip\Form\Field\Text(
  111. array(
  112. 'name' => 'username', //html "name" attribute
  113. 'label' => __('Username or email', 'Ip-admin', false)
  114. ));
  115. $field->addValidator('Required');
  116. $form->addField($field);
  117. //add text field to form object
  118. $field = new \Ip\Form\Field\Submit(
  119. array(
  120. 'value' => __('Reset', 'Ip-admin', false)
  121. ));
  122. $field->addClass('ipsLoginButton');
  123. $form->addField($field);
  124. return $form;
  125. }
  126. public static function getPasswordResetForm2()
  127. {
  128. //create form object
  129. $form = new \Ip\Form();
  130. //add text field to form object
  131. $field = new \Ip\Form\Field\Hidden(
  132. array(
  133. 'name' => 'sa',
  134. 'value' => 'Admin.passwordResetAjax2', //html "name" attribute
  135. ));
  136. $form->addfield($field);
  137. //add text field to form object
  138. $field = new \Ip\Form\Field\Hidden(
  139. array(
  140. 'name' => 'secret',
  141. 'value' => ipRequest()->getQuery('secret', ''), //html "name" attribute
  142. ));
  143. $form->addfield($field);
  144. //add text field to form object
  145. $field = new \Ip\Form\Field\Hidden(
  146. array(
  147. 'name' => 'userId',
  148. 'value' => ipRequest()->getQuery('id', ''), //html "name" attribute
  149. ));
  150. $form->addfield($field);
  151. //add text field to form object
  152. $field = new \Ip\Form\Field\Blank(
  153. array(
  154. 'name' => 'global_error',
  155. ));
  156. $form->addfield($field);
  157. //add text field to form object
  158. $field = new \Ip\Form\Field\Password(
  159. array(
  160. 'name' => 'password', //html "name" attribute
  161. 'label' => __('New password', 'Ip-admin', false)
  162. ));
  163. $field->addValidator('Required');
  164. $form->addField($field);
  165. //add text field to form object
  166. $field = new \Ip\Form\Field\Submit(
  167. array(
  168. 'value' => __('Save', 'Ip-admin', false)
  169. ));
  170. $field->addClass('ipsLoginButton');
  171. $form->addField($field);
  172. $form->addClass('ipsPasswordResetForm2');
  173. return $form;
  174. }
  175. }