Пример #1
0
 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;
         }
     }
 }