Polskie wsparcie PrestaShop
PrestaShop => PrestaShop 1.6 => Wątek zaczęty przez: qbas-s w Czerwiec 13, 2016, 04:52:21 pm
-
Dopisałem sobie pewną prostą funkcjonalność która po stronie administratora zapisuje pewne informacje do nowo utworzonej tabeli. Pierwsza kolumna `id` aktualnie jest jako auto increment dlatego pomijam ją w metodzie renderForm().
Aktualnie potrzebuję do kolumny `id` wrzucać konkretne id wcześniej zdefiniowane(więc auto increment zostanie zdjęte)
Edytując rekord działa to
array(
'type' => 'hidden',
'name' => 'id',
'required' => true,
),
jednak nie wiem jak wysłać konkretne id podczas dodawania nowego rekordu. Proszę o pomoc.
-
Szczerze Ci powiem nie widziałem funkcji input w Prescie zapisującej do dwóch pól jednocześnie. Ale dlaczego nie dasz drugi raz hidden w formularzu.
-
chodzi o to, że ten fragment kodu wyżej przy dodawaniu nowego wpisu generuje kod html
<div class="form-group hide">
<input type="hidden" name="id" id="id" value="">
</div>
ja potrzebuję wypełnić wartość value konkretną liczbą. Id to primary key unikalne. Nie musi to się dziać na etapie renderowania formularza(bo i byłoby to niepoprawnie, ale od biedy bym przeżył jeśli nic innego nie znajdę...) może w postProcess() - tylko nie wiem jak
-
ok teoretycznie post process zabiera wartości z getConfigFormValues gdzie w array masz przypisane poszczególne zmienne - najpierw robi update potem pobiera spróbuj tak
-
ok znalazłem wygodny sposób. W module który rozwijam wystarczy sobie extendować templatkę po templatce helpera która nas interesuje i nadpisywać blok który jest do zmodyfikowania(tak ja w twig). Ja sobie zrobiłem tak
{extends file="helpers/form/form.tpl"}
{block name="input_row"}
<div class="form-group{if isset($input.form_group_class)} {$input.form_group_class}{/if}{if $input.type == 'hidden'} hide{/if}"{if $input.name == 'id_state'} id="contains_states"{if !$contains_states} style="display:none;"{/if}{/if}{if isset($tabs) && isset($input.tab)} data-tab-id="{$input.tab}"{/if}>
{if $input.type == 'hidden'}
<input type="hidden" name="{$input.name}" id="{$input.name}" value="{if $fields_value[$input.name]}{$fields_value[$input.name]|escape:'html':'UTF-8'}{else}MyClass::getMyId(){/if}" /> // MyClass::getMyId() lub cokolwiek
{else}
{$smarty.block.parent}
{/if}
</div>
{/block}