1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-10 16:54:44 +02:00

Add the FieldtypeDoesVersions interface for Fieldtypes that support handling versions of their own page data

This commit is contained in:
Ryan Cramer
2023-12-08 13:39:48 -05:00
parent 993b5cc162
commit 3e323e5f2f
2 changed files with 55 additions and 0 deletions

View File

@@ -236,6 +236,58 @@ interface FieldtypeHasPageimages {
public function getPageimages(Page $page, Field $field); public function getPageimages(Page $page, Field $field);
} }
/**
* Indicates Fieldtype has version support and manages its own versions
*
*/
interface FieldtypeDoesVersions {
/**
* Get the value for given page, field and version
*
* @param Page $page
* @param Field $field
* @param int $version
* @return mixed
*
*/
public function getPageFieldVersion(Page $page, Field $field, $version);
/**
* Save version of given page field
*
* @param Page $page
* @param Field $field
* @param int $version
* @return bool
*
*/
public function savePageFieldVersion(Page $page, Field $field, $version);
/**
* Restore version of given page field to live page
*
* @param Page $page
* @param Field $field
* @param int $version
* @return bool
*
*/
public function restorePageFieldVersion(Page $page, Field $field, $version);
/**
* Delete version
*
* @param Page $page
* @param Field $field
* @param int $version
* @return bool
*
*/
public function deletePageFieldVersion(Page $page, Field $field, $version);
}
/** /**
* Indicates that an Inputfield provides tree selection capabilities * Indicates that an Inputfield provides tree selection capabilities
* *

View File

@@ -881,6 +881,9 @@ class PageTraversal {
} }
if($language && $language->id) $url .= "&language=$language->id"; if($language && $language->id) $url .= "&language=$language->id";
} }
$version = (int) ((string) $page->get('_version|_repeater_version'));
if($version) $url .= "&version=$version";
$append = $page->wire()->session->getFor($page, 'appendEditUrl'); $append = $page->wire()->session->getFor($page, 'appendEditUrl');