heimrichhannot/contao-haste_plus

contao haste 模块的扩展。

1.16.3 2024-08-30 09:32 UTC

This package is auto-updated.

Last update: 2024-08-30 09:32:38 UTC


README

请注意

此捆绑包已过时,不再积极维护!

Haste Plus

Haste plus 扩展了 codefog/contao-haste,作为一组工具和类,以简化与 Contao 的工作。

模块预览

功能

缓存

PHP 高性能对象缓存系统 phpfastcache 是 hast_plus 的一部分。目前仅支持文件缓存,但欢迎 Pull-Request。

示例: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;
}

安全

向 HTTP 请求添加安全头(在 tl_settings 中可配置)

  • IFRAME Clickjacking 保护:X-Frame-Options: SAMEORIGIN
  • 允许来源检查:Access-Control-Allow-Origins & Access-Control-Allow-Headers

这些选项在 Contao 4 中不再起作用! 更多信息

输入/小部件 rgxp

以下正则表达式可用于验证小部件输入。

工具

以下类和方法是帮助程序,可简化与 Contao 的工作。

Google Maps

如果您想轻松添加由动态实体构建的 Google 地图(而不是 dlh_googlemaps 后端模块),请使用以下代码。

# 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()
); ?>

插入标记

开发人员备注

  • 为每个 util 方法的测试案例提供至少 3 个单元测试

通知令牌

  • 添加了 ##form_submission_html_all##,这是 ##formsubmission## 的等效物,但用于 HTML 格式