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

/admin-dev/themes/default/template/helpers/form/form.tpl

https://bitbucket.org/marcenuc/prestashop
Smarty Template | 451 lines | 401 code | 10 blank | 40 comment | 76 complexity | d7cb541bf3f8be310215300ebcf52832 MD5 | raw file
Possible License(s): LGPL-2.1, LGPL-3.0
  1. {*
  2. * 2007-2012 PrestaShop
  3. *
  4. * NOTICE OF LICENSE
  5. *
  6. * This source file is subject to the Academic Free License (AFL 3.0)
  7. * that is bundled with this package in the file LICENSE.txt.
  8. * It is also available through the world-wide-web at this URL:
  9. * http://opensource.org/licenses/afl-3.0.php
  10. * If you did not receive a copy of the license and are unable to
  11. * obtain it through the world-wide-web, please send an email
  12. * to license@prestashop.com so we can send you a copy immediately.
  13. *
  14. * DISCLAIMER
  15. *
  16. * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
  17. * versions in the future. If you wish to customize PrestaShop for your
  18. * needs please refer to http://www.prestashop.com for more information.
  19. *
  20. * @author PrestaShop SA <contact@prestashop.com>
  21. * @copyright 2007-2012 PrestaShop SA
  22. * @version Release: $Revision: 8971 $
  23. * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
  24. * International Registered Trademark & Property of PrestaShop SA
  25. *}
  26. {if $show_toolbar}
  27. {include file="toolbar.tpl" toolbar_btn=$toolbar_btn toolbar_scroll=$toolbar_scroll title=$title}
  28. <div class="leadin">{block name="leadin"}{/block}</div>
  29. {/if}
  30. {if isset($fields.title)}<h2>{$fields.title}</h2>{/if}
  31. {block name="defaultForm"}
  32. <form id="{$table}_form" class="defaultForm {$name_controller}" action="{$current}&{if !empty($submit_action)}{$submit_action}=1{/if}&token={$token}" method="post" enctype="multipart/form-data" {if isset($style)}style="{$style}"{/if}>
  33. {if $form_id}
  34. <input type="hidden" name="{$identifier}" id="{$identifier}" value="{$form_id}" />
  35. {/if}
  36. {foreach $fields as $f => $fieldset}
  37. <fieldset id="fieldset_{$f}">
  38. {foreach $fieldset.form as $key => $field}
  39. {if $key == 'legend'}
  40. <legend>
  41. {if isset($field.image)}<img src="{$field.image}" alt="{$field.title|escape:'htmlall':'UTF-8'}" />{/if}
  42. {$field.title}
  43. </legend>
  44. {elseif $key == 'description' && $field}
  45. <p class="description">{$field}</p>
  46. {elseif $key == 'input'}
  47. {foreach $field as $input}
  48. {if $input.type == 'hidden'}
  49. <input type="hidden" name="{$input.name}" id="{$input.name}" value="{$fields_value[$input.name]|escape:'htmlall':'UTF-8'}" />
  50. {else}
  51. {if $input.name == 'id_state'}
  52. <div id="contains_states" {if $contains_states}style="display:none;"{/if}>
  53. {/if}
  54. {block name="label"}
  55. {if isset($input.label)}<label>{$input.label} </label>{/if}
  56. {/block}
  57. {block name="field"}
  58. <div class="margin-form">
  59. {block name="input"}
  60. {if $input.type == 'text' || $input.type == 'tags'}
  61. {if isset($input.lang)}
  62. <div class="translatable">
  63. {foreach $languages as $language}
  64. <div class="lang_{$language.id_lang}" style="display:{if $language.id_lang == $defaultFormLanguage}block{else}none{/if}; float: left;">
  65. {if $input.type == 'tags'}
  66. {literal}
  67. <script type="text/javascript">
  68. $().ready(function () {
  69. var input_id = '{/literal}{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}{literal}';
  70. $('#'+input_id).tagify({addTagPrompt: '{/literal}{l s='Add tag' js=1}{literal}'});
  71. $({/literal}'#{$table}{literal}_form').submit( function() {
  72. $(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
  73. });
  74. });
  75. </script>
  76. {/literal}
  77. {/if}
  78. {assign var='value_text' value=$fields_value[$input.name][$language.id_lang]}
  79. <input type="text"
  80. name="{$input.name}_{$language.id_lang}"
  81. id="{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}"
  82. value="{if isset($input.string_format) && $input.string_format}{$value_text|string_format:$input.string_format|escape:'htmlall':'UTF-8'}{else}{$value_text|escape:'htmlall':'UTF-8'}{/if}"
  83. class="{if $input.type == 'tags'}tagify {/if}{if isset($input.class)}{$input.class}{/if}"
  84. {if isset($input.size)}size="{$input.size}"{/if}
  85. {if isset($input.maxlength)}maxlength="{$input.maxlength}"{/if}
  86. {if isset($input.readonly) && $input.readonly}readonly="readonly"{/if}
  87. {if isset($input.disabled) && $input.disabled}disabled="disabled"{/if}
  88. {if isset($input.autocomplete) && !$input.autocomplete}autocomplete="off"{/if} />
  89. {if !empty($input.hint)}<span class="hint" name="help_box">{$input.hint}<span class="hint-pointer">&nbsp;</span></span>{/if}
  90. </div>
  91. {/foreach}
  92. </div>
  93. {else}
  94. {if $input.type == 'tags'}
  95. {literal}
  96. <script type="text/javascript">
  97. $().ready(function () {
  98. var input_id = '{/literal}{if isset($input.id)}{$input.id}{else}{$input.name}{/if}{literal}';
  99. $('#'+input_id).tagify();
  100. $('#'+input_id).tagify({addTagPrompt: '{/literal}{l s='Add tag'}{literal}'});
  101. $({/literal}'#{$table}{literal}_form').submit( function() {
  102. $(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
  103. });
  104. });
  105. </script>
  106. {/literal}
  107. {/if}
  108. {assign var='value_text' value=$fields_value[$input.name]}
  109. <input type="text"
  110. name="{$input.name}"
  111. id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
  112. value="{if isset($input.string_format) && $input.string_format}{$value_text|string_format:$input.string_format|escape:'htmlall':'UTF-8'}{else}{$value_text|escape:'htmlall':'UTF-8'}{/if}"
  113. class="{if $input.type == 'tags'}tagify {/if}{if isset($input.class)}{$input.class}{/if}"
  114. {if isset($input.size)}size="{$input.size}"{/if}
  115. {if isset($input.maxlength)}maxlength="{$input.maxlength}"{/if}
  116. {if isset($input.class)}class="{$input.class}"{/if}
  117. {if isset($input.readonly) && $input.readonly}readonly="readonly"{/if}
  118. {if isset($input.disabled) && $input.disabled}disabled="disabled"{/if}
  119. {if isset($input.autocomplete) && !$input.autocomplete}autocomplete="off"{/if} />
  120. {if isset($input.suffix)}{$input.suffix}{/if}
  121. {if !empty($input.hint)}<span class="hint" name="help_box">{$input.hint}<span class="hint-pointer">&nbsp;</span></span>{/if}
  122. {/if}
  123. {elseif $input.type == 'select'}
  124. {if isset($input.options.query) && !$input.options.query && isset($input.empty_message)}
  125. {$input.empty_message}
  126. {$input.required = false}
  127. {$input.desc = null}
  128. {else}
  129. <select name="{$input.name}" class="{if isset($input.class)}{$input.class}{/if}"
  130. id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
  131. {if isset($input.multiple)}multiple="multiple" {/if}
  132. {if isset($input.size)}size="{$input.size}"{/if}
  133. {if isset($input.onchange)}onchange="{$input.onchange}"{/if}>
  134. {if isset($input.options.default)}
  135. <option value="{$input.options.default.value}">{$input.options.default.label}</option>
  136. {/if}
  137. {if isset($input.options.optiongroup)}
  138. {foreach $input.options.optiongroup.query AS $optiongroup}
  139. <optgroup label="{$optiongroup[$input.options.optiongroup.label]}">
  140. {foreach $optiongroup[$input.options.options.query] as $option}
  141. <option value="{$option[$input.options.options.id]}"
  142. {if isset($input.multiple)}
  143. {foreach $fields_value[$input.name] as $field_value}
  144. {if $field_value == $option[$input.options.options.id]}selected="selected"{/if}
  145. {/foreach}
  146. {else}
  147. {if $fields_value[$input.name] == $option[$input.options.options.id]}selected="selected"{/if}
  148. {/if}
  149. >{$option[$input.options.options.name]}</option>
  150. {/foreach}
  151. </optgroup>
  152. {/foreach}
  153. {else}
  154. {foreach $input.options.query AS $option}
  155. {if is_object($option)}
  156. <option value="{$option->$input.options.id}"
  157. {if isset($input.multiple)}
  158. {foreach $fields_value[$input.name] as $field_value}
  159. {if $field_value == $option->$input.options.id}
  160. selected="selected"
  161. {/if}
  162. {/foreach}
  163. {else}
  164. {if $fields_value[$input.name] == $option->$input.options.id}
  165. selected="selected"
  166. {/if}
  167. {/if}
  168. >{$option->$input.options.name}</option>
  169. {else}
  170. <option value="{$option[$input.options.id]}"
  171. {if isset($input.multiple)}
  172. {foreach $fields_value[$input.name] as $field_value}
  173. {if $field_value == $option[$input.options.id]}
  174. selected="selected"
  175. {/if}
  176. {/foreach}
  177. {else}
  178. {if $fields_value[$input.name] == $option[$input.options.id]}
  179. selected="selected"
  180. {/if}
  181. {/if}
  182. >{$option[$input.options.name]}</option>
  183. {/if}
  184. {/foreach}
  185. {/if}
  186. </select>
  187. {if !empty($input.hint)}<span class="hint" name="help_box">{$input.hint}<span class="hint-pointer">&nbsp;</span></span>{/if}
  188. {/if}
  189. {elseif $input.type == 'radio'}
  190. {foreach $input.values as $value}
  191. <input type="radio" name="{$input.name}"id="{$value.id}" value="{$value.value|escape:'htmlall':'UTF-8'}"
  192. {if $fields_value[$input.name] == $value.value}checked="checked"{/if}
  193. {if isset($input.disabled) && $input.disabled}disabled="disabled"{/if} />
  194. <label {if isset($input.class)}class="{$input.class}"{/if} for="{$value.id}">
  195. {if isset($input.is_bool) && $input.is_bool == true}
  196. {if $value.value == 1}
  197. <img src="../img/admin/enabled.gif" alt="{$value.label}" title="{$value.label}" />
  198. {else}
  199. <img src="../img/admin/disabled.gif" alt="{$value.label}" title="{$value.label}" />
  200. {/if}
  201. {else}
  202. {$value.label}
  203. {/if}
  204. </label>
  205. {if isset($input.br) && $input.br}<br />{/if}
  206. {if isset($value.p) && $value.p}<p>{$value.p}</p>{/if}
  207. {/foreach}
  208. {elseif $input.type == 'textarea'}
  209. {if isset($input.lang)}
  210. <div class="translatable">
  211. {foreach $languages as $language}
  212. <div class="lang_{$language.id_lang}" id="{$input.name}_{$language.id_lang}" style="display:{if $language.id_lang == $defaultFormLanguage}block{else}none{/if}; float: left;">
  213. <textarea cols="{$input.cols}" rows="{$input.rows}" name="{$input.name}_{$language.id_lang}" {if isset($input.autoload_rte) && $input.autoload_rte}class="rte autoload_rte {if isset($input.class)}{$input.class}{/if}"{/if} >{$fields_value[$input.name][$language.id_lang]|escape:'htmlall':'UTF-8'}</textarea>
  214. </div>
  215. {/foreach}
  216. </div>
  217. {else}
  218. <textarea name="{$input.name}" id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}" cols="{$input.cols}" rows="{$input.rows}" {if isset($input.autoload_rte) && $input.autoload_rte}class="rte autoload_rte {if isset($input.class)}{$input.class}{/if}"{/if}>{$fields_value[$input.name]|escape:'htmlall':'UTF-8'}</textarea>
  219. {/if}
  220. {elseif $input.type == 'checkbox'}
  221. {foreach $input.values.query as $value}
  222. {assign var=id_checkbox value=$input.name|cat:'_'|cat:$value[$input.values.id]}
  223. <input type="checkbox"
  224. name="{$id_checkbox}"
  225. id="{$id_checkbox}"
  226. class="{if isset($input.class)}{$input.class}{/if}"
  227. {if isset($value.val)}value="{$value.val|escape:'htmlall':'UTF-8'}"{/if}
  228. {if isset($fields_value[$id_checkbox]) && $fields_value[$id_checkbox]}checked="checked"{/if} />
  229. <label for="{$id_checkbox}" class="t"><strong>{$value[$input.values.name]}</strong></label><br />
  230. {/foreach}
  231. {elseif $input.type == 'file'}
  232. {if isset($input.display_image) && $input.display_image}
  233. {if isset($fields_value.image) && $fields_value.image}
  234. <div id="image">
  235. {$fields_value.image}
  236. <p align="center">{l s='File size'} {$fields_value.size}kb</p>
  237. <a href="{$current}&{$identifier}={$form_id}&token={$token}&deleteImage=1">
  238. <img src="../img/admin/delete.gif" alt="{l s='Delete'}" /> {l s='Delete'}
  239. </a>
  240. </div><br />
  241. {/if}
  242. {/if}
  243. <input type="file" name="{$input.name}" {if isset($input.id)}id="{$input.id}"{/if} />
  244. {if !empty($input.hint)}<span class="hint" name="help_box">{$input.hint}<span class="hint-pointer">&nbsp;</span></span>{/if}
  245. {elseif $input.type == 'password'}
  246. <input type="password"
  247. name="{$input.name}"
  248. size="{$input.size}"
  249. class="{if isset($input.class)}{$input.class}{/if}"
  250. value=""
  251. {if isset($input.autocomplete) && !$input.autocomplete}autocomplete="off"{/if} />
  252. {elseif $input.type == 'birthday'}
  253. {foreach $input.options as $key => $select}
  254. <select name="{$key}" class="{if isset($input.class)}{$input.class}{/if}">
  255. <option value="">-</option>
  256. {if $key == 'months'}
  257. {*
  258. This comment is useful to the translator tools /!\ do not remove them
  259. {l s='January'}
  260. {l s='February'}
  261. {l s='March'}
  262. {l s='April'}
  263. {l s='May'}
  264. {l s='June'}
  265. {l s='July'}
  266. {l s='August'}
  267. {l s='September'}
  268. {l s='October'}
  269. {l s='November'}
  270. {l s='December'}
  271. *}
  272. {foreach $select as $k => $v}
  273. <option value="{$k}" {if $k == $fields_value[$key]}selected="selected"{/if}>{l s=$v}</option>
  274. {/foreach}
  275. {else}
  276. {foreach $select as $v}
  277. <option value="{$v}" {if $v == $fields_value[$key]}selected="selected"{/if}>{$v}</option>
  278. {/foreach}
  279. {/if}
  280. </select>
  281. {/foreach}
  282. {elseif $input.type == 'group'}
  283. {assign var=groups value=$input.values}
  284. {include file='helpers/form/form_group.tpl'}
  285. {elseif $input.type == 'shop'}
  286. {$input.html}
  287. {elseif $input.type == 'categories'}
  288. {include file='helpers/form/form_category.tpl' categories=$input.values}
  289. {elseif $input.type == 'categories_select'}
  290. {$input.category_tree}
  291. {elseif $input.type == 'asso_shop' && isset($asso_shop) && $asso_shop}
  292. {$asso_shop}
  293. {elseif $input.type == 'color'}
  294. <input type="color"
  295. size="{$input.size}"
  296. data-hex="true"
  297. {if isset($input.class)}class="{$input.class}"
  298. {else}class="color mColorPickerInput"{/if}
  299. name="{$input.name}"
  300. class="{if isset($input.class)}{$input.class}{/if}"
  301. value="{$fields_value[$input.name]|escape:'htmlall':'UTF-8'}" />
  302. {elseif $input.type == 'date'}
  303. <input type="text"
  304. size="{$input.size}"
  305. data-hex="true"
  306. {if isset($input.class)}class="{$input.class}"
  307. {else}class="datepicker"{/if}
  308. name="{$input.name}"
  309. value="{$fields_value[$input.name]|escape:'htmlall':'UTF-8'}" />
  310. {elseif $input.type == 'free'}
  311. {$fields_value[$input.name]}
  312. {/if}
  313. {if isset($input.required) && $input.required && $input.type != 'radio'} <sup>*</sup>{/if}
  314. {/block}{* end block input *}
  315. {block name="description"}
  316. {if isset($input.desc)}
  317. <p class="preference_description">
  318. {if is_array($input.desc)}
  319. {foreach $input.desc as $p}
  320. {if is_array($p)}
  321. <span id="{$p.id}">{$p.text}</span><br />
  322. {else}
  323. {$p}<br />
  324. {/if}
  325. {/foreach}
  326. {else}
  327. {$input.desc}
  328. {/if}
  329. </p>
  330. {/if}
  331. {/block}
  332. {if isset($input.lang) && isset($languages)}<div class="clear"></div>{/if}
  333. </div>
  334. <div class="clear"></div>
  335. {/block}{* end block field *}
  336. {if $input.name == 'id_state'}
  337. </div>
  338. {/if}
  339. {/if}
  340. {/foreach}
  341. {hook h='displayAdminForm'}
  342. {if isset($name_controller)}
  343. {capture name=hookName assign=hookName}display{$name_controller|ucfirst}Form{/capture}
  344. {hook h=$hookName}
  345. {elseif isset($smarty.get.controller)}
  346. {capture name=hookName assign=hookName}display{$smarty.get.controller|ucfirst|htmlentities}Form{/capture}
  347. {hook h=$hookName}
  348. {/if}
  349. {elseif $key == 'submit'}
  350. <div class="margin-form">
  351. <input type="submit"
  352. id="{if isset($field.id)}{$field.id}{else}{$table}_form_submit_btn{/if}"
  353. value="{$field.title}"
  354. name="{if isset($field.name)}{$field.name}{else}{$submit_action}{/if}{if isset($field.stay) && $field.stay}AndStay{/if}"
  355. {if isset($field.class)}class="{$field.class}"{/if} />
  356. </div>
  357. {elseif $key == 'desc'}
  358. <p class="clear">
  359. {if is_array($field)}
  360. {foreach $field as $k => $p}
  361. {if is_array($p)}
  362. <span id="{$p.id}">{$p.text}</span><br />
  363. {else}
  364. {$p}
  365. {if isset($field[$k+1])}<br />{/if}
  366. {/if}
  367. {/foreach}
  368. {else}
  369. {$field}
  370. {/if}
  371. </p>
  372. {/if}
  373. {block name="other_input"}{/block}
  374. {/foreach}
  375. {if $required_fields}
  376. <div class="small"><sup>*</sup> {l s='Required field'}</div>
  377. {/if}
  378. </fieldset>
  379. {block name="other_fieldsets"}{/block}
  380. {if isset($fields[$f+1])}<br />{/if}
  381. {/foreach}
  382. </form>
  383. {/block}
  384. {block name="after"}{/block}
  385. {if isset($tinymce) && $tinymce}
  386. <script type="text/javascript">
  387. var iso = '{$iso}';
  388. var pathCSS = '{$smarty.const._THEME_CSS_DIR_}';
  389. var ad = '{$ad}';
  390. $(document).ready(function(){
  391. {block name="autoload_tinyMCE"}
  392. tinySetup({
  393. editor_selector :"autoload_rte",
  394. theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull|cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,undo,redo",
  395. theme_advanced_buttons2 : "link,unlink,anchor,image,cleanup,code,|,forecolor,backcolor,|,hr,removeformat,visualaid,|,charmap,media,|,ltr,rtl,|,fullscreen",
  396. theme_advanced_buttons3 : "",
  397. theme_advanced_buttons4 : ""
  398. });
  399. {/block}
  400. });
  401. </script>
  402. {/if}
  403. {if $firstCall}
  404. <script type="text/javascript">
  405. var module_dir = '{$smarty.const._MODULE_DIR_}';
  406. var id_language = {$defaultFormLanguage};
  407. var languages = new Array();
  408. var vat_number = {if $vat_number}1{else}0{/if};
  409. // Multilang field setup must happen before document is ready so that calls to displayFlags() to avoid
  410. // precedence conflicts with other document.ready() blocks
  411. {foreach $languages as $k => $language}
  412. languages[{$k}] = {
  413. id_lang: {$language.id_lang},
  414. iso_code: '{$language.iso_code}',
  415. name: '{$language.name}',
  416. is_default: '{$language.is_default}'
  417. };
  418. {/foreach}
  419. // we need allowEmployeeFormLang var in ajax request
  420. allowEmployeeFormLang = {$allowEmployeeFormLang};
  421. displayFlags(languages, id_language, allowEmployeeFormLang);
  422. $(document).ready(function() {
  423. {if isset($fields_value.id_state)}
  424. if ($('#id_country') && $('#id_state'))
  425. {
  426. ajaxStates({$fields_value.id_state});
  427. $('#id_country').change(function() {
  428. ajaxStates();
  429. });
  430. }
  431. {/if}
  432. if ($(".datepicker").length > 0)
  433. $(".datepicker").datepicker({
  434. prevText: '',
  435. nextText: '',
  436. dateFormat: 'yy-mm-dd'
  437. });
  438. });
  439. {block name="script"}{/block}
  440. </script>
  441. {/if}