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

mapb_1990

sistema de templates

Recommended Posts

mapb_1990

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?


Serviços de WebDesignwww.miguelborges.com

Share this post


Link to post
Share on other sites
Battousai

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.

Share this post


Link to post
Share on other sites
cyclop

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...


"Quando eu for grande quero ser como o Celso"

Share this post


Link to post
Share on other sites
cyclop

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.


"Quando eu for grande quero ser como o Celso"

Share this post


Link to post
Share on other sites
Battousai

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.

Share this post


Link to post
Share on other sites
pedrotuga

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.

Share this post


Link to post
Share on other sites
Battousai

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

Share this post


Link to post
Share on other sites
pedrotuga

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.

Share this post


Link to post
Share on other sites
Battousai

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.

Share this post


Link to post
Share on other sites
pedrotuga

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.

Share this post


Link to post
Share on other sites
Battousai

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

Share this post


Link to post
Share on other sites
pedrotuga

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

Share this post


Link to post
Share on other sites
Battousai

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 :(

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.