File tree Expand file tree Collapse file tree 4 files changed +31
-25
lines changed Expand file tree Collapse file tree 4 files changed +31
-25
lines changed Original file line number Diff line number Diff line change 10
10
11
11
namespace MSlwk \XmlUrlRewrites \Model \Config ;
12
12
13
+ use DOMDocument ;
14
+ use DOMNode ;
15
+ use DOMXPath ;
13
16
use Magento \Framework \Config \ConverterInterface ;
14
17
15
18
/**
19
22
class Converter implements ConverterInterface
20
23
{
21
24
/**
22
- * Convert config
23
- *
24
- * @param \DOMDocument $source
25
+ * @param DOMDocument $source
25
26
* @return array
26
27
*/
27
28
public function convert ($ source )
28
29
{
29
- // TODO: Implement convert() method.
30
+ $ xpath = new DOMXPath ($ source );
31
+ $ rewrites = [];
32
+ /** @var $rewriteNode DOMNode */
33
+ foreach ($ xpath ->query ('/config/rewrites/rewrite ' ) as $ rewriteNode ) {
34
+ $ rewriteAttributes = $ rewriteNode ->attributes ;
35
+ $ pathAttribute = $ rewriteAttributes ->getNamedItem ('path ' );
36
+ $ targetAttribute = $ rewriteAttributes ->getNamedItem ('target ' );
37
+ $ rewrites [$ pathAttribute ->nodeValue ] = $ targetAttribute ->nodeValue ;
38
+ }
39
+ return $ rewrites ;
30
40
}
31
41
}
Original file line number Diff line number Diff line change 21
21
class Reader extends Filesystem
22
22
{
23
23
const XML_FILE_NAME = 'url_rewrites.xml ' ;
24
+ const ID_ATTRIBUTES = ['/config/rewrites/rewrite ' => 'target ' ];
24
25
25
26
/**
27
+ * Reader constructor.
26
28
* @param FileResolverInterface $fileResolver
27
29
* @param Converter $converter
28
30
* @param SchemaLocator $schemaLocator
@@ -42,7 +44,7 @@ public function __construct(
42
44
$ schemaLocator ,
43
45
$ validationState ,
44
46
$ fileName ,
45
- $ this -> _idAttributes
47
+ self :: ID_ATTRIBUTES
46
48
);
47
49
}
48
50
}
Original file line number Diff line number Diff line change 6
6
<xs : element name =" config" >
7
7
<xs : complexType >
8
8
<xs : sequence >
9
- <xs : element name =" url_rewrites " >
9
+ <xs : element name =" rewrites " >
10
10
<xs : complexType >
11
11
<xs : sequence >
12
- <xs : element name =" rewrites" >
13
- <xs : complexType >
14
- <xs : sequence >
15
- <xs : element minOccurs =" 0" maxOccurs =" unbounded" name =" rewrite" type =" rewrite" />
16
- </xs : sequence >
17
- </xs : complexType >
18
-
19
- <xs : unique name =" uniqueRewritePath" >
20
- <xs : annotation >
21
- <xs : documentation >
22
- URL rewrite path must be unique
23
- </xs : documentation >
24
- </xs : annotation >
25
- <xs : selector xpath =" .//*" />
26
- <xs : field xpath =" @path" />
27
- </xs : unique >
28
- </xs : element >
12
+ <xs : element minOccurs =" 0" maxOccurs =" unbounded" name =" rewrite" type =" rewrite" />
29
13
</xs : sequence >
30
14
</xs : complexType >
15
+
16
+ <xs : unique name =" uniqueRewritePath" >
17
+ <xs : annotation >
18
+ <xs : documentation >
19
+ URL rewrite path must be unique
20
+ </xs : documentation >
21
+ </xs : annotation >
22
+ <xs : selector xpath =" rewrite" />
23
+ <xs : field xpath =" @path" />
24
+ </xs : unique >
31
25
</xs : element >
32
26
</xs : sequence >
33
27
</xs : complexType >
40
34
</xs : documentation >
41
35
</xs : annotation >
42
36
43
- <xs : attribute name =" parth " type =" xs:string" use =" required" />
37
+ <xs : attribute name =" path " type =" xs:string" use =" required" />
44
38
<xs : attribute name =" target" type =" xs:string" use =" required" />
45
39
</xs : complexType >
46
40
</xs : schema >
Original file line number Diff line number Diff line change 8
8
9
9
\Magento \Framework \Component \ComponentRegistrar::register (
10
10
\Magento \Framework \Component \ComponentRegistrar::MODULE ,
11
- 'MSlwk_RepositorySearchResultBuilder ' ,
11
+ 'MSlwk_XmlUrlRewrites ' ,
12
12
__DIR__
13
13
);
You can’t perform that action at this time.
0 commit comments