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 =
[gelöst] Druckfreundliche Seiten -> Fehler
[gelöst] Druckfreundliche Seiten -> Fehler
Last edited by nicmare on Tue Jul 13, 2010 7:53 am, edited 1 time in total.
Re: Druckfreundliche Seiten -> Fehler
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?

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
Wenn man von Etwas keine Ahnung hat, braucht man auch keine Angst davor zu haben.
skype:hardyclas
Re: Druckfreundliche Seiten -> Fehler
nein, das geht! also alles außer content 

Re: Druckfreundliche Seiten -> Fehler
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.
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
Wenn man von Etwas keine Ahnung hat, braucht man auch keine Angst davor zu haben.
skype:hardyclas
Re: Druckfreundliche Seiten -> Fehler
hey, das funktioniert, super! kannst du den entwicklern nicht mal zeigen wie man es richtig macht? 
dankeee

dankeee
Re: [gelöst] Druckfreundliche Seiten -> Fehler
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.
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
Wenn man von Etwas keine Ahnung hat, braucht man auch keine Angst davor zu haben.
skype:hardyclas
Re: [gelöst] Druckfreundliche Seiten -> Fehler
Hast du mal versucht, im Druck-Template {content} durch {news ...} zu ersetzen?nicmare wrote: nein, das geht! also alles außer content![]()
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.
Re: [gelöst] Druckfreundliche Seiten -> Fehler
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.
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
Wenn man von Etwas keine Ahnung hat, braucht man auch keine Angst davor zu haben.
skype:hardyclas