1 | <?php |
||
22 | class SubPageList implements HookHandler { |
||
23 | |||
24 | private $subPageFinder; |
||
25 | private $pageHierarchyCreator; |
||
26 | private $subPageListRenderer; |
||
27 | private $titleFactory; |
||
28 | |||
29 | 19 | public function __construct( SubPageFinder $finder, PageHierarchyCreator $hierarchyCreator, |
|
37 | |||
38 | /** |
||
39 | * @see HookHandler::handle |
||
40 | * |
||
41 | * @since 1.2 |
||
42 | * |
||
43 | * @param Parser $parser |
||
44 | * @param ProcessingResult $result |
||
45 | * |
||
46 | * @return string |
||
47 | */ |
||
48 | 19 | public function handle( Parser $parser, ProcessingResult $result ) { |
|
64 | |||
65 | 19 | private function getTitle( Parser $parser, $pageName ) { |
|
73 | |||
74 | /** |
||
75 | * @param Title $title |
||
76 | * @param array $parameters |
||
77 | * |
||
78 | * @return string |
||
79 | */ |
||
80 | 18 | private function renderForTitle( Title $title, array $parameters ) { |
|
90 | |||
91 | /** |
||
92 | * @param Title $title |
||
93 | * @param int $limit |
||
94 | * @param bool $includeRedirects |
||
95 | * |
||
96 | * @return Page |
||
97 | * @throws LogicException |
||
98 | */ |
||
99 | 18 | private function getPageHierarchy( Title $title, $limit, $includeRedirects ) { |
|
100 | 18 | $this->subPageFinder->setLimit( $limit ); |
|
101 | 18 | $this->subPageFinder->setIncludeRedirects( $includeRedirects ); |
|
102 | |||
103 | 18 | $subPageTitles = $this->subPageFinder->getSubPagesFor( $title ); |
|
104 | 18 | $subPageTitles[] = $title; |
|
105 | |||
106 | 18 | $pageHierarchy = $this->pageHierarchyCreator->createHierarchy( $subPageTitles ); |
|
107 | |||
108 | 18 | if ( count( $pageHierarchy ) !== 1 ) { |
|
109 | throw new LogicException( 'Expected exactly one top level page' ); |
||
110 | } |
||
111 | |||
112 | 18 | $topLevelPage = reset( $pageHierarchy ); |
|
|
|||
113 | 18 | return $topLevelPage; |
|
114 | } |
||
115 | |||
116 | 18 | private function shouldUseDefault( Page $topLevelPage, $showTopLevelPage ) { |
|
121 | |||
122 | 15 | private function getRenderedList( Page $topLevelPage, $parameters ) { |
|
128 | |||
129 | /** |
||
130 | * @param string $titleText |
||
131 | * @param string $default |
||
132 | * |
||
133 | * @return string |
||
134 | */ |
||
135 | 3 | private function getDefault( $titleText, $default ) { |
|
146 | |||
147 | /** |
||
148 | * @param ProcessedParam[] $parameters |
||
149 | * |
||
150 | * @return array |
||
151 | */ |
||
152 | 19 | private function paramsToOptions( array $parameters ) { |
|
161 | |||
162 | } |
||
163 |