protected function buildForm() { $this->addText('name', 'Name', NULL, 100)->setRequired('Addon must have a name. Really!'); $this->addText('composerFullName', 'Composer name', NULL, 100)->setRequired()->addRule(self::PATTERN, 'Invalid composer name', FormValidators::COMPOSER_NAME_RE)->addRule(array($this->validators, 'isComposerVendorNameProtectionFree'), 'This vendor name is protected')->addRule(array($this->validators, 'isComposerFullNameUnique'), 'This composer name has already been taken.'); $this->addMultiSelect('defaultLicense', 'Default license', $this->licenses->getLicenses(TRUE))->setRequired()->addRule(array($this->validators, 'isLicenseValid'), 'Invalid license identifier.'); $this->addMultiSelect('tags', 'Categories', $this->getCategories())->setRequired(); $this->addText('repository', 'Repository URL', NULL, 500)->addCondition(self::FILLED)->addRule(self::URL); $this->addText('demo', 'Demo URL', NULL, 500)->setType('url')->addCondition(self::FILLED)->addRule(self::URL); $this->addText('shortDescription', 'Short description', NULL, 250)->setRequired(); $this->addTextArea('description', 'Description')->setRequired(); $this->addRadioList('descriptionFormat', 'Description format', $this->descriptionFormats)->setDefaultValue(key($this->descriptionFormats))->setRequired(); }
protected function buildForm() { $this->addText('version', 'Version', NULL, 100)->setRequired()->addRule(array($this->validators, 'isVersionValid'), 'Invalid version.'); $this->addMultiSelect('license', 'License', $this->licenses->getLicenses(TRUE))->setAttribute('class', 'chzn-select')->setRequired()->addRule(array($this->validators, 'isLicenseValid'), 'Invalid license identifier.'); $this->addHidden('how', 'link'); $this->addText('archiveLink', 'Link to ZIP archive')->setRequired()->addRule(self::URL); $license = $this->addon->defaultLicense; if (is_string($license)) { if ($license === 'NOLICENSE') { $license = array(); } else { $license = array_map('trim', explode(',', $license)); } } $this->setDefaults(array('license' => $license)); }
/** * @param string|array * @return \Nette\Utils\Html */ public function processLicenses($licenses) { if (is_string($licenses)) { $licenses = array_map('trim', explode(',', $licenses)); } $container = Html::el(); foreach ($licenses as $license) { if (count($container->getChildren()) > 0) { $container->add(', '); } if ($this->licenses->isValid($license)) { $container->create('a', array('href' => $this->licenses->getUrl($license), 'title' => $this->licenses->getFullName($license)))->setText($license); } else { $container->add($license); } } return $container; }
public function isLicenseValid($license) { return $this->licenseValidator->isValid($license); }