• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

mapb_1990

sistema de templates

13 mensagens neste tópico

boas. queria fazer os meus sites, daqui para a frente com um sistema de templates.

ja andei à procura na net, inclusive, os 3 que se encontram aqui no forum.

mas é k eu estava à procura de um = ao do phpBB3. que desse para fazer include e if's no html

<!-- INCLUDE overall_header.html -->


<p class="{S_CONTENT_FLOW_END}<!-- IF S_USER_LOGGED_IN --> rightside<!-- ENDIF -->"><!-- IF S_USER_LOGGED_IN -->{LAST_VISIT_DATE}<!-- ELSE -->{CURRENT_TIME}<!-- ENDIF --></p>
<!-- IF U_MCP --><p>{CURRENT_TIME} <br />[ <a href="{U_MCP}">{L_MCP}</a> ]</p><!-- ELSEIF S_USER_LOGGED_IN --><p>{CURRENT_TIME}</p><!-- ENDIF -->

<!-- INCLUDE chat_body.html -->

<!-- IF S_DISPLAY_SEARCH or (S_USER_LOGGED_IN and not S_IS_BOT) -->
<ul class="linklist">
<!-- IF S_DISPLAY_SEARCH -->
	<li><a href="{U_SEARCH_UNANSWERED}">{L_SEARCH_UNANSWERED}</a><!-- IF S_USER_LOGGED_IN --> • <a href="{U_SEARCH_NEW}">{L_SEARCH_NEW}</a><!-- ENDIF --> • <a href="{U_SEARCH_ACTIVE_TOPICS}">{L_SEARCH_ACTIVE_TOPICS}</a></li>
<!-- ENDIF -->
<!-- IF not S_IS_BOT and U_MARK_FORUMS --><li class="rightside"><a href="{U_MARK_FORUMS}" accesskey="m">{L_MARK_FORUMS_READ}</a></li><!-- ENDIF -->
</ul>
<!-- ENDIF -->


<!-- INCLUDE forumlist_body.html -->

<!-- IF S_CALENDAR_WEEK -->
<!-- INCLUDE calendar_week_on_index.html -->
<!-- ELSEIF S_CALENDAR_NEXT_EVENTS -->
<!-- INCLUDE calendar_next_events_on_index.html -->
<!-- ENDIF -->

<!-- IF not S_USER_LOGGED_IN and not S_IS_BOT -->
<form method="post" action="{S_LOGIN_ACTION}" class="headerspace">
<h3><a href="{U_LOGIN_LOGOUT}">{L_LOGIN_LOGOUT}</a><!-- IF S_REGISTER_ENABLED -->  •  <a href="{U_REGISTER}">{L_REGISTER}</a><!-- ENDIF --></h3>
	<fieldset class="quick-login">
		<label for="username">{L_USERNAME}:</label> <input type="text" name="username" id="username" size="10" class="inputbox" title="{L_USERNAME}" />  
		<label for="password">{L_PASSWORD}:</label> <input type="password" name="password" id="password" size="10" class="inputbox" title="{L_PASSWORD}" />
		<!-- IF S_AUTOLOGIN_ENABLED -->
			| <label for="autologin">{L_LOG_ME_IN} <input type="checkbox" name="autologin" id="autologin" /></label>
		<!-- ENDIF -->
		<input type="submit" name="login" value="{L_LOGIN}" class="button2" />
	</fieldset>
</form>
<!-- ENDIF -->

<!-- INCLU DE chat_body.html -->

<h3>{L_HAVING_A_PROBLEM}</h3>
<p>{U_ADMIN_CONTACT}</p>


<!-- IF S_DISPLAY_ONLINE_LIST -->
<h3>{L_WHO_WAS_HERE}</h3>
<p><!-- IF WHO_WAS_HERE_LIST2 -->{WHO_WAS_HERE_LIST2} ({WHO_WAS_HERE_EXP})<br />{WHO_WAS_HERE_RECORD}<br />{WHO_WAS_HERE_LIST}<!-- ELSE -->{L_WWH_UPDATE_NEED}<!-- ENDIF --></p>


<!-- IF U_VIEWONLINE --><h3><a class="titulo" href="{U_VIEWONLINE}">{L_WHO_IS_ONLINE}</a></h3><!-- ELSE --><h3>{L_WHO_IS_ONLINE}</h3><!-- ENDIF -->
<p>{TOTAL_USERS_ONLINE} ({L_ONLINE_EXPLAIN})<br />{RECORD_USERS}<br /> <br />{LOGGED_IN_USER_LIST}
<!-- IF LEGEND --><br /><em>{L_LEGEND}: {LEGEND}</em><!-- ENDIF --></p>
<!-- ENDIF -->

<!-- IF S_DISPLAY_BIRTHDAY_LIST and BIRTHDAY_LIST -->
<h3>{L_BIRTHDAYS}</h3>
<p><!-- IF BIRTHDAY_LIST -->{L_CONGRATULATIONS}: <strong>{BIRTHDAY_LIST}</strong><!-- ELSE -->{L_NO_BIRTHDAYS}<!-- ENDIF --></p>
<!-- ENDIF -->

<!-- IF NEWEST_USER -->
<h3>{U_STATISTICS}</h3>
<p>{TOTAL_POSTS}<!-- IF TOTAL_IMAGES --> • {TOTAL_IMAGES}<!-- ENDIF --> • {TOTAL_TOPICS} • {TOTAL_USERS} • {NEWEST_USER}<br />{MILESTONE_MESSAGE} {MILESTONE_HISTORY} {MILESTONE_INFO}</p>
<!-- ENDIF -->

<h3>{L_TPOTM}</h3>
<p>{L_TOPM_UNA_L}{TOPM_UN}{L_TOPM_UPO_L}{L_TOPM_POSTS_L}</p>

<!-- INCLUDE overall_footer.html -->

sei que o smarty da para fazer isso, mas queria evita-lo usa-lo

alguem aconselha um?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu abomino esse tipo de sistemas de criar uma pseudo-linguagem em html. Sinceramente não vejo qual a vantagem disso. Eu quase nunca usei frameworks, mas do que usei preferi o CodeIgniter.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim é bom "criar uma pseudo.linguagem em html" a vantagem é preencher uma lacuna que existe no php essa lacuna chama-se "organização" é bom ter um "Code Behind" para tratar os dados e ter uma parte unicamente para mostrar os resultados, com isso tens uma maior facilidade na programação pois sabes que de um lado é para programar e do outro é para mostrar.

Quanto a sistemas de templates.... sinceramente, acho que devias de pesquisar na net pelo que melhor se adapta as tuas necessidades...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

NOTA: Antes que me atirem pedras, cada um trabalha da maneira que acha melhor, eu dei a minha opinião, e vale o que vale.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, tudo bem que separação é melhor, mas essa maneira não é a mais eficiente a meu ver. Eu vejo isso um modo de atrapalhar mais o trabalho. Esses ifs e que tal dessa pseudo linguagem podem muito bem ser substituidos por php, sem teres que interpretar a pseudo-linguagem com php, tal como o code igniter te permite fazer, mantendo mesmo assim o esquema MVC (mais ou menos).

Mas pronto, há várias maneiras de ver a coisa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

cyclop, ao estares a introduzir lógica programática nos templates estás a sacrificar precisamente a separação de que falas. Os templates quanto a mim devem conter APENAS o que seja relacionado com a apresentação. Por esse motivo, colocar estruturas condicionais e ciclos vai contra o conceito de template, e acaba por deitar o padrão MVC para o lixo já que a aplicação passa a situar-se não apenas no controlador mas tambem nas vistas.

Pessolamente, prefiro sistemas de templates que façam apenas substituição de placeholders. Se quiserem mexer no design de um elemento que está dentro de um loop, então há uma boa solução. Ponham essa parte da página noutro template, incluam o loop no vosso controlador, e injectem esse template, no template inicial. (a explicação acho que foi confusa)

Mas ok, queres templates com  loops e afins... acho que o melor é simplesmente usares php. Assim, tudo o que tens que fazer é um include dos teus templates, assim que os quiserse mostrar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas isso implicaria meter o html do loop para uma variável php, ou estou a perceber-te mal?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estás a perceber-me bem. Mas porquê esse "mas", qual é o problema?

EDIT: ah ok... já estoua ver onde está a tua confusão. Sim, esse html terá que ir para dentro de uma variável, mas ficará guardado em primeiro lugar num template.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, se é por aí, prefiro fazer assim:

<?php foreach($todo_list as $item):?>

<li><?php echo $item;?></li>

<?php endforeach;?>

Isto depois de ter passado pelo controller, os dados já estão todos tratados.

A diferença é mínima, mas a meu ver é mais clean.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso costuma ser mais prático, só que acabaste de meter logica aplicacional na teu template. Se deres isso para as mãos de um designer ele é bem gajo para comprometer o funcionamento da aplicação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso já depende do modo de trabalho. Onde trabalho nenhum designer mexe em html, quanto mais templates :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então para que servem os templates? Se for para os programadores mexerem então não eram precisos templates para nada :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqueles que programam html+css+php... dá jeito, fica tudo menos confuso e organizado. Ainda para mais se for em equipa. Talvez não seja preciso um sistema tão elaborado como é o MVC, mas há que organizar as coisas :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora