summaryrefslogtreecommitdiffstats
path: root/modules/doc/library/Doc/DocSection.php
blob: ce5297e1d0dd561fc5cab4713a744fbc0d409d0e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<?php
/* Icinga Web 2 | (c) 2014 Icinga Development Team | GPLv2+ */

namespace Icinga\Module\Doc;

use Icinga\Data\Tree\TreeNode;

/**
 * A section of a documentation
 */
class DocSection extends TreeNode
{
    /**
     * Chapter the section belongs to
     *
     * @var DocSection
     */
    protected $chapter;

    /**
     * Content of the section
     *
     * @var array
     */
    protected $content = array();

    /**
     * Header level
     *
     * @var int
     */
    protected $level;

    /**
     * Whether to instruct search engines to not index the link to the section
     *
     * @var bool
     */
    protected $noFollow;

    /**
     * Title of the section
     *
     * @var string
     */
    protected $title;

    /**
     * Set the chapter the section belongs to
     *
     * @param   DocSection  $section
     *
     * @return  $this
     */
    public function setChapter(DocSection $section)
    {
        $this->chapter = $section;
        return $this;
    }

    /**
     * Get the chapter the section belongs to
     *
     * @return DocSection
     */
    public function getChapter()
    {
        return $this->chapter;
    }

    /**
     * Append content
     *
     * @param string $content
     */
    public function appendContent($content)
    {
        $this->content[] = $content;
    }

    /**
     * Get the content of the section
     *
     * @return array
     */
    public function getContent()
    {
        return $this->content;
    }

    /**
     * Set the header level
     *
     * @param   int     $level  Header level
     *
     * @return  $this
     */
    public function setLevel($level)
    {
        $this->level = (int) $level;
        return $this;
    }

    /**
     * Get the header level
     *
     * @return int
     */
    public function getLevel()
    {
        return $this->level;
    }

    /**
     * Set whether to instruct search engines to not index the link to the section
     *
     * @param   bool    $noFollow   Whether to instruct search engines to not index the link to the section
     *
     * @return  $this
     */
    public function setNoFollow($noFollow = true)
    {
        $this->noFollow = (bool) $noFollow;
        return $this;
    }

    /**
     * Get whether to instruct search engines to not index the link to the section
     *
     * @return bool
     */
    public function getNoFollow()
    {
        return $this->noFollow;
    }

    /**
     * Set the title of the section
     *
     * @param   string  $title  Title of the section
     *
     * @return  $this
     */
    public function setTitle($title)
    {
        $this->title = (string) $title;
        return $this;
    }

    /**
     * Get the title of the section
     *
     * @return string
     */
    public function getTitle()
    {
        return $this->title;
    }
}