bestehende Extension um Feld Zugriff erweitern
| Autor | Nachricht |
|---|---|
|
Verfasst am: 28. 02. 2012 [16:38]
|
|
|
redbug
Themenersteller
Dabei seit: 22.10.2009
Beiträge: 15
|
Hallo TYPO3ler, ich hoffe ihr könnt mir weiterhelfen... Es geht um bereits bestehnde Extensions wie z.B.: dmmjobcontrol, wec_staffdirectory etc. diese sollten das Feld "Zugriff" bekommen damit ich den Zugriff auf TYPO3 FE-User steuern kann. Bei manchen Extensions wie ab_downloads ist dies integriert, bei manchen Extensions fehlt dies doch Ist es möglich eine bestehende Extension mit einer eigenen Extension um dieses Feld zu erweitern oder muss man dazu in den Core der Extension eingreifen? Dies würde ich natürlich sehr sehr ungern machen!! VG redbug |
|
Verfasst am: 18. 03. 2012 [21:43]
|
|
|
karlchen
Dabei seit: 19.10.2006
Beiträge: 991
|
Hallo, ja man kann fast alle Sachen an fremden Extensions anpassen ohne direkt in den Core der Extensions einzugreifen. Mit dem Kickstarter eine neue Extension erstellen, die Option "Extend existing Tables" nutzen, damit kannst du weitere DB Felder zu der bestehenden Extensions hinzufügen, dann kann in der ext_tables.php in der neuen Extension die Konfiguration geladen und manipuliert werden. Im Anhang mal eine Text-Extension die dmmjobcontrol's Datensatz "JobControl: Stelle" um ein DB-Feld erweitert was im Backend die Funktion vom Zugriffsfeld hat, der nächste Schritt ist dann allerdings in diesem Fall von Extension zu Extension verschieden. Da es hierbei um eine Zugriffsbeschränkung für die Datensätze handelt, müssen auch die Datenbank Anfragen angepasst werden, die Zugriffsfelder werden über üblicherweise über die TYPO3 Funktion PHP $this->cObj->enableFields('table')Wenn die Extension das bereits nutzt, sollte es sofort funktionieren, an sonsten wirst du die Extension class eventuell mit dem XCLASS verfahren anpassen müssen. In TYPO3 kann man mit diesem Verfahren, bestimmte Funktionen einer Klasse überschreiben, also den eigenen Vorstellungen anpassen. Dafür gibt es auch viele gute Tutorials im Netz, ab und an bieten die Extensions jedoch auch HOOKS an, damit kann auch eigener Code an bestimmten Stellen in der Extension integriert werden. Einige Authoren verwalten ihre Extensions auch unter forge.typo3.org, dort kann man den Author anschreiben und in Zusammenarbeit mit Ihm auch die Extensions erweitern und Fehlende Features integrieren oder Bugs fixen. Um mal zum Ende zu kommen, ja, man kann fremde Extensions anpassen ohne direkt die Datein zu bearbeiten, jedoch ist es nicht immer ganz einfach. |
|
Verfasst am: 19. 03. 2012 [10:07]
|
|
|
redbug
Themenersteller
Dabei seit: 22.10.2009
Beiträge: 15
|
Hallo Karlchen, vielen Dank für deine super Anleitung und deine Demo-Extension! ich hatte es mittlerweile doch mit der Änderung der Core-Dateien gemacht - und zwar nach dieser Anleitung . Ich muss aber noch eine weitere Extension anpassen und werde hier dein Vorschlag ausprobieren! Das mit dem XCLASS-Verfahren kannte ich bis jetzt noch nicht und werde mich hier mal schalu machen. Wenn du hier u.U. auch noch ein paar gute Tutorials kennst bin ich dafür natürlcih dankbar! Ein weiteres Problem bei der Job-Extension war , dass die Funktion PHP $this->cObj->enableFields('table')leider nicht intergiert war. Gruß redbug [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 19.03.2012 um 10:46.] |
|
Verfasst am: 19. 03. 2012 [16:15]
|
|
|
karlchen
Dabei seit: 19.10.2006
Beiträge: 991
|
Hallo redbug, ja, wenn du Extension Core Dateien anpasst, solltest du nur immer aufpassen, das Sie bei einem Update nciht überschrieben werden, bzw. wenn es weitere Admins in dem System gibt, diese nciht das überschreiben auslösen. Eine ganz gute Anleitung hier noch zu den XCLASS Sachen: http://www.npostnik.de/typo3/extension-per-xclass-erweitern-tipafriend/ Noch eine Erwähnung zur XCLASS Nutzung, die man im Hinterkopf behalten sollte. Mit XCLASS "überschreibt" man sozusagen eine Datei, wenn TYPO3 ein Klasse einbindet, schaut es vorher ob es den Namen der Klasse noch mit einem "ux_" davor gibt, wenn ja wird diese genutzt. JEDOCH funktioniert das nur einmal, sprich wenn bereits eine andere Extension, die benötigte Extension xclass'ed, wird deine, da Sie später eingebunden wurde, alles vorherige gexclassed aushebeln. P.S. was mri noch einfällt, wenn man eine Extension wirklich mal ändern muss, dann kann man in der ext_emconf.php Datei den Status der Extension ändern, um diese vor versehentlichen Updates zu schützen. Sieht dann in etwa so aus: PHP // 'state' => 'stable',
'state' => 'excludeFromUpdates',[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 19.03.2012 um 16:18.] |
|
Verfasst am: 19. 03. 2012 [16:21]
|
|
|
redbug
Themenersteller
Dabei seit: 22.10.2009
Beiträge: 15
|
Hallo Karlchen, karlchen schrieb: ja, wenn du Extension Core Dateien anpasst, solltest du nur immer aufpassen, das Sie bei einem Update nciht überschrieben werden, bzw. wenn es weitere Admins in dem System gibt, diese nciht das überschreiben auslösen. dessen bin ich mir bewusst karlchen schrieb: Eine ganz gute Anleitung hier noch zu den XCLASS Sachen: http://www.npostnik.de/typo3/extension-per-xclass-erweitern-tipafriend/ super vielen Dank karlchen schrieb: P.S. was mri noch einfällt, wenn man eine Extension wirklich mal ändern muss, dann kann man in der ext_emconf.php Datei den Status der Extension ändern, um diese vor versehentlichen Updates zu schützen. Sieht dann in etwa so aus: PHP // 'state' => 'stable',
'state' => 'excludeFromUpdates',genial, werde ich gleich umsetzen!! Vielen Dank redbug |




