FE-Mitglieder erweitern: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(Ordner "dca")
(Ordner "languages/de")
 
(11 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:
  
<math> <?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) {
+
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 {
+
else {$GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace('newsletter;','newsletter,x_abg_accept;',  
$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
}
+
  (
 
+
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['x_agb_accept'],
  $GLOBALS['TL_DCA']['tl_member']['fields']['x_agb_accept'] = array
+
    'exclude'   => true,
    (
+
    'search'     => true,
  'label'                   => &$GLOBALS['TL_LANG']['tl_member']['x_agb_accept'],
+
    'inputType' => 'checkbox',
  'exclude'                 => true,
+
    'eval'       => array('feEditable' => true,'feViewable' => true,'feGroup' => 'newsletter','tl_class' =>  'agb','mandatory' => 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
  * Class tl_member_x_accept
+
* @author    Eure Daten
  *
+
* @package    Controller
  * Provide miscellaneous methods that are used by the data configuration array.
+
*/
  * @copyright  Eure Daten
+
class tl_member_x_accept extends tl_member
  * @author    Eure Daten
+
  * @package    Controller
+
  */
+
 
+
  class tl_member_x_accept extends tl_member
+
 
   {
 
   {
 
   }
 
   }
  ?></math>
+
?>
 +
</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, 16: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

Ich habe es mir mal grob ausgerechnet: Bei jeder Extension von mir verbrauche ich im Durchschnitt 6 Pizzen. Wenn Dir meine Extensions gefallen, sende mir bitte mehr Pizzen. Die Adresse gibt es auf Anfrage!

Leo Unglaub
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge