User-agent: Googlebot Disallow: /index2.php?option=com_content&do_pdf=1* User-agent: * Disallow: /administrator/ Disallow: /cache/ Disallow: /components/ Disallow: /editor/ Disallow: /help/ Disallow: /images/ Disallow: /includes/ Disallow: /language/ Disallow: /mambots/ Disallow: /media/ Disallow: /modules/ Disallow: /templates/ Disallow: /installation/ /** * This file has been modified by Vincent Cheah, ByOS Technologies 2006-12-28 12:07 * for integration with JACLPlus Component */ /** * @version $Id: pdf.php 5073 2006-09-15 23:49:17Z friesengeist $ * @package Joomla * @copyright Copyright (C) 2005 Open Source Matters. All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. * Created by Phil Taylor me@phil-taylor.com * Support file to display PDF Text Only using class from - http://www.ros.co.nz/pdf/readme.pdf * HTMLDoc is available from: http://www.easysw.com/htmldoc and needs installing on the server for better HTML to PDF conversion **/ // no direct access defined( '_VALID_MOS' ) or die( 'Restricted access' ); function dofreePDF() { global $mosConfig_live_site, $mosConfig_sitename, $mosConfig_offset; global $mainframe, $database, $my; $id = intval( mosGetParam( $_REQUEST, 'id', 1 ) ); $gid = $my->gid; $now = _CURRENT_SERVER_TIME; $nullDate = $database->getNullDate(); // query to check for state and access levels $query = "SELECT a.*, cc.name AS category, s.name AS section, s.published AS sec_pub, cc.published AS cat_pub," . "\n s.access AS sec_access, cc.access AS cat_access, s.id AS sec_id, cc.id as cat_id" . "\n FROM #__content AS a" . "\n LEFT JOIN #__categories AS cc ON cc.id = a.catid" . "\n LEFT JOIN #__sections AS s ON s.id = cc.section AND s.scope = 'content'" . "\n WHERE a.id = " . (int) $id . "\n AND a.state = 1" //. "\n AND a.access <= " . (int) $gid . "\n AND a.access " . ( isset($my->jaclplus) ? "IN ( $my->jaclplus )" : "<= " . (int) $gid ) . "\n AND ( a.publish_up = " . $database->Quote( $nullDate ) . " OR a.publish_up <= " . $database->Quote( $now ) . " )" . "\n AND ( a.publish_down = " . $database->Quote( $nullDate ) . " OR a.publish_down >= " . $database->Quote( $now ) . " )" ; $database->setQuery( $query ); $row = NULL; if ( $database->loadObject( $row ) ) { /* * check whether category is published */ if ( !$row->cat_pub && $row->catid ) { mosNotAuth(); return; } /* * check whether section is published */ if ( !$row->sec_pub && $row->sectionid ) { mosNotAuth(); return; } /* * check whether category access level allows access */ if(isset($my->jaclplus)){ if ( !jaclplusInList($row->cat_access, $my->jaclplus) && $row->catid ) { mosNotAuth(); return; } } else { if ( ($row->cat_access > $gid) && $row->catid ) { mosNotAuth(); return; } } /* * check whether section access level allows access */ if(isset($my->jaclplus)){ if ( !jaclplusInList($row->sec_access, $my->jaclplus) && $row->sectionid ) { mosNotAuth(); return; } } else { if ( ($row->sec_access > $gid) && $row->sectionid ) { mosNotAuth(); return; } } include( 'includes/class.ezpdf.php' ); $params = new mosParameters( $row->attribs ); $params->def( 'author', !$mainframe->getCfg( 'hideAuthor' ) ); $params->def( 'createdate', !$mainframe->getCfg( 'hideCreateDate' ) ); $params->def( 'modifydate', !$mainframe->getCfg( 'hideModifyDate' ) ); $row->fulltext = pdfCleaner( $row->fulltext ); $row->introtext = pdfCleaner( $row->introtext ); $pdf = new Cezpdf( 'a4', 'P' ); //A4 Portrait $pdf -> ezSetCmMargins( 2, 1.5, 1, 1); $pdf->selectFont( './fonts/Helvetica.afm' ); //choose font $all = $pdf->openObject(); $pdf->saveState(); $pdf->setStrokeColor( 0, 0, 0, 1 ); // footer $pdf->addText( 250, 822, 6, $mosConfig_sitename ); $pdf->line( 10, 40, 578, 40 ); $pdf->line( 10, 818, 578, 818 ); $pdf->addText( 30, 34, 6, $mosConfig_live_site ); $pdf->addText( 250, 34, 6, _PDF_POWERED ); $pdf->addText( 450, 34, 6, _PDF_GENERATED .' '. date( 'j F, Y, H:i', time() + $mosConfig_offset * 60 * 60 ) ); $pdf->restoreState(); $pdf->closeObject(); $pdf->addObject( $all, 'all' ); $pdf->ezSetDy( 30 ); $txt1 = $row->title; $pdf->ezText( $txt1, 14 ); $txt2 = AuthorDateLine( $row, $params ); $pdf->ezText( $txt2, 8 ); $txt3 = $row->introtext ."\n". $row->fulltext; $pdf->ezText( $txt3, 10 ); $pdf->ezStream(); } else { mosNotAuth(); return; } } function decodeHTML( $string ) { $string = strtr( $string, array_flip(get_html_translation_table( HTML_ENTITIES ) ) ); $string = preg_replace( "/([0-9]+);/me", "chr('\\1')", $string ); return $string; } function get_php_setting ($val ) { $r = ( ini_get( $val ) == '1' ? 1 : 0 ); return $r ? 'ON' : 'OFF'; } function pdfCleaner( $text ) { // Ugly but needed to get rid of all the stuff the PDF class cant handle $text = str_replace( '
', "\n\n", $text ); $text = str_replace( '
', "\n\n", $text );
$text = str_replace( '
', "\n", $text );
$text = str_replace( '
', "\n", $text );
$text = str_replace( '
', "\n", $text );
$text = str_replace( '
', "\n", $text );
$text = str_replace( '