[interchange-cvs] interchange - racke modified 2 files

interchange-cvs at icdevgroup.org interchange-cvs at icdevgroup.org
Wed Oct 1 09:21:45 UTC 2008


User:      racke
Date:      2008-10-01 09:21:45 GMT
Modified:  .        WHATSNEW-5.7
Modified:  code/UserTag capture_page.tag
Log:
made [capture-page] aware of mapped output (#197, #226).

Revision  Changes    Path
2.14                 interchange/WHATSNEW-5.7


rev 2.14, prev_rev 2.13
Index: WHATSNEW-5.7
===================================================================
RCS file: /var/cvs/interchange/WHATSNEW-5.7,v
retrieving revision 2.13
retrieving revision 2.14
diff -u -r2.13 -r2.14
--- WHATSNEW-5.7	26 Sep 2008 14:57:58 -0000	2.13
+++ WHATSNEW-5.7	1 Oct 2008 09:21:45 -0000	2.14
@@ -52,6 +52,8 @@
 * lines attribute added to [nitems] to show the number of lines in the shopping
   cart instead of the sum of the items (#225).
 
+* made [capture-page] aware of mapped output (#197, #226).
+
 OrderCheck
 ----------
 



1.12                 interchange/code/UserTag/capture_page.tag


rev 1.12, prev_rev 1.11
Index: capture_page.tag
===================================================================
RCS file: /var/cvs/interchange/code/UserTag/capture_page.tag,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- capture_page.tag	26 Sep 2008 19:47:02 -0000	1.11
+++ capture_page.tag	1 Oct 2008 09:21:45 -0000	1.12
@@ -5,11 +5,11 @@
 # the Free Software Foundation; either version 2 of the License, or
 # (at your option) any later version.  See the LICENSE file for details.
 # 
-# $Id: capture_page.tag,v 1.11 2008-09-26 19:47:02 racke Exp $
+# $Id: capture_page.tag,v 1.12 2008-10-01 09:21:45 racke Exp $
 
 UserTag capture_page Order   page file
 UserTag capture_page addAttr
-UserTag capture_page Version $Revision: 1.11 $
+UserTag capture_page Version $Revision: 1.12 $
 UserTag capture_page Routine <<EOR
 sub {
 	my ($page, $file, $opt) = @_;
@@ -43,18 +43,40 @@
 
 	$::Scratch->{mv_no_count} = 1;
 
-	my $pageref = Vend::Page::display_page($page,{return => 1});
-	Vend::Interpolate::substitute_image($pageref);
+	# save mapped output
+	my (@output, %outptr, %outfilter, %outextended, $multiout, $content, $retval);
 
-	my $retval;
+	@output = @Vend::Output;
+	%outptr = %Vend::OutPtr;
+	%outfilter = %Vend::OutFilter;
+	%outextended = %Vend::OutExtended;
+	$multiout = $Vend::MultiOutput;
+
+	# clear mapped output
+	@Vend::Output = %Vend::OutPtr = %Vend::OutFilter = %Vend::OutExtended = ();
+	$Vend::MultiOutput = 0;
+		
+	Vend::Page::display_page($page, {return => 1});
+
+	for my $part (@Vend::Output) {
+ 		Vend::Interpolate::substitute_image($part);
+		$content .= $$part;
+ 	}
+
+	# restore mapped output
+	@Vend::Output = @output;
+	%Vend::OutPtr = %outptr;
+	%Vend::OutFilter = %outfilter;
+	%Vend::OutExtended = %outextended;
+	$Vend::MultiOutput = $multiout;
 
 	if ($opt->{scratch}) {
-		$::Scratch->{$opt->{scratch}} = $$pageref;
+		$::Scratch->{$opt->{scratch}} = $content;
 		$retval = 1;
 	}
 
 	if ($file) {
-	   $retval = Vend::File::writefile (">$file", $pageref, 
+	   $retval = Vend::File::writefile (">$file", \$content,
            {auto_create_dir => $opt->{auto_create_dir},
          	umask => $opt->{umask}});
 	}







More information about the interchange-cvs mailing list