Nova seção Downloads

Poste aqui suas sugestões e/ou críticas sobre o fórum, fale sobre a moderação e envie elogios.

Moderador: Moderadores

Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Nova seção Downloads

Mensagem por Pablo César »

Puxa ficou muito bom Toledo ! Pena que está um pouco escondido... deveria ter sido mais um item no menu principal (assim como qualquer outro item de fórum). Mas parabéns !!!

Imagem

Bom seria que nessa seção de Downloads aparecessem todos os arquivos em que os tópicos contenham anexos, dessa forma teríamos tipo um índice de arquivos para downloads. Sei que você está vendo essa questão, pois o PHPBB3 renomeia os arquivo anexos por questão de segurança e mantém uma tabela com os nomes originais.

Mas valeu ! Show de bola !
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Nova seção Downloads

Mensagem por Pablo César »

Toledo, mais uma sugestão. daria para colocar a flechinha de Downloads em cor vermelho caso haja novos posts ? Assim como é feito nos itens de fórum, assim saberemos se tem algo novo no pedaço...
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Re: Nova seção Downloads

Mensagem por lugab »

Aproveito, pra informar a Toledo - caso não tenha sido essa a sua intenção - que a seção "downloads" pode ser acessada mesmo por quem não está logado no fórum.

Gabriel
lugab
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Nova seção Downloads

Mensagem por Toledo »

Pablo César escreveu:daria para colocar a flechinha de Downloads em cor vermelho caso haja novos posts ?
Pablo, tentei ver como o phpBB3 faz isto e não consegui entender. No cadastro de cada membro do fórum encontrei três campos, chamados: user_lastvisit, user_lastmark e user_lastpost_time. Tudo indica que user_lastvisita é a data/hora da última visita, user_lastpost_time é a data/hora da última postagem e user_lastmark não sei pra que serve. E o pior, estes campos usam data/hora no formato Timestamp, então o conteúdo deles é algo como 1285724878... e não a data e hora normal.
Agora, como o fórum, usando estes campos, faz para saber se o membro já leu ou não um determinado tópico, ai complica. Veja abaixo uma das funções, que eu acho que o phpBB3 usa para saber se tem alguma seção com tópicos novos.

Código: Selecionar todos

/**
* Check for read forums and update topic tracking info accordingly
*
* @param int $forum_id the forum id to check
* @param int $forum_last_post_time the forums last post time
* @param int $f_mark_time the forums last mark time if user is registered and load_db_lastread enabled
* @param int $mark_time_forum false if the mark time needs to be obtained, else the last users forum mark time
*
* @return true if complete forum got marked read, else false.
*/
function update_forum_tracking_info($forum_id, $forum_last_post_time, $f_mark_time = false, $mark_time_forum = false)
{
    global $db, $tracking_topics, $user, $config;

    // Determine the users last forum mark time if not given.
    if ($mark_time_forum === false)
    {
        if ($config['load_db_lastread'] && $user->data['is_registered'])
        {
            $mark_time_forum = (!empty($f_mark_time)) ? $f_mark_time : $user->data['user_lastmark'];
        }
        else if ($config['load_anon_lastread'] || $user->data['is_registered'])
        {
            $tracking_topics = (isset($_COOKIE[$config['cookie_name'] . '_track'])) ? ((STRIP) ? stripslashes($_COOKIE[$config['cookie_name'] . '_track']) : $_COOKIE[$config['cookie_name'] . '_track']) : '';
            $tracking_topics = ($tracking_topics) ? tracking_unserialize($tracking_topics) : array();

            if (!$user->data['is_registered'])
            {
                $user->data['user_lastmark'] = (isset($tracking_topics['l'])) ? (int) (base_convert($tracking_topics['l'], 36, 10) + $config['board_startdate']) : 0;
            }

            $mark_time_forum = (isset($tracking_topics['f'][$forum_id])) ? (int) (base_convert($tracking_topics['f'][$forum_id], 36, 10) + $config['board_startdate']) : $user->data['user_lastmark'];
        }
    }

    // Check the forum for any left unread topics.
    // If there are none, we mark the forum as read.
    if ($config['load_db_lastread'] && $user->data['is_registered'])
    {
        if ($mark_time_forum >= $forum_last_post_time)
        {
            // We do not need to mark read, this happened before. Therefore setting this to true
            $row = true;
        }
        else
        {
            $sql = 'SELECT t.forum_id FROM ' . TOPICS_TABLE . ' t
                LEFT JOIN ' . TOPICS_TRACK_TABLE . ' tt ON (tt.topic_id = t.topic_id AND tt.user_id = ' . $user->data['user_id'] . ')
                WHERE t.forum_id = ' . $forum_id . '
                    AND t.topic_last_post_time > ' . $mark_time_forum . '
                    AND t.topic_moved_id = 0
                    AND (tt.topic_id IS NULL OR tt.mark_time < t.topic_last_post_time)
                GROUP BY t.forum_id';
            $result = $db->sql_query_limit($sql, 1);
            $row = $db->sql_fetchrow($result);
            $db->sql_freeresult($result);
        }
    }
    else if ($config['load_anon_lastread'] || $user->data['is_registered'])
    {
        // Get information from cookie
        $row = false;

        if (!isset($tracking_topics['tf'][$forum_id]))
        {
            // We do not need to mark read, this happened before. Therefore setting this to true
            $row = true;
        }
        else
        {
            $sql = 'SELECT topic_id
                FROM ' . TOPICS_TABLE . '
                WHERE forum_id = ' . $forum_id . '
                    AND topic_last_post_time > ' . $mark_time_forum . '
                    AND topic_moved_id = 0';
            $result = $db->sql_query($sql);

            $check_forum = $tracking_topics['tf'][$forum_id];
            $unread = false;

            while ($row = $db->sql_fetchrow($result))
            {
                if (!isset($check_forum[base_convert($row['topic_id'], 10, 36)]))
                {
                    $unread = true;
                    break;
                }
            }
            $db->sql_freeresult($result);

            $row = $unread;
        }
    }
    else
    {
        $row = true;
    }

    if (!$row)
    {
        markread('topics', $forum_id);
        return true;
    }

    return false;
}
Pensei também que poderia estar alguma coisa gravada em Cookies, mas já aconteceu comigo de ter que excluir os Cookies e quando faço novamente o login no fórum, continua marcado apenas os fóruns que tenham algum tópico que eu não lí.

O script do phpBB3 é muito complicado... muitas vezes me perco no código dele.
lugab escreveu:que a seção "downloads" pode ser acessada mesmo por quem não está logado no fórum.
Gabriel, esta foi a minha intenção mesmo, mas só podem enviar arquivos para esta seção de downloads os membros que estão logados.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Re: Nova seção Downloads

Mensagem por Pablo César »

Toledo, eu estive pesquisando e encontrei:

- Para ver aquelas mensagens que eu não havia visto. É feito através do banco de dados mesmo. O único porém é que a tabela responsável por isso é a phpbb_topics_track.

A phpbb_topics_watch serve para gerenciar os tópicos acompanhados.

- user_lastmark: define o tempo do usuário marcou todos os fóruns como lido. Pode-se assumir como todos lidos
- forums_track: mantém o ultimo tempo marcado para especifico tópico. Pode-se assumir como forum lido.
- topics_track: mantém o ultimo tempo marcado num específico tópico - Podemos assumir como todos, tempo do tópico é lido.

Pelo que cheguei a entender funciona mantendo o ultimo tópico lido, é um número. Os tópico novos tem a numeração maior, daí deduz-se que os tópico com maior numeração não foram lido. Acho que é justamente o user_latmark onde guarda essa informação.

Sobre Timestamp: é a hora usada universalmente ou seja o tempo medido em segundos desde a era Unix ( 1 de Janeiro de 1970 ) para retornar um valor em timestamp basta:

Código: Selecionar todos

    <?php
    $timestamp = time();
    ?>
A nova variável $timestamp agora armazenou o tempo atual em segundos. Para retornar esse tempo em segundos para mês dia ano hora minuto e segundo é muito complicado

Código: Selecionar todos

    <?php
    $timestamp = time();
    print date("d/m/Y - H:i",$timestamp);
    ?>
d representa o dia com leading ( 0 à 31 ) depedendo do mês
m mês com leading ( 1 à 12 )
Y ano com quatro digitos ( 2005 )
H hora com formato 24hs 0 à 23 hs
i minutos com leading ( 0 à 59 )
O resultado dará algo assim: 15/10/2005 - 09:17

Teste no seu servidor, e veja o resultado !

Artigos consultados:
http://www.phpbbrasil.com.br/phpBB/view ... 04#p196273
http://www.phpbb.com/community/viewtopi ... 5#p2987015
http://br.php.net/function.date
http://br.php.net/function.time
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Nova seção Downloads

Mensagem por Toledo »

O complicado é que esta seção de Download não é uma seção com tópicos como as demais seções, ela é um MOD (Modificação), então tem uma estrutura de arquivo completamente diferente.
Vou ver o que dá para fazer!

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Nova seção Downloads

Mensagem por Pablo César »

O complicado é que esta seção de Download não é uma seção com tópicos como as demais seções
Ahhh mas agora ficou melhor a seção Downloads como mais uma seção de fórum. Está mais visível e acredito que você vai ter melhor aproveitamento na questão gerencial e daí viabilizar o caso dos itens não lidos. Parabéns Toledo, melhor assim.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Nova seção Downloads

Mensagem por Pablo César »

Caro Sr. Toledo, desculpe em eu reiterar este meu pedido. Mas eu gostaria tanto poder perguntar ao autor ou até mesmo fazer uma crítica construtiva sobre o aplicativo postado. Por exemplo, nesse instalador que o Leonardo acabou de postar, no qual eu apontei uma possível correção/implementação daquele mesmo aplicativo. Daí então pensei... seria tão bom poder contar com algo assim (exemplificação abaixo):

1. Na seção de "Downloads" de cada item postado. Incluir mais um item, em modo de link: "Tópico relacionado" no "DETALHES DO ARQUIVO". E ao clicar este possa acessar ao tópico caso ja tenha sido criado ou "Relacionar tópico" quando este ainda não possua.
2. Esse item deveria estar disponível para moderadores/administradores no "Painel de Controle do Moderador" e para o autor em "Enviar arquivo" fazer mais uma opção logo abaixo onde tem os campos de prenchimento obrigatórios ("Categoria" e "Selecionar arquivo...") também disponibilizar nesta tela logo abaixo de "Link de download" em forma de "edição" para inserir o link do tópico relacionado.

Tendo isto, fica bom para comentar ou até mesmo fazer maiores esclarecimento sobre o produto disponibilizado. Seria genial !
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Nova seção Downloads

Mensagem por Toledo »

Amigo Pablo, no início da seção Download existia uma opção para fazer comentários sobre o arquivo postado, mas na época eu coloquei em discussão na seção dos Moderadores (https://pctoledo.org/forum/viewto ... 14&t=11212) qual seria o melhor formato para esta nova seção, e achamos melhor retirar esta opção para não transformar um simples link de download em uma thread com discussões.

Bom, entre criar um link para um tópico relacionado ou permitir comentários nos arquivos postados na seção download, acho que seria melhor permitir comentários.

O que vocês acham?

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Nova seção Downloads

Mensagem por Maligno »

Se houver possibilidade de incluir replies, com certeza vai virar thread. Aí vai bagunçar. Na minha opinião fica do jeito que está. Ou, no máximo, pode-se incluir um link para um tópico relacionado, nas observações do autor do download. Mas veja que não fará tanta diferença porque, de qualquer maneira, aquele que tiver dúvida sobre o arquivo em download será o usuário comum, que não vai poder incluir esse link. Ele vai acabar tendo que abrir um tópico em algum outro lugar.

Mais: é preciso também pensar no aproveitamente da alteração. A cada 100 downloads à disposição em quantos casos algum usuário sentirá necessidade de comentar algo? Um ou dois? Não compensa nem o esforço de alterar o que está feito. E isso é fácil de resolver com um simples post na seção relacionada. Ou, dependendo da dúvida, uma MP ao autor do download.

Realmente não vejo um bom motivo pra mexer nisso.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Nova seção Downloads

Mensagem por Pablo César »

Tem toda razão Maligno. Se for pensar no trabalho que vai dar... eu apenas quis aperfeiçoar o módulo de Downloads.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Responder