heimrichhannot/contao-haste_plus

An extension for the contao haste module.

1.16.2 2024-01-23 11:08 UTC

This package is auto-updated.

Last update: 2024-07-26 17:46:41 UTC


README

Please note:

This bundle is deprecated and not actively maintained anymore!

Haste Plus

Haste plus extends codefog/contao-haste as a collection of tools and classes to ease working with Contao.

Module Preview

Features

Cache

The PHP high-performance object caching system, phpfastcache is part of hast_plus. Currently only File-Caching is supported, but Pull-Request are welcome.

Example : FileCache

// MyClass.php

public function getSelectOptions(array $arrNewsArchives)
{
	// select a unique key
	$strCacheKey = 'my_select_options' . implode('_', $arrNewsArchives);
	
	if(FileCache::getInstance()->isExisting($strCacheKey))
	{
		return FileCache::getInstance()->get($strCacheKey);
	}
	
	$arrItems = array();
	
	// heavy sql queries or http-requests (just an example)
	$objItems = \NewsModel::findPublishedByPids($arrNewsArchives);
	
	if($objItems === null)
	{
		return $arrItems;
	}
	
	$arrItems = $objItems->fetchEach('headline');
	
	FileCache::getInstance()->set($strCacheKey, $arrItems);
  
	return $arrItems;
}

Security

Add security headers to http request (configurable in tl_settings)

  • IFRAME Clickjacking Protection: X-Frame-Options: SAMEORIGIN
  • Allow Origins Check: Access-Control-Allow-Origins & Access-Control-Allow-Headers

These options don't work anymore with Contao 4! Further Information

Input/Widget rgxp

The following regular expression can be used to validate widget input.

Utils

The following Classes and Methods are helpers that ease the working with Contao.

Google Maps

If you want to add google maps with ease that are build from dynamic entities, and not withing dlh_googlemaps backend module, use the following code.

# news_full.html5
<?php $objMap = new \HeimrichHannot\Haste\Map\GoogleMap(); ?>

<?php foreach ($this->venues as $arrVenue): ?>
	<?php $objMap->setCenter($arrVenue['venueSingleCoords']); // lat and lon seperated by comma ?>
	<?php $objMarker = new \HeimrichHannot\Haste\Map\GoogleMapMarker(); ?>
	<?php $objMarker->setPosition($arrVenue['venueSingleCoords']); // lat and lon seperated by comma ?>
	<?php $objMarker->setTitle($arrVenue['venueName']); // for full list of marker options see \HeimrichHannot\Haste\Map\GoogleMapMarker::prepare()?>
	<?php $objMap->addMarker($objMarker); ?>
<?php endforeach; ?>

<?= $objMap->generate(
	array(
		'mapSize' => array('100%', '400px', ''),
		'zoom'    => 13,
	)
	// for full list of map options see \HeimrichHannot\Haste\Map\GoogleMap::prepare()
); ?>

Inserttags

Developer notes

  • provide a minimum of 3 unit test for each test case of a util method