Class DataDifferencer
Utility class to render views of the differences between two data objects (or two versions of the same data object).
Construcing a diff object is done as follows:
$fromRecord = Versioned::get_version('SiteTree', $pageID, $fromVersion); $toRecord = Versioned::get_version('SiteTree, $pageID, $toVersion); $diff = new DataDifferencer($fromRecord, $toRecord);
And then it can be used in a number of ways. You can use the ChangedFields() method in a template:
<dl class="diff"> <% control Diff.ChangedFields %> <dt>$Title</dt> <dd>$Diff</dd> <% end_control %> </dl>
Or you can get the diff'ed content as another DataObject, that you can insert into a form.
$form->loadDataFrom($diff->diffedData());
If there are fields whose changes you aren't interested in, you can ignore them like so:
$diff->ignoreFields('AuthorID', 'Status');
- Object
-
ViewableData
implements
IteratorAggregate
-
DataDifferencer
Methods summary
public
|
#
__construct( mixed $fromRecord, mixed $toRecord )
Construct a DataDifferencer to show the changes between $fromRecord and $toRecord. If $fromRecord is null, this will represent a "creation". |
public
|
#
ignoreFields( mixed $ignoredFields )
Specify some fields to ignore changes from. Repeated calls are cumulative. |
public
|
#
diffedData( )
Get a DataObject with altered values replaced with HTML diff strings, incorporating <ins> and <del> tags. |
public
|
#
ChangedFields( )
Get a DataObjectSet of the changed fields. Each element is an array data
containing |
public
|
#
changedFieldNames( )
Get an array of the names of every fields that has changed. This is simpler
than |
Methods inherited from ViewableData
ATT_val(),
BaseHref(),
CSSClasses(),
ColumnBreak(),
ColumnCalc(),
ColumnNumber(),
ColumnPad(),
ColumnPos(),
CurrentMember(),
CurrentPage(),
Debug(),
Even(),
EvenOdd(),
First(),
FirstLast(),
HasPerm(),
IsAjax(),
JS_val(),
Last(),
Me(),
Middle(),
MiddleString(),
Modulus(),
MultipleOf(),
Odd(),
Pos(),
RAW_val(),
SQL_val(),
ThemeDir(),
ThemeName(),
Top(),
TotalItems(),
XML_val(),
__get(),
__isset(),
__set(),
buildCastingCache(),
cachedCall(),
castingClass(),
castingHelper(),
castingHelperPair(),
castingObjectCreator(),
castingObjectCreatorPair(),
customise(),
defineMethods(),
escapeTypeForField(),
getField(),
getIterator(),
getSecurityID(),
getXMLValues(),
hasField(),
hasValue(),
i18nLocale(),
iteratorProperties(),
obj(),
renderWith(),
setCustomisedObj(),
setField()
Methods inherited from Object
__call(),
__toString(),
__wakeup(),
addMethodsFrom(),
addStaticVars(),
addWrapperMethod(),
add_extension(),
add_static_var(),
allMethodNames(),
cacheToFile(),
cacheToFileWithArgs(),
clearCache(),
combined_static(),
create(),
createMethod(),
create_from_string(),
exists(),
extInstance(),
extend(),
getCustomClass(),
getExtensionInstance(),
getExtensionInstances(),
get_extensions(),
get_static(),
hasExtension(),
hasMethod(),
has_extension(),
invokeWithExtensions(),
is_a(),
loadCache(),
parentClass(),
parse_class_spec(),
remove_extension(),
sanitiseCachename(),
saveCache(),
set_stat(),
set_static(),
set_uninherited(),
stat(),
strong_create(),
uninherited(),
uninherited_static(),
useCustomClass()
Magic methods summary
Properties summary
protected
mixed
|
$fromRecord | |
protected
mixed
|
$toRecord | |
protected
array
|
$ignoredFields |
Properties inherited from ViewableData
$casting,
$customisedObject,
$default_cast,
$failover,
$iteratorPos,
$iteratorTotalItems