Polskie wsparcie PrestaShop

PrestaShop => PrestaShop 1.6 => Wątek zaczęty przez: qbas-s w Czerwiec 13, 2016, 04:52:21 pm

Tytuł: HelperForm / zdefiniowane id
Wiadomość wysłana 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.
Tytuł: Odp: HelperForm / zdefiniowane id
Wiadomość wysłana przez: west w Czerwiec 13, 2016, 04:56:11 pm
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.
Tytuł: Odp: HelperForm / zdefiniowane id
Wiadomość wysłana przez: qbas-s w Czerwiec 13, 2016, 05:04:35 pm
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
Tytuł: Odp: HelperForm / zdefiniowane id
Wiadomość wysłana przez: west w Czerwiec 13, 2016, 06:50:33 pm
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
Tytuł: Odp: HelperForm / zdefiniowane id
Wiadomość wysłana przez: qbas-s w Czerwiec 15, 2016, 12:07:25 pm
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}