Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Bom estava estudando um pouco sobre NPM onde cheguei a ferramenta Electron JS onde ela me permite criar um aplicativo desktop através de HTML, CSS e JS.

Então com essa informação pensei em desenvolver um app desktop para gerenciar umas coisas em que o pessoal tem um pouco de dor de cabeça.

 

Conhecendo o APP admin:

Clique para acessar o youtube

 

O que o aplicativo faz:

  • Adiciona pontos
  • Adiciona item ao shop
  • Edita um item do shop
  • Remove um item do shop

 

Requisitos para instalar:

OTX server 2x

PHP5.5+

Gesior 2012

z_shop_offer com a mesma estrutura da imagem abaixo:

Spoiler

Screenshot_41.thumb.png.b7d433e9375116c745cdadb816ae545b.png

Acredito que muitos já sabem como chegar ai, mas caso não saibam siga os passos:

Logue no Phpmyadmin, selecione seu banco de dados e logo em seguida selecione a tabela z_shop_offer

 

Se seu servidor possui os requisitos então siga os passos abaixo:

Certo primeiramente vamos instalar umas dependências para isso você precisará seguir os passos com muita atenção!

  • Vá no seu index.php localizado na raíz do projeto (pasta inicial);
  • procure por:
include_once('./system/load.page.php');
  • Embaixo adicionamos a seguinte função:
Spoiler

if (!function_exists('getallheaders'))
{
    function getallheaders()
    {
        $headers = [];
        foreach ($_SERVER as $name => $value)
        {
            if (substr($name, 0, 5) == 'HTTP_')
            {
                $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
            }
        }
        return $headers;
    }
}

function checkHeader (){
    if (!empty(getallheaders()['login']) && !empty(getallheaders()['password'])){
        $account = new Account();
        $account->find(getallheaders()['login']);
        if (!$account->isLoaded()){
            $json['message'] = "login não encontrado";
            $json['login'] = false;
            echo json_encode($json);
            return false;
        }
        if (sha1(getallheaders()['password']) != $account->getPasssword()){
            $json['message'] = "login inválido";
            $json['login'] = false;
            echo json_encode($json);
            return false;
        }

        if ($account->getGroupId() < 3){
            $json['message'] = "Sem permissão {$account->getGroupId()}";
            $json['login'] = false;
            echo json_encode($json);
            return false;
        }
    } else {
        $json['message'] = "Sem permissão";
        $json['login'] = false;
        echo json_encode($json);
        return false;
    }
    return true;
}

if ($indexnoLoad) {
    echo $main_content;
    return;
}
  • vá até a pasta classes crie um arquivo chamado shopoffer.php, copie e cole todo o código abaixo:
Spoiler

<?php


class ShopOffer extends ObjectData
{
    const LOADTYPE_ID = 'id';
    const LOADTYPE_NAME = 'ref';
    public static $table = 'z_shop_offer';
    public $data = array('points' => 0, 'itemid1' => 0, 'count1' => 0, 'itemid2' => 0, 'count2' => 0,
        "offer_type" => null, "offer_description" => null, "offer_name" => null, "pid" => 0, "category" => 1);
    public static $fields = array('id' , 'points', 'itemid1', 'count1', 'itemid2', 'count2', 'offer_type', 'offer_description', 'offer_name', 'pid', "category");

    public function __construct()
    {

    }

    public function load($search_text, $search_by = self::LOADTYPE_ID, $all = false)
    {
        if(in_array($search_by, self::$fields))
            $search_string = $this->getDatabaseHandler()->fieldName($search_by) . ' = ' . $this->getDatabaseHandler()->quote($search_text);
        else
            new Error_Critic('', 'Wrong Donate search_by type.');
        $fieldsArray = array();
        foreach(self::$fields as $fieldName)
            $fieldsArray[] = $this->getDatabaseHandler()->fieldName($fieldName);
        if ($all){
            $this->data = $this->getDatabaseHandler()->query('SELECT ' . implode(', ', $fieldsArray) . ' FROM ' . $this->getDatabaseHandler()->tableName(self::$table) . ' WHERE ' . $search_string)->fetchAll();
        } else {
            $this->data = $this->getDatabaseHandler()->query('SELECT ' . implode(', ', $fieldsArray) . ' FROM ' . $this->getDatabaseHandler()->tableName(self::$table) . ' WHERE ' . $search_string)->fetch();
        }
    }

    public function loadAll()
    {
        $fieldsArray = array();
        foreach(self::$fields as $fieldName){
            $fieldsArray[] = $this->getDatabaseHandler()->fieldName($fieldName);
        }
        $this->data = $this->getDatabaseHandler()->query('SELECT ' . implode(', ', $fieldsArray) . ' FROM ' . $this->getDatabaseHandler()->tableName(self::$table))->fetchAll();
        return $this->data;
    }

    public function loadById($id, $all = false)
    {
        $this->load($id, 'id', $all);
    }

    public function loadByItemId($itemid, $all = false)
    {
        $this->load($itemid, 'itemid1', $all);
    }

    public function save($forceInsert = false)
    {
        if(!isset($this->data['id']) || $forceInsert)
        {
            $keys = array();
            $values = array();
            foreach(self::$fields as $key)
                if($key != 'id')
                {
                    $keys[] = $this->getDatabaseHandler()->fieldName($key);
                    $values[] = $this->getDatabaseHandler()->quote($this->data[$key]);
                }
            $this->getDatabaseHandler()->query('INSERT INTO ' . $this->getDatabaseHandler()->tableName(self::$table) . ' (' . implode(', ', $keys) . ') VALUES (' . implode(', ', $values) . ')');
            $this->setID($this->getDatabaseHandler()->lastInsertId());
        }
        else
        {
            $updates = array();
            foreach(self::$fields as $key)
                if($key != 'id')
                    $updates[] = $this->getDatabaseHandler()->fieldName($key) . ' = ' . $this->getDatabaseHandler()->quote($this->data[$key]);
            $this->getDatabaseHandler()->query('UPDATE ' . $this->getDatabaseHandler()->tableName(self::$table) . ' SET ' . implode(', ', $updates) . ' WHERE ' . $this->getDatabaseHandler()->fieldName('id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id']));
        }
    }

    public function delete()
    {
        $this->getDatabaseHandler()->query('DELETE FROM ' . $this->getDatabaseHandler()->tableName(self::$table) . ' WHERE ' . $this->getDatabaseHandler()->fieldName('id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id']));

        unset($this->data['id']);
    }

    public function setID($id)
    {
        $this->data['id'] = $id;
    }

    public function getId()
    {
        return $this->data['id'];
    }

    public function setItemId1($val)
    {
        $this->data['item1'] = $val;
    }


}

Certo agora com esses arquivos dentro do site basta apenas pegar a pasta pages disponiblizado no link abaixo:
OBS: Basta apenas pegar os arquivos e colocar dentro da pasta pages do site.

Link Pages

 

Agora com o site configurado basta apenas instalar o App com o link abaixo:
Link do App

 

Configurando o app:

Configurar o App Admin é muito fácil, basta apenas abrir o App e seguir de acordo com a imagem abaixo:

Screenshot_42.png.37640ea7317698f3b7e8da5cdf396cf6.png

 

Após isso clique em Submit e faça o login:
 

OBS: será possível logar com o ADMIN no caso é preciso que a conta logada esteja com o group_id 3 ou superior

 

Espero que gostem, espero feedback de vocês e estou aceitando ideias para próxima atualização!

  • 1 month later...

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 520.3k

Informação Importante

Confirmação de Termo