TYPO3.CMS 6.2 Extension entwickeln - Backend: Unterschied zwischen den Versionen
F (Diskussion | Beiträge) (→ext_tables.sql) |
F (Diskussion | Beiträge) (→Configuration/FlexForms/form.xml) |
||
(26 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[typo3]] | [[typo3]] | ||
+ | |||
+ | |||
+ | == Konfiguration im Backend für ein Frontend Plugin mit flexform == | ||
+ | |||
+ | erstellt und getestet mit typo3 7.6 | ||
+ | |||
+ | ===ext_localconf.php=== | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | |||
+ | // zu Dokumentationszwecken, das plugin sollte natürlich konfiguriert werden | ||
+ | // Achtung: mensch beachte den ersten groß geschriebenen Buchstaben!! (gibt sonst Probleme beim default Controller finden) | ||
+ | $pluginSignature = 'Pluginkeyname'; | ||
+ | \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( | ||
+ | 'Netzcoop.' . $_EXTKEY, | ||
+ | $pluginSignature, | ||
+ | array( | ||
+ | 'Controller1' => 'action1, action1', | ||
+ | ), | ||
+ | // non-cacheable actions | ||
+ | array( | ||
+ | 'Controller1' => 'action1, action1', | ||
+ | ) | ||
+ | ); | ||
+ | </source> | ||
+ | |||
+ | ===ext_tables.php=== | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | |||
+ | // jetzt muß sie registriert werden, alternativ sollte auch \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPlugin gehen, addPlugin wird unteranderem in registerPlugin aufgerufen | ||
+ | $pluginSignature = 'Pluginkeyname'; | ||
+ | \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( | ||
+ | $_EXTKEY, | ||
+ | $pluginSignature, | ||
+ | 'plugin label' | ||
+ | ); | ||
+ | |||
+ | // you add pi_flexform to be renderd when your plugin is shown | ||
+ | // Achtung: nur um klar zu stellen: pi_flexform ist ein Spaltenname in tt_content !!! | ||
+ | // Achtung: Wert von $pluginSignature muss klein geschrieben sein, deswegen strtolower | ||
+ | $TCA['tt_content']['types']['list']['subtypes_addlist'][$_EXTKEY.'_'.strtolower($pluginSignature)]='pi_flexform'; // new! | ||
+ | |||
+ | // now, add your flexform xml-file | ||
+ | \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue($_EXTKEY.'_'.strtolower($pluginSignature), 'FILE:EXT:'.$_EXTKEY.'/Configuration/FlexForms/form.xml'); | ||
+ | |||
+ | </source> | ||
+ | |||
+ | |||
+ | * verwendete Funktionen | ||
+ | ** [https://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_core_1_1_utility_1_1_extension_management_utility.html#a95cf0715ec1f2529d66e9b08473efb41 \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPlugin] | ||
+ | ** [https://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_utility_1_1_extension_utility.html#a815dc76c1a5695b5e8949c5b71eaca8a \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin] | ||
+ | ** [https://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_core_1_1_utility_1_1_extension_management_utility.html#a8eaac10f3a230441af50e3a2d096260e \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue] | ||
+ | |||
+ | ===Configuration/FlexForms/form.xml=== | ||
+ | |||
+ | <source lang=xml> | ||
+ | <T3DataStructure> | ||
+ | <meta> | ||
+ | <langDisable>1</langDisable> | ||
+ | </meta> | ||
+ | <sheets> | ||
+ | <sDEF> | ||
+ | <ROOT> | ||
+ | <TCEforms> | ||
+ | <sheetTitle>examples.pi_flexform.sheetGeneral</sheetTitle> | ||
+ | </TCEforms> | ||
+ | <type>array</type> | ||
+ | <el> | ||
+ | <settings.actionbackgroundimage> | ||
+ | <TCEforms> | ||
+ | <label>LLL:EXT:ancchristmas/Resources/Private/Language/locallang.xlf:flexform.actionbackgroundimage</label> | ||
+ | <config> | ||
+ | <type>group</type> | ||
+ | <internal_type>file_reference</internal_type> | ||
+ | <uploadfolder></uploadfolder> | ||
+ | <allowed>jpg,gif,png</allowed> | ||
+ | <max_size>10240</max_size> | ||
+ | <show_thumbs>1</show_thumbs> | ||
+ | <size>1</size> | ||
+ | <minitems>0</minitems> | ||
+ | <maxitems>1</maxitems> | ||
+ | </config> | ||
+ | </TCEforms> | ||
+ | </settings.actionbackgroundimage> | ||
+ | <settings.pageSelector> | ||
+ | <TCEforms> | ||
+ | <label>examples.pi_flexform.pageSelector</label> | ||
+ | <config> | ||
+ | <type>select</type> | ||
+ | <items type="array"> | ||
+ | <numIndex index="0" type="array"> | ||
+ | <numIndex index="0">examples.pi_flexform.choosePage</numIndex> | ||
+ | <numIndex index="1">0</numIndex> | ||
+ | </numIndex> | ||
+ | </items> | ||
+ | <foreign_table>pages</foreign_table> | ||
+ | <foreign_table_where>ORDER BY title</foreign_table_where> | ||
+ | <minitems>0</minitems> | ||
+ | <maxitems>1</maxitems> | ||
+ | </config> | ||
+ | </TCEforms> | ||
+ | </settings.pageSelector> | ||
+ | </el> | ||
+ | </ROOT> | ||
+ | </sDEF> | ||
+ | </sheets> | ||
+ | </T3DataStructure> | ||
+ | </source> | ||
+ | * [http://www.typo3-snippets.de/snippets/extension-programmierung/die-unterschiedlichen-arten-von-flexform-feldern.html Die unterschiedlichen Arten von Flexform-Feldern] | ||
+ | |||
+ | |||
+ | |||
+ | * auch interessant flexform von anderen Extension erweitern [https://docs.typo3.org/typo3cms/extensions/news/DeveloperManual/ExtendNews/ExtendFlexforms/Index.html#extend-flexforms-with-custom-fields Extend flexforms with custom fields] | ||
+ | |||
+ | === Classes/Controller/Controller1.php === | ||
+ | <source lang=bash> | ||
+ | namespace Netzcoop\Extensionkeyname\Controller; | ||
+ | |||
+ | class Controller1Controller extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController { | ||
+ | |||
+ | /** | ||
+ | * action action1 | ||
+ | * | ||
+ | * @return void | ||
+ | */ | ||
+ | public function action1Action() { | ||
+ | echo '<h1>test</h1><pre>'; | ||
+ | print_r($this->settings); | ||
+ | echo '</pre>'; | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
== Konfiguration einer Extension über den Extensionmanager== | == Konfiguration einer Extension über den Extensionmanager== | ||
Zeile 132: | Zeile 265: | ||
== be_users um Spalte erweitern == | == be_users um Spalte erweitern == | ||
+ | |||
+ | === Veränderungen für SYSTEM > Backend-Benutzer === | ||
+ | Damit im Backend unter SYSTEM > Backend-Benutzer bei einem Benutzer ein neuer Reiter mit einem neuen Feld erscheint. | ||
+ | |||
Das nachfolgende kann mensch sich sparen, wenn mensch keine Unterstriche benutzt!! Es lohnt sich, da häufig Flüchtigkeitsfehler dann schuld sind, wenns nicht funzt! | Das nachfolgende kann mensch sich sparen, wenn mensch keine Unterstriche benutzt!! Es lohnt sich, da häufig Flüchtigkeitsfehler dann schuld sind, wenns nicht funzt! | ||
Zeile 141: | Zeile 278: | ||
− | === Configuration/TCA/Overrides/be_users.php === | + | ==== Configuration/TCA/Overrides/be_users.php ==== |
<source lang="php"> | <source lang="php"> | ||
<?php | <?php | ||
Zeile 175: | Zeile 312: | ||
** https://jweiland.net/typo3/extension-programmierung/displaycond.html | ** https://jweiland.net/typo3/extension-programmierung/displaycond.html | ||
− | === ext_tables.sql === | + | ==== ext_tables.sql ==== |
<source lang="sql"> | <source lang="sql"> | ||
CREATE TABLE be_users ( | CREATE TABLE be_users ( | ||
Zeile 183: | Zeile 320: | ||
</source> | </source> | ||
− | === locallang_tca.xml === | + | ==== locallang_tca.xml ==== |
<source lang="xml"> | <source lang="xml"> | ||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
<T3locallang> | <T3locallang> | ||
<meta type="array"> | <meta type="array"> | ||
− | <description>Labels | + | <description>description: Labels</description> |
<type>database</type> | <type>database</type> | ||
<csh_table></csh_table> | <csh_table></csh_table> | ||
− | <fileId>EXT: | + | <fileId>EXT:ncimmoscout24/locallang_tca.xml</fileId> |
<labelContext type="array"> | <labelContext type="array"> | ||
</labelContext> | </labelContext> | ||
Zeile 197: | Zeile 334: | ||
<data type="array"> | <data type="array"> | ||
<languageKey index="default" type="array"> | <languageKey index="default" type="array"> | ||
− | <label index="be_users. | + | <label index="be_users.ncimmoscout24user">Immoscout 24 Benutzername</label> |
</languageKey> | </languageKey> | ||
</data> | </data> | ||
Zeile 205: | Zeile 342: | ||
=== eigene repository und model === | === eigene repository und model === | ||
+ | damit nun auch an anderer Stelle die Spalte benutzt werden kann .... | ||
+ | |||
+ | |||
+ | ==== Classes/Domain/Model/BackendUser.php ==== | ||
+ | |||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | namespace Anc\Ncimmoscout24\Domain\Model; | ||
+ | |||
+ | /** | ||
+ | * Model for backend user | ||
+ | */ | ||
+ | class BackendUser extends \TYPO3\CMS\Beuser\Domain\Model\BackendUser { | ||
+ | |||
+ | /** | ||
+ | * | ||
+ | * @var string | ||
+ | */ | ||
+ | protected $ncimmoscout24user = ''; | ||
+ | |||
+ | /** | ||
+ | * Setter for text column | ||
+ | * @param string $ncimmoscout24user The text column | ||
+ | * @return void | ||
+ | */ | ||
+ | public function setNcimmoscout24User($ncimmoscout24user) { | ||
+ | $this->ncimmoscout24user = $ncimmoscout24user; | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Getter for text column | ||
+ | * @return string The text column | ||
+ | */ | ||
+ | public function getNcimmoscout24User() { | ||
+ | return $this->ncimmoscout24user; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </source> | ||
+ | |||
+ | ==== Classes/Domain/Repository/BackendUserRepository.php ==== | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | namespace Anc\Ncimmoscout24\Domain\Repository; | ||
+ | |||
+ | class BackendUserRepository extends \TYPO3\CMS\Beuser\Domain\Repository\BackendUserRepository { | ||
+ | } | ||
+ | </source> | ||
− | + | ==== ext_tables.php ==== | |
+ | folgende Zeile hinzufügen | ||
+ | <source lang="php"> | ||
+ | // ....... | ||
+ | $TCA['be_users']['interface']['showRecordFieldList'] .= ',ncimmoscout24user'; | ||
+ | </source> | ||
+ | |||
+ | |||
+ | ==== ext_typoscript_setup.txt ==== | ||
+ | damit unser Model jetzt nicht automatisch eine "neue" Tabelle erwartet, sondern schön die be_users nutzt .. muss noch gemappt werden | ||
+ | <source lang=typoscript> | ||
+ | config.tx_extbase{ | ||
+ | persistence{ | ||
+ | classes{ | ||
+ | TYPO3\CMS\Beuser\Domain\Model\BackendUser { | ||
+ | subclasses { | ||
+ | BackendUser = Anc\Ncimmoscout24\Domain\Model\BackendUser | ||
+ | } | ||
+ | } | ||
+ | Anc\Ncimmoscout24\Domain\Model\BackendUser { | ||
+ | mapping { | ||
+ | tableName = be_users | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | ==== Classes/Controller/AuthController.php ==== | ||
+ | folgender Code ist ein Beispiel, wie das Model nun benutzt werden kann | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | namespace Anc\Ncimmoscout24\Controller; | ||
+ | |||
+ | class AuthController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController { | ||
+ | |||
+ | /** | ||
+ | * @var Anc\Ncimmoscout24\Domain\Repository\BackendUserRepository | ||
+ | * @inject | ||
+ | */ | ||
+ | protected $backendUserRepository; | ||
+ | |||
+ | |||
+ | public function indexAction() { | ||
+ | echo ' BE_USER<pre>'; | ||
+ | print_r($this->backendUserRepository->findByUid($GLOBALS['BE_USER']->user["uid"])); | ||
+ | echo '</pre>'; | ||
+ | $this->view->assign('backenduser', $this->backendUserRepository->findByUid($GLOBALS['BE_USER']->user["uid"])); | ||
+ | } | ||
+ | |||
+ | </source> | ||
== code Schnipsel == | == code Schnipsel == |
Aktuelle Version vom 14. April 2018, 09:08 Uhr
Inhaltsverzeichnis
Konfiguration im Backend für ein Frontend Plugin mit flexform
erstellt und getestet mit typo3 7.6
ext_localconf.php
<?php
// zu Dokumentationszwecken, das plugin sollte natürlich konfiguriert werden
// Achtung: mensch beachte den ersten groß geschriebenen Buchstaben!! (gibt sonst Probleme beim default Controller finden)
$pluginSignature = 'Pluginkeyname';
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'Netzcoop.' . $_EXTKEY,
$pluginSignature,
array(
'Controller1' => 'action1, action1',
),
// non-cacheable actions
array(
'Controller1' => 'action1, action1',
)
);
ext_tables.php
<?php
// jetzt muß sie registriert werden, alternativ sollte auch \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPlugin gehen, addPlugin wird unteranderem in registerPlugin aufgerufen
$pluginSignature = 'Pluginkeyname';
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
$_EXTKEY,
$pluginSignature,
'plugin label'
);
// you add pi_flexform to be renderd when your plugin is shown
// Achtung: nur um klar zu stellen: pi_flexform ist ein Spaltenname in tt_content !!!
// Achtung: Wert von $pluginSignature muss klein geschrieben sein, deswegen strtolower
$TCA['tt_content']['types']['list']['subtypes_addlist'][$_EXTKEY.'_'.strtolower($pluginSignature)]='pi_flexform'; // new!
// now, add your flexform xml-file
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue($_EXTKEY.'_'.strtolower($pluginSignature), 'FILE:EXT:'.$_EXTKEY.'/Configuration/FlexForms/form.xml');
- verwendete Funktionen
Configuration/FlexForms/form.xml
<T3DataStructure>
<meta>
<langDisable>1</langDisable>
</meta>
<sheets>
<sDEF>
<ROOT>
<TCEforms>
<sheetTitle>examples.pi_flexform.sheetGeneral</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<settings.actionbackgroundimage>
<TCEforms>
<label>LLL:EXT:ancchristmas/Resources/Private/Language/locallang.xlf:flexform.actionbackgroundimage</label>
<config>
<type>group</type>
<internal_type>file_reference</internal_type>
<uploadfolder></uploadfolder>
<allowed>jpg,gif,png</allowed>
<max_size>10240</max_size>
<show_thumbs>1</show_thumbs>
<size>1</size>
<minitems>0</minitems>
<maxitems>1</maxitems>
</config>
</TCEforms>
</settings.actionbackgroundimage>
<settings.pageSelector>
<TCEforms>
<label>examples.pi_flexform.pageSelector</label>
<config>
<type>select</type>
<items type="array">
<numIndex index="0" type="array">
<numIndex index="0">examples.pi_flexform.choosePage</numIndex>
<numIndex index="1">0</numIndex>
</numIndex>
</items>
<foreign_table>pages</foreign_table>
<foreign_table_where>ORDER BY title</foreign_table_where>
<minitems>0</minitems>
<maxitems>1</maxitems>
</config>
</TCEforms>
</settings.pageSelector>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>
- auch interessant flexform von anderen Extension erweitern Extend flexforms with custom fields
Classes/Controller/Controller1.php
namespace Netzcoop\Extensionkeyname\Controller;
class Controller1Controller extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
/**
* action action1
*
* @return void
*/
public function action1Action() {
echo '<h1>test</h1><pre>';
print_r($this->settings);
echo '</pre>';
}
}
Konfiguration einer Extension über den Extensionmanager
ext_conf_template.txt
diese Datei muss im Extensionangelegt werden, damit automatisch eine Konfiguration für diese angelegt wird. Zu finden ist sie im Backend unter dem Extensionmanager/Erweiterungsmanager, nach dem die Extension installiert wurde in der Zeile der Extension
# cat=basic/enable/010; type=string; label=var key: irgendein Text fürs Verständnis
var_key =
# cat=basic/enable/020; type=string; label=var secret: irgendein Text fürs Verständnis
var_secret =
php Code
$this->confArray = unserialize($GLOBALS["TYPO3_CONF_VARS"]["EXT"]["extConf"]['extension_key']);
echo '<li> -- '.$this->confArray['var_key'].'</li>';
echo '<li> -- '.$this->confArray['var_secret'].'</li>';
eine blanke Backend Seite erstellen
ext_tables.php
<?php
if (!defined('TYPO3_MODE')) {
die('Access denied.');
}
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'Extension');
if (TYPO3_MODE === 'BE' && !(TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_INSTALL)) {
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(
'vendorname.' . $_EXTKEY,
'user',
'is24',
'top',
array('Auth' => 'index'),
array(
'access' => 'user,group',
'icon' => 'EXT:extensionname/ext_icon.gif',
'labels' => 'LLL:EXT:extensionname/Resources/Private/Language/locallang.xlf:title'
)
);
}
Classes/Controller/AuthController.php
<?php
namespace Anc\Ncimmoscout24\Controller;
/**
* Module 'User / Group Overview' for the 'tc_beuser' extension.
*
* @author netz.coop eG <kontkat[at]netz.coop>
* @package TYPO3
* @subpackage
*/
class AuthController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
function indexAction() {
}
}
Resources/Private/Language/locallang.xlf
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
<file source-language="en" datatype="plaintext" original="messages" date="2015-03-24T18:35:34Z" product-name="product name">
<header/>
<body>
<trans-unit id="title" xml:space="preserve">
<_source>link name linke Spalte</_source>
</trans-unit>
<trans-unit id="auth" xml:space="preserve">
<_source>Eine Backend Seite zum gestalten</_source>
</trans-unit>
</body>
</file>
</xliff>
- Achtung: _source muss natürlich source heißen!!!
Resources/Private/Layouts/Default.html
<f:be.container>
<div id="typo3-docheader">
<div class="typo3-docheader-functions"> </div>
<div class="typo3-docheader-buttons"> </div>
</div>
<div id="typo3-docbody">
<div id="typo3-mod-help-about-index-php-outer">
<f:render section="Content" />
</div>
</div>
</f:be.container>
Resources/Private/Partials/Auth.html
<div class="typo3-mod-help-about-index-php-inner">
<h1>
<f:translate key="LLL:EXT:extensionname/Resources/Private/Language/locallang.xlf:auth" />
</h1>
<p>
<a href=""></a>
</p>
</div>
Resources/Private/Templates/Auth/Index.html
<f:layout name="Default" />
<f:section name="Content">
<f:render partial="Auth" arguments="{_all}" />
</f:section>
be_users um Spalte erweitern
Veränderungen für SYSTEM > Backend-Benutzer
Damit im Backend unter SYSTEM > Backend-Benutzer bei einem Benutzer ein neuer Reiter mit einem neuen Feld erscheint.
Das nachfolgende kann mensch sich sparen, wenn mensch keine Unterstriche benutzt!! Es lohnt sich, da häufig Flüchtigkeitsfehler dann schuld sind, wenns nicht funzt!
Solltet Ihr in Euren Spaltennamen Unterstriche verwendet haben, dann müssen diese in den get-Methoden entfernt werden und das erste Zeichen NACH dem Unterstrich auch wieder großgeschrieben werden. Beispiel: Spaltenname first_name wird zu getFirstName.
Configuration/TCA/Overrides/be_users.php
<?php
if (!defined('TYPO3_MODE')) {
die ('Access denied.');
}
// be_users modified
$be_users_cols = array(
'ncimmoscout24user' => array(
'label' => 'LLL:EXT:ncimmoscout24/locallang_tca.xml:be_users.ncimmoscout24user',
'exclude' => '0',
'config' => array(
'type' => 'input',
'size' => '40',
'eval' => 'trim,nospace,unique',
'max' => '80'
)
)
);
TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('be_users', $be_users_cols);
//$GLOBALS['TCA']['be_users'] = array_replace_recursive($GLOBALS['TCA']['be_users'], $be_users_cols);
TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCATypes(
'be_users',
'--div--;ncimmoscout24,ncimmoscout24user'
);
- http://blog.wolf-whv.de/typo3-neuen-tab-reiter-den-seiteneigenschaften-hinzuf%C3%BCgen
- weitere paramerter
ext_tables.sql
CREATE TABLE be_users (
ncimmoscout24user varchar(255) DEFAULT '' NOT NULL
);
locallang_tca.xml
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3locallang>
<meta type="array">
<description>description: Labels</description>
<type>database</type>
<csh_table></csh_table>
<fileId>EXT:ncimmoscout24/locallang_tca.xml</fileId>
<labelContext type="array">
</labelContext>
</meta>
<data type="array">
<languageKey index="default" type="array">
<label index="be_users.ncimmoscout24user">Immoscout 24 Benutzername</label>
</languageKey>
</data>
</T3locallang>
eigene repository und model
damit nun auch an anderer Stelle die Spalte benutzt werden kann ....
Classes/Domain/Model/BackendUser.php
<?php
namespace Anc\Ncimmoscout24\Domain\Model;
/**
* Model for backend user
*/
class BackendUser extends \TYPO3\CMS\Beuser\Domain\Model\BackendUser {
/**
*
* @var string
*/
protected $ncimmoscout24user = '';
/**
* Setter for text column
* @param string $ncimmoscout24user The text column
* @return void
*/
public function setNcimmoscout24User($ncimmoscout24user) {
$this->ncimmoscout24user = $ncimmoscout24user;
}
/**
* Getter for text column
* @return string The text column
*/
public function getNcimmoscout24User() {
return $this->ncimmoscout24user;
}
}
Classes/Domain/Repository/BackendUserRepository.php
<?php
namespace Anc\Ncimmoscout24\Domain\Repository;
class BackendUserRepository extends \TYPO3\CMS\Beuser\Domain\Repository\BackendUserRepository {
}
ext_tables.php
folgende Zeile hinzufügen
// .......
$TCA['be_users']['interface']['showRecordFieldList'] .= ',ncimmoscout24user';
ext_typoscript_setup.txt
damit unser Model jetzt nicht automatisch eine "neue" Tabelle erwartet, sondern schön die be_users nutzt .. muss noch gemappt werden
config.tx_extbase{
persistence{
classes{
TYPO3\CMS\Beuser\Domain\Model\BackendUser {
subclasses {
BackendUser = Anc\Ncimmoscout24\Domain\Model\BackendUser
}
}
Anc\Ncimmoscout24\Domain\Model\BackendUser {
mapping {
tableName = be_users
}
}
}
}
}
Classes/Controller/AuthController.php
folgender Code ist ein Beispiel, wie das Model nun benutzt werden kann
<?php
namespace Anc\Ncimmoscout24\Controller;
class AuthController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
/**
* @var Anc\Ncimmoscout24\Domain\Repository\BackendUserRepository
* @inject
*/
protected $backendUserRepository;
public function indexAction() {
echo ' BE_USER<pre>';
print_r($this->backendUserRepository->findByUid($GLOBALS['BE_USER']->user["uid"]));
echo '</pre>';
$this->view->assign('backenduser', $this->backendUserRepository->findByUid($GLOBALS['BE_USER']->user["uid"]));
}
code Schnipsel
statt zb @inject zu nutzen
$this->backendUserRepository = $this->objectManager->get('\TYPO3\CMS\Beuser\Domain\Repository\BackendUserRepository');