public static function getTreeStructure($offlinePages = true, $selected, $spacer = ' ', $parentId = 0, $lvl = 0, $select = false) { $extraWhere = ''; if (!$offlinePages) { $extraWhere = ' AND online = 1'; } if ($select === false) { $select = formSelect::factory('structure', $selected); } $sql = sql::factory(); $sql->query('SELECT id, name, online FROM ' . sql::table('structure') . ' WHERE parent_id = ' . $parentId . $extraWhere . ' ORDER BY sort')->result(); while ($sql->isNext()) { if ($offlinePages) { $style = $sql->get('online') == 1 ? 'page-online' : 'page-offline'; } else { $style = ''; } $name = $sql->get('name'); for ($i = 1; $i <= $lvl; $i++) { $name = $spacer . $name; } $select->add($sql->get('id'), $name, ['class' => $style]); if ($sql->num('SELECT id FROM ' . sql::table('structure') . ' WHERE parent_id = ' . $sql->get('id') . $extraWhere)) { self::getTreeStructure($offlinePages, $selected, $spacer, $sql->get('id'), $lvl + 1, $select); } $sql->next(); } return $select; }
public function getTemplates($name, $selected = null) { $select = formSelect::factory($name, $selected); foreach ($this->get('templates', ['Default' => 'index.php']) as $name => $file) { $select->add($file, $name); } return $select; }