/** Synchronizes a custom layout with its master layout
* @param ClassDefinition\CustomLayout $customLayout
*/
public static function synchronizeCustomLayout(ClassDefinition\CustomLayout $customLayout)
{
$classId = $customLayout->getClassId();
$class = ClassDefinition::getById($classId);
if ($class && $class->getModificationDate() > $customLayout->getModificationDate()) {
$masterDefinition = $class->getFieldDefinitions();
$customLayoutDefinition = $customLayout->getLayoutDefinitions();
$targetList = self::extractLocalizedFieldDefinitions($class->getLayoutDefinitions(), array(), false);
$masterDefinition = array_merge($masterDefinition, $targetList);
self::synchronizeCustomLayoutFieldWithMaster($masterDefinition, $customLayoutDefinition);
$customLayout->save();
}
}