1: | <?php |
2: | |
3: | namespace Zippy\Html\Link; |
4: | |
5: | use Zippy\Interfaces\Binding; |
6: | use Zippy\Binding\SimpleBinding; |
7: | |
8: | /** |
9: | * Ссылка с возможностью делать закладки, копировать и т.д. |
10: | * |
11: | */ |
12: | class BookmarkableLink extends AbstractLink |
13: | { |
14: | private $link; |
15: | |
16: | /** |
17: | * Конструктор |
18: | * @param string ID компонента |
19: | * @param string Адрес ссылки |
20: | */ |
21: | public function __construct($id, $link = "") { |
22: | AbstractLink::__construct($id); |
23: | $this->link = $link; |
24: | } |
25: | |
26: | /** |
27: | * @see HtmlComponent |
28: | */ |
29: | public function RenderImpl() { |
30: | parent::RenderImpl(); |
31: | $link = $this->getLink(); |
32: | if (strlen($link) > 0) { |
33: | if (strpos($link, '://') === false) { |
34: | // $link = "http://".$_SERVER["HTTP_HOST"]."/". $link; |
35: | if ($link[0] != '/') { |
36: | $link = '/' . $link; |
37: | } |
38: | } |
39: | $this->setAttribute("href", $link); |
40: | } |
41: | } |
42: | |
43: | /** |
44: | * возвращает ссыоку |
45: | * |
46: | */ |
47: | public function getLink() { |
48: | if ($this->link instanceof Binding) { |
49: | return $this->link->getValue(); |
50: | } else { |
51: | return $this->link; |
52: | } |
53: | } |
54: | |
55: | /** |
56: | * Устнанавливает ссылку |
57: | * |
58: | * @param mixed $link |
59: | */ |
60: | public function setLink($link) { |
61: | $this->link = $link; |
62: | } |
63: | |
64: | } |
65: |