public static function registerUser() { $sql = sql::factory(); $sql->setTable('community_user'); $sql->getPosts(['username' => 'string', 'password' => 'string', 'email' => 'string']); $validator = new validator(); $email = $sql->getPost('email'); $username = $sql->getPost('username'); $password = $sql->getPost('password'); $validUsername = $validator->costum($username, function () { preg_match('/\\w{4,}/', $username, $match); return $match[0] == $username; }); if (!$validUsername) { return 'Username darf nur aus Buchstaben Zahlen und Unterstrich bestehen und muss mindestens 4 Zeichen lang sein.'; } if ($sql->num('SELECT id FROM ' . sql::table('community_user') . ' WHERE `username`= "' . $sql->escape($username) . '"')) { return 'Benutzername schon vorhanden'; } if (!$validator->email($email)) { return 'Bitte geben Sie eine E-Mail Adresse an'; } $salt = userLogin::generateSalt(); $sql->addDatePost('registerdate', 'now'); $sql->addPost('salt', $salt); extension::get('COMMUNITY_USER_REGISTER', $sql); $password = userLogin::hash($password, $salt); $sql->addPost('password', $password); $sql->save(); //Mail send return true; }
public function installSlots($update = false) { $slots = sql::factory(); $slots->setTable('slots'); $modul = sql::factory(); $modul->setTable('module'); foreach ($this->get('slots', []) as $name => $slot) { $slotExists = $slots->num('SELECT id FROM ' . sql::table('slots') . ' WHERE `name` = "' . $name . '" AND `template` = "' . $this->name . '"'); if (!$update && $slotExists) { continue; } $modul->addPost('name', $name); $modul->addPost('input', $slot['input']); $modul->addPost('output', $slot['output']); if (!$slotExists) { $modul->save(); $modul_id = $modul->insertId(); } else { $modul->setWhere('name="' . $name . '"'); $modul->update(); $modul->result('SELECT id FROM ' . sql::table('module') . ' WHERE name = "' . $name . '"'); $modul_id = $modul->get('id'); } $slots->addPost('name', $name); $slots->addPost('description', $slot['description']); $slots->addPost('template', $this->name); $slots->addPost('modul', $modul_id); if (!$slotExists) { $slots->save(); } else { $slots->setWhere('name="' . $name . '" AND template="' . $this->name . '"'); $slots->update(); } } }
public function __construct($id) { $sql = sql::factory(); $sql->query('SELECT * FROM ' . sql::table('user') . ' WHERE id=' . $id)->result(); $this->entrys = $sql->result; $this->entrys['perms'] = explode('|', $this->get('perms')); }
public static function getByStructureId($id) { $return = []; $classname = __CLASS__; $sql = sql::factory(); $sql->query(' SELECT a.*, m.output FROM ' . sql::table('structure_area') . ' AS a LEFT JOIN ' . sql::table('module') . ' AS m ON m.id = a.modul WHERE a.structure_id=' . $id . ' AND a.online = 1 ORDER BY a.sort')->result(); while ($sql->isNext()) { $sql2 = clone $sql; $return[] = new $classname($sql2); $sql->next(); } return $return; }
protected static function loginPost() { $email = type::post('email', 'string'); $password = type::post('password', 'string'); // Formular ganz abgesendet? if (is_null($email) || is_null($password) || $email == '' || $password == '') { echo message::info(lang::get('login_form_notfull'), true); return; } $sql = sql::factory(); $sql->query('SELECT password, id FROM ' . sql::table('user') . ' WHERE `email` = "' . $sql->escape($email) . '"'); // Username mit E-Mail vorhanden? if (!$sql->num()) { echo message::danger(sprintf(lang::get('login_no_user'), $email), true); return; } $sql->result(); // Password nicht gleich? if (!self::checkPassword($password, $sql->get('password'))) { echo message::danger(lang::get('login_pwd_false'), true); return; } self::loginSession(); self::$userID = $sql->get('id'); $_SESSION['login'] = $sql->get('id') . '||' . self::hash($password); }
public static function delete($id) { $sql = sql::factory(); $sql->query('SELECT `structure_id`, `sort` FROM ' . sql::table('structure_area') . ' WHERE id=' . $id)->result(); $delete = sql::factory(); $delete->setTable('structure_area'); $delete->setWhere('id=' . $id); $delete->delete(); self::saveSortUp($sql->get('structure_id'), $sql->get('sort')); return $sql->get('structure_id'); }
public static function getMediaByExtension($extension) { $returnArray = []; $class = __CLASS__; $sql = sql::factory(); $sql->result('SELECT * FROM ' . sql::table('media') . ' WHERE filename LIKE "%.' . $extension . '"'); while ($sql->isNext()) { $returnArray[] = new $class($sql); $sql->next(); } return $returnArray; }
public static function saveBlock() { $id = type::post('id', 'int'); $sql = sql::factory(); $sql->setTable('blocks'); foreach (pageArea::$types as $class) { $class = new $class(); $sql = $class->addSaveValues($sql); } $sql->setWhere('id=' . $id); $sql->update(); }
public static function getAll() { if (!count(self::$all)) { $sql = sql::factory(); $sql->query('SELECT name FROM ' . sql::table('addons') . ' WHERE `install` = 1 AND `active` = 1')->result(); while ($sql->isNext()) { self::$all[] = $sql->get('name'); $sql->next(); } } return self::$all; }
public static function moduleList($active = false) { if (empty(self::$modulList)) { $sql = sql::factory(); $sql->result('SELECT id, name FROM ' . sql::table('module') . ' ORDER BY `sort`'); while ($sql->isNext()) { $selected = $active && $active == $sql->get('id') ? 'selected="selected"' : ''; self::$modulList[] = '<option value="' . $sql->get('id') . '" ' . $selected . '>' . $sql->get('name') . '</option>'; $sql->next(); } } return implode(PHP_EOL, self::$modulList); }
protected function getOptions() { $return = []; if (empty($this->value)) { return ''; } $sql = sql::factory(); $sql->result('SELECT * FROM ' . sql::table('media') . ' WHERE id IN (' . implode(',', (array) $this->value) . ') ORDER BY FIND_IN_SET(id, "' . implode(',', (array) $this->value) . '")'); while ($sql->isNext()) { $return[] = '<option value="' . $sql->get('id') . '">' . $sql->get('filename') . '</option>'; $sql->next(); } return implode(PHP_EOL, $return); }
public static function getMetaInfos($form, $type) { $sql = sql::factory(); $sql->query('SELECT * FROM ' . sql::table('metainfos') . ' WHERE `type` = "' . $type . '" ORDER BY `sort`')->result(); while ($sql->isNext()) { $prefix = substr($type, 0, 3) . '_'; $attributes = $sql->getRow(); $attributes['name'] = $prefix . $attributes['name']; $element = self::getElement($attributes, $form->get($prefix . $sql->get('name'))); $form->addElement($prefix . $sql->get('name'), $element); $sql->next(); } return $form; }
public static function getParentsName($id) { $sql = sql::factory(); $sql->query('SELECT name, id, seo_costum_url, parent_id FROM ' . sql::table('structure') . ' WHERE id = ' . $id)->result(); if ($sql->get('seo_costum_url')) { $name = $sql->get('seo_costum_url'); $name = str_replace('.html', '', $name); } else { $name = self::makeSEOName($sql->get('name'), false); } if ($sql->get('parent_id')) { $name = self::getParentsName($sql->get('parent_id')) . '/' . $name; } return $name; }
public static function getCategoryById($parentId, $offlinePages = false) { $extraWhere = ''; if (!$offlinePages) { $extraWhere = ' AND online = 1'; } $class = __CLASS__; $sql = sql::factory(); $return = []; $sql->query('SELECT * FROM ' . sql::table('structure') . ' WHERE parent_id = ' . $parentId . $extraWhere . ' ORDER BY sort')->result(); while ($sql->isNext()) { $sql2 = clone $sql; $return[] = new $class($sql2); $sql->next(); } return $return; }
public function setArticles($offlines) { if ($offlines) { $where = ''; } else { $where = ' WHERE online = 1'; } $sql = sql::factory(); $sql->query('SELECT * FROM ' . sql::table('structure') . $where . ' ORDER BY `sort`')->result(); while ($sql->isNext()) { $prio = $sql->get('id') == dyn::get('start_page') ? 1 : 0.8; $updatedAt = new DateTime($sql->get('updatedAt')); $freq = self::getChangeFreq($updatedAt); self::$articles[] = ['loc' => dyn::get('hp_url') . seo_rewrite::rewriteId($sql->get('id')), 'prio' => $prio, 'freq' => $freq, 'lastmod' => $updatedAt->format('c')]; $sql->next(); } }
public static function exportTables() { if (!isset($_POST["export"])) { echo message::danger(lang::get('exportSelect'), true); } else { $result = ''; foreach ($_POST["export"] as $table => $status) { $DB = dyn::get('DB'); $prefix = strlen($DB['prefix']); $result .= 'DROP TABLE IF EXISTS `dynaoimportexporttoll' . $table . '`;'; $sql = sql::factory(); $sql->query('SHOW CREATE TABLE ' . $DB['prefix'] . $table)->result(); $creatTable = "\n\n" . str_replace("CREATE TABLE `" . $DB['prefix'], "CREATE TABLE IF NOT EXISTS `dynaoimportexporttoll", $sql->get("Create Table")) . ";\n\n"; $result .= preg_replace("/(`.*` int.* DEFAULT) '(.*)'/", '${1} ${2}', $creatTable); $sql->query("SELECT * FROM " . $DB['prefix'] . $table)->result(); while ($sql->isNext()) { $result .= 'INSERT INTO `dynaoimportexporttoll' . $table . '` VALUES('; $i = 1; foreach ($sql->result as $row) { $result .= "'" . $sql->escape(str_replace(";", "`#semikolon#`", $row)) . "'"; if (count($sql->result) > $i) { $result .= ","; } $i++; } $result .= ");\n"; $sql->next(); } } $length = strlen($result); header('Content-Description: File Transfer'); header('Content-Type: application/sql'); header('Content-Disposition: attachment; filename=backup.sql'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . $length); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Expires: 0'); header('Pragma: public'); echo $result; exit; } }
public static function moduleList($active = false, $blocks = false) { if (!$blocks) { $where = ' WHERE `blocks` != 1'; $mlist =& self::$modulList; } else { $where = ''; $mlist =& self::$modulListAll; } if (empty($mlist)) { $sql = sql::factory(); $sql->result('SELECT id, name FROM ' . sql::table('module') . $where . ' ORDER BY `sort`'); while ($sql->isNext()) { $selected = $active && $active == $sql->get('id') ? 'selected="selected"' : ''; $mlist[] = '<option value="' . $sql->get('id') . '" ' . $selected . '>' . $sql->get('name') . '</option>'; $sql->next(); } } return implode(PHP_EOL, $mlist); }
public function get() { $return = ''; // Not indexing if (!dyn::get('addons')['seo']['robots']) { return 'User-agent: *' . PHP_EOL . 'Disallow: /'; } $sql = sql::factory(); $sql->query('SELECT id FROM ' . sql::table('structure') . ' WHERE seo_robots = 0'); while ($sql->isNext()) { $return .= 'Disallow: /' . seo_rewrite::rewriteId($sql->get('id')) . PHP_EOL; $sql->next(); } if ($return != '') { $return = 'User-agent: *' . PHP_EOL . $out . PHP_EOL; } if ($return == '') { return 'User-agent: *' . PHP_EOL . 'Disallow:'; } return $return; }
public function installBlocks($update = false) { $blocks = sql::factory(); $blocks->setTable('blocks'); foreach ($this->get('blocks', []) as $name => $block) { $blockExists = $blocks->num('SELECT id FROM ' . sql::table('blocks') . ' WHERE `name` = "' . $name . '" AND `template` = "' . $this->name . '"'); if (!$update && $blockExists) { continue; } $this->installModule($block['module'], $update); $blocks->addPost('name', $name); $blocks->addPost('description', $block['description']); $blocks->addPost('template', $this->name); if (!$blockExists) { $blocks->save(); } else { $blocks->setWhere('name="' . $name . '" AND template="' . $this->name . '"'); $blocks->update(); } } }
/** * Das Formular erstellen * * @param string $table Die SQL Tabelle * @param string $where Die SQL Abfrage * @param string $action Ziel URL um die Daten zu bearbeiten * @param string $method Die Methode (post|get) * */ public function __construct($table, $where, $action, $method = 'post') { $this->method = $method; $this->action = $action; $this->sql = sql::factory(); $this->sql->query('SELECT * FROM ' . sql::table($table) . ' WHERE ' . $where . ' LIMIT 1'); $this->sql->result(); if ($this->sql->num() == 1) { $this->setMode('edit'); $this->setWhere($where); } $this->setTable($table); if (dyn::get('backend')) { $this->loadBackend(); } $this->addFormAttribute('class', 'form-horizontal'); $this->addFormAttribute('action', $this->action); $this->addFormAttribute('method', $this->method); $this->setButtons(); $this->setSuccessMessage(lang::get('form_saved')); $this->addParam('action', $this->mode); }
public static function getTreeStructure($parentId = 0, $lvl = 0, $spacer = ' ', $active = 0) { $select = ''; $sql = sql::factory(); $sql->query('SELECT id, name FROM ' . sql::table('media_cat') . ' WHERE pid = ' . $parentId . ' ORDER BY sort')->result(); while ($sql->isNext()) { $name = $sql->get('name'); if ($lvl) { $name = '- ' . $name; } if ($spacer != '') { for ($i = 1; $i <= $lvl; $i++) { $name = $spacer . $name; } } $selected = $active == $sql->get('id') ? 'selected="selected"' : ''; $select .= '<option value="' . $sql->get('id') . '" ' . $selected . '>' . $name . '</option>' . PHP_EOL; $select .= self::getTreeStructure($sql->get('id'), $lvl + 1, $spacer, $active); $sql->next(); } return $select; }
protected static function loginPost() { $email = type::post('email', 'string'); $password = type::post('password', 'string'); // Formular ganz abgesendet? if (is_null($email) || is_null($password) || $email == '' || $password == '') { echo message::info(lang::get('login_form_notfull'), true); return; } $sql = sql::factory(); $sql->query('SELECT password, salt, id FROM ' . sql::table('user') . ' WHERE `email` = "' . $sql->escape($email) . '"'); // Username mit E-Mail vorhanden? if (!$sql->num()) { echo message::danger(sprintf(lang::get('login_no_user'), htmlspecialchars($email)), true); return; } $sql->result(); // Password nicht gleich? if (!self::checkPassword($password, $sql->get('salt'), $sql->get('password'))) { echo message::danger(lang::get('login_pwd_false'), true); return; } self::loginSession(); self::$userID = $sql->get('id'); $_SESSION['login'] = $sql->get('id'); // Falls alte Methode (sha1) neuen Salt generieren und salt updaten // sha1 deprecated 0.2 Beta $salt = $sql->get('salt'); if (empty($salt)) { $salt = self::generateSalt(); $sql->setTable('user'); $sql->setWhere('`email` = "' . $email . '"'); $sql->addPost('salt', $salt); $sql->addPost('password', self::hash($password, $salt)); $sql->update(); } }
public static function checkLogin() { $username = type::post('username', 'string', ''); $password = type::post('password', 'string', ''); if ($username == '' || $password == '') { echo message::info(lang::get('login_form_notfull'), true); return; } $sql = sql::factory(); $sql->query('SELECT password, salt, id FROM ' . sql::table('community_user') . ' WHERE `username` = "' . $sql->escape($username) . '"'); if (!$sql->num()) { echo message::danger(sprintf(lang::get('login_no_user'), $email), true); return; } $sql->result(); if (!userLogin::checkPassword($password, $sql->get('salt'), $sql->get('password'))) { echo message::danger(lang::get('login_pwd_false'), true); return; } $_SESSION['community-login'] = $sql->get('id'); self::checkSession(); // Für spätere Foren-Bridges extension::get('COMMUNITY_USER_LOGIN', $password); }
<?php $sql = sql::factory(); $sql->query('ALTER TABLE `' . sql::table('structure') . '` DROP `seo_title`, DROP `seo_keywords`, DROP `seo_description`, DROP `seo_costum_url`, DROP `seo_robots`');
public static function sortStructure($sort, $pid = 0) { $sql = sql::factory(); $sql->setTable('structure'); $i = 1; foreach ($sort as $name => $value) { $sql->addPost('sort', $i); $sql->addPost('parent_id', $pid); $sql->setWhere('id=' . $value['id']); $sql->update(); if (isset($value['children']) && count($value['children'])) { self::sortStructure($value['children'], $value['id']); } $i++; } }
public static function sortTable($table, $sort, $where = '', $select = ['id', 'sort']) { if ($where) { $where = ' WHERE ' . $where; } $update = sql::factory(); $update->setTable($table); $i = 1; $sql = sql::factory(); $sql->query('SELECT `' . $select[0] . '`, `' . $select[1] . '` FROM ' . self::table($table) . $where . ' ORDER BY `' . $select[1] . '` ASC')->result(); while ($sql->isNext()) { if ($sort == $i) { $i++; } $update->addPost($select[1], $i); $update->setWhere($select[0] . '=' . $sql->get($select[0])); $update->update(); $sql->next(); $i++; } }
public static function insertDemoContent() { $sql = sql::factory(); $input = file_get_contents(self::getModulCode('1_input.txt')); $output = file_get_contents(self::getModulCode('1_output.txt')); $sql->setTable('module'); $sql->addPost('name', 'Überschrift'); $sql->addPost('sort', 1); $sql->addPost('input', $input); $sql->addPost('output', $output); $sql->save(); $input = file_get_contents(self::getModulCode('2_input.txt')); $output = file_get_contents(self::getModulCode('2_output.txt')); $sql->addPost('name', 'Editor'); $sql->addPost('sort', 2); $sql->addPost('input', $input); $sql->addPost('output', $output); $sql->save(); $sql = sql::factory(); $sql->setTable('structure'); $sql->addPost('name', 'Home'); $sql->addPost('template', 'template.php'); $sql->addPost('sort', 1); $sql->addPost('online', 1); $sql->save(); $sql->addPost('name', '404 Error'); $sql->addPost('sort', 2); $sql->addPost('online', 0); $sql->save(); dyn::add('start_page', 1, true); dyn::add('error_page', 2, true); dyn::save(); }
public static function isValid($id) { $sql = sql::factory(); return (bool) $sql->num('SELECT id FROM ' . sql::table('structure') . ' WHERE id = ' . $id); }
public static function updateTime($id, $created = false) { $sql = sql::factory(); $sql->setTable('structure'); $sql->setWhere('id=' . $id); $sql->addDatePost('updatedAt'); if ($created) { $sql->addDatePost('createdAt'); } $sql->update(); }
protected static function delete($tablename, $id) { $prefix = substr($tablename, 0, 3) . '_'; $sql = sql::factory(); $sql->setTable('metainfos')->setWhere('`id`=' . $id)->select('`name`')->result(); $sql->query('ALTER TABLE ' . $tablename . ' DROP `' . $prefix . $sql->get('name') . '`'); $sql->delete(); }