Hvězdička u povinné položky i v HTML
- Tomik
- Nette Evangelist | 485
Tohle je snad jediná věc, která mě u Nette štve z hlediska typografie. Byly tady rady, jak hvězdičku přidat v CSS – ale to není čisté řešení.
Zatím jsem to vyřešil tak, že jsem si podědil
ConventionalRenderer
a změnil metody renderLabel
a
renderControl
. Pokud to tedy někomu pomůže:
<?php
/**
* Renders 'label' part of visual row of controls.
* @param IFormControl
* @return string
*/
public function renderLabel(IFormControl $control)
{
$head = $this->getWrapper('label container');
if ($control instanceof Checkbox || $control instanceof Button) {
return $head->setHtml(' ');
} else {
if ($control->getOption('required')) return $head->setHtml((string) $control->getLabel() . $this->getValue('label suffix') . ' *');
return $head->setHtml((string) $control->getLabel() . $this->getValue('label suffix'));
}
}
/**
* Renders 'control' part of visual row of controls.
* @param IFormControl
* @return string
*/
public function renderControl(IFormControl $control)
{
$body = $this->getWrapper('control container');
if ($this->counter % 2) $body->class($this->getValue('control .odd'), TRUE);
$description = $control->getOption('description');
if ($description instanceof Html) {
$description = ' ' . $control->getOption('description');
} elseif (is_string($description)) {
$description = ' ' . $this->getWrapper('control description')->setText($description);
} else {
$description = '';
}
if ($this->getValue('control errors')) {
$description .= $this->renderErrors($control);
}
if ($control instanceof Checkbox || $control instanceof Button) {
if ($control->getOption('required')) return $body->setHtml((string) $control->getControl() . (string) $control->getLabel() . ' *' . $description);
return $body->setHtml((string) $control->getControl() . (string) $control->getLabel() . $description);
} else {
return $body->setHtml((string) $control->getControl() . $description);
}
}
?>
Otázka na Davida: šlo by toto (popř. v nějaké
čistší formě) zařadit přímo do
ConventionalRenderer
u v distribuci? Nebo to má nějaké
souvislosti, které nevidím a proto to není možné. :)
- Tomik
- Nette Evangelist | 485
_Martin_ napsal(a):
Mám pocit, že v tuto chvíli mají do SVN povolen přístup pouze dva lidé na celém světě, z nichž každý žije na jiném kontinentu, má osobní ochranku a z bytu vychází jen jednou do měsíce, takže jde zcela jistě o nejzabezpečenější systém na světě =)
Mě se jednou stalo, že byli Jakub Vrána i David na jednom místě a byla tam s nima dost podstatná část Nette komunity, takže kdyby to tam teroristi (blíže nespecifikovaná hospoda pod Nuselským mostem) vybombardovali, Nette by šlo ke dnu! :)
- _Martin_
- Generous Backer | 679
Tomik napsal(a):
Mě se jednou stalo, že byli Jakub Vrána i David na jednom místě a byla tam s nima dost podstatná část Nette komunity, takže kdyby to tam teroristi (blíže nespecifikovaná hospoda pod Nuselským mostem) vybombardovali, Nette by šlo ke dnu! :)
A to je přesně ta informace, kvůli které tě v nejbližších minutách navštíví několik luxusně oblečených pánů těžce sportovních postav a zcela nenásilně tě odvedou „do zadu“ – prý kvůli neodkladnému telefonátu…
- Tomik
- Nette Evangelist | 485
_Martin_ napsal(a):
A to je přesně ta informace, kvůli které tě v nejbližších minutách navštíví několik luxusně oblečených pánů těžce sportovních postav a zcela nenásilně tě odvedou „do zadu“ – prý kvůli neodkladnému telefonátu…
Nic takového se nestalo. A prý ani nestane… alespoň to tvrdí ten pán v černém co stojí za mnou a míří na mě.
- David Grudl
- Nette Core | 8218
Vyřešeno v revizi 349.
$renderer->wrappers['control']['requiredsuffix'] = " *";
// nebo
$renderer->wrappers['label']['requiredsuffix'] = " *";