FE-Mitglieder erweitern: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(Ordner "config")
(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!');
+
  <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');
 
+
  /**
/**
+
  * @copyright  Eure Daten
* @copyright  Eure Daten
+
  * @author    Eure Daten
* @author    Eure Daten
+
  * @package    Name Eurer Erweiterung
* @package    Name Eurer Erweiterung
+
  * @license    LGPL
* @license    LGPL
+
  * @creator    Eure Daten
* @creator    Eure Daten
+
  * @filesource
* @filesource
+
  */
*/
+
  if (strpos($GLOBALS['TL_DCA']['tl_member']['palettes']['default'], 'newsletter;') === false) {
 
+
  $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] .= ',x_agb_accept';
if (strpos($GLOBALS['TL_DCA']['tl_member']['palettes']['default'], 'newsletter;') === false) {
+
  } else {
$GLOBALS['TL_DCA']['tl_member']['palettes']['default'] .= ',x_agb_accept';
+
$GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace('newsletter;','newsletter,x_agb_accept;',     $GLOBALS['TL_DCA']['tl_member']['palettes']['default']);
} else {
+
$GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace('newsletter;','newsletter,x_agb_accept;', $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'],
 
'label'                  => &$GLOBALS['TL_LANG']['tl_member']['x_agb_accept'],
 
'exclude'                => true,
 
'exclude'                => true,
 
'search'                  => true,
 
'search'                  => true,
 
'inputType'              => 'checkbox',
 
'inputType'              => 'checkbox',
'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
+
  * Provide miscellaneous methods that are used by the data configuration array.
*
+
  * @copyright  Eure Daten
* Provide miscellaneous methods that are used by the data configuration array.
+
  * @author    Eure Daten
* @copyright  Eure Daten
+
  * @package    Controller
* @author    Eure Daten
+
  */
* @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, 16:48 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.


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_agb_accept';
 } else {

$GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace('newsletter;','newsletter,x_agb_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.

Ansichten
Meine Werkzeuge

Contao Community Documentation

Marc plant CFC für CCACSSCSR.

C-C-A
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge