Ir para conteúdo

Featured Replies

Postado
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]

  • 1 year later...
Postado
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

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo