Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/terminal42/contao-dcawizard
A Contao CMS widget to handle external table records in the edit mode of the parent record.
https://github.com/terminal42/contao-dcawizard
Last synced: 23 days ago
JSON representation
A Contao CMS widget to handle external table records in the edit mode of the parent record.
- Host: GitHub
- URL: https://github.com/terminal42/contao-dcawizard
- Owner: terminal42
- Created: 2011-12-22T23:55:09.000Z (about 13 years ago)
- Default Branch: main
- Last Pushed: 2024-04-17T14:03:01.000Z (9 months ago)
- Last Synced: 2024-12-07T21:08:05.186Z (about 1 month ago)
- Language: PHP
- Homepage:
- Size: 191 KB
- Stars: 10
- Watchers: 9
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
dcawizard Contao Extension
==========================This extension provides a widget to handle external table records in the edit mode of the parent record.
## How to use
```php
// DCA defnition
'prices' => array
(
'inputType' => 'dcaWizard',// Define the foreign table
'foreignTable' => 'tl_iso_prices',// Define the foreign field (e.g. fid instead of pid)
'foreignField' => 'fid',// Use the callback to determine the foreign table
'foreignTable_callback' => array('tl_iso_prices', 'getTableName'),// Add special params to the link of the button
'params' => [
// Change the do parameter
'do' => 'member',// Add new parameter, for example to filter the list
'filterField' => 'group',
],'eval' => [
// A list of fields to be displayed in the table
'fields' => array('id', 'name', 'alias'),// Header fields of the table (leave empty to use labels)
'headerFields' => array('ID', 'Name', 'Alias'),// Use a custom label for the edit button
'editButtonLabel' => $GLOBALS['TL_LANG']['tl_iso_products']['prices_edit_button'],// Set a label if no records are found
'emptyLabel' => $GLOBALS['TL_LANG']['tl_iso_products']['prices_empty_label'],// Order records by a particular field
'orderField' => 'name DESC',// Hide the popup button (record list functionality only)
'hideButton' => true,
// Show operations next to every row (disabled by default)
'showOperations' => true,// Define which operations you want to list
// If this one is not defined, are all listed
'operations' => ['edit', 'delete', 'new' /* for tables with sorting like tl_content */],
// Define which global operations you want to add
'global_operations' => ['new'],// Use your own custom template
'customTpl' => 'be_widget_dcawizard_mytemplate',// Use the callback to generate the list
'list_callback' => ['Isotope\tl_iso_prices', 'generateWizardList'],
],
),// Example list callback:
/**
* Generate a list of prices for a wizard in products
* @param object
* @param string
* @return string
*/
public function generateWizardList($objRecords, $strId)
{
$strReturn = '';while ($objRecords->next()) {
$strReturn .= '
}
return '
- ' . $strReturn . '
}
```
## Using the dcaWizard together with DC_Multilingual
If you want to use the dcaWizard to manage a foreign table that is generated by [DC_Multilingual](https://github.com/terminal42/contao-DC_Multilingual) you can simply use
```php
'inputType' => 'dcaWizardMultilingual',
```
so the translated entries will not be listed.
If you do not use the `language` database column to separate entries (see `langColumn` setting in `DC_Multilingual`, you can specify the matching column name in the `eval` section as well:
```php
'eval' => [
'langColumn' => 'language_column_name',
],
)
```