Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
agallavardin
fusiondirectory-plugins
Commits
6f48eb94
Verified
Commit
6f48eb94
authored
Oct 01, 2019
by
Côme Chilliet
Browse files
✨
feat(sinaps) Allow XPath for XML fields mapping
issue #5956
parent
86f0db15
Changes
2
Hide whitespace changes
Inline
Side-by-side
sinaps/config/sinaps/class_sinapsConfig.inc
View file @
6f48eb94
...
...
@@ -107,7 +107,7 @@ class sinapsConfig extends simplePlugin
'fdSinapsUserDiffusionMap'
,
[
new
StringAttribute
(
''
,
_
(
'
Name of the Sinaps attribute
'
),
''
,
_
(
'
XPath for the XML value to fetch
'
),
'fdSinapsUserDiffusionMap_sinaps'
,
TRUE
),
new
StringAttribute
(
...
...
@@ -138,7 +138,7 @@ class sinapsConfig extends simplePlugin
'fdSinapsStructureDiffusionMap'
,
[
new
StringAttribute
(
''
,
_
(
'
Name of the Sinaps attribute
'
),
''
,
_
(
'
XPath for the XML value to fetch
'
),
'fdSinapsStructureDiffusionMap_sinaps'
,
TRUE
),
new
StringAttribute
(
...
...
@@ -226,7 +226,7 @@ class sinapsConfig extends simplePlugin
parent
::
__construct
(
$dn
,
$object
,
$parent
,
$mainTab
,
$attributesInfo
);
$this
->
attributesAccess
[
'fdSinapsAcquisitionContactMethodMap'
]
->
setHeaders
([
_
(
'LDAP'
),
_
(
'Sinaps'
)]);
$this
->
attributesAccess
[
'fdSinapsUserDiffusionMap'
]
->
setHeaders
([
_
(
'
Sinaps
'
),
_
(
'Tab'
),
_
(
'Field'
)]);
$this
->
attributesAccess
[
'fdSinapsStructureDiffusionMap'
]
->
setHeaders
([
_
(
'
Sinaps
'
),
_
(
'Tab'
),
_
(
'Field'
)]);
$this
->
attributesAccess
[
'fdSinapsUserDiffusionMap'
]
->
setHeaders
([
_
(
'
XPath
'
),
_
(
'Tab'
),
_
(
'Field'
)]);
$this
->
attributesAccess
[
'fdSinapsStructureDiffusionMap'
]
->
setHeaders
([
_
(
'
XPath
'
),
_
(
'Tab'
),
_
(
'Field'
)]);
}
}
sinaps/include/class_sinapsRequest.inc
View file @
6f48eb94
...
...
@@ -145,11 +145,13 @@ class sinapsRequest
array_unshift
(
$values
[
'entite'
][
'supannRefId'
],
'{'
.
$uuidPrefix
.
'}'
.
$uuid
);
foreach
(
$mapping
as
$sinapsAttr
=>
list
(
$fdTab
,
$fdAttr
))
{
if
(
isset
(
$structure
->
$sinapsAttr
))
{
$values
[
$fdTab
][
$fdAttr
]
=
(
string
)
$structure
->
$sinapsAttr
;
}
else
{
foreach
(
$mapping
as
$xpath
=>
list
(
$fdTab
,
$fdAttr
))
{
$nodes
=
$structure
->
xpath
(
$xpath
);
if
(
empty
(
$nodes
))
{
$values
[
$fdTab
][
$fdAttr
]
=
''
;
}
else
{
/* Note: We only support monovalued attributes through custom mapping for now */
$values
[
$fdTab
][
$fdAttr
]
=
(
string
)
$nodes
[
0
];
}
}
...
...
@@ -294,11 +296,13 @@ class sinapsRequest
return
$values
;
}
foreach
(
$mapping
as
$sinapsAttr
=>
list
(
$fdTab
,
$fdAttr
))
{
if
(
isset
(
$personne
->
$sinapsAttr
))
{
$values
[
$fdTab
][
$fdAttr
]
=
(
string
)
$personne
->
$sinapsAttr
;
}
else
{
foreach
(
$mapping
as
$xpath
=>
list
(
$fdTab
,
$fdAttr
))
{
$nodes
=
$personne
->
xpath
(
$xpath
);
if
(
empty
(
$nodes
))
{
$values
[
$fdTab
][
$fdAttr
]
=
''
;
}
else
{
/* Note: We only support monovalued attributes through custom mapping for now */
$values
[
$fdTab
][
$fdAttr
]
=
(
string
)
$nodes
[
0
];
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment