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; }
function fixedFields($form) { global $_sec; $clientSection = ap::getClientSection($_sec->getId()); $md = $clientSection->getXML()->getElementById($this->getId()); if ($clientSection->getXML()->evaluate('string(./form[1]/@dbSave)', $md) && ($dbConnect = $clientSection->getXML()->evaluate('string(./form[1]/@dbConnect)', $md)) && ($dbTable = $clientSection->getXML()->evaluate('string(./form[1]/@dbTable)', $md)) && ($ff = $form->appendField(formSelect::create('uri', 'Database field name:', '/@uri')))) { $ff->addOption('', '...'); $mysql = new mysql($dbConnect); $q = 'SHOW COLUMNS FROM ' . $mysql->getTableName($dbTable); $rs = $mysql->query($q); while ($res = mysql_fetch_assoc($rs)) { if (!$res['Extra']) { $ff->addOption($res['Field'], $res['Field']); } } } }