private function __construct() { $this->tablesManager = TablesManager::getInstance(); $this->metaWriter = MetaManager::getInstance(); $this->db = \Base::instance()->get('db'); $this->debugState = \Base::instance()->get('DEBUG'); }
private function tableExists($table) { return TablesManager::getInstance()->tableExists($table); }
/** * Создаёт связь много-ко-ногим между объектом и справчником */ function createPlural($table1, $table2, $comment = '') { $cleaner = Cleaner::getInstance(); $cleaner->scrub($comment); $first = $table1 . '_id'; $second = $table2 . '_id'; $table = $this->getPluralName($table1, $table2); if (!TablesManager::getInstance()->tableExists($table)) { $q = "CREATE TABLE `{$table}` (\n\t\t\t\t\t`{$first}` int(11) NOT NULL,\n\t\t\t\t\t`{$second}` int(11) NOT NULL,\n\t\t\t\t\tUNIQUE `uni` (`{$first}`,`{$second}`)\n\t\t\t\t ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='{$comment}'"; if ($this->db->exec($q) !== false) { $this->metaWriter->updateRelationList($table1); $this->metaWriter->updateRelationList($table2); \helpers\Msg::success('tables.created'); \Cache::instance()->reset(); return true; } else { \helpers\Msg::error($f3->get('db')->log()); \helpers\Msg::error('tables.not_created'); return false; } } else { \helpers\Msg::error('tables.not_created'); \helpers\Msg::warning('tables.already_exists', $table); return false; } }
/** * Выводит страницу/раздел сайта (htmlpage) * @param type $this->fw */ public function show() { if ($this->isPublished()) { if ($this->struct_page['af_islink'] && !empty($this->struct_page['af_link'])) { // Если ссылка - перенаправляем $this->fw->reroute($this->struct_page['af_link'], true); } else { $this->setLayout(); } } else { if (\models\meta\TablesManager::getInstance()->tableExists('_redirect')) { $redirect = new \DB\SQL\Mapper($this->db, '_redirect'); $redirect->load(array('`from`=? ', $this->fw->get('PATH'))); // Проверить! if ($redirect->to_id) { $model = \models\Content::getInstance('htmlpage'); $this->fw->reroute('/' . $model->getPath($redirect->to_id), true); } } $this->fw->error(404); } }