В админке предусмотрен редактор для всех страниц на всех языках. Статическая страница в моем случае это законченная сущность.
21 июля 2012 г., 23:57 пользователь Alexandr Alexeev <[email protected]> написал: > Ваш способ вроде ничего. Но для пущей общности я бы ввел в вашем движке > понятие "статической страницы", код которой хранится в базе и может > редактироваться/переводиться через веб-интерфейс. Это, конечно, уже будет не > статика, но с нормальном кэшированием должно быть ОК. > > 21 июля 2012 г., 10:54 пользователь Sergey Malochinskiy > <[email protected]> написал: > >> Исправление. >> >> строку: >> my $pagetext = $self->staticpage_get($self->param('page')); # helper >> возвращающий html код страницы из БД по параметру в GET >> >> читать как: >> my $pagetext = $self->staticpage_get($self->param('page'), $lang); # >> helper возвращающий html код страницы из БД по параметру в GET на >> языке пользователя >> >> 21 июля 2012 г., 10:52 пользователь Sergey Malochinskiy >> <[email protected]> написал: >> > Я делаю это так. >> > >> > Есть контроллер объявленный как route >> > # Route for static pages such as help, faq... etc >> > $r->route('/:page', page => [$self->staticpages])->via('GET') >> > ->to('static#pages')->name('static_pages'); >> > >> > $self->staticpages возвращает список доступных страниц, быстро >> > заменяется например на qw/help about/ >> > >> > Сама функция проще некуда: >> > sub pages { >> > my $self = shift; >> > >> > my $lang = $self->languages; # язык пользователя плагин i18n >> > my $pagetext = $self->staticpage_get($self->param('page')); # helper >> > возвращающий html код страницы из БД по параметру в GET >> > >> > return $self->render( >> > pagetext => $pagetext # передача текста страницы в шаблон >> > ); >> > } >> > >> > Сам шаблон выглядит так: >> > % layout 'default'; >> > <%= Mojo::ByteStream->new($pagetext) %> >> > >> > Для формирования URL для статической страницы использую конструкцию: >> > <a href="<%= url_for 'static_pages', page => 'help' %>"><%= l 'url_help' >> > %></a> >> > >> > >> > 20 июля 2012 г., 15:27 пользователь Grigory Batalov <[email protected]> >> > написал: >> >> В Fri, 20 Jul 2012 13:36:22 +0400 >> >> Sergey Malochinskiy <[email protected]> пишет: >> >> >> >>> Сделать один шаблон. Наполнение на разных языках хранить в БД или >> >>> файлах. В контроллере вытягивать из БД или файла и через stash >> >>> передавать в шаблон. >> >> >> >> Например, так? >> >> >> >> page.help: >> >> >> >> use utf8; >> >> { >> >> ru => { >> >> page1 => 'help1', >> >> page2 => 'help2', >> >> }, >> >> en => { >> >> page1 => 'help3', >> >> page2 => 'help4', >> >> }, >> >> } >> >> >> >> контроллер: >> >> >> >> my $help = do $self->config->{'mojo'}->{'page_help'}; >> >> >> >> $self->stash( help => $help->{ $self->stash->{'i18n'}->{'language'} >> >> }->{ $page } ); >> >> >> >>> > Мне нужно вставить в проект статические страницы с описанием >> >>> > ("справку") на разных языках. С организационной точки зрения было >> >>> > бы удобно разложить каждую справку в отдельный файл и отдать >> >>> > документаторам: >> >>> > >> >>> > help/en/page1.html.ep >> >>> > help/en/page2.html.ep >> >>> > help/ru/page1.html.ep >> >>> > help/ru/page2.html.ep >> >>> > ... >> >>> > >> >>> > Но как их потом включать в шаблон страниц? >> >>> > Я пока что выкрутился так: в page1.html.ep вставляю директиву >> >>> > >> >>> > %= include 'help/' . $self->stash->{'i18n'}->{'language'} . '/page1' >> >>> > >> >>> > Может быть, есть способ красивее, удобнее и т.д.? >> >> -- >> >> Moscow.pm mailing list >> >> [email protected] | http://moscow.pm.org >> > >> > >> > >> > -- >> > Best regards, >> > Sergey Malochinskiy >> >> >> >> -- >> Best regards, >> Sergey Malochinskiy >> -- >> Moscow.pm mailing list >> [email protected] | http://moscow.pm.org > > > > > -- > С уважением, Александр > Личный блог: http://eax.me/ > Мой форум: http://it-talk.org/ > Мой Twitter: http://twitter.com/afiskon > > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > -- Best regards, Sergey Malochinskiy -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
