Seite 1 von 2

NEUES DRUCKEN MODUL

Verfasst: Di 27. Jul 2004, 14:34
von kevinerhardt
Hallo an Contenido Gemeine

Habe hier einen Drucken Modul erstellt der einen bestimmten Bereich druckt. Diser Bereich muss vorher im Layout festgelegt werden z.B:

Code: Alles auswählen

<div class="fliestext">
<!-- #PRINT -->
CMS_CONTAINER[10]
CMS_CONTAINER[6]
<!-- ##PRINT -->
</div>
es muss eine artikel_drucken.php Datei im cms Verzeichniss angelegt werden und ein Modul namens "Artikel drucken" angelegt werden.

Quelltext MODUL

Code: Alles auswählen

<?php
	/** OUTPUT
		Modul: Artikel drucken 1.0
		Author: Kevin Erhardt
		Date: 27.07.2004
		Last edit:
	*/
	$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?idcatart='. $idcatart .'&lang='. $lang .'&client='. $client;

	echo "<a href=\"artikel_drucken.php?url=".$url."\">[ Artikel drucken ]</a> "
?>
Die artikel_drucken.php Datei

Code: Alles auswählen

<?php
	/**
		Modul: Artikel drucken (Verarbeitung)
		Author: Kevin Erhardt
		Date: 27.07.2004
		Last edit:
	*/
	
	function text_ausschnitt($string, $beginn, $ende){
		$string = strchr($string, $beginn);
		$pos_ende = strpos($string, $ende);
		$string = substr($string, 0,$pos_ende);
		return $string;
	}
	$url = $_GET['url'];	
	$beginn = "<!-- #PRINT -->";
	$ende = "<!-- ##PRINT -->";
	if($url != NULL){
		
//		Öffne und lese die Seite
		$string = file_get_contents($url);
	}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>

	<!--------------------------------->
	<!-- Kevin Erhardt               -->
	<!-- www.kevin-erhardt.de        -->
	<!-- kontakt(at)kevin-erhardt.de -->
	<!--------------------------------->

<head>
	<title>Artikel Drucken</title>
	<meta name="author" content="Kevin Erhardt">
	<meta name="date" content="2004">
	<style type="text/css">
		body {
			font-family: "Verdana", Arial, Tahoma;
			font-size: 9pt;
			color: #000000;
		}
	</style>
</head>

<body>
<?php echo text_ausschnitt($string, $beginn, $ende); ?>
<br>
<button onclick="self.print();">Drucken</button>
</body>
</html>
falls jemand verbesserungsvorschläge hat dann bitte.

Mit freundlichen Grüßen

Kevin

Verfasst: Mo 16. Aug 2004, 09:59
von emergence
verbesserungsvorschlag:
die url die erzeugt wird, sollte eventuell auch die $post variablen auswerten und mit übergeben...

Verfasst: Mo 16. Aug 2004, 12:29
von maTTos
Warum sollte sie das? Vielleicht ist das der Grund für mein Problem mit dem Skript. Denn bei mir wird oben in der url-Zeile des Browsers eigentlich die richtige URL angezeigt, nämlich:

http://www.domain.de/cms/drucken.php?ur ... 1&idart=18

Problem: Tatsächlich zeigt die Druckansicht den Inhalt der vorherigen Seite an. Wenn ich beim Druckbutton die Variable "$url" ausgeben lassen, erhalte ich:
http://www.domain.de/cms/front_content.php?client=1

Ist das der Grund, warum $post ausgewertet werden sollte? Wenn ja, wäre es schön wenn das Script um die entsprechenden Zeilen ergänzt werden könnte. Falls nicht, weiß jemand womit mein Problem zu tun haben könnte? Danke!

Verfasst: Mo 16. Aug 2004, 13:09
von emergence
eine auswertung der postvariablen ermöglicht es zb wenn seiten mittels eines formulars angezeigt werden ebenfalls anzuzeigen...

aber das ganze ist ja nur ne idee für 'nen verbesserungsvorschlag...
ob diese möglichkeit wirklich zielführend ist, kann ich nicht sagen, weil ich es nicht versucht habe...

Problem beim Drucken des Suchergebnis

Verfasst: Di 24. Aug 2004, 13:52
von schmitt197
Hi,
ich benutze das Modul zur Druckvorschau. FUnktioniert auch schön, allerdings habe ich beim Drucken von Suchergebnissen ein Problem. Meine Suchergebnisse, die ich zwar auf der "normalesn" Seite sehen, verschwinden in der Druckvorschau.

Woran kann das liegen?

Hier der Code meines Suchmoduls.

Input:

Code: Alles auswählen

echo "
<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\">
  <tr valign=\"top\">
    <td width=\"202\">Schriftart Link:</td>
    <td><select name=\"CMS_VAR[0]\" size=\"1\">";
    
	if ("CMS_VALUE[0]" != 0) {
		echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
	} else {
		echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
	}
    
	for ($i=1; $i<=50; $i++) {
		if ( $i != "CMS_VALUE[0]" ) {
			echo "<option value=\"$i\">Font $i</option>";
		} else {
			echo "<option value=\"$i\" selected>Font $i</option>";
		}
	}
    
	echo "
	</SELECT></td>
  </tr>  <tr valign=\"top\">
    <td width=\"202\">Schriftart Text:</td>
    <td><select name=\"CMS_VAR[1]\" size=\"1\">";
    
	if ("CMS_VALUE[1]" != 0) {
		echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
	} else {
		echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
	}
	
    for ($i=1; $i<=50; $i++) {
		if ( $i != "CMS_VALUE[1]" ) {
			echo "<option value=\"$i\">Font $i</option>";
		} else {
			echo "<option value=\"$i\" selected>Font $i</option>";
		}
	}
	
    echo "
	</SELECT></td>
  </tr>  <tr valign=\"top\">
    <td width=\"202\">Zusatzangaben: </td>
    <td><INPUT TYPE=\"radio\" NAME=\"CMS_VAR[2]\" VALUE=\"0\" ";
	
    if("CMS_VALUE[2]" == 0) { 
		echo "checked=checked"; 
	}
	echo "> nichts <br>
    <INPUT TYPE=\"radio\" NAME=\"CMS_VAR[2]\" VALUE=\"1\" ";
    
	if("CMS_VALUE[2]" == 1) { 
		echo "checked=checked"; 
	} 
	echo "> Kommentar <br>
    <INPUT TYPE=\"radio\" NAME=\"CMS_VAR[2]\" VALUE=\"2\" ";
    
	if("CMS_VALUE[2]" == 2) { 
		echo "checked=checked"; 
	} 
	echo "> Textausschnitt </td>
  </tr>  <tr valign=\"top\">
    <td width=\"202\">Linkziel: </td>
    <td><INPUT TYPE=\"text\" NAME=\"CMS_VAR[3]\" VALUE=\"CMS_VALUE[3]\"></td>
  </tr>
</table>";
Output

Code: Alles auswählen

<?php
echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"margin: 0px\" height=\"10\">
	<tr>
<form name='suche' method='POST' action='front_content.php?idcat=49'>
<td><input type=\"text\" style=\"width:120px\" name=\"suche\" value=\"$suche\"></td>
                <td><INPUT type=\"image\" src=\"images/finden.gif\" valign=\"bottom\"></td>
</form>
         </tr>
</table>";
?>
Die Ausgabeseite der Suche sieht so aus:

Code: Alles auswählen

<html>
	<head>
		<LINK REL="STYLESHEET" HREF="css/xxx.css" TYPE="text/css">
		<title></title>
	</head>

	<body>
		<table width="100%" height="100%" cellspacing="0" cellpadding="0">
			<tr>
				<td align="center" valign="top">
                                 	<table width="795" class="content" height="100%" cellspacing="0" cellpadding="0" border="0">
                                         	<tr>
                                                 	<td height="25" align="right">
<table>
<tr>
<td>CMS_CONTAINER[1]</td>
<td>CMS_CONTAINER[11]</td>
<td><!-- Suche -->CMS_CONTAINER[10]<!-- Ende Suche --></td>
</tr>
</table>
</td>
[b]<!-- #PRINT --> [/b]
                   
                                         	<tr>
                                                 	<td valign="top" height="169"><img src="upload/website/images/dummy.jpg" width="794" height="169" border="0"></td>
                                                 </tr>
                                         	<tr>
                                                 	<td height="35" valign="middle">CMS_CONTAINER[3]</td>
                                                 </tr>
                                         	<tr>
                                                 	<td valign="top" height="1" style="background-color: white"><img src="upload/website/images/1px_w.gif" width="1" height="1"></td>
                                                 </tr>
                                         	<tr>
                                                 	<td valign="middle" height="25">CMS_CONTAINER[4]</td>
                                                 </tr>
                                         	<tr>
                                                 	<td valign="top">
                                                         	<table cellpadding="0" cellspacing="0" border="0" width="795">
<tr>
<td>&nbsp;</td>
</tr>
                                                                 	<tr>
                                                                         	<td class="header" valign="top">CMS_CONTAINER[12]</td>
                                                                         </tr>
<tr>
<td class="inhalt"><p>
<?php
	         echo "<table border=0 cellpadding=0 cellspacing=0>";
	         if($suche){
	         $suche = trim($suche);
	         $suchregexp = "(".str_replace(" ",")|(",$suche).")";
	         $s=ereg_replace("ü", "%FC",strtolower($suche));
	         $s=ereg_replace("ä", "%E4",$s);
	         $s=ereg_replace("ö", "%F6",$s);
	         $suchregexp .= "|$s";
	         $suchliste = explode(" ",strtolower($suche));

	         $sql = "SELECT
	         a.title AS title, a.idart AS idart, a.summary AS comment, a.idartlang AS idartlang,
	         b.idcat AS idcat,
	         c.parentid AS parentid,
	         d.value AS content
	         FROM
	         ".$cfg["tab"]["art_lang"]." AS a,
	         ".$cfg["tab"]["cat_art"]." AS b,
	         ".$cfg["tab"]["cat"]." AS c,
	         ".$cfg["tab"]["content"]." AS d
	         WHERE
	         a.idart = b.idart AND
	         a.idartlang = d.idartlang AND
	         b.idcat = c.idcat AND
	         c.idclient = '$client' AND
	         idlang = '$lang' AND
	         online='1' AND
	         (d.value REGEXP '$suchregexp' OR a.title REGEXP '$suchregexp' OR a.summary REGEXP '$suchregexp')";

	         $db->query($sql);
	         if ($db->num_rows() != 0){
	         for ($i=0; $i<$db->num_rows(); $i++) {
	         $db->next_record();
	         if ($auth->auth["uid"] == "nobody"){
	         $sql2 = "SELECT public FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='".$db->f("idcat")."'";
	         $db2 = new DB_Contenido; $db2->query($sql2); $db2->next_record();
	         if($db2->f("public") == 0) continue;
	         };
	         $num = 0 + $db->f("idartlang");
	         $results[$num][link] = "front_content.php?client=$client&lang=$lang&parent=".$db->f("parentid")."&idcat=".$db->f("idcat")."&idart=".$db->f("idart")."";
	         $results[$num][title] = $db->f("title");
	         switch ("CMS_VALUE[2]") {
	         case 0: $results[$num][text] = "";break;
	         case 1: $results[$num][text] = $db->f("comment");break;
	         case 2: $results[$num][text] .= substr(strip_tags(rawurldecode($db->f("content"))),0,100)."...";
	         };
	         for($x=0;$x<count($suchliste);$x++){
	         $hits[$num] += substr_count(strtolower($db->f("title")), $suchliste[$x]) +
	         substr_count(strtolower($db->f("comment")), $suchliste[$x]) +
	         substr_count(strtolower($db->f("content")), $suchliste[$x]);
	         };
	         };
	         if(count($hits) > 0){
	         $hits = array_values($hits);
	         $results = array_values($results);
	         array_multisort ($results, SORT_DESC, SORT_NUMERIC, $hits, SORT_DESC, SORT_NUMERIC);
	         for ($i=0; $i<count($hits); $i++){
	         echo "<tr><td align=left class=inhalt><font size=\"-1\"><a href=\"".$results[$i][link]."\"";

	         echo ">".$results[$i][title]."</a></font>(".$hits[$i]." Treffer)<BR>";
	         echo $results[$i][text]."</span></td></tr>";
	         };
	         } else { echo "<tr><td class='inhalt' align=center>Keine passenden Seiten gefunden</td></tr>"; };
	         } else { echo "<tr><td class='inhalt' align=center>Keine passenden Seiten gefunden</td></tr>"; };
	         };
	         echo "</table>";
	         ?>
</p>
</td>
</tr>
                                                                 </table>
                                                         </td>
                                                 </tr>
                                         </table>
                                 </td>
			</tr>

[b]<!-- ##PRINT --> [/b]
		</table>
	</body>


</html>

Verfasst: Mi 3. Nov 2004, 23:13
von Haue
Hi, auch ich nutze dieses Modul, doch leider wird auf der auszudruckenden Seite nichts angezeigt: http://www.huerkamp-lucas.de/cms1/cms/front_content.php

Verfasst: Mo 18. Apr 2005, 19:58
von Mc
Danke für das nützliche Modul.

Ich habe im output geändert:

echo "<a class=\"klein\" onclick=\"MM_openBrWindow('artikel_drucken.php?url=".$url."','','resizable=yes, scrollbars=yes, width=720, height=640')\" href=\"javascript:;\">[ Artikel drucken ]</a> "

in der standard.js:
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}

Druckbereich geht dann in einem popup auf.

Verfasst: So 16. Okt 2005, 21:13
von bruderbarnabas
Hi,

das Modul ist genau das was ich suche, aber irgendwas geht da nicht bei mir.

Bekomme folgenden Fehler wenn ich auf "Artikel drucken" klicke.
Warning: file_get_contents(): URL file-access is disabled in the server configuration in /usr/www/users/artcon/optoreha/cms/artikel_drucken.php on line 21

Warning: file_get_contents(http://artconcept-werbeagentur.de/optor ... idcatart=3): failed to open stream: no suitable wrapper could be found in /usr/www/users/artcon/optoreha/cms/artikel_drucken.php on line 21
Habe im Layout z.Bsp so was gemach:
<td>
<!-- #PRINT -->
CMS_CONTAINER[4]
<!-- ##PRINT -->
</td>
Und die Datei auch die artikel_drucken.php genau so gemacht wie du.
(hab sogar alle chmod rechte 777 vergeben)

An was kann es denn liegen?

Hat jemand ne Idee und kann mir weiterhelfen?

Es geht um diese Seite: http://artconcept-werbeagentur.de/optor ... hp?idcat=3

Und ich versuche den Content von Container 4 auszugeben.

Is noch im Aufbau ;)


Danke euch!

Basti

Verfasst: So 16. Okt 2005, 22:23
von HerrB
Ähm, steht doch da...
Warning: file_get_contents(): URL file-access is disabled in the server configuration in /usr/www/users/artcon/optoreha/cms/artikel_drucken.php on line 21
Die Konfiguration Deines Servers verhindert, dass die Funktion file_get_contents eine Datei via URL (http://...) öffnen kann...

D.h. man müsste den Server anders konfigurieren. Wenn es nicht Dein eigener ist -> Provider (unwarscheinlich...). Wie man das macht: Keine Ahnung... (wenn es Dein eigener ist).

Gruß
HerrB

Problem mit mehreren Sprachen - Variablen übergeben

Verfasst: Mo 17. Okt 2005, 20:41
von lunsen_de
Ich hoffe mir kann bei dem modul jemand helfen.

Es gibt ein problem bei der Uebergabe der Variablen. Es wird nur das"?" nach front_content.php uebergeben (weil alles ein link im link ist).

Adresse im Browser (artikel drucken seite, bei mir sind die Artikel zweispachig, Sprache 5 ist englisch):

http://domain.de/cms/artikel_drucken.ph ... 5&client=1

Der Browser interpretiert also

http://domain.de/cms/artikel_drucken.php?url=....den link bis ?idcatart....&lang=5&client=1

soll aber

http://domain.de/cms/artikel_drucken.php?url=...den link mit seinen variablen...

verarbeiten.

wie kann man das modul formatieren dass "&lang=x" der front_content.php zugeordnet wird und nicht als und zur artikel_drucken.php?url= (diese datei weiß mit "lang" naehmlich nichts anzufangen). Wie kann man die Variable also richtig uebergeben.

Ich hoffe die php-Spezialisten haben eine Lösung.

mfg lunsen_de

Verfasst: Di 18. Okt 2005, 12:43
von HerrB
Öhm, die Beispiele waren jetzt nicht so verständlich. Nach mehrfachem lesen glaube ich folgendes verstanden zu haben:

Er soll http://domain.de/cms/front_content.php? ... 5&client=1 drucken; er versucht aber http://domain.de/cms/front_content.php? zu drucken. Richtig?

Gruß
HerrB

Nicht ganz

Verfasst: Di 18. Okt 2005, 12:59
von lunsen_de
hallo, nicht ganz

er soll drucken


http://domain.de/cms/artikel_drucken.ph ... &client=1)

nimmt aber in der zweiten (lang5) sprache nur die variable idcatart.
druckseite wird interpretiert als


http://domain.de/cms/artikel_drucken.ph ... 5&client=1

die klammern sind nur da um beim link im link zu zeigen welche variablen er welcher php-seite zuordnet.

gruss lunsen_de

Problem gelöst

Verfasst: Di 18. Okt 2005, 17:05
von lunsen_de
Problem gelöst.

Wer also dieses Druckenmodul bei mehreren Sprachen verwenden will, sollte den Code folgendermassen aendern (ansonsten wird bei einer zweiten Sprache z.B. Englisch immer die Sprache 1 (default) angezeigt, da die lang-Variable nicht uebergeben wird).

Code: Alles auswählen

<?php 
   $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?idcatart='. $idcatart .'&lang='. $lang .'&client='. $client; 
   echo '<a href="artikel_drucken.php?url=', urlencode ($url), '" target="_blank">Seite drucken</a>' ?>
gruss lunsen_de

Verfasst: Mi 2. Nov 2005, 17:35
von Lepkojus
Leider funktioniert das Modul nicht, wenn ich geschützte Artikel drucken will. Muß wahrschieinlich an dem fopen($url,"r"); liegen, da muß wahrscheinlich die Session bzw. der User mit.

Geht das irgendwie?

gleiches problem

Verfasst: Do 8. Dez 2005, 16:31
von joe
hallo,

ich habe das gleiche Problem wie lepkojus, nämlich dass man geschützte artikel nicht drucken kann (obwohl man natürlich angemeldet ist).

auch ich würde mich daher über einen lösungsansatz freuen.

joe