Translations
Info
All page names need to be in English.
en da  de  fr  it  ja  km  nl  ru  zh

Ext/Admin interface

From TYPO3Wiki
Jump to: navigation, search

The admin_interface is an extension for typo3 that provides a search/list/view/edit/delete user interface for any database table. It is designed to be easy to use for creating a quick online editing interface. It includes support for a wide range of field types including file uploads, date selectors and relationship management.

It is highly configurable including a templating system based on core typoscript content objects. Email notifications can be sent after various database activities. Setfixed processing allows one click approval from an email link. Complex search interfaces can be built using simple configuration.

The extension is available [1] The documentation is available [2]


Frequent Asked Questions

Join (to be completed)

Q: How do I add information from another table into the list- and edit-form?

A: currently you can join readonly data from another table to the table you are editing. List, view and form can show data from a joined table but it is not currently possible to update data in two tables from a single form.

When working with joins, the fieldnames as referenced by the configuration require special consideration. Use alias.field for sql stuff (eg uiconfig.filterExtra) (so it can be used directly) and aliasfield for listFields,editFields etc.

Sample code editing a tt_news with joined data from fe_users:

plugin.tx_admininterface_pi1 {
 table=tt_news
 alias=n
 join.0 {
  table=fe_users
  alias=u
  condition=u.uid=n.cruser_id
  fields=uid,name,email
 }
 record {
  listFields=ntitle,nimage,nshort,nbodytext,uname,uemail
 }
 uiconfig {
  filterExtra.0=and n.starttime > now() and u.email like '%@here.com'
 }
}

Localization (to be verified)

Q: Edited field labels of table 'fe_users' show up in the wrong language. How can I make them appear in my language?

A: file typo3/sysext/cms/locallang_tca.xml is the default translation for the fe_users field labels. Edit this file to include translations for the fe_user field labels. This method has one drawback: when updating the core-source, you have to add the translation again.

XXX I copied the section languageKey="default" to languageKey="de" and added successfully more labels. Unfortunately, "www"-label does not get translated. Don't worry, I can live with that... XXX


Q: How do I change the language used in output to a different language then english?

A: Most labels and items for translations are found in admin_interface/pi1/locallang.xml. To make it work, write the following into your TS-setup: config.language = de (or any other country code you prepared the translation for.)

For translation to german language insert the following after <data type="array">

(if this does not work for you, make sure to have applied the hack in class.tx_admininterface_controller.php below)

<languageKey index="default" type="array">
<label index="tt_content.list_type">admin_interface</label>
<label index="savesuccessful">Speichern erfolgreich</label>
<label index="deletesuccessful">Datensatz gel&ouml;scht</label>
<label index="save">Aktualisieren</label>
<label index="close">Abbruch</label>
<label index="saveandclose">Speichern</label>
<label index="saveandaddnew">Speichern & Neu hinzuf&uuml;gen</label>			
<label index="createnew">Neu anlegen</label>
<label index="print">Drucken</label>
<label index="delete">l&ouml;schen</label>
<label index="deletewarning">Wollen Sie diesen Eintrag wirklich l&ouml;schen?</label>
<label index="edit">Bearbeiten</label>
<label index="search">Suchen</label>
<label index="searchform">Suchformular</label>
<label index="resetsearch">Suche zur&uuml;cksetzen</label>
<label index="back">Zur&uuml;ck</label>
<label index="contin&uuml;">Weiter</label> 
<label index="cancel">Abbruch</label>
<label index="return_to_search">Zur&uuml;ck zum Suchen</label>
<label index="view">Ansehen</label>
<label index="viewformheader">Ansehen</label>
<label index="addformheader">Hinzuf&uuml;gen</label>
<label index="editformheader">Bearbeiten</label>
<label index="searchformheader">Suchen</label>
<label index="summaryformheader">Zusammenfassung</label>
<label index="submissionerrors">Es gab Fehler in der Eingabe, bitte versuchen Sie es noch einmal.</label>
<label index="next">Weiter</label>
<label index="previous">Vorher</label>
<label index="childedit">Bearbeiten</label>
<label index="childview">Ansehen</label>
<label index="childdelete">L&ouml;schen</label>
<label index="childadd">Hinzuf&uuml;gen</label>
<label index="childsearch">Namen Suchen</label>
<label index="yes">Ja</label>
<label index="no">Nein</label>
<label index="upload_failed">Datei Hochladen fehlgeschlagen</label>
<label index="invalid_upload_type">Es ist Ihnen nicht gestattet, Dateien dieses Typs hochzuladen. G&uuml;ltige Dateitypen sind </label>
<label index="upload_too_large">Die Datei die Sie versuchen zu senden ist gr&ouml;sser als das gegenw&auml;rtige Limit von </label>
<label index="tt_content.pi_flexform.default">Voreinstellung</label>
<label index="tt_content.pi_flexform.0">0</label>
<label index="tt_content.pi_flexform.1">1</label>
<label index="tt_content.pi_flexform.sheet_sDef">Global</label>
<label index="tt_content.pi_flexform.sheet_uiconfig">uiconfig</label>
<label index="tt_content.pi_flexform.sheet_record">record</label>
<label index="tt_content.pi_flexform.sheet_templates">Templates</label>
<label index="tt_content.pi_flexform.sheet_mail">Mail</label>
<label index="tt_content.pi_flexform.sDef_sheetdescription">Optionen mit * sind notwendig (Wenn nicht schon im Template eingestellt)</label>
<label index="tt_content.pi_flexform.sDef_sheetshortdescr">Globale Einstellungen</label>
<label index="tt_content.pi_flexform.sDef_table">Table* </label>
<label index="tt_content.pi_flexform.uiconfig_sheetdescription">User Interface Einstellungen: verschiedene Konstanten ste&uuml;rn das Verhaten und in gewisser Weise das Rendering.</label>
<label index="tt_content.pi_flexform.uiconfig_sheetshortdescr">User Interface Einstellungen</label>
<label index="tt_content.pi_flexform.uiconfig_allowdelete">allowDelete</label>
<label index="tt_content.pi_flexform.uiconfig_allowedit">allowEdit</label>
<label index="tt_content.pi_flexform.uiconfig_allownew">allowNew</label>
<label index="tt_content.pi_flexform.uiconfig_allowprint">allowPrint</label>
<label index="tt_content.pi_flexform.uiconfig_disableview">disableView</label>
<label index="tt_content.pi_flexform.uiconfig_viewbeforeedit">viewBeforeEdit</label>
<label index="tt_content.pi_flexform.uiconfig_autosearch">autoSearch</label>
<label index="tt_content.pi_flexform.uiconfig_maxlistrows">maxListRows</label>
<label index="tt_content.pi_flexform.uiconfig_locktofeuser">lockToFEUser</label>
<label index="tt_content.pi_flexform.record_sheetdescription">Hier k&ouml;nnen Sie angeben, welche Felder in den verschiedenen Anzeigevarianten von admin_interface</label>
<label index="tt_content.pi_flexform.record_sheetshortdescr">Welche Felder sollen angezigt werden</label>
<label index="tt_content.pi_flexform.record_editfields">editFields</label>
<label index="tt_content.pi_flexform.record_listfields">listFields</label>
<label index="tt_content.pi_flexform.record_viewfields">viewFields</label>
</languageKey>

A: admin_interface follows your setting in setup. Use config.local to set the desired language. If the output still appears in english, check the file locallang.php in the extensiondir to see the right countrycode for your language or create your own translation copying the english section and translate token by token (Please dont forget to send your translation back to the author for the next release!)

To make this work in admin_interface 1.3.12, alter file EXT:admin_interface/lib/class.tx_admininterface_controller.php on line 591 of the controller class and change the line containing $buttons=$this->LOCAL_LANG['default']; against the following:

<?php
$language=$GLOBALS['TSFE']->config['config']['language'] ;
$buttons=$this->LOCAL_LANG[$language];
if (!is_array($buttons)) $buttons=$this->LOCAL_LANG['default']; 
?>

Empty cells in tables

Table format: (please see "admin_interface1.gif') The table has 4 th's but only 3 td's. So the last column looks a bit strange or "undone". Any suggestions?

A: See the TS settings under plugin.tx_admininterface_pi1.renderingResources. In particular the sectionROW_WRAP_HEADER for LIST_ITEMS for the list section.

column headers dont show

Q: My column headers don't show up. What might be wrong?

A: Check the corresponding TCA for existing fields. Another tip is to check how you aliased the tablefields. In some special cases (referring to joined fields, core tables), the local language labels are not looked up correctly.

A hack solution for this is to force the field labels from TS.

Some of the core tables don't seem to provide complete TCA meta data. (Or the admin interface fails to load it) It is possible to hack in an override using
plugin.tx_admininterface {
 record.specialFieldLabels {
   username=The User Login Name
 }
}
An alternative is to modify the TCA from the admin interface TS
plugin.tx_admininterface_pi1 {
 record.TCA.tableName.columns.LABELFIELD.label=locallang ref or plain string
}

using templates for forms

Q: How can I use templates for forms (i.e. so you can arrange zip and city in the same line)


A: see the section renderingResources in the file ext_typoscript_setup.txt. It is possible to use a html file template with markers. A sample one can be provided by using debug on the appropriate rendering object For example, to use a static html template for rendering the form. (Note: to see the available markers, set dumpDefaultTemplate=1)

plugin.tx_admininterface_pi1 {
        renderingResources {
		form {
			dumpDefaultTemplate=0
			renderObj {
				template=FILE
				template.file=fileadmin/template/gtes/fe_users_form_full.inc	
                        }			
		}
	}

Feature Request

Static SELECT

To join Data to a form that is not in a table I would like to have a feature to SELECT OPTIONS based on a given field. This, I could map a integer value to a more userfriendly string.

I'm interpreting this question as "How do I create select box field types?"

A: Selectorbox field types are defined in the TCA. Using the kickstarter, both static options/values and picklists from related database tables are supported. For example, to force an existing text field to be a picklist type.


                plugin.tx_admininterface_pi1.record.TCA.fe_users.columns.country.config {
                  type=select
                  foreign_table=static_countries
                  foreign_table_key=cn_short_en
                  foreign_table_where= order by cn_short_en
                  maxitems=1
                  default=AU
                  size=1
                }
		

For static options and values, the items are listed in the TCA (with locallang lookups for the values). See the TCA reference for further details. (Or create a data extension in the kickstarter and look at the TCA that is generated)

Table titles

Table title: What if we could give the whole table a title like "List of profiles" above the current th's with a single th colspan=<number_of_columns>. Of course as TS

A: See the renderingResources configuration. In particular ROW_WRAP_HEADER.value for the LIST_ITEMS.


Scenario: Backenduser prepares data for frontenduser

Backenduser creates records for frontend-usage for a specific frontenduser. The id of the frontenduser is nicely selected in backend and saved in a field like "fe_user". Frontenduser should be able to see or edit this record.

To give the frontenduser only "his" records, we write in TS:

plugin.tx_admininterface_pi1.lockToFEUser = 1

But this option reduces the scope to cruser_id, which contains the backenduserid, not the frontenduserid and the frontenduser sees nothing.

Shall we have an option to extend lockToFEUser? Like "lockToFEUserField=fe_user" and instead of looking into cruser_id the extension takes the id from the other column?

more to come soon ...... please ask (stever@syntithenai.com)

Related Links