Existem algumas limitações do que se pode fazer, mas com um pouco de criatividade é possivel fazer coisas bem legais.
Lembrando que não existe material "ensinando" como fazer nada. O seu aprendizado e o que vai ser possivel ser feito dependerá unicante de você e de sua vontade.
Entendo a estrutura de diretórios

cgi-bin = Diretório que contem os arquivos com os scripts cgi ou perl que são exibidos na interface
html = Usado para diversos fins, hospeda imagems e algumas coisas mais
menus = Diretório onde se encontram os scripts responsáveis por criarem os menus na interface
Exemplo de um Menu
Existem dois tipos de menus, separados em diretórios que são: main e haslave, main são os menus laterais da interface e haslave são os menus "escravos" referenciados em um submenu, como por exemplo a aba adicional da parte de autenticação do proxy, se você observar, ela refencia um diretório e não um script cgi. São poucos slaves, mas são utilizados e podemos também personalizar ou adicionar conforme nossa vontade.

Entendendo isto, só precisamos seguir a lógica para inserir o menu onde quisermos. A barra TOP do Endian é numerada, assim como o menu lateral. Basta contar e inserir no código o número baseado na localização.

Para praticar, vamos criar um menu lateral na aba "Status" com o nome de "Tutorial" para isto vamos inserir em:
Menu top = 2
Menu lateral = 10
Segue código do nosso arquivo chamado menu-tutorial.pl:
Código: Selecionar todos
#!/usr/bin/perl
my $item = {
'caption' => _('Tutorial'),
'enabled' => 1,
'uri' => '/cgi-bin/tutorial.cgi',
'title' => _('Exemplo de menu Tutorial'),
};
register_menuitem('02.status', '10.tutorial', $item);
1;

Como próximo passo, precisamos criar o arquivo tutorial.cgi para que o menu e a página possam ser exibidas.
Exemplo de Página
Como a extensão do arquivo já sugere, vamos utilizar unicamente linguagem CGI para construir a página, botões, radio buttons e etc.
CGI é uma linguagem bem flexivel e dá para criar um pouco de tudo com ela. Aqui vai entrar o fator criatividade em ação.
Vamos criar uma página simples agora. Retorne ao diretório cgi-bin e vamos lá:
Código: Selecionar todos
#!/usr/bin/perl
require '/var/efw/header.pl';
&showhttpheaders();
&openpage(_('Tutorial'), 1, '');
&openbigbox($errormessage, $warnmessage, $notemessage);
&openbox('100%', 'left', _('Tutorial'));
printf <<END
<br /><center><b>Endian Firewall</b> - Exemplo de página usando printf do CGI</center>
END
;
&closebox();
&closebigbox();
&closepage();
Comentando um pouco sobre o código
header.pl = É padrão em todas as páginas, ela que exibe o menu top, logotipo e demais conteúdo visual da interface
showhttpheaders() = É uma função padrão para mostrar a janelinha CSS padrão da interface
openpage = Dá o nome a janela, bem a cima e pode ser extenso se precisar
openbigbox = Chama as funções padrão se a pagina conter forms do tipo input ou post
openbox = Se encarrega de inserir um texto ajustado a esquerda dentro da header da janela CSS
printf <<END = Basicamente podemos utilizar qualquer elemento HTML, CSS e Javascript aqui dentro
END = Encerra o código
Na prática, o que criamos foi:

E paramos por aqui. Se se interessou e deseja mesmo contruir algo, recomendo primeiramente muita leitura sobre todos os comandos disponiveis no CGI. Não é um bicho de sete cabeças mas exige um pouco de dedicação e algumas horas em frente ao computador. O limite será sua criatividade a partir deste ponto. Exemplos dos arquivos no anexo.
Como não existe material disponivel sobre o assunto nem um guia de por onde começar, a dica essencial é pegar os modelos já existentes no Endian. Digamos, preciso de um inputbox... pegue uma página que contenha um e analise o código, extraia o que precisa, edite e insira no seu para testar. Alguns códigos são mais complexos, pois dependem de sudo sem senha, manipulamento de arquivos e auxilio de scripts externos, mas indo devagar logo logo você pega a manha.
Resta fuçar bastante por ai e aprender..... lembrado de sempre fazer backup dos arquivos originais antes de qualquer alteração
Bom proveito
