pixeldeluxe/siteutils

此包最新版本(1.3.0)没有提供许可信息。

PixelDeluxe网站的所有功能及工具的集合

安装数量: 1,600

依赖项: 0

建议者: 0

安全: 0

类型:craft-plugin

1.3.0 2022-10-05 08:22 UTC

README

PixelDeluxe网站的基本功能。

基础

ArrayList

ArrayList对象可以帮助你管理数组。

  • get(int index) : mixed => 你可以通过此方法查询指定索引的值。
  • add(mixed value) : mixed => 将值添加到数组的下一个索引。
  • set(int index, mixed value) : mixed => 在指定的索引添加值。
  • merge(array array) : array => 将数组与列表合并。
  • remove(mixed value, bool strict = true) : mixed => 删除值。
  • removeIndex(int index) : mixed => 在指定索引删除值。
  • contains(mixed value) : bool => 检查值是否存在。
  • containsIndex(int index) : bool => 检查索引是否存在。
  • getValues() : array => 获取所有值。
  • isEmpty() : bool => 检查列表是否为空。

Counter

Counter对象可以帮助你跟踪数字。

  • get() : number => 获取当前值。
  • increment() : Counter => 将值增加1。
  • decrement() : Counter => 将值减少1。
  • add(number value) : Counter => 将值增加指定值。
  • subtract(number value) : Counter => 将值减少指定值。
  • set(number value) : Counter => 将值设置为指定值。
  • reset() : Counter => 将值重置为默认值。

HashMap

HashMap对象可以帮助你管理key/value数组。

  • get(mixed key) : mixed => 通过此方法获取指定key的值。
  • set(mixed key, mixed value) : mixed => 将值设置为指定key。
  • getOrSet(mixed key, mixed default) : mixed => 返回key的值或设置默认值。
  • getOrElse(mixed key, mixed default) : mixed => 返回key的值或默认值。
  • merge(array array) : array => 将数组与映射合并。
  • remove(mixed value, bool strict = true) : mixed => 删除值。
  • removeKey(mixed key) : mixed => 在指定key删除值。
  • containsKey(mixed key) : bool => 检查key是否存在。
  • getMap() : array => 返回映射数组。
  • getKeys() : array => 返回key数组。
  • getValues() array => 返回值数组。
  • isEmpty() : bool => 检查映射是否为空。

PdfBuilder

PdfBuilder对象可以帮助你构建PDF,请参阅FPDF文档。

Timer

Timer对象可以帮助你跟踪时间。

  • start() : void => 开始计时。
  • stop() : void => 停止计时。
  • getTime() : float => 开始和停止之间的时间。

行为

LinkBehavior

为linktypefield添加isForm()和getForm()。这样你可以轻松检查链接是否是FreeForm表单以及获取表单对象。

WebUserBehavior

为用户添加getIsImpersonation()和getImpersonator()。这样你可以轻松检查用户是否是伪装者以及获取真实用户。

事件

EventListener

为了使事件监听器更易于查看,可以使用EventListener API。您创建一个类,让这个类继承EventListener,并实现所需的方法。通过在插件初始化函数EventListenerClass::init()中调用注册监听器。

辅助工具

ArrayHelper

这是Craft ArrayHelper的扩展。额外方法:filterObject(),findObject()

$entry = ArrayHelper::findObject($entries, 'id', 5);

if($entry !== null) {
	echo "Entry title is: $entry->title";
}

ClassHelper

这使得与类和对象的工作更加容易。

FieldHelper

这使得轻松获取单选/多选字段(如复选框和单选按钮)的值。

JsonHelper

这里提供了json工具。您可以使用以下(静态)方法:decode(),isValid(),getProperty()。

$str = 'dit is geen json';

if(!JsonHelper::isValid($str)) {
	echo 'ongeldige json!';
}

$json = JsonHelper::decode('{ "mijnKey": "hallo" }');

if(!$json) {
	echo 'ongeldige json!';
	return;
}

echo 'Mijn value: ' JsonHelper::getProperty($json, 'mijnKey');

MailHelper

使用此工具可以轻松发送简单的文本或自定义模板电子邮件。您可以使用的以下(静态)方法有:sendTextMail()和sendTemplateMail。

$mailSent = MailHelper::sendTemplateMail(
    'info@pixeldeluxe.nl',
    "Hallo!", 
    "my/template", 
    ['variable' => 'for template']
);

if($mailSent) {
	echo 'Yay!';
} else {
	echo ':(';
}

MapHelper

这里提供了HashMap工具。您可以使用以下(静态)方法:createFromArray()。

$entries = Entry::find()->all();
$map = MapHelper::createFromArray($entries);

if($map->get(1)) {
	echo 'Entry met ID 1 bestaat!';
}

NumberHelper

这里提供了数字工具。您可以使用的以下(静态)方法有:isInt()。

$valid = NumberHelper::isInt('2');

if($valid) {
	echo 'geldig nummer!';
} else {
	echo 'ongeldig nummer :(';
}

TaskHelper

使用此工具处理与任务/可调用相关的事项。例如,安全地执行可调用。

TaskHelper::executeSafe(fn() => unsafe_function(), fn($e) => echo $e->getMessage());

ZipHelper

使用此工具可以将特定文件/文件夹zip到指定位置。您可以使用的以下(静态)方法有:zip()。

$ignored = ['ignore', 'these', 'files', 'or', 'folders'];

// Create zip file at location
try {
    ZipHelper::zip('my/folder', 'zip/here/please.zip', true, $ignored);
} catch(Exception $e) {
    echo 'error: ' . $e->getMessage();
}

echo 'It worked :D';

实用工具

清除缓存 - 公共资源

为了提高网站速度,尽可能多地缓存文件。这些缓存可以通过清除缓存实用程序的选项来清除。为了使清除特定文件的缓存成为可能,必须在src后面添加查询字符串。

<link rel="stylesheet" type="text/css" href="/public/css/main.min.css{{ cacheSuffix() }}">

Logger

日志是存储自定义插件日志的中央位置。此外,所有捕获的异常也将在此记录。

class RegisterLogTypeListener extends EventListener {
    
    public function getEventClass() {
        return Logger::class;
    }
    
    public function getEventName() {
        return Logger::EVENT_REGISTER_LOG_TYPES;
    }
    
	public function onEvent(Event $event) {
        $event->logTypes[] = new LogTypeModel(['handle' => LogType::CUSTOM, 'label' => 'Custom', 'color' => '#8BAF40']);
	}

}

SiteUtils::getInstance()->logger->log(LogType::CUSTOM, "Test log", "Test description", ["any" => "Data value"]);

验证器

DateTimeValidator

datetime验证器基于Craft验证器,但增加了最小和最大值选项。

EmailAliasValidator

email验证器基于Craft验证器,但增加了别名支持。

IntegerAliasValidator

integer验证器基于Craft验证器,但增加了别名支持。

UrlAliasValidator

url验证器基于Craft验证器,但增加了别名支持。

ApiRequest & ApiResponse

这使得可以轻松地以面向对象的方式与API进行通信。

$apiRequest = new ApiRequest('https://my.api/doSomething');

$apiRequest->setMethod('POST');

$apiRequest->addData([
    "test1" => 'Hi',
    "test2" => 'There'
]);

// Send response
$response = $apiRequest->send();

if($response->getStatus() == 200) {
	$json = $response->getJson();
	echo $json->greeting;
} else {
	echo 'error';
}

Twig

过滤器

base64_encode和base64_decode

使用这些过滤器可以对字符串进行base64编码和解码。

{% set encoded = "test"|base64_encode %}
{% set decoded = encoded|base64_decode %}

hash

使用此过滤器可以计算字符串的哈希值。此过滤器使用PHP hash函数。

{% set hashed = "secure"|hash("md5") %}

boolean

使用此过滤器可以将值转换为布尔值。此过滤器使用PHP boolval函数。

{% set boolValue = "true"|boolean %}

parseEnv

使用此过滤器可以解析环境变量。此过滤器使用Craft parseEnv函数。

{% set baseUrl = "$BASE_URL"|parseEnv %}

float

使用此过滤器可以将值转换为浮点数。此过滤器使用PHP floatval函数。

{% set floatValue = "5.5"|float %}

integer

使用此过滤器可以将值转换为整数。此过滤器使用PHP intval函数。

{% set intValue = "15"|integer %}

reindex

使用此过滤器可以重命名对象或数组的键。您还可以重命名包含对象和/或数组的数组。

{% set array1 = [
	{ field1: 'test1', field2: 'test2' },
	{ field1: 'test3', field2: 'test4' } 
] %}

{% set array2 = array1|reindex({
	field1: 'title',
	field2: 'subTitle'
}) %}

{% for item in array2 %}
	<h5>{{ item.title }}</h5>
	<p>{{ item.subTitle }}</p>
{% endfor %}

函数

arrayList()

此函数创建一个ArrayList对象并返回它。

counter(number = 0)

此函数创建一个Counter对象并返回它。

createPdf()

此函数创建一个PdfBuilder对象并返回它。

hashMap()

此函数创建一个HashMap对象并返回它。

hashSet()

此函数创建一个HashSet对象并返回它。

hasPermission(permission)

允许您检查用户是否具有指定的权限。

setProperty(object, property, value)

在指定的对象上设置属性值。

令牌解析器

requireUserGroup

使用此功能以限制对特定用户组的访问。不属于任何用户组的用户将看到403错误。

{% requireUserGroup('klant', 'redactie') %}