[gelöst] Druckfreundliche Seiten -> Fehler

Hilfe zu Modulen und Tags
Post Reply
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am

[gelöst] Druckfreundliche Seiten -> Fehler

Post by nicmare »

Ich habe das Modul in mein template eingebunden: {print}
Ich habe nichts weiter modifiziert. Aber sobald man dann den "drucken" link klickt, wird eine neue Seite geladen und ich kriege einen Fehler (siehe Anhang).
Leider gibt es zu dem Thema keine Dokumentation, weder in der Modulhilfe, noch im Wiki oder gar im Forum?!
Liegt das an allow_url_fopen = off? (der einzige hinweis den ich im Forum gefunden habe)
wenn ich mir mit get_template_vars die werte anzeigen lasse, ist content leer!
also da steht nur
content =
Attachments
Bildschirmfoto 2010-07-12 um 12.03.19.png
Last edited by nicmare on Tue Jul 13, 2010 7:53 am, edited 1 time in total.
User avatar
hardy
Translator
Translator
Posts: 12
Joined: Thu Feb 18, 2010 6:05 am

Re: Druckfreundliche Seiten -> Fehler

Post by hardy »

was passiert denn, wenn du im drucktemplate den platzhalter {content} mal gegen einfachen text austauschst (z.b. "probiertestversuchstext"  ;))?
tritt das problem nur auf einer seite auf, oder auf jeder?
Hardy

Wenn man von Etwas keine Ahnung hat, braucht man auch keine Angst davor zu haben.

skype:hardyclas
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am

Re: Druckfreundliche Seiten -> Fehler

Post by nicmare »

nein, das geht! also alles außer content ;)
User avatar
hardy
Translator
Translator
Posts: 12
Joined: Thu Feb 18, 2010 6:05 am

Re: Druckfreundliche Seiten -> Fehler

Post by hardy »

vielleicht hilft ja ein lösungsweg, den ich mir gebastelt habe. das printmodul wertet nämlich modulaufrufe wie {news category=$category} im content nicht aus und bringt statt den news nur eine fehlermeldung, das er $category nicht kennt. deswegen habe ich mir ein kleines tag geschrieben, was mir den compilierten inhalt beim druck ausgibt.

1. udt anlegen (name hier get_content_from)

global $gCms;
$smarty = &$gCms->GetSmarty();
if(!isset($params['pagealias'])){return;}else{$pagealias = $params['pagealias'];}
$db = &$gCms->db;
$sql_id = "SELECT content_id FROM ".cms_db_prefix()."content WHERE content_alias = '".$pagealias."'";
$pageid = $db->Execute($sql_id);
while ($pageid && $pageidrow = $pageid->FetchRow()){
  $sql_pagecontent = "SELECT content FROM ".cms_db_prefix()."content_props WHERE content_id = ".$pageidrow['content_id']." AND prop_name = 'content_en'";
  $pagecontent = $db->Execute($sql_pagecontent);
  while ($pagecontent && $pagecontentrow = $pagecontent->FetchRow()){
      $content .= $pagecontentrow['content']; 
  }
}

$smarty->_compile_source('temporary template', $content, $_compiled);       
@ob_start();
$smarty->_eval('?>' . $_compiled);
$content = @ob_get_contents();
@ob_end_clean();     

return $content;


gut, adodb muss ich mal noch anpassen, da ja immer nur ein datensatz rauskommen kann/soll/darf.
das tag holt den content anhand des übermittelten pagealias aus der datenbank und compiliert ihn so, das er genauso aussieht, wie wenn du die seite direkt aufrufst.

2.drucktemplate anpassen
ersetze {content} mit {get_content_from pagealias=$page_alias}
in diesem beispiel wird der aktuelle pagealias verwendet. man könnte natürlich auch einen anderen pagealias über die url des printlinks übermitteln und mit smarty auslesen. macht das druckmodul etwas flexibler.

ich hoffe mal, das es hilft.
Hardy

Wenn man von Etwas keine Ahnung hat, braucht man auch keine Angst davor zu haben.

skype:hardyclas
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am

Re: Druckfreundliche Seiten -> Fehler

Post by nicmare »

hey, das funktioniert, super! kannst du den entwicklern nicht mal zeigen wie man es richtig macht? :D
dankeee
User avatar
hardy
Translator
Translator
Posts: 12
Joined: Thu Feb 18, 2010 6:05 am

Re: [gelöst] Druckfreundliche Seiten -> Fehler

Post by hardy »

freut mich, das es klappt. funktioniert übrigens auch bei den pdf's.
theoretisch bräuchte man im modul nur die "contentbildung" mit dem udt ersetzen. dann lässt sich der pagealias gleich als parameter beim aufruf übergeben. damit erspart man sich die bearbeitung der drucklinks.

lustiges schwitzen bei den temperaturen noch.
Hardy

Wenn man von Etwas keine Ahnung hat, braucht man auch keine Angst davor zu haben.

skype:hardyclas
cyberman

Re: [gelöst] Druckfreundliche Seiten -> Fehler

Post by cyberman »

nicmare wrote: nein, das geht! also alles außer content ;)
Hast du mal versucht, im Druck-Template {content} durch {news ...} zu ersetzen?

Wenn du den News-Aufruf im Content hast, hast du das Problem, dass Smarty 2x parsen muss - der content-Tag macht das, das Druck-Modul nicht.
User avatar
hardy
Translator
Translator
Posts: 12
Joined: Thu Feb 18, 2010 6:05 am

Re: [gelöst] Druckfreundliche Seiten -> Fehler

Post by hardy »

das problem ist wahrscheinlich, das die variable $category im template durch ein udt gebildet wird und diese dadurch dem newsmodul beim aufruf innerhalb der vom druckmodul erstellten seite nicht zur verfügung steht. somit schlägt {news category=$category} fehl, weil in der druckseite ja die einbindung des udt fehlt. das gleiche tritt auch beim kalendermodul auf.
wahrscheinlich müsste ich den ganzen headerbereich das seitentemplates in das drucktemplate packen. wäre mal einen versuch wert.
Hardy

Wenn man von Etwas keine Ahnung hat, braucht man auch keine Angst davor zu haben.

skype:hardyclas
Post Reply

Return to “Module und Tags”