/** * Busca o id da categoria/tag PAI * * @param integer $idcomponente * @param integer $idstart * @param boolean $tree * @param string [categorias | tags] * @return object/JCRUD */ function busca_categorias_tags_pai($idcomponente, $idstart = 0, $tabela = 'categorias') { $tb = $tabela == 'categorias' ? ECOMP_TABLE_CATEGORIAS : ECOMP_TABLE_TAGS; $t = new JCRUD($tb); $a = $t->busca("WHERE idcomponente = '{$idcomponente}' AND id = '{$idstart}'"); if ($a->idpai != 0) { $tt = $t->busca("WHERE idcomponente = '{$idcomponente}' AND idpai = '{$idstart}'"); foreach ($tt as $tr) { $a = eHelper::busca_categorias_tags_pai($idcomponente, $tr->id, $tabela); } } return $a->id; }
function getTree($tabela, $idcomponente = 0, $idPai = 0, $where = '') { $tb = new JCRUD($tabela); $dados = $tb->busca("WHERE idpai='{$idPai}' AND idcomponente = '{$idcomponente}' {$where} ORDER BY ordering ASC, nome ASC"); $r = array(); foreach ($dados as $a) { $r[] = $a; $filhos = $this->getTree($tabela, $idcomponente, $a->id, $where); if (count($filhos)) { $r[] = $filhos; } } return $r; }
function deletar() { $cids = JRequest::getVar('cid', array(0), 'request', 'array'); foreach ($cids as $id) { // abre o compo da tabela do componente $campo = new JCRUD(ECOMP_TABLE_CAMPOS, array('id' => $id)); // abre a tabela de componentes $componente = new JCRUD(ECOMP_TABLE_COMPONENTES, array('id' => $campo->idcomponente)); // deleta a coluna do componente JCRUD::query("ALTER TABLE `" . ECOMP_TABLE_COMPONENTES . "_{$componente->alias}` DROP `{$campo->alias}`"); // deleta o campo $campo->delete(); } // retorna msg de ok para o usuário return true; }
function deletar() { $cids = JRequest::getVar('cid', array(0), 'request', 'array'); foreach ($cids as $id) { // abre o compo da tabela $registro = new JCRUD(ECOMP_TABLE_CATEGORIAS, array('id' => $id)); // abre a tabela de relacionamentos $relacionamentos = new JCRUD(ECOMP_TABLE_CADASTROS_CATEGORIAS); $relacionamentos = $relacionamentos->busca("WHERE idcategoria = {$id}"); foreach ($relacionamentos as $relacionamento) { $relacionamento->delete(); } // deleta o campo $registro->delete(); } // retorna msg de ok para o usuário return true; }
function exibir() { $u =& JURI::getInstance(); $t = new JCRUD(ECOMP_TABLE_COMPONENTES); $componentes = $t->busca("WHERE exibir_manager = '1' ORDER BY nome ASC"); $query = array('Itemid' => JRequest::getVar('Itemid'), 'funcao' => 'listar', 'idcomponente' => 0); // home echo sprintf('<a href="?%s">Home</a>', $u->buildQuery($query)); // componentes foreach ($componentes as $c) { $query['idcomponente'] = $c->id; echo sprintf('<a href="?%s">%s</a>', $u->buildQuery($query), $c->nome); } // sair $query['funcao'] = 'sair'; unset($query['idcomponente']); echo sprintf('<a href="?%s" class="sair">Sair</a>', $u->buildQuery($query)); }
function deletar() { $cids = JRequest::getVar('cid', array(0), 'post', 'array'); foreach ($cids as $id) { // carrega os dados $imagem = new JCRUD(ECOMP_TABLE_CADASTROS_IMAGENS, array('id' => $id)); // apaga as imagens @unlink(ECOMP_PATH_IMAGENS . DS . $imagem->file); //@unlink(ECOMP_PATH_IMAGENS.DS.str_replace('.', '_800x600.', $imagem->file)); //@unlink(ECOMP_PATH_IMAGENS.DS.str_replace('.', '_640x480.', $imagem->file)); //@unlink(ECOMP_PATH_IMAGENS.DS.str_replace('.', '_320x240.', $imagem->file)); @unlink(ECOMP_PATH_IMAGENS . DS . str_replace('.', '_p.', $imagem->file)); @unlink(ECOMP_PATH_IMAGENS . DS . str_replace('.', '_m.', $imagem->file)); // deleta o componente $imagem->delete(); } return true; }
function publish($valor) { $cids = JRequest::getVar('cid', array(0), 'request', 'array'); foreach ($cids as $id) { $idcomponente = JRequest::getVar('idcomponente', 0); // abre a tabela de componentes do ecomp $componente = new JCRUD(ECOMP_TABLE_COMPONENTES, array('id' => $idcomponente)); // abre a tabela de cadastro $cadastro = new JCRUD(ECOMP_TABLE_COMPONENTES . "_{$componente->alias}", array('id' => $id)); // $cadastro->published = $valor; $cadastro->update(); } }
function busca_por_categorias($ids, $limit = 0) { $produtos = array(); $ids = $ids == '' ? 0 : $ids; // Abre a tabela $c = new JCRUD('jos_edesktop_produtos_categorias_rel'); $where = "WHERE idcategoria IN ({$ids})"; $where = $limit ? "{$where} ORDER BY RAND() LIMIT {$limit}" : $where; if ($this->paginacao) { $this->paginacao = $c->paginacao($where, $this->paginacao); $where = "{$where} LIMIT {$this->paginacao->limit}"; } $pp = $c->busca($where); foreach ($pp as $p) { if (!isset($produtos[$p->idproduto])) { $produtos[$p->idproduto] = $this->busca_por_id($p->idproduto, true); } } return $produtos; }
private function permissoes() { // Carrega os dados do usuário $u = new JCRUD("jos_users", array('id' => $this->user->id)); // Carrega os dados do grupo $g = new JCRUD("jos_edesktop_usuarios_grupos", array('id' => $u->id_grupo)); // Grava na sessão os dados do usuário $_SESSION['eDesktop.usuario'] = $u->get_dados(); // Grava na sessão os dados do grupo do usuário $_SESSION['eDesktop.usuario.grupo'] = $g->get_dados(); // Separa as permissões em um array e grava na sessão $_SESSION['eDesktop.usuario.grupo.permissoes'] = $g->permissoes != '' ? explode("\n", $g->permissoes) : array(); }
$dados['status'] = 1; } // remove a var limit unset($dados['limit']); // permissoes $permissoes = ''; $permissoes_novas = JRequest::getvar('permissoes', array()); $permissoes_total = count($permissoes_novas); $permissoes_count = 0; foreach ($permissoes_novas as $permissao) { $permissoes_count++; $permissoes .= $permissoes_count != $permissoes_total ? "{$permissao}\n" : $permissao; } $dados['permissoes'] = $permissoes; // abre a tabela com os novo dados $grupo = new JCRUD('jos_edesktop_usuarios_grupos', $dados); // verifica se o registro já existe if ($grupo->id) { // verifica se o usuario logado tem permissão jAccess('grupos.editar'); // atualiza os dados do registro $grupo->update(); // carrega as vars de retorno $retorno = 'updateOk'; $msg = 'Dados do grupo de usuário foram atualizados com sucesso!'; } else { // verifica se o usuario logado tem permissão jAccess('grupos.adicionar'); // cadastra o novo registro $grupo->insert(); // carrega as vars de retorno
$groups_aro_map->update('aro_id'); } // carrega as vars de retorno $retorno = 'updateOk'; $msg = 'Dados do usuário foram atualizados com sucesso!'; } else { // verifica se o usuario logado tem permissão jAccess('usuarios.adicionar'); // adiciona a data de registro $usuario->registerDate = date("Y-m-d H:i:s"); // cadastra o novo registro $usuario->insert(); // adiciona valores na tabela jos_core_acl_aro $aro = new JCRUD("jos_core_acl_aro"); $aro->section_value = 'users'; $aro->value = $usuario->id; $aro->order_value = 0; $aro->name = $usuario->name; $aro->hidden = 0; $aro->insert(); // adiciona valores na tabela jos_core_acl_groups_aro_map $groups_aro_map = new JCRUD("jos_core_acl_groups_aro_map"); $groups_aro_map->group_id = $usuario->gid; $groups_aro_map->section_value = ''; $groups_aro_map->aro_id = $aro->id; $groups_aro_map->insert(); // carrega as vars de retorno $retorno = 'insertOk'; $msg = 'Usuário cadastrado com sucesso!'; } jexit(json_encode(array('msg' => $msg, 'retorno' => $retorno, 'id' => $usuario->id)));
function EcompBuildRoute(&$query) { $vars = $query; $menu =& JSite::getMenu(); $item =& $menu->getItem($vars['Itemid']); $params = $menu->getParams($vars['Itemid']); $idcomponente = $params->get('idcomponente'); $idcadastro = isset($vars['id']) ? $vars['id'] : $params->get('idcadastro'); $segments = array(); $values = array(); $conf =& JFactory::getConfig(); // abre a tabela de regras de rotas $r = new JCRUD(ECOMP_TABLE_ROUTERS_RULES); $r = $r->busca("WHERE itemid = '{$item->id}' AND published = '1' AND trashed != '1' ORDER BY ordering ASC"); foreach ($r as $rules) { if ($rules->type == '1') { // nome da tebela do componente $idcomp = $rules->idcomponente > 0 ? $rules->idcomponente : $idcomponente; $tabela = eHelper::componente_tabela_nome($idcomp); $c = new JCRUD($tabela); $x = isset($vars[$rules->get_var]) ? $vars[$rules->get_var] : '0'; $c = $c->busca_por_id($x); if ($c) { $campo = $rules->alias1; if ($campo == '' || JFilterOutput::stringURLSafe($c->{$campo}) == '') { $campo = $rules->alias2; } $segments[] = JFilterOutput::stringURLSafe($c->{$campo}); $values[$rules->get_var] = isset($vars[$rules->get_var]) ? $vars[$rules->get_var] : $rules->get_value; } } if ($rules->type == '2') { $segments[] = JFilterOutput::stringURLSafe($rules->alias1); $values[$rules->get_var] = isset($vars[$rules->get_var]) ? $vars[$rules->get_var] : $rules->get_value; } if ($rules->type == '3') { $s = isset($vars[$rules->get_var]) ? $vars[$rules->get_var] : $rules->get_value; $segments[] = JFilterOutput::stringURLSafe($s); $values[$rules->get_var] = $s; } // categoria if ($rules->type == '4') { $c = new JCRUD(ECOMP_TABLE_CATEGORIAS); $y = (int) $rules->get_value; $x = isset($vars[$rules->get_var]) ? $vars[$rules->get_var] : $y; $c = $c->busca_por_id($x); if ($c) { $campo = 'alias'; if (JFilterOutput::stringURLSafe($c->{$campo}) == '') { $campo = 'nome'; } $segments[] = JFilterOutput::stringURLSafe($c->{$campo}); $values[$rules->get_var] = isset($vars[$rules->get_var]) ? $vars[$rules->get_var] : $rules->get_value; } } // exclui a var caso exista if (isset($query[$rules->get_var])) { unset($query[$rules->get_var]); } } // exclui a var view 'padrao' if (isset($vars['view']) && $vars['view'] == 'padrao') { unset($query['view']); } //////////////////////////////////////////// //// CACHE /////////////////////////////////////////// if (count($segments)) { // verifica se o sef_suffix esta ativado $sef_suffix = $conf->getValue('config.sef_suffix') ? '.html' : ''; $url = join('/', $segments) . $sef_suffix; $params = http_build_query($values, '', '&'); $dados = array('id' => 0, 'itemid' => $item->id, 'url' => $url, 'params' => $params); // adicionao a rota na tabela cache $c = new JCRUD(ECOMP_TABLE_ROUTERS_CACHE, $dados); $cc = $c->busca("WHERE itemid = '{$item->id}' AND url = '{$url}'"); if (count($cc)) { $c->id = $cc[0]->id; $c->update(); } else { $c->insert(); } } return $segments; }
function adicionarItem($item) { $i = new JCRUD('jos_edesktop_loja_pedidos_itens', $item); return $i->insert(); }
$rels = $rel->busca("WHERE published = '1' ORDER BY ordering, {$campo->alias} ASC"); foreach ($rels as $rel) { $campo_alias = $campo->alias; echo sprintf('<option value="%s"%s>%s</option>', $rel->id, @$this->row->{$alias} == $rel->id ? ' selected="selected"' : '', $rel->{$campo_alias}); } echo '</select>'; } else { echo "Parâmetros inválidos!"; } } // Imagens da galeria if ($campo->idtipo == 9) { echo '<select name="' . $name . '">'; $params['idcadastro'] = $params['idcadastro'] ? $params['idcadastro'] : @$this->row->id; $params['idcomponente'] = $params['idcomponente'] ? $params['idcomponente'] : $idcomponente; $rel = new JCRUD(ECOMP_TABLE_CADASTROS_IMAGENS); $rels = $rel->busca("WHERE idcomponente = '{$params['idcomponente']}' AND idcadastro = '{$params['idcadastro']}' AND published = '1' ORDER BY ordering, legenda ASC"); foreach ($rels as $rel) { echo sprintf('<option value="%s"%s>%s</option>', $rel->id, @$this->row->{$alias} == $rel->id ? ' selected="selected"' : '', $rel->id . ' - ' . ($rel->legenda ? $rel->legenda : 'Sem legenda')); } echo '</select>'; } // combo simples if ($campo->idtipo == 10) { $itens = explode('|', $params['itens']); echo '<select name="' . $name . '">'; foreach ($itens as $item) { list($valor, $texto) = explode(';', $item); echo sprintf('<option value="%s"%s>%s</option>', $valor, @$this->row->{$alias} == $valor ? ' selected="selected"' : '', $texto); } echo '</select>';
function deletar() { $cids = JRequest::getVar('cid', array(0), 'post', 'array'); foreach ($cids as $id) { // abre a tabela de componentes do ecomp $componente = new JCRUD(ECOMP_TABLE_COMPONENTES); $componente = $componente->busca_por_id($id); // abre a tabela de menu/componentes $menu = new JCRUD(ECOMP_TABLE_JCOMPONENTS); // apaga o menu $menu->delete($componente->idmenuadmin); // busca todas as tags $tags = new JCRUD(ECOMP_TABLE_TAGS); $tags = $tags->busca("WHERE idcomponente = '{$componente->id}'"); foreach ($tags as $tag) { // apaga todos os relacionamento com a tag JCRUD::query("DELETE FROM " . ECOMP_TABLE_CADASTROS_TAGS . " WHERE idtag = '{$tag->id}'"); // apaga a tag $tag->delete(); } // busca todas as categorias $categorias = new JCRUD(ECOMP_TABLE_CATEGORIAS); $categorias = $categorias->busca("WHERE idcomponente = '{$componente->id}'"); foreach ($categorias as $categoria) { // apaga todos os relacionamento com a categoria JCRUD::query("DELETE FROM " . ECOMP_TABLE_CADASTROS_CATEGORIAS . " WHERE idcategoria = '{$categoria->id}'"); // apaga o categoria $categoria->delete(); } // apaga os campos JCRUD::query("DELETE FROM " . ECOMP_TABLE_CAMPOS . " WHERE idcomponente = '{$componente->id}'"); // apaga todas as imagens JCRUD::query("DELETE FROM " . ECOMP_TABLE_CADASTROS_IMAGENS . " WHERE idcomponente = '{$componente->id}'"); // deleta a tabela do banco JCRUD::query("DROP TABLE " . ECOMP_TABLE_COMPONENTES . "_{$componente->alias}"); // apaga a pasta de imagen caso exista if (JFolder::exists(ECOMP_PATH_IMAGENS . DS . $componente->id)) { JFolder::delete(ECOMP_PATH_IMAGENS . DS . $componente->id); } // apaga a pasta de uploads if (JFolder::exists(ECOMP_PATH_UPLOADS . DS . $componente->id)) { JFolder::delete(ECOMP_PATH_UPLOADS . DS . $componente->id); } // deleta o componente $componente->delete(); } return true; }