Ir para conteúdo
  • Cadastre-se

Posts Recomendados

30 minutos atrás, lemongie disse:

Salve galerinha, alguem sabe alguma função pra capturar o nome do item no gesior?

 

 

Sem título.png

 


Eu não conheço o gesior bem, mas acredito que por padrão não exista essa função. O que você pode fazer é 1 script para ler o items.xml e salvar a lista de items, e depois fazer 1 select onde o id do item no BD seja igual ao id que você está chamando, se for, pede pra exibir o nome dele.

Para ler 1 arquivo em php utilizando o site do gesior você pode utilizar isto:
 

if(file_exists($config['site']['serverPath'] . '/items/items.xml')) {
        $items = new DOMDocument();
        $items->load($config['site']['serverPath'] . '/items/items.xml');
    }


Para criar 1 tabela no banco de dados, você pode utilizar este comando:
 

CREATE TABLE IF NOT EXISTS `list_of_items` (
    `id` INT(11) NOT NULL,
    `name` VARCHAR(32) NOT NULL,
    `description` VARCHAR(32) NOT NULL,
    `slottype` VARCHAR(255) NOT NULL DEFAULT '',
    PRIMARY KEY  (`id`)
) ENGINE=MyISAM;


Para percorrer o arquivo items.xml em php você pode fazer algo parecido com isto:
 

foreach($items->getElementsByTagName('item') as $item)
    {
        $description = 'Without Description';
        foreach( $item->getElementsByTagName('attribute') as $attribute)
        {   
            if ($attribute->getAttribute('key') == 'description'){
                $description = $attribute->getAttribute('value');
                $desc = 1;
            }
            if ($attribute->getAttribute('key') == 'slotType'){
            $db->query("
                        INSERT INTO `list_of_items` (`id`, `name`, `description`, `slottype`) VALUES
                            ('". $item->getAttribute('id') ."', 
                            '".$item->getAttribute('name') ."', 
                            '". $description ."',  
                            '". $attribute->getAttribute('value') ."');
                        ");
                }
                else if ($attribute->getAttribute('key') == 'weaponType'){
                    $db->query("
                        INSERT INTO `list_of_items` (`id`, `name`, `description`, `slottype`) VALUES
                            ('". $item->getAttribute('id') ."', 
                            '".$item->getAttribute('name') ."', 
                            '". $description ."', 
                            '". $attribute->getAttribute('value') ."');
                        ");
                }
        }
    }


Depois, você só precisa chamar 1 função para fazer 1 select onde o ID deva ser igual ao ID do item que você deseja exibir o nome. O retorno do select vai retornar o Nome e o Atributo dele, ai só precisa exibir.

Quem eu sou?
Meu nome é Waliston, mais conhecido como Endless, estudante de Análise e Desenvolvimento de Sistemas, e desenvolvedor da Falcon Games. Atuo no Ramo de OtServer desde 2017, porém desde 2019 venho me especializando em Desenvolvimento Web e Segurança Web..

Meus Projetos:

Falcon Games

Meu Github:

https://github.com/WalistonBelles

Meu Discord:
Endless#5410

Minhas Contribuições atualmente pra Comunidade:

[SHOWOFF] OTClient Showoff Módules
[DESIGN]
 3 FREE Game Ui Design

[TUTORIAL] Instalando MyAAC em sua máquina

[TUTORIAL] Restringindo a Listagem de Diretórios(URL) do Servidor Apache
[TUTORIAL] Proteção contra DDoS utilizando Mod-evasive no Apache

[SISTEMA] Plugin MyAAC Listagem de Items automática
[SISTEMA] Gerador de Outfits Automática para o Site

[SISTEMA] Sistema de Troca de Vocação para MyAAC
[SISTEMA] Plugin MyAAC Auction System
[SISTEMA] Sistema de Exibir Monstros por Level


Algum trabalho meu te ajudou? Quer apoiar meu trabalho? Faça uma doação!!
Picpay: @walistonbelles
Paypal: [email protected]

Link para o post
Compartilhar em outros sites
  • 1 year later...
Em 26/01/2021 em 12:32, Endless disse:


Eu não conheço o gesior bem, mas acredito que por padrão não exista essa função. O que você pode fazer é 1 script para ler o items.xml e salvar a lista de items, e depois fazer 1 select onde o id do item no BD seja igual ao id que você está chamando, se for, pede pra exibir o nome dele.

Para ler 1 arquivo em php utilizando o site do gesior você pode utilizar isto:
 


if(file_exists($config['site']['serverPath'] . '/items/items.xml')) {
        $items = new DOMDocument();
        $items->load($config['site']['serverPath'] . '/items/items.xml');
    }


Para criar 1 tabela no banco de dados, você pode utilizar este comando:
 


CREATE TABLE IF NOT EXISTS `list_of_items` (
    `id` INT(11) NOT NULL,
    `name` VARCHAR(32) NOT NULL,
    `description` VARCHAR(32) NOT NULL,
    `slottype` VARCHAR(255) NOT NULL DEFAULT '',
    PRIMARY KEY  (`id`)
) ENGINE=MyISAM;


Para percorrer o arquivo items.xml em php você pode fazer algo parecido com isto:
 


foreach($items->getElementsByTagName('item') as $item)
    {
        $description = 'Without Description';
        foreach( $item->getElementsByTagName('attribute') as $attribute)
        {   
            if ($attribute->getAttribute('key') == 'description'){
                $description = $attribute->getAttribute('value');
                $desc = 1;
            }
            if ($attribute->getAttribute('key') == 'slotType'){
            $db->query("
                        INSERT INTO `list_of_items` (`id`, `name`, `description`, `slottype`) VALUES
                            ('". $item->getAttribute('id') ."', 
                            '".$item->getAttribute('name') ."', 
                            '". $description ."',  
                            '". $attribute->getAttribute('value') ."');
                        ");
                }
                else if ($attribute->getAttribute('key') == 'weaponType'){
                    $db->query("
                        INSERT INTO `list_of_items` (`id`, `name`, `description`, `slottype`) VALUES
                            ('". $item->getAttribute('id') ."', 
                            '".$item->getAttribute('name') ."', 
                            '". $description ."', 
                            '". $attribute->getAttribute('value') ."');
                        ");
                }
        }
    }


Depois, você só precisa chamar 1 função para fazer 1 select onde o ID deva ser igual ao ID do item que você deseja exibir o nome. O retorno do select vai retornar o Nome e o Atributo dele, ai só precisa exibir.

pode detalhar um pouco mais irmão? Sei que tá bem detalhado já, mas não consegui avançar

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

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

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Andersontatuador
      .Qual servidor ou website você utiliza como base? 
      Global Full 8.60 + Zao
      Qual o motivo deste tópico? 
      O site não esta adicionando os pontos na conta dos plays.
       
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       



    • Por A.Mokk
      .Qual servidor ou website você utiliza como base? 
      TFS 0.4
      Qual o motivo deste tópico? 
      Estou tendo um probleminha indelicado no meu site, gostaria de obter respostas aqui com voces que sao sempre muito eficientes e praticos.
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
       
    • Por thunmin
      .Qual servidor ou website você utiliza como base? 
      Canary
      Qual o motivo deste tópico? 
      Não consigo deixar ele automatico os players tem que confirmar o pagamento depois eu tenho que verificar se caiu pra depois eu confirmar e colocar as coins
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • Por Jordan422
      Faala Deuses do Tibia! Estou com um projeto sólido de um global old, mas to preso nessa parte do website viu.. Eu dou meu jeitinho mas ta chegando nas coisas avançadas que precisa daquele freelancer bacana para ajeitar umas páginas para mim! Já tenho as ideias, basta somente botar a mão na massa.. Quem estiver interessado por favor entrar em contato por mensagem aqui no Tibiaking mesmo ou preferencialmente pelo discord mythh9257 
       
    • Por moleza
      Para quem quer abrir um servidor antigo que roda em php5 e está com dificuldade com a configuração do linux, pode contratar um cpanel que contenha o php5 que facilita a configuração do site!!
       
      essa foi a minha solução!
       
      Resolvido !!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo