Что-то не так с упаковкой целых шаблонов Smarty в теги {strip}? - PullRequest
3 голосов
/ 10 августа 2010

Я хочу, чтобы мои шаблоны были аккуратными и приятными, но хотелось бы, чтобы в браузер передавался только очень компактный HTML.
Пропустив лучшую идею, мне было интересно, если что-то не так с упаковкой целых шаблонов Smarty в {strip} теги, как это?

{strip}
        <div class="albums">
            <h2>Alle Foto-Alben</h2>

            <ul class="photos clearfix">
                {foreach $albums as $album}
                    {if $album->publishedPhotos|count > 0}
                    <li>
                        <div>
                            <a href="album.php?id={$album->id}">
                                <img src="{$album->titlepic->thumb}" alt="{$album->titlepic->title}" />
                                <span class="title">{$album->title}</span>
                                <span class="counter">{$album->publishedPhotos|count} Foto{if $album->publishedPhotos|count != 1}s{/if}</span>
                            </a>
                        </div>
                    </li>
                    {/if}
                {/foreach}
            </ul>
        </div>
{/strip}

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

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

Ответы [ 3 ]

5 голосов
/ 23 июля 2011

Хотя это не так, я бы предложил вместо этого использовать предварительный фильтр.Предварительный фильтр запускается только во время компиляции шаблона (поэтому он не замедляет работу сервера), и вам не нужно оборачивать каждый шаблон в {strip}.Следующие строки кода взяты из проекта, над которым я работаю.Он эффективно удаляет большинство пробелов.

/* Minify the html */
function smarty_pre_minify($tpl_source, $smarty) { return preg_replace('/[ \t\n\r]+/s', ' ', $tpl_source); }
$smarty->registerFilter('pre', 'smarty_pre_minify');
1 голос
/ 10 августа 2010

Примечание: Striptags будет игнорировать включает.Бесплатный совет дня.: -)

1 голос
/ 10 августа 2010

Нет, в этом нет ничего плохого.

Сделайте это в паре шаблонов заголовка / нижнего колонтитула, а не оборачивайте каждую страницу по отдельности.PHP сторона вещей.

...