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);
}