FE-Mitglieder erweitern: Unterschied zwischen den Versionen
Aus Contao Community Documentation
(→Ordner "dca") |
(→Ordner "dca") |
||
Zeile 55: | Zeile 55: | ||
Legt nun im Ordner dca eine Datei "tl_member.php" mit folgendem Inhalt an: | Legt nun im Ordner dca 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 | * @copyright Eure Daten | ||
Zeile 64: | Zeile 64: | ||
* @filesource | * @filesource | ||
*/ | */ | ||
− | |||
if (strpos($GLOBALS['TL_DCA']['tl_member']['palettes']['default'], 'newsletter;') === false) | if (strpos($GLOBALS['TL_DCA']['tl_member']['palettes']['default'], 'newsletter;') === false) | ||
{$GLOBALS['TL_DCA']['tl_member']['palettes']['default'] .= ',x_abg_accept'; } | {$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;', | 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']['palettes']['default']); } | ||
− | |||
$GLOBALS['TL_DCA']['tl_member']['fields']['x_agb_accept'] = array | $GLOBALS['TL_DCA']['tl_member']['fields']['x_agb_accept'] = array | ||
( | ( | ||
Zeile 78: | Zeile 76: | ||
'eval' => array('feEditable' => true,'feViewable' => true,'feGroup' => 'newsletter','tl_class' => 'agb','mandatory' => true) | 'eval' => array('feEditable' => true,'feViewable' => true,'feGroup' => 'newsletter','tl_class' => 'agb','mandatory' => true) | ||
); | ); | ||
− | |||
/** | /** | ||
* Class tl_member_x_accept | * Class tl_member_x_accept | ||
Zeile 87: | Zeile 84: | ||
* @package Controller | * @package Controller | ||
*/ | */ | ||
− | |||
class tl_member_x_accept extends tl_member | class tl_member_x_accept extends tl_member | ||
{ | { | ||
} | } | ||
− | ? | + | ?> |
== Ordner "languages/de" == | == Ordner "languages/de" == |
Version vom 6. Juli 2010, 15:03 Uhr
Für viele Webseiten ist es nützlich, wenn die registrierten Freontend-User eine Checkbox ankreuzen, und so bestätigen, dass Sie die AGB gelesen haben. ImCore-Modul "M;ithlieder" ist das nicht der Fall.
Um diese, oder weitere Checkboxen zu ergänzen, empfiehlt es sich, ein Modul anl´zulegen, um die Checkbox updatesicher zu erhalten.
Inhaltsverzeichnis
Ordnerstruktur des Moduls anlegen
- Erweiterung (Beispiel: x_accept) - config - dca - languages - de
Ordner "config"
Legt hier eine Datei mit dem Namen database.sql mit folgendem Inhalt an
-- ********************************************************** -- * * -- * 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 legt auch eine .htaccess an, Inhalt:
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"
Legt nun im Ordner dca 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 */ 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"
Legt nun 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 ihr den Link haben wolltm achtet auf den richtigen Verweis!
Installation
Ladet nun Eure eben erstellten Dateien in den Ordner system/modules und führt ein Datenbank-Update durch. Die Checkbox steht Euch nun sowohl im Backend als auch im Frontend zur Verfügung.