FE-Mitglieder erweitern: Unterschied zwischen den Versionen
Aus Contao Community Documentation
K (→Ordner "languages/de") |
K (Geshi-Anpassung) |
||
Zeile 19: | Zeile 19: | ||
Hier wird eine Datei mit dem Namen ''database.sql'' mit folgendem Inhalt angelegt: | Hier wird eine Datei mit dem Namen ''database.sql'' mit folgendem Inhalt angelegt: | ||
− | < | + | <source lang="sql"> |
-- ********************************************************** | -- ********************************************************** | ||
-- * * | -- * * | ||
Zeile 34: | Zeile 34: | ||
`x_agb_accept` char(1) NOT NULL, | `x_agb_accept` char(1) NOT NULL, | ||
) ENGINE=MyISAM DEFAULT CHARSET=utf8; | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; | ||
− | </ | + | </source> |
Der Vollständigkeit halber wird auch eine .htaccess mit ff.Inhalt angelegt: | Der Vollständigkeit halber wird auch eine .htaccess mit ff.Inhalt angelegt: | ||
− | < | + | <source lang="text"> |
order deny,allow | order deny,allow | ||
deny from all | deny from all | ||
− | </ | + | </source> |
Und auch eine config.php''' | Und auch eine config.php''' | ||
− | < | + | <source lang="php"> |
<?php if (!defined('TL_ROOT')) die('You can not access this file directly!'); | <?php if (!defined('TL_ROOT')) die('You can not access this file directly!'); | ||
/** | /** | ||
Zeile 62: | Zeile 62: | ||
*/ | */ | ||
?> | ?> | ||
− | </ | + | </source> |
== Ordner "dca" == | == Ordner "dca" == | ||
Nun wird im Ordner ''dca'' eine Datei "tl_member.php" mit folgendem Inhalt angelegt: | Nun wird im Ordner ''dca'' eine Datei "tl_member.php" mit folgendem Inhalt angelegt: | ||
− | < | + | <source lang="php"> |
<?php if (!defined('TL_ROOT')) die('You can not access this file directly!'); | <?php if (!defined('TL_ROOT')) die('You can not access this file directly!'); | ||
/** | /** | ||
Zeile 82: | Zeile 82: | ||
$GLOBALS['TL_DCA']['tl_member']['palettes']['default']); } | $GLOBALS['TL_DCA']['tl_member']['palettes']['default']); } | ||
$GLOBALS['TL_DCA']['tl_member']['fields']['x_agb_accept'] = array | $GLOBALS['TL_DCA']['tl_member']['fields']['x_agb_accept'] = array | ||
− | + | ( | |
− | + | 'label' => &$GLOBALS['TL_LANG']['tl_member']['x_agb_accept'], | |
− | + | 'exclude' => true, | |
− | + | 'search' => true, | |
− | + | 'inputType' => 'checkbox', | |
− | + | 'eval' => array('feEditable' => true,'feViewable' => true,'feGroup' => 'newsletter','tl_class' => 'agb','mandatory' => true) | |
− | + | ); | |
/** | /** | ||
* Class tl_member_x_accept | * Class tl_member_x_accept | ||
Zeile 98: | Zeile 98: | ||
*/ | */ | ||
class tl_member_x_accept extends tl_member | class tl_member_x_accept extends tl_member | ||
− | + | { | |
− | + | } | |
?> | ?> | ||
− | </ | + | </source> |
== Ordner "languages/de" == | == Ordner "languages/de" == | ||
Nun legt man im Ordner ''languages/de'' eine Datei "tl_member.php" mit folgendem Inhalt an: | Nun legt man im Ordner ''languages/de'' eine Datei "tl_member.php" mit folgendem Inhalt an: | ||
− | < | + | <source lang="php"> |
<?php if (!defined('TL_ROOT')) die('You can not access this file directly!'); | <?php if (!defined('TL_ROOT')) die('You can not access this file directly!'); | ||
/** | /** | ||
Zeile 119: | Zeile 119: | ||
* Fields | * Fields | ||
*/ | */ | ||
− | $GLOBALS['TL_LANG']['tl_member']['xt_agb_accept'] | + | $GLOBALS['TL_LANG']['tl_member']['xt_agb_accept'] = array('Ich habe die <a href="/agb.html">AGB</a> gelesen und akzeptiere diese.', 'AGB akzeptieren'); |
/** | /** | ||
* Legends | * Legends | ||
*/ | */ | ||
?> | ?> | ||
− | </ | + | </source> |
{{Achtung|Falls man zu einer Seite verweist (z.B. agb.html), muss auf die richtige Schreibweise des Links geachtet werden. Es können auch Insert-Tags verwendet werden.}} | {{Achtung|Falls man zu einer Seite verweist (z.B. agb.html), muss auf die richtige Schreibweise des Links geachtet werden. Es können auch Insert-Tags verwendet werden.}} | ||
Version vom 30. August 2010, 23:29 Uhr
Für viele Webseiten ist es nützlich, wenn die registrierten Frontend-User eine Checkbox ankreuzen, und so bestätigen, dass Sie die AGB gelesen haben. Im Core-Modul "Mitglieder" ist das nicht der Fall.
Um diese, oder weitere Checkboxen zu ergänzen, empfiehlt es sich, ein Modul anzulegen, um die Checkbox updatesicher zu erhalten.
Inhaltsverzeichnis
Ordnerstruktur des Moduls anlegen
- Erweiterung (Beispiel: x_accept) - config - dca - languages - de
Ordner "config"
Hier wird eine Datei mit dem Namen database.sql mit folgendem Inhalt angelegt:
-- ********************************************************** -- * * -- * IMPORTANT NOTE * -- * * -- * Do not import this file manually but use the TYPOlight * -- * install tool to create and maintain database tables! * -- * * -- ********************************************************** -- -- Table `tl_member` -- CREATE TABLE `tl_member` ( `x_agb_accept` CHAR(1) NOT NULL, ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Der Vollständigkeit halber wird auch eine .htaccess mit ff.Inhalt angelegt:
order deny,allow deny from all
Und auch eine config.php
<?php if (!defined('TL_ROOT')) die('You can not access this file directly!'); /** * @copyright Eure Daten * @author Eure Daten * @package Name Eurer Erweiterung * @license LGPL * @creator Eure Daten * @filesource */ /** * Back end modules */ /** * Front end modules */ ?>
Ordner "dca"
Nun wird im Ordner dca eine Datei "tl_member.php" mit folgendem Inhalt angelegt:
<?php if (!defined('TL_ROOT')) die('You can not access this file directly!'); /** * @copyright Eure Daten * @author Eure Daten * @package Name Eurer Erweiterung * @license LGPL * @creator Eure Daten * @filesource */ if (strpos($GLOBALS['TL_DCA']['tl_member']['palettes']['default'], 'newsletter;') === false) {$GLOBALS['TL_DCA']['tl_member']['palettes']['default'] .= ',x_abg_accept'; } else {$GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace('newsletter;','newsletter,x_abg_accept;', $GLOBALS['TL_DCA']['tl_member']['palettes']['default']); } $GLOBALS['TL_DCA']['tl_member']['fields']['x_agb_accept'] = array ( 'label' => &$GLOBALS['TL_LANG']['tl_member']['x_agb_accept'], 'exclude' => true, 'search' => true, 'inputType' => 'checkbox', 'eval' => array('feEditable' => true,'feViewable' => true,'feGroup' => 'newsletter','tl_class' => 'agb','mandatory' => true) ); /** * Class tl_member_x_accept * * Provide miscellaneous methods that are used by the data configuration array. * @copyright Eure Daten * @author Eure Daten * @package Controller */ class tl_member_x_accept extends tl_member { } ?>
Ordner "languages/de"
Nun legt man im Ordner languages/de eine Datei "tl_member.php" mit folgendem Inhalt an:
<?php if (!defined('TL_ROOT')) die('You can not access this file directly!'); /** * @copyright Eure Daten * @author Eure Daten * @package Name Eurer Erweiterung * @license LGPL * @creator Eure Daten * @filesource */ /** * Fields */ $GLOBALS['TL_LANG']['tl_member']['xt_agb_accept'] = array('Ich habe die <a href="/agb.html">AGB</a> gelesen und akzeptiere diese.', 'AGB akzeptieren'); /** * Legends */ ?>
Achtung: Falls man zu einer Seite verweist (z.B. agb.html), muss auf die richtige Schreibweise des Links geachtet werden. Es können auch Insert-Tags verwendet werden. |
Installation
Abschließend ladet man die eben erstellten Dateien in den Ordner system/modules und führt ein Datenbank-Update durch. Die Checkbox steht nun sowohl im Backend als auch im Frontend zur Verfügung.