Постраничный вывод.
Упиди.
Разобрались, с помощью Demiurg-a
вывод отдельной страницы - это логика.
вывод навигации - это, всё-таки, представление.
Упиди.
Разобрались, с помощью Demiurg-a
вывод отдельной страницы - это логика.
вывод навигации - это, всё-таки, представление.
no subject
Date: 2004-11-29 12:44 pm (UTC)no subject
Date: 2004-11-29 12:46 pm (UTC)непонятно! :-)
это плоть от плоти отображения, по идее.
сколько на страницу выводить, выводить ли вообще постранично.
И - гвоздь программы - вывод строки нафигации, в которой всегда больше логики, чем представления.
no subject
Date: 2004-11-29 12:51 pm (UTC)* если это Представление, то мы должны сначала загрузить ВСЕ данные, передать их Представлению, чтобы оно уже решало: сколько выводить и как. оно ж йобнеццо всё нахрен!
* если при смене страницы, у тебя даже УРЛ меняется, тем самым (как бы!) вызывая другой Контроллер (КонтроллерТретьейСтраницы?), то это -- Логика. Представление в данном случае лишь знает "как выводить записи в списке", а сколько их, и с какой начинать -- не его, Представления, дело. ему мы подаём лишь массив данных на вывод.
no subject
Date: 2004-11-29 12:55 pm (UTC)А с гвоздём как?
Писать в представлении программу? Передавая ей кучу данных (сколько их, с какой сегодня начали)?
Это не стёб, это для меня действительно камень преткновения.
На данный момент времени я формирую строку навигации скриптом в логике. Что меня не устраивает.
Захотел дизайнер цвет поменять у текущей страницы - ну, это ладно, это стилем деется.
А вот захотел он квадратные скобочки добавить?
no subject
Date: 2004-11-29 12:58 pm (UTC)no subject
Date: 2004-11-29 01:01 pm (UTC)ну, навигация обычная при постраничке
< << 1 2 [3] 4 5 ... 5 4 3 2 1 >> >
no subject
Date: 2004-11-29 01:51 pm (UTC)ну так это тоже в Логику. в смысле в Контроллер, который знает, какую страницу мы смотрим, и знает, сколько всего данных и т.п.
а Представление, опять же, должно лишь уметь вывести строку навигации.
no subject
Date: 2004-11-29 01:53 pm (UTC)имхо, нужно выводить со страницами ВСЕГДА. если страниц мало, то это -- частный случай, и тогда мы просто не выводим строку навигации.
но ежели хочется так, то должно быть ДВЕ Логики (СоСтраницами и Без), а ещё лучше одна единственная (СоСтраницами) на одно Представление, а не так, что тыща Представлений на одну Логику.
no subject
Date: 2004-11-29 03:45 pm (UTC)которое мы снабжаем-таки нужной инфой.
no subject
Date: 2004-11-29 03:52 pm (UTC)вот у тебя как раз таки по-моему и смешиваются Логика и Представление, в то время как у меня они абсолютно разделены.
"показывать кнопку или нет" -- это Логика.
"показывать кнопку красной или зелёной" -- это Представление.
no subject
Date: 2004-11-29 04:11 pm (UTC)Чтобы кнопку показать, нужно её нарисовать.
Где её рисовать?
В смысле - откуда её брать, когда она есть?
Из кода? Это неверный подход.
Кнопка должна быть прописана в шалабоне.
Соответственно, и код, ответственный за её показ - там же. Больше негде.
Аналогичный случай с емейлом.
Если он есть в базе, то его надо одеть линком на имя.
Если его нет - имя оставить как есть.
Линк - это представление.
Да и вообще, у меня тут одна особа захотела не на имя одевать а на картинку с конвертиком. В код лезть? Нифига это неправильно.
Вот по этим ощущениям - это всё чисто оформление.
Верстала имеет все данные, и играет ими в шаблоне как хочет. Логика представления! Отделенная от логики приложения :-)
no subject
Date: 2004-11-29 04:23 pm (UTC)линк на мыл -- это одно, а списки и кнопки навигации по ним -- децл другое.
шаблон должен знать, как вывести кнопку, но выводить её или нет -- решает Логика, предоставляя нужные данные.
возвращаясь к примеру с конвертиком, это -- Представление, да. Логикой в данном случае было бы "выводить вообще это поле или нет", хотя, опять же, этот кусочек логики можно б было засунуть и в Представление, но ТОЛЬКО в виде "если значения нет -- не выводить", и никак иначе.
no subject
Date: 2004-11-29 04:43 pm (UTC)просто друг друга немного не поняли.
Я нигде не писал вообще о том, выводить или не выводить полоску навигации.
Я писал о том, кто её ФОРМИРУЕТ. Код или шаблон?
вот Макс ниже пишет, что у него - код.
И у меня раньше код, но сейчас я присмотрелся, и перенес код вывода номеров страниц в шаблон.
no subject
Date: 2004-11-29 05:11 pm (UTC)Логика формирует навигацию. она говорит, что надо выводить номера страниц с 15 по 25, и что 17-ая -- текущая.
Представление формирует навигацию. оно говорит, что все номера страниц выводятся линками, и только 17-ая -- болдом без линка.
так?
no subject
Date: 2004-11-29 05:19 pm (UTC)только логика не формирует навигацию.
логика формирует данные для навигации.
а навигацию формирует из этих данных представление.
все верно.
просто меня раньше смущало количество кода в оформлении.
но я это пережил
no subject
Date: 2004-11-29 05:21 pm (UTC)или это тоже вычисляется самим Представлением по какому-то хитрому полю в данных? а ведь его может и не быть.
no subject
Date: 2004-11-29 05:25 pm (UTC)Ну, я бы так сказал, что Логика заранее позаботилась об этом.
А раз позаботилась, то почему этого поля может не быть?
no subject
Date: 2004-11-29 05:35 pm (UTC)no subject
Date: 2004-11-29 03:35 pm (UTC)Могу рассказать, что к чему.
{{TEMPLATE:PagesList}}
{{?PagePrev}}
[<a title="{{!PagesPrev}}" href="{{Url}}{{Link:PagePrev}}">««</a>]
|
{{?/PagePrev}}
{{TEMPLATE:PagesList_Item}}
{{?_Current}} <b>{{_PageNo}}</b>
{{?!_Current}} <a title="{{!PageNum}}{{_PageNo}}" href="{{Url}}{{Link:_PageNo}}">{{_PageNo}}</a>
{{?/_Current}}
|
{{/TEMPLATE:PagesList_Item}}
{{?PageNext}}
<a title="{{!PageNextTitle}}" href="{{Url}}{{Link:PageNext}}">Следующая</a>
{{?/PageNext}}
{{/TEMPLATE:PagesList}}
no subject
Date: 2004-11-29 03:44 pm (UTC)По идеологии похоже на xTPL, как я её себе представляю.
Как это выглядит на "моём" шаблонном движке AKA spectator's easy templates, я написал ниже в этой ветке :-)
На первый взгляд, выглядит попроще, всё-таки.
no subject
Date: 2004-11-29 01:02 pm (UTC)no subject
Date: 2004-11-29 01:22 pm (UTC)no subject
Date: 2004-11-29 02:01 pm (UTC)Я вот тоже до конца так и не решил у себя эту проблему - приходится мешать, ну или объявляя логикой то, что по-пуристски ей не является :)
no subject
Date: 2004-11-29 03:32 pm (UTC)Вполне жить можно.
<div><strong>Страницы:</strong>
<? foreach($pages as $i): ?>
<? if($cirrent_page==$i): ?>
<strong><?=$i?></strong>
<? else :?>
<a href="<?=$i?>.html" class="bold color_1"><?=$i?></a>
<? endif ?>
<?endforeach ?>