pixeldeluxe / siteutils
PixelDeluxe网站的所有功能及工具的集合
Requires
- php: ^7.4||^8.0
- craftcms/cms: ^3.3.16.3
- twig/twig: ~2.15.3
- dev-master
- 1.3.0
- 1.2.31
- 1.2.30
- 1.2.29
- 1.2.28
- 1.2.27
- 1.2.26
- 1.2.25
- 1.2.24
- 1.2.23
- 1.2.22
- 1.2.21
- 1.2.20
- 1.2.19
- 1.2.18
- 1.2.17
- 1.2.16
- 1.2.15
- 1.2.14
- 1.2.13
- 1.2.12
- 1.2.11
- 1.2.10
- 1.2.9.3
- 1.2.9.2
- 1.2.9.1
- 1.2.9
- 1.2.8.5
- 1.2.8.4
- 1.2.8.3
- 1.2.8.2
- 1.2.8.1
- 1.2.8
- 1.2.7.5
- 1.2.7.3
- 1.2.7.2
- 1.2.7.1
- 1.2.7
- 1.2.6
- 1.2.5.3
- 1.2.5.2
- 1.2.5.1
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- dev-craft4
This package is auto-updated.
Last update: 2024-09-05 12:40:12 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') %}