Introdução

Sejam bem vindos a documentação oficial do WebSheep

O software WebSheep é uma poderosa plataforma para gerenciamento de conteúdo online, que vem com um grande conjunto de recursos para tornar sua experiência de publicação, fácil, agradável e o mais atrativa possível.

Para usar o software WebSheep, você precisa de um serviço de hospedagem ou localhost que tenha suporte a PHP e MySQL.

Todo o sistema foi planejado para ser uma plataforma fácil e a intuitíva possível.
Se você já providenciou sua hospedagem ou configurou o seu localhost, vamos para os próximos passos.

Instalação

Estrutura no servidor

Ao criarmos o sistema, pensamos em uma estrutura limpa na qual o diretório admin responsável por toda a engine do sistema, completamente independente do website.
Assim você poderá fazer updates e manutenções sem precisar se preocupar em danificar e/ou excluir arquivos do seu website sem querer. Aconteceu algo? Exclua o diretório inteiro e suba novamente a instalação.

No diretório ws-bkp é onde ficarão os arquivos de bkp do seu website para futuras restaurações

Requisitos mínimos

Para que o WebSheep funcione corretamente é necessário pequenas exigências que não serão um problema para a maioria.
Pois hoje em dia são comuns na maioria das hospedagens do mercado.
São elas:

• Apache
• PHP 5.6
• MySQL

No php.ini deverão estar habilitados:
• Open Tag = On
• file_uploads = On
• upload_max_filesize = 200M (ou a sua necessidade)
• max_file_uploads = 200 (ou a sua necessidade)
• extension=php_curl.dll
• extension=php_openssl.dll

Configuração

Formulário primário

Ao abrirmos o diretório pela primeira vez, aparecerá esta tela onde
você precisará inserir os dados básicos para que o sistema possa funcionar corretamente.

Configuração do painel

TEREMOS ALTERAÇÕES NESSA TELA, ENTÃO NAO TEMOS MAIS DADOS A ACRESCENTAR

Gerenciando páginas

URL Amigável

Ao criar uma página nova, deveremos preencher este simples formulário.
Título da página é o que vai aparecer para você na listagem das páginas.
Nome do arquivo: Como o proprio titulo fala, é o nome do arquivo fisico no servidor. Por default todos os arquivos ficam na pasta includes
URL amigável: É a URL que ela será acessada por exemplo, se em meu site precisarei de uma página de produtos eu colocarei simplesmente produtos.





Temos algumas variáveis também para acrescentar:

Mas se por acaso você precise utilizar parâmetros dinâmicos em minha URL?(ex: produtos/ ID do produto / TITULO do produto)
Colocando um asterisco '*' no path, ele validará qualquer parâmetro, ficando assim: produto/*/*

Caso queira que seu arquivo seja acessado pelas URL's produto Ou produtos ou ainda prod, basta colocar um ' | ' (barra reta) entre as palavras
www.domain.com/produto|produtos|prod

Caso queira que seja acessado por qualquer coisa diferente de "prod" adicione um acento circunflexo '^' antes da palavra:
www.domain.com/^prod

Com essa técnica você poderá criar URl's complexas dessa maneira:
www.domain.com/nossos-produtos|produtos|/*/^palavra/*/*

Minhas páginas


Gerenciando suas páginas
Aqui começamos a trabalhar com umas das partes mais importantes do sistema.
Gerenciador de páginas, onde você pode adicionar, editar, excluir e manipular a URL dacesso do seu arquivo.
Ícones de gerenciamento
Todos possúem um balão tooltype explicando o que cada um faz, porém da esquerda para direita são:
• Acesso ao módulo de MetaTags
• Mover a ordem das páginas
• Editar informações da página
• Editar o arquivo no editor do sistema
• Excluir página

Navegação & Includes

URLs no .HTACCESS

Entenda essa tela como o seu htaccess interno.
Ele edita as url's de acesso diretamente no arquivo .htaccess do servidor.
Portanto muito cuidado ao editar, pois qualquer erro poderá invalidar toda a navegação do seu site.
Para mais detalhes e entender como funciona o rule acesse a documentação oficial do apache

Configuração básica

Para acessar e configurar a navegação e arquivos globais do seu site, acesse:
URL's & Includes > Navegação & Includes
Assim carregará a seguinte tela de configuração básica.

Ao acessar essa tela, teremos alguns dados importantes a serem configurados:

URL Inicial:

Seta a URL que será acessada como default pelo root.
Por exemplo, a URL setada é inicio ou home, então quando seu site foir acessado apenas pelo domínio www.dominio.com/ irá exibir o conteúdo de home.

Diretório base dos arquivos:

Aqui estamos dizendo qual será o diretório padrão para os arquivos de includes.
Por exemplo, quando criamos uma página, no caso o inicio.php, o sistema criará esse arquivo dentro do diretório padrão.

Arquivo de erro 404:

Como o próprio título diz, é o arquivo que será chamado por padrão quando a URL for digitada errada pelo usuário.
Ou alguma página inexistente for acessada por engano.

Pasta dos plugins:

Aqui dizemos ao WebSheep qual será o diretório padrão onde será alocado os seus plugins.

Ignorar paths finais:

Caso você queira ignorar diretórios adicionais em seu site.
Por exemplo, a página correta é:
/categoria/produtos/id_prod/
Porém foi acessada a seguinte URL:
/categoria/produtos/id_prod/path01/path02/
Por default ele iria me direcionar para página 404.
Porém com essa opção, ele irá ignorar esses path's a menos que eles existam.

Arquivos de includes:

Nessa sessão, definimos os arquivos que serão incluídos em seu site.
Por exemplo, se você tem 2 arquivos que serão incluídos em todas as sessões do site, como header e footer, basta adicioná-los conforme o desenho a baixo:

Lembre-se de que aqui não existe path padrão ok?
Você pode definir arquivos no root do /website/

Editor de códigos

Em breve...

TAG HTML

TAG HTML Inserindo

Para você utilizar as tags HTML, é simples.
Já dentro do editor de código ache o menu superior no lado esquerdo " >>Opções"
Selecione a opção "Adicionar uma ferramenta".

Selecione a sua ferramenta, e clique tagHTML5.
Vai em inserir código







TAG HTML conceito básico

Antes de qualquer coisa, é importante você entender, que essas tags não são nativas em um browser comum.
O WebSheep interpreta essas tags e retorna o que você pede. Ou seja a tag HTML nada mais é do quer um "atalho" a classe em PHP.
Exemplo:
<!-- REQUISIÇÃO FEITA EM HTML -->
<ws-tool slug="produto" type="item">	
	<img src="/ws-img/0/0/{{ avatar }}"/>	
	{{ titulo }}	
	{{ target }}	
	{{ sub_titulo }}
</ws-tool>

<?
###############################################################
# MESMA REQUISIÇÃO FEITA EM PHP
###############################################################
$Tool= new WS();	
$pesquisa = $Tool->slug("produto")->type("item")->go();	
foreach($pesquisa->obj as $data){		
	echo '<img src="/ws-img/0/0/'.$data->avatar.'"/>';		
	echo '<div>'.$data->titulo.'</div>';		
	echo '<div>'.$data->target.'</div>';		
	echo '<div>'.$data->sub_titulo.'</div>';	
}
?>

Atributos aceitos

A tag HTML foi projetada para transformar todos os atributos em funções no PHP.
Por exemplo:
<ws-tool batatinha="frita" picanha="assada"></ws-tool>

<?
########################################################
# O WebSheep irá interpretar o código desta maneira
########################################################

$Tool= new WS();	
$pesquisa = $Tool->batatinha("frita")->picanha("assada")->go();	

?>


Tags aceitas

Atributo Tipo Valor default Descrição
alias string null Um apelido para ferramenta, caso utilize tags dentro de tags.
slug string null Como o próprio atributo manda, é o Slug da ferramenta a ser chamada
type string item, gal, img_gal,img,cat,file É o tipo de informação a ser retornada
colum string null São as colunas que você quer trazer
distinct bolean 1 Não repete resultados, utilizado para ítens vinculados ou resultados de pesquisa %LIKE%
utf8 string encode / decode Retorna o resultado com a codificação requirida
url string encode / decode Retorna o resultado com a codificação requirida
order string,string colunm,order (ASC || DESC) Ordena os resultados
category int null Retorna os ítens vinculados aquela categoria
galery int null Retorna os ítens vinculados aquela galeria
item int null Retorna o resultado com um ID expecífico
where string null Sintaxy do MySQL, where(). Não permitido coluna sem prefix. Ex: para colunm use _prefix_colunm
innerItem int null Retorna resultados para objetos relacionados diretamente ao ítem setado
filter function null Processa todos os resultados com a função requirida. Deve ser função de retorno
paginate int,int null Limita os resultados para uma possível paginação.
1° param: max por página, 2° param: página atual

Template

Ok, agora que você entende as Tags de importação, como puxar o conteúdo?
É simples, por default o sistema já traz para você as colunas da ferramenta que você selecionou.
Dessa maneira:
<ws-tool slug="produto" type="item">

	{{ titulo }}
	{{ description }}
	{{ valor }}

</ws-tool>

Essas variáveis são as colunas que você montou na ferramenta.
E quando o sistema processar o HTML, elas serão substituídas pelos valores cadastrados.
Basta montar o seu template ao seu gosto, por exemplo:
<ws-tool slug="produto" type="item">
	<div id="{{ id }}" class="produto">
		<div class="titulo">{{ titulo }}</div>
		<div class="content">{{ description }}</div>
		<div class="valor">{{ valor }}</div>
	</div>
</ws-tool>

O sistema irá replicar todo conteúdo dentro da tagHTML dentro de um foreach do Database, retornando seu template.

Funções de retorno

Como nada é perfeito nessa vida, os atributos pré moldados também não são.
Então para resolver isso, podemos utilizar o php puro dessa maneira:
<ws-tool slug="doc" type="<?
	if($i==1){
		echo "item";
	}else{
		echo "cat";
	}
?>">

</ws-tool>

Ou podemos utilizar dessa maneira:
<ws-tool slug="doc" type="return ($i==1)? 'item' : 'cat'">

</ws-tool>

Sim, os atributos aceitam funções PHP de retorno.
Quando inserido a palavra "return" dentro de um valor, tudo que vier após ele será processado como uma função.
Outro exemplo:
<ws-tool slug="doc" type="item" item="return ws::urlPath(1)">

</ws-tool>

Template recursivo

Ok, digamos que eu necessite fazer uma lista dentro de uma lista.
Nesse caso iremos adicionar a tag alias="" em cada tagHTML, para que não haja conflito.
Por exemplo:
<ws-tool alias="prod" slug="produto" type="item">
	<div id="{{ prod.id }}" class="produto">
		<div class="titulo">{{ prod.titulo }}</div>
		<div class="content">{{ prod.description }}</div>
		<div class="valor">{{ prod.valor }}</div>
		<div class="sugestoes">
			<ws-tool alias="sug" slug="produto" type="item" linked="{{ prod.id }}">
				<a href="/prod/{{ sug.id }}">{{ sug.titulo }}</a>
			</ws-tool>
		</div>
	</div>
</ws-tool>

SEO

MetaTags

Configuração Default

Para facilitar a nossa vida, o sistema possúi um módulo específico para gerenciamento de metaTags.
O sistema possúi as metaTags padrões que serão invocadas caso a página configurada não possúa a mesma.

Para configurar as metaTags padrão siga esse caminho:
Menu Principal -> Configuração do painel -> Configurar Meta Tags

Ali dentro é tudo muito didático, pois você pode adicionar as metaTags vazias, ou um conjunto pré estabelecido no selectBox.

Inserindo a TAG

Para adaptar em seu website, basta inserir a seginte tag dentro da tag head /head

<!DOCTYPE html>
<html>
<head>
	<ws-metatags></ws-metatags>
</head>
<body>
</body>
</html>

Configurando as TAG's

Painel

Em breve...

Ferramentas

Nova ferramenta


No menu lateral, selecione:
Menu > Minhas ferramentas > Gerenciar



Ao carregar a página das ferramentas, clique no botão Criar uma ferramenta


No modal teremos 4 opções para preencher;
A: Prefixo das colunas:Seriá para as colunas do MySQL, para não haver conflitos entre as ferramentas.
B: Nome do App: Será o nome que aparecerá no menu para você acessar
C: Slug da ferramenta: Será o apelido identificador dela para o sistema



Plugins

Em breve...

Gerenciamento de Arquivos

Em breve...

Cadastros

Em breve...

BKP & Restauração

Em breve...

Usuários

Em breve...