Seite 1 von 1

^_^

Verfasst: Sa 4. Jun 2005, 20:44
von i-fekt
^_^

Verfasst: So 5. Jun 2005, 07:34
von Karin Dähne
Hallo Craxx,

ich hab mir gerade eine ähnliche Lösung erarbeitet.

Da ich es aber leid war, alle Module, die nicht in der Druckversion angezeigt werden sollten, dann in der Druck-Css-Datei auf "diplay:none" oder " visibility: hidden" zu setzen, bin ich einen Schritt weiter gegangen:

Eben, wir arbeiten mit php ;-)

Also lag es doch nahe, alle Module, die eh nicht gedruckt werden sollen, in der Druckansicht erst gar nicht parsen zu lassen.
Oder nur bestimmte Teile parsen zu lassen.

Ich arbeite mit 2 Druckansichten:
Eine ohne Bilder und eine mit der Ausgabe von Bildern.

Deshalb hab ich bei allen betreffenden Modulen folgende Abfrage davor gesetzt:

Code: Alles auswählen

//Ueberpruefen, ob Druckansicht eingeschaltet:
/*
s => Standartansicht,
b => Braillesegeraete,
p1 => Druckanzeige ohne Grafiken,
p2 => Druckanzeige mit Grafiken
*/
  if($_REQUEST['style'] == p1 || $_REQUEST['style'] == p2)
   {
    echo '';
   } else {
    Der Modulcode ...
   }
Im Layout habe ich vor dem Doctype habe ich ein

Code: Alles auswählen

<? session_start(); ?>
geschrieben.

In den Header kommt noch ein Container für folgendes Modul, kann man aber sicher auch direkt ins Layout schreiben.

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
*  Modulname :  110_Styleswitcher_Css-DateiHeader
*  Author    :  Karin Daehne
*  Copyright :  Karin Daehne
*  Created   :  01-06-2005
*  Version   :  V01-01
*  Modified  :  
*  Features  :  Einstellung der CSS-Datei(en) im Headbereich des Layoutes.
*               Hier muessen im Array die CSS-Dateien zugewiesen werden zu den Modulen
*               111_Styleswitcher_Braille-Einstellung
*               112_Styleswitcher_Print
*               113_Styleswitcher_FrontEnd
*
************************************************/

session_register("style");
$cssStil = array(
s =>'css/style-standart.css',
b =>'css/style_braille.css',
p1 =>'css/style_print_pic.css',
p2 =>'css/style_print.css'
);

if (!empty($_REQUEST['style'])) $_SESSION['style'] = $_REQUEST['style']; 
if (empty($_SESSION['style'])) $_SESSION['style'] = s;
  $stil = $cssStil["{$_SESSION['style']}"];
  echo "<link rel=\"stylesheet\" href=\"$stil\" type=\"text/css\" />\n";
?>
Wo der Drucken-Button erscheinen soll, kommt dann folgender Code hin:

Code: Alles auswählen

//----- Druckansicht:
if ($_GET['style']==p1)
  {
   echo '<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&lang='.$lang.'&style=p2" title="Zur Druckansicht mit Grafiken">Ausdruck mit Grafiken</a>
<span> | </span>
<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&lang='.$lang.'&style=s" title="Zur Normalansicht">Normalansicht</a>';
  } elseif ($_GET['style']==p2) {
   echo '<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&lang='.$lang.'&style=p1" title="Zur Druckansicht ohne Grafiken">Ausdruck ohne Grafiken</a>
<span> | </span>
<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&lang='.$lang.'&style=s" title="Zur Normalansicht">Normalansicht</a>';
  } else {
   echo '<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&lang='.$lang.'&style=p1" title="Zur Druckansicht"><img src="images/print.gif" width="25" height="11" alt="Druckansicht" border="0" /></a>';
  }
Grüße,
Karin Dähne.

Druckversion ohne Modul die zweite

Verfasst: Sa 10. Sep 2005, 10:24
von apicalart
Sieht schon ganz prima aus, ist aber, so man sich denn an die Beschreibung hält, für PHP-Newbies etwas verwirrend.

Also hier die Anleitung von i-fekt mal etwas genauer.

1. Den folgenden Code vor den Doctype setzen. Das kann man schön im Layout machen.

Code: Alles auswählen

<?php 
 $loc = $_GET[drucken]; 
 if ($loc == "") { 
 $css = "css/format.css";      // Standard CSS.Datei im Standardordner
 } else { 
 $css = "css/print.css";
 } 
?> 
2. Die print.css erstellen
Die classes bzw. id`s, die nicht angezeigt werden sollen kommen einfach in eine Anweisung
z.B.:

Code: Alles auswählen

.navigation, #zusatzbild, hr
     {
     display:none;
     }
Hinweis: Selfhtml bietet da sicherlich wertvolle Tipps zur Erstellung





3. In die Metatags, also irgendwo zwischen <head>...</head>bitte einfügen

Code: Alles auswählen

<link rel="stylesheet" type="text/css" media="screen" t href=" <?php echo "$css"; ?> " />
4. So und jetzt kommt die Korrektur des kleinen Fehlers/Mißverständnisses, der Newbies wahrscheinlich zum Tischkantenbeißen führen wird:
An die gewünschte Stelle einfach folgenden Link einsetzen. In der obigen Lösung von i-fekt landet man nämlich eine Fehlerseite.

Code: Alles auswählen

<a href="front_content.php?idcat=<?php echo "$idcat"; ?>&drucken=true">Druckversion</a>

Re: Druckversion ohne Modul die zweite

Verfasst: Do 19. Okt 2006, 10:07
von pulk
apicalart hat geschrieben:

Code: Alles auswählen

<a href="front_content.php?idcat=<?php echo "$idcat"; ?>&drucken=true">Druckversion</a>
sollte doch eher idart sein, oder?