using System; using System.Collections.Generic; using System.Web; using MySQL; using System.Data; using System.Web.Configuration; using System.Web.UI.WebControls; namespace SiteECom { /// /// Conteúdos do site /// public class Conteudos { public Conteudos() { // // TODO: Add constructor logic here // } /// /// Mostra toda a informação de um determinado menu /// /// Localização do conteúdo no site /// Ordem pela qual o conteúdo é mostrado /// Número da página a mostrar /// DataTable public static DataTable Listagem(string Local, string Ordem, int Pagina) { int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString()); DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " idioma, " + " local, ordem, " + " titulo, subtitulo, " + " resumo, desenvolvimento, " + " link, documento, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM conteudo " + "WHERE local='" + Local + "' " + "ORDER BY " + Ordem + " " + "LIMIT " + (Pagina * offset) + ", " + offset; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Mostra toda a informação de um determinado menu e idioma /// /// Localização do conteúdo no site /// Ordem pela qual o conteúdo é mostrado /// Número da página a mostrar /// DataTable public static DataTable Listagem(string Local, string Idioma, string Ordem, int Pagina) { int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString()); DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " idioma, " + " local, ordem, " + " titulo, subtitulo, " + " resumo, desenvolvimento, " + " link, documento, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM conteudo " + "WHERE local='" + Local + "' " + " AND idioma='" + Idioma + "' " + "ORDER BY " + Ordem + " " + "LIMIT " + (Pagina * offset) + ", " + offset; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Pesquisa de conteudos /// /// DataTable public static DataTable Pesquisa(string Local, string Ordem, string Pesquisa) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); /* #1 - CONVERTE A PESQUISA NUM ARRAY EM QUE CADA POSIÇÃO CONTEM UM PARALVRA */ string[] _pesquisa = Pesquisa.Split(new char[] { ' ' }); if (_pesquisa.Length > 1) { // Pesquisa por mais do que 1 palavra sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " idioma, " + " local, ordem, " + " titulo, subtitulo, " + " resumo, desenvolvimento, " + " link, documento, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM conteudo " + "WHERE local='" + Local + "' " + "ORDER BY " + Ordem; dtInfo = sqlInfo.Read(); /* #2 - PESQUISA TODAS AS OCURRÊNCIAS DE _pesquisa EM dtInfo. REMOVE DE dtInfo TODAS AS LINHAS QUE NÃO TENHAM PELO MENOS UMA OCURRÊNCIA */ Intranet.Geral.Pesquisa(ref dtInfo, _pesquisa); } else { // Pesquisa apenas por uma palavra sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " idioma, " + " local, ordem, " + " titulo, subtitulo, " + " resumo, desenvolvimento, " + " link, documento, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM conteudo " + "WHERE local='" + Local + "' " + " AND (local LIKE '%" + Pesquisa + "%' " + " OR ordem LIKE '%" + Pesquisa + "%' " + " OR titulo LIKE '%" + Pesquisa + "%' " + " OR subtitulo LIKE '%" + Pesquisa + "%' " + " OR resumo LIKE '%" + Pesquisa + "%' " + " OR desenvolvimento LIKE '%" + Pesquisa + "%' " + " OR link LIKE '%" + Pesquisa + "%' " + " OR documento LIKE '%" + Pesquisa + "%' " + " OR imagem LIKE '%" + Pesquisa + "%' " + " OR DATE_FORMAT(data_ini, '%Y.%m.%d') LIKE '%" + Pesquisa + "%' " + " OR DATE_FORMAT(data_fim, '%Y.%m.%d') LIKE '%" + Pesquisa + "%') " + "ORDER BY " + Ordem; dtInfo = sqlInfo.Read(); } sqlInfo.closeConnection(); return dtInfo; } /// /// Pesquisa de conteudos num idioma /// /// DataTable public static DataTable Pesquisa(string Local, string Idioma, string Ordem, string Pesquisa) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); /* #1 - CONVERTE A PESQUISA NUM ARRAY EM QUE CADA POSIÇÃO CONTEM UM PARALVRA */ string[] _pesquisa = Pesquisa.Split(new char[] { ' ' }); if (_pesquisa.Length > 1) { // Pesquisa por mais do que 1 palavra sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " idioma, " + " local, ordem, " + " titulo, subtitulo, " + " resumo, desenvolvimento, " + " link, documento, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM conteudo " + "WHERE local='" + Local + "' " + " AND idioma='" + Idioma + "' " + "ORDER BY " + Ordem; dtInfo = sqlInfo.Read(); /* #2 - PESQUISA TODAS AS OCURRÊNCIAS DE _pesquisa EM dtInfo. REMOVE DE dtInfo TODAS AS LINHAS QUE NÃO TENHAM PELO MENOS UMA OCURRÊNCIA */ Intranet.Geral.Pesquisa(ref dtInfo, _pesquisa); } else { // Pesquisa apenas por uma palavra sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " idioma, " + " local, ordem, " + " titulo, subtitulo, " + " resumo, desenvolvimento, " + " link, documento, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM conteudo " + "WHERE local='" + Local + "' " + " AND idioma='" + Idioma + "' " + " AND (local LIKE '%" + Pesquisa + "%' " + " OR ordem LIKE '%" + Pesquisa + "%' " + " OR titulo LIKE '%" + Pesquisa + "%' " + " OR subtitulo LIKE '%" + Pesquisa + "%' " + " OR resumo LIKE '%" + Pesquisa + "%' " + " OR desenvolvimento LIKE '%" + Pesquisa + "%' " + " OR link LIKE '%" + Pesquisa + "%' " + " OR documento LIKE '%" + Pesquisa + "%' " + " OR imagem LIKE '%" + Pesquisa + "%' " + " OR DATE_FORMAT(data_ini, '%Y.%m.%d') LIKE '%" + Pesquisa + "%' " + " OR DATE_FORMAT(data_fim, '%Y.%m.%d') LIKE '%" + Pesquisa + "%') " + "ORDER BY " + Ordem; dtInfo = sqlInfo.Read(); } sqlInfo.closeConnection(); return dtInfo; } /// /// Mostra o detalhe de um conteúdo /// /// Id do conteúdo a mostrar /// DataTable public static DataTable Detalhes(int Id) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " idioma, " + " local, ordem, " + " titulo, subtitulo, " + " resumo, desenvolvimento, " + " link, documento, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM conteudo " + "WHERE id=" + Id; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Novo conteúdo /// /// Local do conteúdo /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Empresa de quem cria o conteúdo /// True ou False public static Boolean Gravar(string Local, string Titulo, string SubTitulo, int Ordem, string Inicio, string Fim, string Resumo, string Desenvolvimento, string Link, string Documento, string Imagem, int Activo, int CreateUser, int CreateDep) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); // Actualiza todos os conteúdos com ordem superior à ordem inserida sqlInfo.Query = "UPDATE conteudo " + "SET ordem=ordem + 1 " + "WHERE ordem>=" + Ordem + " " + " AND local='" + Local + "'"; sqlInfo.Write(); // Insere novo conteúdo sqlInfo.Query = "INSERT INTO conteudo(local, " + " titulo, subtitulo, " + " ordem, " + " data_ini, data_fim, " + " resumo, desenvolvimento, " + " link, documento, imagem, " + " activo, " + " createuser, createdep, createdata) " + "VALUES('" + Local + "'," + " '" + Titulo + "'," + " '" + SubTitulo + "'," + " " + Ordem + "," + " '" + Inicio + "'," + " '" + Fim + "'," + " '" + Resumo + "'," + " '" + Desenvolvimento + "'," + " '" + Link + "'," + " '" + Documento + "'," + " '" + Imagem + "'," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } /// /// Novo conteúdo num idioma /// /// Local do conteúdo /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Empresa de quem cria o conteúdo /// True ou False public static Boolean Gravar(string Local, string Idioma, string Titulo, string SubTitulo, int Ordem, string Inicio, string Fim, string Resumo, string Desenvolvimento, string Link, string Documento, string Imagem, int Activo, int CreateUser, int CreateDep) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); // Actualiza todos os conteúdos com ordem superior à ordem inserida sqlInfo.Query = "UPDATE conteudo " + "SET ordem=ordem + 1 " + "WHERE ordem>=" + Ordem + " " + " AND local='" + Local + "' " + " AND idioma='" + Idioma + "'"; sqlInfo.Write(); // Insere novo conteúdo sqlInfo.Query = "INSERT INTO conteudo(local, idioma, " + " titulo, subtitulo, " + " ordem, " + " data_ini, data_fim, " + " resumo, desenvolvimento, " + " link, documento, imagem, " + " activo, " + " createuser, createdep, createdata) " + "VALUES('" + Local + "'," + " '" + Idioma + "'," + " '" + Titulo + "'," + " '" + SubTitulo + "'," + " " + Ordem + "," + " '" + Inicio + "'," + " '" + Fim + "'," + " '" + Resumo + "'," + " '" + Desenvolvimento + "'," + " '" + Link + "'," + " '" + Documento + "'," + " '" + Imagem + "'," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } /// /// Editar conteúdo /// /// ID do conteúdo a editar /// Local do conteúdo /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Empresa de quem cria o conteúdo /// True ou False public static Boolean Editar(int Id, string Local, string Titulo, string SubTitulo, int Ordem, string Inicio, string Fim, string Resumo, string Desenvolvimento, string Link, string Documento, string Imagem, int Activo, int EditUser, int EditDep) { bool editado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); // ACTUALIZA CONTEÚDO sqlInfo.Query = "UPDATE conteudo " + "SET local ='" + Local + "'," + " titulo ='" + Titulo + "'," + " subtitulo ='" + SubTitulo + "'," + " ordem = " + Ordem + "," + " data_ini ='" + Inicio + "'," + " data_fim ='" + Fim + "'," + " resumo ='" + Resumo + "'," + " desenvolvimento ='" + Desenvolvimento + "'," + " link ='" + Link + "'," + " documento ='" + Documento + "'," + " imagem ='" + Imagem + "'," + " activo = " + Activo + "," + " edituser = " + EditUser + "," + " editdep = " + EditDep + "," + " editdata =now() " + "WHERE id=" + Id; editado = sqlInfo.Write(); // ACTUALIZA TODAS AS ORDEM DOS CONTEÚDOS ACIMA DESTE sqlInfo.Query = "SELECT i.id AS id, i.local, i.ordem AS ordem " + "FROM conteudo i, conteudo j " + "WHERE i.ordem>=" + Ordem + " " + " AND i.id<>" + Id + " " + " AND j.id=" + Id + " " + " AND i.local='" + Local + "' " + " AND i.local=j.local " + "ORDER BY i.ordem"; DataTable dtOrdem = sqlInfo.Read(); if (dtOrdem.Rows.Count > 0) { Ordem += 1; foreach (DataRow _ordem in dtOrdem.Rows) { sqlInfo.Query = "UPDATE conteudo " + "SET ordem=" + Ordem + " " + "WHERE id=" + _ordem.ItemArray[0]; Ordem += 1; sqlInfo.Write(); } } sqlInfo.closeConnection(); return editado; } /// /// Alteração de campos com estados numéricos /// /// Tabela a editar /// Id do conteúdo a editar /// Campo a editar /// Novo estado para o campo a editar /// Id do colaborador que edita o conteúdo /// Id do departamento que edita o conteúdo /// True ou false public static Boolean Activar(string Tabela, int Id, string Campo, int Estado, int Colaborador, int Departamento) { bool activar = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE " + Tabela + " " + "SET " + Campo + "=" + Estado + ", " + " edituser=" + Colaborador + ", " + " editdep=" + Departamento + ", " + " editdata=now() " + "WHERE id=" + Id; activar = sqlInfo.Write(); sqlInfo.closeConnection(); return activar; } /// /// Apagar conteúdo de uma detarminada tabela /// /// Tabela a editar /// Id do conteúdo a apagar /// True ou false public static Boolean Apagar(string Tabela, int Id) { bool apagar = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "DELETE FROM " + Tabela + " " + "WHERE id=" + Id; apagar = sqlInfo.Write(); sqlInfo.closeConnection(); return apagar; } /// /// Retorna o número de páginas existentes numa detarminada tabela agrupadas pelo offset (configurado no web.config) /// /// Tabela a contar registos/offset /// Número de páginas public static int Paginas(string Tabela) { int paginas = 0; DataTable dtPaginas = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT (COUNT(DISTINCT(id))/" + WebConfigurationManager.AppSettings["offset"].ToString() + ") AS topicos " + "FROM " + Tabela; dtPaginas = sqlInfo.Read(); sqlInfo.closeConnection(); paginas = (int)Math.Ceiling(Convert.ToDouble(dtPaginas.Rows[0].ItemArray[0].ToString())); return paginas; } /// /// Retorna o número de páginas existentes numa detarminada tabela agrupadas pelo offset (configurado no web.config) /// /// Tabela a contar registos/offset /// Condicao adicional à listagem de conteúdos (não necessita de ter o WHERE) /// Número de páginas public static int Paginas(string Tabela, string Condicao) { int paginas = 0; DataTable dtPaginas = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT (COUNT(DISTINCT(id))/" + WebConfigurationManager.AppSettings["offset"].ToString() + ") AS topicos " + "FROM " + Tabela + " " + "WHERE " + Condicao ; dtPaginas = sqlInfo.Read(); sqlInfo.closeConnection(); paginas = (int)Math.Ceiling(Convert.ToDouble(dtPaginas.Rows[0].ItemArray[0].ToString())); return paginas; } /// /// Informação relativa a quem criou determinado conteúdo /// /// Tabela do conteúdo /// ID do conteúdo /// Retorna todo o texto numa string public static string Criado(string Tabela, int Id) { string texto = ""; DataTable dtCriacao = new DataTable(); DataTable dtColaborador = new DataTable(); sql sqlSite = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sql sqlIntranet = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); // Verificar ID's de quem criou o conteúdo e data sqlSite.Query = "SELECT createuser AS colaboradorid, createdep AS departamentoid, createdata " + "FROM " + Tabela + " " + "WHERE id=" + Id; dtCriacao = sqlSite.Read(); sqlSite.closeConnection(); if (dtCriacao.Rows.Count > 0) { // Verificar nomes de quem criou o conteúdo // (isto é necessário porque os conteúdos estão em diferentes servidores) string departamento = ""; string departamento_email = ""; string colaborador = ""; string colaborador_email = ""; sqlIntranet.Query = "SELECT d.id, d.abreviatura AS departamento, d.email AS departamento_email, " + " c.id, c.nome AS colaborador, c.email AS colaborador_email " + "FROM sys_colaborador c, sys_departamento d " + "WHERE c.id=" + dtCriacao.Rows[0].ItemArray[0] + " " + " AND d.id=" + dtCriacao.Rows[0].ItemArray[1]; dtColaborador = sqlIntranet.Read(); if (dtColaborador.Rows.Count > 0) { departamento = dtColaborador.Rows[0].ItemArray[1].ToString(); departamento_email = dtColaborador.Rows[0].ItemArray[2].ToString(); colaborador = dtColaborador.Rows[0].ItemArray[4].ToString(); colaborador_email = dtColaborador.Rows[0].ItemArray[5].ToString(); } texto = "Criado por " + "" + departamento + "" + "\\" + "" + colaborador + " " + "a " + dtCriacao.Rows[0].ItemArray[2]; } sqlIntranet.closeConnection(); return texto; } /// /// Informação relativa a quem editou determinado conteúdo /// /// Tabela do conteúdo /// ID do conteúdo /// Retorna todo o texto numa string public static string Editado(string Tabela, int Id) { string texto = ""; DataTable dtEdicao = new DataTable(); DataTable dtColaborador = new DataTable(); sql sqlSite = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sql sqlIntranet = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); // Verificar ID's de quem editou o conteúdo e data sqlSite.Query = "SELECT edituser AS colaboradorid, editdep AS departamentoid, editdata " + "FROM " + Tabela + " " + "WHERE id=" + Id; dtEdicao = sqlSite.Read(); sqlSite.closeConnection(); // Só mostra quem editou se os campos EDITUSER e EDITDEP estiverem preenchidos if (dtEdicao.Rows.Count > 0 && Convert.ToInt16(dtEdicao.Rows[0].ItemArray[0].ToString()) > 0 && Convert.ToInt16(dtEdicao.Rows[0].ItemArray[1].ToString()) > 0) { // Verificar nomes de quem editou o conteúdo // (isto é necessário porque os conteúdos estão em diferentes servidores) string departamento = ""; string departamento_email = ""; string colaborador = ""; string colaborador_email = ""; sqlIntranet.Query = "SELECT d.id, d.abreviatura AS departamento, d.email AS departamento_email, " + " c.id, c.nome AS colaborador, c.email AS colaborador_email " + "FROM sys_colaborador c, sys_departamento d " + "WHERE c.id=" + dtEdicao.Rows[0].ItemArray[0] + " " + " AND d.id=" + dtEdicao.Rows[0].ItemArray[1]; dtColaborador = sqlIntranet.Read(); if (dtColaborador.Rows.Count > 0) { departamento = dtColaborador.Rows[0].ItemArray[1].ToString(); departamento_email = dtColaborador.Rows[0].ItemArray[2].ToString(); colaborador = dtColaborador.Rows[0].ItemArray[4].ToString(); colaborador_email = dtColaborador.Rows[0].ItemArray[5].ToString(); } texto = "Editado por " + "" + departamento + "" + "\\" + "" + colaborador + " " + "a " + dtEdicao.Rows[0].ItemArray[2]; } sqlIntranet.closeConnection(); return texto; } /// /// Retorna o ID do último conteúdo gravado numa determinada tabela /// /// Tabela a verificar /// Máximo id de uma tabela public static int Ultimo(string Tabela) { int id = 0; DataTable dtId = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT MAX(id) " + "FROM " + Tabela; dtId = sqlInfo.Read(); sqlInfo.closeConnection(); id = Convert.ToInt16(dtId.Rows[0].ItemArray[0]); return id; } public class DDL { /// /// Preenche uma DropDownList com os valores do "Campo" de uma "Tabela" ordenado pela "Ordem". /// (Text="Campo" e Value="Id") /// /// DropDownLista a preencher /// Tabela da db /// Campo da tabela /// Ordenmação public static void Preencher(ref DropDownList DDL, string Tabela, string Campo, string Ordem) { ListItem liConteudos; // LIMPA A DropDownList DDL.Items.Clear(); // ADICIONAR LINHA EM BRANCO liConteudos = new ListItem("", ""); DDL.Items.Add(liConteudos); // LÊ A BASE DE DADOS DataTable dtConteudos = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + Campo + " " + "FROM " + Tabela + " " + "WHERE activo=1 " + "ORDER BY " + Ordem; dtConteudos = sqlInfo.Read(); sqlInfo.closeConnection(); // ADICIONA CONTEÚDOS À DDL foreach (DataRow conteudo in dtConteudos.Rows) { liConteudos = new ListItem(conteudo.ItemArray[1].ToString(), conteudo.ItemArray[0].ToString()); DDL.Items.Add(liConteudos); } } /// /// Adiciona a uma DropDownList os valores do "Texto" e "Valor". /// (Text="Texto" e Value="Valor") /// /// DropDownLista a preencher /// Texto da selecção /// Valor da selecção public static void Adicionar(ref DropDownList DDL, string Texto, string Valor) { ListItem liConteudos; // ADICIONAR DADOS liConteudos = new ListItem(Texto, Valor); DDL.Items.Add(liConteudos); } } /// /// Palavras chave para os conteúdos /// public class PalavrasChave { /// /// Listagem de palavras chave para detarminado menu /// /// Link do menu a mostrar /// DataTable public static DataTable Listagem(string Menu) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " local, " + " palavrachave " + "FROM conteudo_palavraschave " + "WHERE local='" + Menu + "' " + "ORDER BY palavrachave"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Atribuição de palavras chave aos menus /// /// Menu a atribuir permissão /// Nível de permissão /// Id do colaborador /// Id do departamento /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// Retorna uma string com os campos adicionados [id, menu, palavrachave] public static string Adicionar(string Menu, string PalavraChave, int CreateUser, int CreateDep) { string _palavrachave; DataTable _palavrachave_adicionada; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO conteudo_palavraschave(local, palavrachave, " + " activo, createuser, createdep, createdata) " + "VALUES ('" + Menu + "'," + " '" + PalavraChave + "'," + " 1," + " " + CreateUser + "," + " " + CreateDep + "," + " now())"; sqlInfo.Write(); // Verificar dados inseridos sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " local, " + " palavrachave " + "FROM conteudo_palavraschave " + "WHERE local ='" + Menu + "' " + " AND palavrachave ='" + PalavraChave + "' " + "ORDER BY id DESC"; _palavrachave_adicionada = sqlInfo.Read(); if (_palavrachave_adicionada.Rows.Count > 0) { _palavrachave = _palavrachave_adicionada.Rows[0]["id"].ToString() + "\\s" + _palavrachave_adicionada.Rows[0]["local"].ToString() + "\\s" + _palavrachave_adicionada.Rows[0]["palavrachave"].ToString(); } else { _palavrachave = ""; } sqlInfo.closeConnection(); return _palavrachave; } } /// /// Banner para os conteúdos /// public class Banner { /// /// Listagem de imagens para detarminado menu /// /// Link do menu a mostrar /// DataTable public static DataTable Listagem(string Menu) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " ordem, " + " idioma, " + " local, imagem, link, " + " dimensao_x, dimensao_y, " + " descricao, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM conteudo_banner " + "WHERE local='" + Menu + "' " + "ORDER BY ordem, data_ini, data_fim, imagem"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Atribuição de imagem aos menus /// /// Menu a atribuir permissão /// Id do colaborador /// Id do departamento /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// Retorna uma string com os campos adicionados [id, menu, ordem, idioma, imagem, link, dimensa_x, dimensa_y, descricao, data_ini, data_fim] public static string Adicionar(int ID, string Idioma, string Menu, int Ordem, string Imagem, string Link, int Largura, int Altura, string Descricao, string Inicio, string Fim, int CreateUser, int CreateDep) { string _registo; DataTable _registo_adicionado; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); if (ID > 0) { // ACTUALIZAÇÃO sqlInfo.Query = "UPDATE conteudo_banner " + "SET idioma = '" + Idioma + "'," + " local = '" + Menu + "'," + " ordem = " + Ordem + "," + " imagem = '" + Imagem + "'," + " link = '" + Link + "'," + " dimensao_x = " + Largura + "," + " dimensao_y = " + Altura + "," + " descricao = '" + Descricao + "'," + " data_ini = '" + Inicio + "'," + " data_fim = '" + Fim + "'," + " activo = 1," + " edituser = " + CreateUser + "," + " editdep = " + CreateDep + "," + " editdata = now() " + "WHERE id=" + ID; } else { // INSERÇÃO sqlInfo.Query = "INSERT INTO conteudo_banner(idioma, local, ordem, imagem, link, " + " dimensao_x, dimensao_y, " + " descricao, data_ini, data_fim, " + " activo, createuser, createdep, createdata) " + "VALUES ('" + Idioma + "'," + " '" + Menu + "'," + " " + Ordem + "," + " '" + Imagem + "'," + " '" + Link + "'," + " " + Largura + "," + " " + Altura + "," + " '" + Descricao + "'," + " '" + Inicio + "'," + " '" + Fim + "'," + " 1," + " " + CreateUser + "," + " " + CreateDep + "," + " now())"; } sqlInfo.Write(); // VERIFICAR DADOS INSERIDOS if (ID > 0) { // Actualizados sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " ordem, " + " idioma, " + " local, imagem, link, " + " dimensao_x, dimensao_y, " + " descricao, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim " + "FROM conteudo_banner " + "WHERE id=" + ID; } else { // Inseridos sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " ordem, " + " idioma, " + " local, imagem, link, " + " dimensao_x, dimensao_y, " + " descricao, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim " + "FROM conteudo_banner " + "WHERE idioma ='" + Idioma + "' " + " AND local ='" + Menu + "' " + " AND ordem = " + Ordem + " " + " AND imagem ='" + Imagem + "' " + " AND link ='" + Link + "' " + " AND dimensao_x = " + Largura + " " + " AND dimensao_y = " + Altura + " " + " AND descricao ='" + Descricao + "' " + " AND DATE_FORMAT(data_ini, '%Y.%m.%d') ='" + Inicio + "' " + " AND DATE_FORMAT(data_fim, '%Y.%m.%d') ='" + Fim + "' " + "ORDER BY id DESC"; } _registo_adicionado = sqlInfo.Read(); if (_registo_adicionado.Rows.Count > 0) { _registo = _registo_adicionado.Rows[0]["id"].ToString() + "\\s" + _registo_adicionado.Rows[0]["local"].ToString() + "\\s" + _registo_adicionado.Rows[0]["ordem"].ToString() + "\\s" + _registo_adicionado.Rows[0]["idioma"].ToString() + "\\s" + _registo_adicionado.Rows[0]["imagem"].ToString() + "\\s" + _registo_adicionado.Rows[0]["link"].ToString() + "\\s" + _registo_adicionado.Rows[0]["dimensao_x"].ToString() + "\\s" + _registo_adicionado.Rows[0]["dimensao_y"].ToString() + "\\s" + _registo_adicionado.Rows[0]["descricao"].ToString() + "\\s" + _registo_adicionado.Rows[0]["data_ini"].ToString() + "\\s" + _registo_adicionado.Rows[0]["data_fim"].ToString(); } else { _registo = ""; } sqlInfo.closeConnection(); return _registo; } } } }