public function generate(\VisioCrudModeler\Generator\ParamsInterface $params) { $this->params = $params; $descriptor = $this->params->getParam("descriptor"); if (!$descriptor instanceof \VisioCrudModeler\Descriptor\ListGeneratorInterface) { return; } $camelCaseToSeparator = new CamelCaseToSeparator('-'); $moduleName = strtolower($this->params->getParam("moduleName")); @mkdir($this->moduleRoot() . "/view/", 0777); $viewClassFilePath = $this->moduleRoot() . "/view/" . strtolower($camelCaseToSeparator->filter($this->params->getParam("moduleName"))); @mkdir($viewClassFilePath, 0777); foreach ($descriptor->listGenerator() as $name => $dataSet) { $className = $this->underscoreToCamelCase->filter($name); $viewName = strtolower($camelCaseToSeparator->filter($className)); $viewFilePath = $this->moduleRoot() . "/view/" . $moduleName . "/" . $viewName; @mkdir($viewFilePath, 0777); $this->generateView($viewName, $viewFilePath, $moduleName); $this->console(sprintf('writing generated view for "%s" table', $viewName)); } }
/** * returns values map for template according to given dataSet * * @param DataSetDescriptorInterface $dataSet * @return array */ protected function prepareTemplateSubstitutionData(DataSetDescriptorInterface $dataSet) { $name = $dataSet->getName(); $data = array(); if ($this->params->getParam('runtimeConfiguration') instanceof Config) { $runtime = (array) $this->params->getParam('runtimeConfiguration')->toArray(); $data['%table%'] = $runtime['model'][$name]['table']; $data['%model%'] = $runtime['model'][$name]['model']; $data['%form%'] = $runtime['form'][$name]['form']; $data['%filter%'] = $runtime['inputFilter'][$name]['filter']; $data['%grid%'] = $runtime['form'][$name]['grid']; $data['%filteredModule%'] = strtolower($this->params->getParam('moduleName')); $data['%filteredController%'] = strtolower($this->camelCasToSeparator->filter($this->underscoreToCamelCase->filter($dataSet->getName()))); $data['%adapterKey%'] = $this->params->getParam('adapterServiceKey'); } return $data; }
/** * @param $name * @param $type * @return string */ private function createControl($name, $type, $length = 0, $isPrimary = false) { $isForeign = !$isPrimary && strpos($name, 'Id') && $type == 'int'; $toCamelCase = new UnderscoreToCamelCase(); $var = lcfirst($toCamelCase->filter($name)); $toSeperator = new CamelCaseToSeparator(array(" ")); $label = $toSeperator->filter($toCamelCase->filter($name)); $code = ''; if ($isPrimary) { $code .= "\t\${$var} = new Element\\Hidden('{$name}');\n"; } else { if ($isForeign) { $code .= "\t\${$var} = new Element\\Select('{$name}');\n"; $code .= "\t\${$var}->setAttribute('class', 'form-control');\n"; } else { if (in_array($type, $this->typeNum) || in_array($type, $this->typeFloat)) { $code .= "\t\${$var} = new Element\\Number('{$name}');\n"; if (in_array($type, $this->typeNum)) { $code .= "\t\${$var}->setAttributes(array(\n"; $code .= "\t\t'min' => '0',\n"; $code .= "\t\t'max' => '99999999999',\n"; $code .= "\t\t'step' => '1',\n"; $code .= "\t));\n"; } elseif (in_array($type, $this->typeNum)) { $code .= "\t\${$var}->setAttributes(array(\n"; $code .= "\t\t'min' => '0',\n"; $code .= "\t\t'max' => '99999999999',\n"; $code .= "\t\t'step' => '0.5',\n"; $code .= "\t));\n"; } } else { if (in_array($type, $this->typeDate)) { $code .= "\t\${$var} = new Element\\Date('{$name}');\n"; $code .= "\t\${$var}->setAttributes(array(\n"; $code .= "\t\t'allowPastDates' => true,\n"; $code .= "\t\t'momentConfig' => array('format' => 'YYYY-MM-DD'),\n"; $code .= "\t));\n"; } else { if ($length >= 500) { $code .= "\t" . '$' . $var . " = new Element\\Textarea('{$name}');\n"; } else { $code .= "\t" . '$' . $var . " = new Element\\Text('{$name}');\n"; } $code .= "\t\${$var}->setAttribute('class', 'form-control');\n"; } } } } if (!$isPrimary) { $code .= "\t\${$var}->setLabel('{$label}');\n"; } $code .= "\t\$form->add(\${$var});\n"; return $code; }
/** * Add given columns to the grid * * @param array $columns array of columns * * @return \SynergyDataGrid\Grid\GridType\BaseGrid */ public function addColumns($columns = array()) { $nameFilter = new CamelCaseToSeparator(); if (is_array($columns) && count($columns)) { foreach ($columns as $column) { $title = ucwords($nameFilter->filter($column['name'])); $this->addColumn($title, $column); } $this->setColNames($this->_columns); $this->setColModel($this->_columns); } return $this; }
protected function generateViews() { $oViewGenerator = $this->getDi()->get('ZeDoGenerator\\Service\\Generators\\ViewGenerator'); $oViewGenerator->setMetadata($this->getMetadata()[0]); $oViewGenerator->setRoute($this->getNamespace()); //setting correct syntax $filter = new CamelCaseToSeparator('-'); $sFilteredNamespace = strtolower($filter->filter($this->getNamespace())); $oViewGenerator->setFilePath($this->getFilePath() . '/view/' . $sFilteredNamespace . '/' . $sFilteredNamespace); $oViewGenerator->generateView('index'); $oViewGenerator->generateView('add'); $oViewGenerator->generateView('edit'); $oViewGenerator->generateView('delete'); }