/** * Run the database seeds. * * @return void */ public function run() { // General \Solunes\Master\App\Language::create(['code' => 'es', 'name' => 'Español', 'image' => 'es.png']); \Solunes\Master\App\Site::create(['name' => 'Plataforma', 'domain' => 'http://master.dev/', 'root' => '/', 'google_verification' => '', 'analytics' => '']); // Nodos $node_node = \Solunes\Master\App\Node::create(['name' => 'node', 'folder' => 'system']); $node_node_requests = \Solunes\Master\App\Node::create(['name' => 'node-request', 'location' => 'package', 'type' => 'subchild', 'parent_id' => $node_node->id]); $node_node_extras = \Solunes\Master\App\Node::create(['name' => 'node-extra', 'type' => 'subchild', 'location' => 'package', 'parent_id' => $node_node->id]); $node_filter = \Solunes\Master\App\Node::create(['name' => 'filter', 'folder' => 'system']); $node_field = \Solunes\Master\App\Node::create(['name' => 'field', 'type' => 'child', 'location' => 'package', 'parent_id' => $node_node->id]); $node_field_extras = \Solunes\Master\App\Node::create(['name' => 'field-extra', 'type' => 'subchild', 'location' => 'package', 'parent_id' => $node_field->id]); $node_field_conditional = \Solunes\Master\App\Node::create(['name' => 'field-conditional', 'type' => 'subchild', 'location' => 'package', 'parent_id' => $node_field->id]); $node_indicator = \Solunes\Master\App\Node::create(['name' => 'indicator', 'folder' => 'system', 'customized' => 1]); $node_indicator_alert = \Solunes\Master\App\Node::create(['name' => 'indicator-alert', 'type' => 'subchild', 'location' => 'package', 'parent_id' => $node_indicator->id]); $node_indicator_graph = \Solunes\Master\App\Node::create(['name' => 'indicator-graph', 'type' => 'subchild', 'location' => 'package', 'parent_id' => $node_indicator->id]); $node_indicator_value = \Solunes\Master\App\Node::create(['name' => 'indicator-value', 'type' => 'child', 'location' => 'package', 'parent_id' => $node_indicator->id]); $node_site = \Solunes\Master\App\Node::create(['name' => 'site', 'folder' => 'global']); $node_page = \Solunes\Master\App\Node::create(['name' => 'page', 'folder' => 'global']); $node_menu = \Solunes\Master\App\Node::create(['name' => 'menu', 'folder' => 'global']); $node_section = \Solunes\Master\App\Node::create(['name' => 'section', 'folder' => 'global']); $node_permission = \Solunes\Master\App\Node::create(['name' => 'permission', 'folder' => 'system']); $node_role = \Solunes\Master\App\Node::create(['name' => 'role', 'folder' => 'system']); $node_permission_role = \Solunes\Master\App\Node::create(['name' => 'permission-role', 'table_name' => 'permission_role', 'location' => 'package', 'type' => 'field', 'model' => '\\Solunes\\Master\\App\\Permission', 'parent_id' => $node_role->id]); $node_user = \Solunes\Master\App\Node::create(['name' => 'user', 'location' => 'app', 'folder' => 'global']); \Solunes\Master\App\Filter::create(['node_id' => $node_user->id, 'parameter' => 'status']); $node_role_user = \Solunes\Master\App\Node::create(['name' => 'role-user', 'table_name' => 'role_user', 'location' => 'package', 'type' => 'field', 'model' => '\\Solunes\\Master\\App\\Role', 'parent_id' => $node_user->id]); $node_email = \Solunes\Master\App\Node::create(['name' => 'email', 'folder' => 'global']); $node_activity = \Solunes\Master\App\Node::create(['name' => 'activity', 'table_name' => 'activities', 'folder' => 'system']); $node_notification = \Solunes\Master\App\Node::create(['name' => 'notification', 'folder' => 'system']); $node_inbox = \Solunes\Master\App\Node::create(['name' => 'inbox', 'table_name' => 'inbox', 'folder' => 'system']); $node_inbox_users = \Solunes\Master\App\Node::create(['name' => 'inbox-user', 'type' => 'subchild', 'location' => 'package', 'parent_id' => $node_inbox->id]); $node_inbox_messages = \Solunes\Master\App\Node::create(['name' => 'inbox-message', 'type' => 'subchild', 'location' => 'package', 'parent_id' => $node_inbox->id]); $node_variable = \Solunes\Master\App\Node::create(['name' => 'variable', 'folder' => 'global']); $node_image_folder = \Solunes\Master\App\Node::create(['name' => 'image-folder', 'folder' => 'system']); $node_image_size = \Solunes\Master\App\Node::create(['name' => 'image-size', 'type' => 'subchild', 'location' => 'package', 'parent_id' => $node_image_folder->id]); $node_temp_file = \Solunes\Master\App\Node::create(['name' => 'temp-file', 'folder' => 'system']); // Usuarios $admin = \Solunes\Master\App\Role::create(['name' => 'admin', 'display_name' => 'Admin']); $member = \Solunes\Master\App\Role::create(['name' => 'member', 'display_name' => 'Miembro']); $system_perm = \Solunes\Master\App\Permission::create(['name' => 'system', 'display_name' => 'Sistema']); $global_perm = \Solunes\Master\App\Permission::create(['name' => 'global', 'display_name' => 'Global']); $site_perm = \Solunes\Master\App\Permission::create(['name' => 'site', 'display_name' => 'Site']); $form_perm = \Solunes\Master\App\Permission::create(['name' => 'form', 'display_name' => 'Formulario']); $dashboard_perm = \Solunes\Master\App\Permission::create(['name' => 'dashboard', 'display_name' => 'Dashboard']); $admin->permission_role()->sync([$global_perm->id, $site_perm->id, $form_perm->id, $dashboard_perm->id]); // Tamaños de archivos \Solunes\Master\App\Variable::create(['name' => 'image_size', 'type' => 'string', 'es' => ['value' => '5']]); \Solunes\Master\App\Variable::create(['name' => 'file_size', 'type' => 'string', 'es' => ['value' => '10']]); \Solunes\Master\App\Variable::create(['name' => 'image_extension', 'type' => 'string', 'es' => ['value' => 'jpg,jpeg,png,gif']]); \Solunes\Master\App\Variable::create(['name' => 'file_extension', 'type' => 'string', 'es' => ['value' => 'doc,docx,xls,xlsx,ppt,pptx,pdf,txt,jpg,jpeg,png,gif']]); }
/** * Run the database seeds. * * @return void */ public function run() { \Solunes\Master\App\ImageSize::truncate(); \Solunes\Master\App\ImageFolder::truncate(); \Solunes\Master\App\TempFile::truncate(); \Solunes\Master\App\VariableTranslation::truncate(); \Solunes\Master\App\Variable::truncate(); \Solunes\Master\App\InboxUser::truncate(); \Solunes\Master\App\InboxMessage::truncate(); \Solunes\Master\App\Inbox::truncate(); \Solunes\Master\App\Notification::truncate(); \Solunes\Master\App\Activity::truncate(); DB::table('permission_role')->truncate(); DB::table('role_user')->truncate(); \Solunes\Master\App\Role::truncate(); \Solunes\Master\App\Permission::truncate(); \App\User::truncate(); \Solunes\Master\App\EmailTranslation::truncate(); \Solunes\Master\App\Email::truncate(); \Solunes\Master\App\IndicatorValue::truncate(); \Solunes\Master\App\IndicatorGraph::truncate(); \Solunes\Master\App\IndicatorAlert::truncate(); \Solunes\Master\App\Indicator::truncate(); \Solunes\Master\App\FieldOptionTranslation::truncate(); \Solunes\Master\App\FieldOption::truncate(); \Solunes\Master\App\FieldConditional::truncate(); \Solunes\Master\App\FieldExtra::truncate(); \Solunes\Master\App\FieldTranslation::truncate(); \Solunes\Master\App\Field::truncate(); \Solunes\Master\App\Section::truncate(); \Solunes\Master\App\Filter::truncate(); \Solunes\Master\App\NodeExtra::truncate(); \Solunes\Master\App\NodeRequest::truncate(); \Solunes\Master\App\NodeTranslation::truncate(); \Solunes\Master\App\Node::truncate(); \Solunes\Master\App\MenuTranslation::truncate(); \Solunes\Master\App\Menu::truncate(); \Solunes\Master\App\PageTranslation::truncate(); \Solunes\Master\App\Page::truncate(); \Solunes\Master\App\SiteTranslation::truncate(); \Solunes\Master\App\Site::truncate(); \Solunes\Master\App\Language::truncate(); \App\PasswordReminder::truncate(); }
public function handle($menu) { if ($page = $menu->page) { foreach (\Solunes\Master\App\Language::get() as $language) { \App::setLocale($language->code); $menu->translateOrNew($language->code)->name = $page->name; } } // Definir Order if (!$menu->order) { if ($menu_group = \Solunes\Master\App\Menu::where('type', $menu->type)->where("level", $menu->level)->orderBy("order", "DESC")->first()) { $order = $menu_group->order; } else { $order = 0; } $order = $order + 1; $menu->order = $order; } }
/** * Execute the console command. * * @return mixed */ public function handle() { $this->info('0%: Se comenzó a importar el excel.'); $languages = \Solunes\Master\App\Language::get(); \Excel::load(public_path('seed/import.xls'), function ($reader) use($languages) { foreach ($reader->get() as $sheet) { $sheet_model = $sheet->getTitle(); if ($node = \Solunes\Master\App\Node::where('name', $sheet_model)->first()) { $field_array = []; $field_sub_array = []; $sub_field_insert = []; foreach ($languages as $language) { foreach ($node->fields()->whereNotIn('type', ['child', 'subchild', 'field'])->get() as $field) { if ($language->id > 1) { $field_array[$field->name . '_' . $language->code] = $field; } else { $field_array[$field->name] = $field; } } } foreach ($node->fields()->where('type', 'field')->get() as $field) { $field_sub_array[$field->name] = $field; } $sheet->each(function ($row) use($languages, $node, $field_array, $field_sub_array, $sub_field_insert) { $new_item = false; foreach ($row->all() as $column => $input) { if ($column == 'id' && $input) { $model = \FuncNode::node_check_model($node); if (!($item = $model->where('id', $row->id)->first())) { $item = $model; } $new_item = true; } if ($new_item && isset($field_array[$column])) { $field = $field_array[$column]; if ($column == $field->name) { $language_code = 'es'; } else { $language_code = str_replace($field->name . '_', '', $column); } if ($field->type == 'select' || $field->type == 'radio') { if ($subanswer = $field->field_options()->whereTranslation('label', $input)->first()) { $input = $subanswer->name; } else { $input = NULL; } } else { if ($field->type == 'checkbox') { $subinput = []; foreach (explode(' | ', $input) as $subval) { if ($subanswer = $field->field_options()->whereTranslation('label', $subval)->first()) { $subinput[] = $subanswer->name; } } if (count($subinput) > 0) { $input = json_encode($subinput); } else { $input = NULL; } } } if ($input || $input == '0') { if ($field->type == 'image' || $field->type == 'file') { $action_name = 'upload_' . $field->type; if ($field->multiple) { foreach (explode(' | ', $input) as $subinput) { $input_array[] = \Asset::$action_name(public_path('seed/' . $node->name . '/' . $subinput), $node->name . '-' . $field->name, true); } $input = json_encode($input_array); } else { $input = \Asset::$action_name(public_path('seed/' . $node->name . '/' . $input), $node->name . '-' . $field->name, true); } } $item = \FuncNode::put_data_field($item, $field, $input, $language_code); } } else { if ($new_item && isset($field_sub_array[$column])) { $field = $field_sub_array[$column]; if ($field->multiple) { $array_insert = []; foreach (explode(';', $input) as $value) { if (!is_numeric($value)) { $sub_model = \Solunes\Master\App\Node::where('table_name', $column)->first()->model; array_push($array_insert, $sub_model::where('name', $value)->first()->id); } else { array_push($array_insert, $value); } } } else { if (!is_numeric($input)) { $sub_model = \Solunes\Master\App\Node::where('table_name', $column)->first()->model; $array_insert = $sub_model::where('name', $input)->first()->id; } else { $array_insert = $input; } $array_insert = [$array_insert]; } $sub_field_insert[$column] = $array_insert; } } } if ($new_item) { $item->save(); foreach ($sub_field_insert as $column => $input) { $item->{$column}()->sync($input); } } }); } } }); $this->info('100%: Se agregaron los datos del excel.'); }
public static function load_nodes_excel($path, $return = '') { $languages = \Solunes\Master\App\Language::get(); \Excel::load($path, function ($reader) use($return, $languages) { foreach ($reader->get() as $sheet) { $sheet_name = $sheet->getTitle(); $sheet->each(function ($row) use($sheet_name, $return, $languages) { $node = \Solunes\Master\App\Node::where('name', $row->node)->first(); if ($sheet_name == 'create-fields') { if ($node) { if ($node->location == 'package') { $lang_folder = 'master::fields.'; } else { $lang_folder = 'fields.'; } $field = new \Solunes\Master\App\Field(); $field->parent_id = $node->id; $field->name = $row->name; $field->trans_name = $row->trans_name; foreach ($languages as $language) { \App::setLocale($language->code); $field->translateOrNew($language->code)->label = trans($lang_folder . $row->trans_name); } \App::setLocale('es'); $field->type = $row->type; $field->display_list = $row->display_list; $field->display_item = $row->display_item; $field->multiple = $row->multiple; $field->translation = $row->translation; $field->required = $row->required; $field->order = $row->order; $field->new_row = $row->new_row; $field->preset = $row->preset; $field->message = $row->message; $field->value = $row->value; $field->save(); } else { $return .= 'ALERTA: No se encontró el nodo ' . $row->node . '.\\n'; } } else { if ($node && ($field = $node->fields()->where('name', $row->field)->first())) { if ($sheet_name == 'edit-fields') { $column = $row->column; $field->{$column} = $row->new_value; $field->save(); } else { if ($sheet_name == 'extras') { if ($extra = $field->field_extras()->where('type', $row->type)->first()) { $extra->value = $row->new_value; } else { $extra = new \Solunes\Master\App\FieldExtra(); $extra->parent_id = $field->id; $extra->type = $row->type; $extra->value = $row->new_value; } $extra->save(); } else { if ($sheet_name == 'conditionals') { $conditional = new \Solunes\Master\App\FieldConditional(); $conditional->parent_id = $field->id; $conditional->trigger_field = $row->trigger_field; $conditional->trigger_show = $row->trigger_show; $conditional->trigger_value = $row->trigger_value; $conditional->save(); } } } } else { $return .= 'ALERTA: No se encontró el campo ' . $row->field . ' o nodo ' . $row->node . '.\\n'; } } }); } }); return $return; }
/** * Execute the console command. * * @return mixed */ public function handle() { $this->info('0%: Generador de Nodos iniciado.'); $this->info('20%: Las tablas fueron limpiadas.'); $nodes = \Solunes\Master\App\Node::get(); $total_count = 0; \App::setLocale('es'); $languages = \Solunes\Master\App\Language::get(); $menu_dashboard = \Solunes\Master\App\Menu::create(['menu_type' => 'admin', 'permission' => 'dashboard', 'icon' => 'dashboard']); foreach ($languages as $language) { \App::setLocale($language->code); $menu_dashboard->translateOrNew($language->code)->name = trans('master::admin.dashboard'); $menu_dashboard->translateOrNew($language->code)->link = 'admin'; } \App::setLocale('es'); $menu_dashboard->save(); foreach ($nodes as $node) { if ($node->location == 'package') { $lang_folder = 'master::model.'; } else { $lang_folder = 'model.'; } foreach ($languages as $language) { \App::setLocale($language->code); $node->translateOrNew($language->code)->singular = trans_choice($lang_folder . $node->name, 1); $node->translateOrNew($language->code)->plural = trans_choice($lang_folder . $node->name, 0); } \App::setLocale('es'); $node->save(); $table_name = $node->table_name; $columns = \Schema::getColumnListing($table_name); if ($node->type == 'field') { $count = 0; foreach ($columns as $col) { $count = \FuncNode::node_field_creation($table_name, $node, $col, 0, $count, $languages); } $total_count += $count; } else { $model = $node->model; $initiated_model = new $model(); // CREAR MENU \FuncNode::node_menu_creation($node, $languages); // MENU CREADO, CREAR COLUMNAS $count = 0; foreach ($columns as $col) { if ($col != 'site_id') { $count = \FuncNode::node_field_creation($table_name, $node, $col, 0, $count, $languages); } } // REVISAR SI TIENE TRADUCCION Y SI SE DEBEN CREAR ESOS CAMPOS TAMBIEN if (property_exists($model, 'translatedAttributes')) { $node->translation = 1; $node->save(); foreach ($initiated_model->translatedAttributes as $col) { if ($col != 'site_id') { $count = \FuncNode::node_field_creation(str_replace('-', '_', $node->name) . '_translation', $node, $col, 1, $count, $languages); } } } // AGREGAR PARENT A DONDE CORRESPONDE if (count($node->children) > 0) { foreach ($node->children as $child) { $count++; $multiple = false; if ($child->type == 'field') { $child_value = str_replace($node->name . '-', '', $child->name); $child_value = str_replace('-' . $node->name, '', $child_value); } else { $child_value = $child->name; } if ($child->type == 'subchild') { $multiple = true; } $field = new \Solunes\Master\App\Field(); $field->parent_id = $node->id; $field->name = $child->table_name; $field->trans_name = str_replace($node->name . '-', '', $child->table_name); $field->type = $child->type; $field->order = $count; $field->multiple = $multiple; $field->value = $child_value; $field->save(); } } $total_count += $count; } $node->load('fields'); foreach ($node->fields as $field) { $saved = false; if (!$field->label) { if ($node->location == 'package') { $lang_folder = 'master::fields.'; } else { $lang_folder = 'fields.'; } foreach ($languages as $language) { \App::setLocale($language->code); $field->translateOrNew($language->code)->label = trans($lang_folder . $field->trans_name); } \App::setLocale('es'); $saved = true; } if ($saved === true) { $field->save(); } } } $this->info('95%: Se importara el excel de nodes para corregir los campos.'); $this->info(\FuncNode::load_nodes_excel(base_path(config('solunes.vendor_path') . '/src/nodes.xlsx'))); $this->info(\FuncNode::load_nodes_excel(public_path('seed/nodes.xlsx'))); $this->info('100%: Se crearon ' . $total_count . ' campos.'); }
<?php Route::get('sitemap.xml', function () { // create new sitemap object $sitemap = App::make("sitemap"); $sitemap->setCache('laravel.sitemap', 3600); if (!$sitemap->isCached()) { foreach (\Solunes\Master\App\Language::get() as $lang) { \App::setLocale($lang->code); foreach (\Solunes\Master\App\Page::get() as $page) { if ($page->id == 1) { $priority = '1.0'; } else { $priority = '0.9'; } $sitemap->add($page->translate($lang->code)->slug, $page->created_at, $priority, 'daily'); } $node_array = \CustomFunc::get_sitemap_array($lang->code); if (count($node_array) > 0) { foreach ($node_array as $node_key => $node_item) { $node = \Solunes\Master\App\Node::where('name', $node_key)->first(); $node_model = $node->model; foreach ($node_model::orderBy('created_at', 'desc')->get() as $post) { $sitemap->add($node_item['url'] . $post->{$node_item}['url_id'], $post->created_at, $node_item['priority'], 'monthly'); } } } } } return $sitemap->render('xml'); });
public static function make_panel_buttons($module, $model, $item, $lang = false) { $panel = ''; if ($lang == true) { foreach (\Solunes\Master\App\Language::get() as $language) { if ($item->hasTranslation($language->code)) { $panel .= '<td><a href="' . url($module . '/' . $model . '/edit/' . $item->id . '/' . $language->code) . '"><div class="edit"><i class="fa fa-pencil"></i></div></a></td>'; } else { $panel .= '<td><a href="' . url($module . '/' . $model . '/edit/' . $item->id . '/' . $language->code) . '"><div class="edit"><i class="fa fa-plus"></i></div></a></td>'; } } } else { $panel .= '<td><a href="' . url($module . '/' . $model . '/edit/' . $item->id) . '"><div class="edit"><i class="fa fa-pencil"></i></div></a></td>'; } $panel .= '<td>' . AdminList::make_delete($module, $model, $item) . '</td>'; return $panel; }