{Resolvido} Topo Menu

Olá

Amigos, eu gostaria de colocar em meu projeto, no topo a seguinte forma.:

Link da imagem.: https://drive.google.com/open?id=0B1_kaaYBdf0sRDhfMlhFUVdtVDg

Na verdade, e colocar a imagem de quem se loga no sistema, no menu, com o nome, cargo, etc… no topo
Tem como.?? alguem já fez isso no SC…?

Aguardo

Kleber,

Não dá pra ver a imagem sem autorização.

Se não me engano, acho que vi alguém aqui no fórum que já fez isso… dá uma procurada aqui no fórum.

Eu fiz uma coisa parecida, mas depois que o usuário se loga no sistema.
No meu caso, eu tenho uma tabela para o cadastro de clientes, uma tabela para o cadastro de usuários e outra para referenciar o usuário ao cliente.
Na tabela de clientes, eu tenho um campo com o nome do arquivo de logo do cliente. O arquivo físico eu armazenei na pasta “/_lib/img” do servidor do Scriptcase.
No meu caso, cada grupo de usuário usa um menu específico e o acesso está definido no módulo de segurança padrão do Scriptcase.
Para o menu, eu criei um novo Template HTML com o código abaixo:


body { background-color:#004D82; /*background-image:url('../_lib/img/grp__NM__bgTickets.png');*/ padding-top:15px; } #lin1_col1 { margin-left:9px; margin-top:7px; width:40%; height:27px; float:left; overflow:hidden;} #lin1_col2 { margin-left:0px; margin-top:7px; width:40%; height:35px; float:left; overflow:hidden;} #lin1_col3 { margin-left:0px; margin-top:7px; width:10%; height:35px; float:right; overflow:hidden;} #lin2_col1 { margin-left:9px; margin-top:0px; width:40%; height:15px; float:left; overflow:hidden;}
{LIN1_COL1} {LIN1_COL2} {LIN1_COL3}
{LIN2_COL1}

No Menu, eu associo esse template e no parâmetro “LIN1_COL2”, eu selecionei “valor” e coloquei a variiável “[logo]”.
Na tela de login, no evento “onValidate”, coloquei o código abaixo:


$slogin = sc_sql_injection({login});
$spswd = sc_sql_injection(md5({pswd}));

$sql = “SELECT
USER_ID,
PRIV_ADMIN,
ACTIVE,
USER_NAME,
EMAIL
FROM USERS
WHERE LOGIN_NAME = $slogin
AND PSWD = “.$spswd.””;

sc_lookup(rs, $sql);

if(count({rs}) == 0)
{
sc_log_add(‘login Fail’, {lang_login_fail} . {login});
sc_error_message({lang_error_login});
sc_error_exit();
}
else if({rs[0][2]} == ‘Y’)
{
$usr_id = {rs[0][0]};
$usr_login = {login};
$usr_priv_admin = ({rs[0][1]} == ‘Y’) ? TRUE : FALSE;
$usr_name = {rs[0][3]};
$usr_email = {rs[0][4]};
sc_set_global($usr_id);
sc_set_global($usr_login);
sc_set_global($usr_priv_admin);
sc_set_global($usr_name);
sc_set_global($usr_email);

/* Pesquisa o logo - somente para usuarios do grupo de Clientes */
$logo = "";

$sql = "SELECT logo_name
    	  FROM customers
	     WHERE customer_id IN (SELECT customer_id
                                 FROM user_customers uc
                                    , users u
                                WHERE uc.user_id = u.user_id
                                  AND u.user_type_id = 4
                                  AND uc.user_id = " . $usr_id . " ) ";

sc_lookup(rs,$sql);
if(count({rs}) == 0)
{
   $logo = "";
   sc_set_global($logo);
}
else
{
   $img = {rs}[0][0];
   $logo = "<img border=0 src='../_lib/img/".$img."'>";
   sc_set_global($logo);
}
/* Fim pesquisa logo*/

}
else
{
sc_error_message({lang_error_not_active});
sc_error_exit();
}


O que o sistema vai fazer:

  1. Após o login válido do usuário, a query irá pesquisar o nome do arquivo de logo do cliente conforme o cadastro;
  2. Depois associa essa informação à variável “$img”;
  3. Em seguida, associo a string “”, com o nome do arquivo à variável “$logo”;
  4. Set como variável global;

Por fim, no evento “onValidateSuccess” da tela de login, faço uma query para pesquisar o menu que será acessado pelo usuário, conforme meus critérios de segurança e depois dou o comando “sc_redir($l_sMenu);”, onde “$l_sMenu” contém o nome do menu que deverá ser aberto.

Uma vez que declarei a variável “logo” como global, o menu carregará a imagem que defini.

Não sei se é a melhor forma de fazer isso, mas até o momento, isto funciona muito bem aqui no sistema.

Espero ter colaborado.

Michel