FE-Mitglieder erweitern: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(Ordner "dca")
(Ordner "languages/de")
 
(6 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
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.
+
[[Category:Dev_HOWTOS]]
ImCore-Modul "M;ithlieder" ist das nicht der Fall.
+
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 anl´zulegen, um die Checkbox updatesicher zu erhalten.
+
Um diese, oder weitere Checkboxen zu ergänzen, empfiehlt es sich, ein Modul anzulegen, um die Checkbox updatesicher zu erhalten.
  
  
 
== Ordnerstruktur des Moduls anlegen ==
 
== Ordnerstruktur des Moduls anlegen ==
  - Erweiterung (Beispiel: x_accept)
+
 
    - config
+
<pre>
    - dca
+
- Erweiterung (Beispiel: x_accept)
    - languages
+
  - config
      - de
+
  - dca
 +
  - languages
 +
    - de
 +
</pre>
  
 
== Ordner "config" ==
 
== Ordner "config" ==
Legt hier eine Datei mit dem Namen database.sql mit folgendem Inhalt an
+
Hier wird eine Datei mit dem Namen ''database.sql'' mit folgendem Inhalt angelegt:
  
  -- **********************************************************
+
<source lang="sql">
  -- *                                                        *
+
-- **********************************************************
  -- * IMPORTANT NOTE                                        *
+
-- *                                                        *
  -- *                                                        *
+
-- * IMPORTANT NOTE                                        *
  -- * Do not import this file manually but use the TYPOlight *
+
-- *                                                        *
  -- * install tool to create and maintain database tables!  *
+
-- * Do not import this file manually but use the TYPOlight *
  -- *                                                        *
+
-- * install tool to create and maintain database tables!  *
  -- **********************************************************
+
-- *                                                        *
  --  
+
-- **********************************************************
  -- Table `tl_member`
+
--  
  --  
+
-- Table `tl_member`
  CREATE TABLE `tl_member` (
+
--  
    `x_agb_accept` char(1) NOT NULL,
+
CREATE TABLE `tl_member` (
  ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
  `x_agb_accept` char(1) NOT NULL,
 +
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 +
</source>
  
Der Vollständigkeit halber legt auch eine .htaccess an, Inhalt:
+
Der Vollständigkeit halber wird auch eine .htaccess mit ff.Inhalt angelegt:
  order deny,allow
+
 
  deny from all
+
<source lang="text">
 +
order deny,allow
 +
deny from all
 +
</source>
  
 
Und auch eine config.php'''
 
Und auch eine config.php'''
  <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');
+
 
  /**
+
<source lang="php">
  * @copyright  Eure Daten
+
<?php if (!defined('TL_ROOT')) die('You can not access this file directly!');
  * @author    Eure Daten
+
/**
  * @package    Name Eurer Erweiterung
+
* @copyright  Eure Daten
  * @license    LGPL
+
* @author    Eure Daten
  * @creator    Eure Daten
+
* @package    Name Eurer Erweiterung
  * @filesource
+
* @license    LGPL
  */
+
* @creator    Eure Daten
  /**
+
* @filesource
  * Back end modules
+
*/
  */
+
/**
  /**
+
* Back end modules
  * Front end modules
+
*/
  */
+
/**
  ?>
+
* Front end modules
 +
*/
 +
?>
 +
</source>
  
 
== Ordner "dca" ==
 
== Ordner "dca" ==
Legt nun im Ordner dca eine Datei "tl_member.php" mit folgendem Inhalt an:
+
Nun wird im Ordner ''dca'' eine Datei "tl_member.php" mit folgendem Inhalt angelegt:
  
<nowiki><?php if (!defined('TL_ROOT')) die('You can not access this file directly!');
+
<source lang="php">
  /**
+
<?php if (!defined('TL_ROOT')) die('You can not access this file directly!');
  * @copyright  Eure Daten
+
/**
  * @author    Eure Daten
+
* @copyright  Eure Daten
  * @package    Name Eurer Erweiterung
+
* @author    Eure Daten
  * @license    LGPL
+
* @package    Name Eurer Erweiterung
  * @creator    Eure Daten
+
* @license    LGPL
  * @filesource
+
* @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'; }
+
if (strpos($GLOBALS['TL_DCA']['tl_member']['palettes']['default'], 'newsletter;') === false)  
  else {$GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace('newsletter;','newsletter,x_abg_accept;',  
+
{$GLOBALS['TL_DCA']['tl_member']['palettes']['default'] .= ',x_abg_accept'; }
  $GLOBALS['TL_DCA']['tl_member']['palettes']['default']); }
+
else {$GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace('newsletter;','newsletter,x_abg_accept;',  
  $GLOBALS['TL_DCA']['tl_member']['fields']['x_agb_accept'] = array
+
$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,
+
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['x_agb_accept'],
    'search'                 => true,
+
    'exclude'   => true,
    'inputType'               => 'checkbox',
+
    'search'     => true,
    'eval'                   => array('feEditable' => true,'feViewable' => true,'feGroup' => 'newsletter','tl_class' =>  'agb','mandatory' => 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
  * 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
 
   {
 
   {
 
   }
 
   }
  ?>
+
?>
</nowiki>
+
</source>
  
 
== Ordner "languages/de" ==
 
== Ordner "languages/de" ==
Legt nun 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:
 
+
  <?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!
+
<source lang="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
 +
*/
 +
/**
 +
* Fields
 +
*/
 +
$GLOBALS['TL_LANG']['tl_member']['x_agb_accept'] = array('Ich habe die <a href="/agb.html">AGB</a> gelesen und akzeptiere diese.', 'AGB akzeptieren');
 +
/**
 +
* 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.}}
  
 
== Installation ==
 
== Installation ==
Ladet nun Eure eben erstellten Dateien in den Ordner system/modules und führt ein Datenbank-Update durch.
+
Abschließend  ladet man die 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.
+
Die Checkbox steht nun sowohl im Backend als auch im Frontend zur Verfügung.

Aktuelle Version vom 2. August 2011, 18:41 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.


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']['x_agb_accept'] = array('Ich habe die <a href="/agb.html">AGB</a> gelesen und akzeptiere diese.', 'AGB akzeptieren');
/**
 * Legends
 */
?>
Achtung.png 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.

Ansichten
Meine Werkzeuge

Contao Community Documentation

Chuck Norris programmiert kein PHP, er diktiert das Ergebnis. Den Rest macht der Editor aus Angst.

Stefan Lindecke
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge