Por favor, alguém poderia me dizer se existe uma maneira de mudar dinamicamente a imagem do cabeçalho do menu?
O que gostaria de fazer é: baseado numa variável global setar a imagem a ser exibida, que estaria já armazenada no servidor.
Desde já, obrigado.
Adriano,
Coloca o nome da imagem em uma tabela de seu banco.
No evento OnLoad da aplicação menu, crie uma sc_lookup e crie uma variavel que pegue o nome da imagem.
Em layout coloque a variavel onde aparece o nome da imagem default do sc.
Leandro
leandroauler, tentei aplicar as suas dicas e nao funcionou. fiz exatamente como o explicado. o logo do cabecalho nao apareceu e quando cliquei na area onde deveria aparecer a imagem com o botão direito do mouse e cliquei na opção abrir imagem em nova aba, apareceu a seguinte mensagem!!!
You don’t have permission to access /scriptcase/app/motoboyweb/_lib/img/ on this server
note que depois do img/ nao aparece o nome do arquivo colocado na variavel.
obrigado…
Pessoal alguém poderia me ajudar com esta duvida??? existe outra forma alternativa de solucionar como mudar o logo dinamicamente???
Muito obrigado a todos,
Jonatas.
a solução é a mesma deste tópico:
http://www.netmake.com.br/forum/index.php?topic=4050.msg15802#msg15802
Boa tarde pessoal.
Obrigado pelas mensagens.
A solução apresentada pelo Haroldo é boa, mas consegui encontrar outra solução. Só falhei em postá-la nesse tópico. Peço desculpas pela minha falta de resposta.
Vamos aos passos:
1 - No layout do menu, onde deveria ficar a imagem eu selecionei “Valor” e coloquei o nome de uma variável, [var_imagem].
2 - No evento OnLoad da aplicação de login eu uso o sc_lookup para trazer o nome da imagem que eu quero.
3 - Depois eu jogo o nome retornado do banco na variável [var_imagem], que defini como global, concatenando com o código HTML .
Segue o código do OnLoad abaixo:
$var_imagem = “”;
sc_set_global([var_imagem]);
sc_lookup(dsimagem, “select nome_imagem from tabela_imagem where cod_imagem = 1”);
if (!empty({dsimagem}))
{
$varimg = {dsimagem}[0][0];
[var_imagem] = “”;
}
Nessa programação tive de usar uma variável intermediária ($varimg), pois a versão 6 estava dando erro de array na concatenação da string do código HTML com o {dsimagem}[0][0].
Até +
Adriano Silva
Cara, essa era uma dúvida que sempre tive no sc.
Parabéns pela dica, vai ajudar muita gente!
Ainda não testei, mas estou criando uma aplicação multi-empresa, onde cada uma vai ter seu logo no cabeçalho do menu principal, seu código vai servir perfeitamente!
Muito obrigado.
Rodrigo
Só para compartilhar eu fiz assim:
Criei um Form que insere a logomarca da empresa (num campo BLOB do mysql), e eles podem modificar quando quiserem.
No evento OnLoad do Menu
//LOGOTIPO
$check_sql = " SELECT Imagem"
. " FROM os_imagens"
. " WHERE Nome = 'LOGOTIPO'";
sc_lookup(rs, $check_sql);
if (isset({rs[0][0]})) // Row found
{
$varImg=base64_encode({rs[0][0]});
[Logo] = "<img border=0 height='63px' src='data:image/png;base64,$varImg'>";
}
else // No row found
{
[Logo] = 'Logotipo não configurado.';
}
///LOGOTIPO
No cabeçalho em NM_LOGOTIPO Valor = [Logo]
Como é uma logomarca não tem problema gravar no banco e fica mais fácil de configurá-la.
Muito bom tb Higor.
Assim fica flexível para quem quiser usar Banco de Dados ou a imagens em diretório.
O próximo passo é criar uma aplicação de upload de imagens.
Assim o usuário ficar livre para mudar as imagens do projeto quando bem entender.
Mas estou sem tempo para fazer nesse momento.
Até +
Pessoal, tentei várias vezes fazer conforme indicado mas não deu certo.
Não sei mais o que fazer!
Por favor, me ajudem.
Para ficar claro: tenho um campo tipo image no SQL Server que estou tentando EXIBIR no cabeçalho do menu para que apareça ao lado do nome do usuário, ou seja, o nome do usuário e sua respectiva foto.
Contudo, apesar de usar todos os códigos que encontrei na net, além desse acima, a imagem não aparece de jeito nenhum!!!
Se alguém puder me ajudar, agradeço.
Nick boa noite, nós podemos lhe dar algum auxilio sim, poste seu código…
Seguindo os passos da minha postagem não tem erro.
[]'s
Higor
Higor,
Sua solução está perfeita… se você me permitir, poderíamos publicá-la na sessão dicas do site da associação.
Parabéns!
Bom dia Higor,
Segue conforme solicitado,
No menu > evento > onLoad:
$check_sql = " SELECT corpFotoPequena"
. " FROM GUsuarios"
. " WHERE IDUsuario = '".[meuID]."'";
sc_lookup(rs, $check_sql);
if (isset({rs[0][0]})) // Row found
{
$varImg=base64_encode({rs[0][0]});
[Logo] = "<img border=0 height='63px' src='data:image/jpeg;base64,$varImg'>";
}
else // No row found
{
[Logo] = 'Sem foto';
}
A imagem é JPG, mas já tentei: image/png, image/jpg, image/jpeg.
Template do cabeçalho:
<style>
#msglogado { font-family:Arial, Helvetica, sans-serif; font-size:12px; color: #666666; }
#nomeLogado { font-family:Arial, Helvetica, sans-serif; font-size:18px; color: #000000; font-weight:bold }
#linha2 { font-family:Arial, Helvetica, sans-serif; font-size:12px; color: #666666; }
#linha3 { font-family:Arial, Helvetica, sans-serif; font-size:12px; color: #666666; }
#tbHead {background-color:#ffffff;}
</style>
<table ID="tbHead" width="100%" height="67px" {NM_CSS_FUN_CAB}>
<tr>
<td width="219" align="left" valign="middle" {NM_CSS_CAB}>{NM_LOGOTIPO_ESQUERDO}</td>
<td width="29" align="right" valign="middle" {NM_CSS_CAB}>{foto}</td>
<td width="491" align="left" valign="middle" {NM_CSS_CAB}>
<span id="msglogado">{msglogado}</span><span id="nomeLogado">{nomeLogado}</span><br />
<span id="linha2">{linha2}</span><br />
<span id="linha3">{linha3}</span></td>
<td width="198" align="right" valign="middle" {NM_CSS_CAB}>{NM_LOGOTIPO_DIREITO}</td>
</tr>
</table>
Grato pela atenção
Então, vamos por parte:
- Instale o HeidiSQL e conecte no seu banco;
- Execute o SQL, no meu caso foi somente:
SELECT Imagem FROM os_imagens WHERE Nome = 'LOGOTIPO'
- Ao retornar o resultado clique nele com o botão direito e “Image preview”
É exibida a imagem?
Peço que execute este procedimento para primeiro verificarmos se seu banco está gravando a imagem como deve ser.
Atenciosamente,
Higor
Higor,
Sua solução está perfeita… se você me permitir, poderíamos publicá-la na sessão dicas do site da associação.
Parabéns!
Pode sim Jovito, desde que citada a fonte heheheh.
Higor,
Eu instalei o programa que vc indicou e fiz conforme solicitado:
1 - Quando lista na data o campo é exibido assim:
0x2A6E6D2A2F396A2F34516175525868705A6741415…
Ao clicar com o botão direito sobre a opção Image Preview > No image detected
2 - Quando listado na query, o select: SELECT corpFotoPequena…, é exibido assim:
nm/9j/4QauRXhpZgAATU0AKgAAAAgADAEAAAMA…
Neste caso ao clicar com o botão direito a opção Image Preview está desabilitada.
Agora eu não entendi, porque, este campo está retornando a imagem normalmente nas consultas, formulários, etc do scriptcase, Higor. Apenas no cabeçalho que não.
Pera ai, agora eu que nao entendi.
Se no SQL a imagem aparece “No image detected” é porque a imagem está com problema… e em tese não seria possivel exibi-la de forma alguma.
Teria como vc postar um DUMP desta tabela para que eu faça uns testes aqui. Só não vou poder ajudar muito se o problema for do MS-SQL pois só trabalho com MySQL e Postgres.
Att,
Higor
Pera ai, agora eu que nao entendi.
Se no SQL a imagem aparece “No image detected” é porque a imagem está com problema… e em tese não seria possivel exibi-la de forma alguma.
Teria como vc postar um DUMP desta tabela para que eu faça uns testes aqui. Só não vou poder ajudar muito se o problema for do MS-SQL pois só trabalho com MySQL e Postgres.
Att,
Higor
Desculpa Higor, mas não sei o que é um DUMP. Poderia me explicar para que eu efetue o procedimento?
Nick,
Um dump é um script (qualquer_coisa.sql), normalmente gerado pelo sistema de administração do seu banco de dados (no mysql o dump pode ser gerado pelo Work Bench ou pelo phpmyadmin), que contém uma cópia de uma tabela com os dados ou apenas a estrutura de campos.
[]´s
Segue,
CREATE TABLE [dbo].[GUsuarios](
[IDUsuario] [int] IDENTITY(1,1) NOT NULL,
[nomeR] [varchar](25) NULL,
[nomeC] [varchar](50) NULL,
[sexo] [varchar](1) NULL,
[dtNascimento] [smalldatetime] NULL,
[habCEP] [varchar](10) NULL,
[habLogradouro] [varchar](150) NULL,
[habNumero] [varchar](7) NULL,
[habComplemento] [varchar](50) NULL,
[habBairro] [varchar](36) NULL,
[habCidade] [varchar](36) NULL,
[habUF] [varchar](2) NULL,
[foneResid] [varchar](15) NULL,
[foneCelular] [varchar](15) NULL,
[foneRamal] [varchar](4) NULL,
[foneDireto] [varchar](15) NULL,
[corpFotoPequena] [image] NULL,
[corpFotoMedia] [image] NULL,
[corpFotoAssinatura] [image] NULL,
[admUltAlteraData] [smalldatetime] NULL,
CONSTRAINT [PK_GUsuario] PRIMARY KEY CLUSTERED
(
[IDUsuario] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]