diff --git a/app/Http/Controllers/Admin/GroupsController.php b/app/Http/Controllers/Admin/GroupsController.php index e3c17ae..b690ba3 100644 --- a/app/Http/Controllers/Admin/GroupsController.php +++ b/app/Http/Controllers/Admin/GroupsController.php @@ -4,13 +4,17 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Models\Group_user; +use App\Models\Group_works; use App\Models\User; +use Illuminate\Database\Eloquent\Model; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Validator; class GroupsController extends Controller { + public $limit = 15; + // индексная страница public function index() { $groups = Group_user::query()->active()->paginate(15); @@ -18,10 +22,26 @@ class GroupsController extends Controller } // форма добавления группы - public function add() { - $editor = Auth::user()->id; - $users = User::query()->get(); - return view('admin.groups.add', compact('editor', 'users')); + public function add(Request $request) { + /*$editor = Auth::user()->id; + $users = User::query()->active()->Offset(0)->limit($this->limit)->get(); + return view('admin.groups.add', compact('editor', 'users'));*/ + $hide = false; + $total = User::query()->active()->count(); + $amt = ceil($total / $this->limit); + if ($this->limit >= $total) $hide = true; + if ($request->ajax()) { + $page = intval($request->page); + $page = (empty($page)) ? 1 : $page; + $start = ($page != 1) ? $page * $this->limit - $this->limit : 0; + $users = User::query()->active()->Offset($start)->limit($this->limit)->get(); + return view('admin.groups.ajax_add', compact('users', 'amt')); + + } else { + $editor = Auth::user()->id; + $users = User::query()->active()->Offset(0)->limit($this->limit)->get(); + return view('admin.groups.add', compact('editor', 'users', 'amt', 'hide')); + } } // форма сохранения добавленной группы @@ -38,7 +58,13 @@ class GroupsController extends Controller return redirect()->route('admin.add-group') ->withErrors($validator); } else { - Group_user::create($request->all()); + $id_group = Group_user::create($request->all())->id; + foreach ($request->usergroup as $user) { + $people = new Group_works(); + $people->group_user_id = $id_group; + $people->user_id = $user; + $people->save(); + } return redirect()->route('admin.groups') ->with('success', 'Данные были успешно сохранены'); } @@ -47,14 +73,28 @@ class GroupsController extends Controller // форма редактирования группы public function edit(Group_user $group, Request $request) { - $editor = Auth::user()->id; - $users = User::query()->get(); - return view('admin.groups.edit', compact('editor', 'group', 'users')); + //https://snipp.ru/php/loading-scrolling + $hide = false; + $total = User::query()->active()->count(); + $amt = ceil($total / $this->limit); + if ($this->limit >= $total) $hide = true; + + if ($request->ajax()) { + $page = intval($request->page); + $page = (empty($page)) ? 1 : $page; + $start = ($page != 1) ? $page * $this->limit - $this->limit : 0; + $users = User::query()->active()->Offset($start)->limit($this->limit)->get(); + return view('admin.groups.ajax', compact('users', 'group', 'amt')); + + } else { + $editor = Auth::user()->id; + $users = User::query()->active()->Offset(0)->limit($this->limit)->get(); + return view('admin.groups.edit', compact('editor', 'group', 'users', 'amt', 'hide')); + } } // форма сохранения редактированной группы public function update(Group_user $group, Request $request) { - $params = $request->all(); unset($params['usergroup']); $rules = [ diff --git a/app/Http/Controllers/Admin/InfoBloksController.php b/app/Http/Controllers/Admin/InfoBloksController.php new file mode 100644 index 0000000..93e5c8e --- /dev/null +++ b/app/Http/Controllers/Admin/InfoBloksController.php @@ -0,0 +1,90 @@ +active()->orderByDesc('sort')->orderBy('name')->paginate(15); + return view('admin.infobloks.index', compact('infobloks')); + } + + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + return view('admin.infobloks.add'); + } + + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function store(Request $request) + { + infobloks::create($request->all()); + return redirect()->route('admin.infobloks.index'); + } + + /** + * Display the specified resource. + * + * @param \App\Models\infobloks $infobloks + * @return \Illuminate\Http\Response + */ + public function show(infobloks $infobloks) + { + // + } + + /** + * Show the form for editing the specified resource. + * + * @param \App\Models\infobloks $infoblok + * @return \Illuminate\Http\Response + */ + public function edit(infobloks $infoblok) + { + return view('admin.infobloks.edit', compact('infoblok')); + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param \App\Models\infobloks $infobloks + * @return \Illuminate\Http\Response + */ + public function update(Request $request, infobloks $infoblok) + { + $infoblok->update($request->all()); + return redirect()->route('admin.infobloks.index'); + } + + /** + * Remove the specified resource from storage. + * + * @param \App\Models\infobloks $infobloks + * @return \Illuminate\Http\Response + */ + public function destroy(infobloks $infoblok) + { + $infoblok->update(['is_remove' => 1]); + return redirect()->route('admin.infobloks.index'); + } +} diff --git a/app/Http/Controllers/Admin/WorkersController.php b/app/Http/Controllers/Admin/WorkersController.php index afd74b1..9c287d7 100644 --- a/app/Http/Controllers/Admin/WorkersController.php +++ b/app/Http/Controllers/Admin/WorkersController.php @@ -34,8 +34,4 @@ class WorkersController extends Controller return; } - // кабинет - справочник - блоки информации для резюме работника - public function infobloks() { - return; - } } diff --git a/app/Models/infobloks.php b/app/Models/infobloks.php index 9a67a5d..fd768aa 100644 --- a/app/Models/infobloks.php +++ b/app/Models/infobloks.php @@ -8,4 +8,14 @@ use Illuminate\Database\Eloquent\Model; class infobloks extends Model { use HasFactory; + + protected $fillable = [ + 'name', + 'is_remove', + 'sort', + ]; + + public function ScopeActive($query) { + return $query->where('is_remove', '=', '0'); + } } diff --git a/database/migrations/2023_09_08_092903_alter_infobloks_table.php b/database/migrations/2023_09_08_092903_alter_infobloks_table.php new file mode 100644 index 0000000..39d41fb --- /dev/null +++ b/database/migrations/2023_09_08_092903_alter_infobloks_table.php @@ -0,0 +1,32 @@ +integer('sort')->default(100); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('infobloks', function (Blueprint $table) { + $table->dropColumn('sort'); + }); + } +}; diff --git a/resources/views/admin/editor/index.blade.php b/resources/views/admin/editor/index.blade.php new file mode 100644 index 0000000..0e7a002 --- /dev/null +++ b/resources/views/admin/editor/index.blade.php @@ -0,0 +1,149 @@ +@extends('layout.admin', ['title' => 'Админка - Редактор сайта']) + +@section('content') + + +
Название | +Ссылка | +
---|---|
+
+
+
+
+
+ Шапка-футер сайта ++ Редактор шапки и подвала сайта + + |
+ + Ссылка + | +
+
+
+
+
+
+ Реклама ++ Рекламные объявления сайта + + |
+ + Ссылка + | +
+
+
+
+
+
+ SEO-сайта ++ Расширенные возможности seo для отдельных страниц сайта + + |
+ + Ссылка + | +
+
+
+
+
+
+ Редактор страниц ++ Создание и изменение страниц с произвольным содержанием + + |
+ + Ссылка + | +
+
+
+
+
+
+ Должности на главной ++ Вывод некоторых актуальных должностей на главной странице + + |
+ + Ссылка + | +
+
+
+
+
+
+ Работодатели на главной ++ Вывод некоторых актуальных работодателей на главной странице + + |
+ + Ссылка + | +
{{$user->id}} | @@ -44,14 +45,21 @@ {{$user->name}}
- ingroup->contains('id', $group->id)) {?>checked }?>/>
- //print_r($user->ingroup->id);?>+ ingroup->contains('id', $group->id)) {?>checked }?> @endisset/> |
Справочник документы-дипломы (все блоки-документы необходимые соискателю)
diff --git a/resources/views/admin/infobloks/add.blade.php b/resources/views/admin/infobloks/add.blade.php new file mode 100644 index 0000000..41bf4d7 --- /dev/null +++ b/resources/views/admin/infobloks/add.blade.php @@ -0,0 +1,11 @@ +@extends('layout.admin', ['title' => 'Админка - Добавление документа-диплома']) + +@section('content') +№ | +Название документа | +Сортировка | +Дата создания | +Изменить | +
---|---|---|---|---|
+ {{$blok->id}} + | ++ {{$blok->name}} + | ++ {{$blok->sort}} + | ++ {{$blok->created_at }} + | ++ + | +