Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

PDF-Plugin: Bitte testen :)

Begonnen von azett, 10. Februar 2013, 21:51:33

« vorheriges - nächstes »

azett

Servus zusammen,

ich habe ein Plugin für moziloCMS 1.12 gebaut, das den Inhalt der aktuellen Inhaltsseite als PDF-Datei zurückgibt. Bevor ich es ins Pluginarchiv einstelle, würde ich euch die Vorversion 0.1 gern erst einmal temporär zum Testen zur Verfügung stellen, damit ich ggfs. auftretende Fehler noch fixen kann.

Download: http://stuff.azett.com/PDF.zip

Wie alles funktioniert, ist in der dem Plugin beiliegenden Liesmich-Datei beschrieben. Der Quellcode ist umfangreich kommentiert, und die Pluginkonfiguration sollte selbsterklärend sein.
Ich verzichte hier mal darauf, Details vorwegzunehmen - so merken wir auch gleich, ob meine Dokumentation ausreichend ist ;)

Kurzfassung zum Ausprobieren:
Plugin hochladen und einfach {PDF} in eine Inhaltsseite einfügen - und dann schauen, was passiert. :)
Wichtig: Voraussetzung ist PHP 5 oder höher!

Bitte lasst mich wissen, wenn etwas nicht wie erwartet funktioniert - oder wenn irgendwas einfach nicht klar beschrieben ist.

Danke! :)

Rainer

Hi Arvid,

bin grad eh beim testen aller Plugins auf Funktionsfähigkeit mit der 1.2, da kommts auf das eine dann auch nicht mehr an :)

Grüße
Rainer
moziloCMS über Facebook bekannt machen
•• moziloCMS auf GitHub
••• Nichts ist einfacher, als das, was uns fremd ist, zu verachten.
•••• Mein moziloCMS

ralfseiner

Folgende Fehlermeldung bei mir:

Fehler n°6
Datei : E:\xampp\htdocs\wkleaks_moz\plugins\PDF\html2pdf\html2pdf.class.php
Linie : 1319

Ladung des Bilds unmöglich E:/xampp/htdocs/wkleaks_moz//wkleaks_moz/kategorien/10_Tach%2520auch/dateien/guy_fawkes2.jpg

könnte aber dran liegen, das es meine Testumgebung mit Xampp ist und der Parser nicht funzt......
Nur leider hab ich grad keine Zeit um das nachzubessern....

Ich halt dich auf dem laufenden.....
Ansonsten ne Super Idee.....

HPdesigner

#3
Den gleichen Fehler bekomm ich aufm UD Media Server auch. Ich denke da läuft was mit den Pfaden schief (doppelter Slash und danach nochmal der gleiche Ordner) und mit mod_rewrite gibts ebenfalls Probleme (da findet er die /plugins/PDF/html2pdf.php nicht, weil er die unter der aktuellen Kategorie sucht).
Check my website devmount.de
and find me on Twitter, Medium, GitHub, StackOverflow, Codepen and Slack

Thorstn

Ich hatte die gemeldeten Fehler auch... wobei ich beim ersten Mal noch ein PDF generieren konnte, danach gab es eine Fehlermeldung bzw. eine 404 Error Seite.
Hab jetzt mal das mod_rewrite im moziloAdmin (Einstellungen) ausgeschaltet, und siehe da: dann funktioniert das Plugin.
(Habs jetzt testweise auf mehreren Inhaltsseiten - offline via xampp - eingefügt und getestet.)

Gruß,
Thorsten
www.mad-it.de - Wir lösen keine Probleme. Wir machen sie.
Webdesign aus Bochum

stefanbe

hab mal ein bischen gespielt

in der index.php volgende functionen ersetzen
<?php
    
function getContent($value)  {
        global 
$CatPage;
        global 
$CMS_CONF;
        global 
$smileys;
        global 
$CSS_FILE;
        global 
$WEBSITE_NAME;
        global 
$PLUGIN_DIR_REL;
        
        if(
getRequestParam("printpdf"true) == "true") {

            
$pagecontent $CatPage->get_PageContent(CAT_REQUEST,PAGE_REQUEST,true,true);
            
# das wollen wir nicht im pdf haben
            
$pagecontent preg_replace('/{PDF(\|.*)?}/Umsi'''$pagecontent);

            if (
$CMS_CONF->get("replaceemoticons") == "true") {
                
$pagecontent $smileys->replaceEmoticons($pagecontent);
            }
            
// Vorbereitungen fürs VerPDFen
            
$pagecontent $this->prepareContentForPdf($pagecontent);

            
// Kopf- und Fußzeile fürs PDF
            
$pdfheader getWebsiteTitle();
            
$pdffooter $this->getPageURL().'<br />PDF erstellt: '.date("d.m.Y H:i",time());
        
            
// Dateiname der ausgelieferten PDF-Datei
            // entweder als Wert im Plugin-Platzhaltern angegeben ({PDF|dateiname.pdf})...
            
if ($value != "") {
                
$pdffilename $value;
            } 
            
// ...oder einfach aus der Plugin-Config
            
else {
                
$pdffilename $this->settings->get('pdffilename');
            }
        
            
// CSS für die PDF-Datei
            
$cssfile $this->settings->get('cssfile');
            if (
$cssfile == "layoutcss") {
                
$cssfile BASE_DIR.$CSS_FILE;
            }
            else {
                
$cssfile $PLUGIN_DIR_REL.get_class($this).'/pdfstyle.css';
            }
            include_once(
$PLUGIN_DIR_REL.get_class($this).'/html2pdf.php');
            exit();
        } else {
            return 
'<form action="'.$CatPage->get_Href(CAT_REQUEST,PAGE_REQUEST).'" method="post" class="pdfplugin">'
            
.'<input type="hidden" name="printpdf" value="true" />'
            
.'<input type="submit" class="pdfpluginbutton" value="'.$this->settings->get('buttontext').'" />'
            
.'</form>';
        }
    } 
// function getContent
    
    /***************************************************************
    * 
    * Aufbereitung des zu verPDFenden HTML-Codes für html2pdf
    * 
    ***************************************************************/
    
function prepareContentForPdf($pagecontent) {
        global 
$specialchars;
        
        
// lokale src-Attribute (z.B. von Bildern) bekommen den absoluten Pfad der Website auf dem Server vorangestellt
        // - sonst kann html2pdf die Bilder nicht finden!
# wenn mozilo in einem unterordner ist geht das nicht mehr
#        $pagecontent = preg_replace('/src\=\"(?!https?|ftps?)/i', 'src="'.BASE_DIR, $pagecontent);
        
# regex muss geprüft werden
$pagecontent preg_replace_callback(
    
'/src\=\"(?!https?|ftps?)(.+)\"/iU',
    
create_function('$treffer','return str_replace(URL_BASE,BASE_DIR,$treffer[0]);'),
    
$pagecontent
  
);
        
// lokale Links (z.B. von Kategorien) bekommen den URL der Website vorangestellt
        // - damit kann man die Linkziele dann aus dem generierten PDF heraus erreichen.
        // moziloCMS-mailto-Links werden als numerische HTML-Entitys ausgegeben, deswegen das "\&\#" im Regex.
        
$pagecontent preg_replace('/href\="(?!https?\:|mailto\:|ftps?\:|\&\#)/i''href="'.$this->getSiteURL().'/'$pagecontent);

        return 
$pagecontent;
    }
?>


und in der html2pdf.php die "#" davor machen
und ganz ans ende noch ein ?> besser is das
<?php
# $pagecontent = html_entity_decode($_POST['pagecontent']);
# $pdfheader = html_entity_decode($_POST['pdfheader']);
# $pdffooter = html_entity_decode($_POST['pdffooter']);
# $pdffilename = $_POST['pdffilename'];
# $cssfile = $_POST['cssfile'];

?>


lg stefanbe

Rainer

Habs mal mit den Änderungen versucht, bekomme aber nur eine weiße Seite geliefert  :(
moziloCMS über Facebook bekannt machen
•• moziloCMS auf GitHub
••• Nichts ist einfacher, als das, was uns fremd ist, zu verachten.
•••• Mein moziloCMS