Wizard chemistry Call to undefined $form = $this->getForm();

Danny
Člen | 146
+
0
-

Dobrý den,
nainstaloval jsem si composer require webchemistry/forms-wizard dle https://componette.org/…stry/wizard/ ale dostávám tuto chybu.

Call to undefined method App\AdminModule\Components\Wizard\Wizard::getForm()

Konkrétně jde o tohle.

	protected function createStep1(): Form {
		$form = $this->getForm();
	...
	}

Nevim jak jinak bych měl předávat form aby se mi udržel v komponentě. Nevěděl by někdo? Děkuji

Barbarossa
Člen | 74
+
0
-

A dědíš tu třídu Wizard?

class Custom extends WebChemistry\Forms\Controls\Wizard {

	protected function createStep1(): Form {
    	...
	}
}

nicméně můžeš si klidně vytvořit vlastní instanci Form.

protected function createStep1(): Form {
	$form = new Form(); // nebo rovnou z vlastní továrny
}

Editoval Barbarossa (23. 10. 2018 12:46)

Martk
Člen | 651
+
+1
-

getForm na createForm. Opravím dokumentaci

Danny
Člen | 146
+
0
-

Super díky, createForm už funguje :-)

Danny
Člen | 146
+
0
-

@Martk Ahoj můžu se ještě zeptat zda je možnost přes třídu Wizard nějak nacpat data do šablony? Nebo budu muset v presenteru nějak odychovat konkrétní step a setovat to až tam?

Martk
Člen | 651
+
0
-

@Danny aktuální krok získáš takhle:

$wizard->getCurrentStep();

kdyby to šlo přes třídu, tak bys musel udělat pole pro každý krok zvlášť. To už máš lepší udělat toto:

$data = [1 => [...], [...], [...]];

$template->setParameters($data[$wizard->getCurrentStep()]);
Danny
Člen | 146
+
0
-

@Martk
Díky. Mě šlo spíš o to když budu chtít udělat rekapitulaci a v ní vypsat všechny data které sem do té doby nasbíral. Krok před

protected function finish(): void {}

Tak jak sem schopný získat všechny data a předat si je někam do šablony? Z toho co si posílal moc nechápu jak to udělat.
Potřeboval bych v presenteru něco jako:

	public function action()
	{
		$data  = $this->getComponent("wizard")->getValues();
	}

ale v tuhle chvíli se mi vrací null a nejsem schopný se dostat k dattům v session.

Danny
Člen | 146
+
0
-

Tak jsem to nakonec udělal takhle a vytáhl si info rovnou se session a nacpal do šablony

$this->template->data = $session->getSection('wizardwizard')['values'])
Martk
Člen | 651
+
0
-

https://github.com/…c/Facade.php#…

<div n:wizard="wizard">
	{step success}
		{var $values = $wizard->getValues()}
	{/step}
</div>
cafesk8
Člen | 103
+
0
-

Zdravím,

ve všech krocích se mi správně dumpnou hodnoty z wizardu. Problém nastane až v kroce success/finish, kde mám ArrayHash prázdné a právě tam bych potřeboval všechny hodnoty mít vypsané. Presenter a Wizard komponentu mám dle dokumentace.

<div n:wizard="wizard">
	{var $values = $wizard->getValues()}
    {step 1}
        {control $form}
		{dump $values}
    {/step}

    {step 2}
        {control $form}
		{dump $values}
    {/step}

    {step 3}
        {control $form}
		{dump $values}
    {/step}

	{step success}
		{dump $values}
	{/step}
</div>

Martk napsal(a):

https://github.com/…c/Facade.php#…

<div n:wizard="wizard">
	{step success}
		{var $values = $wizard->getValues()}
	{/step}
</div>
Martk
Člen | 651
+
0
-

@cafesk8 Opraveno v masteru https://github.com/…7b71170ff819

cafesk8
Člen | 103
+
0
-

Super, děkuji. Možná otázka mimo, ale kdy to bude dostupné v dev-master i v composer balíčku, abych si komponentu mohl aktualizovat?
https://packagist.org/…forms-wizard#…
Zde vidím aktualizaci poslední 5. 2. 2019.

Díky

EDIT:
Zatím jsem vyřešil v composer.json jako
 require: "webchemistry/forms-wizard": "dev-master#af0551fac7d2f583a9be12c561987b71170ff819"

Martk napsal(a):

@cafesk8 Opraveno v masteru https://github.com/…7b71170ff819

Editoval cafesk8 (5. 6. 2019 15:33)

cafesk8
Člen | 103
+
0
-

No, tak mám bohužel další problém.

V dokumentaci je:

	class Wizard extends Contribute\FormWizard\Wizard {

Zde je tedy jenom překlep Contributte, ale jakmile tímto nahradím původní extends WebChemistry\Forms\Controls\Wizard, tak mi to vyhodí chybu:

"Declaration of Contributte\FormWizard\Wizard::createComponent(string $name): ?Nette\ComponentModel\IComponent should be compatible with Nette\ComponentModel\Container::createComponent($name)"

Říkám si, zda to není verzí Nette, já používám v. 2.4.4. … pokud jsme měl původní extends WebChemistry\Forms\Controls\Wizard a původní composer "webchemistry/forms-wizard": "dev-master" tak to bylo OK.

Jo a ještě jak se píše v dokumentaci na GitHubu, tak composer require contributte/forms-wizard nefunguje, řekl bych že asi proto, že na packagist.org tento balíček zatím není nikterak vedený?

cafesk8 napsal(a):

Super, děkuji. Možná otázka mimo, ale kdy to bude dostupné v dev-master i v composer balíčku, abych si komponentu mohl aktualizovat?
https://packagist.org/…forms-wizard#…
Zde vidím aktualizaci poslední 5. 2. 2019.

Díky

EDIT:
Zatím jsem vyřešil v composer.json jako
 require: "webchemistry/forms-wizard": "dev-master#af0551fac7d2f583a9be12c561987b71170ff819"

Martk napsal(a):

@cafesk8 Opraveno v masteru https://github.com/…7b71170ff819

Editoval cafesk8 (5. 6. 2019 15:54)

Martk
Člen | 651
+
0
-

@cafesk8 Podívám se na ty chyby, cos tu napsal a zítra je opravím

cafesk8
Člen | 103
+
0
-

Zdravím,
zadařilo se? :)

Martk napsal(a):

@cafesk8 Podívám se na ty chyby, cos tu napsal a zítra je opravím

Martk
Člen | 651
+
0
-

https://packagist.org/…forms-wizard

dev-master verze (namespace Contributte) je pro nette 3.0, jestli můžeš tak aktualizuj na nejnovější verzi, jestli ne, tak opravím i verzi 2.0 (namespace WebChemistry).

cafesk8
Člen | 103
+
0
-

Bohužel v projektu používám více komponent, které nejsou 3.0 ready. Takže kdyby šla opravit i ta 2.0 verze. Děkuji mockrát.

Martk napsal(a):

https://packagist.org/…forms-wizard

dev-master verze (namespace Contributte) je pro nette 3.0, jestli můžeš tak aktualizuj na nejnovější verzi, jestli ne, tak opravím i verzi 2.0 (namespace WebChemistry).

cafesk8
Člen | 103
+
0
-

cafesk8 napsal(a):

Bohužel v projektu používám více komponent, které nejsou 3.0 ready. Takže kdyby šla opravit i ta 2.0 verze. Děkuji mockrát.

Martk napsal(a):

https://packagist.org/…forms-wizard

dev-master verze (namespace Contributte) je pro nette 3.0, jestli můžeš tak aktualizuj na nejnovější verzi, jestli ne, tak opravím i verzi 2.0 (namespace WebChemistry).

@Martk: můžu poprosit o ten update 2.x verze na packagist? :) Díky

Martk
Člen | 651
+
0
-

@cafesk8 Promiň za velké zpoždění, ale mám toho teď moc. Je to tam https://github.com/…d/tree/2.0.1