Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vinícius Siller

Ordenar includes

Recommended Posts

Estou criando uma página dinâmica de conteúdo.

Imagine que nesta página entrará conteúdos diversos como: história, a empresa, visão, missão, etc...

O design da página será em duas colunas, na esquerda o conteúdo da página e na direita virão alguns módulos definidos por include.

Assim:

<%if mod_noticias = "1" then%>
<!--#include file="mod_noticias.asp"-->
<%end if%>
<%if mod_galeria = "1" then%>
<!--#include file="mod_galeria.asp"-->
<%end if%>
<%if mod_agenda = "1" then%>
<!--#include file="mod_agenda.asp"-->
<%end if%>
<%if mod_texto = "1" then%>
<!--#include file="mod_texto.asp"-->
<%end if%>
Perceba que na hora de cadastrar no banco eu defino apenas se irá ou não aparecer determinado módulo.

Existe alguma maneira para eu ordenar estes módulos dinâmicamente? Ou seja:

Na página X a ordem é: galeria | noticias | agenda | texto

Na página Y a ordem é: noticias | texto | galeria | agenda

 

Vocês podem me dar uma idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja passei por isso tb... e nao resolvi

 

o include nao pode ser jogado em variavel nem ser dinamico e isso resolveria o problema da chamada em ordem

 

 

 

 

você pode usar server.Execute("pg.asp")

 

so depende do conteudo do include

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar o Server.Execute,o Server.Execute cria pequenas sub-rotinas. Ele se torna melhor que o #Include para essa tarefa pois permite que a rotina seja chamada apenas quando necessario, enquanto que o #include ocorrerá sempre.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar o Server.Execute,o Server.Execute cria pequenas sub-rotinas. Ele se torna melhor que o #Include para essa tarefa pois permite que a rotina seja chamada apenas quando necessario, enquanto que o #include ocorrerá sempre.

 

 

Obrigado pelas respostas pessoal!

xanburzum, como eu faço para ordenar dinâmicamente esses Server.Execute()? É possível?

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma pesquisada no forum k existem alguns exemplos...

kker coisa posta ae...

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça com CSS e HTML, salve as configurações e exiba de acordo com a folha de estilo escolhida. Mesma lógica de templates

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema do Server.Execute é que você não tem acesso as variáveis utilizadas no arquivo executado.

 

Segue abaixo uma forma de executar arquivos.asp de forma ordenada:

<%
Function include(arquivo)
    Dim fso, f, ReadAllTextFile
    
    Const ForReading = 1, ForWriting = 2
    
    Set fso = Server.CreateObject("Scripting.FileSystemObject")
    Set f = fso.OpenTextFile(Server.MapPath(arquivo), ForReading)
    ReadAllTextFile = f.ReadAll

    If (len(ReadAllTextFile) > 0) Then
	ReadAllTextFile = replace(ReadAllTextFile,"<" & chr(37),"")
	ReadAllTextFile = replace(ReadAllTextFile,chr(37) & ">","")
    End If
    
    Execute(ReadAllTextFile)
End Function

If (mod_noticias = "1") Then
	include("mod_noticias.asp")
End If
If (mod_galeria = "1") Then
	include("mod_galeria.asp")
End If
If (mod_agenda = "1") Then
	include("mod_agenda.asp")
End If
If (mod_texto = "1") Then
	include("mod_texto.asp")
End If

'Ou

If (mod_galeria = "1") Then
	include("mod_galeria.asp")
End If
If (mod_noticias = "1") Then
	include("mod_noticias.asp")
End If
If (mod_texto = "1") Then
	include("mod_texto.asp")
End If
If (mod_agenda = "1") Then
	include("mod_agenda.asp")
End If
%>
* Todos os arquivos a serem carregados não devem possuir as tags HTML soltas. Utileze Response.Write para escrever o HTML.

 

Posta o resultado, pois criei agora, fiz alguns testes e deu certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente vocês estão colocando uns exemplos muito legais, coisas que eu nem sabia.

Na realidade eu preciso de uma solução que possa ordenar os módulos dessa forma:

 

É uma página única, conteudo.asp que exibe dinamicamente os seguintes conteudos:

 

Página "A empresa":

Na coluna esquerda vem o conteúdo,textos e etc.

Na coluna direita são carregados os seguintes includes(modulos) nesta ordem: galeria, notícias, agenda e texto.

 

 

Página "Missão":

Na coluna esquerda vem o conteúdo,textos e etc.

Na coluna direita são carregados os seguintes includes(modulos) nesta ordem: texto, agenda, galeria e notícias.

 

 

Isso é possível?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilizando INCLUDE você pode fazer vários IF's.

 

Exemplo:

<%
If pagina = "Missão" then
%>
<!--#include file="mod_texto.asp"-->
<!--#include file="mod_agenda.asp"-->
<!--#include file="mod_galeria.asp"-->
<!--#include file="mod_noticias.asp"-->

<%
ElseIf pagina = "A Empresa" Then
%>
<!--#include file="mod_texto.asp"-->
<!--#include file="mod_galeria.asp"-->
<!--#include file="mod_agenda.asp"-->
<!--#include file="mod_noticias.asp"-->
<%
End If
%>
O problema de fazer assim é que todos os includes são executados mesmo que não entre no If.

 

Da forma que citei, só vai carregar o necessário.

 

<%
If pagina = "Missão" then

include("mod_texto.asp")
include("mod_agenda.asp")
include("mod_galeria.asp")
include("mod_noticias.asp")

ElseIf pagina = "A Empresa" Then

include("mod_texto.asp")
include("mod_galeria.asp")
include("mod_agenda.asp")
include("mod_noticias.asp")

End If
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

É uma boa solução a sua hargon, mas seria interessante o usuário via painel de controle poder definir quais e em que ordem os módulos apareceriam na página. Mas pensando bem eu teria que criar uma tabela modulo no banco de dados e fazer uma ordenação.

Então vou fazer o seguinte:

Se o id_pag = par exibe tal ordem Se for ímpar exibe outra ordem pra dar uma variada e as páginas não ficarem iguaizinhas.

 

Valeu pela atenção gente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilizando a função que criei, acredito que você consiga fazer via painel a ordenação, já com #include, isso não será possível (aí você pode usar a sua sugestão).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais é realmente necessário montar o sistema desta forma? eu acho desnecessário, isto por que poderá acabar até comprometendo o entendimento do mesmo, acho eu que desta forma não fica organizado.

 

Mais, para cada caso a uma solução e se nesta esta é a melhor, paciência rsrsrsrsrs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não fica desorganizado, Patrique, pois como esta página receberá diversos tipos de conteúdo, cada módulo pode ser mais relevante para determinado tipo de conteúdo e com isso seria interessante ter essa possibilidade de ordenação.

 

De todo modo, agradeço a participação e opinião de todos.

Vocês são show! Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.