Ansicht für die Druckfunktion definieren

08. Feb 2012

Für die Darstellung der Druckversion von Inhaltsseiten liefert die BASE bereits das entsprechende Template mit, das Sie an eigene Bedürfnisse anpassen können.

Die BASE Projektbasis liefert bereits im Standard die Funktion für die Druckansicht mit.

Über die angesprochene Javascript-Funktion im Druckansicht-Link wird der Ansichtsmodus für die Druckansicht aufgerufen (viewmode=print).

In der BASE erfolgt der Aufruf über die Metanavigation und den Navigationspunkt "Druckansicht":

Aufruf der Druckansicht über die Metanavigation
Aufruf der Druckansicht über die Metanavigation

Als Link für diesen Navigationspunkt ist eine Javascript-Funktion hinterlegt. Dieser wird die Breite und Höhe des zu öffnenden Fensters der Druckansicht mitgegeben. Setzen Sie als Ziel "Aktuelles Fenster" (_self), da über die Javascript-Funktion die Druckansicht in einem Popup-Fenster geöffnet wird.

Beispiel: Linkziel des Druckansicht-Links

javascript:wOpenPrintPreview(800,600)

Diese Javascript-Funktion ist in der design.js definiert, welche in den generierten Seite im Head-Bereich eingebunden sein muss. Dies ist in der BASE über die includes.global.php innerhalb des htmlHeader-Templates umgesetzt.

Beispiel: Auszug aus /IhrGlobalesProjekt/wGlobal/layout/templates/misc/includes.global.php

...
<xsl:value-of select="php:functionString('wPageCur::registerJs', concat($wGlobalProjectPath, '/wGlobal/layout/scripts/design.js'))"/>
...

Die JS-Funktion erwartet unter anderem die Parameter Breite und Höhe für das Druckfenster und übergibt die aktuelle URL mit viewmode-Parameter an eine Popup-Funktion (wOpenPopupURL).

Beispiel: Auszug aus /IhrGlobalesProjekt/wGlobal/layout/scripts/design.js

// ...
////////////////////////////////////////////////////////////////
//
// @method void wOpenPrintPreview(url)
//
// @desc Öffnet die aktuelle Seite in der Druckvorschau
//
// @return void
//
////////////////////////////////////////////////////////////////

function wOpenPrintPreview(width, height, name){

  var name = name || 'printpreview';
  
  var url = location.href.indexOf('?') == -1 ? location.href + '?viewmode=print' : location.href + '&viewmode=print';
  
  wOpenPopupURL(url, width, height, name);
}
// ...

////////////////////////////////////////////////////////////////
//
// @method void wOpenPopupURL(url, width, height, name)
//
// @desc Öffnet eine Seite in einem Popup
//
// @return void
//
////////////////////////////////////////////////////////////////

function wOpenPopupURL(url, width, height, name){

  var name = name || '';
  
  if(width == '' || width == ' ' || typeof(width) == 'undefined'){
    width = 786;
  }
  if(height == '' || height == ' ' || typeof(height) == 'undefined'){
    height = 677;
  }
  
  url = url.replace(/&amp;/g, '&');
  options = ',location=no, menubar=no,toolbar=no,resizable=no,scrollbars=yes,status=no';
  width   = parseInt(width);
  height  = parseInt(height);

  var posLeft = (screen.width / 2)  - (width  / 2);
  var posTop  = (screen.height / 2) - (height / 2);
  //alert(name);
  window.open(url, name, 'top='+posTop+',left='+posLeft+',width='+width+',height='+height+',' + options);
}
// ...

Über die pre.php der BASE spricht Weblication® CMS dann das Ausgabetemplate für die Druckansicht an (print.wDocument.php), welches die für die Druckansicht aufgerufene Seite darstellt. Über diese für die Druckansicht optimierte Darstellung kann die Seite durck Klick auf den Button "Drucken" ausgedruckt werden.

Die Umsetzung des Druckansichttemplates liegt parallel zu den anderen Ansichts- und Bearbeitungstemplates ab und kann an individuelle Wünsche angepasst werden.

Entwicklerbereich Weblication® CMS - © Scholl Communications AG