RangeSlider – Formularová komponenta
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- duskohu
- Člen | 778
Caute, Urobil som formularovu komponentu postavenu na jQuery UI Slider – Range slider, kedze je to moje prve dielo tohto druhu, poprosil by som o konstruktivnu, ale zhovjevavu kritiku ;-)
- Pridal som custom init js cez data atribut a upravil trosku strukturu pre lepsie stylovanie
Editoval duskohu (13. 7. 2013 1:48)
- kuzma88
- Člen | 15
Prošel jsem to jen zběžně a namísto obecného array:
/** @var array */
protected $value = array();
/** @var array */
protected $range = array();
bych spíš použil něco ve smyslu
/** @var IRange */
protected $value = null;
/** @var IRange */
protected $range = null;
interface IRange
{
function getStart(); // getMin
function setStart(); // setMin
function getEnd(); // getMax
function setEnd(); // setMax
function toArray(); // pokud by bylo potřeba
}
$form->addRangeSlider('rangeSlider', 'Set range', new Range(10, 100));
odpadne tahle celkem šílená kontrola
if (count($range) > 2)
{
throw new InvalidArgumentException('The array $range can contain a maximum two values, max and min.');
}
a
/**
* Is control filled?
* @return bool
*/
public function isFilled()
{
if (empty($this->value[0]) || empty($this->value[1])) {
return FALSE;
}
return TRUE;
}
/**
* Is control filled?
* @return bool
*/
public function isFilled()
{
return !is_null($this->value);
}
a bude to čitelnější a můžeš testovat vstupy zda se jedná o int či decimal a řeší to objekt a ne control.
Jen návrh a nezkoušel jsem implementovat. Určitě jsem něco nedomyslel a chce to ješte poladit :)
Editoval kuzma88 (28. 6. 2013 18:32)