protected function doCreatePageList($intId = 0, $level = -1) { $objPages = $this->Database->prepare("SELECT id, title, type, dns FROM tl_page WHERE pid=? ORDER BY sorting")->execute($intId); if ($objPages->numRows < 1) { return ''; } ++$level; $strOptions = ''; while ($objPages->next()) { if ($objPages->type == 'root') { // Skip websites that run under a different domain if ($objPages->dns && $objPages->dns != \Environment::get('host')) { continue; } $strOptions .= '<optgroup label="' . $objPages->title . '">'; $strOptions .= $this->doCreatePageList($objPages->id, -1); $strOptions .= '</optgroup>'; } else { $strOptions .= sprintf('<option value="{{link_url::%s}}"%s>%s%s</option>', $objPages->id, '{{link_url::' . $objPages->id . '}}' == \Input::get('value') ? ' selected="selected"' : '', str_repeat(' ', $level), \StringUtil::specialchars($objPages->title)); $strOptions .= $this->doCreatePageList($objPages->id, $level); } } return $strOptions; }