Forum Webscript.Ru

Наши скрипты => Sanitarium WebLoG => Тема начата: Ptiza от 13 Мая 2002, 16:52:25

Название: Как подставить на страницу ее номер?
Отправлено: Ptiza от 13 Мая 2002, 16:52:25
Я придумал как делать фотогалерею (пусть максимально упрощенную, но вполне функциональную), но для этого мне нужно знать, как подставлять в многостраничном документе номер страницы, а также, желательно, следующей и предыдущей страницы (но это при желании их уже уже можно выводить и через Java Script).
Название: есть такие варианты
Отправлено: Green Kakadu от 14 Мая 2002, 03:00:36
На статейных страницах:
<%page%>
<%num%>
(если динамический вывод, то только <%page%>)
Всего страниц в статье <%pages%>

Индексные страницы:
<%page%>
Всего страниц <%num_keys%>


Цитировать
также, желательно, следующей и предыдущей страницы

этого нет, но реально добавить, если нужно, даже скажу где(для статей):
Sanitarium_WL.pm sub parse_article_template

Надо туда засунуть что-то типа такого:

$self->{\'prev\'}=$self->{\'page\'}-1;
$self->{\'next\'}=$self->{\'page\'}+1;

+ надо решить, что делать с граничными страницами (т.е. 1-й у которой нет предыдущей и последней у которой нет последующей. можно в качестве предыдущей для 1-й вставлять последнюю, а в качестве следующей для последней -1-ю), т.е.:

if($self->{\'prev\'}==0){$self->{\'prev\'}=$self->{\'pages\'};}
if($self->{\'next\'}==$self->{\'pages\'}){$self->{\'next\'}=1;}
В сумме, получается вот что:

$self->{\'prev\'}=$self->{\'page\'}-1;
$self->{\'next\'}=$self->{\'page\'}+1;
if($self->{\'prev\'}==0){$self->{\'prev\'}=$self->{\'pages\'};}
if($self->{\'next\'}==$self->{\'pages\'}){$self->{\'next\'}=1;}

Это можно поместить в самом начале после строк:
my $self=shift;
my $tmpl;

ну и появятся спец.теги <%prev%> - номер предыдущей
<%next%> - номер последующей страницы
Не пробовал, но вроде должно работать. Эээ при следующем апдейте я эти теги добавлю (я к тому что если кто-то внесет сейчас такие поправки, то потом по новой вносить не надо будет)

P.S. Вот только с граничными значениями я вот думаю как быть - может их просто в ноль установить или в \'\'?
Название: Как подставить на страницу ее номер?
Отправлено: Ptiza от 14 Мая 2002, 03:46:10
У-гум. Хорошо. Тогда вот еще какой вопрос. Как мне изменить шаблон, по которому строится страница для публикации? И было бы неплохо при создании статьи определять, какой шаблон использовать (для использования "по умолчанию" нужно определить какой-нибудь флаг.)

Идея с созщданием фотогалереи такова:

Создается шаблон во "втором составе", так скажем. В нем подставляется рисунок, адрес которого - /<%id%>/(%page%>.jpg. Достатосно установить рисунку ограничения по размеру ширины и высоты, или заведомо заливать на сайт картинки не более нужного размера, как можно, задавая определенное количество страниц статьи, делать фотогалерею, в которой будут номера страниц совпадать с номерами рисунков. А директорию с рисунками нужной галереи можно переименовать под номер публикации. Главное, чтобы все галерейные рисунки лежали в единой поддиректории, иначе уловка не сработает.

Пример шаблона:

<%title%>


другие фото :: <%span_pages%> ::

/<%page%>.jpg>


<%author_foto%>


<%preview%>



<%content%>


<%signatures%>



Как видно из примера, теперь на странице достаточно добавить маленький коммент, вроде "рис. 1" и не таскать с собой целый URL рисунка.
Название: Как подставить на страницу ее номер?
Отправлено: Ptiza от 14 Мая 2002, 03:51:40
"Как мне изменить шаблон, по которому строится страница для публикации"  - прозвучало глупо. Я имел ввиду, набор шаблонов. В смысле, выбрать из нескольких наборов шаблонов один еще на этапе написания статьи.
Название: Как подставить на страницу ее номер?
Отправлено: Green Kakadu от 14 Мая 2002, 04:08:35
Цитировать
Я имел ввиду, набор шаблонов. В смысле, выбрать из нескольких наборов шаблонов один еще на этапе написания статьи.

вот это довольно проблемно. Т.е. можно определить свой шаблон для каждой категории, а вот для отдельной статьи нет и что-то не могу сейчас придумать как бы это сделать попроще
Название: Как подставить на страницу ее номер?
Отправлено: Ptiza от 21 Мая 2002, 22:59:45
Уже не обязательно. Я придумал, как обойти тот факт, что я уже создал фотогалереи и нужно делать новые, основываясь на новом принципе. Для этого потребуется отдельная тема и FAQ, который я составлю в течение ближайших дней.