Joomla! Programmierung/Programmierung/Komponenten/Front/Das Formular

Aus Joomla! Dokumentation
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

[Bearbeiten] Ziel

In diesem Schritt wird der vorhandene View soweit erweitert, sodass mittels einer zusätzlichen Templatedatei das Formular für die Eintragungen der Gästebucheinträge dargestellt werden kann. Zusätzlich wird in der Standard Templatedatei default.php ein Link, der auf das Formular zeigt hinzugefügt.

[Bearbeiten] Grundlegendes

Die Möglichkeit pber den layout Parameter verschiedenste Templatedateien der Komponente aufzurufen sollte bei der Basistemplatedatei genügend beschrieben worden sein. Deshalb wird hier nicht mehr darauf eingegangen. In diesem Beispiel wird die Datei File php.png form.php heißen und somit über den Parameter layout=form aufrufbar sein.

[Bearbeiten] form.php - die Formulardatei

Erstellen Sie diese im Ordner Folder blue.png tmpl in Ihrem jnafu View die Datei File php.png form.php. Damit erhalten Sie folgende Ordnerstruktur:

Folder blue.png com_jnafu

|_ Folder blue.png assets
|_ Folder blue.png controllers
|_ Folder blue.png models
|_ File php.png jnafu.php
|_ Folder blue.png views
|_ Folder blue.png jnafu
|_ Folder blue.png tmpl
|_ File php.png default.php
|_ File php.png form.php
|_ File php.png view.html.php

[Bearbeiten] Erste Hackversuche unterbinden

Wie in jeder anderen Joomla! Datei sollten Sie als erstes einen Schutz einbauen, der Direktzugriffe auf die Datei unterbindet:

// Verhindern, dass die Datei direkt aufgerufen wird
defined('_JEXEC') or die('Restricted access');

[Bearbeiten] Das Formular

Das Formular ist einfach reines HTML, dass am Ende mit ein paar Joomla!spezifischen Schutzfunktionen erweitert wird. Als erstes werden alle Felder abgefragt und der Benutzer kann seinen Eintrag hinterlassen. Danach werden noch ein paar versteckte Felder übergeben.

<!-- Gästebuchformular -->
<form action="<?php JRoute::_('index.php?option=com_jnafu'); ?>" method="post" name="jnafuentry">
    <fieldset>
        <!-- Der Name des Verfassers -->
        <label for="author"><?php echo JText::_('Name'); ?>:</label>
        <input type="text" id="author" class="inputbox" name="author" value="" />
        <br />
        <!-- Die Email des Verfassers -->
        <label for="email"><?php echo JText::_('Email'); ?>:</label>
        <input type="text" id="email" class="inputbox" name="email" value="" />
        <br />
        <!-- Eine Checkbox, wo ausgewählt werden kann, ob die Email angezeigt wird -->
        <label for"show_email"><?php echo JText::_('Show Email'); ?>:</label>
        <input type="checkbox" id="show_email" class="inputbox" name="show_email" />
        <br />
        <!-- Homepage des Verfassers -->
        <label for"homepage"><?php echo JText::_('Homepage'); ?>:</label>
        <input type="text" id="homepage" class="inputbox" name="homepage" value="" />
        <br />
        <!-- Der Gästebucheintrag -->
        <?php echo JText::_('Entry'); ?>:
        <br />
        <textarea name="text" id="text" class="inputbox"></textarea>
        <br />
        <input type="submit" id="submit" class="button" name="submit" value="<?php echo JText::_('Submit'); =>" />
    </fieldset>
    <!-- Verstecktes Feld für den Task -->
    <input type="hidden" name="task" value="save" />
    <!-- Verstecktes Feld für die Tokenüberprüfung -->
    <?php echo JHTML::_( 'form.token' ); ?>
</form>

[Bearbeiten] Der komplette Quellcode

<?php
/**
 * @author      Joomla!-Nafu
 * @authorurl   http://www.joomla-nafu.de
 * @version     0.1
 * @license     GNU General Public License, http://www.gnu.org/licenses/gpl-2.0.html
 *
 * JNafu! - Joomla! 1.5.x Gästebuch Demo Komponente
 * Copyright (C) 2009 - Joomla!-Nafu
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation.
 *
 * This program 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.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, see <http://www.gnu.org/licenses/>.
**/
 
// Verhindern, dass die Datei direkt aufgerufen wird
defined('_JEXEC') or die('Restricted access');
 
?>
<!-- Gästebuchformular -->
<form action="<?php JRoute::_('index.php?option=com_jnafu'); ?>" method="post" name="jnafuentry">
    <fieldset>
        <!-- Der Name des Verfassers -->
        <label for="author"><?php echo JText::_('Name'); ?>:</label>
        <input type="text" id="author" class="inputbox" name="author" value="" />
        <br />
        <!-- Die Email des Verfassers -->
        <label for="email"><?php echo JText::_('Email'); ?>:</label>
        <input type="text" id="email" class="inputbox" name="email" value="" />
        <br />
        <!-- Eine Checkbox, wo ausgewählt werden kann, ob die Email angezeigt wird -->
        <label for"show_email"><?php echo JText::_('Show Email'); ?>:</label>
        <input type="checkbox" id="show_email" class="inputbox" name="show_email" />
        <br />
        <!-- Homepage des Verfassers -->
        <label for"homepage"><?php echo JText::_('Homepage'); ?>:</label>
        <input type="text" id="homepage" class="inputbox" name="homepage" value="" />
        <br />
        <!-- Der Gästebucheintrag -->
        <?php echo JText::_('Entry'); ?>:
        <br />
        <textarea name="text" id="text" class="inputbox"></textarea>
        <br />
        <input type="submit" id="submit" class="button" name="submit" value="<?php echo JText::_('Submit'); =>" />
    </fieldset>
    <!-- Verstecktes Feld für den Task -->
    <input type="hidden" name="task" value="save" />
    <!-- Verstecktes Feld für die Tokenüberprüfung -->
    <?php echo JHTML::_( 'form.token' ); ?>
</form>

[Bearbeiten] Siehe auch

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Sonstiges
Team Navigation
Werkzeuge