Skip to content
This repository has been archived by the owner on Apr 6, 2020. It is now read-only.

netzmacht-archive/contao-dev-tools

Repository files navigation

Contao Dev Tools

Build Status Version License Downloads Contao Community Alliance coding standard

This library provides tools for solving common tasks required when developing for Contao CMS.

Install

You can install this library using Composer.

$ php composer.phar require netzmacht/contao-dev-tools:~1.0

Features

DCA related features

####Toggle icon callback

This library ships with a common toggle state icon callback.

<?php

// dca/tl_custom.php

$GLOBALS['TL_DCA']['tl_custom']['fields']['published']['button_callback'] = 
	Netzmacht\Contao\DevTools\Dca::createToggleIconCallback(
		'tl_custom',	// The database table.
		'published',	// the state column
		false,			// Inverse the state. Set to true for invisible='' columns
		'invisible.gif' // Disabled icon. If not set, icons are transformed from edit.gif to edit_.gif
	)

####Convert models to options

One standard task using Contao models is to transform when to options for select lists or checkbox menus. Dev-Tools simplifies it for you.

  • Convert collections to options arrays.
  • Use callbacks to customize the labels.
  • Group values by a third column/callback value.
<?php 

public function yourOptionsCallback()
{
	$collection = \PageModel::findAll();
	
	// Empty collections by Contao are NULL. The OptionsBuilder handles is correctly.
	return Netzmacht\Contao\DevTools\Dca\Options\OptionsBuilder::fromCollection($collection, 'id', 'name')
		->groupBy('type')
		->getOptions();
}
```php

###Dependency injection

Contao does not provide any help for dependency injection. If you need some dependencies from the 
[dependency container](https://github.com/contao-community-alliance/dependency-container) you can use this Trait:

```php

class YourContentElement extends \ContentElement
{
	use Netzmacht\Contao\DevTools\ServiceContainerTrait;
	
	private $service;
	
	public function __construct($model)
	{
		parent::__construct($model);
		
		$this->service = $this->getService('your-required-service');
	}
}

Requirements

  • PHP 5.4 is required.
  • Contao 3.2 - 3.4 is supported.
  • contao-community-alliance/dependency-container ~1.6 is required.

About

Developer library for Contao

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages