Jump to content

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

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