Итак, стандартная задача web навигации списка имеет следующее решение:
Делаем вьюху Memo и к ней, скажем $$ViewTemplate for Memo. Внутри ставим поле $$ViewBody или посложнее. На самом вебе делаем три кнопки
"memo/"+pagename+"?Navigate&To=Prev" Назад
"memo"+"?openview" Список
"memo/"+pagename+"?Navigate&To=Next" Вперед
Это все работает, листается, но имеет ряд недостатков:
1. HTML на $$ViewTemplate for Memo с "memo?openview" имеет гадкое <meta name="robots" content="noindex">
2. По ходу дела урлы в листании идут с ID дока и они же попадут в индекс поисковиков, что не по-джедайски как-то.
3. На каждую такую тему надо создавать отдельную вьюху, форму (много Memo) и муторно это.
И вот вопрос. Может есть какая у кого написанная собако-формула или решение, чтобы генерила Назад(предыдущий док)/Список(типа вьюха, клон вьюхи и пр.)/Вперед(следующий док) из текущего дока и чтобы по окончании листания валилось в стандартный список, как по дефолту? Док может быть ограничен каким-нибудь полем Category. Имена пейджей можно задать с цифрами, но как вываливаться в список по окончании?
И чтобы не перегрузить это все DBлукапами и DBколумнами.
Чет давно я не брал я в руки шашку... Может позабыл решение. RestrictToCategory не предлагать, плиз. Это неудобно и пройденный этап.
Листание во вьюхе со start и count типа такого делал, но это не то.
Делаем вьюху Memo и к ней, скажем $$ViewTemplate for Memo. Внутри ставим поле $$ViewBody или посложнее. На самом вебе делаем три кнопки
"memo/"+pagename+"?Navigate&To=Prev" Назад
"memo"+"?openview" Список
"memo/"+pagename+"?Navigate&To=Next" Вперед
Это все работает, листается, но имеет ряд недостатков:
1. HTML на $$ViewTemplate for Memo с "memo?openview" имеет гадкое <meta name="robots" content="noindex">
2. По ходу дела урлы в листании идут с ID дока и они же попадут в индекс поисковиков, что не по-джедайски как-то.
3. На каждую такую тему надо создавать отдельную вьюху, форму (много Memo) и муторно это.
И вот вопрос. Может есть какая у кого написанная собако-формула или решение, чтобы генерила Назад(предыдущий док)/Список(типа вьюха, клон вьюхи и пр.)/Вперед(следующий док) из текущего дока и чтобы по окончании листания валилось в стандартный список, как по дефолту? Док может быть ограничен каким-нибудь полем Category. Имена пейджей можно задать с цифрами, но как вываливаться в список по окончании?
И чтобы не перегрузить это все DBлукапами и DBколумнами.
Чет давно я не брал я в руки шашку... Может позабыл решение. RestrictToCategory не предлагать, плиз. Это неудобно и пройденный этап.
Листание во вьюхе со start и count типа такого делал, но это не то.
Код:
REM {Create links for each page of view};
viewname:="pages/"+pagename;
count:=
@If(
@UrlQueryString("count")="" | @IsError(@TextToNumber(@UrlQueryString("count")));
@GetProfileField("Configuration_Profile"; "DefaultDisplayCount");
@TextToNumber(@UrlQueryString("count"))
);
link := "<a href=\""+viewname+"?open" + "&start=";
path := Path_Info;
startnum := @TextToNumber(@UrlQueryString("start"));
countnum :=@TextToNumber(@UrlQueryString("count"));
start:=1;
@If(
(@UrlQueryString("start")="") | (@UrlQueryString("count")="");
@While(start <= ThreadTopic;
linkall:=" | <b> " + @Text("все ("+@Text(ThreadTopic)) + ")</b>";
html:=html + link + @Text(start) + "&count=" + @Text(count) + options + "\">" + @Text(1+(start-1)/count) + "</a> ";
start:=start+count
)
;
@While(start <= ThreadTopic;
linkall := " | <a href=\""+viewname+"?open"+ "\">" +@Text("все")+"</a>"+" ("+@Text(ThreadTopic)+")";
@If(@Text(start) = @UrlQueryString("start");
html:=html + "<b> " + @Text(1+(start-1)/count) + " </b> ";
html:=html + link + @Text(start) + "&count=" + @Text(count) + options + "\">" + @Text(1+(start-1)/count) + "</a> ");
start:=start+count
)
);
next := @If(startnum+countnum >= ThreadTopic;@Nothing;" <a title='вперед' href="+@ReplaceSubstring (Path_Info; "start="+@Text(startnum) ; "start="+@Text(startnum+countnum))+">></a>");
prev := @If(startnum=1;@Nothing;"<a title='назад' href="+@ReplaceSubstring (Path_Info; "start="+@Text(startnum) ; "start="+@Text(startnum-countnum))+"><</a> ");
prev+html+next+linkall
Последнее редактирование: