From d14dfaf508e0c4aa383adbee3539361afa155f7d Mon Sep 17 00:00:00 2001 From: ahwelp Date: Tue, 24 Jan 2023 20:32:24 +0000 Subject: [PATCH] Altering housekeeping modules --- app/core/generator/GeneratorController.php | 233 ++++++++++++++------- app/core/generator/Routes.php | 5 +- 2 files changed, 156 insertions(+), 82 deletions(-) mode change 100755 => 100644 app/core/generator/GeneratorController.php mode change 100755 => 100644 app/core/generator/Routes.php diff --git a/app/core/generator/GeneratorController.php b/app/core/generator/GeneratorController.php old mode 100755 new mode 100644 index df5c29d..3884f96 --- a/app/core/generator/GeneratorController.php +++ b/app/core/generator/GeneratorController.php @@ -17,12 +17,15 @@ class GeneratorController { use Schema\Wrapper as Wrapper; use App\Core\Sanity\MigratorController as Migrator; + //https://book.cakephp.org/phinx/0/en/migrations.html#valid-column-types function {{PLUGIN_NAME}}_upgrade(\$pluginversion) { if (\$pluginversion < "0.0.1") { - \$table = Wrapper::get_table("{{PLUGIN_NAME}}"); - \$table->addColumn("name", "string", Array("null" => false)); - \$table->addColumn("time", "timestamp", Array("null" => true, "default"=>null)); - \$table->addColumn("areaid", "integer", Array("null" => false)); + \$table = Wrapper::get_table("{{PLUGIN_NAME}}s"); + \$table->addColumn("area_id", "integer", Array("null" => false)); + \$table->addColumn("name", "string", Array("null" => false)); + \$table->addColumn("description", "text", Array("null" => true)); + //\$table->addColumn("time", "timestamp", Array("null" => true, "default"=>null)); + \$table->addTimestamps(); \$table->addSoftDelete(); \$table->create(); @@ -31,16 +34,16 @@ class GeneratorController { return; } - //if (\$pluginversion < "0.0.2") { - //\$table = Wrapper::get_table("{{PLUGIN_NAME}}"); - //Migrator::getInstance()->update_plugin_version("{{PLUGIN_NAME}}", "1.0.1"); - //return; + //if (\$pluginversion < "1.0.1") { + // \$table = Wrapper::get_table("{{PLUGIN_NAME}}s"); + // Migrator::getInstance()->update_plugin_version("{{PLUGIN_NAME}}", "1.0.1"); + // return; //} } function {{PLUGIN_NAME}}_rollback(\$pluginversion) { if(\$pluginversion > "0.0.1"){ - \$table = Wrapper::get_table("{{PLUGIN_NAME}}"); + \$table = Wrapper::get_table("{{PLUGIN_NAME}}s"); \$table->drop(); return; } @@ -52,7 +55,7 @@ class GeneratorController { name = "{{PLUGIN_NAME}}"; - \$plugin->version = "0.0.1"; + \$plugin->version = "0.0.0"; //\$plugin->require = Array( ["name" => "plugin_name", "version" => "x.x.x"] ); EOL; @@ -66,14 +69,16 @@ class GeneratorController { use \App\Core\Template\Output as Output; use \{{NAMESPACE}}\Classes\{{OBJECT}} as {{OBJECT}}; - class {{CONTROLLER}} { + class {{CONTROLLER}} extends \DefaultController{ + + protected \$_class = {{OBJECT}}::class; + protected \$_baseUrl = '/{{PLUGIN_NAME}}'; /** * Index * Show the main {{OBJECT}} list */ function index(){ - Output::setView('index'); \$list = Array(); for(\$i = 0; \$i <= 10; \$i++){ @@ -83,8 +88,8 @@ class GeneratorController { \$obj['description'] = sha1(\$i); \$list[] = \$obj; } - Output::addValue('list', \$list ); - Output::render(); + + Output::render('index', Array('list' => \$list)); } /** @@ -93,8 +98,7 @@ class GeneratorController { * Render the main {{OBJECT}} formulary */ function create(){ - Output::setView('form', ['id' => 0]); - Output::render(); + Output::render('form', ['id' => 0]); } /** @@ -107,6 +111,16 @@ class GeneratorController { } + /** + * Search + * + * Store the param on the database + * @param {{OBJECT}} \${{OBJECT_LOWER}} + */ + function search(){ + + } + /** * Show * @@ -126,8 +140,7 @@ class GeneratorController { * @param {{OBJECT}} \${{OBJECT_LOWER}} */ function edit({{OBJECT}} \${{OBJECT_LOWER}}){ - Output::setView('form', \${{OBJECT_LOWER}}); - Output::render(); + Output::render('form', \${{OBJECT_LOWER}}); } /** @@ -175,8 +188,39 @@ class GeneratorController { //const _idPolice = Array("type" => "", "min" => 0, "max" => 100000, "step" => 2); - const _tableName = "{{TABLE_NAME}}"; - //const _properties = Array("id", "name"); + const _tableName = "{{TABLE_NAME}}s"; + + /*const _properties = Array( + "id" => ['listable' => true, 'searcheble' => false, 'orderable' => false], + "name" => ['listable' => true, 'searcheble' => true]); + */ + + const _properties = Array( + 'id', + 'name', + 'description' + ); + + /*protected \$_ignore = Array( + + );*/ + + const _listable = Array( + 'id', + 'name' + ); + + const _searchable = Array( + 'name' + ); + + const _orderable = Array( + + ); + + /*const _datatables = Array( + + );*/ //const _timestamps = true; //const _softdelete = true; @@ -194,13 +238,14 @@ class GeneratorController { //Menu itens RouteCollection::get('*', function() { - Output::addMenu('/{{PLUGIN_NAME}}', '{{PLUGIN_NAME}}', "", ['class' => 'nav-link']); + Output::addMenu('/{{PLUGIN_NAME}}', '{{PLUGIN_NAME}}', icon('cubes'), ['class' => 'nav-link']); }, -10)->doIgnore(); RouteCollection::group("/{{PLUGIN_NAME}}", function(){ RouteCollection::get ("/", "\{{NAMESPACE}}\{{CONTROLLER}}@index"); RouteCollection::get ("/form", "\{{NAMESPACE}}\{{CONTROLLER}}@create"); RouteCollection::post ("/", "\{{NAMESPACE}}\{{CONTROLLER}}@store"); + RouteCollection::post ("/search", "\{{NAMESPACE}}\{{CONTROLLER}}@search"); RouteCollection::get ("/[i:id]", "\{{NAMESPACE}}\{{CONTROLLER}}@show"); RouteCollection::get ("/[i:id]/edit", "\{{NAMESPACE}}\{{CONTROLLER}}@edit"); RouteCollection::put ("/[i:id]/edit", "\{{NAMESPACE}}\{{CONTROLLER}}@update"); @@ -210,67 +255,108 @@ class GeneratorController { private $indexTemplate = <<Adicionar -
- - - - - - - - - - - - {{#list}} - - - - - - - {{/list}} -
IdValueDescriptionActions
{{id}}{{value}}{{description}} - - - - -
-
+ Adicionar EOL; private $formTemplate = << - {{@ else: @}} + {{/id}} + {{^id}}
- {{@ endif; @}} + {{/id}} +
+
+
+
Header
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+
+
Header
+
+
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+
+
+
+
+
+
+
+
Header
+
+
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+
+
+
+
EOL; - - private $ctagsHeader = + private $todoList = <<objectBase); $this->controllerBase = str_replace("{{NAMESPACE}}", $namespace, $this->controllerBase); + $this->controllerBase = str_replace("{{PLUGIN_NAME}}", $plugin_name, $this->controllerBase); $this->controllerBase = str_replace("{{OBJECT}}", $object, $this->controllerBase); $this->controllerBase = str_replace("{{OBJECT_LOWER}}",strtolower($object), $this->controllerBase); $this->controllerBase = str_replace("{{CONTROLLER}}", $controller, $this->controllerBase); @@ -319,6 +406,8 @@ class GeneratorController { $this->formTemplate = str_replace("{{ENDPOINT}}", $plugin_name, $this->formTemplate); file_put_contents(DIR_APP.$subname . "/" . $name . "/views/form.mustache", $this->formTemplate); + file_put_contents(DIR_APP.$subname . "/" . $name . "/todo.md", $this->todoList); + } function listRoutes(){ @@ -327,6 +416,7 @@ class GeneratorController { echo str_pad("W", 5, " ", STR_PAD_BOTH) . "||"; echo str_pad("FUNCTION", 60, " ", STR_PAD_BOTH) . "\n"; echo str_pad("", 120, "-") . "\n"; + foreach(\Routes\RouteCollection::returnRoutes() as $route){ echo str_pad(implode($route->_verb , ", "), 10, " ", STR_PAD_BOTH) . "||"; echo str_pad($route->_uri, 35, " ", STR_PAD_RIGHT) . "||"; @@ -340,22 +430,5 @@ class GeneratorController { } } - function createTags(){ - $outputs = shell_exec("grep -Rnsi '@ctag' . | sed s/\ //g | sed s/*@ctag/\ /g"); - $outputs = preg_split("/\R/", $outputs); - $return = $this->ctagsHeader . "\n"; - foreach($outputs as $output){ - $line = explode(" ", str_replace("\\t", "", $output) ); - @$line = $line[1] . "\t " . str_replace("./", "", explode(":", $line[0])[0]) . "\t ".$line[1] . "\n"; - if( strpos($line, "app/core/generator/GeneratorController.php") ){ - continue; - } - $return .= $line; - //echo "Generating: ".$line."\n"; - } - - file_put_contents(DIR_ROOT."tags", $return); - } - } diff --git a/app/core/generator/Routes.php b/app/core/generator/Routes.php old mode 100755 new mode 100644 index 8ea0c8c..7137816 --- a/app/core/generator/Routes.php +++ b/app/core/generator/Routes.php @@ -4,6 +4,7 @@ use Routes\RouteCollection as RouteCollection; RouteCollection::cli('/', function(){ echo "/create/[h:subname]/[h:name]\n"; + echo "install\n"; }); RouteCollection::cli('/routes', '\App\Core\Generator\GeneratorController@listRoutes'); @@ -11,11 +12,11 @@ RouteCollection::cli('/create/tags', '\App\Core\Generator\Genera RouteCollection::cli('/create/[h:subname]/[h:name]', '\App\Core\Generator\GeneratorController@createPluginFromTemplate'); RouteCollection::group('/core', function(){ - + RouteCollection::cli('/purge/[h:module]', function($module){ echo "Purgin $module\n"; }); - + RouteCollection::cli('/purge', function(){ echo "Purging Everything\n"; });