Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
services
t3o sites
typo3.org
typo3_roadmap
Commits
028b62e9
Commit
028b62e9
authored
Apr 17, 2020
by
Thomas Löffler
Committed by
Tomas Norre Mikkelsen
Apr 17, 2020
Browse files
Update v10
parent
8a89ccf9
Changes
20
Hide whitespace changes
Inline
Side-by-side
Classes/Controller/FeatureController.php
View file @
028b62e9
<?php
declare
(
strict_types
=
1
);
namespace
T3o\Typo3Roadmap\Controller
;
/**
...
...
@@ -15,16 +15,19 @@ namespace T3o\Typo3Roadmap\Controller;
* The TYPO3 project - inspiring people to share!
*/
use
T3o\Typo3Roadmap\Domain\Repository\FeatureAreaRepository
;
use
T3o\Typo3Roadmap\Domain\Repository\FeatureRepository
;
use
TYPO3\CMS\Extbase\Mvc\Controller\ActionController
;
/**
* FeatureController
*/
class
FeatureController
extends
\
TYPO3\CMS\Extbase\Mvc\Controller\
ActionController
class
FeatureController
extends
ActionController
{
/**
* featureRepository
*
* @var \T3o\Typo3Roadmap\Domain\Repository\FeatureRepository
* @inject
*/
protected
$featureRepository
=
null
;
...
...
@@ -32,19 +35,28 @@ class FeatureController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControll
* featureAreaRepository
*
* @var \T3o\Typo3Roadmap\Domain\Repository\FeatureAreaRepository
* @inject
*/
protected
$featureAreaRepository
=
null
;
public
function
injectFeatureRepository
(
FeatureRepository
$featureRepository
):
void
{
$this
->
featureRepository
=
$featureRepository
;
}
public
function
injectFeatureAreaRepository
(
FeatureAreaRepository
$featureAreaRepository
):
void
{
$this
->
featureAreaRepository
=
$featureAreaRepository
;
}
/**
* action listFeatures
*
* @return void
*/
public
function
listFeaturesAction
()
public
function
listFeaturesAction
()
:
void
{
if
(
$this
->
settings
[
'featurearea'
]
!=
''
)
{
if
(
$this
->
settings
[
'featurearea'
]
!=
=
''
)
{
$featureArea
=
$this
->
featureAreaRepository
->
findByUid
((
int
)
$this
->
settings
[
'featurearea'
]);
$this
->
view
->
assign
(
'featureArea'
,
$featureArea
);
}
...
...
@@ -58,7 +70,7 @@ class FeatureController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControll
*
* @return void
*/
public
function
showFeatureRecordsAction
()
public
function
showFeatureRecordsAction
()
:
void
{
$features
=
[];
$ids
=
explode
(
','
,
$this
->
settings
[
'feature'
]);
...
...
@@ -73,7 +85,7 @@ class FeatureController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControll
*
* @return void
*/
public
function
showFeatureAreaRecordsAction
()
public
function
showFeatureAreaRecordsAction
()
:
void
{
$featureAreas
=
[];
$ids
=
explode
(
','
,
$this
->
settings
[
'featureArea'
]);
...
...
@@ -82,5 +94,4 @@ class FeatureController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControll
}
$this
->
view
->
assign
(
'featureAreas'
,
$featureAreas
);
}
}
Classes/Controller/RoadmapController.php
View file @
028b62e9
<?php
declare
(
strict_types
=
1
);
namespace
T3o\Typo3Roadmap\Controller
;
/**
...
...
@@ -14,14 +15,17 @@ namespace T3o\Typo3Roadmap\Controller;
* The TYPO3 project - inspiring people to share!
*/
use
\
TYPO3\CMS\Extbase\Persistence\QueryResultInterface
;
use
\
T3o\Typo3Roadmap\Domain\Model\MajorVersion
;
use
T3o\Typo3Roadmap\Domain\Repository\MajorVersionRepository
;
use
T3o\Typo3Roadmap\Domain\Repository\PhpVersionRepository
;
use
TYPO3\CMS\Core\Page\PageRenderer
;
use
TYPO3\CMS\Extbase\Mvc\Controller\ActionController
;
/**
* Class \T3o\Typo3Roadmap\Controller\RoadmapController
* @author Sebastian Diez
*/
class
RoadmapController
extends
\
TYPO3\CMS\Extbase\Mvc\Controller\
ActionController
class
RoadmapController
extends
ActionController
{
/*
* Color Codes for the charts
...
...
@@ -36,7 +40,6 @@ class RoadmapController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControll
* majorVersionRepository
*
* @var \T3o\Typo3Roadmap\Domain\Repository\MajorVersionRepository
* @inject
*/
protected
$majorVersionRepository
=
null
;
...
...
@@ -44,24 +47,25 @@ class RoadmapController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControll
* majorVersionRepository
*
* @var \T3o\Typo3Roadmap\Domain\Repository\PhpVersionRepository
* @inject
*/
protected
$phpVersionRepository
=
null
;
/**
* pageRenderer
*
* @var \TYPO3\CMS\Core\Page\PageRenderer
* @inject
*/
protected
$pageRenderer
=
null
;
public
function
injectMajorVersionRepository
(
MajorVersionRepository
$majorVersionRepository
):
void
{
$this
->
majorVersionRepository
=
$majorVersionRepository
;
}
public
function
injectPhpVersionRepository
(
PhpVersionRepository
$phpVersionRepository
):
void
{
$this
->
phpVersionRepository
=
$phpVersionRepository
;
}
/**
* action roadmap
*
* @return void
*/
public
function
roadmapAction
()
public
function
roadmapAction
()
:
void
{
$majorVersions
=
array_reverse
(
$this
->
majorVersionRepository
->
findAll
()
->
toArray
());
$this
->
view
->
assign
(
'majorVersions'
,
$majorVersions
);
...
...
@@ -75,14 +79,16 @@ class RoadmapController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControll
*
* @param MajorVersion[] $majorVersions
*/
protected
function
renderCharts
(
$majorVersions
)
protected
function
renderCharts
(
$majorVersions
)
:
void
{
$this
->
pageRenderer
->
addJsLibrary
(
'amcharts'
,
'EXT:typo3_roadmap/Resources/Public/JavaScript/amcharts.min.js'
);
$this
->
pageRenderer
->
addJsLibrary
(
'amcharts_serial'
,
'EXT:typo3_roadmap/Resources/Public/JavaScript/serial.min.js'
);
$this
->
pageRenderer
->
addJsLibrary
(
'amcharts_gantt'
,
'EXT:typo3_roadmap/Resources/Public/JavaScript/gantt.min.js'
);
$this
->
pageRenderer
->
addJsLibrary
(
'amcharts_lightheme'
,
'EXT:typo3_roadmap/Resources/Public/JavaScript/lighttheme.min.js'
);
$this
->
pageRenderer
->
addJsLibrary
(
'amcharts_export'
,
'EXT:typo3_roadmap/Resources/Public/JavaScript/export.min.js'
);
$this
->
pageRenderer
->
addCssFile
(
'EXT:typo3_roadmap/Resources/Public/Css/export.css'
);
/** @var PageRenderer $pageRenderer */
$pageRenderer
=
\
TYPO3\CMS\Core\Utility\GeneralUtility
::
makeInstance
(
PageRenderer
::
class
);
$pageRenderer
->
addJsFooterLibrary
(
'amcharts'
,
'EXT:typo3_roadmap/Resources/Public/JavaScript/amcharts.min.js'
);
$pageRenderer
->
addJsFooterLibrary
(
'amcharts_serial'
,
'EXT:typo3_roadmap/Resources/Public/JavaScript/serial.min.js'
);
$pageRenderer
->
addJsFooterLibrary
(
'amcharts_gantt'
,
'EXT:typo3_roadmap/Resources/Public/JavaScript/gantt.min.js'
);
$pageRenderer
->
addJsFooterLibrary
(
'amcharts_lightheme'
,
'EXT:typo3_roadmap/Resources/Public/JavaScript/lighttheme.min.js'
);
$pageRenderer
->
addJsFooterLibrary
(
'amcharts_export'
,
'EXT:typo3_roadmap/Resources/Public/JavaScript/export.min.js'
);
$pageRenderer
->
addCssFile
(
'EXT:typo3_roadmap/Resources/Public/Css/export.css'
);
// @TODO comment css
$data
=
$this
->
generateChartArray
(
$majorVersions
);
$this
->
view
->
assign
(
'data'
,
$data
);
...
...
@@ -147,7 +153,7 @@ class RoadmapController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControll
}
});
'
;
$
this
->
pageRenderer
->
addJsFooterInlineCode
(
'ltsChart'
,
$chartJs
);
$pageRenderer
->
addJsFooterInlineCode
(
'ltsChart'
,
$chartJs
);
}
/**
...
...
@@ -157,9 +163,11 @@ class RoadmapController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControll
*
* @return bool|string
*/
protected
function
dateFromTimestamp
(
$timeStamp
=
0
)
protected
function
dateFromTimestamp
(
$timeStamp
=
0
)
:
?string
{
return
date
(
'Y-m-d'
,
$timeStamp
);
$date
=
date
(
'Y-m-d'
,
$timeStamp
);
return
$date
?:
null
;
}
/**
...
...
@@ -170,7 +178,7 @@ class RoadmapController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControll
*
* @return array
*/
protected
function
generateChartArray
(
$majorVersions
)
protected
function
generateChartArray
(
$majorVersions
)
:
array
{
$data
=
array
();
foreach
(
$majorVersions
as
$index
=>
$majorVersion
)
{
...
...
Classes/Domain/Model/Feature.php
View file @
028b62e9
<?php
declare
(
strict_types
=
1
);
namespace
T3o\Typo3Roadmap\Domain\Model
;
/**
...
...
@@ -14,16 +15,19 @@ namespace T3o\Typo3Roadmap\Domain\Model;
* The TYPO3 project - inspiring people to share!
*/
use
TYPO3\CMS\Extbase\DomainObject\AbstractEntity
;
use
TYPO3\CMS\Extbase\Persistence\ObjectStorage
;
/**
* Feature
*/
class
Feature
extends
\
TYPO3\CMS\Extbase\DomainObject\
AbstractEntity
class
Feature
extends
AbstractEntity
{
/**
* header
*
* @var string
* @
v
alidate
NotEmpty
* @
Extbase\V
alidate
("
NotEmpty
")
*/
protected
$header
=
''
;
...
...
@@ -31,7 +35,7 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* description
*
* @var string
* @
v
alidate
NotEmpty
* @
Extbase\V
alidate
("
NotEmpty
")
*/
protected
$description
=
''
;
...
...
@@ -39,7 +43,7 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* images
*
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference>
* @
c
ascade
remove
* @
TYPO3\CMS\Extbase\Annotation\ORM\C
ascade
("
remove
")
*/
protected
$images
=
null
;
...
...
@@ -54,7 +58,7 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* typo3releaseminorversion
*
* @var \T3o\Typo3Roadmap\Domain\Model\MinorVersion
* @
l
azy
* @
TYPO3\CMS\Extbase\Annotation\ORM\L
azy
*/
protected
$typo3releaseminorversion
=
null
;
...
...
@@ -62,7 +66,7 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* typo3releasemajorversion
*
* @var \T3o\Typo3Roadmap\Domain\Model\MajorVersion
* @
l
azy
* @
TYPO3\CMS\Extbase\Annotation\ORM\L
azy
*/
protected
$typo3releasemajorversion
=
null
;
...
...
@@ -70,16 +74,40 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* featureArea
*
* @var \T3o\Typo3Roadmap\Domain\Model\FeatureArea
* @
l
azy
* @
TYPO3\CMS\Extbase\Annotation\ORM\L
azy
*/
protected
$featureArea
=
null
;
/**
* __construct
*/
public
function
__construct
()
{
//Do not remove the next line: It would break the functionality
$this
->
initStorageObjects
();
}
/**
* Initializes all ObjectStorage properties
* Do not modify this method!
* It will be rewritten on each save in the extension builder
* You may modify the constructor of this class instead
*
* @return void
*/
protected
function
initStorageObjects
():
void
{
$this
->
images
=
new
ObjectStorage
();
$this
->
typo3releasemajorversion
=
new
ObjectStorage
();
$this
->
typo3releaseminorversion
=
new
ObjectStorage
();
}
/**
* Returns the header
*
* @return string $header
*/
public
function
getHeader
()
public
function
getHeader
()
:
string
{
return
$this
->
header
;
}
...
...
@@ -90,7 +118,7 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* @param string $header
* @return void
*/
public
function
setHeader
(
$header
)
public
function
setHeader
(
string
$header
)
:
void
{
$this
->
header
=
$header
;
}
...
...
@@ -100,7 +128,7 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
*
* @return string $description
*/
public
function
getDescription
()
public
function
getDescription
()
:
string
{
return
$this
->
description
;
}
...
...
@@ -111,7 +139,7 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* @param string $description
* @return void
*/
public
function
setDescription
(
$description
)
public
function
setDescription
(
string
$description
)
:
void
{
$this
->
description
=
$description
;
}
...
...
@@ -121,7 +149,7 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
*
* @return string $link
*/
public
function
getLink
()
public
function
getLink
()
:
string
{
return
$this
->
link
;
}
...
...
@@ -132,7 +160,7 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* @param string $link
* @return void
*/
public
function
setLink
(
$link
)
public
function
setLink
(
string
$link
):
void
{
$this
->
link
=
$link
;
}
...
...
@@ -142,7 +170,7 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
*
* @return \T3o\Typo3Roadmap\Domain\Model\FeatureArea $featureArea
*/
public
function
getFeatureArea
()
public
function
getFeatureArea
()
:
FeatureArea
{
return
$this
->
featureArea
;
}
...
...
@@ -153,7 +181,7 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* @param \T3o\Typo3Roadmap\Domain\Model\FeatureArea $featureArea
* @return void
*/
public
function
setFeatureArea
(
\
T3o\Typo3Roadmap\Domain\Model\
FeatureArea
$featureArea
)
public
function
setFeatureArea
(
FeatureArea
$featureArea
)
{
$this
->
featureArea
=
$featureArea
;
}
...
...
@@ -161,9 +189,9 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
/**
* Returns the typo3releaseminorversion
*
* @return \T3o\Typo3Roadmap\Domain\Model\MinorVersion
$typo3releaseminorversion
* @return \T3o\Typo3Roadmap\Domain\Model\MinorVersion
*/
public
function
getTypo3releaseminorversion
()
public
function
getTypo3releaseminorversion
()
:
MinorVersion
{
return
$this
->
typo3releaseminorversion
;
}
...
...
@@ -174,7 +202,7 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* @param \T3o\Typo3Roadmap\Domain\Model\MinorVersion $typo3releaseminorversion
* @return void
*/
public
function
setTypo3releaseminorversion
(
\
T3o\Typo3Roadmap\Domain\Model\
MinorVersion
$typo3releaseminorversion
)
public
function
setTypo3releaseminorversion
(
MinorVersion
$typo3releaseminorversion
)
:
void
{
$this
->
typo3releaseminorversion
=
$typo3releaseminorversion
;
}
...
...
@@ -182,9 +210,9 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
/**
* Returns the typo3releasemajorversion
*
* @return \T3o\Typo3Roadmap\Domain\Model\M
inorVersion $typo3releasem
ajor
v
ersion
* @return \T3o\Typo3Roadmap\Domain\Model\Major
V
ersion
*/
public
function
getTypo3releasemajorversion
()
public
function
getTypo3releasemajorversion
()
:
MajorVersion
{
return
$this
->
typo3releasemajorversion
;
}
...
...
@@ -192,42 +220,20 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
/**
* Sets the typo3releasemajorversion
*
* @param \T3o\Typo3Roadmap\Domain\Model\M
in
orVersion $typo3releasemajorversion
* @param \T3o\Typo3Roadmap\Domain\Model\M
aj
orVersion $typo3releasemajorversion
* @return void
*/
public
function
setTypo3releasemajorversion
(
\
T3o\Typo3Roadmap\Domain\Model\Min
orVersion
$typo3releasemajorversion
)
public
function
setTypo3releasemajorversion
(
Maj
orVersion
$typo3releasemajorversion
)
:
void
{
$this
->
typo3releasemajorversion
=
$typo3releasemajorversion
;
}
/**
* __construct
*/
public
function
__construct
()
{
//Do not remove the next line: It would break the functionality
$this
->
initStorageObjects
();
}
/**
* Initializes all ObjectStorage properties
* Do not modify this method!
* It will be rewritten on each save in the extension builder
* You may modify the constructor of this class instead
*
* @return void
*/
protected
function
initStorageObjects
()
{
$this
->
images
=
new
\
TYPO3\CMS\Extbase\Persistence\ObjectStorage
();
}
/**
* Returns the images
*
* @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference>
images
* @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference>
*/
public
function
getImages
()
public
function
getImages
()
:
ObjectStorage
{
return
$this
->
images
;
}
...
...
@@ -238,7 +244,7 @@ class Feature extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference> $images
* @return void
*/
public
function
setImages
(
\
TYPO3\CMS\Extbase\Persistence\
ObjectStorage
$images
)
public
function
setImages
(
ObjectStorage
$images
)
:
void
{
$this
->
images
=
$images
;
}
...
...
Classes/Domain/Model/FeatureArea.php
View file @
028b62e9
<?php
declare
(
strict_types
=
1
);
namespace
T3o\Typo3Roadmap\Domain\Model
;
/**
...
...
@@ -14,16 +15,20 @@ namespace T3o\Typo3Roadmap\Domain\Model;
* The TYPO3 project - inspiring people to share!
*/
use
TYPO3\CMS\Extbase\Domain\Model\FileReference
;
use
TYPO3\CMS\Extbase\DomainObject\AbstractEntity
;
use
TYPO3\CMS\Extbase\Persistence\ObjectStorage
;
/**
* FeatureArea
*/
class
FeatureArea
extends
\
TYPO3\CMS\Extbase\DomainObject\
AbstractEntity
class
FeatureArea
extends
AbstractEntity
{
/**
* title
*
* @var string
* @
v
alidate
NotEmpty
* @
Extbase\V
alidate
("
NotEmpty
")
*/
protected
$title
=
''
;
...
...
@@ -31,7 +36,7 @@ class FeatureArea extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* description
*
* @var string
* @
v
alidate
NotEmpty
* @
Extbase\V
alidate
("
NotEmpty
")
*/
protected
$description
=
''
;
...
...
@@ -39,7 +44,7 @@ class FeatureArea extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* page
*
* @var string
* @
v
alidate
NotEmpty
* @
Extbase\V
alidate
("
NotEmpty
")
*/
protected
$page
=
''
;
...
...
@@ -47,16 +52,38 @@ class FeatureArea extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* images
*
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference>
* @
c
ascade
remove
* @
TYPO3\CMS\Extbase\Annotation\ORM\C
ascade
("
remove
")
*/
protected
$images
=
null
;
/**
* __construct
*/
public
function
__construct
()
{
//Do not remove the next line: It would break the functionality
$this
->
initStorageObjects
();
}
/**
* Initializes all ObjectStorage properties
* Do not modify this method!
* It will be rewritten on each save in the extension builder
* You may modify the constructor of this class instead
*
* @return void
*/
protected
function
initStorageObjects
()
{
$this
->
images
=
new
ObjectStorage
();
}
/**
* Returns the title
*
* @return string $title
*/
public
function
getTitle
()
public
function
getTitle
()
:
string
{
return
$this
->
title
;
}
...
...
@@ -67,7 +94,7 @@ class FeatureArea extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* @param string $title
* @return void
*/
public
function
setTitle
(
$title
)
public
function
setTitle
(
string
$title
)
:
void
{
$this
->
title
=
$title
;
}
...
...
@@ -77,7 +104,7 @@ class FeatureArea extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
*
* @return string $description
*/
public
function
getDescription
()
public
function
getDescription
()
:
string
{
return
$this
->
description
;
}
...
...
@@ -88,7 +115,7 @@ class FeatureArea extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* @param string $description
* @return void
*/
public
function
setDescription
(
$description
)
public
function
setDescription
(
string
$description
)
:
void
{
$this
->
description
=
$description
;
}
...
...
@@ -98,7 +125,7 @@ class FeatureArea extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
*
* @return string $page
*/
public
function
getPage
()
public
function
getPage
()
:
string
{
return
$this
->
page
;
}
...
...
@@ -109,51 +136,29 @@ class FeatureArea extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
* @param string $page
* @return void
*/
public
function
setPage
(
$page
)
public
function
setPage
(
string
$page
):
void
{
$this
->
page
=
$page
;
}
/**
* __construct
*/
public
function
__construct
()
{
//Do not remove the next line: It would break the functionality
$this
->
initStorageObjects
();
}
/**
* Initializes all ObjectStorage properties
* Do not modify this method!
* It will be rewritten on each save in the extension builder
* You may modify the constructor of this class instead
*
* @return void
*/
protected
function
initStorageObjects
()
{
$this
->
images
=
new
\
TYPO3\CMS\Extbase\Persistence\ObjectStorage
();
}
/**
* Adds a FileReference
*
* @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $image
* @return void
*/
public
function
addImage
(
\
TYPO3\CMS\Extbase\Domain\Model\
FileReference
$image
)
public
function
addImage
(
FileReference
$image
)
:
void
{
$this
->
images
->
attach
(
$image
s
);
$this
->
images
->
attach
(
$image
);
}
/**
* Removes a FileReference
*
* @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $imageToRemove
The FileReference to be removed
* @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $imageToRemove
* @return void
*/
public
function
removeImage
(
\
TYPO3\CMS\Extbase\Domain\Model\
FileReference
$imageToRemove
)
public
function
removeImage
(
FileReference
$imageToRemove
)
:
void
{
$this
->
images
->
detach
(
$imageToRemove