/** * Находит и устанавливает все страницы от корневой до текущей по маршруту * @return boolean */ protected function setStruct() { if (empty($this->struct_path)) { $this->setStructPath(); } $this->struct_pages = $this->struct_model->getTreeNodes($this->struct_path); if (empty($this->struct_pages)) { if ($this->fw->get('DEBUG') > 0) { \helpers\Msg::info('no_htmlpage', $this->struct_path); } return false; } $this->struct_page = $this->struct_pages[count($this->struct_pages) - 1]; return true; }
/** * Создаёт таблицу для хранения элементов типа контента * @param type $table * @return boolean */ public function createItemsTable($table) { if (Meta::getInstance()->exists($table)) { $items_table = $table . '__items'; if (!$this->tableExists($items_table)) { $q = $this->getCreateItemTableQuery($table); if ($this->db->exec($q) !== false) { //$this->metaWriter->setHasItems($table,true); \helpers\Msg::success('tables.created'); return TRUE; } } else { return TRUE; // \helpers\Msg::info('tables.already_exists', array($items_table, $title)); } } else { \helpers\Msg::info('tables.content_doesnt_exist', array($table, $title)); return false; } }
public function create($table) { $tableMeta = $this->metaWriter->get($table); if (!$tableMeta) { \helpers\Msg::info('tables.wrong_name', $table); \helpers\Msg::error('tables.not_created', 'comments_' . $table); return false; } if ($tableMeta->isCommentable()) { \helpers\Msg::info('tables.already_exists', 'comments_' . $table); \helpers\Msg::error('tables.not_created', 'comments_' . $table); return false; } $q = $this->getCreateTableQuery($table); if ($this->db->exec($q) !== false) { $this->metaWriter->updateSettings($table); \helpers\Msg::success('tables.created'); return true; } $this->db->log(); \helpers\Msg::error('tables.not_created', 'comments_' . $table); return false; }
/** * Форма для входа на сайт * если пользователь авторизован, перенаправляется в аккаунт * и выводится сообщение, что необходимо выйти, пережде чем авторизоваться * под другим логином */ public function loginForm() { $this->clear_messages_after = true; if (!$this->isAuthorized()) { $this->fw->set('COOKIE.sent', true); if (\helpers\Msg::hasErrors()) { $this->setCaptcha(); } else { $this->fw->clear('SESSION.captcha'); } $this->fw->set('html.inc', 'user/login.html'); } else { \helpers\Msg::info('user.need_to_logout'); $this->fw->reroute('/' . $this->groups[0]['uri']); } }
/** * Массовое добавление нодов * @param int $user_id * @param array $post */ public function createBulk($user_id) { $post = \Base::instance()->get('POST'); if (!empty($post['bulkadd'])) { \helpers\Msg::info('bulk_add'); $lines = explode("\n", $post['bulkadd']); // \helpers\Debug::prePrintR($lines); return; $id = null; foreach ($lines as $v) { $v = trim($v); if (!empty($v)) { $data = ['title' => $v]; if (isset($post['pid'])) { $data['pid'] = $post['pid']; } $id = $this->create($user_id, $data); if (is_null($id)) { \helpers\Msg::error('not_added'); } } } return $id; } else { return false; } }
private function isValid($post, $oneField = false) { $f3 = \Base::instance(); $audit = \Audit::instance(); if (isset($post['email']) && isset($post['password']) || $oneField) { $isValid = true; foreach ($post as $name => $val) { switch (trim($name)) { case 'email': if (empty($val)) { \helpers\Msg::error('user.email.required'); $isValid = false; break 2; } if (!$audit->email($val, false)) { \helpers\Msg::error('user.email.incorrect'); $isValid = false; break 2; } if ($this->exists($val)) { \helpers\Msg::error('user.email.registered_before'); \helpers\Msg::info('user.need_to_login'); $isValid = false; break 2; } break; case 'password': if (strlen($val) < 6) { \helpers\Msg::error('user.password.too_short'); $isValid = false; break 2; } break; // case 'skype' : // if (!empty($val) && !preg_match('/^[a-z][a-z0-9\.,\-_]{5,31}$/i', $val)) { // \helpers\Msg::error('user.skype.incorrect'); // $isValid = false; // break 2; // } // break; // case 'skype' : // if (!empty($val) && !preg_match('/^[a-z][a-z0-9\.,\-_]{5,31}$/i', $val)) { // \helpers\Msg::error('user.skype.incorrect'); // $isValid = false; // break 2; // } // break; case 'ref': $val = (int) $val; if ($val == 0) { break 2; } else { // \helpers\Debug::prePrintR($val); $user = $this->getOne($val); // \helpers\Debug::prePrintR($user); if ($user->id != $val) { \helpers\Msg::error('user.ref.incorrect'); $isValid = false; break 2; } } break; } } } else { if (!isset($post['email'])) { \helpers\Msg::error('user.email.required'); } if (!isset($post['password'])) { \helpers\Msg::error('user.password.required'); } $isValid = false; } return $isValid; }
public function deleteTable($table) { if ($this->isValidTableName($table)) { if ($this->tableExists($table)) { $q = 'DROP TABLE ' . $table; if ($this->db->exec($q) !== false) { $this->metaWriter->remove($table); \helpers\Msg::success('tables.removed'); return TRUE; } } else { \helpers\Msg::info('tables.does_not_exists', array($table)); } } else { \helpers\Msg::info('tables.wrong_name', $table); } $this->db->log(); \helpers\Msg::error('tables.not_removed', array($table)); return FALSE; }
/** * Находит и устанавливает все ноды по части маршрута * @return boolean */ private function setNodesByPath() { $model = $this->getNodeModel(); $this->struct_path = $this->fw->get('frontend_base.' . $this->table); $this->setStruct(); $path = str_replace(array($this->struct_path . '/', $this->struct_path), '', $this->fw->get('PATH')); $this->tree_nodes = $model->getTreeNodes($path); if (empty($this->tree_nodes)) { if ($this->DEBUG > 0) { \helpers\Msg::info('no_htmlpage', $this->fw->get('PATH')); } return false; } $this->tree_node = $this->tree_nodes[count($this->tree_nodes) - 1]; if ($this->tree_node['published']) { // Если опубликованв return true; } else { return false; } }