Instalace: Replikátor formulářových kontejnerů bez composeru
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Nich
- Člen | 49
Potřeboval bych použít tento addon: https://componette.org/search/?… ale bohužel se mi ho nedaří v nette zprovoznit.
Postupoval jsem takto:
- Stáhl jsem si aktuální class soubor z gitHubu: https://github.com/…xtension.php
- Umístil jsem ho do:
/libs/Kdyby/Replicator/DI/ReplicatorExtension.php
- Na konec souboru
libs/autoload.php
jsem umístil tento řádek:
require __DIR__ . '/Kdyby/Replicator/DI/ReplicatorExtension.php';
- Zkusil jsem vytvořit jednoduchý formulář, ale dostávám tuto chybu:
Nette\MemberAccessException
Call to undefined method Nette\Application\UI\Form::addDynamic().
- Zkusil jsem tedy do bootstrap.php dát tohle:
Kdyby\Replicator\Container::register();
ale znovu chyba:
Fatal Error
Class 'Kdyby\Replicator\Container' not found
Můžete mi prosím někdo poradit co dělám špatně? Projekt už mám rozjetej a nechce se mi tam ten composer zapojovat.
(Hello world) formulář vypadá takto:
use Nette\Application\UI\Form;
use Nette\Forms\Container;
protected function createComponentInstallForm() {
$form = new Form();
$form->addText('name', 'Název:');
// jméno, továrnička, výchozí počet
$users = $form->addDynamic('users', function (Container $user) {
// ...
$user->addSubmit('remove', 'Smazat')
->addRemoveOnClick(); // metodu vytváří replicator
}, 1);
$users->addSubmit('add', 'Přidat dalšího člověka')
->addCreateOnClick(); // metodu vytváří replicator
$form->addSubmit('submit', 'Spustit');
$form->onSuccess[] = $this->installFormSubmitted;
return $form;
}
Editoval Nich (19. 4. 2013 18:31)
- Vojtěch Dobeš
- Gold Partner | 1316
Co takto?
Kdyby\Replicator\DI\ReplicatorExtension::register();
Tedy použít tu requirnutou třídu, ne nějakou jinou :).
- Filip Procházka
- Moderator | 4668
Ale ten extension přece vůbec nepotřebuješ, nejdůležitější je třída Replicator\Container
- stáhneš zip
- rozbalíš do libovolné složky, kde na to uvidí robot loader, tedy třeba do libs/Replicator
- v bootstrapu zavoláš
Kdyby\Replicator\Container::register();
- profit