/** * generate form for table * @param $table string table * @param $action string action * @param string $method method form (default = POST) * @return \SwagFramework\Form\Form * @throws TableNotFoundDatabaseException */ public static function generate($table, $action, $method = 'POST') { $sql = 'SHOW FIELDS ' . 'FROM ' . $table; $res = DatabaseProvider::connection()->query($sql); if (empty($res)) { throw new TableNotFoundDatabaseException($table); } $form = new Form($action, $method); $form->setClass('pure-form pure-form-aligned centered'); foreach ($res as $value) { if (self::getType($value['Type']) == 'text') { $field = self::getTextArea($value); } elseif (self::getType($value['Type']) == 'datetime') { $field = self::getInput($value); $field->addAttribute('class', 'datepicker'); $field->addAttribute('placeholder', '01/01/2014'); } else { $field = self::getInput($value); } $form->addField($field); } $submit = new InputField('submit'); $submit->addAttribute('type', 'submit'); $submit->addAttribute('value', 'Envoyer'); $submit->addAttribute('class', 'pure-button pure-button-primary'); $form->addField($submit); return $form; }
function main() { DatabaseProvider::connect("app/config/database.json"); BaseViewContextProvider::setProvider(function () { return ['count' => ['event' => (new EventModel())->count()['nb'], 'user' => (new UserModel())->count()['nb'], 'online' => (new LittleModel())->checkConnect()['COUNT(*)']], 'newmessages' => Authentication::getInstance()->isAuthenticated() ? (new ConversationModel())->countUnreadMessages() : 0]; }); $router = new \SwagFramework\Routing\Router(); $classRouting = new ClassRouting('\\app\\controllers\\'); $classRouting->addClass('User'); $classRouting->addClass('Event'); $classRouting->addClass('Article'); $classRouting->addClass('Parteners'); $classRouting->addClass('Search'); if (Authentication::getInstance()->isAuthenticated()) { $classRouting->addClass('Conversation'); if (Authentication::getInstance()->getOptionOr('accessLevel', 0)) { $classRouting->addClass('AdminUsers'); $classRouting->addClass('AdminEvent'); $classRouting->addClass('AdminComment'); $classRouting->addClass('Admin'); } } $classRouting->generateRoute($router); $router->add('/errors/err404', new \app\controllers\ErrorsController(), 'err404'); $router->add('/', new \app\controllers\HomeController(), 'index'); $router->matchCurrentRequest(); }
/** * Delete a participation to an event * @param $idEvent * @param $idUser * @return bool */ public function deleteEventParticipation($idEvent, $idUser) { try { DatabaseProvider::connection()->beginTransaction(); $sql = 'DELETE FROM event_user WHERE user = ? AND id = ?'; DatabaseProvider::connection()->execute($sql, [$idUser, $idEvent]); DatabaseProvider::connection()->commit(); return true; } catch (\Exception $e) { DatabaseProvider::connection()->rollBack(); throw $e; } }
/** * Check cpt connect + Add * @return mixed * @throws \SwagFramework\Exceptions\DatabaseConfigurationNotLoadedException */ public function checkConnect() { $sql = 'SELECT COUNT(*) AS COUNT FROM cpt_connectes WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\''; $data = DatabaseProvider::connection()->query($sql); if ($data[0]['COUNT'] == 0) { $sql = 'INSERT INTO cpt_connectes VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ')'; DatabaseProvider::connection()->execute($sql); } else { $sql = 'UPDATE cpt_connectes SET timestamp=' . time() . ' WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\''; DatabaseProvider::connection()->execute($sql); } $timestamp_5min = time() - 60 * 5; $sql = 'DELETE FROM cpt_connectes WHERE timestamp < ' . $timestamp_5min; $sql = 'SELECT COUNT(*) FROM cpt_connectes'; $data2 = DatabaseProvider::connection()->query($sql); return $data2[0]; }
public function search($query) { return DatabaseProvider::connection()->query(self::SEARCH_ARTICLE, ['query' => $query]); }
public function search($query) { $sql = <<<SQL SELECT event.* FROM event JOIN user ON event.user = user.id WHERE MATCH(event.name, event.description, event.address) AGAINST (:query) OR MATCH(user.username, user.firstname, user.lastname) AGAINST (:query) SQL; return DatabaseProvider::connection()->query($sql, ['query' => $query]); }
public function updateFriend($id1, $id2) { $sql = 'UPDATE user_friend SET valid = TRUE WHERE user1 = ? AND user2 = ?'; return DatabaseProvider::connection()->execute($sql, [$id1, $id2]); }
/** * Delete an comment. * @param $id int of comment * @return bool * @throws \Exception * @throws \SwagFramework\Exceptions\DatabaseConfigurationNotLoadedException */ public function deleteCommentArticle($id) { try { DatabaseProvider::connection()->beginTransaction(); $success = DatabaseProvider::connection()->execute(self::DELETE_COMMENT_ARTICLE, [$id]); $success = $success && DatabaseProvider::connection()->execute(self::DELETE_COMMENT, [$id]); DatabaseProvider::connection()->commit(); return $success; } catch (\Exception $e) { DatabaseProvider::connection()->rollBack(); throw $e; } }
/** * Delete a comment. * @param $id int of comment * @return bool * @throws \SwagFramework\Exceptions\DatabaseConfigurationNotLoadedException */ public function deleteCommentEvent($id) { return DatabaseProvider::connection()->execute(self::DELETE_COMMENT_EVENT, [$id]) && DatabaseProvider::connection()->execute(self::DELETE_COMMENT, [$id]); }
public function countUnreadMessages() { return DatabaseProvider::connection()->selectFirst(self::COUNT_NEW_MESSAGES, [Authentication::getInstance()->getUserId()])['nb']; }
public function deleteReset($id) { $sql = <<<SQL DELETE FROM user_reset WHERE id=?; SQL; return DatabaseProvider::connection()->execute($sql, [$id]); }
public static function setUpBeforeClass() { DatabaseProvider::connect('tests/Database/testdatabase.json'); }