public function render()
{
$infos = $this->getInfos();
if (empty($infos) or !is_array($infos)) {
return false;
}
$translator = Registry::get('Application')->getServiceManager()->get('MvcTranslator');
$escaper = Registry::get('Application')->getServiceManager()->get('ViewManager')->getHelperManager()->get('escapehtml');
$return = '<dl>';
foreach ($infos as $key => $info) {
if (!empty($this->optionsArray[$key])) {
$return .= sprintf('<dt>%s</dt>', $translator->translate($this->optionsArray[$key]));
if (!is_array($info)) {
$info = array($info);
}
foreach ($info as $value) {
$return .= sprintf('<dd>%s</dd>', $escaper($value));
}
} elseif (!empty($this->optionsString[$key])) {
$return .= sprintf('<dt>%s</dt>', $translator->translate($this->optionsString[$key]));
$return .= sprintf('<dd>%s</dd>', $escaper($info));
} elseif (!empty($this->optionsLinks[$key])) {
$return .= sprintf('<dt>%s</dt>', $translator->translate($this->optionsLinks[$key]));
$return .= sprintf('<dd><a href="%s">%s</a></dd>', $escaper($info), $translator->translate($key));
}
}
return $return .= '</dl>';
}
/** * Init Module form * * @return void */ public function init() { $this->setAttribute('class', 'relative'); $fileInfo = new Info(); $modulesInfos = array(); $options = array('' => 'Select an option'); foreach ($this->getServiceLocator()->get('ModulesList') as $path => $dir) { $options[$dir] = $dir; $configFile = $path . '/module.info'; if ($fileInfo->fromFile($configFile) === true) { $modulesInfos[$dir] = $fileInfo->render(); } } $collection = new ModuleCollection(); $modules = $collection->getModules(); foreach ($modules as $module) { if (in_array($module->getName(), $options)) { unset($options[$module->getName()]); unset($modulesInfos[$module->getName()]); } } $module = new Element\Select('module'); $module->setLabel('Module')->setLabelAttributes(array('class' => 'required')); $module->setAttribute('id', 'module')->setAttribute('class', 'form-control')->setAttribute('modules_info', $modulesInfos)->setValueOptions($options); $this->add($module); $inputFilterFactory = new InputFilterFactory(); $inputFilter = $inputFilterFactory->createInputFilter(array('module' => array('name' => 'module', 'required' => true, 'validators' => array(array('name' => 'not_empty'))))); $this->setInputFilter($inputFilter); }