Ferramentas de Utilizador

Ferramentas de Site


dev_web:php:forum_mobile_ui

jquery mobile forum interface

Este documento serve como especificação informal para um projecto de desenvolvimento de uma interface 'mobile' para fórums SMF.

O objectivo deste projecto é desenvolver uma interface para o SMF que seja mais adequada a clientes gadgets como são telemóveis, PDAs, etc. Na prática, uma interface deste tipo caracteriza-se grosseiramente por: * Look & feel semelhante à tradicional 'mobile app' * Possibilidade de manuseamento através de inputs específicos de gadgets: swipe, touch etc.

Tecnologias utilizadas: PHP e jquerymobile. Acesso à base de dados mysql através da api nativa do php neste caso, mas deve ser deixado em aberto a possibilidade de aceder a outro tipo de base de dados de forma arbitraria sem comprometer a compatibilidade com o resto do código.

Detalhes da implementação

Estrutura geral da aplicação

Deve ser implementada uma interface completamente nova para a mesma base de dados, que resida lado a lado da interface existente sem interferências de forma alguma entre ambas.

O código deve estar organizado segundo o padrão MVC. Dada a simplicidade da aplicação, os controladores pouco mais farão do que servir de intermediários entre as os modelos e as vistas. Não vai ser usada nenhuma framework do tipo rails porque não é preciso. A aplicação é simples e não tiraria partido de 90+% das funcionalidades oferecidas pelas frameworks MVC existentes. Render de templates simples e mapeamento de urls são fáceis de implementar com pouco esforço.

Mapeamento de urls

http://example.com/mobileui/ ←—indice do forum http://example.com/mobileui/forum/id/pagina ←—lista de tópicos de um forum, página é opcional http://example.com/mobileui/topic/id/pagina ←– vista de um tópico, página é opcional

Controlador

Evoca o parser de url, determina a vista e os dados a usar, justa os dois e envia o resultado para o utilizador.

Modelos

Por motivos de possível futura compatibilidade para com outras plataforams de fóruns, os modelos devem implementar todos uma interface comum que é usada pelo controlador. É objectivo deste projecto implementar apenas o modelo para o SMF/MySQL, outros modelos poderão facilmente ser implementados por quem desejar mantendo-se o restante código intocável. A interface deve ter os métodos:

' getBoardIndex() getForumTopics() getTopicMessages() '

Só serão utilizados IDs numéricos. Estes métodos devem suportar paginação sempre que faça sentido.

Vistas

As vistas devem ser fragmentadas de forma evitar repetições.

Como motor de templates, por motivos de simplicidade, usar apenas php. As únicas instruções permitidas são echo, foreach e if. Foreach deve ser usado preferencialmente apenas para repetir vistas mais pequenas, desta forma evitam-se blocos de código extensos dentro das vistas. A instrução If deve ser evitada sempre que possível, o O seu uso deve ser reservado a verificações de nullidade e pouco mais. Os dados devem já vir formatados o mais possível do controlador e do modelo. A inclusão de uma vista noutra vista deve ser feita a partir de uma função escrita para o efeito e não com um simples include. Isto tem como objectivo alojar algum código que seja necessário à gestão de vistas de forma a que não seja preciso poluir as vistas com esse código.

Os dados devem ser passados às vistas de forma estruturada dentro de um array associativo. Por exemplo a vista da lista de mensagens, deve conter as linhas correspondentes às várias mensagens dentro de um array numérico que por sua vez contem arrays associativos com os detalhes de cada mensagem.

Detalhes sobre a interface em jquerymobile

Inicialmente, de forma a prioritizar o encurtamento do ciclo de desenvolvimento, a interface deve ser o tão minimalista quanto necessário. Muitas funcionalidades serão deixadas para futura implementação: * autenticação * escolha de temas * um tema mais polido * subforums * informações adicionas de vários tipos: contagem de tópicos, detalhes sobre utilizadores, etc * pesquisa * outros ?

Não usar listas aninhadas. Usar uma página diferente para cada caso: uma para o indice do forum, uma para message list view, etc.

O índice do fórum deve ser uma coisa mais ou menos com este aspecto: http://jquerymobile.com/demos/1.0b1/docs/lists/lists-search-with-dividers.html Ou algo com cantos arredondados talvez: http://jquerymobile.com/demos/1.0b1/docs/lists/lists-count.html#/demos/1.0b1/

De notar que não está prevista uma estrutura de subforuns pelo menos para já. Pelo que inicialmente poderá ter que se atalhar um pouco. Por exemplo, os subforuns podem ter que ser mostrados a granel juntamente com os seus predecessores.

O índice de mensages pode ser uma lista simples. No entanto é desejável algum diferenciamento visual da lista de fóruns, para o utilizador não se confundir tão facilmente. Talvez algum destes tipo: http://jquerymobile.com/demos/1.0b1/docs/lists/lists-search-with-dividers.html#/demos/1.0b1/docs/lists/lists-thumbnails.html colocar o quê nas imagens? DISCUTIR esta e outras possibilidades.

Vista de um tópico: ainda não sei bem o que fazer aqui. sugestões.

dev_web/php/forum_mobile_ui.txt · Esta página foi modificada pela última vez em: 2018/05/14 21:37 (Edição externa)