Phoca PDF installieren und benutzen - Joomla! 3.3

Dieser Artikel beschreibt die Installation der Phoca PDF Komponente in Joomla! 3.3 und späteren Versionen.

In Joomla! 2.5 oder 3.x ist das PDF Feature nicht mehr enthalten. Wenn Sie PDF Dokumente aus Ihren Artikeln erstellen möchten, sollten Sie die Phoca PDF Komponente und das Phoca PDF Content Plugin installieren. Wie auch immer, es ist nicht so einfach wie es aussieht. Joomla! enthält in der Artikelansicht keine Links zu PDF und es gibt kein effektives Ereignis, das erlaubt einen PDF Link durch ein Plugin einzufügen. Das bedeutet, einige Joomla! Dateiein müssen verändert werden.

 

Download

Laden Sie die Phoca PDF Komponente von der Phoca PDF Download-Seite herunter. Sie erhalten eine Zip-Datei.

Installation

Loggen Sie sich in Ihre Joomla! Administrationsseite (Backend) ein und folgen Sie diesen Schritten:

Gehen Sie zu Erweiterungen (Erweiterungen - Erweiterungen: Installieren). Sie können:

  • Packetdatei hochladen - wählen Sie die Phoca PDF Komponente ZIP-Datei auf Ihrer Festpatte aus und klicken Sie auf Hochladen & Installieren.
  • Aus Verzeichnis installieren - Sie können die Phoca PDF Komponente ZIP-Datei in ein Verzeichnis Ihres Servers hochladen und von dort aus installieren.
  • Von Webadresse installieren - Sie können von einer anderen URL aus installieren.


1) Installieren Sie die Komponente.

 

2) Die Komponente selbst produziert keine PDFs, deshalb müssen Sie um PDF Dokumente aus Artikeln zu erzeugen, das Phoca PDF Content Plugin installieren. Installieren Sie es auf die gleiche Weise, wie Sie die Komponente installiert haben. Nach der Installation gehen Sie zu Erweiterungen (Plugins - Erweiterungen: Plugins) und aktivieren das Plugin.

 

3) Nun haben wir die Phoca PDF Komponente und das Phoca PDF Content Plugin installiert. Joomla! kann nun PDF Dokumente von Artikeln erstellen. Aber wir benötigen noch eine Kleinigkeit - einen Link zum PDF. Unglücklicherweise sind Artikel ein Teil von Joomla! und das enthält keine derartigen Links, weshalb wir ihn erzeugen müssen. Es gibt zwei mögliche Optionen dies zu tun:

 

3a) Das Phoca PDF System Plugin installieren (beachten Sie: Das Phoca PDF System Plugin ist nicht das Phoca PDF Content Plugin). Das Phoca PDF System Pluginversucht den Ort zu finden, in den Joomla! alle anderen Icons (Drucken, E-Mail) plaziert um dann dort das Phoca PDF Icon (PDF Link) hinzuzufügen. Leider hat diese Funktion viele Einschränkungen:

  • Es funktioniert nur mit Standard-Templates, die die Joomla! Ausgabe nicht überschreiben.
  • Es kann andere Teile der Joomla! Ausgabe beeinflussen (z.B. einige andere Teile des HTML Ausgabe entfernen).
  • Es funktioniert nur in der Artikel-Ansicht. (nicht in Featured oder Kategorie-Ansicht)

Was ist der Vorteil dieser Lösung? Falls Sie das PDF Icon nur in der Artikel-Ansicht anzeigen wollen und Ihre Template-Ausgabe Standardformat besitzt, müssen Sie nicht nach jedem Joomla! Update Dateien verändern (siehe unten).

 

3b) Das System Plugin wird auf den meisten Seiten nicht funktionieren. Deshalb ist die einzige Lösung, Joomla! core content Dateien anzupassen (und das muß nach jedem Joomla! Update erneut gemacht werden) :-(

 

Joomla! core content Dateien anpassen:

 

Bearbeiten Sie die folgende Datei (wenn Ihr Template Joomla! content Dateien überschreibt, müssen Sie diese Datei in Ihrem Template Verzeichnis bearbeiten):

layouts/joomla/content/icons.php

Zeile ca. 10

 

VON:

<?php 
defined('JPATH_BASE') or die;

$canEdit = $displayData['params']->get('access-edit');

?>

<div class="icons">
	<?php if (empty($displayData['print'])) : ?>

		<?php if ($canEdit || $displayData['params']->get('show_print_icon') || $displayData['params']->get('show_email_icon')) : ?>
			<div class="btn-group pull-right">
				<a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> <span class="icon-cog"></span> <span class="caret"></span> </a>
				<?php // Note the actions class is deprecated. Use dropdown-menu instead. ?>
				<ul class="dropdown-menu">
					<?php if ($displayData['params']->get('show_print_icon')) : ?>
						<li class="print-icon"> <?php echo JHtml::_('icon.print_popup', $displayData['item'], $displayData['params']); ?> </li>
					<?php endif; ?>
					<?php if ($displayData['params']->get('show_email_icon')) : ?>
						<li class="email-icon"> <?php echo JHtml::_('icon.email', $displayData['item'], $displayData['params']); ?> </li>
					<?php endif; ?>
					<?php if ($canEdit) : ?>
						<li class="edit-icon"> <?php echo JHtml::_('icon.edit', $displayData['item'], $displayData['params']); ?> </li>
					<?php endif; ?>
				</ul>
			</div>
		<?php endif; ?>

	<?php else : ?>

		<div class="pull-right">
			<?php echo JHtml::_('icon.print_screen', $displayData['item'], $displayData['params']); ?>
		</div>

	<?php endif; ?>
</div>

ZU:

<?php 
defined('JPATH_BASE') or die;

$canEdit = $displayData['params']->get('access-edit');
$phocaPDF = false;
if (JPluginHelper::isEnabled('phocapdf', 'content')) {
	include_once(JPATH_ADMINISTRATOR.'/components/com_phocapdf/helpers/phocapdf.php');
	$phocaPDF = PhocaPDFHelper::getPhocaPDFContentIcon($displayData['item'], $displayData['params']);
} 
?>

<div class="icons">
	<?php if (empty($displayData['print'])) : ?>

		<?php if ($canEdit || $displayData['params']->get('show_print_icon') || $displayData['params']->get('show_email_icon') || $phocaPDF) : ?>
			<div class="btn-group pull-right">
				<a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> <span class="icon-cog"></span> <span class="caret"></span> </a>
				<?php // Note the actions class is deprecated. Use dropdown-menu instead. ?>
				<ul class="dropdown-menu">
					<?php if ($displayData['params']->get('show_print_icon')) : ?>
						<li class="print-icon"> <?php echo JHtml::_('icon.print_popup', $displayData['item'], $displayData['params']); ?> </li>
					<?php endif; ?>
					<?php if ($displayData['params']->get('show_email_icon')) : ?>
						<li class="email-icon"> <?php echo JHtml::_('icon.email', $displayData['item'], $displayData['params']); ?> </li>
					<?php endif; ?>
					<?php if ($canEdit) : ?>
						<li class="edit-icon"> <?php echo JHtml::_('icon.edit', $displayData['item'], $displayData['params']); ?> </li>
					<?php endif; ?>
					<?php echo $phocaPDF; ?>
				</ul>
			</div>
		<?php endif; ?>

	<?php else : ?>

		<div class="pull-right">
			<?php echo JHtml::_('icon.print_screen', $displayData['item'], $displayData['params']); ?>
		</div>

	<?php endif; ?>
</div>

 

Beachten Sie, einige der Dateien die Inhalt (Artikel) anzeigen, werden nicht vom com_content Bereich, sondern vom Template Bereich benutzt. Zum Beispiel:

components/com_content/views/article/tmpl/default.php

ist gespeichert in:

templates/your-template/html/com_content/article/default.php

Dann muß die Template Datei überschrieben werden.

 

Das Joomla! Cache System Plugin benutzen

Falls das Joomla! Cache System Plugin auf Ihrer Seite eingeschaltet ist, setzen Sie bitte den Parameter PDF Ziel nicht auf den Wert Inline Browser in den Phoca PDF Content Plugin Einstellungen. Benutzen Sie stattdessen Inline Browser (Popup) (Das ist der Standardwert). Das Cache System Plugin erzeugt keine korrekten Cache (Zwischenspeicher) Dateien, wenn der Inline Browser Wert gesetzt ist.