Jump to content


Photo

Divisão Por Categorias


  • Faça o login para participar
10 replies to this topic

#1 Microbyte

Microbyte

    12 Horas

  • Usuários
  • 204 posts
  • Sexo:Não informado

Posted 14/11/2007, 07:04

Muito bom dia, amigos.
Preciso mais uma vez da vossa ajuda.

Tenho uma secção de tutoriais no meu site, que vai buscar os tópicos a um determinado fórum. Até aí não houve problemas.
Consigo imprimir uma página com o nome dos tópicos todos, cada um com link para uma página que mostra todo o conteúdo do Post.

O que quero fazer é referente à 1ª página.
Imaginem que tenho esses tutoriais:

[Hardware] Overclock a placa gráfica
[Internet] Fazer downloads de vídeos do YouTube
[Internet] Maior rapidez no Mozilla FireFox
[code=auto:0] Criar RSS Feeds com o PHP
[code=auto:0] Enviar um E-mail
[code=auto:0] Ligar a um Servidor MySQL
[code=auto:0] Redireccionar Utilizadores
[Windows] Alterar a frase "Bem-Vindo" do XP
[Windows] Esconder pasta no Ambiente de Trabalho


O que quero é que apareçam por categorias, consoante a Definição que se encontra entre parênteses recto ("[def]").
Queria que os tutoriais de PHP estivessem todos na mesma categoria, assim como os de Windows. Assim, mais ou menos:

Hardware
Overclock a placa gráfica

Internet
Fazer downloads de vídeos do YouTube
Maior rapidez no Mozilla FireFox

PHP
Criar RSS Feeds com o PHP
Enviar um E-mail
Ligar a um Servidor MySQL
Redireccionar Utilizadores

Windows
Alterar a frase "Bem-Vindo" do XP
Esconder pasta no Ambiente de Trabalho


Penso que isso pode ser feito com arrays, mas não tenho a mínima ideia como.
Preciso mesmo da vossa ajuda.

Não é urgente, mas é importante.
Grato,
microbyte

#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 14/11/2007, 07:14

Imagino que estes dados você esteja puxando de tabelas do banco de dados, certo?

Uma vez você tendo esta divisão, uma tabela de categorias e outra com os tutoriais, cada um sua referência para a categoria, basta você fazer um laço para as categorias e dentro deste, outro laço para os tutoriais referenciados às categorias correspondentes.

Deu pra ter uma noção?

Flws...
(ok2) Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#3 Microbyte

Microbyte

    12 Horas

  • Usuários
  • 204 posts
  • Sexo:Não informado

Posted 14/11/2007, 07:19

Imagino que estes dados você esteja puxando de tabelas do banco de dados, certo?

Uma vez você tendo esta divisão, uma tabela de categorias e outra com os tutoriais, cada um sua referência para a categoria, basta você fazer um laço para as categorias e dentro deste, outro laço para os tutoriais referenciados às categorias correspondentes.

Deu pra ter uma noção?

Flws...
(ok2)


Errr... Sim, deu para ter uma noção. O problema é que a tabela de onde está a puxar os tutoriais pertence ao fórum.
O código que criei vai buscar toda a informação ao fórum (phpBB). Quando crio um novo tutorial ponho assim:
Assunto: [code=auto:0] Novo tutorial
Mensagem: Aqui posso usar até BBCode, smilies...

Depois a página que mostra o tutorial, formata o BBCode, os smilies, etc...

O que eu queria era que um código PHP dividisse automaticamente os tópicos por secções, consoante o que estivesse dentro de [].
Será que é possível aquilo que pretendo?

#4 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 14/11/2007, 07:25

Certo, então me responda só uma coisa que a partir disto fique fácil explicar como fazer.

Aquele primeiro "quote" que você postou é uma string só? :ponder:

Porque poderemos usar expressões regulares para separá-las e colocar em arrays bidimensionais que facilitará esta divisão.

Flws...
(y) Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#5 Microbyte

Microbyte

    12 Horas

  • Usuários
  • 204 posts
  • Sexo:Não informado

Posted 14/11/2007, 07:35

Não.
O primeiro quote é o conjunto de tutoriais.

Veja aqui: http://www.ptfs.info/index.php?a=tutos

Isso já é o final do código. Imprime os tutoriais e faz link para o tutorial completo.

SQL Query:
SELECT * FROM phpbb_posts LEFT JOIN phpbb_users  ON phpbb_posts.poster_id = phpbb_users.user_id LEFT JOIN phpbb_posts_text  ON phpbb_posts.post_id = phpbb_posts_text.post_id WHERE phpbb_posts.forum_id = 18 ORDER BY phpbb_posts_text.post_subject ASC

Código que faz o loop:
<?php do { ?>
					<div style="padding-bottom: 5px;"><b><a href="?a=tuto&amp;id=<?php echo $row_rs_tutos['post_id']; ?>"><?php echo $row_rs_tutos['post_subject']; ?></a></b> - by <?php echo $row_rs_tutos['username']; ?></div>
  <?php } while ($row_rs_tutos = mysql_fetch_assoc($rs_tutos)); ?>

Edição feita por: Microbyte, 14/11/2007, 07:37.


#6 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 14/11/2007, 08:10

Neste caso preciso então saber a estrutura do banco de dados do PHPbb que pegaríamos as três tabelas (categoria, tópicos, usuários) para fazer esta divisão. :ponder:

Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#7 Microbyte

Microbyte

    12 Horas

  • Usuários
  • 204 posts
  • Sexo:Não informado

Posted 14/11/2007, 08:16

Então não é possível dividir com arrays?

#8 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 14/11/2007, 08:52

É sim, mas se você puxa do banco de dados, pra que montar toda uma estrutura de arrays novamente? :huh:

Seria algo como "reinventar a roda".

BTW, eu te daria a seguinte sugestão para dois arrays, um de categorias e outro de artigos:

Array(	[0] => PHP	[1] => Hardware	[2] => Internet	[3] => Windows)Array(	[0] => Array		(			[categoria] => 0			[titulo] => Enviar um E-mail			[autor] => Fulano		)	[1] => Array		(			[categoria] => 0			[titulo] => Enviar um E-mail			[autor] => Fulano		)	[2] => Array		(			[categoria] => 1			[titulo] => Overclock a placa gráfica			[autor] => Fulano		)	[3] => Array		(			[categoria] => 2			[titulo] => Fazer downloads de vídeos do YouTube			[autor] => Fulano		)	[4] => Array		(			[categoria] => 3			[titulo] => Esconder pasta no Ambiente de Trabalho			[autor] => Fulano		))

<?php$arr_categorias = array("PHP", "Hardware", "Internet", "Windows");$arr_artigos = array(						array(								"categoria" => 0,								"titulo" => "Enviar um E-mail",								"autor" => "Fulano"),						array(								"categoria" => 0,								"titulo" => "Enviar um E-mail",								"autor" => "Fulano"),						array(								"categoria" => 1,								"titulo" => "Overclock a placa gráfica",								"autor" => "Fulano"),						array(								"categoria" => 2,								"titulo" => "Fazer downloads de vídeos do YouTube",								"autor" => "Fulano"),						array(								"categoria" => 3,								"titulo" => "Esconder pasta no Ambiente de Trabalho",								"autor" => "Fulano")					);foreach( $arr_categorias as $chave => $categoria ){	echo "<strong>" . $categoria . "</strong><br />";		foreach( $arr_artigos as $artigos )	{		if( $artigos["categoria"] == $chave )		{			echo $artigos["titulo"] . "<br />";		}	}		echo "<br />";}?>

Flws...
;)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#9 Microbyte

Microbyte

    12 Horas

  • Usuários
  • 204 posts
  • Sexo:Não informado

Posted 14/11/2007, 11:22

Obrigado pelo código...
Muito bom trabalho. Vai ser útil.

Agora, alguma forma do PHP adicionar categorias automaticamente?

Imagine que eu agora crio o tutorial
[Software] Como criar uma aplicação

O código deixaria de trabalhar. Teria de voltar a editar o código e fazer upload para o servidor.

#10 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 14/11/2007, 11:29

Eu realmente não estou entendendo. :wacko:

Imaginei que com tudo já no banco de dados você faria uma rotina para montar estes array, o que seria óbvio.

Flws...
:huh: Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#11 Microbyte

Microbyte

    12 Horas

  • Usuários
  • 204 posts
  • Sexo:Não informado

Posted 14/11/2007, 11:41

A ideia é ir adicionando tutoriais.
Podem vir a existir mais categorias...




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq