Ejemplo n.º 1
0
 public function __construct($id = null, $method = 'post', $attributes = null, $trackSubmit = true)
 {
     $attributes['action'] = Arr::get($attributes, 'action', \URL::current());
     parent::__construct($id, $method, $attributes, $trackSubmit);
     if (method_exists($this, 'build')) {
         $this->build();
     }
     $this->initValidator();
     $this->addHidden('_token', ['value' => csrf_token()]);
 }
Ejemplo n.º 2
0
 function __construct($id, $method = 'post', $attributes = null, $trackSubmit = false)
 {
     if (!isset($attributes['action'])) {
         $attributes['action'] = Piwik_Url::getCurrentQueryString();
     }
     if (!isset($attributes['name'])) {
         $attributes['name'] = $id;
     }
     parent::__construct($id, $method, $attributes, $trackSubmit);
     $this->init();
 }
Ejemplo n.º 3
0
 public function __construct($id, $values, $action)
 {
     parent::__construct($id);
     $this->naziv = new HTML_QuickForm2_Element_InputText('naziv');
     $this->naziv->setAttribute('size', "100%");
     $this->naziv->setLabel('Naziv:');
     $this->naziv->setValue($values["naziv"]);
     $this->naziv->addRule('required', 'Vnesite naziv.');
     $this->naziv->addRule('regex', 'Pri imenu uporabite le črke, številke, narekovaje ali ločila.', '/^[a-zA-Zšč枊ČĆŽ0-9\'\\"-.,;! ]+$/');
     $this->naziv->addRule('maxlength', 'Ime naj bo krajše od 80 znakov.', 80);
     $this->cena = new HTML_QuickForm2_Element_InputText('cena');
     $this->cena->setAttribute('size', "100%");
     $this->cena->setLabel('Cena:');
     $this->cena->setValue($values["cena"]);
     $this->cena->addRule('required', 'Vnesite ceno.');
     $this->cena->addRule('regex', 'Pri ceni uporabite le številke in piko za decimalne zapise.', '/^[0-9.]+$/');
     $this->cena->addRule('maxlength', 'Cena naj bo krajši od 10 znakov.', 10);
     $this->opis = new HTML_QuickForm2_Element_Textarea('opis');
     $this->opis->setAttribute('rows', 5);
     $this->opis->setAttribute('cols', "98%");
     $this->opis->setLabel('Opis:');
     $this->opis->setValue($values["opis"]);
     $this->opis->addRule('required', 'Vnesite opis.');
     $this->opis->addRule('maxlength', 'Opis naj bo krajši od 250 znakov.', 250);
     if ($action != "profil") {
         $this->aktiven = new HTML_QuickForm2_Element_InputCheckbox('aktiven');
         $this->aktiven->setLabel('Aktiven izdelek:');
         if (isset($values["aktiven"]) && $values["aktiven"] == "da") {
             $this->aktiven->setValue(1);
         }
     }
     $this->gumb = new HTML_QuickForm2_Element_InputSubmit(null);
     if ($action == "dodajanje") {
         $this->gumb->setAttribute('value', 'Ustvari izdelek');
     } elseif ($action == "profil") {
         $this->gumb->setAttribute('value', 'Spremeni');
     } else {
         $this->gumb->setAttribute('value', 'Spremeni izdelek');
     }
     $this->addElement($this->naziv);
     $this->addElement($this->cena);
     $this->addElement($this->opis);
     if ($action != "profil") {
         $this->addElement($this->aktiven);
     }
     $this->addElement($this->gumb);
     $this->addRecursiveFilter('trim');
     $this->addRecursiveFilter('htmlspecialchars');
 }
Ejemplo n.º 4
0
 function __construct($id = null, $attributes = null, $method = 'post')
 {
     $this->addFilter(array(__CLASS__, '_trimArray'));
     if ($id === null) {
         $id = get_class($this);
     }
     if (!$attributes) {
         $attributes = array();
     }
     if (empty($attributes['action'])) {
         $attributes['action'] = preg_replace('/\\?.*/', '', $_SERVER['REQUEST_URI']);
     }
     parent::__construct($id, $method, $attributes, false);
     $this->addElement('hidden', '_save_')->setValue($id);
     $this->init();
 }
Ejemplo n.º 5
0
 function __construct($id = null, $attributes = null, $method = 'post')
 {
     $this->addFilter(array(__CLASS__, '_trimArray'));
     if ($id === null) {
         $id = get_class($this);
     }
     $i = 0;
     $suggestId = $id;
     while (isset(self::$_usedIds[$suggestId])) {
         $suggestId = $id . '-' . ++$i;
     }
     $id = $suggestId;
     self::$_usedIds[$id] = 1;
     if (!$attributes) {
         $attributes = array();
     }
     if (empty($attributes['action'])) {
         $attributes['action'] = preg_replace('/\\?.*/', '', $_SERVER['REQUEST_URI']);
     }
     parent::__construct($id, $method, $attributes, false);
     $this->addElement('hidden', '_save_')->setValue($id);
     $this->init();
 }
Ejemplo n.º 6
0
 public function __construct($id, $values, $action)
 {
     parent::__construct($id);
     $this->ime = new HTML_QuickForm2_Element_InputText('ime');
     $this->ime->setAttribute('size', "100%");
     $this->ime->setLabel('Ime:');
     $this->ime->setValue($values["ime"]);
     $this->ime->addRule('required', 'Vnesite ime.');
     $this->ime->addRule('regex', 'Pri imenu uporabite le črke.', '/^[a-zA-Zšč枊ČĆŽ ]+$/');
     $this->ime->addRule('maxlength', 'Ime naj bo krajše od 50 znakov.', 50);
     $this->priimek = new HTML_QuickForm2_Element_InputText('priimek');
     $this->priimek->setAttribute('size', "100%");
     $this->priimek->setLabel('Priimek:');
     $this->priimek->setValue($values["priimek"]);
     $this->priimek->addRule('required', 'Vnesite priimek.');
     $this->priimek->addRule('regex', 'Pri priimku uporabite le črke.', '/^[a-zA-Zšč枊ČĆŽ\\- ]+$/');
     $this->priimek->addRule('maxlength', 'Priimek naj bo krajši od 50 znakov.', 50);
     $this->mail = new HTML_QuickForm2_Element_InputText('mail');
     $this->mail->setAttribute('size', "100%");
     $this->mail->setLabel('Elektronski naslov:');
     $this->mail->setValue($values["mail"]);
     $this->mail->addRule('required', 'Vnesite elektronski naslov.');
     $this->mail->addRule('callback', 'Vnesite veljaven elektronski naslov.', array('callback' => 'filter_var', 'arguments' => array(FILTER_VALIDATE_EMAIL)));
     $this->uporabnisko_ime = new HTML_QuickForm2_Element_InputText('uporabnisko_ime');
     $this->uporabnisko_ime->setAttribute('size', "100%");
     $this->uporabnisko_ime->setLabel('Uporabniško ime:');
     $this->uporabnisko_ime->setValue($values["uporabnisko_ime"]);
     $this->uporabnisko_ime->addRule('required', 'Vnesite uporabniško ime.');
     $this->uporabnisko_ime->addRule('regex', 'Pri imenu uporabite le črke in številke.', '/^[a-zA-Zšč枊ČĆŽ0-9 ]+$/');
     $this->uporabnisko_ime->addRule('maxlength', 'Ime naj bo krajše od 255 znakov.', 255);
     if ($action == "dodajanje") {
         $this->uporabnisko_ime->addRule('callback', 'Vporabniško ime že obstaja.', 'UsersDB::preveriUpodabniskoImeDodajanje');
     } else {
         $this->uporabnisko_ime->addRule('callback', 'Vporabniško ime že obstaja.', array('callback' => 'UsersDB::preveriUpodabniskoImeSpreminjanje', 'arguments' => array($_SESSION["uname"])));
     }
     $this->geslo = new HTML_QuickForm2_Element_InputPassword('geslo');
     $this->geslo->setLabel('Izberite geslo:');
     $this->geslo->setValue($values["geslo"]);
     $this->geslo->setAttribute('size', "100%");
     $this->geslo->addRule('required', 'Vnesite geslo.');
     $this->geslo->addRule('minlength', 'Geslo naj vsebuje vsaj 6 znakov.', 6);
     $this->geslo->addRule('maxlength', 'Geslo naj bo krajši od 60 znakov.', 60);
     $this->geslo2 = new HTML_QuickForm2_Element_InputPassword('geslo2');
     $this->geslo2->setLabel('Ponovite geslo:');
     $this->geslo2->setValue($values["geslo"]);
     $this->geslo2->setAttribute('size', "100%");
     $this->geslo2->addRule('required', 'Ponovno vpišite izbrano geslo.');
     $this->geslo2->addRule('eq', 'Gesli nista enaki.', $this->geslo);
     // če je oseba stranka more imetu tudi telefon in pošto
     if (isset($values["stranka"])) {
         $this->telefon = new HTML_QuickForm2_Element_InputText('telefon');
         $this->telefon->setAttribute('size', "100%");
         $this->telefon->setLabel('Mobilni telefon:');
         $this->telefon->setValue($values["telefon"]);
         $this->telefon->addRule('required', 'Vnesite telefonsko številko.');
         $this->telefon->addRule('regex', 'Pri telefonski številki uporabite le številke ločene s presledkom (npr. 031 123 456).', '/^(070|051|050|041|040|031) [0-9]{3} [0-9]{3}$/');
         $this->telefon->addRule('maxlength', 'Telefonska številka naj bo krajši od 9 številk in 2 presledka.', 11);
         $this->ulica = new HTML_QuickForm2_Element_InputText('ulica');
         $this->ulica->setAttribute('size', "100%");
         $this->ulica->setLabel('Ulica:');
         $this->ulica->setValue($values["ulica"]);
         $this->ulica->addRule('required', 'Vnesite ulico bivanja.');
         $this->ulica->addRule('regex', 'Pri vnosu ulice uporabite le črke.', '/^[a-zA-Zšč枊ČĆŽ ]+$/');
         $this->ulica->addRule('maxlength', ' naj bo krajši od 75 znakov.', 75);
         $this->stevilka = new HTML_QuickForm2_Element_InputText('stevilka');
         $this->stevilka->setAttribute('size', "100%");
         $this->stevilka->setLabel('Hišna številka:');
         $this->stevilka->setValue($values["stevilka"]);
         $this->stevilka->addRule('required', 'Vnesite hišno številko.');
         $this->stevilka->addRule('regex', 'Pri hišni številki uporabite le številke in črke.', '/^[a-zA-Zšč枊ČĆŽ 0-9 ]+$/');
         $this->stevilka->addRule('maxlength', 'Telefonska številka naj bo krajši od 10 znakov.', 10);
         $this->posta = new HTML_QuickForm2_Element_InputText('posta');
         $this->posta->setAttribute('size', "100%");
         $this->posta->setLabel('Poštna številka');
         $this->posta->setValue($values["posta"]);
         $this->posta->addRule('required', 'Vnesi številko pošte.');
         $this->posta->addRule('regex', 'Le števila med 1000 in 9999.', '/^[1-9][0-9]{3}$/');
         $this->kraj = new HTML_QuickForm2_Element_InputText('kraj');
         $this->kraj->setAttribute('size', "100%");
         $this->kraj->setLabel('Naziv pošte:');
         $this->kraj->setValue($values["kraj"]);
         $this->kraj->addRule('required', 'Vnesi kraj pošte.');
         $this->kraj->addRule('regex', 'Pri kraju uporabite le črke.', '/^[a-zA-Zšč枊ČĆŽ ]+$/');
         $this->kraj->addRule('maxlength', 'Kraj naj bo krajši od 45 znakov.', 45);
     }
     if ($action != "profil" && !isset($values["vloga"])) {
         $this->aktiven = new HTML_QuickForm2_Element_InputCheckbox('aktiven');
         $this->aktiven->setLabel('Aktiven uporabnik:');
         if (isset($values["aktiven"]) && $values["aktiven"] == "da") {
             $this->aktiven->setValue(1);
         }
     }
     if (isset($values["vloga"]) && $values["vloga"] != "stranka") {
         $this->captcha = new HTML_QuickForm2_Element_Captcha_ReCaptcha('captcha[recaptcha]', array('id' => 'captcha_recaptcha'), array('label' => 'Vnesite kodo na sliki', 'public-key' => '6LcKZxUTAAAAANecoxYxMzY9cwN49L1gBUOxUyd4', 'private-key' => '6LcKZxUTAAAAAM_DSAsVlDPEAsALZB2X36pqilgr'));
     }
     $this->gumb = new HTML_QuickForm2_Element_InputSubmit(null);
     if ($action == "dodajanje") {
         if (isset($values["stranka"])) {
             if (isset($values["vloga"]) && $values["vloga"] == "stranka") {
                 $this->gumb->setAttribute('value', 'Registriraj se');
             } else {
                 $this->gumb->setAttribute('value', 'Ustvari stranko');
             }
         } else {
             $this->gumb->setAttribute('value', 'Ustvari prodajalca');
         }
     } elseif ($action == "profil") {
         $this->gumb->setAttribute('value', 'Spremeni');
     } else {
         if (isset($values["stranka"])) {
             $this->gumb->setAttribute('value', 'Spremeni stranko');
         } else {
             $this->gumb->setAttribute('value', 'Spremeni prodajalca');
         }
     }
     $this->addElement($this->ime);
     $this->addElement($this->priimek);
     $this->addElement($this->mail);
     $this->addElement($this->uporabnisko_ime);
     $this->addElement($this->geslo);
     $this->addElement($this->geslo2);
     if (isset($values["stranka"])) {
         //dodajanje atributov, ki so samo za stranko
         $this->addElement($this->telefon);
         $this->addElement($this->ulica);
         $this->addElement($this->stevilka);
         $this->addElement($this->posta);
         $this->addElement($this->kraj);
     }
     if ($action != "profil" && !isset($values["vloga"])) {
         $this->addElement($this->aktiven);
     }
     if (isset($values["vloga"]) && $values["vloga"] != "stranka") {
         $this->addElement($this->captcha);
     }
     $this->addElement($this->gumb);
     $this->addRecursiveFilter('trim');
     $this->addRecursiveFilter('htmlspecialchars');
 }