/** * renderIndexItem() * * @param mixed $element * @return string */ function renderIndexItem($element) { $ret = ''; if (!is_object($element)) { return ''; } $ret .= '<li><a href="#' . $element->id . '">' . $element->text . '</a>'; $ret .= renderIndexItemList($element->children); $ret .= "</li>\n"; return $ret; }
$indexdata->type = 'testtype'; $indexdata->text = 'hogehoge'; $indexdata->id = 'testid'; $indexdata->children = array($indexdata2, $indexdata3); $t->is(renderIndexItem($indexdata), "<li><a href=\"#testid\">hogehoge</a>\n<ul>\n<li><a href=\"#testid2\">hogehoge2</a></li>\n<li><a href=\"#testid3\">hogehoge3</a>\n<ul>\n<li><a href=\"#testid2\">hogehoge2</a></li>\n</ul>\n</li>\n</ul>\n</li>\n", '階層データ。第3階層まで。'); // renderIndexItemList() $t->diag('renderIndexItemList() 内部でrenderIndexItem()を呼び出す'); $t->is(renderIndexItemList(array()), "", '空データの場合は何も出力されない。'); $indexdata = new stdClass(); $indexdata->type = 'testtype'; $indexdata->text = 'hogehoge'; $indexdata->id = 'testid'; $indexdata->children = array(); $t->is(renderIndexItemList(array($indexdata)), "\n<ul>\n<li><a href=\"#testid\">hogehoge</a></li>\n</ul>\n", '単一データ'); $indexdata2 = new stdClass(); $indexdata2->type = 'testtype2'; $indexdata2->text = 'hogehoge2'; $indexdata2->id = 'testid2'; $indexdata2->children = array(); $indexdata3 = new stdClass(); $indexdata3->type = 'testtype3'; $indexdata3->text = 'hogehoge3'; $indexdata3->id = 'testid3'; $indexdata3->children = array($indexdata2); $indexdata = new stdClass(); $indexdata->type = 'testtype'; $indexdata->text = 'hogehoge'; $indexdata->id = 'testid'; $indexdata->children = array($indexdata2, $indexdata3); $t->is(renderIndexItemList(array($indexdata)), "\n<ul>\n<li><a href=\"#testid\">hogehoge</a>\n<ul>\n<li><a href=\"#testid2\">hogehoge2</a></li>\n<li><a href=\"#testid3\">hogehoge3</a>\n<ul>\n<li><a href=\"#testid2\">hogehoge2</a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n", '階層付データデータ');
<?php /** * ページ内インデックス * * @param $page Page */ $index = $page->getRawValue()->getIndexJsonDecoded(); ?> <div class="pageindex"> <?php echo renderIndexItemList($index); ?> </div>