function salvar() { // chama o class util require_once ECOMP_PATH_CLASS . DS . 'ebasic.util.php'; // abre o banco $db =& JFactory::getDBO(); // se não existir um nome, retorma erro if (empty($_POST['nome'])) { return false; } // carrega do post para a var dados $dados = $_POST; // apaga variaveis inuteis unset($dados['option'], $dados['task'], $dados['view'], $dados['layout']); // captura o nome da nova tabela $tabela_nova = eUtil::texto_limpo($dados['nome']); // abre a tabela de componentes do ecomp $componente = new JCRUD(ECOMP_TABLE_COMPONENTES, $dados); // abre a tabela de menu/componentes $menu = new JCRUD(ECOMP_TABLE_JCOMPONENTS); // se o id não existir, inseri! if (!$componente->id) { // verifica se a tabela ja existe if ($this->existe_tabela($tabela_nova)) { return false; } // cria a nova tabela JCRUD::query("\r\n\t\t\t\tCREATE TABLE IF NOT EXISTS " . ECOMP_TABLE_COMPONENTES . "_{$tabela_nova}(\r\n\t\t\t\t `id` int(11) NOT NULL AUTO_INCREMENT,\r\n\t\t\t\t `published` int(11) NOT NULL DEFAULT '1',\r\n\t\t\t\t `ordering` int(11) NOT NULL DEFAULT '0',\r\n\t\t\t\t `trashed` int(11) NOT NULL DEFAULT '0',\r\n\t\t\t\t `view_item` int(11) NOT NULL DEFAULT '0',\r\n\t\t\t\t `view_lista` int(11) NOT NULL DEFAULT '0',\r\n\t\t\t\t `view_busca` int(11) NOT NULL DEFAULT '0',\r\n\t\t\t\t PRIMARY KEY (`id`)\r\n\t\t\t\t) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=1;\r\n\t\t\t"); // inseri o registro if ($componente->insert()) { // busca o id do menu ecomp $ecomp_menu = $menu->busca_por_sql("SELECT * FROM @tabela@ WHERE name = 'eComp' AND admin_menu_alt = 'eComp'"); // cadastra um novo menu $menu->enabled = 1; $menu->admin_menu_link = "option=com_ecomp&view=cadastros&idcomponente={$componente->id}"; $menu->parent = $ecomp_menu[0]->id; $menu->ordering = -1; $menu->iscore = 1; $menu->name = $componente->nome; $menu->admin_menu_alt = $componente->nome; $menu->insert(); $componente->idmenuadmin = $menu->id; $componente->alias = $tabela_nova; $componente->update(); return true; } } else { // captura o nome da tabela velha $tabela_velha = $componente->alias; // se o nome da tabela mudou if ($tabela_nova != $tabela_velha) { // verifica se a tabela ja existe if ($this->existe_tabela($tabela_nova)) { return false; } // altera o nome da tabela JCRUD::query("RENAME TABLE " . ECOMP_TABLE_COMPONENTES . "_{$tabela_velha} TO " . ECOMP_TABLE_COMPONENTES . "_{$tabela_nova}"); // atualiza o alias do regitro $componente->alias = $tabela_nova; } // atualiza o registro if ($componente->update()) { $menu->id = $componente->idmenuadmin; $menu->name = $componente->nome; $menu->admin_menu_alt = $componente->nome; // atualiza o menu $menu->update(); return true; } } }