source: pmb4.2/trunk/fuentes/pmb/admin/connecteurs/out/webdav/lib/Sabre/DAV/Property/HrefList.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 2.1 KB
Line 
1<?php
2
3namespace Sabre\DAV\Property;
4
5use Sabre\DAV;
6
7/**
8 * HrefList property
9 *
10 * This property contains multiple {DAV:}href elements, each containing a url.
11 *
12 * @copyright Copyright (C) 2007-2013 Rooftop Solutions. All rights reserved.
13 * @author Evert Pot (http://www.rooftopsolutions.nl/)
14 * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
15 */
16class HrefList extends DAV\Property {
17
18    /**
19     * hrefs
20     *
21     * @var array
22     */
23    private $hrefs;
24
25    /**
26     * Automatically prefix the url with the server base directory
27     *
28     * @var bool
29     */
30    private $autoPrefix = true;
31
32    /**
33     * __construct
34     *
35     * @param array $hrefs
36     * @param bool $autoPrefix
37     */
38    public function __construct(array $hrefs, $autoPrefix = true) {
39
40        $this->hrefs = $hrefs;
41        $this->autoPrefix = $autoPrefix;
42
43    }
44
45    /**
46     * Returns the uris
47     *
48     * @return array
49     */
50    public function getHrefs() {
51
52        return $this->hrefs;
53
54    }
55
56    /**
57     * Serializes this property.
58     *
59     * It will additionally prepend the href property with the server's base uri.
60     *
61     * @param DAV\Server $server
62     * @param \DOMElement $dom
63     * @return void
64     */
65    public function serialize(DAV\Server $server,\DOMElement $dom) {
66
67        $prefix = $server->xmlNamespaces['DAV:'];
68
69        foreach($this->hrefs as $href) {
70            $elem = $dom->ownerDocument->createElement($prefix . ':href');
71            $elem->nodeValue = ($this->autoPrefix?$server->getBaseUri():'') . $href;
72            $dom->appendChild($elem);
73        }
74
75    }
76
77    /**
78     * Unserializes this property from a DOM Element
79     *
80     * This method returns an instance of this class.
81     * It will only decode {DAV:}href values.
82     *
83     * @param \DOMElement $dom
84     * @return DAV\Property\HrefList
85     */
86    static function unserialize(\DOMElement $dom) {
87
88        $hrefs = array();
89        foreach($dom->childNodes as $child) {
90            if (DAV\XMLUtil::toClarkNotation($child)==='{DAV:}href') {
91                $hrefs[] = $child->textContent;
92            }
93        }
94        return new self($hrefs, false);
95
96    }
97
98}
Note: See TracBrowser for help on using the repository browser.