Ok, am besten ich teile hier mal den Code für das Plugin...
menschen.php:
<?php// no direct accessdefined ( '_JEXEC' ) or die ( 'Restricted access' ); class plgContentMenschen extends JPlugin { /** * Load the language file on instantiation. * Note this is only available in Joomla 3.1 and higher. * If you want to support 3.0 series you must override the constructor * * @var boolean * @since 3.1 */ protected $autoloadLanguage = true; // Wenn das Formular aufbereitet wird... function onContentPrepareForm($form, $data) { // Standardfunktionen von Joomla $app = JFactory::getApplication(); $option = $app->input->get('option'); switch($option) { // Ist das eine Conten Komponente? (com = component) case 'com_content': // Ist der aktuelle Benutzer = Admin? if ($app->isAdmin()) { // ... dann füge das Formular hinzu (Pfad finden) JForm::addFormPath(__DIR__ . '/forms'); // Lade die Datei content um diese Felder zu finden $form->loadFile('content', false); } return true; } return true; } }?>
menschen.xml:
<?xml version="1.0" encoding="utf-8"?><extension version="3.0" type="plugin" group="content"> <name>plg_content_menschen</name> <author>Jes Ster</author> <creationDate>Januar 2017</creationDate> <copyright>Copyright (C) 2017 Jes Ster. All rights reserved.</copyright> <version>0.0.1</version> <description>Plugin um zusätzliche Felder für die Kategorie Menschen zum Standard-Artikel hinzuzufügen.</description> <files> <folder>forms</folder> <folder>language</folder> <filename plugin="menschen">menschen.php</filename> /* Einbindung des Plugins */ <filename>index.html</filename> </files> // Backend-Einstellungs-Optionen <config> <fields name="params"> <fieldset name="basic"> /* Hier könnten Backend-Einstellungs-Optionen eingegeben und definiert werden */ </fieldset> </fields> </config> // Beschriftung der Labels sollen übersetzbar sein <languages> <language tag="de-DE">language/de-DE/de-DE.plg_content_menschen.ini</language> <language tag="de-DE">language/de-DE/de-DE.plg_content_menschen.sys.ini</language> </languages></extension>
Und die content.xml im Ordner "forms" des Plugins:
<?xml version="1.0" encoding="UTF-8"?><form> <fields name="attribs" > <fieldset name="menschen" > <field name="menschen_foto" type="media" label="Bildupload/-auswahl" directory="/templates/id-theme/images/" description="Laden Sie hier ein Bild hoch." preview="true" /> <field name="menschen_name" type="text" label="Vor- und Nachname (inkl. akad. Titel)" size="40" /> <field name="menschen_position" type="text" label="Aktuelle Position/Stelle" size="50" /> <field name="menschen_zitat" type="textarea" label="Zitat" rows="5" cols="30" description="Geben Sie hier ein möglichst passendes Zitat ein." /> <field name="menschen_telefon" type="tel" label="Telefonnummer" size="25" /> <field name="menschen_email" type="email" label="E-Mail" size="50" validate="email" /> <field name="menschen_buero" type="text" label="Büro" size="5" /> <field name="menschen_sprechzeiten" type="textarea" label="Sprechzeiten" rows="5" cols="30" description="Geben Sie hier die Sprech-/Bürozeiten ein." /> <field name="menschen_werdegang" type="textarea" label="Bisheriger Werdegang" rows="20" cols="50" description="Geben Sie hier den bisherigen beruflichen Werdegang ein" /> <field name="menschen_lehrgebiete" type="textarea" label="Lehrgebiete (Bitte mit Komma trennen)" rows="5" cols="30" description="Geben Sie hier die Lehrgebiete ein." /> <field name="menschen_reihenfolge" type="moduleorder" label="JFIELD_ORDERING_LABEL" description="JFIELD_ORDERING_DESC" /> </fieldset> </fields></form>
Und hier der das Overrite, das wir im Ordner "article" erstellt haben (musste gekürzt werden auf Grund der begrenzten Zeichen, die zur Verfügung stehen, daher nur die Bereiche, die wir angepasst haben):
<?php
<div itemprop="articleBody">
<?php echo $this->item->text; ?>
<section> <!-- Inhalte rechts vom BIld -->
<div class="bild65">
<div class="image">
<img src="<?php echo $params->get('menschen_foto');?>">
</div>
<header class="clearfix"></header>
</div>
<div class="textright">
<h1><?php echo $params->get('menschen_name'); ?></h1>
<ul class="linien">
<li><?php echo $params->get('menschen_position'); ?></li>
<li><blockquote><?php echo $params->get('menschen_zitat');?></blockquote></li>
<li class="tel"><?php echo $params->get('menschen_telefon'); ?></li>
<li class="email"><a class="underline-animate-orange"><?php echo $params->get('menschen_email'); ?></a></li>
<li class="raum"><?php echo $params->get('menschen_buero'); ?></li>
<li class="sprechzeiten"><?php echo $params->get('menschen_sprechzeiten');?></li>
</ul>
</div>
</section>
<div class="content">
<section class="bigtitle">
<h1></h1>
<div>
<?php echo $params->get('menschen_werdegang'); ?>
</div>
</section>
<section class="bigtitle">
<h1>Lehrgebiete</h1>
<div>
<?php
$lehrgebiete = $params->get('menschen_lehrgebiete');
$lg = explode(',', $lehrgebiete);
echo '<ul class="linien">';
foreach ($lg as $lehrgebiet){
echo "<li>" . trim($lehrgebiet) . "</li>";
}
echo "</ul>";
?>
</div>
</section>
Alles anzeigen
Wir haben die Vorlage für das Plugin zur Erstellung der Formularfelder im Backend von unserem Dozenten bekommen (der selber Joomla-Anfänger ist und es aus dem Internet hat) und es einfach abgewandelt. So weit ich es verstanden habe, werden die Eingaben in die Felder in einer Datenbank gespeichert, ist das korrekt? Wenn ja, wie kann ich die an anderer Stelle auslesen?
Vielen Dank für eure vielen Antworten! Ich hoffe, wir können das Problem zusammen lösen!
P.S.: Ich bin zwar Joomla-Anfänger, aber ich kenne mich im Backend schon so weit aus, dass ich weiß, welche Einstellungen vorgenommen werden müssen, damit Beiträge in einem Kategorieblog dargestellt werden können. Ich habe ein Praktikum in einer Agentur gemacht, die ausschließlich mit Joomla arbeitet. Ich kenne mich vor allem im Bereich der Template-Programmierung nicht aus, da ich im Praktikum lediglich das CSS bereits vorhandener Templates angepasst habe.
Edit by @Indigo66: Langen Code in Spoiler, siehe Forenregel!