Grav\Plugin\Admin\AdminBaseController::taskRemoveFileFromBlueprint PHP Method

taskRemoveFileFromBlueprint() protected method

Handle deleting a file from a blueprint
protected taskRemoveFileFromBlueprint ( ) : boolean
return boolean True if the action was performed.
    protected function taskRemoveFileFromBlueprint()
    {
        $uri = $this->grav['uri'];
        $blueprint = base64_decode($uri->param('blueprint'));
        $path = base64_decode($uri->param('path'));
        $proute = base64_decode($uri->param('proute'));
        $type = $uri->param('type');
        $field = $uri->param('field');
        $event = $this->grav->fireEvent('onAdminCanSave', new Event(['controller' => &$this]));
        if (!$event['can_save']) {
            return false;
        }
        $this->taskRemoveMedia();
        if ($type == 'pages') {
            $page = $this->admin->page(true, $proute);
            $keys = explode('.', preg_replace('/^header./', '', $field));
            $header = (array) $page->header();
            $data_path = implode('.', $keys);
            $data = Utils::getDotNotation($header, $data_path);
            if (isset($data[$path])) {
                unset($data[$path]);
                Utils::setDotNotation($header, $data_path, $data);
                $page->header($header);
            }
            $page->save();
        } else {
            $blueprint_prefix = $type == 'config' ? '' : $type . '.';
            $blueprint_name = str_replace('/blueprints', '', str_replace('config/', '', $blueprint));
            $blueprint_field = $blueprint_prefix . $blueprint_name . '.' . $field;
            $files = $this->grav['config']->get($blueprint_field);
            if ($files) {
                foreach ($files as $key => $value) {
                    if ($key == $path) {
                        unset($files[$key]);
                    }
                }
            }
            $this->grav['config']->set($blueprint_field, $files);
            switch ($type) {
                case 'config':
                    $data = $this->grav['config']->get($blueprint_name);
                    $config = $this->admin->data($blueprint, $data);
                    $config->save();
                    break;
                case 'themes':
                    Theme::saveConfig($blueprint_name);
                    break;
                case 'plugins':
                    Plugin::saveConfig($blueprint_name);
                    break;
            }
        }
        $this->admin->json_response = ['status' => 'success', 'message' => $this->admin->translate('PLUGIN_ADMIN.REMOVE_SUCCESSFUL')];
        return true;
    }