Documentação do Studiocode


Seja bem-vindo, neste espaço vamos lhe ensinar a trabalhar com o Studiocode, como funcionam as funções, a integração com o banco de dados e outros detalhes importantes para a manutenção de seu código dentro da IDE. É importante que você compreenda como funciona o sistema de Tags para tirar todo o proveito e agilidade que essa ferramenta oferece aos Dev's que precisam manipular banco de dados e consumi-lo. Vamos lá!

Iniciando #voltar ao topo

Formato do Arquivo | Trabalhando com .html e .std

O Studiocode trabalha com o formato próprio chamado '.std', esse formato nada mais é do que o .html potencializado. O comportamento é identido ao do .html porém com ele é possível interagir com as tags específicas do sistema. Veja abaixo.


Dica

Clicanco com o botão direito na pasta do projeto é possível conveter todos os seus arquivos .html para .std

Tags do Studiocode

É importante compreender que as tags de integração com o banco de dados se comportam como o padrão de tags convencionais no desenvolvimento, onde tudo o que estiver entre a abertura e o fechamento será executado e interpretado.

                            [[records noticias]]
                                
                            [[/records]]

Ao digitar o código acima o Studiocode converte a um estilo visual próprio automaticamente, para que seja fácil compreender e separar os trechos de seu código com os trechos onde o compilador irá estar trabalhando, compreendendo tudo o que há dentro dos sinais "[[ ]] e seu fechamento em [[/]]"




Exemplo de um bloco de repetição de registros de uma tabela chamada 'noticias', no código está sendo solicitado ao banco que mostre os registros desta tabela e repita quantos houverem.

                            
[[records noticias]] [[repeat]]

[[noticias.titulo]]

[[noticias.subtitulo]]

[[noticias.texto]]

[[/repeat]] [[empty]] Nenhum registro encontrado [[/empty]] [[/records]]

Código convertido visualmente dentro do Studiocode.


Sistema de Tags #voltar ao topo

Digitar uma tag

Para resgatar um registro do banco de dados você pode digitar a sintaxe da tag e o Studiocode irá converte-la ao estilo visual da IDE automaticamente.


Digitar uma tag + TAB

Também é possível usar o atalho relativo à ação que deseja fazer + "TAB". O Studiocode irá completar a estrutura desse código.


Selecionar conteúdo e clicar para gerar a tag

Use o painel destacado para ter os campos e botões de ação sempre próximos ao código que você está digitando, é possível adquirir muita agilidade com isso.

Tipos de Tags#voltar ao topo

O consumo de dados das tabelas do banco dependem de haver registros nelas, então quando criar uma tabela e quiser exibir os dados é necessário criar placeholders de registros teste ou acessar o painel do cliente para criar esses registros manualmente.

Campo | Imprime o campo indicando a qual tabela pertence

O padrão da sintaxe oferece visualmente a informação a qual tabela do banco o campo pertence.

Digite 'field + TAB'

                                
                                [[table_name.field_name]]

                                
                                [[noticias.titulo]]        

                            

Registro | Exibir registro único

Para exibir uma tabela de registro único (ou seja, uma tabela onde a opção "receber vários registros" não foi marcada) é preciso utilizar a tag [[ record ]]

Digite 'record + TAB'
                                    
                                    [[record quem_somos]]

                                        [[if quem_somos]]

                                            

[[quem_somos.empresa]]

[[quem_somos.visao]]

[[quem_somos.missao]]

[[quem_somos.valores]]

[[/if]] [[/record]] [[record quem_somos ('empresa' = '1', 'SP' = '1')]] [[if quem_somos]]

[[quem_somos.empresa]]

[[quem_somos.visao]]

[[quem_somos.missao]]

[[quem_somos.valores]]

[[/if]] [[/record]]

Registros | Exibir multiplos registros

Para exibir uma tabela de registro múltiplo é preciso utilizar a tag [[ records ]]. O uso de filtros e condições nesse tipo de caso são comuns, sempre que for preciso filtrar um conjunto de registros será possível incluir as condições para isso conforme o exemplo 2.

Digite 'records + TAB'
                                
                                
[[records agenda ]] [[repeat]]

[[agenda.titulo]]

[[agenda.detalhes]]

[[/repeat]] [[empty]] Nenhum registro encontrado [[/empty]] [[/records]]
[[records agenda ('ativo' = '1', 'estado' = 'SP') ]] [[repeat]]

[[agenda.titulo]]

[[agenda.detalhes]]

[[/repeat]] [[empty]] Nenhum registro encontrado [[/empty]] [[/records]]
Dica

A tag [[empty]] mostrará o trecho de código ou texto que for inserido neste espaço caso não houver nenhum registro cadastrado nesta tabela. Aceita todo o tipo de formatação, texto ou código permitido.

No exemplo abaixo está sendo usado o limitador de registros "limit", com ele é possível limitar a quantidade de registros que será mostrado no bloco "repeat". Você pode combinar os condicionais (entre parenteses) com o "limitar" sempre que precisar.
                                
                                
[[records agenda limit 3]] [[repeat]]

[[agenda.titulo]]

[[agenda.detalhes]]

[[/repeat]] [[empty]] Nenhum registro encontrado [[/empty]] [[/records]]
Dica

Quando você quiser saber o total de registros existentes em uma tabela você pode usar a tag [[ total ]]. Isso mostrará o número total de registros inseridos dentro da tag [[records]] que for inserida. ATENÇÃO: Deve obrigatóriamente ser usada entre [[records]] e [[/records]]


Incluir | Injetar trecho de HTML

Ao usar [[include]] é possível injetar um documento .std imediatamente no local onde essa tag estiver.

Digite 'include + TAB'
                                

                                [[include 'banner']]
                            
                                

                                
                            
Lembre-se

Não é necessário especificar a extensão .std ao incluir arquivos com essa tag.


Define | Criar variáveis

Crie uma variável para resgatar onde desejar no código.

Digite 'define + TAB'
                                [[site = "Calçados e Cia"]]
    
                                

Seja bem vindo ao site da [[site]]

O que é o que?

Tipos de dados no studiocode são tratados da seguinte forma:
- nome_do_dado: é tratado como uma variável chamada 'nome_do_dado'.
- 'nome_do_dado' ou "nome_do_dado": é tratado como uma string com valor 'nome_do_dado';
- nome_do_dado(): é tratado como uma função com nome 'nome_do_dado';
- 1, 2, 15.2. etc: é tratado como um valor numérico. caso queira que seja tratado como uma string, deve-se colocar entre aspas, simples ou duplas.
- nome_do_item.nome_do_atributo: é tratado como um atributo de um objeto. normalmente utilizado dentro de [[record ...]] e [[records ...]]


Se | Realizar condicionais

O condicional [[if]] verifica o parametro e compara com o valor para exibir ou não um conteúdo com base nesse resultado.

Digite 'if + TAB'
                                

                                [[records noticias ]]
                                    
                                    [[repeat]]
                                    
                                        [[if noticias.destaque = "1"]]
                                        
                                            

[[noticias.titulo]]

[[else]]

[[noticias.titulo]]

[[/if]] [[/repeat]] [[/records]]
Outro exemplo com base em tabela de registro único.
                                

                                [[record quemsomos ]]

                                    [[if quemsomos.estado = "PR"]]
                                    
                                        

[[quemsomos.endereco]]

[[else]]

Sem endereço cadastrado

[[/if]] [[/record]]
Dica

Caso queria fazer alguma verificação com true ou false, basta apenas fazer a seguinte verificação:
'[[if comparacao]]'. Não é necessario adicionar o 'comparacao = true'.

É possível criar comparações mais complexas, utilizando-se de && e ||.

Parenteses não são obrigatórios em comparações simples, porém são muito recomendado em comparações mais complexas. Ex: [[if (modelo.ativo = 1 || funcao_qualquer(item.url))]]


Uploads | Exibir imagens ou arquivos cadastrados no banco

Mostre os arquivos ou imagens do banco com essa tag, caso o registro for do tipo imagem é possível digitar a largura e altura do corte que será feito na imagem, garantindo o encaixe perfeito no layout.

Digite 'uploads + TAB'
                               [[records noticias ]]
    
                                    [[repeat]]
                                        
                                        

[[noticias.titulo]]

[[uploads (noticias.galeria)]] [[/upload]] [[/repeat]] [[empty]] Nenhum registro encontrado [[/empty]] [[/records]]
URL das imagens

Você pode também imprimir apenas o caminho da imagem utilizando o atalho urlupload + TAB ou imprimir o caminho da imagem com 'crop' utilizando o atalho urlthumb + TAB


Upload | Tag para mostrar apenas uma imagem ou arquivo em específico.

Mostre uma imagem única

Digite 'upload + TAB'
                               [[record empresa ]]
    
                                    [[if empresa ]]
                                    
                                        

[[empresa.nome]]

[[/if]] [[/record]]
URL das imagens

Você pode também imprimir apenas o caminho da imagem utilizando o atalho urlupload + TAB ou imprimir o caminho da imagem com 'crop' utilizando o atalho urlthumb + TAB


URL do Upload | Como referenciar uploads.

Uploads, que se refere à arquivos enviados pelo painel do administrador, se encontram em uma url padrão do sistema chamada de 'sc-upload'.

Atenção

ATENÇÃO: Os prefixos sc-* são utilizados em diretórios e arquivos reservados para o sistema. Portanto, não é recomendado criar arquivos ou diretórios que contenham esses prefixos.

As url padrão para arquivos existentes são:

sc-upload/: referenciam o arquivo original, enviado pelo painel do administrador.
sc-thumb/: ativam o sistema de thumbs automáticas do studiocode. os próximos parametros devem conter as dimensões do arquivo que você deseja utilizar, no formato WxH, e a localização do arquivo dentro da pasta de upload.
                                    
                                    

                                    
                                    
                                


Relacionamento | Recuperar dados entre tabelas

Quando se usa o tipo de campo 'Relacionamento' em uma tabela, é possível recuperar os registros relacionados em sua página. É possível criar tags [[record...]] ou [[records...]] aninhadas, pois o studiocode faz o gerenciamento de escopos automaticamente. Porém, também é possível utilizar as funções de relacionamento automático do studiocode. É feito da seguinte forma:

Digite 'foreign + TAB'
                                
                                [[table_name.field_name("campo_relacionado", "tabela_relacionada")]]

                                
                                [[banda.posicao("nome", "instrumento")]]
                            

As maneiras de usar depende diretamente de como foram modeladas as suas tabelas. Vamos aos exemplos:

TABELA1 - usuario TABELA2 - post
ID
email <email>
nome <small_text>
grupo_usuario <foreing_key>
ID
titulo <small_text>
texto <big_text>
usuario <foreing_key>
DICA

ATENÇÃO: Nunca é necessário criar um campo ID/primary-key em suas tabelas, pois o studiocode faz isso automaticamente para você.

Neste exemplo de tabela acima, o campo usuario, da tabela post guardará uma referência do ID da tabela usuário que foi vinculada. Repare que o nome do campo e o nome da tabela à qual ele faz referência são iguais. Isso influência diretamente a maneira como é puxada, como explicado mais à frente.

Modo de uso:
                                [[ nome_tabela_principal.nome_campo_referencia (nome_campo_da_tabela_extrangeira, --opcional-- table_name_extrangeira)]]
                            

o segundo parâmetro, 'table_name_extrageira' só é necessário caso o nome do campo na tabela principal seja diferente do nome da tabela extrangeira. No caso das tabelas exemplo, o nome do campo que faz referência à tabela 'usuario' também se chama 'usuario', tornando desnecessário passar o nome da tabela extrangeira. Caso o nome do campo fosse 'dono_do_post', seria necessário passar o nome da tabela extrangeira no segundo parametro.

                                [[ post.usuario('email')]]
                                
                                
                                [[ post.dono_do_post('email', 'usuario') ]]
                                
                            

Até o momento, não é possível utilizar relacionamentos em multiplos níveis dessa maneira, tendo que criar tags [[records...]] ou [[record...]] aninhadas.

                                [[ id_grupo = post.usuario("grupo_usuario") ]]
                                
                                
                                [[ record grupo_usuario('id' = id_grupo) ]]
                                
                                    
                                    [[ grupo_usuario.titulo ]]
                                    

                                [[ /record ]]
                            

Relacionamentos | 1 para N

Você pode utilizar registros aninhados para fazer esse tipo de relacionamento. Porém, caso deseje utilizar o relacionamento automático, a sintaxe é:

                                [[record usuario('id' = 1)]]
                                
    
                                    [[if usuario]]

                                        [[repeat usuario.carregar('post')]]
                                        
                                            
                                            [[item.titulo]]
                                            

                                            [[item.texto]]
                                            

                                        [[/repeat]]

                                    [[/if]]

                                [[/record]]
                            

Caso o nome do campo que vincula a tabela post ao usuario não se chamasse 'usuario', a sintaxe para se carregar é:

                                [[repeat usuario.load('post', 'field_name_na_tabela_post')]]
                            

Caso você queira ordenar ou limitar, parâmetros adicionais poderão ser passados à função load, seguindo o modelo:

                                [[repeat usuario.load('post', 'field_name_na_tabela_post', 'nome', 10)]]
                                

                                

                                [[repeat usuario.load('post', 'nome', 10)]]
                                
                            
Atenção

ATENÇÃO: Os parâmetros para 'ordenar' e 'limitar' devem SEMPRE ser utilizados juntos, pois caso você passe apenas 3 parâmetros, o interpretador entenderá que você está omitindo o parâmetro 'field_name_na_tabela_post'.

Caso você não queria ordenar, ou limitar, você deve passar uma string vazia "" à função.


Ordenar | Ordenando dados vindos do banco

Para ordenar os registros vindos do banco você precisa indicar qual é o campo e a ordem em quem serão exibidos, se ascentente ou descendente dentro da tag [[records]]

Exemplo:

                                [[ registros table_name ordenar por 'field_name' DESC ]]
                            

Exemplo combinado com outras aplicações:

                                [[ registros agenda ('confirmado' = 0, 'destaque' = 1) ordenar por 'titulo' ASC limitar 6 ]]
                            
Atenção

ATENÇÃO:
A ordem ascendente e descentende precisam ser escritas obrigatoriamente em maiúsculo: ASC | DESC | RAND.


Limitar | Limitando registros

Para mostrar apenas um determinado número de registros dentro de uma repetição você precisa informar a quantidade de registros que serão mostrados dentro da tag [[records]]

Exemplo:

                                [[ registros table_name limitar 3 ]]
                            

Exemplo combinado com outras aplicações:

                                [[ registros noticias ('destaque' = 0, 'ativo' = 1) ordenar por 'titulo' ASC limitar 3 ]]
                            

URL | Resgatando parametros da URL

Resgate valores e parâmetros passados pela URL por links ou utilize-os como condicionais para executar ações dentro de seu código, como por exemplo adicionar uma classe a um elemento caso a url seja igual a "/empresa".

O @url(n) retorna as informações passadas pela url, semelhante ao $_GET do PHP. 'n' é a posição do parâmetro que você quer acessar. '0' sendo o caminho do arquivo, '1' o primeiro parâmetro, '2' o segundo, etc.

Digite 'url + TAB'
                               
                                
                                @url

                                
                                @url(2)

                                
                                [[ if @url(0) == 'quemsomos' ]]
                                    

Nossa Empresa

[[/if]]
Dica

A tag especial @url ativa a função sc_url() da biblioteca studiocode. Por isso, é totalmente possível utilizar a chamada de função sc_url(parametro) diretamente caso esteja tendo algum problema com o @url.

Os parâmetros passados ao recuperador de url são definidos da seguinte forma:

                                @url(0)
                                

                                
                                @url(0)
                                

                                
                                @url(0)
                                
                            

ATENÇÃO: Você também pode chamar a função de api do studiocode diretamente, utilizando: sc_url(0);

Definição:

                                

                                
                                @url(0) 
                                @url(1) 
                                @url(2) 



                                

                                
                                @url(0) 
                                @url(1) 
                                @url(2) 
                                @url(3) 
                            
Atenção

ATENÇÃO:
Quando quiser pegar apenas o parametro1 da url, você pode usar simplesmente @url, que equivale à @url(1);

Resgatando parâmetros | Resgatando registros com base na URL

Para recuperar um registro com base no id passado pela URL basta criar uma tag [[record]] informar o campo que deseja receber e comparar com o parametro @url

                                
                                [[record table_name ('field_name' = @url)]]

                                    [[if table_name]]

                                        [[table_name.field_name]]

                                    [[/if]]

                                [[/record]]

                                
                                [[record noticias ('id' = @url)]]

                                    [[if noticias]]

                                        [[noticias.titulo]]

                                    [[/if]]

                                [[/record]]
                            

Para registros vindos de um formulário de 'method = GET' é preciso utilizar o pacote [[use get]] e resgatar os campos segundo o exemplo abaixo:

                                [[use get]]
                                
                                [[record table_name ('field_name' = get.field_name)]]

                                    [[if table_name]]

                                        [[table_name.field_name]]

                                    [[/if]]

                                [[/record]]

                                
                                [[use get]]
                                
                                [[record cardápio ('codigo' = get.cod)]]
                                

                                    [[if cardápio]]

                                        [[cardápio.titulo]]

                                    [[/if]]

                                [[/record]]
                            

Paginação | Paginando registros

O studiocode possui um pacote de paginação automatica, que se integra muito bem com as tags [[records]]

                              [[paginate url_base, pagina_atual, quantidade_por_pagina]]
                            

                                

                                [[records noticias limit @url, 5]]

                                    [[repeat]]

                                        [[noticias.titulo]]
                                        [[noticias.texto]]

                                    [[/repeat]]

                                    [[empty]]  [[/empty]]

                                    [[paginate 'noticias/(:num)/read', @url, 5]]
                                    
                                    

                                [[/records]]
                            
Atenção

ATENÇÃO: A tag paginar|paginate tem que obrigatóriamente ficar entre as tags [[records]] e [[/records]] para funcionar adequadamente.

O parâmetro '(:num)' pode ser inserido em qualquer parte da string de url_base. caso for omitido, o paginador vai inserir automaticamente no final da url como mostra o exemplo:

                                [[paginate 'noticias', @url, 5]]
                                
                            

Formulário | Envio de dados do formulário para email

Crie um novo arquivo e nomeie-o segundo sua preferência, depois no campo "action" do formulário que deseja enviar aponte a URL para esse arquivo recem criado. Nele digite 'email + TAB' para criar a estrutura necessária para o envio dos dados digitados em algum formulário, após isso preencha os dados com os emails que receberão as informações e outros dados.

Digite 'form_email + TAB'
                            

                            [[use config, recaptcha, post, flash, mail]]


                            [[template template_name]]

                                

                                

Template do Email


Field 1: [[post.field1]]

Field 2: [[post.field2]]

[[/template]] [[email ('email_1@dominio.com.br;email_2@dominio.com.br', 'Novo contato do site!', template_name)]] [[if success]] [[flash.mensagem('Enviado com sucesso')]] [[else]] [[flash.error(mail.error)]] [[/if]] [[redirect 'pagina_para_redirecionar']]
Crie o formulário e customize-o conforme sua necessidade, inserindo validações, estruturas específicas, campos diversos e estilo. O padrão das tags a seguir é o abaixo:
Digite 'form_api + TAB'
                            
                            
                            [[use config, recaptcha, flash]] 

                            
Campo 1:

Campo 2:


[[recaptcha.form("form_id", "Submit Text", "class_button")]]
[[if flash.has_message]] [[flash.message]] [[/if]] [[if flash.has_error]] [[flash.error]] [[/if]]
Lembre-se

É necessário preencher as informações de envio de email corretamente, criar um recaptcha do Google no site https://www.google.com/recaptcha e utilizar as keys nos campos de configuração do projeto. Esses dados estão disponíveis para preenchimento na aba de configurações da IDE do Studiocode.

Salvar | Salvando registros nas tabelas do banco

O Studiocode permite que o Dev salve registros nas tabelas fora do painel do cliente, mas para isso é preciso configurar seu projeto com a Chave e Recaptcha obrigatórios para o uso da api.


Lembre-se

É necessário gerar uma chave API , criar um recaptcha do Google no site https://www.google.com/recaptcha e utilizar as keys nos campos de configuração do projeto. Esses dados estão disponíveis para preenchimento na aba de configurações da IDE do Studiocode.

A chamada 'save' possui 2 parâmetros. O primeiro é o nome da tabela, o segundo é um objeto ou um array com os dados no formato chave => valor.

Digite 'form_api + TAB'
                                
                                [[use config, session, post, recaptcha, api]]

                                
[[recaptcha.form("form_id", "Submit Text", "class_button")]] [[api.save('agenda', post)]]

No exemplo acima na linha 9 estamos utilizando o pacote de recaptcha invisível do Google estamos enviando todos os dados dos campos desse formulário via POST para a mesma página onde o código receberá os dados e armazenará na tabela 'agenda', salvando os registros.


É importante lembrar que o nome dos campos do formulário deve ser exatamente os mesmos da tabela que receberá os registros.

Para mostrar os erros caso a inserção não tenha sucesso é possível exibi-los no layout que você desenvolver para isso, é importante esse trecho estar fora das tabs de form. Acompanhe o código abaixo:

                                [[if api.response.error]]

                                    [[repeat api.response.data]]

                                        [[item]]
[[/repeat]] [[/if]]

Veja o exemplo completo, com as chamadas e exibição dos erros caso existirem.

Digite 'insert + TAB
                                
                                [[use config, session, post, recaptcha, api]]

                                
[[recaptcha.form("form_id", "Submit Text", "class_button")]] [[api.save('agenda', post)]]
[[if api.response.error]] [[repeat api.response.data]] [[item]]
[[/repeat]] [[/if]]

Usar | Utilizando pacotes para recursos avançados

O Studiocode permite que o desenvolvedor produza agilmenta, para ajudar-lo nesse processo disponibiliza pacotes avançados para uso por meio da tag [[use]]. São eles:


Digite 'use + TAB'
                                [[use get]]
                                
                                
                                [[use post]]
                                

                                [[use cdn_css]] ou [[import cdn_css]]
                                

                                [[use cdn_js]] ou [[import cdn_js]]
                                

                                [[use config]]
                                

                                [[use flash]]
                                

                                [[use mail]]
                                

                                [[use recaptcha]]
                                

                                [[use session]]
                                

                                [[use api]]
                                


                            

É possível chamar vários pacotes de uma unica vez separando-os por virgula. Veja o exemplo abaixo:

                                [[use config, session, recaptcha, post, api]]
                                
                            

Session | Setando e utilizando sessões

Com o pacote session é possível setar uma sessão que permaneça ativa durante a navegação. Para cria-la lembrese de importar o pacote por meio da tag [[use session]]. Veja um exemplo abaixo


Digite 'use + TAB' ou 'session + TAB'
                            [[use session]]

                            [[session.nome_da_sessao = 'valor_da_sessao']]

                            

                            

Helpers de Tags #voltar ao topo

Lista de Helpers para serem aplicados junto às Tags

Aplicável a 'campos'
                                        [[json_encode(tablename_array)]]
                                        
                                        
                                        [[total(table_name)]]
                                        

                                        [[table_name.field_name # character(15)]]
                                        

                                        [[table_name.field_name # replace("abc", "xyz")]]
                                        

                                        [[table_name.field_name # autourl]]
                                        
                                        

                                        [[table_name.field_name # tolower]]
                                        

                                        [[table_name.field_name # data]]
                                        

                                        [[table_name.field_name # data('d')]]
                                        

                                        [[table_name.field_name # toupper]]
                                        

                                        [[table_name.field_name # urlencode]]
                                        

                                        [[table_name.field_name # strip_tags]]
                                        

                                        [[table_name.field_name # ucfirst]]
                                        

                                        [[table_name.field_name # trim]]
                                        
                                        
                                        [[table_name.field_name # base64]]
                                        

                                        [[table_name.field_name # htmlentities]]
                                        

                                    

Criador de Tabelas#voltar ao topo

O criador de tabelas auxilia o desenvolvedor a agilizar o processo de criação de dados que o seu cliente poderá atualizar no banco. É possivel agilizar ainda mais o processo utilizando a opção "Usar modelo de dados" onde a tabela criada será preenchida com o padrão de campos que o Dev escolher.





Criador de Campos#voltar ao topo

Para criar os campos da tabela basta selecionar entre os disponíveis, clicar, configurar e salvar.




1 Texto Curto

Cria um campo do tipo input no painel do cliente com limitação para 255 caracteres, recomendado para armazenar dados curtos como títulos ou dados específicos.


2 Texto Normal

Cria um campo do tipo input no painel do cliente sem limitação de caracteres.


3 Texto Grande

Cria um campo do tipo textarea no painel do cliente sem limitação de caracteres, recomendado para armazenar textos longos com ou sem formatação.


4 URL

Cria um campo do tipo input com validação para aceitar apenas url válidas sem caracteres especiais


5 EMAIL

Cria um campo do tipo input com validação para aceitar apenas entradas do tipo email


6 DATA

Cria um campo do tipo calendário, onde é possível selecionar dia, mês, ano visualmente


7 Checkbox

Cria um campo do tipo checkbox para opções onde é preciso "ativar/desativar" algo


8 Caixa de Cor

Cria um campo do tipo Color Picker, sendo possível selecionar uma cor visualmente e obter seu código


9 Caixa de Ícones

Cria um campo do tipo Icon Picker, sendo possível selecionar um ícone disponível na biblioteca do Font Awesome 4.7


10 Link do Youtube

Cria um campo do tipo input com validação para aceitar apenas links válidos do youtube


11 Relacionamento

Cria um campo do tipo select listando os dados presentes na tabela em que esse campo foi relacionado


12 Imagem

Cria um campo do tipo file, tornando possível o upload de imagens


13 Upload de Arquivos

Cria um campo do tipo file, tornando possível o upload de arquivos


14 Upload de .MP4

Cria um campo do tipo file, tornando possível o upload de arquivos .mp4

Opções dos Campos#voltar ao topo

Ao selecionar um campo é apresentada algumas opções para configuração. Alguns campos apresentam um tipo de opções para tratamento da informação e outros não, dependerá do campo que você escolherá para guardar ou formatar determinado registro.




01. Opcional

Ao marcar essa opção o campo terá o preenchimento opcional, não sendo obrigatório seu preenchimento dentro do painel do cliente.


02. Único

A informação presente no campo marcado com essa opção não poderá se repetir em outro campo. Ex: Se esse for um campo de mês e algum registro dentro do painel do cliente for inserido utilizando 'Janeiro' não será possível inserir outro contendo 'Janeiro' novamente.


03. Criar Índice

Cria um índice no banco de dados, melhorando a performance no caso de buscas quando existir muito conteúdo (registros) nessa tabela.


04. Aba Avançado

Abre opções avançadas de tratamento e formatação do campo


05. Máscara de Campo

Permite que o campo seja limitado à formatação inserida. Ex: Para um número formatado de telefone basta preencher (99)9999-9999 e nesse campo dentro do painel do cliente só será possível cadastrar informações nesse formato de máscara. Para mais informações e opções acesse o link


06. Validação Regex

Permite escrever validações em Regex, limitando o campo ao que for especificado. Ex: /[0-9]{2}/ Esse código obriga o campo a aceitar apenas registros que tenham 2 caracteres de 0 a 9. Para mais informações e opções acesse o link


07. Mensagem de erro

Permite inserir mensagem de erro customizada ao campo.


Painel do Cliente#voltar ao topo

Ao modelar a base de dados do seu projeto o painel do cliente é montado automaticamente. Cada tabela que é criada dentro da IDE um novo CRUD é disponibilizado dentro do painel do cliente para inserir registros nessa tabela, instantâneamente e acessível via url pública via login e senha de acesso.


Importar dados | XML e CSV

É possível importar dados externos utilizando uma estrutura XML ou CSV. Basta acessar a àrea que deseja enviar os registros dentro do painel do cliente e nos botões inferiores fazer o upload ou download dos dados que você deseja baixar ou inserir.

Utilize estes modelos para adequar seus dados ao método de importação de registros do Studiocode.


DOWNLOAD MODELO XML DOWNLOAD MODELO CSV



01. Tabelas para inserção de registros

Toda tabela criada dentro do Studiocode é exibida aqui (se não for marcada a opção para não exibir no admin).


02. Logs de Acesso

É possível acompanhar cada passo que o usuário logado faz dentro do painel por meio dos logs registrados de cada um.


03. Logs de Acesso

Crie diversos usuários e dê permissões diferentes para cada um, sobre o que acessar, visualizar, editar ou excluir.


04. Insira um banner customizado

Crie diversos usuários e dê permissões diferentes para cada um, sobre o que acessar, visualizar, editar ou excluir.


05. Detalhes da sua conta

Visualize os ultimos acessos, link do seu projeto e armazenamento disponível.


06. Estatísticas

Acompanhe as estatísticas de acesso de seu site.


07. Customização

Customize logo, banner principal e cores do painel de seu cliente.


Changelog#voltar ao topo

            
-----------------------------------------------------------------------------------------
Version 2.1.0 - 13/08/2018
-----------------------------------------------------------------------------------------

- Início da fase OPEN-BETA!.
- Criado o forum para discussões e tópicos.
- Validação de telefone agora é requerida para acesso e novos cadastros.
- Integração com Re-captcha agora usa o modo captcha invisível. (acesse a documentação para mais detalhes)
- Consertado problema de permissões adicionais para usuários secundários criados no Painel do Admin.

-----------------------------------------------------------------------------------------
Version 2.0.23 - 08/08/2018
-----------------------------------------------------------------------------------------

- Lista de tabelas no editor agora é carregado por ordem alfabetica.
- Consertado contagem incorreta do tamanho do arquivo na hora do upload, no painel do admin.
- Removido aba do Changelog que dificultava visualização em telas menores.
- Ajustes diversos no Css e Reponsividade

-----------------------------------------------------------------------------------------
Version 2.0.22 - 04/08/2018
-----------------------------------------------------------------------------------------

- Corrigido problema do importador de CDNJS importar um arquivo 'slim.min.js'.
- Criado funcionalidade de gerenciar e apagar cache de Thumbs.
- Criado funcionalidade 'histórico de error_log'.
- Adicionado atalho 'F2' para renomar arquivo no painel do administrador.
- Renomar arquivos no painel do administrador agora mantém a extensão atual.
- Retrabalhado carregamento e botões do item 'Gerenciar arquivos'.
- Criado funcionalidade de alterar o rodapé do Painel do Administrador para desenvolvedores PRO.
- Corrigido problemas com o criador de tabelas automáticas.
- Aba de Configurações com novo design e organização.
- Corrigido multiple split screen (quando dividia a tela horizontal ou vertical o layout quebrava).
- Auto Complete agora é inserido apenas via 'enter' e não com as setas direita e esquerda.
- Adicionado calculo para elaboração de orçamento no menu "extras" do gerenciador de projetos.
- Herobrine removido.

-----------------------------------------------------------------------------------------
Version 2.0.21 - 26/07/2018
-----------------------------------------------------------------------------------------

- Corrigido problemas com o campo imagem.
- Implementado funcionalidade "Selecionar tudo" no gerenciador de arquivos do painel do Administrador.
- Padrão de imagem não encontrada criado para requisições quebradas dentro de sc-thumb e sc-upload
- Criado flags 'order by' para funcionar tanto em inglês quanto em português.
- Criado flags 'limit' para funcionar tanto em inglês quanto em português.
- Resolvido problema de cache após atualizações do Studiocode. Ainda é recomendável usar o Ctrl+F5 caso tiver algum problema.
- Consertado erro 404 - Not found ao acessar através de 'admin.meudominio.com'.
- Consertado problema do painel validar a string contendo o caracter '0' como vazio.

-----------------------------------------------------------------------------------------
Version 2.0.20 - 25/07/2018
-----------------------------------------------------------------------------------------

- Adicionado botão 'Gerenciar arquivos' no painel do Adminisrtador.
- Consertado erro ao exibir estatísticas de acesso no painel do Administrador.
- Consertado erro 'too few arguments' ao enviar e-mail.
- Ajustes de css diversos.
- Feitas algumas traduções de erros.
- Abas de ícones FontAwesome e Google Icons agora são fixas.
- Corrigido ícone de remoção de logo e banner do painel de admin.
- Corrigido .less e .scss com as tags de comentários corretas.
- Corrigido upload de arquivos, agora permitido até 10mb.
- Implementado loader no upload de imagens do admin.
- Campo Ícones do Admin com ícones maiores para visualização.
- Adicionado tela de atalhos do Studiocode.
- Definido padrão inglês para as tags e removido português das tags de atalho.
- Removido padrão português do botão de "raio" (construtor de estrutura automática) e adicionado o padrão inglês.
- Novo design para páginas de erros
- Implementado redefinição de senha via email
- Implementado alteração de senha no gerenciador
- Implementado assistente de publicação de projetos
- Implementado ordenação dos campos nas tabelas


-----------------------------------------------------------------------------------------
Version 2.0.17 - 17/07/2018
-----------------------------------------------------------------------------------------

- E-mails cadastrados como desenvolvedores Studiocode não podem mais ser usados para criar projetos.
- Pacote Recaptcha liberado. Ele é agora obrigatório nos módulos 'mail' e 'api'.
- Pacote API criado e liberado para uso. (acesse a documentação para mais detalhes)
- Pacote SESSION criado e liberado para uso. (acesse a documentação para mais detalhes)
- Busca de ícones funcionando.
- Erro consertado ao tentar sobreescrever arquivos.
- Mockup desabilitado temporariamente.
- Diversos ajustes de css.

-----------------------------------------------------------------------------------------
Version 2.0.16 - 13/07/2018
-----------------------------------------------------------------------------------------

- Ao aceitar ou recusar uma requisição de vinculação ao projeto, agora é carregada a lista de projetos atribuidos e não a lista de requisições.
- Ajustes responsivos para o gerenciador de projetos e algumas opções da IDE ficarem administráveis via tablets e smartphones.
- Implementado a url customizada de admin para quando o projeto já estiver publicado.
- Inserido passo-a-passo para publicação de projetos.
- Estatísticas de acesso funcionais.
- Resolvido problema com flash e flash_error.
- Flash agora é um pacote.

-----------------------------------------------------------------------------------------
Version 2.0.13 - 11/07/2018
-----------------------------------------------------------------------------------------

- Consertado download do projeto, retrabalhado performancem, e removido arquivos inúteis do arquivo baixado.
- Ao baixar o projeto, os arquivos .std agora são baixados em formato html.
- Criada tag [[total]], que exibe o total de registros em uma tabela, independente do limite. Essa tag tem que obrigatóriamente ser usada entre [[records]] e [[/records]].
- Consertado problema com parâmetro @url na paginação.
- Consertado problema com na ordenação por RAND.

-----------------------------------------------------------------------------------------
Version 2.0.12 - 10/07/2018
-----------------------------------------------------------------------------------------

- Resolvido problema de travamento ao fazer login com credênciais incorretas.
- Corrigido problema ao cadastrar usuário sem permissões.
- Resolvido problemas com logout.
- Resolvido problema com usuários secundários não conseguirem logar.
- Inserido o ID externo no select do tipo de campo 'Relacionamento'.

-----------------------------------------------------------------------------------------
Version 2.0.11 - 09/07/2018
-----------------------------------------------------------------------------------------

- Ajuste no display de erro da IDE, agora ele aparece e fica minimizado.

-----------------------------------------------------------------------------------------
Version 2.0.10 - 09/07/2018
-----------------------------------------------------------------------------------------

- Datepicker do painel administrador atualizado, liberando o campo para digitação.
- Implementado validação de campo tipo Data no painel do administrador.
- Implementado icones da biblioteca Google Material para o painel de ícones
- Diversos ajustes de css

-----------------------------------------------------------------------------------------
Version 2.0.09 - 04/07/2018
-----------------------------------------------------------------------------------------

- Adicionado botão para remover tela de boas vindas da IDE.
- Adicionado scripts de acompanhamento.
- Removido plugin 'select2' do painel do admin, que estava causando problemas.
- Consertado o funcionamento do sass e less compiler.
- Trocado padrão de foto do usuário de .jpg para .png. isso deve resolver problemas com backgrounds. (ATENÇÃO: Todos os devs devem re-upar suas fotos).
- Resolvido problema de não permitir enviar arquivos svg/xml/json
- Adicionado botão de busca de snippet e corrigido bug da busca.
- Painel de Changelog reformulado
- Adicionado função de copiar texto do gerador de loren ipsum para a àrea de transferência.
- Pastas e arquivos agora são abertos com apenas 1 clique.


-----------------------------------------------------------------------------------------
Version 2.0.08 - 03/07/2018
-----------------------------------------------------------------------------------------

- Corrigido possível problema na session_importer no painel do administrador utilizar multiplos projetos.
- Gerenciador de arquivos do painel do administrador agora considera a pasta de uploads publicada, caso o projeto esteja publicado.
- Botão de adicionar arquivo no formulário agora some ao se atingir o numero máximo e arquivos permitidos no campo.
- Tag '[[import cdn_css]]' e '[[import cdn_js]]' não adicionam mais os arquivos 'script.js' e 'style.css' no código, caso os arquivos não existirem.
- Ativado plugin para marcar .std como 'padrão de preview' para que quando estiver editando algum .css ou .js, ele abrir o .std e não o arquivo sendo editado.
- Cache sendo reescrito quando se renomeia arquivo .html para .std.
- Titles das flags na criação de tabela agora possuem título explicando o que faz.
- Criado flag 'index' que possibilita a criação de um indice no campo da tabela, melhorando performance em buscas.
- Nova opção para o campo small_text, permitindo adicionar máscaras.
- Nova opção para o campo small_text, permitindo adicionar validação personalizada por regex.
- Menu lateral direito foi acrescentado um drag para mover os itens para cima e para baixo em telas menores e diminuido os paddings de alguns elementos para criar mais espaço. 


-----------------------------------------------------------------------------------------
Version 2.0.07 - 02/07/2018
-----------------------------------------------------------------------------------------

- Workflow de publicação do projeto finalizado.
- Retrabalhado ajustes de segurança no servidor.
- Ajustes de css.
- Caixa de substituir é fechada quando alguma aba é aberta.
- Ajuste no Avatar do Profile.
- Icones de .scss e .less atualizados.
- Acrecentado ellipsis no titulo das tabelas limitando o tamanho.
- Outros ajustes responsivos.

-----------------------------------------------------------------------------------------
Version 2.0.06 - 01/07/2018
-----------------------------------------------------------------------------------------

- Retrabalhado a performance de DB e cache.
- Resolvido problema de não mostrar erros no painel do admin.
- Consertado problema de validações secundárias em campos opcionais.
- Resolvido maioria dos problemas de mensagem de erro genéricas.
- Retrabalhado identações nos modelos de template iniciais.

-----------------------------------------------------------------------------------------
Version 2.0.05 - 30/06/2018
-----------------------------------------------------------------------------------------
                                        
- Corrigido erros com as validações.
- Liberado formulario para cadastro com chave.
- Adicionado painel de novidades.
- Alguns problemas com responsividade

                                      
CUSTOM PLUGINS