Автор Тема: Все страницы статьи на 1 странице PrintView/Mail  (Прочитано 6217 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Данный мод позволяет выводить на странице PrintView и отправке статьи по e-mail все содержимое многостраничной статьи.
Предупреждение: если у вас статьи содержат очень много страниц, то лучше данный мод не применять - пожалейте посетителей (я не хотел бы получить по мейлу  30-ти страничную статейку.)

Правим: Sanitarium_WL.pm
Находим подпрограмму sub build_article (строки 438-484)
и меняем ее на этот вариант:



sub build_article {
#-----------------------------------------------------
#Full Article Content MOD (FACM)
my $self=shift;
my ($id, $cat, $page_view, $print)=@_;#Get article&category data
unless ($self->{\'authors_ext\'}){$self->extract_authors;}
my ($html);
$cat||=$self->{\'cat_id\'};
$self->{\'id\'}=$id;
$self->{\'cat_id\'}=$cat;
$self->{DB_Field}=\'article\';
$self->{\'comments\'}="$self->{\'view_comments\'}?id=$id&cat_id=$cat";
$self->{\'cat_url\'}="$self->{\'public_url\'}/$self->{\'cat_id\'}/$self->{\'index_page\'}";
$self->article_open;
my @pages= sort {$a <=> $b} map {$_ if defined $article_db{$_}} keys %article_db;

#if use dinamic generated pages
if ($page_view){
$self->{\'page\'}=$page_view;
$self->unpack_rec($article_db{$pages[($page_view - 1)]}) unless ($print);#MOD: FACM - unless
#$self->get_author_info();
if ($print){
my $full; #MOD: FACM
#make <%article_url%> for mail & print pages
if ($self->{\'static_pages\'}){$self->{\'article_url\'}="$self->{\'public_url\'}/$self->{\'cat_id\'}/$id"."_1.$self->{\'ext\'}";}
else {$self->{\'article_url\'}=$self->{\'view_cgi_url\'}."?goto=$id";}
#Full Article Content MOD (FACM){
foreach my $num (@pages){
$self->unpack_rec($article_db{$num});
[b]$full .= $self->{\'content\'}.\'

\';#


[/b]
}
# } END FACM
[b]$self->unpack_rec($article_db{$pages[0]});#ДОБАВЛЕНО![/b]
$self->{\'content\'}=$full;#MOD: FACM
$self->load_templates($print);#$print = \'print\' or \'mail\'

}
$self->{\'static_pages\'}=0;
                &close_article_db;                
return $self->parse_article_template;
}
#print pages to site
else {
foreach my $article_page(@pages){
#if (defined $article_db{$article_page}){
$self->{DB_Field}=\'article\';
$self->unpack_rec($article_db{$article_page});#unpack to {}
#unless ($self->{\'name\'}){$self->get_author_info();}
$self->{\'page\'}=$self->{\'num\'};
$html=$self->parse_article_template;
$self->print_page($html);#Print static page
#}
}
}
&close_article_db;
$self->{\'author\'}=\'\';
$self->{\'name\'}=\'\';
}
« Последнее редактирование: 21 Марта 2002, 16:01:38 от Green Kakadu »
 в исканиях.

Оффлайн tsd

  • Traveler
  • Постоялец
  • ***
  • Сообщений: 136
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.kolpany.net/news
Все страницы статьи на 1 странице PrintView/Mail
« Ответ #1 : 21 Марта 2002, 04:24:24 »
Ураааааааа!  Биг Сенкс :)
AdminZ Are RuleZ

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Все страницы статьи на 1 странице PrintView/Mail
« Ответ #2 : 21 Марта 2002, 13:14:38 »
Цитировать
Ураааааааа! Биг Сенкс

Работает? Я не успел проверить..
 в исканиях.

Оффлайн tsd

  • Traveler
  • Постоялец
  • ***
  • Сообщений: 136
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.kolpany.net/news
Все страницы статьи на 1 странице PrintView/Mail
« Ответ #3 : 21 Марта 2002, 15:12:24 »
Цитировать
Работает?

Эээ... Мда.. Рано обрадовались :D
Неа. В Принт Превью показывает только вторую страницу (всего две страницу) статьи.

P.S. Причем даже обновление до v. 1.0. не помогло :(

И еще добавлено:
А в одностpаничных статьях Принт Превью вообще ничего не показывает :insane:
« Последнее редактирование: 21 Марта 2002, 15:48:39 от tsd »
AdminZ Are RuleZ

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Все страницы статьи на 1 странице PrintView/Mail
« Ответ #4 : 21 Марта 2002, 15:34:06 »
Цитировать
Эээ... Мда.. Рано обрадовались

:) придется мне все-таки проверять. поправим
 в исканиях.

Оффлайн tsd

  • Traveler
  • Постоялец
  • ***
  • Сообщений: 136
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.kolpany.net/news
А вообще-то...
« Ответ #5 : 21 Марта 2002, 15:45:06 »
Я правилньно понял, что все страницы свалятся в <%content%> ?
AdminZ Are RuleZ

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Все страницы статьи на 1 странице PrintView/Mail
« Ответ #6 : 21 Марта 2002, 16:03:08 »
Цитировать
Я правилньно понял, что все страницы свалятся в <%content%> ?

Да.
Все исправил, все работает. Небольшая идея, там где выделена строка с

, возможно имеет смысл заменить на


« Последнее редактирование: 21 Марта 2002, 16:09:09 от Green Kakadu »
 в исканиях.

Оффлайн tsd

  • Traveler
  • Постоялец
  • ***
  • Сообщений: 136
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.kolpany.net/news
Все страницы статьи на 1 странице PrintView/Mail
« Ответ #7 : 21 Марта 2002, 16:15:12 »
Цитировать
$full .= $self->{\'content\'}.\'

\';

Я вот так приделал.
Все заработало :beer:
AdminZ Are RuleZ

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Все страницы статьи на 1 странице PrintView/Mail
« Ответ #8 : 21 Марта 2002, 17:45:14 »
Цитировать

$full .= $self->{\'content\'}.\'

\';

а разве

и

 не одно и тоже? :)
впрочем, это не имеет значения, с hr страницы четче разделены.
Кстати, там можно выводить номер страницы:

Цитировать

$full .= "страница: $num
 ".$self->{\'content\'}.\'

\';
 в исканиях.

Оффлайн tsd

  • Traveler
  • Постоялец
  • ***
  • Сообщений: 136
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.kolpany.net/news
Все страницы статьи на 1 странице PrintView/Mail
« Ответ #9 : 21 Марта 2002, 18:08:29 »
Цитировать

и

 не одно и тоже?


P по правилам закрывать надо ;)
Цитировать
страница: $num

Я тоже сначала так поставил, но потом подумалось - текст по идее должен быть слитным... Иначе его лучше раскидать по разным статьям. Но это глубокое ИХМО.
AdminZ Are RuleZ

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28