-
Notifications
You must be signed in to change notification settings - Fork 39
/
Component.php
63 lines (61 loc) · 2.46 KB
/
Component.php
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
<?php
class Kwc_Advanced_Sitemap_Component extends Kwc_Abstract
{
public static function getSettings($param = null)
{
$ret = parent::getSettings($param);
$ret['componentName'] = trlKwfStatic('Sitemap');
$ret['componentIcon'] = 'sitemap_color.png';
$ret['rootElementClass'] = 'kwfUp-webStandard';
$ret['ownModel'] = 'Kwf_Component_FieldModel';
$ret['extConfig'] = 'Kwf_Component_Abstract_ExtConfig_Form';
return $ret;
}
public function getTemplateVars(Kwf_Component_Renderer_Abstract $renderer)
{
$ret = parent::getTemplateVars($renderer);
$ret['levels'] = $this->getRow()->levels;
$ret['target'] = Kwf_Component_Data_Root::getInstance()
->getComponentByDbId($this->getRow()->target, array('limit'=>1));
$ret['listHtml'] = '';
if ($ret['target']) {
$ret['listHtml'] = self::getListHtml($renderer, $ret['target'], 0, $ret['levels'], $this->getData()->componentClass);
}
return $ret;
}
//not in template for easier recursion
// public because for trl
public static function getListHtml(Kwf_Component_Renderer_Abstract $renderer, Kwf_Component_Data $c, $level, $levels, $className)
{
$ret = '';
$level++;
$select = new Kwf_Component_Select();
$select->whereShowInMenu(true);
$ret .= '<ul class="' . self::getBemClass($className, 'sitemapListLevel'.$level) . '">' . "\n";
$count = 1;
foreach ($c->getChildPages($select) as $child) {
$ret .= '<li class="' . self::getBemClass($className, 'sitemapListItemLevel'.$level);
if ($count % 3 === 0) {
$ret .= ' ' . self::getBemClass($className, '--third');
}
if ($count % 2 === 0) {
$ret .= ' ' . self::getBemClass($className, '--second');
}
if (!$child->getChildPages($select)) {
$ret .= ' ' . self::getBemClass($className, '--noChild');
}
$ret .= '">';
$helper = new Kwf_Component_View_Helper_ComponentLink();
$helper->setRenderer($renderer);
$ret .= $helper->componentLink($child);
$ret .= "\n";
if ($level < $levels) {
$ret .= self::getListHtml($renderer, $child, $level, $levels, $className);
}
$ret .= "</li>\n";
$count++;
}
$ret .= "</ul>\n";
return $ret;
}
}