romikchef: (Default)
[personal profile] romikchef
Постраничный вывод.

Упиди.
Разобрались, с помощью Demiurg-a
вывод отдельной страницы - это логика.
вывод навигации - это, всё-таки, представление.

Date: 2004-11-29 12:44 pm (UTC)
From: [identity profile] demiurg.livejournal.com
хм, а разве непонятно, что это должно быть в Логике? =)

Date: 2004-11-29 12:51 pm (UTC)
From: [identity profile] demiurg.livejournal.com
не-не-не! погоди-ка!

* если это Представление, то мы должны сначала загрузить ВСЕ данные, передать их Представлению, чтобы оно уже решало: сколько выводить и как. оно ж йобнеццо всё нахрен!

* если при смене страницы, у тебя даже УРЛ меняется, тем самым (как бы!) вызывая другой Контроллер (КонтроллерТретьейСтраницы?), то это -- Логика. Представление в данном случае лишь знает "как выводить записи в списке", а сколько их, и с какой начинать -- не его, Представления, дело. ему мы подаём лишь массив данных на вывод.

Date: 2004-11-29 12:58 pm (UTC)
From: [identity profile] demiurg.livejournal.com
что такое "строка навигации"? типа "градусник" вида "Вы находитесь тут: АБВ - ГДЕ - ОКЛЖП - ЧШЦ?

Date: 2004-11-29 01:02 pm (UTC)
From: [identity profile] xfyre.livejournal.com
вообще-то это называется итератором :)

Date: 2004-11-29 01:22 pm (UTC)
From: [identity profile] l-o-n-g.livejournal.com
у тебя что ни вопрос - так мировая проблема ;) имхо, нельзя в вебе делить все на черное и белое, не получится использовать чистое представление, все равно придется логику добавлять. эт как с нормализацией базы - часто ее лучше оставлять денормализованной - скорость выборки повышается, а при том, что накладные расходы при нынешней стоимости памяти - копейки, получается выгодное решение.

Date: 2004-11-29 01:51 pm (UTC)
From: [identity profile] demiurg.livejournal.com
а-а!
ну так это тоже в Логику. в смысле в Контроллер, который знает, какую страницу мы смотрим, и знает, сколько всего данных и т.п.
а Представление, опять же, должно лишь уметь вывести строку навигации.

Date: 2004-11-29 01:53 pm (UTC)
From: [identity profile] demiurg.livejournal.com
на самом деле по-моему не нужно пытаться выводить список ПоСтраницам или БезСтраниц только лишь с помощью Представления.

имхо, нужно выводить со страницами ВСЕГДА. если страниц мало, то это -- частный случай, и тогда мы просто не выводим строку навигации.

но ежели хочется так, то должно быть ДВЕ Логики (СоСтраницами и Без), а ещё лучше одна единственная (СоСтраницами) на одно Представление, а не так, что тыща Представлений на одну Логику.

Date: 2004-11-29 02:01 pm (UTC)
From: [identity profile] mderk.livejournal.com
Да нет, разделить-то можно, только вот логика для каждого случая своя :)
Я вот тоже до конца так и не решил у себя эту проблему - приходится мешать, ну или объявляя логикой то, что по-пуристски ей не является :)

Date: 2004-11-29 03:35 pm (UTC)
From: [identity profile] kukutz.livejournal.com
Вот так в нашем шаблонном движке оно выглядит.

Могу рассказать, что к чему.

{{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}}

Date: 2004-11-29 03:52 pm (UTC)
From: [identity profile] demiurg.livejournal.com
я как мог обосновал свою точку зрения, и, даже если честно, не вижу в ней изъянов. обоснуй свою? =)
вот у тебя как раз таки по-моему и смешиваются Логика и Представление, в то время как у меня они абсолютно разделены.

"показывать кнопку или нет" -- это Логика.
"показывать кнопку красной или зелёной" -- это Представление.

Date: 2004-11-29 04:23 pm (UTC)
From: [identity profile] demiurg.livejournal.com
а не происходит ли здесь смешение тёплого с мягким? =)

линк на мыл -- это одно, а списки и кнопки навигации по ним -- децл другое.

шаблон должен знать, как вывести кнопку, но выводить её или нет -- решает Логика, предоставляя нужные данные.

возвращаясь к примеру с конвертиком, это -- Представление, да. Логикой в данном случае было бы "выводить вообще это поле или нет", хотя, опять же, этот кусочек логики можно б было засунуть и в Представление, но ТОЛЬКО в виде "если значения нет -- не выводить", и никак иначе.

Date: 2004-11-29 05:11 pm (UTC)
From: [identity profile] demiurg.livejournal.com
опять же, что значит "формирует"?

Логика формирует навигацию. она говорит, что надо выводить номера страниц с 15 по 25, и что 17-ая -- текущая.

Представление формирует навигацию. оно говорит, что все номера страниц выводятся линками, и только 17-ая -- болдом без линка.

так?

Date: 2004-11-29 05:21 pm (UTC)
From: [identity profile] demiurg.livejournal.com
значит всё-таки получается, что Представление идёт к Логике с просьбой подсказать быстренько номер текущей страницы?
или это тоже вычисляется самим Представлением по какому-то хитрому полю в данных? а ведь его может и не быть.

Date: 2004-11-29 05:35 pm (UTC)
From: [identity profile] demiurg.livejournal.com
о! кажется сформулировал: мы с тобой говорим об одном и том же практически, но разница в том, что ты держишь планку Кода, Допустимого Для Представления немного выше, чем я, но это по ходу очень зыбкая грань, которую каждый определяет для себя сам. много вещей, которые могли бы присутствовать как в Л, так и в П.

Profile

romikchef: (Default)
(P) All pun intended

February 2026

S M T W T F S
1234567
891011121314
151617181920 21
22232425262728

Style Credit

Page generated Feb. 25th, 2026 03:24 pm
Powered by Dreamwidth Studios

Expand Cut Tags

No cut tags