Avisos
Vaciar todo

Flexicontent - MiniGallery y PDF  

 
Jorge
 Jorge
Nuevo usuario

Buenas,

Quisiera saber si existe algún módulo, plugin o componente, para poder editar el PDF que joomla genera.

He visto por ahí que hay una extensión llamada PrettyPDF, el problema está en que, a parte de costar 39€, mi joomla! (1.5.20) lleva instalado el componente Flexicontent (1.5.3). Y no me aseguran que vaya a funcionar. De hecho no va a funcionar porque saca el PDF de lo que se escriba en el editor HTML y yo necesito que me añada otros campos.

Sencillamente quisiera poder editar el PDF que genera para ponerlo a mi gusto, o al menos que me saque los campos que tengo en la plantilla de Flexicontent como "imágenes" y "miniGallery", campos de texto, etc....

¿Alguien me puede echar una mano?
Saludos.

Citar
Respondido : 19/10/2010 2:34 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola piri

Si quieres editar la salida pdf de los artículos, tienes que tener conocimientos de programación y además modificar algunos archivos del core de joomla.

Por ejemplo para modificar la salida pdf de un artículo, tendrías que editar:
/components/com_content/views/articles/view.pdf.php

Cuando dices "yo necesito que me añada otros campos" tienes que hacerlo desde el html como lo hace la extensión que mencionas (PrettyPDF) o desde programación como te indiqué anteriormente.

No conozco ninguna extensión que haga modificaciones a pdf hechos, sólo algunos programas por ejemplo Adobe Writer, pero evidentemente el trabajo es manual.

Saludos.

ResponderCitar
Respondido : 20/10/2010 12:22 am

Jorge
 Jorge
Nuevo usuario

Ok, he modificado sin problemas la cabecera del PDF editando el fichero /components/com_flexicontent/views/items/view.pdf.php. Sólo he podido modificar la cabecera ya que no encuentro en el código dónde está llamando al texto del articulo. ¿Es posible que el texto del artículo si lo esté sacando de /components/com_content/views/articles/view.pdf.php

Lo pego el código del view.pdf.php del componente Flexicontent.

 * @version 1.5 stable $Id: view.pdf.php 171 2010-03-20 00:44:02Z emmanuel.danan $
 * @package Joomla
 * @subpackage FLEXIcontent
 * @copyright (C) 2009 Emmanuel Danan - www.vistamedia.fr
 * @license GNU/GPL v2
 * 
 * FLEXIcontent is a derivative work of the excellent QuickFAQ component
 * @copyright (C) 2008 Christoph Lukes
 * see www.schlu.net for more information
 *
 * FLEXIcontent is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.application.component.view');

/**
 * HTML Item View class for the FLEXIcontent component
 *
 * @package		Joomla
 * @subpackage	FLEXIcontent
 * @since 1.0
 */
class FlexicontentViewItems extends JView
{
	function display($tpl = null)
	{
		global $mainframe;

		$dispatcher	=& JDispatcher::getInstance();

		// Initialize some variables
		$item 		= & $this->get('Item');
		$params 	= & $mainframe->getParams('com_flexicontent');
		$fields		= & $this->get( 'Extrafields' );

		$tags = null;
		$categories = null;
		$favourites = null;
		$favoured = null;

		// process the new plugins
		JPluginHelper::importPlugin('content', 'image');
		$dispatcher->trigger('onPrepareContent', array (& $item, & $params, 0));

		$document = &JFactory::getDocument();

		// set document information
		$document->setTitle($item->title);
		$document->setName($item->alias);
		$document->setDescription($item->metadesc);
		$document->setMetaData('keywords', $item->metakey);

		// prepare header lines
		$document->setHeader($this->_getHeaderText($item, $params));
		
		foreach ($fields as $field) {
			if ($field->iscore == 1 || $field->field_type == ('image' || 'file')) {
			
				/*$results = $dispatcher->trigger('onDisplayCoreFieldValue', array( &$field, $item, &$params, $tags, $categories, $favourites, $favoured ));*/
				
			} else {
				$results = $dispatcher->trigger('onDisplayFieldValue', array( &$field, $item ));
				echo $field->label . ': ';
				echo $field->display . '
'; } } echo $item->text; } function _getHeaderText(& $item, & $params) { // Initialize some variables $text = ''; if ($params->get('show_author')) { // Display Author name $text .= "n"; $text .= JText::_( 'FLEXI_WRITTEN_BY' ).' '. ($item->created_by_alias ? $item->created_by_alias : $item->author); } if ($params->get('show_create_date') && $params->get('show_author')) { // Display Separator $text .= "n"; } if ($params->get('show_create_date')) { // Display Created Date if (intval($item->created)) { $create_date = JHTML::_('date', $item->created, JText::_( 'DATE_FORMAT_LC2' )); $text .= $create_date; } } if ($params->get('show_modify_date') && ($params->get('show_author') || $params->get('show_create_date'))) { // Display Separator $text .= " - "; } if ($params->get('show_modify_date')) { // Display Modified Date if (intval($item->modified)) { $mod_date = JHTML::_('date', $item->modified); $text .= JText::_( 'FLEXI_LAST_REVISED' ).' '.$mod_date; } } return $text; } }

Otra cosa,

Cuando dices que el añadir campos tengo que hacerlo desde el HTML ¿te refieres al archivo view.html.pdf ?. ¿ese archivo se encarga de construir de llamar a los campos de Mysql para sacarlos en el PDF?

Otra opción sería crear yo el pdf con alguna clase tipo class.ezpdf.php, llamando desde un php a la base de datos de joomla. (puesto que podría rescatar la id del artículo).

También creo que hay algo en JavaScript para PDF dinámicos (jsPDF) pero creo que la opción más factible será la de crear yo mi propio php que haga consultas y saque el pdf. Ah no ser que me deis otra idea.

Saludos y Gracias.

ResponderCitar
Respondido : 20/10/2010 11:44 am