TYPO3.CMS 6.2 Extension entwickeln - Backend: Unterschied zwischen den Versionen

Aus Vosp.info
Wechseln zu:Navigation, Suche
(ext_tables.sql)
(be_users um Spalte erweitern)
Zeile 132: Zeile 132:
  
 
== 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 145:
  
  
=== Configuration/TCA/Overrides/be_users.php ===
+
==== Configuration/TCA/Overrides/be_users.php ====
 
<source lang="php">
 
<source lang="php">
 
<?php
 
<?php
Zeile 175: Zeile 179:
 
** 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 187:
 
</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" ?>
Zeile 202: Zeile 206:
 
</T3locallang>
 
</T3locallang>
 
</source>
 
</source>
Das Resultat bis jetzt ist das im Backend unter SYSTEM > Backend-Benutzer bei einem Benutzer Daten in ein Feld einfügen.
 
  
=== eigene repository und model ===
+
 
 +
==== eigene repository und model ====
  
  

Version vom 12. April 2015, 12:40 Uhr

typo3

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">&nbsp;</div>
		<div class="typo3-docheader-buttons">&nbsp;</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'
);

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

Nun will ich aber an anderer Stelle in einem Controller, diese Spalte für den angemeldeten Benutzer verändern. Also dachte ich wie folgt vor zu gehen.

code Schnipsel

statt zb @inject zu nutzen

$this->backendUserRepository = $this->objectManager->get('\TYPO3\CMS\Beuser\Domain\Repository\BackendUserRepository');