Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/heimrichhannot/contao-versions
A helper module, that enhance to contao version entity.
https://github.com/heimrichhannot/contao-versions
Last synced: about 1 month ago
JSON representation
A helper module, that enhance to contao version entity.
- Host: GitHub
- URL: https://github.com/heimrichhannot/contao-versions
- Owner: heimrichhannot
- License: lgpl-3.0
- Created: 2016-08-24T15:25:25.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-10-24T12:03:43.000Z (about 1 year ago)
- Last Synced: 2024-11-08T21:40:51.476Z (about 2 months ago)
- Language: PHP
- Size: 46.9 KB
- Stars: 0
- Watchers: 5
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Versions
This bundle enhances the contao version entity with persistent tables options and helper methods.
## Features
- Add fromTable names to `huh_versions.persistent_tables` that should persist within tl_version forever or a custom time frame.
- Use the VersionModel to find tl_version models## Register persistent tables
To make your entities from a given fromTable persist add the table name to the `huh_versions.persistent_tables` within your project configuration (typical `config/config.yml`).
```yaml
# config/config.yml
huh_versions:
persistent_tables:
- tl_my_custom_entity
- tl_keep_forever
```## Create a new version entry
Instead of using the versions class direct, you can use the `VersionControl` service instead.
```php
use Contao\FrontendUser;
use Contao\Versions;
use HeimrichHannot\VersionsBundle\Version\VersionControl;class MyCustomEntity
{
/** @var VersionControl */
private $versionControl;protected function createVersion(int $id, FrontendUser $member): void
{
// Simple call
$this->versionControl->createVersion('tl_my_custom_entity', $id);
// Pass additional options
$this->versionControl->createVersion('tl_my_custom_entity', $id, [
'hideUser' => false,
'additionalData' => [
'memberid' => $member->id,
'memberusername' => $member->username,
'username' => 'FrontendUser',
'userid' => 0,
],
'instance' => new Versions('tl_my_custom_entity', $id),
]);
}
}
```**VersionControl::createVersion options:**
- _hideUser_: (`bool`) Don't add user to version log entry. Default `false`
- _additionalData_: (`array`|`null`) Pass data that should be stored within the log entry. The array keys must be existing database column names. Default `null`
- _instance_: (`Version`|`null`)Pass a custom `Versions` instance instead of the default one. Default `null`## Configuration reference
```yaml
# Default configuration for extension with alias: "huh_versions"
huh_versions:# Set table names that should be persist within tl_versions.
persistent_tables:# Examples:
- tl_content
- tl_my_custom_entity# Set the time period persistent table versions should be kept in version table. Set to 0 for forever.
persistent_version_period: ~ # Example: 7776000
```