Font Awesome v submitu formuláře

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Honza.Mottl
Člen | 104
+
0
-

Ahoj, chtěl bych použít font Awesome v submitu formuláře. Metoda $form->addSubmit mi ale z „ Hledat“ udělá
<input type=„submit“ name=„filter[filter]“ class=„grid-filter“ value=„&#xf002; Hledat“>

Na fóru jsem našel starší radu. Metoda setHtml už ale zřejmě není podporovaná:
$this->addSubmit(‚add‘, ‚Přidat‘)
->getControlPrototype()
->setName(‚button‘)
->setHtml(‚<i class=„fa fa-shopping-cart“></i>‘);

Napadá vás nějaká cesta? Díky.

Honza.Mottl
Člen | 104
+
0
-

Pardon, nenastavil jsem dobře formátování. Tak ještě jednou.

Chtěl bych použít font Awesome v submitu formuláře. Metoda $form->addSubmit mi ale z

"&#xf002; Hledat"

udělá

<input type="submit" name="filter[filter]" class="grid-filter" value="&amp;#xf002; Hledat">

Na fóru jsem našel starší radu. Metoda setHtml už ale zřejmě není podporovaná:

$this->addSubmit('add', 'Přidat')
    ->getControlPrototype()
    ->setName('button')
    ->setHtml('<i class=„fa fa-shopping-cart“></i>');

Napadá vás nějaká cesta jak tam ten ampersand protlačit rep. jinź způsob jak dostat Awesome do submitu? Díky.

David Matějka
Moderator | 6445
+
0
-

setHtml by melo fungovat. co to udela?

Honza.Mottl
Člen | 104
+
0
-

Vyhodí to výjimku:
Nette\MemberAccessException
Call to undefined method Nette\Forms\Controls\SubmitButton::setHtml(), did you mean setHtmlId()?

			if (!isset($form['filter']['filter'])) {
				$form['filter']->addSubmit('filter', $this->translate('Filter'))
					->setHtml('<i class="fa fa-search" aria-hidden="true"></i>');
			}
CZechBoY
Člen | 3608
+
+1
-

Někde se ti vytratilo

->getControlPrototype()
Honza.Mottl
Člen | 104
+
0
-

Díky :) Pomohlo to, výjimka je vyřešena. Teď si ještě pohraju s obsahem html.

Jan Mikeš
Člen | 771
+
+1
-

Pokud vykreslujes rucne, jeste by se ti mohlo zamlouvat toto:

<button n:name="filter">
	<i class="fa fa-search" aria-hidden="true"></i> {_"Filter"}
</button>
Honza.Mottl
Člen | 104
+
0
-

Díky. Tady to nevykresluji ručně. Ale ta rada se mi bude hodit. Teď se pustím do svého prvního ručního formuláře.

Dodělal jsem si do Nextras Datagrid a ikony Awesome. Nejdříve do šablony na stránkování, atm to bylo snadné. Teď už mi to jede i na submity :D

	public function createComponentForm()
	{
		$form = new UI\Form;

		if ($this->filterFormFactory) {
			$form['filter'] = Callback::invoke($this->filterFormFactory);
			if (!isset($form['filter']['filter'])) {
				$form['filter']->addSubmit('filter', '')
								->getControlPrototype()
								->setName('filter')
								->setHtml('<input type="submit" name="filter[filter]" class= "fa-input" value="&#xf002; '
				 							.$this->translate('Filter').'">');
			}
			if (!isset($form['filter']['cancel'])) {
				$form['filter']->addSubmit('cancel', '')
								->getControlPrototype()
								->setName('filter')
								->setHtml('<input type="submit" name="filter[cancel]" class= "fa-input" value="&#xf00d; '
										.$this->translate('Cancel').'">');
			}
.fa-input {
	font-family: FontAwesome, 'Helvetica Neue', Helvetica, Arial, sans-serif;
}