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: