mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2026-05-13 01:07:30 +02:00
Update all Form classes to rely on PageInterface instead of Page class
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
1. [](#improved)
|
||||
* Improved image background overlay and tools
|
||||
* Update all Form classes to rely on `PageInterface` instead of `Page` class
|
||||
1. [](#bugfix)
|
||||
* Incorrect 2FA lang code [#1618](https://github.com/getgrav/grav-plugin-admin/issues/1618)
|
||||
* Fixed potential undefined property in `onPageNotFound` event handling
|
||||
|
||||
@@ -7,6 +7,7 @@ use Grav\Common\Grav;
|
||||
use Grav\Common\Helpers\LogViewer;
|
||||
use Grav\Common\Inflector;
|
||||
use Grav\Common\Language\Language;
|
||||
use Grav\Common\Page\Interfaces\PageInterface;
|
||||
use Grav\Common\Page\Page;
|
||||
use Grav\Common\Page\Pages;
|
||||
use Grav\Common\Plugin;
|
||||
@@ -455,7 +456,7 @@ class AdminPlugin extends Plugin
|
||||
|
||||
// Replace page service with admin.
|
||||
$this->grav['page'] = function () use ($self) {
|
||||
$page = new Page;
|
||||
$page = new Page();
|
||||
$page->expires(0);
|
||||
|
||||
if ($this->grav['user']->authorize('admin.login')) {
|
||||
@@ -502,12 +503,12 @@ class AdminPlugin extends Plugin
|
||||
$event = new Event(['page' => null]);
|
||||
$event->page = null;
|
||||
$event = $this->grav->fireEvent('onPageNotFound', $event);
|
||||
/** @var Page $page */
|
||||
/** @var PageInterface $page */
|
||||
$page = $event->page;
|
||||
|
||||
if (!$page || !$page->routable()) {
|
||||
$error_file = $this->grav['locator']->findResource('plugins://admin/pages/admin/error.md');
|
||||
$page = new Page;
|
||||
$page = new Page();
|
||||
$page->init(new \SplFileInfo($error_file));
|
||||
$page->slug(basename($this->route));
|
||||
$page->routable(true);
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
namespace Grav\Plugin\Admin\Twig;
|
||||
|
||||
use Grav\Common\Grav;
|
||||
use Grav\Common\Page\Interfaces\PageInterface;
|
||||
use Grav\Common\Yaml;
|
||||
use Grav\Common\Language\Language;
|
||||
use Grav\Common\Page\Page;
|
||||
|
||||
class AdminTwigExtension extends \Twig_Extension
|
||||
{
|
||||
@@ -65,7 +65,7 @@ class AdminTwigExtension extends \Twig_Extension
|
||||
return clone $obj;
|
||||
}
|
||||
|
||||
public function getPageUrl($context, Page $page)
|
||||
public function getPageUrl($context, PageInterface $page)
|
||||
{
|
||||
$page_route = trim($page->rawRoute(), '/');
|
||||
$page_lang = $page->language();
|
||||
|
||||
@@ -10,6 +10,7 @@ use Grav\Common\GPM\Response;
|
||||
use Grav\Common\Grav;
|
||||
use Grav\Common\Language\LanguageCodes;
|
||||
use Grav\Common\Page\Collection;
|
||||
use Grav\Common\Page\Interfaces\PageInterface;
|
||||
use Grav\Common\Page\Page;
|
||||
use Grav\Common\Page\Pages;
|
||||
use Grav\Common\Plugins;
|
||||
@@ -297,11 +298,11 @@ class Admin
|
||||
$pages = Grav::instance()['pages'];
|
||||
$route = '/' . ltrim(Grav::instance()['admin']->route, '/');
|
||||
|
||||
/** @var Page $page */
|
||||
/** @var PageInterface $page */
|
||||
$page = $pages->dispatch($route);
|
||||
$parent_route = null;
|
||||
if ($page) {
|
||||
/** @var Page $parent */
|
||||
/** @var PageInterface $parent */
|
||||
$parent = $page->parent();
|
||||
$parent_route = $parent->rawRoute();
|
||||
}
|
||||
@@ -328,7 +329,7 @@ class Admin
|
||||
$pages = $grav['pages'];
|
||||
$route = '/' . ltrim($grav['admin']->route, '/');
|
||||
|
||||
/** @var Page $page */
|
||||
/** @var PageInterface $page */
|
||||
$page = $pages->dispatch($route);
|
||||
$parent_route = null;
|
||||
if ($page) {
|
||||
@@ -1561,7 +1562,7 @@ class Admin
|
||||
*
|
||||
* @param null $path
|
||||
*
|
||||
* @return Page
|
||||
* @return PageInterface
|
||||
*/
|
||||
public function page($route = false, $path = null)
|
||||
{
|
||||
@@ -1585,7 +1586,7 @@ class Admin
|
||||
*
|
||||
* @param $path
|
||||
*
|
||||
* @return Page
|
||||
* @return PageInterface
|
||||
*/
|
||||
public function getPage($path)
|
||||
{
|
||||
@@ -1614,7 +1615,7 @@ class Admin
|
||||
$parent = $this->getPage($ppath !== '/' ? $ppath : '');
|
||||
|
||||
// Create page.
|
||||
$page = new Page;
|
||||
$page = new Page();
|
||||
$page->parent($parent);
|
||||
$page->filePath($parent->path() . '/' . $slug . '/' . $page->name());
|
||||
|
||||
@@ -1815,12 +1816,12 @@ class Admin
|
||||
* Get all the media of a type ('images' | 'audios' | 'videos' | 'files')
|
||||
*
|
||||
* @param string $type
|
||||
* @param Page|null $page
|
||||
* @param PageInterface|null $page
|
||||
* @param array $files
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function getMediaOfType($type, ?Page $page, array $files)
|
||||
private function getMediaOfType($type, ?PageInterface $page, array $files)
|
||||
{
|
||||
if ($page) {
|
||||
$media = $page->media();
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
namespace Grav\Plugin\Admin;
|
||||
|
||||
use Grav\Common\Config\Config;
|
||||
use Grav\Common\Data\Data;
|
||||
use Grav\Common\Filesystem\Folder;
|
||||
use Grav\Common\Grav;
|
||||
use Grav\Common\Media\Interfaces\MediaInterface;
|
||||
use Grav\Common\Page\Interfaces\PageInterface;
|
||||
use Grav\Common\Page\Media;
|
||||
use Grav\Common\Uri;
|
||||
use Grav\Common\Utils;
|
||||
@@ -724,9 +726,9 @@ class AdminBaseController
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Grav\Common\Page\Page|\Grav\Common\Data\Data $obj
|
||||
* @param PageInterface|Data $obj
|
||||
*
|
||||
* @return \Grav\Common\Page\Page|\Grav\Common\Data\Data
|
||||
* @return PageInterface|Data
|
||||
*/
|
||||
protected function storeFiles($obj)
|
||||
{
|
||||
|
||||
@@ -10,6 +10,7 @@ use Grav\Common\GPM\GPM as GravGPM;
|
||||
use Grav\Common\GPM\Installer;
|
||||
use Grav\Common\Grav;
|
||||
use Grav\Common\Data;
|
||||
use Grav\Common\Page\Interfaces\PageInterface;
|
||||
use Grav\Common\Page\Media;
|
||||
use Grav\Common\Page\Medium\Medium;
|
||||
use Grav\Common\Page\Page;
|
||||
@@ -18,13 +19,11 @@ use Grav\Common\Page\Collection;
|
||||
use Grav\Common\Security;
|
||||
use Grav\Common\User\User;
|
||||
use Grav\Common\Utils;
|
||||
use Grav\Plugin\Admin\Twig\AdminTwigExtension;
|
||||
use Grav\Plugin\Login\TwoFactorAuth\TwoFactorAuth;
|
||||
use Grav\Common\Yaml;
|
||||
use PicoFeed\Parser\MalformedXmlException;
|
||||
use RocketTheme\Toolbox\Event\Event;
|
||||
use RocketTheme\Toolbox\File\File;
|
||||
use RocketTheme\Toolbox\File\JsonFile;
|
||||
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
|
||||
|
||||
|
||||
@@ -576,7 +575,7 @@ class AdminController extends AdminBaseController
|
||||
// Find new parent page in order to build the path.
|
||||
$route = !isset($data['route']) ? dirname($this->admin->route) : $data['route'];
|
||||
|
||||
/** @var Page $obj */
|
||||
/** @var PageInterface $obj */
|
||||
$obj = $this->admin->page(true);
|
||||
|
||||
if (!isset($data['folder']) || !$data['folder']) {
|
||||
@@ -684,7 +683,7 @@ class AdminController extends AdminBaseController
|
||||
}
|
||||
|
||||
// Always redirect if a page route was changed, to refresh it
|
||||
if ($obj instanceof Page) {
|
||||
if ($obj instanceof PageInterface) {
|
||||
if (method_exists($obj, 'unsetRouteSlug')) {
|
||||
$obj->unsetRouteSlug();
|
||||
}
|
||||
@@ -1332,7 +1331,7 @@ class AdminController extends AdminBaseController
|
||||
$rawroute = $data['rawroute'] ?? null;
|
||||
|
||||
if ($rawroute) {
|
||||
/** @var Page $page */
|
||||
/** @var PageInterface $page */
|
||||
$page = $this->grav['pages']->dispatch($rawroute);
|
||||
|
||||
if ($page) {
|
||||
@@ -1859,11 +1858,11 @@ class AdminController extends AdminBaseController
|
||||
/**
|
||||
* Prepare a page to be stored: update its folder, name, template, header and content
|
||||
*
|
||||
* @param \Grav\Common\Page\Page $page
|
||||
* @param PageInterface $page
|
||||
* @param bool $clean_header
|
||||
* @param string $language
|
||||
*/
|
||||
protected function preparePage(Page $page, $clean_header = false, $language = '')
|
||||
protected function preparePage(PageInterface $page, $clean_header = false, $language = '')
|
||||
{
|
||||
$input = (array)$this->data;
|
||||
|
||||
@@ -2019,12 +2018,12 @@ class AdminController extends AdminBaseController
|
||||
* Find the first available $item ('slug' | 'folder') for a page
|
||||
* Used when copying a page, to determine the first available slot
|
||||
*
|
||||
* @param string $item
|
||||
* @param Page $page
|
||||
* @param string $item
|
||||
* @param PageInterface $page
|
||||
*
|
||||
* @return string The first available slot
|
||||
*/
|
||||
protected function findFirstAvailable($item, $page)
|
||||
protected function findFirstAvailable($item, PageInterface $page)
|
||||
{
|
||||
if (!$page->parent()->children()) {
|
||||
return $page->{$item}();
|
||||
|
||||
@@ -3,7 +3,7 @@ namespace Grav\Plugin\Admin;
|
||||
|
||||
use Grav\Common\Config\Config;
|
||||
use Grav\Common\Grav;
|
||||
use Grav\Common\Page\Page;
|
||||
use Grav\Common\Page\Interfaces\PageInterface;
|
||||
|
||||
/**
|
||||
* Class Popularity
|
||||
@@ -56,7 +56,7 @@ class Popularity
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var Page $page */
|
||||
/** @var PageInterface $page */
|
||||
$page = Grav::instance()['page'];
|
||||
$relative_url = str_replace(Grav::instance()['base_url_relative'], '', $page->url());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user