fedesib Posted January 27, 2017 Share Posted January 27, 2017 Hello everybody, I'm developing a multilanguage module and I need to upload a different file for each language. As to the PS documentation about the Form Helper this should work: http://doc.prestashop.com/display/PS16/Using+the+HelperForm+class ... array( 'type' => 'file', 'label' => $this->l('My file'), 'lang' => true, 'name' => 'MULTILANGUAGE_FILE', 'desc' => $this->l('Upload your file') ), ... But it does not: there is a single field for file upload (thus not multilanguage). Any idea about this? Thank you for your time, Federica Link to comment Share on other sites More sharing options...
Juhas0 Posted January 30, 2017 Share Posted January 30, 2017 Hi, take a look at my post. I figured out that I was lacking of language definitions in helper form: https://www.prestashop.com/forums/topic/591124-multilanguage-module/ Link to comment Share on other sites More sharing options...
fedesib Posted January 31, 2017 Author Share Posted January 31, 2017 Hi Juhas0, thanks for your help. I will try your suggestion. Anyway, I think this is something PS crew should fix in the core! Link to comment Share on other sites More sharing options...
zhmedia Posted July 12, 2018 Share Posted July 12, 2018 Solved for anyone still looking for a solution: The form.tpl file must be extended from within the module. Take a look at the ps_banner module to see how it's done. Create the file /modules/{your_module}/views/templates/admin/_configure/helpers/form/form.tpl with the following: {extends file="helpers/form/form.tpl"} {block name="field"} {if $input.type == 'file_lang'} <div class="col-lg-9"> {foreach from=$languages item=language} {if $languages|count > 1} <div class="translatable-field lang-{$language.id_lang}" {if $language.id_lang != $defaultFormLanguage}style="display:none"{/if}> {/if} <div class="form-group"> <div class="col-lg-6"> <input id="{$input.name}_{$language.id_lang}" type="file" name="{$input.name}_{$language.id_lang}" class="hide" /> <div class="dummyfile input-group"> <span class="input-group-addon"><i class="icon-file"></i></span> <input id="{$input.name}_{$language.id_lang}-name" type="text" class="disabled" name="filename" readonly /> <span class="input-group-btn"> <button id="{$input.name}_{$language.id_lang}-selectbutton" type="button" name="submitAddAttachments" class="btn btn-default"> <i class="icon-folder-open"></i> Choose a file </button> </span> </div> </div> {if $languages|count > 1} <div class="col-lg-2"> <button type="button" class="btn btn-default dropdown-toggle" tabindex="-1" data-toggle="dropdown"> {$language.iso_code} <span class="caret"></span> </button> <ul class="dropdown-menu"> {foreach from=$languages item=lang} <li><a href="javascript:hideOtherLanguage({$lang.id_lang});" tabindex="-1">{$lang.name}</a></li> {/foreach} </ul> </div> {/if} </div> <div class="form-group"> {if isset($fields_value[$input.name][$language.id_lang]) && $fields_value[$input.name][$language.id_lang] != ''} <div id="{$input.name}-{$language.id_lang}-images-thumbnails" class="col-lg-12"> <img src="{$uri}img/{$fields_value[$input.name][$language.id_lang]}" class="img-thumbnail"/> </div> {/if} </div> {if $languages|count > 1} </div> {/if} <script> $(document).ready(function(){ $('#{$input.name}_{$language.id_lang}-selectbutton').click(function(e){ $('#{$input.name}_{$language.id_lang}').trigger('click'); }); $('#{$input.name}_{$language.id_lang}').change(function(e){ var val = $(this).val(); var file = val.split(/[\\/]/); $('#{$input.name}_{$language.id_lang}-name').val(file[file.length-1]); }); }); </script> {/foreach} {if isset($input.desc) && !empty($input.desc)} <p class="help-block"> {$input.desc} </p> {/if} </div> {else} {$smarty.block.parent} {/if} {/block} Then in your HelperForm: array( 'type' => 'file_lang', 'label' => $this->l('File'), 'name' => 'field_name', 'lang' => true, ), Take a look at the ps_banner postProcess() function to see how to handle the file upload. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now