Grav\Plugin\Admin\AdminController::taskSaveas PHP Méthode

taskSaveas() protected méthode

Save the current page in a different language. Automatically switches to that language.
protected taskSaveas ( ) : boolean
Résultat boolean True if the action was performed.
    protected function taskSaveas()
    {
        if (!$this->authorizeTask('save', $this->dataPermissions())) {
            return false;
        }
        $data = (array) $this->data;
        $language = $data['lang'];
        if ($language) {
            $this->grav['session']->admin_lang = $language ?: 'en';
        }
        $uri = $this->grav['uri'];
        $obj = $this->admin->page($uri->route());
        $this->preparePage($obj, false, $language);
        $file = $obj->file();
        if ($file) {
            $filename = $this->determineFilenameIncludingLanguage($obj->name(), $language);
            $path = $obj->path() . DS . $filename;
            $aFile = File::instance($path);
            $aFile->save();
            $aPage = new Page();
            $aPage->init(new \SplFileInfo($path), $language . '.md');
            $aPage->header($obj->header());
            $aPage->rawMarkdown($obj->rawMarkdown());
            $aPage->validate();
            $aPage->filter();
            $aPage->save();
            $this->grav->fireEvent('onAdminAfterSave', new Event(['page' => $obj]));
        }
        $this->admin->setMessage($this->admin->translate('PLUGIN_ADMIN.SUCCESSFULLY_SWITCHED_LANGUAGE'), 'info');
        $this->setRedirect('/' . $language . $uri->route());
        return true;
    }