Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 07.01.2019 01:16:37

ThemesController

Всем доброго времени суток и с наступившим новым годом и рождеством!
Народ, подскажите пожалуйста.
Сделал вкладки и разделил темы для админки и для фронтенда.

в ThemesController.php
изначально было так:

public function index(ThemeRequest $request)
    {
        $themes = collect(\Theme::all());

        $frontend_themes = $themes->where('type', 'frontend')->all();

        $admin_themes = $themes->where('type', 'admin')->all();

        $installed_themes = [];

        foreach ($admin_themes as $theme) {
            $installed_themes[] = ['version' => $theme->version, 'code' => $theme->name, 'license_key' => null];
        }

        foreach ($frontend_themes as $theme) {
            $installed_themes[] = ['version' => $theme->version, 'code' => $theme->name, 'license_key' => null];
        }

        try {
            $remote_updates = \Modules::checkForUpdates($request, $installed_themes, 'themes_remote_updates');
        } catch (\Exception $exception) {
            log_exception($exception, 'ThemesController', 'index');
        }

        return view('Theme::themes.index')->with(compact('frontend_themes', 'admin_themes', 'remote_updates'));
    }

Я добавил просто несколько строк

    public function index(ThemeRequest $request)
    {
        $themes = collect(\Theme::all());

        $frontend_themes = $themes->where('type', 'frontend')->all();

        $frontend_themest = $themes->where('type', 'frontends')->all();

        $admin_themes = $themes->where('type', 'admin')->all();

        $admin_themest = $themes->where('type', 'admins')->all();

        $installed_themes = [];

        foreach ($admin_themes as $theme) {
            $installed_themes[] = ['version' => $theme->version, 'code' => $theme->name, 'license_key' => null];
        }

        foreach ($admin_themest as $theme) {
            $installed_themes[] = ['version' => $theme->version, 'code' => $theme->name, 'license_key' => null];
        }

        foreach ($frontend_themes as $theme) {
            $installed_themes[] = ['version' => $theme->version, 'code' => $theme->name, 'license_key' => null];
        }

        foreach ($frontend_themest as $theme) {
            $installed_themes[] = ['version' => $theme->version, 'code' => $theme->name, 'license_key' => null];
        }

        try {
            $remote_updates = \Modules::checkForUpdates($request, $installed_themes, 'themes_remote_updates');
        } catch (\Exception $exception) {
            log_exception($exception, 'ThemesController', 'index');
        }

        return view('Theme::themes.index')->with(compact('frontend_themes', 'admin_themes', 'frontend_themest', 'admin_themest', 'remote_updates'));
    }

Кнопки деактив/актив

    public function deactivateTheme(ThemeRequest $request, $type, $name)
    {
        try {
            \Actions::do_action('pre_deactivate_theme', $request, $type);

            // Check that theme exists
            if (!\Theme::exists($name) || !in_array($type, ['admin', 'frontend', 'frontends', 'admins'])) {
                throw new \Exception(trans('Theme::exception.theme.theme_not_exist'));
            }

            \Settings::set("active_{$type}_theme", config('themes.corals_' . $type));

            $message = ['level' => 'success', 'message' => trans('Theme::labels.theme.theme_activated_successfully',['name' => $name])];
        } catch (\Exception $exception) {
            log_exception($exception, 'ThemesController', 'activate');
            $message = ['level' => 'error', 'message' => $exception->getMessage()];
        }

        return response()->json($message);
    }

    public function activateTheme(ThemeRequest $request, $type, $name)
    {
        try {
            \Actions::do_action('pre_activate_theme', $request, $type, $name);

            // Check that theme exists
            if (!\Theme::exists($name) || !in_array($type, ['admin', 'frontend', 'frontends', 'admins'])) {
                throw new \Exception(trans('Theme::exception.theme.theme_not_exist'));
            }

            \Settings::set("active_{$type}_theme", $name);

            $message = ['level' => 'success', 'message' => trans('Theme::labels.theme.theme_activated_successfully',['name' => $name])];
        } catch (\Exception $exception) {
            log_exception($exception, 'ThemesController', 'activate');
            $message = ['level' => 'error', 'message' => $exception->getMessage()];
        }

        return response()->json($message);
    }

Частично заработало.
Темы есть, могу нажать активировать/деактивировать, но активация/деактивация не происходит, тема не меняется.
В логах ничего нет. не пыхи, ни лары.

Подскажите, пожалуйста, где я мог допустить ошибку?
Спасибо.

Изменено ShardIce (07.01.2019 01:55:21)

Не в сети

#2 07.01.2019 13:45:16

Re: ThemesController

Добрый человек сказал:

Надо по сути обработать полученные данные - вы их отдать отдали, а получать надо в скриптах фронтенда

Не понятно, как это сделать?!

и что нужно:

Обработку на фронтенде в файлах, генерящих header/footer админки с шаблоном

не совсем понятно.

Не в сети

Подвал раздела