Jump to content
PawelTR

Wielojęzyczny formularz

Recommended Posts

Witam,

Mam następujący problem. Chciałbym zrobić zwykłą wtyczkę hello world. Wtyczka w panelu admina powinna mieć formularz z 3 polami tytuł oraz opis ale aby to były pola typu multilanguage, po wpisaniu danych zapis do bazy danych i na końcu chciałbym, aby tekst wpisany w input pojawił się na podstronie w wersji angielskiej /hello-world, a polskiej /czesc. Niestety nie jestem w stanie sobie z tym poradzić.


Zrobiłem sam moduł, instaluje się bez problemu, w konfiguracji wtyczki jestem w stanie utworzyć sobie prosty formularz html, ale nie wiem jak zrobić, aby to był multilanguage i jak później wygląda zapis takiego formularza z polami dla różnych języków?  Pokrótce to chciałbym się dowiedzieć: jak dodać pola typu multilanguage oraz jak takie pola zapisać,  jak wyświetlić te pola w odpowiednim języku.

 

Szukam wszędzie gdzie się da, ale nie mogę nic konkretnego znaleźć i siedzę nad tym wszystkim od wczoraj :(

Share this post


Link to post
Share on other sites

Na mypresta bodajże był faq przy dodawaniu pola tylko nie pamiętam czy była tam opcja multilang, sprawdź. 

Share this post


Link to post
Share on other sites

Hej :)

Dodałem takie pole text z parametrem lang i z tego co widzę, od razu w zakładce translacji mogę dodać tłumaczenia dla formularza :) Czy to na takiej zasadzie ma działać? Ja dodaję pole lang + tłumaczenie, a plugin później odpowiednio wybiera tłumaczenie zależnie od ustawień presty?

Mam jeszcze problem z uzupełnieniem pola domyślną wartością, mam taki formularz:

public function displayForm(){
		$default_lang = (int)Configuration::get('PS_LANG_DEFAULT');

		$fields_form = array();
		$fields_form[0]['form'] = array(
			'legend' => array(
				'title' => $this->l('My module settings')
			),
			'input' => array(
				array(
					'type' => 'text',
					'label' => $this->l('Box Description: '),
					'name' => 'box_description',
					'lang' => true
				)
			),
			'submit' => array(
				'title' => $this->l('Save'),
				'class' => 'btn btn-default pull-right'
			)
		);
		$languages = Language::getLanguages();
		$helper = new HelperForm();

		$helper->name_controller = 'HomepageSettings';
		$helper->token = Tools::getAdminTokenLite('AdminModules');

		$helper->default_form_language = $default_lang;
		$helper->allow_employee_form_lang = $default_lang;
		$helper->languages = $this->context->controller->getLanguages();

		$helper->title = "tester";
		$helper->show_toolbar = true;        // false -> remove toolbar
		$helper->toolbar_scroll = true;      // yes - > Toolbar is always visible on the top of the screen.
		$helper->submit_action = 'homepage_settings';
		$helper->fields_value['box_description'] = "hello";
		return $helper->generateForm($fields_form);
	}

I mam taki problem, że w kodzie jest określone, aby wartość była hello, ale to nie działa zamiast hello pokazuje mi tylko literkę e i nic więcej. W czym tkwi problem? Ostatnia kwestia jak zrobić, aby ten moduł działał w trybie multistore?

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More