No Template ... Wie funzt denn das Ausdrucken bei R4?

Wie verwendet man Module oder Aktion und passt diese an.

No Template ... Wie funzt denn das Ausdrucken bei R4?

Beitragvon Cabby » 9. Nov 2007, 11:55

Hi,

mal ne Frage zu R4 ... Die bewährte " Artikel Drucken" Methode funzt nicht mehr.

Template:

<?
echo "<a href=\"index.php?article_id=35&FORM[aid]=$this->article_id&FORM[cla]=REX_CLANG_ID\" target=\"_blank\"><img src=\"files/print.jpg\" /> #ausdruck#</a>"
?>

Modul:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><? print $REX['SERVERNAME'].' | '.$this->getValue("name"); ?></title>
<link href="redaxo/css/style.css" rel="stylesheet" type="text/css">
</head>

<body onLoad="self.print()">
<table width=550 cellpadding=0>
<tr>
<td>
<?

if ("REX_ARTICLE_ID"!=$FORM[aid]) {

$CONTENT = new article();
$CONTENT->setArticleID($FORM[aid]);
$CONTENT->setClang($FORM[cla]);
echo $CONTENT->getArticle();
}

?>
</td>
</tr>
</table>

</body>
</html>

Das Modul habe ich wie üblich in einen Artikel gepackt, der wiederum kein eigenes Template hat. Redaxo sagt mit nun jedoch NO TEMPLATE wenn ich den Artikel aufrufe.

Allerdings funzt es auch nicht, wenn ich das Modul als eigenes Template nutze und es dem entsprechenden Artikel zuweise. Dann bekomme ich zwar die Seite angezeigt, jedoch ohne den gewünschten Inhalt ...

Weiß eventuell jemand Rat?

Gruß
Cabby
clear:both;
Cabby
 
Beiträge: 76
Registriert: 21. Sep 2006, 12:24
Wohnort: Bad Salzuflen

Beitragvon Peter.Bickel » 9. Nov 2007, 13:11

Also erstmal muss ein Artikel in Version 4 immer ein Template haben. Deswegen würde ich das eher ins Template packen. Oder zumindest ein leeres Templare anlegen.

Der zweite Haken dürfte der sein, dass die Parameter-Übergabe mit FORM[parameter] nicht mehr funktioniert.
Ich würde also Paramater in der klassischen Form übergeben:
Code: Alles auswählen
aid=$this->article_id

und dann den Parameter über GET oder REQUEST auslesen:
Code: Alles auswählen
if ("REX_ARTICLE_ID"!=$_GET[aid])


Grüße,
Peter.
Benutzeravatar
Peter.Bickel
 
Beiträge: 1642
Registriert: 25. Jan 2005, 20:17
Wohnort: Schleswig-Holstein

Beitragvon Cabby » 9. Nov 2007, 13:37

Danke für die schnelle Hilfe ...

Leider funzt bei mir gar nichts ... Wie genau muss mann die Variablen denn übergeben und wiederum ins Template einbauen?

Ich versteh ma wieder gaar nix ;)
clear:both;
Cabby
 
Beiträge: 76
Registriert: 21. Sep 2006, 12:24
Wohnort: Bad Salzuflen

Beitragvon Peter.Bickel » 9. Nov 2007, 13:43

Ersetze im aufrufenden Template FORM[aid] mit aid und FORM[cla] mit cla.
Ersetze im aufgerufenen Modul/Template $FORM[aid] mit $_GET[aid] und $FORM[cla] mit $_GET[cla]
Ist ungetestet.
Benutzeravatar
Peter.Bickel
 
Beiträge: 1642
Registriert: 25. Jan 2005, 20:17
Wohnort: Schleswig-Holstein

Beitragvon Cabby » 9. Nov 2007, 16:35

Wunderbar ... dat passt!
Vielen Dank!
clear:both;
Cabby
 
Beiträge: 76
Registriert: 21. Sep 2006, 12:24
Wohnort: Bad Salzuflen

Beitragvon barbe » 15. Nov 2007, 00:07

So könnte das fertige Print-Template aussehen:

Code: Alles auswählen
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><? print $REX['SERVERNAME'].' | '.$this->getValue("name"); ?></title>
</head>

<body onLoad="self.print()">

<?

if ("REX_ARTICLE_ID"!=$_GET[aid])
{
$content = new article;
$content->setArticleID($_GET[aid]);
echo '<h1>'.$content->getValue("name").'</h1>';
echo $content->getArticle();
}

?>

</body>
</html>


Und so der Aufruf:

Code: Alles auswählen
<? print '<a href="index.php?article_id=38&aid='.$this->article_id.'" target="_blank" title="Diese Seite ausdrucken?" alt="Diese Seite ausdrucken?">Drucken</a>'; ?>


Gruss
Sebastian
barbe
 
Beiträge: 245
Registriert: 17. Mai 2006, 12:09

Hier noch die Version für Mehrsprachigkeit

Beitragvon openmind » 30. Aug 2008, 19:27

Danke für Eure postings, haben mir sehr geholfen. allerdings hat es für Rex4 nur einsprachig geklappt.
Deshalb hier noch die ERgänzung für die Mehrsprachige anzeige des Druckfensters:

Link für aufruf:
Code: Alles auswählen
<?
//first article id has to fit the Artikle ID of the article wich has an Printing template
print '<a href="index.php?article_id=82&aid='.$this->article_id.'&clang=REX_CLANG_ID" target="_blank" title="###outprintContent###" alt="###outprintContent###">###outprintContent###</a>';
?>



Hier das vervollständigte Code für das Template:
Code: Alles auswählen

<?php
if ("REX_ARTICLE_ID"!=$_GET[aid])
{
$content = new article;
$content->setArticleID($_GET[aid]);
$content->setClang($REX['CUR_CLANG']);
// Nächste Zeile würde die Bezeichnung der Rubrik oben auf der Druckseite einblenden
// echo '<h1>'.$content->getValue("name").'</h1>';
echo $content->getArticle(1); //cType Nummer (Weglassen, wenn alle cTypes gezeigt werden sollen
}

?>


LG, openmind
:wink:
Benutzeravatar
openmind
 
Beiträge: 134
Registriert: 11. Dez 2006, 11:45


Zurück zu Module/Aktionen [R4]

Wer ist online?

Mitglieder in diesem Forum: jackomono und 3 Gäste