Jump to content

Esconder e mostrar registos


Yasawas
 Share

Recommended Posts

Caros,

Primeiro que tudo, um agradecimento a quem criou e gere este fórum, está excelente.

Já sei que vou levar na cabeça, porque deveria ter pesquisado primeiro (e fi-lo, simplesmente tenho muito pouco tempo útil para o fazer), mas preciso da vossa ajuda numa questão que até agora não consegui resolver.

Muito rapidamente explico:

Tenho um backoffice de gestão de conteúdos já finalizado, incluindo login de utilizadores, respectivas autorizações, níveis de acesso, listagem de resultados, e a par com isso, as respectivas secções de edição (ou seja, editar notícias, eventos, etc et al).

Após o desenvolvimento e implementação, foi-me pedido (typical) o seguinte:

Ao inserir ou editar uma notícia/evento ou whatever, deverá existir um radio group (ou equivalente, drop-down, etc), que permita dois estados: Activo e Inactivo. A lógica disto seria a seguinte: Ao ser inserido conteúdo, deve por defeito estar inactivo, ou seja, NÃO deve aparecer listado, cabendo ao utilizador, quando altera algum conteúdo, decidir se a noticia/evento é listada ou não no site público).

Convém chamar a atenção para o seguinte: o conteúdo deve ser à mesma despejado para a DB.

Já vi isto em qualquer lado feito, e a funcionar, mas a questão coloca-se da seguinte maneira: Trabalho com o DW CS4, ADDT (Dreamweaver Toolbox) e embora, tenha já algumas bases relativamente sólidas em PHP, ainda não aprofundei (falta de tempo, infelizmente) a questão. Isto porque a minha área de intervenção é o Design, com todas as suas variantes, e só há 2, 3 anos é que trabalho com PHP/MySQL..

Ou seja, resumo:

Preenchimento dos campos (título,subtitulo, resumo, corpo e data de inserção - que neste caso é automática para não haver aldrabices) inserção de imagem no campo respectivo, e no final do form, antes do Submit, definir se está activo/a ou não.

Como é possível fazer isto?

Agradeço desde já a vossa ajuda! 🙂

Link to comment
Share on other sites

Ou não percebi a tua questão ou acho que se resolve facilmente.

Uma vez que já tens a BD feita e é chato estar a mudar isso tudo penso que o mais rápido será criar uma tabela tipo "Estado" onde tem o ID do conteúdo e um boolean a indicar se esse conteúdo está ou não activo, depois no momento de carregas os conteúdos para a pagina basta adicionar ao select uma condição que se o conteúdo não estiver na tabela então não aparece. No backoffice basta meteres um botão que permite activar/desactivar o conteúdo que ao invés de gravar novamente tudo apenas actualiza a tabela que gere os estados.

I haven’t lost my mind; it’s backed up on DVD somewhere!

Link to comment
Share on other sites

Ou não percebi a tua questão ou acho que se resolve facilmente.

Uma vez que já tens a BD feita e é chato estar a mudar isso tudo penso que o mais rápido será criar uma tabela tipo "Estado" onde tem o ID do conteúdo e um boolean a indicar se esse conteúdo está ou não activo, depois no momento de carregas os conteúdos para a pagina basta adicionar ao select uma condição que se o conteúdo não estiver na tabela então não aparece. No backoffice basta meteres um botão que permite activar/desactivar o conteúdo que ao invés de gravar novamente tudo apenas actualiza a tabela que gere os estados.

Boas!

Bom, em cada página de inserção tenho já o botão (no caso é um radio group) que permite a escolha entre o activo ou inactivo, e na tabela idem, um campo denominado Activo, só que..ENUM ('0','1') Se calhar o meu erro é no ENUM, e deveria usar o Boolean (que já me tinha ocorrido). Ou achas que é necessário criar uma nova tabela (Estado), que esteja ligada as tabelas News/Eventos, etc?

É possivel dares-me um exemplo do que falas? Caso haja, obviamente. 🙂

Tks!

EDIT: Obviamente, no caso da EDIÇÃO de CONTEÚDO (não na inserção de novo) e como falas, há apenas um Update Record.

Link to comment
Share on other sites

Exemplos não tenho :|

Mas a ideia parece-me simples, quanto ao boolean ou enum acho que dá no mesmo eu referi o boolean por já ser algo padrão. O que acho que estás a fazer mal é ter essa opção no quadro de insert.

O quadro de insert deve inserir á cabeça como desactivado depois deves é criar outro quadro onde aparece a listagem de todos os conteúdos por categoria ou como quiseres e ai sim activas ou desactivas sem mexer no conteúdo.

Algo do genero

Festa A - Activar

Evento B - Desactivar

New C - Desactivar

Não tens o conteúdo tem apenas o titulo dele

I haven’t lost my mind; it’s backed up on DVD somewhere!

Link to comment
Share on other sites

mmm ok, estou a entender.

No caso, é um ENUM que é enviado.Mas não funciona (obvious pela tua explicação.)

A selecção do activo(inactivo) não é feita no Update record e enviada, mas sim no ouptut de uma query à DB (listar_noticias.php, por exemplo), e nessa página então ter essa opção para activar ou não a mesma. Mas depois vou precisar de validar essa escolha, seria adequado ter um botão nessa listagem que fosse um update à DB com essa opção de activo/inactivo) Neste caso acho preferível, porque no meu entender, quem vai usar esse backoffice provavelmente não irá entender que escolhendo uma ou outra opção, não "acontece nada" (claro que acontece, mas esta gente não percebe o funcionamento nem a lógica). Preferível, talvez então, o botão que faça o update a todas as alterações que são feitas.

Link to comment
Share on other sites

Pois essa é outra abordagem, embora nesse caso permita alterar o conteúdo e ao colocar como activo já não seria o conteúdo original. O Wordpress utiliza algo semelhante ao que te disse, tens a lista dos artigos e podes meter activar ou desactivar o artigo e desta forma ele aparece ou não nas paginas do blog.

I haven’t lost my mind; it’s backed up on DVD somewhere!

Link to comment
Share on other sites

OK. Mas neste caso, como na listagem não há hipótese de alterar conteúdos, apenas são listados e seria apenas de activar/desactivar o conteúdo através do botão/radio group.

Basicamente, estou a passar APENAS a mudança de estado, estou correcto?

De qualquer maneira, vou fazer alguns testes e esperar também que haja uma alma caridosa que venha em minha ajuda (a tua já foi genial, obrigado!), mas há sempre que contar com outros pontos de vista que possam porventura aparecer por aqui!

Abraço!

Link to comment
Share on other sites

quem vai usar esse backoffice provavelmente não irá entender que escolhendo uma ou outra opção, não "acontece nada" (claro que acontece, mas esta gente não percebe o funcionamento nem a lógica).

Já viste o backoffice do Joomla? Tens para cada artigo uma checkbox (publicar/não publicar) e na lista de artigos, no topo, uma checkbox que altera todas as outras. Deve ser isto que queres fazer e desta forma tens que usar AJAX para o efeito seja imediato ao clique do utilizador.

Por efeito imediato, entenda-se:

1. clique do utilizador;

2. chamada em AJAX onde se passa o código do artigo (ou mais parametros) á pagina .php

3. na página .php liga à Base de Dados e inverte o estado actual (no caso do campo ser BOOLEAN), algo como: estado = NOT estado

4. na página de .php, devolver à chamada AJAX o estado actual na Base de Dados

5. ao receber a informação no passo 4, alterar a checkbox de acordo com a informação recebida.

Espero que ajude 😉

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.