как убрать пробелы в скомпиленом шаблоне

  • Автор темы Richard
  • Дата начала

Richard

Guest
как убрать пробелы в скомпиленом шаблоне

сабж?

если глянуть на хтмл код странички, то лишние переходы строк появляются. поглядел в шаблон_кэше, понятно откуда. как-нить бы почистить. можно, чтоб он без переносов и пробелов компилил?

да, забыл написать, что речь идет о смарти
 

alexhemp

Новичок
Richard
В кэше шаблонов лежат PHP скрипты. Смотри сам шаблон - там лишние переводы строк. Мешать они могут в таблицах и преформатированном тексте.

Используй ф-цию {strip} {/strip} В ШАБЛОНЕ. Кэш тут не при чем вообще.
 

Demiurg

Guest
alexhemp
ты не путаешь кеш с компилированными шаблонами ?
 

Richard

Guest
Originally posted by Demiurg
alexhemp
ты не путаешь кеш с компилированными шаблонами ?
ну путаю. ) точнее считаю что в templates_c лежат скомпиленные шаблоны.
 

Demiurg

Guest
Richard
я разве тебя спрашивал ?
тебе Тони задал вопрос, ответь на него, пожалуйста.
 

Richard

Guest
Originally posted by Demiurg
Richard
я разве тебя спрашивал ?
тебе Тони задал вопрос, ответь на него, пожалуйста.
аааа.... )) прошу прощения. сглючил.)

мешают ли? считаю что нафиг не надо этого. я думал, что если снабжу шаблон вложенностью, наглядностью и коментариями, то это не повлияет на результат. кстати вот то что сейчас написал наверное какраз так и есть(т.е. почти не повлияет).

если конкретно, то стоит в цикле поставить условие (речь по прежнему о смарти). например вывожу меню, а текущий выбранный пункт хочу без ссылки(href). вот вставлю if, else, потом вижу что у меня между строками меню(таблицы) целая строка(в хтмл тексте).
вобщем довольно аккуратно смарти шаблоны компилирует, не побоюсь сказать - сохраняет читабельность.

я бы мож убрал это и в скриптах смарти, но думал как-то одним взмахом руки можно( переносимость сохранить).
 

Demiurg

Guest
Richard
а теперь давай так что бы всем было понятно. Основной упор на "чем?", остальное потом выясним.
 

Richard

Guest
Originally posted by Demiurg
Richard
а теперь давай так что бы всем было понятно. Основной упор на "чем?", остальное потом выясним.
ок. сори, что много. зато понятно о чем.

шаблон.tpl
=============================
<table cellspacing=0 border=0 width=100%>
<tr><td><img src="s.gif" alt="" width=20 height=1></td></tr>
<tr><td style="background:#c6e7ad" class=cb_10_373F41 height=30>
<img src="s.gif" alt="" width=20 height=1> по городам</td></tr>
<tr><td style="background:#e9fad8"><img src="s.gif" alt="" width=1 height=4></td></tr>
<tr><td style="background:#e9fad8">
<table cellpadding=1 cellspacing=1 class=c_8p_black>

{* выводим список городов. цикл по массиву $rub_items у каждого элемента есть поля ( title,id,count,href) *}
{foreach from = $city_items item = it}
{if $it.id == $city }
<tr><td><li><b>{$it.title}({$it.count})</b></td></tr>
{else} {* иначе - нужно ссылку *}
<tr><td><li><a href={$it.href}>{$it.title}({$it.count})</a></td></tr>
{/if}
{/foreach}
{* конец списка городов *}

шаблон_кэшированный.tpl
============================
<?php /* Smarty version 2.6.6, created on 2005-02-03 23:46:36
compiled from resume_rubricator.tpl */ ?>
<table cellspacing=0 border=0 width=100%>
<tr><td><img src="s.gif" alt="" width=20 height=1></td></tr>
<tr><td style="background:#c6e7ad" class=cb_10_373F41 height=30>
<img src="s.gif" alt="" width=20 height=1>по рубрикам</td></tr>
<tr><td style="background:#e9fad8"><img src="s.gif" alt="" width=1 height=4></td></tr>
<tr><td style="background:#e9fad8">
<table cellpadding=1 cellspacing=1 class=c_8p_black>

<?php if (count($_from = (array)$this->_tpl_vars['rub_items'])):
foreach ($_from as $this->_tpl_vars['it']):
?>
<tr><td><li> <?php if ($this->_tpl_vars['it']['id'] == $this->_tpl_vars['categ']): ?>
<b><?php echo $this->_tpl_vars['it']['title']; ?>
(<?php echo $this->_tpl_vars['it']['count']; ?>
)</b>
<?php else: ?>
<a class=c_0d2e97und href=<?php echo $this->_tpl_vars['it']['href']; ?>
><?php echo $this->_tpl_vars['it']['title']; ?>
(<?php echo $this->_tpl_vars['it']['count']; ?>
)</a>
<?php endif; ?>
</td></tr> <?php endforeach; unset($_from); endif; ?>

</table>
</td></tr>
</table>

output
=========================

<table cellspacing=0 border=0 width=100%>
<tr><td><img src="s.gif" alt="" width=20 height=1></td></tr>
<tr><td style="background:#c6e7ad" class=cb_10_373F41 height=30>
<img src="s.gif" alt="" width=20 height=1>по городам</td></tr>
<tr><td style="background:#e9fad8"><img src="s.gif" alt="" width=1 height=4></td></tr>
<tr><td style="background:#e9fad8">
<table cellpadding=1 cellspacing=1 class=c_8p_black>



<tr><td><li><a class=c_0d2e97und href=?city=3>Краснодар(2)</a></td></tr>


<tr><td><li><a class=c_0d2e97und href=?city=2>Санкт-Петербург(1)</a></td></tr>


<tr><td><li><a class=c_0d2e97und href=?city=17>Екатеринбург(1)</a></td></tr>


<tr><td><li><a class=c_0d2e97und href=?city=7>Железноводск(2)</a></td></tr>

</table>
</td>
</tr>
</table>
 

Demiurg

Guest
Richard
специально для тебя повторю вопрос:
чем они мешают тебе?
 

Richard

Guest
Originally posted by Demiurg
Richard
специально для тебя повторю вопрос:
чем они мешают тебе?
они не мешают. они не нужны мне :) в конце концов жалко лишние байты закачивать.
 

Demiurg

Guest
Если они тебе не мешают, тогда в чем проблема ?
Лучше позаботься о том, что бы свой html к стандарту привести.
 

Richard

Guest
Originally posted by Demiurg
Если они тебе не мешают, тогда в чем проблема ?
Лучше позаботься о том, что бы свой html к стандарту привести.
можно конкретней. чего там не так.
 

alexhemp

Новичок
Richard

Пустые строки между tr никак на вывод не повлияют. Повторяю, хочешь избавится, попробуй {strip} - вокруг foreach например и посмотри результат.
 

Richard

Guest
Originally posted by alexhemp
Richard

Пустые строки между tr никак на вывод не повлияют. Повторяю, хочешь избавится, попробуй {strip} - вокруг foreach например и посмотри результат.
ага, вот это имел ввиду. пасиба тока пробелов еще осталась куча. понимаю, что не влияет, но и закачивать не нада, а то на трафик влиять будет.
 

alexhemp

Новичок
Richard

Плюнь! В общем траффике - это сущие пустяки... ты же перед прогулкой с одежды пыль не стряхиваешь, чтобы легче ходить было?
 

vasmik

Guest
$template = str_replace("\r","",$template);
$template = str_replace("\n","",$template);
$template = preg_replace("/(\s){2,}/"," ",$template);

Убирает переносы строк и лишние пробелы.
 
Сверху