public static function buscaTodasCategorias($a = '')
 {
     self::$condicao = $a;
     $lC = new ListaProdutoCategorias();
     $lC->condicoes(array(1 => array('campo' => ListaProdutoCategorias::CATEGORIAPAI, 'valor' => '')));
     while ($cat = $lC->listar()) {
         if (empty($prods)) {
             $prods = self::todosNiveisCategorias($cat);
         } else {
             $array = self::todosNiveisCategorias($cat);
             foreach ($array as $prod) {
                 $adicionar = true;
                 foreach ($prods as $p) {
                     if ($prod->getId() == $p->getId()) {
                         $adicionar = false;
                         break;
                     }
                 }
                 if ($adicionar) {
                     $prods[count($prods)] = $prod;
                 }
             }
         }
     }
     return $prods;
 }
function menu_produtos($ref = "", $subref = 0, $nivel = 0)
{
    $con = BDConexao::__Abrir();
    $con2 = BDConexao::__Abrir();
    if ($ref == "") {
        $con->executar("SELECT * FROM `grupos` WHERE grp_classif LIKE '1.01.01.05.001%' OR grp_classif LIKE '1.01.01.03.001.004%' GROUP BY grp_classif ORDER BY grp_classif ASC");
    }
    $ordem = 0;
    $idPai = str_replace(".", "", str_replace(" ", "", $ref));
    $lPC = new ListaProdutoCategorias();
    while ($row = $con->getRegistro()) {
        $ordem++;
        $id = str_replace(".", "", str_replace(" ", "", $row['grp_classif']));
        $lPC->condicoes("", $id, ListaProdutoCategorias::ID);
        if ($lPC->getTotal() > 0) {
            $pC = $lPC->listar();
            $pC->nome = Strings::__PrimeirasLetrasMaiusculas($row['grp_descricao']);
            $pC->getURL()->setURL(URL::cleanURL($pC->nome));
            $pC->ordem = $ordem;
            $pC->subreferencia = $row['grp_classif'];
            $lPC->alterar($pC);
        } else {
            $con2->executar("INSERT INTO " . Sistema::$BDPrefixo . "produtos_categorias (id, categoriapai) VALUES('" . $id . "','" . $idPai . "')");
            $lPC->condicoes("", $id, ListaProdutoCategorias::ID);
            $pC = $lPC->listar();
            $pC->nome = Strings::__PrimeirasLetrasMaiusculas($row['grp_descricao']);
            $pC->getURL()->setURL(URL::cleanURL($pC->nome));
            $pC->ordem = $ordem;
            $pC->disponivel = 1;
            $pC->subreferencia = $row['grp_classif'];
            $lPC->alterar($pC);
        }
        //if($nivel == 0){
        //	menu_produtos($row['grp_classif'], 0, $nivel+1);
        //}
    }
}
         $t->conteudo = $p->tipoUnidade;
         $t->traducao = $_POST['itipoUnidade'][$i->getId()];
         $t->setIdConteudo($p->getId());
         $t->setCampoConteudo(ListaProdutos::TIPOUNIDADE);
         $t->setTabelaConteudo($lP->getTabela());
         $i->addTraducao($t);
     }
 }
 $con = BDConexao::__Abrir();
 $con->deletar(Sistema::$BDPrefixo . "relacionamento_produtos_categorias", "WHERE produto = '" . $p->getId() . "'");
 $lPC = new ListaProdutoCategorias();
 if (!empty($_POST['categoriasSelecionadas'])) {
     foreach ($_POST['categoriasSelecionadas'] as $valor) {
         $lPC->condicoes('', $valor, ListaProdutoCategorias::ID);
         if ($lPC->getTotal() > 0) {
             $pC = $lPC->listar();
             $p->addCategoria($pC);
         }
     }
 }
 if (!empty($_POST['remover'])) {
     $lI = new ListaImagens();
     $lI->caminhoEscrita = Sistema::$caminhoDiretorio . Sistema::$caminhoDataProdutos;
     $lI->caminhoLeitura = $lI->caminhoEscrita;
     foreach ($_POST['remover'] as $id) {
         $lI->condicoes('', $id, ListaImagens::ID);
         if ($lI->getTotal() > 0) {
             $img = $lI->listar();
             $lI->deletar($img);
         }
     }
 public function getIdAllSubCategoria()
 {
     $a = array();
     $a[' ' . $this->getId()] = true;
     $subC = new ListaProdutoCategorias();
     $aPC[1] = array('campo' => ListaProdutoCategorias::CATEGORIAPAI, 'valor' => $this->getId());
     $subC->condicoes($aPC);
     while ($sub = $subC->listar()) {
         $a[' ' . $sub->getId()] = true;
         $b = $sub->getIdAllSubCategoria();
         if (count($b) > 0) {
             $a = array_merge($a, $b);
         }
     }
     return $a;
 }
         while ($sPC = $pC->getSubCategorias()->listar('ASC', ListaProdutoCategorias::NOME)) {
             $array['filhos']->append(navigateToCategory($sPC));
         }
     } else {
         $array['produtos'] = new ArrayObject();
         while ($p = $pC->getProdutos()->listar("ASC", ListaProdutos::NOME)) {
             $array['produtos']->append($p);
         }
     }
     return $array;
 }
 if ($cond) {
     $rsT = new ArrayObject();
     $lPC = new ListaProdutoCategorias();
     $lPC->condicoes($cond);
     while ($pC = $lPC->listar("ASC", ListaProdutoCategorias::NOME)) {
         $rsT->append(navigateToCategory($pC));
     }
 } else {
     $rsT = new ArrayObject();
     $pCP = new ProdutoCategoria();
     while ($pC = $pCP->getSubCategorias()->listar("ASC", ListaProdutoCategorias::NOME)) {
         $rsT->append(navigateToCategory($pC));
     }
 }
 $rs = $rsT;
 //$rs = Arrays::ArrayOrderBy($rsT, 'nome', SORT_ASC);
 //unset($rsT);
 $iGR = new IFAdmin(new Arquivos(Sistema::$adminLayoutCaminhoDiretorio . "/SistemaRelatorios/relatorioProduto.html"));
 function repeatTemplateByArray($rs)
 {
            $javaScript .= Aviso::criar("Categoria removida com sucesso!");
        } catch (Exception $e) {
            $javaScript .= Aviso::criar($e->getMessage());
        }
    }
}
$lPC = new ListaProdutoCategorias();
$iLPC->createRepeticao("repetir->ProdutoCategorias");
if (!empty($_GET['busca'])) {
    $lPC->condicoes('', "%" . $_GET['busca'] . "%", 'empresa', 'LIKE');
}
$iLPC->condicao("condicaoBusca", !empty($_SESSION['nivel']));
if (!empty($_GET['categoria'])) {
    $lPC->condicoes('', $_GET['categoria'], ListaProdutoCategorias::ID);
    if ($lPC->getTotal() > 0) {
        $cP = $lPC->listar();
    } else {
        $cP = new ProdutoCategoria();
    }
} else {
    $cP = new ProdutoCategoria();
}
$lPC = $cP->getSubCategorias();
if (isset($_GET['json'])) {
    $cond = array();
    if (!empty($_GET['categoria'])) {
        $rs['id'] = $cP->getIdCategoriaPai();
        $rs['nome'] = 'Voltar';
        $rs['filhos'] = '';
        $cond[] = $rs;
    }
<?php

importar("LojaVirtual.Categorias.Lista.ListaProdutoCategorias");
$tituloPagina = 'Produtos > Categorias > Alterar';
$iAPC = new IFAdmin(new Arquivos(Sistema::$adminLayoutCaminhoDiretorio . "/SistemaProdutos/produtoCategoria.html"));
$lI = new ListaIdiomas();
if (!empty($_POST)) {
    $erro = '';
    if (empty($_POST['nome'])) {
        $erro = "<b>Nome</b> não preenchido!<br><br>";
    }
    if (empty($erro)) {
        $lCP = new ListaProdutoCategorias();
        $lCP->condicoes('', $_GET['categoria'], ListaProdutoCategorias::ID);
        $pC = $lCP->listar();
        $pC->nome = addslashes(str_replace("\"", "'", $_POST['nome']));
        $pC->ordem = $_POST['ordem'];
        $pC->subreferencia = $_POST['subreferencia'];
        $pC->disponivel = $_POST['disponivel'] == ListaProdutoCategorias::VALOR_DISPONIVEL_TRUE ? true : false;
        $pC->visaoUnica = $_POST['visaoUnica'] == ListaProdutoCategorias::VALOR_VISAOUNICA_TRUE ? true : false;
        if (!empty($_POST['url'])) {
            $pC->getURL()->setURL($_POST['url']);
        } else {
            $pC->getURL()->setURL(($cP->getId() > 0 ? URL::cleanURL($cP->getNavegador(new Templates(Arquivos::__Create("{nome}")))) . "-" : '') . URL::cleanURL($_POST['nome']));
        }
        $pC->descricaoPequena = eregi_replace('\\.\\./', Sistema::$caminhoURL, $_POST['descricaoPequena']);
        $pC->descricao = eregi_replace('\\.\\./', Sistema::$caminhoURL, $_POST['descricao']);
        if (!empty($_FILES['imagem']['name'])) {
            $pC->setImagem(new Image(Arquivos::__OpenArquivoByTEMP($_FILES['imagem'])));
        }
        $lCP->alterar($pC);
            $t->conteudo = $pC->descricao;
            $t->traducao = $_POST['idescricao'][$i->getId()];
            $i->addTraducao($t);
        }
        $lI->resetCondicoes();
        $lI->setParametros(0);
        $_POST = '';
        $javaScript .= Aviso::criar("Categoria salva com sucesso!");
    } else {
        $javaScript .= Aviso::criar($erro);
    }
}
if (!empty($_GET['categoria'])) {
    $lCP = new ListaProdutoCategorias();
    $lCP->condicoes('', $_GET['categoria'], ListaProdutoCategorias::ID);
    $cP = $lCP->listar();
} else {
    $cP = new ProdutoCategoria();
}
$iCPC->trocar("linkVoltar", "?p=" . $_GET['p'] . "&a=listarProdutoCategorias&categoria=" . $cP->getId());
$iCPC->trocar("nome", $_POST['nome']);
$iCPC->trocar("url", $_POST['url']);
$iCPC->trocar("ordem", $_POST['ordem']);
$iCPC->trocar("subreferencia", $_POST['subreferencia']);
$iCPC->trocar("disponivel", $_POST['disponivel']);
$iCPC->trocar("visaoUnica", $_POST['visaoUnica']);
$iCPC->trocar("descricaoPequena", $_POST['descricaoPequena']);
$iCPC->trocar("descricao", $_POST['descricao']);
$iCPC->trocar("id.ProdutoCategoria", $cP->getId());
$sub = "repetir->nome.ProdutoCategorias.Idiomas";
$sub2 = "repetir->descricao.ProdutoCategorias.Idiomas";