CompanyController.php 4.89 KB
<?php

namespace App\Http\Controllers\Admin;

use App\Classes\Meta;
use App\Http\Controllers\Controller;
use App\Http\Requests\PagesRequest;
use App\Http\Requests\SEORequest;
use App\Models\Employer;
use App\Models\employers_main;
use App\Models\header_footer;
use App\Models\Job_title;
use App\Models\job_titles_main;
use App\Models\pages;
use App\Models\reclame;
use App\Models\SEO;
use Illuminate\Http\Request;

class CompanyController extends Controller
{
    // кабинет - редактор сайта
    public function editor() {
        return;
    }

    // кабинет - редактор должности на главной
    public function job_titles_main(Request $request) {
        if ($request->ajax()) {
            $user = job_titles_main::find($request->id);
            $request->offsetUnset('id');
            $user->update($request->all());
        }

        $jobs = job_titles_main::query()->OrderBy('sort')->paginate(10);
        $list_job_titles = Job_title::query()->active()->orderBy('name')->get();

        if ($request->ajax()) {
            return view('admin.job_main.index_ajax', compact('jobs', 'list_job_titles'));
        } else {
            return view('admin.job_main.index', compact('jobs', 'list_job_titles'));
        }
    }

    // кабинет - редактор шапки-футера сайта
    public function editblocks() {
        $header_footer = header_footer::query()->OrderBy('name')->paginate(15);
        return view('admin.editbloks.index', compact('header_footer'));
    }

    // кабинет - редактор работодатели на главной
    public function employers_main(Request $request) {
        if ($request->ajax()) {
            $user = employers_main::find($request->id);
            $request->offsetUnset('id');
            $user->update($request->all());
        }

        $employers = employers_main::query()->OrderBy('sort')->paginate(10);
        $list_employers = Employer::query()->active()->orderBy('name_company')->get();

        if ($request->ajax()) {
            return view('admin.employer_main.index_ajax', compact('employers', 'list_employers'));
        } else {
            return view('admin.employer_main.index', compact('employers', 'list_employers'));
        }
    }

    //////////// кабинет - редактор seo-сайта /////////////////////////////
    public function editor_seo() {
        $pages = SEO::query()->OrderBy('url')->paginate(15);
        return view('admin.seo.index', compact('pages'));
    }

    public function editor_seo_add() {
        return view('admin.seo.add');
    }

    public function editor_seo_store(SEORequest $request) {
        SEO::create($request->all());
        return redirect()->route('admin.editor-seo');
    }

    public function editor_seo_ajax(Request $request) {
        $url = $request->get('url'); // post('url');
        $metaData = Array();
        //$url = json_decode($url, true);

        if (!empty($url)) {

            $meta = new Meta($url);
            $meta->parse();
            $metaData = $meta->finalize();

            return json_encode($metaData);
        } else {
            return json_encode(Array('Error URL'));
        }
    }

    public function editor_seo_edit(SEO $page) {
        return view('admin.seo.edit', compact('page'));
    }

    public function editor_seo_update(SEORequest $request, SEO $page) {
        $page->update($request->all());
        return redirect()->route('admin.editor-seo');
    }

    public function editor_seo_destroy(SEO $page) {
        $page->delete();
        return redirect()->route('admin.editor-seo');
    }
    ///////////////////////////////////////////////////////////////////////

    /////////// кабинет - редактор страниц ////////////////////////////////
    public function editor_pages() {
        $pages = pages::query()->OrderBy('name')->paginate(15);
        return view('admin.pages.index', compact('pages'));
    }

    public function editor_pages_add() {
        return view('admin.pages.add');
    }

    public function editor_pages_store(PagesRequest $request) {
        pages::create($request->all());
        return redirect()->route('admin.editor-pages');
    }

    public function editor_pages_edit(pages $page) {
      return view('admin.pages.edit', compact('page'));
    }

    public function editor_pages_update(PagesRequest $request, pages $page) {
        $page->update($request->all());
        return redirect()->route('admin.editor-pages');
    }

    public function editor_pages_destroy(pages $page) {
        $page->delete();
        return redirect()->route('admin.editor-pages');
    }
    ///////////////////////////////////////////////////////////////////

    // кабинет - реклама сайта
    public function reclames() {
        $reclames = reclame::query()->OrderBy('title')->paginate(15);
        return view('admin.reclames.index', compact('reclames'));
    }
}