Ir para conteúdo
  • Cadastre-se

Painel Admin


Hash

Posts recomendados

Olá pessoal da L2JBrasil, estou a um tempo sem postar nada no fórum e como comecei a trabalhar em um novo projeto L2J comecei a desenvolver também a parte web que será utilizada (site, página com contagem regressiva, etc).

Levando isso em consideração, comecei a buscar pelo fórum algumas opções de painéis administrativos e vi um que eu já havia utilizado a muito tempo atrás e pensei em reaproveitar o que já foi feito e atualizá-lo em diversos aspectos.

Principais objetivos do "rework":

  • Atualização dos componentes e funções existentes no projeto;
  • Utilização de novas tecnologias no projeto para facilitar na criação/modificação das interfaces tais como o Bootstrap, Font Awesome, etc;
  • Adição de novas funcionalidades (específicas do meu projeto).

Sobre o projeto base:

O projeto que será utilizado como base para a criação da nova versão do painel foi desenvolvido por um usuário (Mr. Walker) que já está banido da L2JBrasil, porém ainda é possível baixar o projeto original através do link onde encontra-se o tópico original da postagem. A imagem da versão original contra-se no spoiler abaixo.

ndD58.jpg

 

 

Versão 2.1 (26/10)

 

 

Correções:

  • Alteração das funções php para acesso ao banco (mysql > mysqli);
  • Modificação no gerenciamento de sessão (parâmetros de acesso);
  • Modificação da tela inicial de login a partir da utilização do Bootstrap.

dedcc8079ca14332a78793f10baa79bd.png

 

 

 

Versão 2.1.1 (27/10)

 

 

  • Modificação da página de entregar doações no padrão do bootstrap (Não está funcionando a entrega);
  • Modificação da página de exibição dos players online;
  • Modificação da página de busca por ID (Padronização e busca pelas custom tables);
  • Alteração do visual da barra lateral e do menu de navegação.

762b134e68ab43ea9cd39c549e18998c.png

 

 

 

Versão 2.2 (29/10)

 

 

  • Correção do entregar_donate, agora está 100% funcional e com uma nova opção para entregar no inventário ou na warehouse;
  • Criação de um footer para manter/adicionar os direitos autorais;
  • Modificação no estilo das páginas de status vip, ban, troca de nick, troca de s***, recs, status nobles, deletar chars lv1, wipe, cadastrar notícia, cadastrar usuário, editar perfil;
  • Reformulação da função de dar status vip (utilização do campo vip da table characters);
  • Correção da tabela e SQL da listagem dos clans, pois não conseguia pegar alguns dos lideres (erro na SQL);
  • Edição do perfil do usuário e da opção para editar o perfil;
  • Perfil do usuário atualizado, parecido com um cartão de visita;
  • Página home apresenta todas as notícias do site, agora com opção de subtitulo e imagem.

5abbd53df6b94eedaa0c1ed921affc34.png

40fb14c1f05f4a80ad20e6dcadb6b47c.png

4892f77ad0fa4021a0fce3186e553edb.png

89dfb8b5f5c04f3f83356907e9aa5a85.png

d8498142e920491f8dea7f5fe510c9b7.png

d9bacad4646a429eadca7dfa5d392b21.png

7fce3acc29ea45e29e43db9dd26cebc7.png

319967378de245d5a3bf29efdac5299f.png

 

 

 

 

Versão 2.2.2 (01/11)

 

 

  • Ajustes gerais (visuais);
  • Inserção da funcionalidade de remoção de itens de um player (Inventário, warehouse, equipado);
  • Listagem das notícias (Título e subtítulo);
  • Edição do conteúdo da notícia;
  • Opção "Ler mais" de uma notícia onde abre todo o conteúdo da mesma;
  • Correção da função de entrega de vip, agora por dias (1 por default, 30, 60 e 90);

2de4ab70b4d74aeb9470e427cde35139.png

3490389b452548eca18f8aec087605f5.png

556ac401e6664038b6024f002cda0a6d.png

b4d91a6073d949368f4a171f5a9dd7ce.png

0041183abde84d73a5d078c954a6348b.png

 

 

 

Bom, resolvi postar no fórum de desenvolvimento para receber críticas construtivas de como melhorar, pois além de aprimorar o painel para utilização em meu projeto, tenho interesse em aprimorar minhas habilidades em front/back-end.

 

Créditos e agradecimentos:

Criador do painel:

Colaboradores: @MrFreedomFights e @Tayran.JavaDev à eles o meu muito obrigado.

 

ESTOU ACEITANDO SUGESTÕES DE FUNCIONALIDADES PARA O PAINEL,

BASTA POSTAR NESTE TÓPICO!

 

Abraços!

Editado por Tayran.JavaDev
Adicionando Nova versão a pedido do membro.

Insanity is doing the same thing over and over again
and expecting different results.

- Albert Einstein.

owner of Lineage II Furya - Interlude 3000x - furya.com.br 😉

Link para o comentário
Compartilhar em outros sites


Achei bacana, eu uso este Painel em todos os meus sites, tem que dar uma mexida também nas notícias que estão sem cores, está bem Monótonas... mas enfim, espero que poste logo. Mantenha sempre os créditos dos criadores originais! :)

pD5PSQp.png

" Você nunca sabe que resultados virão de suas ações, mas se você não fizer nada, não existirão resultados"

 

 

Link para o comentário
Compartilhar em outros sites

Achei bacana, eu uso este Painel em todos os meus sites, tem que dar uma mexida também nas notícias que estão sem cores, está bem Monótonas... mas enfim, espero que poste logo. Mantenha sempre os créditos dos criadores originais! :)

 

Essa é a intenção, melhorar principalmente a aparência :) . E pode deixar, manterei sim os créditos do criador.

Olá @MrFreedomFights, gostaria de saber se você utiliza a função de entrega de doação, pois estou com um problema sem solução até o momento.

Na hora de entregar a doação ele fala que não encontra o $_POST[id], não sei se na versão que você tem ele passa de alguma forma pelo form ou como ele faz mas na versão que eu tenho ele não passa esse parâmetro.
Se tiver alguma solução ou puder me enviar o arquivo entregar_donate.php, eu agradeceria.
Abraço!

Insanity is doing the same thing over and over again
and expecting different results.

- Albert Einstein.

owner of Lineage II Furya - Interlude 3000x - furya.com.br 😉

Link para o comentário
Compartilhar em outros sites

 

 

Essa é a intenção, melhorar principalmente a aparência :) . E pode deixar, manterei sim os créditos do criador.

Olá @MrFreedomFights, gostaria de saber se você utiliza a função de entrega de doação, pois estou com um problema sem solução até o momento.

Na hora de entregar a doação ele fala que não encontra o $_POST[id], não sei se na versão que você tem ele passa de alguma forma pelo form ou como ele faz mas na versão que eu tenho ele não passa esse parâmetro.
Se tiver alguma solução ou puder me enviar o arquivo entregar_donate.php, eu agradeceria.
Abraço!

 

 

O meu funciona perfeitamente, talvez seja problema no servidor com o qual vc está fazendo teste..

pD5PSQp.png

" Você nunca sabe que resultados virão de suas ações, mas se você não fizer nada, não existirão resultados"

 

 

Link para o comentário
Compartilhar em outros sites

 

 

Essa é a intenção, melhorar principalmente a aparência :) . E pode deixar, manterei sim os créditos do criador.

Olá @MrFreedomFights, gostaria de saber se você utiliza a função de entrega de doação, pois estou com um problema sem solução até o momento.

Na hora de entregar a doação ele fala que não encontra o $_POST[id], não sei se na versão que você tem ele passa de alguma forma pelo form ou como ele faz mas na versão que eu tenho ele não passa esse parâmetro.
Se tiver alguma solução ou puder me enviar o arquivo entregar_donate.php, eu agradeceria.
Abraço!

 

 

Deve ser nome de campos diferente, de uma rev pra outra alguns campos mudam o nome.

"Tente ser uma pessoa de valor , não de sucesso" - Albert Einstein

 

 

Link para o comentário
Compartilhar em outros sites

 

Deve ser nome de campos diferente, de uma rev pra outra alguns campos mudam o nome.

 

Não acho que seja problema com relação a rev (até pq ele está pegando um post do form), acho que é pq está faltando alguma coisa na view, infelizmente não estou conseguindo resolver.

De qualquer forma a revisão que eu estou usando (ou pelo menos o banco) é da frozen 1118.

Insanity is doing the same thing over and over again
and expecting different results.

- Albert Einstein.

owner of Lineage II Furya - Interlude 3000x - furya.com.br 😉

Link para o comentário
Compartilhar em outros sites

Meus conselhos é que para tirar aqueles avisos que não está achando o POST quando não se entregou uma doação ainda.

O conteúdo está oculto, favor efetuar login ou se cadastrar!

assim ele não vai aparecer Undefined Index... o ID do post que não está achando pelo que vi antes o sistema gerava o ID por conta própria, e verificava se o objectId já não existia antes, mas parece que esquecerem trecho do código, pela breve olhada que dei vi esse problema que pode ser resolvido modificando da forma que coloquei. Abraço.


Outra coisa é modificar todas as chamadas de mysql para mysql improved.


No caso do POST 'id' ele ta servindo pra nada, ele serviria caso o objectID do item fosse passado por um form em forma de post ai fazia a verificação se o ID já existia ou não, caso contrário gerava uma nova ID, no caso ai sempre ta caindo no else que gera um novo ID e salva no banco, só remover essa parte que não ta servindo de nada.

O conteúdo está oculto, favor efetuar login ou se cadastrar!

"Tente ser uma pessoa de valor , não de sucesso" - Albert Einstein

 

 

Link para o comentário
Compartilhar em outros sites

@Tayran.JavaDev obrigado pela ajuda primeiramente.

 

Bom, eu já modifiquei/estou modificando todas as funções pro mysql improved, e na verdade a minha intenção futuramente é utilizar o PDO pra conexão, porém estou fazendo rodar pra testar se tudo está funcionando ok. Segundo, vou testar dessa forma que você falou e eu já havia constatado que estava caindo direto no else desse if e havia colocado outro if pra verificar se o $_POST['id'] estava setado (através do isset, exatamente como no primeiro caso, que eu já havia solucionado dessa forma). Assim que eu tiver resultados eu edito minha resposta, só conseguirei terminar isso amanhã pela manhã.

 

Obs: dá uma olhada nas versões que eu postei e tenta dar alguma sugestão, elas são sempre bem-vindas. Além disso nelas estão contidas as modificações, até na primeira eu comento que estava fazendo a modificação das chamadas de funções do mysql.

 

Abraço!

Insanity is doing the same thing over and over again
and expecting different results.

- Albert Einstein.

owner of Lineage II Furya - Interlude 3000x - furya.com.br 😉

Link para o comentário
Compartilhar em outros sites

O Uso de PDO em uma aplicação que 99,99% dos usuários usa Mysql é quase que bobagem passar pra PDO, aquele POST do id pode ser removido, tá servindo de nada na aplicação, meu tempo é bem curto mas qualquer ajuda que precisar no PHP estou a disposição, só não tenho muitos estudos em linguagem de estilização e marcação, mas linguagem de programação minha lógica é ótima.

"Tente ser uma pessoa de valor , não de sucesso" - Albert Einstein

 

 

Link para o comentário
Compartilhar em outros sites

Bom, resolvi o problema da entrega de doações, está funcionando 100%! Inseri uma opção para entregar o item ou no inventário ou na warehouse do player, acredito que seja algo útil de ser utilizado. (Agradeço mais uma vez a ajuda do Tayran).

 

 

 

e280346d480247338defd7849b913861.png

 

 

 

Infelizmente tem um outro problema meio que sem solução até o momento, quando eu logo, e inicio a sessão através do index.php, aparece esse aviso do php no cabeçalho.

Tentei remover o session_start desse arquivo, e tentei colocar uma condição pra ver se a sessão já não estava iniciada pra dai iniciar e nos dois casos não deu certo. 1º porque quando eu removia, ele não logava no sistema, ou seja, existe algum outro session start escondido em algum lugar e eu não encontrei até o momento. 2º ele sempre caia no else como se não estivesse instanciado inicialmente.

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Insanity is doing the same thing over and over again
and expecting different results.

- Albert Einstein.

owner of Lineage II Furya - Interlude 3000x - furya.com.br 😉

Link para o comentário
Compartilhar em outros sites

Sinceramente eu no seu lugar programava outro painel do 0, não dá pra confiar em código dos outros e o pior mexer com código dos outros é pior do que refazer o sistema do 0.

"Tente ser uma pessoa de valor , não de sucesso" - Albert Einstein

 

 

Link para o comentário
Compartilhar em outros sites

Então eu até ia fazer isso, mas preciso terminar isso pra ontem, então não posso perder tempo.

 

Obs: o sistema será interno acessado localmente, não vejo problemas referentes a segurança, etc.

Obs²: eu modifiquei grande parte dos códigos, organizei, padronizei, pois estava ilegível a maioria das funções (alguns if's com chaves perdidas, sem identação, etc).

Editado por -Hades

Insanity is doing the same thing over and over again
and expecting different results.

- Albert Einstein.

owner of Lineage II Furya - Interlude 3000x - furya.com.br 😉

Link para o comentário
Compartilhar em outros sites

Eu prefiro reescrever assim sei 100% da interação do sistema e não fica perdido, e não tava referindo a problemas de segurança, tava me referindo a código porco sem indentação escrito de qualquer forma, o código desse painel tava muito mal feito.

"Tente ser uma pessoa de valor , não de sucesso" - Albert Einstein

 

 

Link para o comentário
Compartilhar em outros sites

Estava mesmo, mas eu dei uma melhorada/organizada no código. Pelo menos agora está legível, e adicionei algumas verificações também antes de fazer as ações (Por exemplo: na hora de dar vip, trocar de s***, não verificava a existência do char antes de dar o status ou fazer a troca).


Eu prefiro reescrever assim sei 100% da interação do sistema e não fica perdido, e não tava referindo a problemas de segurança, tava me referindo a código porco sem indentação escrito de qualquer forma, o código desse painel tava muito mal feito.

 

Tayran sabe me dizer se eu usar a sql abaixo, o delete será cascade? Digo isso porque do contrário manteria as informações desse char, mesmo ele sendo deletado.

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Insanity is doing the same thing over and over again
and expecting different results.

- Albert Einstein.

owner of Lineage II Furya - Interlude 3000x - furya.com.br 😉

Link para o comentário
Compartilhar em outros sites

 

Qual sua intenção com essa query ? excluir um personagem level 1 por completo ? assim não vai funcionar não...

"Tente ser uma pessoa de valor , não de sucesso" - Albert Einstein

 

 

Link para o comentário
Compartilhar em outros sites

Faltou um * antes do FROM, é remover todos os chars level 1. E na verdade a intenção é remover toda informação dele com ele, e realmente não exclui.

Insanity is doing the same thing over and over again
and expecting different results.

- Albert Einstein.

owner of Lineage II Furya - Interlude 3000x - furya.com.br 😉

Link para o comentário
Compartilhar em outros sites

Faltou um * antes do FROM, é remover todos os chars level 1. E na verdade a intenção é remover toda informação dele com ele, e realmente não exclui.

 

Exclui apenas os "characters". Se quiser eu te passo o meu painel aqui, ele tá com as noticias modificadas, com cores e tal.

pD5PSQp.png

" Você nunca sabe que resultados virão de suas ações, mas se você não fizer nada, não existirão resultados"

 

 

Link para o comentário
Compartilhar em outros sites

Seria de grande ajuda Freedom, até porque a página Home onde ficariam as notícias não faz parte do pack postado pelo criador do painel.

 

Obs: adicionarei vocês dois como colaboradores do projeto, estão me ajudando muito. :)

Obs²: peço desculpas pelas perguntas "idiotas" e pelos erros de iniciante, estou concluindo meu curso da faculdade esse ano e apesar da experiência em programação, a parte web comecei a lidar faz menos de um mês.


// EDIT

 

Consegui solucionar o problema do notice que eu havia mencionado, só para deixar constado, precisei remover uma parte repetida de acesso a sessão que encontrava-se no index.

Insanity is doing the same thing over and over again
and expecting different results.

- Albert Einstein.

owner of Lineage II Furya - Interlude 3000x - furya.com.br 😉

Link para o comentário
Compartilhar em outros sites

Faltou um * antes do FROM, é remover todos os chars level 1. E na verdade a intenção é remover toda informação dele com ele, e realmente não exclui.

 

Você pode fazer o delete usando o comando:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

e depois adaptar o script a seguir para remover tudo que estivesse relacionado com o char

O conteúdo está oculto, favor efetuar login ou se cadastrar!

nota: nao cheguei a testar o script no entanto o mesmo está configurado para remoção por tempo de inatividade, mas a base é essa

ele verifica as contas e depois deleta chars, dados de clan, itens. tudo que estivesse relacionado ao char.

 

aproveita e da uma estudada na sintaxe do sql.

 

ah uma observação:

 

1 - com relação a pdo e mysqli o pessoal vem afirmando que o pdo é mais seguro e talz, isso é pura ilusão tanto o mysqli quando o pdo são seguros desde que se tome todas as precauções afinal a api por si só nao faz nada.

 

2 - caso você tenha vontade de portar sua aplicação para outras sgdb ai sim vale a pena usar o pdo, como acredito nao ser o caso do l2j em que dificilmente alguem use o sqlserver ou outra db, a maioria só usa mysql entao acredito que vale mais a pena usar a api Mysqli.

 

nao desmerecendo nenhuma das apis, as duas tem seus pros e contras.

Editado por Demonwar

...O RESPEITO QUE IMPOMOS DEFINE O QUE SOMOS....

Link para o comentário
Compartilhar em outros sites

 

Você pode fazer o delete usando o comando:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

e depois adaptar o script a seguir para remover tudo que estivesse relacionado com o char

O conteúdo está oculto, favor efetuar login ou se cadastrar!

nota: nao cheguei a testar o script no entanto o mesmo está configurado para remoção por tempo de inatividade, mas a base é essa

ele verifica as contas e depois deleta chars, dados de clan, itens. tudo que estivesse relacionado ao char.

 

aproveita e da uma estudada na sintaxe do sql.

 

ah uma observação:

 

1 - com relação a pdo e mysqli o pessoal vem afirmando que o pdo é mais seguro e talz, isso é pura ilusão tanto o mysqli quando o pdo são seguros desde que se tome todas as precauções afinal a api por si só nao faz nada.

 

2 - caso você tenha vontade de portar sua aplicação para outras sgdb ai sim vale a pena usar o pdo, como acredito nao ser o caso do l2j em que dificilmente alguem use o sqlserver ou outra db, a maioria só usa mysql entao acredito que vale mais a pena usar a api Mysqli.

 

nao desmerecendo nenhuma das apis, as duas tem seus pros e contras.

 

Então, eu não queria me preocupar com proteções a ideia era rodar localmente o sistema pra utilizar as funcionalidades mas terei de pensar nessa parte de proteção, pois hoje me pediram pra disponibilizar o acesso online (não estou vendendo o sistema pra ninguém, mas faço parte de uma staff e eles estão me passando o que gostariam que tivesse no sistema, etc).

 

Sobre o script, eu vou dar uma olhada, mas acho que o caminho é esse, só preciso adaptar, pois para o meu caso é fazer a deleção dos chars que possuem level 1 e todas as informações (não pelo tempo de inatividade). De qualquer forma vou utilizá-lo em outro projeto que eu já tenho aqui :) .

Insanity is doing the same thing over and over again
and expecting different results.

- Albert Einstein.

owner of Lineage II Furya - Interlude 3000x - furya.com.br 😉

Link para o comentário
Compartilhar em outros sites

 

Então, eu não queria me preocupar com proteções a ideia era rodar localmente o sistema pra utilizar as funcionalidades mas terei de pensar nessa parte de proteção, pois hoje me pediram pra disponibilizar o acesso online (não estou vendendo o sistema pra ninguém, mas faço parte de uma staff e eles estão me passando o que gostariam que tivesse no sistema, etc).

 

Sobre o script, eu vou dar uma olhada, mas acho que o caminho é esse, só preciso adaptar, pois para o meu caso é fazer a deleção dos chars que possuem level 1 e todas as informações (não pelo tempo de inatividade). De qualquer forma vou utilizá-lo em outro projeto que eu já tenho aqui :) .

 

 

voce pode fazer do seguinte modo:

 

deletar os char lv menor que 1:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

em seguida usar apenas esse trecho do codigo: (lembrando que precisa ser ajustado as tabelas da sua db)

O conteúdo está oculto, favor efetuar login ou se cadastrar!

basicamente ele vai verificar os ids que constan nas demais tabelas e nao existem na tabela character e deletar o que não tiver relacionado.

 

Quanto a segurança tanto pdo como mysqli oferecem um otimo apoio. cabe a você escolher a que melhor vai lhe servir.

 

 

Abraços e boa sorte.

Editado por Demonwar

...O RESPEITO QUE IMPOMOS DEFINE O QUE SOMOS....

Link para o comentário
Compartilhar em outros sites

basicamente ele vai verificar os ids que constan nas demais tabelas e nao existem na tabela character e deletar o que não tiver relacionado.

 

Quanto a segurança tanto pdo como mysqli oferecem um otimo apoio. cabe a você escolher a que melhor vai lhe servir.

 

 

Abraços e boa sorte.

 

Cara, obrigado kk, me poupou um trabalhão. Eu optei por usar o mysql improved mesmo, consegui reutilizar o código já feito e já adaptei a maioria das coisas pra minha versão do painel.

 

A interface está quase completa, falta um banner e a parte das notícias que o Freedom ficou de me passar.

 

// EDIT

 

Versão 2.2 inserida no post, parte das notícias completada graças ao @MrFreedomFights que me forneceu um código base (fiz algumas adaptações, e acrescentei opções).

 

Agora só falta o banner e possíveis funções adicionais, estou aceitando sugestões :)

Editado por -Hades

Insanity is doing the same thing over and over again
and expecting different results.

- Albert Einstein.

owner of Lineage II Furya - Interlude 3000x - furya.com.br 😉

Link para o comentário
Compartilhar em outros sites

@MrFreedomFights ou @Tayran.JavaDev, sabem me dizer como funciona o campo vip_end da tabela characters nas revisões Frozen? se é em segundos, minutos, etc. Pois para parte de adicionar vip vou colocar as opções de dia tbm.

Insanity is doing the same thing over and over again
and expecting different results.

- Albert Einstein.

owner of Lineage II Furya - Interlude 3000x - furya.com.br 😉

Link para o comentário
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...
  • Registre-se

    Faça parte da maior e  mais antigas comunidades sobre Lineage2 da América Latina.





×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.