^_^
-
- Beiträge: 140
- Registriert: Fr 20. Feb 2004, 17:48
- Wohnort: Braunschweig
- Kontaktdaten:
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:
Im Layout habe ich vor dem Doctype habe ich ein
geschrieben.
In den Header kommt noch ein Container für folgendes Modul, kann man aber sicher auch direkt ins Layout schreiben.
Wo der Drucken-Button erscheinen soll, kommt dann folgender Code hin:
Grüße,
Karin Dähne.
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 ...
}
Code: Alles auswählen
<? session_start(); ?>
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";
?>
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>';
}
Karin Dähne.
Druckversion ohne Modul die zweite
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.
2. Die print.css erstellen
Die classes bzw. id`s, die nicht angezeigt werden sollen kommen einfach in eine Anweisung
z.B.:
Hinweis: Selfhtml bietet da sicherlich wertvolle Tipps zur Erstellung
3. In die Metatags, also irgendwo zwischen <head>...</head>bitte einfügen
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.
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";
}
?>
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;
}
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"; ?> " />
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
sollte doch eher idart sein, oder?apicalart hat geschrieben:Code: Alles auswählen
<a href="front_content.php?idcat=<?php echo "$idcat"; ?>&drucken=true">Druckversion</a>