diff --git a/composer.lock b/composer.lock
index e3ba31c32e62bcb27e166a914f166b3886e31ad5..1935985874eb66f011515cb3dfeb132618ab9ab5 100644
--- a/composer.lock
+++ b/composer.lock
@@ -52,20 +52,30 @@
},
{
"name": "ezyang/htmlpurifier",
- "version": "v4.14.0",
+ "version": "v4.16.0",
"source": {
"type": "git",
"url": "https://github.com/ezyang/htmlpurifier.git",
- "reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75"
+ "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/12ab42bd6e742c70c0a52f7b82477fcd44e64b75",
- "reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75",
+ "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/523407fb06eb9e5f3d59889b3978d5bfe94299c8",
+ "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8",
"shasum": ""
},
"require": {
- "php": ">=5.2"
+ "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0"
+ },
+ "require-dev": {
+ "cerdic/css-tidy": "^1.7 || ^2.0",
+ "simpletest/simpletest": "dev-master"
+ },
+ "suggest": {
+ "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.",
+ "ext-bcmath": "Used for unit conversion and imagecrash protection",
+ "ext-iconv": "Converts text to and from non-UTF-8 encodings",
+ "ext-tidy": "Used for pretty-printing HTML"
},
"type": "library",
"autoload": {
@@ -97,22 +107,22 @@
],
"support": {
"issues": "https://github.com/ezyang/htmlpurifier/issues",
- "source": "https://github.com/ezyang/htmlpurifier/tree/v4.14.0"
+ "source": "https://github.com/ezyang/htmlpurifier/tree/v4.16.0"
},
- "time": "2021-12-25T01:21:49+00:00"
+ "time": "2022-09-18T07:06:19+00:00"
},
{
"name": "league/flysystem",
- "version": "1.1.9",
+ "version": "1.1.10",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "094defdb4a7001845300334e7c1ee2335925ef99"
+ "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/094defdb4a7001845300334e7c1ee2335925ef99",
- "reference": "094defdb4a7001845300334e7c1ee2335925ef99",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3239285c825c152bcc315fe0e87d6b55f5972ed1",
+ "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1",
"shasum": ""
},
"require": {
@@ -185,7 +195,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/1.1.9"
+ "source": "https://github.com/thephpleague/flysystem/tree/1.1.10"
},
"funding": [
{
@@ -193,7 +203,7 @@
"type": "other"
}
],
- "time": "2021-12-09T09:40:50+00:00"
+ "time": "2022-10-04T09:16:37+00:00"
},
{
"name": "league/flysystem-cached-adapter",
@@ -405,16 +415,16 @@
},
{
"name": "phpmailer/phpmailer",
- "version": "v6.6.4",
+ "version": "v6.6.5",
"source": {
"type": "git",
"url": "https://github.com/PHPMailer/PHPMailer.git",
- "reference": "a94fdebaea6bd17f51be0c2373ab80d3d681269b"
+ "reference": "8b6386d7417526d1ea4da9edb70b8352f7543627"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/a94fdebaea6bd17f51be0c2373ab80d3d681269b",
- "reference": "a94fdebaea6bd17f51be0c2373ab80d3d681269b",
+ "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/8b6386d7417526d1ea4da9edb70b8352f7543627",
+ "reference": "8b6386d7417526d1ea4da9edb70b8352f7543627",
"shasum": ""
},
"require": {
@@ -438,8 +448,8 @@
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
"psr/log": "For optional PSR-3 debug logging",
- "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
- "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
+ "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)",
+ "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication"
},
"type": "library",
"autoload": {
@@ -471,7 +481,7 @@
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
"support": {
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
- "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.6.4"
+ "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.6.5"
},
"funding": [
{
@@ -479,7 +489,7 @@
"type": "github"
}
],
- "time": "2022-08-22T09:22:00+00:00"
+ "time": "2022-10-07T12:23:10+00:00"
},
{
"name": "psr/cache",
@@ -1094,16 +1104,16 @@
},
{
"name": "topthink/framework",
- "version": "v6.0.13",
+ "version": "v6.0.14",
"source": {
"type": "git",
"url": "https://github.com/top-think/framework.git",
- "reference": "126d5b2cbacb73d6e2a85cbc7a2c6ee59d0b3fa6"
+ "reference": "e621c239492d4f7e276e166b16aba3fb933d501e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/top-think/framework/zipball/126d5b2cbacb73d6e2a85cbc7a2c6ee59d0b3fa6",
- "reference": "126d5b2cbacb73d6e2a85cbc7a2c6ee59d0b3fa6",
+ "url": "https://api.github.com/repos/top-think/framework/zipball/e621c239492d4f7e276e166b16aba3fb933d501e",
+ "reference": "e621c239492d4f7e276e166b16aba3fb933d501e",
"shasum": ""
},
"require": {
@@ -1155,9 +1165,9 @@
],
"support": {
"issues": "https://github.com/top-think/framework/issues",
- "source": "https://github.com/top-think/framework/tree/v6.0.13"
+ "source": "https://github.com/top-think/framework/tree/v6.0.14"
},
- "time": "2022-07-15T02:52:08+00:00"
+ "time": "2022-10-25T14:45:56+00:00"
},
{
"name": "topthink/think-helper",
@@ -1207,16 +1217,16 @@
},
{
"name": "topthink/think-orm",
- "version": "v2.0.54",
+ "version": "v2.0.55",
"source": {
"type": "git",
"url": "https://github.com/top-think/think-orm.git",
- "reference": "97b061b47616301ff29fbd4c35ed9184e1162e4e"
+ "reference": "e1974a4c3b1b4c5b808fcc0863fc254e711dee13"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/top-think/think-orm/zipball/97b061b47616301ff29fbd4c35ed9184e1162e4e",
- "reference": "97b061b47616301ff29fbd4c35ed9184e1162e4e",
+ "url": "https://api.github.com/repos/top-think/think-orm/zipball/e1974a4c3b1b4c5b808fcc0863fc254e711dee13",
+ "reference": "e1974a4c3b1b4c5b808fcc0863fc254e711dee13",
"shasum": ""
},
"require": {
@@ -1256,9 +1266,9 @@
],
"support": {
"issues": "https://github.com/top-think/think-orm/issues",
- "source": "https://github.com/top-think/think-orm/tree/v2.0.54"
+ "source": "https://github.com/top-think/think-orm/tree/v2.0.55"
},
- "time": "2022-07-05T05:25:51+00:00"
+ "time": "2022-09-27T14:18:43+00:00"
},
{
"name": "xia/migration",
@@ -1312,21 +1322,21 @@
"packages-dev": [
{
"name": "topthink/think-trace",
- "version": "v1.4",
+ "version": "v1.5",
"source": {
"type": "git",
"url": "https://github.com/top-think/think-trace.git",
- "reference": "9a9fa8f767b6c66c5a133ad21ca1bc96ad329444"
+ "reference": "55027fd79abb744f32a3be8d9e1ccf873a3ca9b7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/top-think/think-trace/zipball/9a9fa8f767b6c66c5a133ad21ca1bc96ad329444",
- "reference": "9a9fa8f767b6c66c5a133ad21ca1bc96ad329444",
+ "url": "https://api.github.com/repos/top-think/think-trace/zipball/55027fd79abb744f32a3be8d9e1ccf873a3ca9b7",
+ "reference": "55027fd79abb744f32a3be8d9e1ccf873a3ca9b7",
"shasum": ""
},
"require": {
"php": ">=7.1.0",
- "topthink/framework": "^6.0.0"
+ "topthink/framework": "^6.0"
},
"type": "library",
"extra": {
@@ -1357,9 +1367,9 @@
"description": "thinkphp debug trace",
"support": {
"issues": "https://github.com/top-think/think-trace/issues",
- "source": "https://github.com/top-think/think-trace/tree/v1.4"
+ "source": "https://github.com/top-think/think-trace/tree/v1.5"
},
- "time": "2020-06-29T05:27:28+00:00"
+ "time": "2022-10-26T07:56:45+00:00"
}
],
"aliases": [],
diff --git a/public/static/js/admin.js b/public/static/js/admin.js
index 4904fd582d51ef4219853f14ef0e015afdfaf10a..0d13ae3de98e2babe723d33d0098f735d4bdc21c 100644
--- a/public/static/js/admin.js
+++ b/public/static/js/admin.js
@@ -873,7 +873,6 @@ function openIframeDialog(url, title, options) {
/**
* 打开地图对话框
- *
* @param url
* @param title
* @param options
@@ -915,61 +914,31 @@ function openMapDialog(url, title, options, callback) {
* @param multi 是否可以多选
* @param filetype 文件类型,image,video,audio,file
* @param app 应用名,CMF的应用名
+ * @param openIn 打开窗口
*/
-function openUploadDialog(dialog_title, callback, extra_params, multi, filetype, app) {
- Wind.css('artDialog');
+function openUploadDialog(dialog_title, callback, extra_params, multi, filetype, app, openIn) {
multi = multi ? 1 : 0;
filetype = filetype ? filetype : 'image';
app = app ? app : GV.APP;
var params = '&multi=' + multi + '&filetype=' + filetype + '&app=' + app;
- openIframeLayer(GV.ROOT + 'user/Asset/webuploader?' + params, dialog_title, {
- btn: ['确定'],
- area: ['600px', '450px'],
- yes: function (index, layero) {
+ openIn = openIn ? openIn : window;
+ openIn.openIframeLayer(GV.ROOT + 'user/Asset/webuploader?' + params, dialog_title, {
+ btn: ['确定'], area: ['600px', '450px'], yes: function (index, layero) {
if (typeof callback == 'function') {
- var body = layer.getChildFrame('body', index);
+ // var body = openIn.layer.getChildFrame('body', index);
//得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
- var iframeWin = window[layero.find('iframe')[0]['name']];
+ var iframeWin = openIn[layero.find('iframe')[0]['name']];
var files = iframeWin.get_selected_files();
console.log(files);
if (files && files.length > 0) {
callback.apply(this, [this, files, extra_params]);
- layer.close(index);
+ openIn.layer.close(index);
} else {
// return false;
}
-
-
}
}
- })
- return;
- Wind.use("artDialog", "iframeTools", function () {
- art.dialog.open(GV.ROOT + 'user/Asset/webuploader?' + params, {
- title: dialog_title,
- id: new Date().getTime(),
- width: '600px',
- height: '350px',
- lock: true,
- fixed: true,
- background: "#CCCCCC",
- opacity: 0,
- ok: function () {
- if (typeof callback == 'function') {
- var iframewindow = this.iframe.contentWindow;
- var files = iframewindow.get_selected_files();
- console.log(files);
- if (files && files.length > 0) {
- callback.apply(this, [this, files, extra_params]);
- } else {
- return false;
- }
-
- }
- },
- cancel: true
- });
});
}
@@ -980,34 +949,56 @@ function openUploadDialog(dialog_title, callback, extra_params, multi, filetype,
* @param filetype 文件类型,image,video,audio,file
* @param extra_params 额外参数,object
* @param app 应用名,CMF的应用名
+ * @param openIn 打开窗口
*/
-function uploadOne(dialog_title, input_selector, filetype, extra_params, app) {
+function uploadOne(dialog_title, input_selector, filetype, extra_params, app, openIn) {
filetype = filetype ? filetype : 'file';
openUploadDialog(dialog_title, function (dialog, files) {
$(input_selector).val(files[0].filepath);
$(input_selector + '-preview').attr('href', files[0].preview_url);
-
$(input_selector + '-name').val(files[0].name);
$(input_selector + '-name-text').text(files[0].name);
- }, extra_params, 0, filetype, app);
+ }, extra_params, 0, filetype, app, openIn);
}
/**
- * 单个图片上传
+ * 单个文件上传(在父级窗口打开)
* @param dialog_title 上传对话框标题
* @param input_selector 图片容器
+ * @param filetype 文件类型,image,video,audio,file
* @param extra_params 额外参数,object
* @param app 应用名,CMF的应用名
*/
-function uploadOneImage(dialog_title, input_selector, extra_params, app) {
+function parentUploadOne(dialog_title, input_selector, filetype, extra_params, app) {
+ uploadOne(dialog_title, input_selector, filetype, extra_params, app, parent);
+}
+
+/**
+ * 单个图片上传
+ * @param dialog_title 上传对话框标题
+ * @param input_selector 图片容器
+ * @param extra_params 额外参数,object
+ * @param app 应用名,CMF的应用名
+ * @param openIn 打开窗口
+ */
+function uploadOneImage(dialog_title, input_selector, extra_params, app, openIn) {
openUploadDialog(dialog_title, function (dialog, files) {
$(input_selector).val(files[0].filepath);
$(input_selector + '-preview').attr('src', files[0].preview_url);
-
$(input_selector + '-name').val(files[0].name);
$(input_selector + '-name-text').text(files[0].name);
+ }, extra_params, 0, 'image', app, openIn);
+}
- }, extra_params, 0, 'image', app);
+/**
+ * 单个图片上传(在父级窗口打开)
+ * @param dialog_title 上传对话框标题
+ * @param input_selector 图片容器
+ * @param extra_params 额外参数,object
+ * @param app 应用名,CMF的应用名
+ */
+function parentUploadOneImage(dialog_title, input_selector, extra_params, app) {
+ uploadOneImage(dialog_title, input_selector, extra_params, app, parent);
}
/**
@@ -1016,9 +1007,10 @@ function uploadOneImage(dialog_title, input_selector, extra_params, app) {
* @param container_selector 图片容器
* @param item_tpl_wrapper_id 单个图片html模板容器id
* @param extra_params 额外参数,object
- * @param app 应用名,CMF 的应用名
+ * @param app 应用名,CMF的应用名
+ * @param openIn 打开窗口
*/
-function uploadMultiImage(dialog_title, container_selector, item_tpl_wrapper_id, extra_params, app) {
+function uploadMultiImage(dialog_title, container_selector, item_tpl_wrapper_id, extra_params, app, openIn) {
openUploadDialog(dialog_title, function (dialog, files) {
var tpl = $('#' + item_tpl_wrapper_id).html();
var html = '';
@@ -1033,7 +1025,19 @@ function uploadMultiImage(dialog_title, container_selector, item_tpl_wrapper_id,
});
$(container_selector).append(html);
- }, extra_params, 1, 'image', app);
+ }, extra_params, 1, 'image', app, openIn);
+}
+
+/**
+ * 多图上传(在父级窗口打开)
+ * @param dialog_title 上传对话框标题
+ * @param container_selector 图片容器
+ * @param item_tpl_wrapper_id 单个图片html模板容器id
+ * @param extra_params 额外参数,object
+ * @param app 应用名,CMF的应用名
+ */
+function parentUploadMultiImage(dialog_title, container_selector, item_tpl_wrapper_id, extra_params, app) {
+ uploadMultiImage(dialog_title, container_selector, item_tpl_wrapper_id, extra_params, app, parent)
}
/**
@@ -1044,8 +1048,9 @@ function uploadMultiImage(dialog_title, container_selector, item_tpl_wrapper_id,
* @param filetype 文件类型,image,video,audio,file
* @param extra_params 额外参数,object
* @param app 应用名,CMF 的应用名
+ * @param openIn 打开窗口
*/
-function uploadMultiFile(dialog_title, container_selector, item_tpl_wrapper_id, filetype, extra_params, app) {
+function uploadMultiFile(dialog_title, container_selector, item_tpl_wrapper_id, filetype, extra_params, app, openIn) {
filetype = filetype ? filetype : 'file';
openUploadDialog(dialog_title, function (dialog, files) {
var tpl = $('#' + item_tpl_wrapper_id).html();
@@ -1061,7 +1066,20 @@ function uploadMultiFile(dialog_title, container_selector, item_tpl_wrapper_id,
});
$(container_selector).append(html);
- }, extra_params, 1, filetype, app);
+ }, extra_params, 1, filetype, app, openIn);
+}
+
+/**
+ * 多文件上传
+ * @param dialog_title 上传对话框标题
+ * @param container_selector 图片容器
+ * @param item_tpl_wrapper_id 单个图片html模板容器id
+ * @param filetype 文件类型,image,video,audio,file
+ * @param extra_params 额外参数,object
+ * @param app 应用名,CMF 的应用名
+ */
+function parentUploadMultiFile(dialog_title, container_selector, item_tpl_wrapper_id, filetype, extra_params, app, openIn) {
+ uploadMultiFile(dialog_title, container_selector, item_tpl_wrapper_id, filetype, extra_params, app, parent)
}
/**
diff --git a/public/themes/default/demo/index.html b/public/themes/default/demo/index.html
index 866685d59e1781ba84916434c61680b79f303b2e..fc3cfccad2f5422411aecabd0468dbef2f89db2e 100644
--- a/public/themes/default/demo/index.html
+++ b/public/themes/default/demo/index.html
@@ -6,8 +6,10 @@
ThinkCMF {$site_info.site_name|default=''}
-
-
+
+
+
+
@@ -100,13 +102,13 @@
-
-
+
diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php
index 2ec2895e0a6e98df3b822c557e734df6aac673d9..27e5bc9f8907500153e691a8d946d47e974e16af 100644
--- a/vendor/composer/autoload_psr4.php
+++ b/vendor/composer/autoload_psr4.php
@@ -11,7 +11,7 @@ return array(
'think\\trace\\' => array($vendorDir . '/topthink/think-trace/src'),
'think\\migration\\' => array($vendorDir . '/xia/migration/src'),
'think\\captcha\\' => array($vendorDir . '/thinkcmf/cmf-captcha/src'),
- 'think\\' => array($vendorDir . '/thinkcmf/cmf/think', $vendorDir . '/topthink/framework/src/think', $vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-orm/src'),
+ 'think\\' => array($vendorDir . '/thinkcmf/cmf/think', $vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-orm/src', $vendorDir . '/topthink/framework/src/think'),
'themes\\' => array($baseDir . '/public/themes'),
'plugins\\' => array($baseDir . '/public/plugins'),
'mindplay\\annotations\\' => array($vendorDir . '/mindplay/annotations/src/annotations'),
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index 016fc2359d7cf4069ea571550f391f306111dbfd..e009cea4118e378f9d5ad826334896b99e811a58 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -92,9 +92,9 @@ class ComposerStaticInit409e436a19c882513f3c7d0ffdfd059f
'think\\' =>
array (
0 => __DIR__ . '/..' . '/thinkcmf/cmf/think',
- 1 => __DIR__ . '/..' . '/topthink/framework/src/think',
- 2 => __DIR__ . '/..' . '/topthink/think-helper/src',
- 3 => __DIR__ . '/..' . '/topthink/think-orm/src',
+ 1 => __DIR__ . '/..' . '/topthink/think-helper/src',
+ 2 => __DIR__ . '/..' . '/topthink/think-orm/src',
+ 3 => __DIR__ . '/..' . '/topthink/framework/src/think',
),
'themes\\' =>
array (
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 7e4f449711becc349977e841124188b8cc402603..f7f1dad61b7b51587d3b4949188e6dcd3d81a50a 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -49,32 +49,42 @@
},
{
"name": "ezyang/htmlpurifier",
- "version": "v4.14.0",
- "version_normalized": "4.14.0.0",
+ "version": "v4.16.0",
+ "version_normalized": "4.16.0.0",
"source": {
"type": "git",
"url": "https://github.com/ezyang/htmlpurifier.git",
- "reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75"
+ "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/12ab42bd6e742c70c0a52f7b82477fcd44e64b75",
- "reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75",
+ "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/523407fb06eb9e5f3d59889b3978d5bfe94299c8",
+ "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8",
"shasum": ""
},
"require": {
- "php": ">=5.2"
+ "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0"
},
- "time": "2021-12-25T01:21:49+00:00",
+ "require-dev": {
+ "cerdic/css-tidy": "^1.7 || ^2.0",
+ "simpletest/simpletest": "dev-master"
+ },
+ "suggest": {
+ "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.",
+ "ext-bcmath": "Used for unit conversion and imagecrash protection",
+ "ext-iconv": "Converts text to and from non-UTF-8 encodings",
+ "ext-tidy": "Used for pretty-printing HTML"
+ },
+ "time": "2022-09-18T07:06:19+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
- "psr-0": {
- "HTMLPurifier": "library/"
- },
"files": [
"library/HTMLPurifier.composer.php"
],
+ "psr-0": {
+ "HTMLPurifier": "library/"
+ },
"exclude-from-classmap": [
"/library/HTMLPurifier/Language/"
]
@@ -97,23 +107,23 @@
],
"support": {
"issues": "https://github.com/ezyang/htmlpurifier/issues",
- "source": "https://github.com/ezyang/htmlpurifier/tree/v4.14.0"
+ "source": "https://github.com/ezyang/htmlpurifier/tree/v4.16.0"
},
"install-path": "../ezyang/htmlpurifier"
},
{
"name": "league/flysystem",
- "version": "1.1.9",
- "version_normalized": "1.1.9.0",
+ "version": "1.1.10",
+ "version_normalized": "1.1.10.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "094defdb4a7001845300334e7c1ee2335925ef99"
+ "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/094defdb4a7001845300334e7c1ee2335925ef99",
- "reference": "094defdb4a7001845300334e7c1ee2335925ef99",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3239285c825c152bcc315fe0e87d6b55f5972ed1",
+ "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1",
"shasum": ""
},
"require": {
@@ -143,7 +153,7 @@
"spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
"srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
},
- "time": "2021-12-09T09:40:50+00:00",
+ "time": "2022-10-04T09:16:37+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -188,7 +198,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/1.1.9"
+ "source": "https://github.com/thephpleague/flysystem/tree/1.1.10"
},
"funding": [
{
@@ -420,17 +430,17 @@
},
{
"name": "phpmailer/phpmailer",
- "version": "v6.6.4",
- "version_normalized": "6.6.4.0",
+ "version": "v6.6.5",
+ "version_normalized": "6.6.5.0",
"source": {
"type": "git",
"url": "https://github.com/PHPMailer/PHPMailer.git",
- "reference": "a94fdebaea6bd17f51be0c2373ab80d3d681269b"
+ "reference": "8b6386d7417526d1ea4da9edb70b8352f7543627"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/a94fdebaea6bd17f51be0c2373ab80d3d681269b",
- "reference": "a94fdebaea6bd17f51be0c2373ab80d3d681269b",
+ "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/8b6386d7417526d1ea4da9edb70b8352f7543627",
+ "reference": "8b6386d7417526d1ea4da9edb70b8352f7543627",
"shasum": ""
},
"require": {
@@ -454,10 +464,10 @@
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
"psr/log": "For optional PSR-3 debug logging",
- "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
- "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
+ "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)",
+ "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication"
},
- "time": "2022-08-22T09:22:00+00:00",
+ "time": "2022-10-07T12:23:10+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -489,7 +499,7 @@
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
"support": {
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
- "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.6.4"
+ "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.6.5"
},
"funding": [
{
@@ -1151,17 +1161,17 @@
},
{
"name": "topthink/framework",
- "version": "v6.0.13",
- "version_normalized": "6.0.13.0",
+ "version": "v6.0.14",
+ "version_normalized": "6.0.14.0",
"source": {
"type": "git",
"url": "https://github.com/top-think/framework.git",
- "reference": "126d5b2cbacb73d6e2a85cbc7a2c6ee59d0b3fa6"
+ "reference": "e621c239492d4f7e276e166b16aba3fb933d501e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/top-think/framework/zipball/126d5b2cbacb73d6e2a85cbc7a2c6ee59d0b3fa6",
- "reference": "126d5b2cbacb73d6e2a85cbc7a2c6ee59d0b3fa6",
+ "url": "https://api.github.com/repos/top-think/framework/zipball/e621c239492d4f7e276e166b16aba3fb933d501e",
+ "reference": "e621c239492d4f7e276e166b16aba3fb933d501e",
"shasum": ""
},
"require": {
@@ -1183,7 +1193,7 @@
"mockery/mockery": "^1.2",
"phpunit/phpunit": "^7.0"
},
- "time": "2022-07-15T02:52:08+00:00",
+ "time": "2022-10-25T14:45:56+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -1215,7 +1225,7 @@
],
"support": {
"issues": "https://github.com/top-think/framework/issues",
- "source": "https://github.com/top-think/framework/tree/v6.0.13"
+ "source": "https://github.com/top-think/framework/tree/v6.0.14"
},
"install-path": "../topthink/framework"
},
@@ -1270,17 +1280,17 @@
},
{
"name": "topthink/think-orm",
- "version": "v2.0.54",
- "version_normalized": "2.0.54.0",
+ "version": "v2.0.55",
+ "version_normalized": "2.0.55.0",
"source": {
"type": "git",
"url": "https://github.com/top-think/think-orm.git",
- "reference": "97b061b47616301ff29fbd4c35ed9184e1162e4e"
+ "reference": "e1974a4c3b1b4c5b808fcc0863fc254e711dee13"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/top-think/think-orm/zipball/97b061b47616301ff29fbd4c35ed9184e1162e4e",
- "reference": "97b061b47616301ff29fbd4c35ed9184e1162e4e",
+ "url": "https://api.github.com/repos/top-think/think-orm/zipball/e1974a4c3b1b4c5b808fcc0863fc254e711dee13",
+ "reference": "e1974a4c3b1b4c5b808fcc0863fc254e711dee13",
"shasum": ""
},
"require": {
@@ -1294,7 +1304,7 @@
"require-dev": {
"phpunit/phpunit": "^7|^8|^9.5"
},
- "time": "2022-07-05T05:25:51+00:00",
+ "time": "2022-09-27T14:18:43+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -1322,30 +1332,30 @@
],
"support": {
"issues": "https://github.com/top-think/think-orm/issues",
- "source": "https://github.com/top-think/think-orm/tree/v2.0.54"
+ "source": "https://github.com/top-think/think-orm/tree/v2.0.55"
},
"install-path": "../topthink/think-orm"
},
{
"name": "topthink/think-trace",
- "version": "v1.4",
- "version_normalized": "1.4.0.0",
+ "version": "v1.5",
+ "version_normalized": "1.5.0.0",
"source": {
"type": "git",
"url": "https://github.com/top-think/think-trace.git",
- "reference": "9a9fa8f767b6c66c5a133ad21ca1bc96ad329444"
+ "reference": "55027fd79abb744f32a3be8d9e1ccf873a3ca9b7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/top-think/think-trace/zipball/9a9fa8f767b6c66c5a133ad21ca1bc96ad329444",
- "reference": "9a9fa8f767b6c66c5a133ad21ca1bc96ad329444",
+ "url": "https://api.github.com/repos/top-think/think-trace/zipball/55027fd79abb744f32a3be8d9e1ccf873a3ca9b7",
+ "reference": "55027fd79abb744f32a3be8d9e1ccf873a3ca9b7",
"shasum": ""
},
"require": {
"php": ">=7.1.0",
- "topthink/framework": "^6.0.0"
+ "topthink/framework": "^6.0"
},
- "time": "2020-06-29T05:27:28+00:00",
+ "time": "2022-10-26T07:56:45+00:00",
"type": "library",
"extra": {
"think": {
@@ -1376,7 +1386,7 @@
"description": "thinkphp debug trace",
"support": {
"issues": "https://github.com/top-think/think-trace/issues",
- "source": "https://github.com/top-think/think-trace/tree/v1.4"
+ "source": "https://github.com/top-think/think-trace/tree/v1.5"
},
"install-path": "../topthink/think-trace"
},
diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php
index 92bab3216a16a0d3d9fab588494c63e056f5bc2d..17711ac847d2d313937a815b8e5dc347c60db365 100644
--- a/vendor/composer/installed.php
+++ b/vendor/composer/installed.php
@@ -20,21 +20,21 @@
'dev_requirement' => false,
),
'ezyang/htmlpurifier' => array(
- 'pretty_version' => 'v4.14.0',
- 'version' => '4.14.0.0',
+ 'pretty_version' => 'v4.16.0',
+ 'version' => '4.16.0.0',
'type' => 'library',
'install_path' => __DIR__ . '/../ezyang/htmlpurifier',
'aliases' => array(),
- 'reference' => '12ab42bd6e742c70c0a52f7b82477fcd44e64b75',
+ 'reference' => '523407fb06eb9e5f3d59889b3978d5bfe94299c8',
'dev_requirement' => false,
),
'league/flysystem' => array(
- 'pretty_version' => '1.1.9',
- 'version' => '1.1.9.0',
+ 'pretty_version' => '1.1.10',
+ 'version' => '1.1.10.0',
'type' => 'library',
'install_path' => __DIR__ . '/../league/flysystem',
'aliases' => array(),
- 'reference' => '094defdb4a7001845300334e7c1ee2335925ef99',
+ 'reference' => '3239285c825c152bcc315fe0e87d6b55f5972ed1',
'dev_requirement' => false,
),
'league/flysystem-cached-adapter' => array(
@@ -80,12 +80,12 @@
),
),
'phpmailer/phpmailer' => array(
- 'pretty_version' => 'v6.6.4',
- 'version' => '6.6.4.0',
+ 'pretty_version' => 'v6.6.5',
+ 'version' => '6.6.5.0',
'type' => 'library',
'install_path' => __DIR__ . '/../phpmailer/phpmailer',
'aliases' => array(),
- 'reference' => 'a94fdebaea6bd17f51be0c2373ab80d3d681269b',
+ 'reference' => '8b6386d7417526d1ea4da9edb70b8352f7543627',
'dev_requirement' => false,
),
'psr/cache' => array(
@@ -215,12 +215,12 @@
'dev_requirement' => false,
),
'topthink/framework' => array(
- 'pretty_version' => 'v6.0.13',
- 'version' => '6.0.13.0',
+ 'pretty_version' => 'v6.0.14',
+ 'version' => '6.0.14.0',
'type' => 'library',
'install_path' => __DIR__ . '/../topthink/framework',
'aliases' => array(),
- 'reference' => '126d5b2cbacb73d6e2a85cbc7a2c6ee59d0b3fa6',
+ 'reference' => 'e621c239492d4f7e276e166b16aba3fb933d501e',
'dev_requirement' => false,
),
'topthink/think-helper' => array(
@@ -233,21 +233,21 @@
'dev_requirement' => false,
),
'topthink/think-orm' => array(
- 'pretty_version' => 'v2.0.54',
- 'version' => '2.0.54.0',
+ 'pretty_version' => 'v2.0.55',
+ 'version' => '2.0.55.0',
'type' => 'library',
'install_path' => __DIR__ . '/../topthink/think-orm',
'aliases' => array(),
- 'reference' => '97b061b47616301ff29fbd4c35ed9184e1162e4e',
+ 'reference' => 'e1974a4c3b1b4c5b808fcc0863fc254e711dee13',
'dev_requirement' => false,
),
'topthink/think-trace' => array(
- 'pretty_version' => 'v1.4',
- 'version' => '1.4.0.0',
+ 'pretty_version' => 'v1.5',
+ 'version' => '1.5.0.0',
'type' => 'library',
'install_path' => __DIR__ . '/../topthink/think-trace',
'aliases' => array(),
- 'reference' => '9a9fa8f767b6c66c5a133ad21ca1bc96ad329444',
+ 'reference' => '55027fd79abb744f32a3be8d9e1ccf873a3ca9b7',
'dev_requirement' => true,
),
'xia/migration' => array(
diff --git a/vendor/ezyang/htmlpurifier/CHANGELOG.md b/vendor/ezyang/htmlpurifier/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..55cb9029cd98386d3fcb5f1b3ec3c2541081ee45
--- /dev/null
+++ b/vendor/ezyang/htmlpurifier/CHANGELOG.md
@@ -0,0 +1,6 @@
+# [4.16.0](https://github.com/ezyang/htmlpurifier/compare/v4.15.0...v4.16.0) (2022-09-18)
+
+
+### Features
+
+* add semantic release ([#307](https://github.com/ezyang/htmlpurifier/issues/307)) ([db31243](https://github.com/ezyang/htmlpurifier/commit/db312435cb9d8d73395f75f9642a43ba6de5e903)), closes [#322](https://github.com/ezyang/htmlpurifier/issues/322) [#323](https://github.com/ezyang/htmlpurifier/issues/323) [#326](https://github.com/ezyang/htmlpurifier/issues/326) [#327](https://github.com/ezyang/htmlpurifier/issues/327) [#328](https://github.com/ezyang/htmlpurifier/issues/328) [#329](https://github.com/ezyang/htmlpurifier/issues/329) [#330](https://github.com/ezyang/htmlpurifier/issues/330) [#331](https://github.com/ezyang/htmlpurifier/issues/331) [#332](https://github.com/ezyang/htmlpurifier/issues/332) [#333](https://github.com/ezyang/htmlpurifier/issues/333) [#337](https://github.com/ezyang/htmlpurifier/issues/337) [#335](https://github.com/ezyang/htmlpurifier/issues/335) [ezyang/htmlpurifier#334](https://github.com/ezyang/htmlpurifier/issues/334) [#336](https://github.com/ezyang/htmlpurifier/issues/336) [#338](https://github.com/ezyang/htmlpurifier/issues/338)
diff --git a/vendor/ezyang/htmlpurifier/VERSION b/vendor/ezyang/htmlpurifier/VERSION
index 09ce0ce71bd318415b897c1e4747e0960e2029ad..f029ee57423544f598afc76bfb69612fbbfe473d 100644
--- a/vendor/ezyang/htmlpurifier/VERSION
+++ b/vendor/ezyang/htmlpurifier/VERSION
@@ -1 +1 @@
-4.14.0
\ No newline at end of file
+4.15.0
\ No newline at end of file
diff --git a/vendor/ezyang/htmlpurifier/composer.json b/vendor/ezyang/htmlpurifier/composer.json
index 5f62d889dce53fe73e9e48bae45a15059f3a374e..d7558295096f974e66d00a71f1dcb6251bbf2b37 100644
--- a/vendor/ezyang/htmlpurifier/composer.json
+++ b/vendor/ezyang/htmlpurifier/composer.json
@@ -13,7 +13,11 @@
}
],
"require": {
- "php": ">=5.2"
+ "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0"
+ },
+ "require-dev": {
+ "cerdic/css-tidy": "^1.7 || ^2.0",
+ "simpletest/simpletest": "dev-master"
},
"autoload": {
"psr-0": { "HTMLPurifier": "library/" },
@@ -21,5 +25,20 @@
"exclude-from-classmap": [
"/library/HTMLPurifier/Language/"
]
- }
+ },
+ "suggest": {
+ "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.",
+ "ext-iconv": "Converts text to and from non-UTF-8 encodings",
+ "ext-bcmath": "Used for unit conversion and imagecrash protection",
+ "ext-tidy": "Used for pretty-printing HTML"
+ },
+ "config": {
+ "sort-packages": true
+ },
+ "repositories": [
+ {
+ "type": "vcs",
+ "url": "https://github.com/ezyang/simpletest.git"
+ }
+ ]
}
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier.includes.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.includes.php
index ee81cac68b957cbf635f9581b3bbee8383f47535..47ee0133d4aeb559e2c39be064cbbf517c139899 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier.includes.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.includes.php
@@ -7,7 +7,7 @@
* primary concern and you are using an opcode cache. PLEASE DO NOT EDIT THIS
* FILE, changes will be overwritten the next time the script is run.
*
- * @version 4.14.0
+ * @version 4.15.0
*
* @warning
* You must *not* include any other HTML Purifier files before this file,
@@ -107,6 +107,7 @@ require 'HTMLPurifier/AttrDef/HTML/Bool.php';
require 'HTMLPurifier/AttrDef/HTML/Nmtokens.php';
require 'HTMLPurifier/AttrDef/HTML/Class.php';
require 'HTMLPurifier/AttrDef/HTML/Color.php';
+require 'HTMLPurifier/AttrDef/HTML/ContentEditable.php';
require 'HTMLPurifier/AttrDef/HTML/FrameTarget.php';
require 'HTMLPurifier/AttrDef/HTML/ID.php';
require 'HTMLPurifier/AttrDef/HTML/Pixels.php';
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.php
index 2177fc851726e03a72fcf76fcb1a3a11285a94eb..26f061276f7cfa5141f581ffde59e57521961533 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.php
@@ -19,7 +19,7 @@
*/
/*
- HTML Purifier 4.14.0 - Standards Compliant HTML Filtering
+ HTML Purifier 4.15.0 - Standards Compliant HTML Filtering
Copyright (C) 2006-2008 Edward Z. Yang
This library is free software; you can redistribute it and/or
@@ -58,12 +58,12 @@ class HTMLPurifier
* Version of HTML Purifier.
* @type string
*/
- public $version = '4.14.0';
+ public $version = '4.15.0';
/**
* Constant with version of HTML Purifier.
*/
- const VERSION = '4.14.0';
+ const VERSION = '4.15.0';
/**
* Global configuration object.
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier.safe-includes.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.safe-includes.php
index a3261f8a327a175ec04a5d2c3e931831575c984b..94543f593de8cf22c1bcbd1028a850fc8931dbde 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier.safe-includes.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.safe-includes.php
@@ -101,6 +101,7 @@ require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Bool.php';
require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Nmtokens.php';
require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Class.php';
require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Color.php';
+require_once $__dir . '/HTMLPurifier/AttrDef/HTML/ContentEditable.php';
require_once $__dir . '/HTMLPurifier/AttrDef/HTML/FrameTarget.php';
require_once $__dir . '/HTMLPurifier/AttrDef/HTML/ID.php';
require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Pixels.php';
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php
index 36079b786ffe381d92384200622b02f546b0cc70..5a1fdbbfcc857e19e04c9c6f37cdf459e58bcde1 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php
@@ -8,6 +8,11 @@
class HTMLPurifier_AttrTransform_NameSync extends HTMLPurifier_AttrTransform
{
+ /**
+ * @type HTMLPurifier_AttrDef_HTML_ID
+ */
+ public $idDef;
+
public function __construct()
{
$this->idDef = new HTMLPurifier_AttrDef_HTML_ID();
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php
index 1143b4b49301e6e58669a4aacc27908f4ad1f311..1033106b387aa8c5ccaf7e8cd14b38930a10b55b 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php
@@ -24,6 +24,11 @@ class HTMLPurifier_AttrTransform_SafeParam extends HTMLPurifier_AttrTransform
*/
private $uri;
+ /**
+ * @type HTMLPurifier_AttrDef_Enum
+ */
+ public $wmode;
+
public function __construct()
{
$this->uri = new HTMLPurifier_AttrDef_URI(true); // embedded
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTypes.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTypes.php
index 3b70520b6ad99cdc5069ae863f9463b277f9112a..e4429e86d874bfc41179ce826fa6628932942d92 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTypes.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTypes.php
@@ -41,6 +41,7 @@ class HTMLPurifier_AttrTypes
$this->info['IAlign'] = self::makeEnum('top,middle,bottom,left,right');
$this->info['LAlign'] = self::makeEnum('top,bottom,left,right');
$this->info['FrameTarget'] = new HTMLPurifier_AttrDef_HTML_FrameTarget();
+ $this->info['ContentEditable'] = new HTMLPurifier_AttrDef_HTML_ContentEditable();
// unimplemented aliases
$this->info['ContentType'] = new HTMLPurifier_AttrDef_Text();
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/List.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/List.php
index 4fc70e0efa763887596e3ef9af1bd998bc6104a4..3d584e727124b9da4ff13f95c7f25d556204cec7 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/List.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/List.php
@@ -22,6 +22,8 @@ class HTMLPurifier_ChildDef_List extends HTMLPurifier_ChildDef
// XXX: This whole business with 'wrap' is all a bit unsatisfactory
public $elements = array('li' => true, 'ul' => true, 'ol' => true);
+ public $whitespace;
+
/**
* @param array $children
* @param HTMLPurifier_Config $config
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php
index 16a6b322b5e33c07f844b6c28869298a34bd41b4..797d2687792d0fa54d832eace47ad9e2e891ba37 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php
@@ -21,7 +21,7 @@ class HTMLPurifier_Config
* HTML Purifier's version
* @type string
*/
- public $version = '4.14.0';
+ public $version = '4.15.0';
/**
* Whether or not to automatically finalize
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ElementDef.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ElementDef.php
index d5311cedcf378ae2733aac5110ddebc75746e385..57cfd2bb08047bc3c5d09fa016e1b18e9992ef5d 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ElementDef.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ElementDef.php
@@ -176,7 +176,7 @@ class HTMLPurifier_ElementDef
if (!empty($def->content_model)) {
$this->content_model =
- str_replace("#SUPER", $this->content_model, $def->content_model);
+ str_replace("#SUPER", (string)$this->content_model, $def->content_model);
$this->child = false;
}
if (!empty($def->content_model_type)) {
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Encoder.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Encoder.php
index 40a24266a4645ea80e66ce33f831b104cbb40269..d4791cc1b61f1fb4abb36f4b3a759ea646e21440 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Encoder.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Encoder.php
@@ -398,8 +398,8 @@ class HTMLPurifier_Encoder
// characters to their true byte-wise ASCII/UTF-8 equivalents.
$str = strtr($str, self::testEncodingSupportsASCII($encoding));
return $str;
- } elseif ($encoding === 'iso-8859-1') {
- $str = utf8_encode($str);
+ } elseif ($encoding === 'iso-8859-1' && function_exists('mb_convert_encoding')) {
+ $str = mb_convert_encoding($str, 'UTF-8', 'ISO-8859-1');
return $str;
}
$bug = HTMLPurifier_Encoder::testIconvTruncateBug();
@@ -450,8 +450,8 @@ class HTMLPurifier_Encoder
// Normal stuff
$str = self::iconv('utf-8', $encoding . '//IGNORE', $str);
return $str;
- } elseif ($encoding === 'iso-8859-1') {
- $str = utf8_decode($str);
+ } elseif ($encoding === 'iso-8859-1' && function_exists('mb_convert_encoding')) {
+ $str = mb_convert_encoding($str, 'ISO-8859-1', 'UTF-8');
return $str;
}
trigger_error('Encoding not supported', E_USER_ERROR);
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/CommonAttributes.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/CommonAttributes.php
index a96ab1bef11864c43ee55ba22ffce2c7b21fa6d1..7220c14cc7c479d34dc2c532f077c94312f24f95 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/CommonAttributes.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/CommonAttributes.php
@@ -17,6 +17,7 @@ class HTMLPurifier_HTMLModule_CommonAttributes extends HTMLPurifier_HTMLModule
'class' => 'Class',
'id' => 'ID',
'title' => 'CDATA',
+ 'contenteditable' => 'ContentEditable',
),
'Lang' => array(),
'I18N' => array(
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php
index 9ee7aa84d71600d4f87642ea0d17e8215bcc0787..42d514447408b66f25ab5a9a2b48dca00003ec7e 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php
@@ -31,6 +31,16 @@ class HTMLPurifier_Injector_RemoveSpansWithoutAttributes extends HTMLPurifier_In
*/
private $context;
+ /**
+ * @type SplObjectStorage
+ */
+ private $markForDeletion;
+
+ public function __construct()
+ {
+ $this->markForDeletion = new SplObjectStorage();
+ }
+
public function prepare($config, $context)
{
$this->attrValidator = new HTMLPurifier_AttrValidator();
@@ -64,7 +74,7 @@ class HTMLPurifier_Injector_RemoveSpansWithoutAttributes extends HTMLPurifier_In
if ($current instanceof HTMLPurifier_Token_End && $current->name === 'span') {
// Mark closing span tag for deletion
- $current->markForDeletion = true;
+ $this->markForDeletion->attach($current);
// Delete open span tag
$token = false;
}
@@ -75,7 +85,8 @@ class HTMLPurifier_Injector_RemoveSpansWithoutAttributes extends HTMLPurifier_In
*/
public function handleEnd(&$token)
{
- if ($token->markForDeletion) {
+ if ($this->markForDeletion->contains($token)) {
+ $this->markForDeletion->detach($token);
$token = false;
}
}
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Length.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Length.php
index e70da55a923d755f861310d823258cfa10f56d98..b6ea12345dade75c501d6ff4a961f7a3686e9578 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Length.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Length.php
@@ -78,7 +78,7 @@ class HTMLPurifier_Length
if ($this->n === '0' && $this->unit === false) {
return true;
}
- if (!ctype_lower($this->unit)) {
+ if ($this->unit === false || !ctype_lower($this->unit)) {
$this->unit = strtolower($this->unit);
}
if (!isset(HTMLPurifier_Length::$allowedUnits[$this->unit])) {
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer.php
index e9da3ed5e94400793bedd4bd437cc01620081912..c21f364919c163e13b2b70aa5fc73a533be32ee1 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer.php
@@ -48,6 +48,11 @@ class HTMLPurifier_Lexer
*/
public $tracksLineNumbers = false;
+ /**
+ * @type HTMLPurifier_EntityParser
+ */
+ private $_entity_parser;
+
// -- STATIC ----------------------------------------------------------
/**
@@ -306,8 +311,8 @@ class HTMLPurifier_Lexer
{
// normalize newlines to \n
if ($config->get('Core.NormalizeNewlines')) {
- $html = str_replace("\r\n", "\n", $html);
- $html = str_replace("\r", "\n", $html);
+ $html = str_replace("\r\n", "\n", (string)$html);
+ $html = str_replace("\r", "\n", (string)$html);
}
if ($config->get('HTML.Trusted')) {
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php
index 72476ddf32bd923c52b0159d3ea5dc8d26bacf7a..1564f283dc0afc8273ce0012a3f7735cfc88e9e8 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php
@@ -4410,7 +4410,7 @@ class HTML5TreeConstructer
foreach ($token['attr'] as $attr) {
if (!$el->hasAttribute($attr['name'])) {
- $el->setAttribute($attr['name'], $attr['value']);
+ $el->setAttribute($attr['name'], (string)$attr['value']);
}
}
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/PropertyListIterator.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/PropertyListIterator.php
index 15b330ea308e63de24e3f05f1546e4f539837d70..f68fc8c30fc341a1aa67b60428da3e3f1dccc0af 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/PropertyListIterator.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/PropertyListIterator.php
@@ -29,6 +29,7 @@ class HTMLPurifier_PropertyListIterator extends FilterIterator
/**
* @return bool
*/
+ #[\ReturnTypeWillChange]
public function accept()
{
$key = $this->getInnerIterator()->key();
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/StringHash.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/StringHash.php
index c07370197a968a4677ce88aff28fd87b0732853f..c41ae3a76d55523a56e93b0c31a76ccb73403351 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/StringHash.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/StringHash.php
@@ -20,6 +20,7 @@ class HTMLPurifier_StringHash extends ArrayObject
* @param mixed $index
* @return mixed
*/
+ #[\ReturnTypeWillChange]
public function offsetGet($index)
{
$this->accessed[$index] = true;
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/HostBlacklist.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/HostBlacklist.php
index a6645c17ee6dcca4e41eb2f1c611d8bbafab4d83..32197c0e61471710aa4df77fef99d1918542e490 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/HostBlacklist.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/HostBlacklist.php
@@ -35,7 +35,7 @@ class HTMLPurifier_URIFilter_HostBlacklist extends HTMLPurifier_URIFilter
public function filter(&$uri, $config, $context)
{
foreach ($this->blacklist as $blacklisted_host_fragment) {
- if (strpos($uri->host, $blacklisted_host_fragment) !== false) {
+ if ($uri->host !== null && strpos($uri->host, $blacklisted_host_fragment) !== false) {
return false;
}
}
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/Munge.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/Munge.php
index 6e03315a17bca83bedc5b41e3b9ee773d4f865d0..e1393deb739ecbe18149cafc159ef8f0e27d90a8 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/Munge.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/Munge.php
@@ -100,11 +100,11 @@ class HTMLPurifier_URIFilter_Munge extends HTMLPurifier_URIFilter
$string = $uri->toString();
// always available
$this->replace['%s'] = $string;
- $this->replace['%r'] = $context->get('EmbeddedURI', true);
- $token = $context->get('CurrentToken', true);
- $this->replace['%n'] = $token ? $token->name : null;
- $this->replace['%m'] = $context->get('CurrentAttr', true);
- $this->replace['%p'] = $context->get('CurrentCSSProperty', true);
+ $this->replace['%r'] = $context->get('EmbeddedURI', true) ?: '';
+ $token = $context->get('CurrentToken', true) ?: '';
+ $this->replace['%n'] = $token ? $token->name : '';
+ $this->replace['%m'] = $context->get('CurrentAttr', true) ?: '';
+ $this->replace['%p'] = $context->get('CurrentCSSProperty', true) ?: '';
// not always available
if ($this->secretKey) {
$this->replace['%t'] = hash_hmac("sha256", $string, $this->secretKey);
diff --git a/vendor/league/flysystem/src/Adapter/Ftp.php b/vendor/league/flysystem/src/Adapter/Ftp.php
index caa8b91d827062f6fd3e0d75e6c5ed91ac8ef48b..b7886bb2db8359c17f5436b7bc83009f5a9505d7 100644
--- a/vendor/league/flysystem/src/Adapter/Ftp.php
+++ b/vendor/league/flysystem/src/Adapter/Ftp.php
@@ -572,9 +572,9 @@ class Ftp extends AbstractFtpAdapter
private function getRawExecResponseCode($command)
{
- $response = @ftp_raw($this->connection, trim($command));
+ $response = @ftp_raw($this->connection, trim($command)) ?: [];
- return (int) preg_replace('/\D/', '', implode(' ', $response));
+ return (int) preg_replace('/\D/', '', implode(' ', (array) $response));
}
private function hasFtpConnection(): bool
diff --git a/vendor/phpmailer/phpmailer/VERSION b/vendor/phpmailer/phpmailer/VERSION
index a08b5f1e88fb86a8382110ed5ee830b96688b22f..653877f1f9b29317ce7b4675f1d01a8e396da5ff 100644
--- a/vendor/phpmailer/phpmailer/VERSION
+++ b/vendor/phpmailer/phpmailer/VERSION
@@ -1 +1 @@
-6.6.4
\ No newline at end of file
+6.6.5
\ No newline at end of file
diff --git a/vendor/phpmailer/phpmailer/composer.json b/vendor/phpmailer/phpmailer/composer.json
index 1db6f03d8d251603f6581c9252f886e0e3ac38f8..9275fab481bd0695ffed56f792bd01f1fbac3a1e 100644
--- a/vendor/phpmailer/phpmailer/composer.json
+++ b/vendor/phpmailer/phpmailer/composer.json
@@ -51,7 +51,7 @@
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
"psr/log": "For optional PSR-3 debug logging",
- "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
+ "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication",
"symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
},
"autoload": {
diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-da.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-da.php
index 1edba1d7a4e963e1a80a77d2e7d3e09e946e1af8..8b7b38a6ee5fdff2e21e62e5edfe3aaaab70ac9d 100644
--- a/vendor/phpmailer/phpmailer/language/phpmailer.lang-da.php
+++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-da.php
@@ -14,16 +14,22 @@ $PHPMAILER_LANG['data_not_accepted'] = 'SMTP fejl: Data blev ikke accepteret.
$PHPMAILER_LANG['empty_message'] = 'Meddelelsen er uden indhold';
$PHPMAILER_LANG['encoding'] = 'Ukendt encode-format: ';
$PHPMAILER_LANG['execute'] = 'Kunne ikke afvikle: ';
+$PHPMAILER_LANG['extension_missing'] = 'Udvidelse mangler: ';
$PHPMAILER_LANG['file_access'] = 'Kunne ikke tilgå filen: ';
$PHPMAILER_LANG['file_open'] = 'Fil fejl: Kunne ikke åbne filen: ';
$PHPMAILER_LANG['from_failed'] = 'Følgende afsenderadresse er forkert: ';
$PHPMAILER_LANG['instantiate'] = 'Email funktionen kunne ikke initialiseres.';
$PHPMAILER_LANG['invalid_address'] = 'Udgyldig adresse: ';
+$PHPMAILER_LANG['invalid_header'] = 'Ugyldig header navn eller værdi';
+$PHPMAILER_LANG['invalid_hostentry'] = 'Ugyldig hostentry: ';
+$PHPMAILER_LANG['invalid_host'] = 'Ugyldig vært: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer understøttes ikke.';
$PHPMAILER_LANG['provide_address'] = 'Indtast mindst en modtagers email adresse.';
-$PHPMAILER_LANG['recipients_failed'] = 'SMTP fejl: Følgende modtagere er forkerte: ';
+$PHPMAILER_LANG['recipients_failed'] = 'SMTP fejl: Følgende modtagere fejlede: ';
$PHPMAILER_LANG['signing'] = 'Signeringsfejl: ';
+$PHPMAILER_LANG['smtp_code'] = 'SMTP kode: ';
+$PHPMAILER_LANG['smtp_code_ex'] = 'Yderligere SMTP info: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fejlede.';
+$PHPMAILER_LANG['smtp_detail'] = 'Detalje: ';
$PHPMAILER_LANG['smtp_error'] = 'SMTP server fejl: ';
$PHPMAILER_LANG['variable_set'] = 'Kunne ikke definere eller nulstille variablen: ';
-$PHPMAILER_LANG['extension_missing'] = 'Udvidelse mangler: ';
diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php
index 23caa71bee48892bbd61e4069c592915ef3b67c6..b0469fdb7a848344145fc88fe394b861b60a2708 100644
--- a/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php
+++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php
@@ -9,19 +9,18 @@ $PHPMAILER_LANG['authenticate'] = 'Błąd SMTP: Nie można przeprowadzi
$PHPMAILER_LANG['connect_host'] = 'Błąd SMTP: Nie można połączyć się z wybranym hostem.';
$PHPMAILER_LANG['data_not_accepted'] = 'Błąd SMTP: Dane nie zostały przyjęte.';
$PHPMAILER_LANG['empty_message'] = 'Wiadomość jest pusta.';
-$PHPMAILER_LANG['encoding'] = 'Nieznany sposób kodowania znaków: ';
+$PHPMAILER_LANG['encoding'] = 'Błędny sposób kodowania znaków: ';
$PHPMAILER_LANG['execute'] = 'Nie można uruchomić: ';
$PHPMAILER_LANG['file_access'] = 'Brak dostępu do pliku: ';
$PHPMAILER_LANG['file_open'] = 'Nie można otworzyć pliku: ';
-$PHPMAILER_LANG['from_failed'] = 'Następujący adres Nadawcy jest nieprawidłowy: ';
+$PHPMAILER_LANG['from_failed'] = 'Następujący adres nadawcy jest nieprawidłowy lub nie istnieje: ';
$PHPMAILER_LANG['instantiate'] = 'Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera.';
-$PHPMAILER_LANG['invalid_address'] = 'Nie można wysłać wiadomości, ' .
- 'następujący adres Odbiorcy jest nieprawidłowy: ';
-$PHPMAILER_LANG['provide_address'] = 'Należy podać prawidłowy adres email Odbiorcy.';
+$PHPMAILER_LANG['invalid_address'] = 'Nie można wysłać wiadomości, ' . 'następujący adres odbiorcy jest nieprawidłowy lub nie istnieje: ';
+$PHPMAILER_LANG['provide_address'] = 'Należy podać prawidłowy adres email odbiorcy.';
$PHPMAILER_LANG['mailer_not_supported'] = 'Wybrana metoda wysyłki wiadomości nie jest obsługiwana.';
-$PHPMAILER_LANG['recipients_failed'] = 'Błąd SMTP: Następujący odbiorcy są nieprawidłowi: ';
+$PHPMAILER_LANG['recipients_failed'] = 'Błąd SMTP: Następujący odbiorcy są nieprawidłowi lub nie istnieją: ';
$PHPMAILER_LANG['signing'] = 'Błąd podpisywania wiadomości: ';
-$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() zakończone niepowodzeniem.';
+$PHPMAILER_LANG['smtp_connect_failed'] = 'Wywołanie funkcji SMTP Connect() zostało zakończone niepowodzeniem.';
$PHPMAILER_LANG['smtp_error'] = 'Błąd SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'Nie można ustawić lub zmodyfikować zmiennej: ';
$PHPMAILER_LANG['extension_missing'] = 'Brakujące rozszerzenie: ';
diff --git a/vendor/phpmailer/phpmailer/src/PHPMailer.php b/vendor/phpmailer/phpmailer/src/PHPMailer.php
index 62424545a2d42bf772be8fee53c4c07d98676909..7e6c88ff14ebee36c0f418669233c38a447a537b 100644
--- a/vendor/phpmailer/phpmailer/src/PHPMailer.php
+++ b/vendor/phpmailer/phpmailer/src/PHPMailer.php
@@ -750,7 +750,7 @@ class PHPMailer
*
* @var string
*/
- const VERSION = '6.6.4';
+ const VERSION = '6.6.5';
/**
* Error severity: message only, continue processing.
@@ -1671,7 +1671,7 @@ class PHPMailer
return $this->mailSend($this->MIMEHeader, $this->MIMEBody);
}
} catch (Exception $exc) {
- if ($this->Mailer === 'smtp' && $this->SMTPKeepAlive == true) {
+ if ($this->Mailer === 'smtp' && $this->SMTPKeepAlive == true && $this->smtp->connected()) {
$this->smtp->reset();
}
$this->setError($exc->getMessage());
@@ -1863,7 +1863,7 @@ class PHPMailer
if (!static::isPermittedPath($path)) {
return false;
}
- $readable = file_exists($path);
+ $readable = is_file($path);
//If not a UNC path (expected to start with \\), check read permission, see #2069
if (strpos($path, '\\\\') !== 0) {
$readable = $readable && is_readable($path);
@@ -2101,6 +2101,9 @@ class PHPMailer
$this->smtp->setDebugLevel($this->SMTPDebug);
$this->smtp->setDebugOutput($this->Debugoutput);
$this->smtp->setVerp($this->do_verp);
+ if ($this->Host === null) {
+ $this->Host = 'localhost';
+ }
$hosts = explode(';', $this->Host);
$lastexception = null;
diff --git a/vendor/phpmailer/phpmailer/src/POP3.php b/vendor/phpmailer/phpmailer/src/POP3.php
index 78e91e49a7348a5038be7aaa7a1f7ad649ac6f6e..a3c9f4532d1a7f6646d676be0cd044a3f4768863 100644
--- a/vendor/phpmailer/phpmailer/src/POP3.php
+++ b/vendor/phpmailer/phpmailer/src/POP3.php
@@ -46,7 +46,7 @@ class POP3
*
* @var string
*/
- const VERSION = '6.6.4';
+ const VERSION = '6.6.5';
/**
* Default POP3 port number.
diff --git a/vendor/phpmailer/phpmailer/src/SMTP.php b/vendor/phpmailer/phpmailer/src/SMTP.php
index cc1711d2e2459bd43b1af1577de1ee7826b2cd20..312f753cea64cb8fd1f68725806b2112030c8bf0 100644
--- a/vendor/phpmailer/phpmailer/src/SMTP.php
+++ b/vendor/phpmailer/phpmailer/src/SMTP.php
@@ -35,7 +35,7 @@ class SMTP
*
* @var string
*/
- const VERSION = '6.6.4';
+ const VERSION = '6.6.5';
/**
* SMTP line break constant.
@@ -682,7 +682,6 @@ class SMTP
*/
public function close()
{
- $this->setError('');
$this->server_caps = null;
$this->helo_rply = null;
if (is_resource($this->smtp_conn)) {
diff --git a/vendor/services.php b/vendor/services.php
index f3de1be1ef690ce897b59d92115a1d6e607b60f7..377b4dde4d17847e6e1587b6d53ca219638202ef 100644
--- a/vendor/services.php
+++ b/vendor/services.php
@@ -1,5 +1,5 @@
'app\\admin\\AppStoreService',
diff --git a/vendor/thinkcmf/cmf/think/App.php b/vendor/thinkcmf/cmf/think/App.php
index 4f3dc391a6375f7e4ef45ddd53fa731a7874187d..ca926126246a2231ae63e197c2ea69b76770d002 100644
--- a/vendor/thinkcmf/cmf/think/App.php
+++ b/vendor/thinkcmf/cmf/think/App.php
@@ -39,7 +39,7 @@ use think\initializer\RegisterService;
*/
class App extends Container
{
- const VERSION = '6.0.13LTS';
+ const VERSION = '6.0.14LTS';
/**
* 应用调试模式
diff --git a/vendor/topthink/framework/src/think/App.php b/vendor/topthink/framework/src/think/App.php
index b189cd954e59a4125cebde50e6e3a696aacb62c4..1edadb6f3bb511ffc94c878041968607dfe118cd 100644
--- a/vendor/topthink/framework/src/think/App.php
+++ b/vendor/topthink/framework/src/think/App.php
@@ -39,7 +39,7 @@ use think\initializer\RegisterService;
*/
class App extends Container
{
- const VERSION = '6.0.13LTS';
+ const VERSION = '6.0.14LTS';
/**
* 应用调试模式
diff --git a/vendor/topthink/framework/src/think/Console.php b/vendor/topthink/framework/src/think/Console.php
index 389d104d572825d1789c2edf82d8b2e3749a59b6..27f12baad901e5c160afb1d2407e05653c090f4e 100644
--- a/vendor/topthink/framework/src/think/Console.php
+++ b/vendor/topthink/framework/src/think/Console.php
@@ -117,9 +117,9 @@ class Console
*/
protected function makeRequest()
{
- $uri = $this->app->config->get('app.url', 'http://localhost');
+ $url = $this->app->config->get('app.url', 'http://localhost');
- $components = parse_url($uri);
+ $components = parse_url($url);
$server = $_SERVER;
@@ -127,6 +127,7 @@ class Console
$server = array_merge($server, [
'SCRIPT_FILENAME' => $components['path'],
'SCRIPT_NAME' => $components['path'],
+ 'REQUEST_URI' => $components['path'],
]);
}
@@ -150,8 +151,6 @@ class Console
$server['HTTP_HOST'] .= ':' . $components['port'];
}
- $server['REQUEST_URI'] = $uri;
-
/** @var Request $request */
$request = $this->app->make('request');
diff --git a/vendor/topthink/framework/src/think/Lang.php b/vendor/topthink/framework/src/think/Lang.php
index 5f16c464b3babbbe1ed1a52c2e847ffb9bb8b9a1..b89108482206c6d6d9e20c6715af604c1852fe86 100644
--- a/vendor/topthink/framework/src/think/Lang.php
+++ b/vendor/topthink/framework/src/think/Lang.php
@@ -287,58 +287,4 @@ class Lang
return $value;
}
- /**
- * 自动侦测设置获取语言选择
- * @deprecated
- * @access public
- * @param Request $request
- * @return string
- */
- public function detect(Request $request): string
- {
- // 自动侦测设置获取语言选择
- $langSet = '';
-
- if ($request->get($this->config['detect_var'])) {
- // url中设置了语言变量
- $langSet = strtolower($request->get($this->config['detect_var']));
- } elseif ($request->header($this->config['header_var'])) {
- // Header中设置了语言变量
- $langSet = strtolower($request->header($this->config['header_var']));
- } elseif ($request->cookie($this->config['cookie_var'])) {
- // Cookie中设置了语言变量
- $langSet = strtolower($request->cookie($this->config['cookie_var']));
- } elseif ($request->server('HTTP_ACCEPT_LANGUAGE')) {
- // 自动侦测浏览器语言
- $match = preg_match('/^([a-z\d\-]+)/i', $request->server('HTTP_ACCEPT_LANGUAGE'), $matches);
- if ($match) {
- $langSet = strtolower($matches[1]);
- if (isset($this->config['accept_language'][$langSet])) {
- $langSet = $this->config['accept_language'][$langSet];
- }
- }
- }
-
- if (empty($this->config['allow_lang_list']) || in_array($langSet, $this->config['allow_lang_list'])) {
- // 合法的语言
- $this->range = $langSet;
- }
-
- return $this->range;
- }
-
- /**
- * 保存当前语言到Cookie
- * @deprecated
- * @access public
- * @param Cookie $cookie Cookie对象
- * @return void
- */
- public function saveToCookie(Cookie $cookie)
- {
- if ($this->config['use_cookie']) {
- $cookie->set($this->config['cookie_var'], $this->range);
- }
- }
-
}
diff --git a/vendor/topthink/framework/src/think/middleware/LoadLangPack.php b/vendor/topthink/framework/src/think/middleware/LoadLangPack.php
index d6bf6a462f302199cf3fcedd31ebcf202527ac9a..af0324b83c6098c94333378ad5f2e7de2b0105b0 100644
--- a/vendor/topthink/framework/src/think/middleware/LoadLangPack.php
+++ b/vendor/topthink/framework/src/think/middleware/LoadLangPack.php
@@ -70,33 +70,35 @@ class LoadLangPack
if ($request->get($this->config['detect_var'])) {
// url中设置了语言变量
- $langSet = strtolower($request->get($this->config['detect_var']));
+ $langSet = $request->get($this->config['detect_var']);
} elseif ($request->header($this->config['header_var'])) {
// Header中设置了语言变量
- $langSet = strtolower($request->header($this->config['header_var']));
+ $langSet = $request->header($this->config['header_var']);
} elseif ($request->cookie($this->config['cookie_var'])) {
// Cookie中设置了语言变量
- $langSet = strtolower($request->cookie($this->config['cookie_var']));
+ $langSet = $request->cookie($this->config['cookie_var']);
} elseif ($request->server('HTTP_ACCEPT_LANGUAGE')) {
// 自动侦测浏览器语言
- $match = preg_match('/^([a-z\d\-]+)/i', $request->server('HTTP_ACCEPT_LANGUAGE'), $matches);
- if ($match) {
- $langSet = strtolower($matches[1]);
- if (isset($this->config['accept_language'][$langSet])) {
- $langSet = $this->config['accept_language'][$langSet];
- }
+ $langSet = $request->server('HTTP_ACCEPT_LANGUAGE');
+ }
+
+ if (preg_match('/^([a-z\d\-]+)/i', $langSet, $matches)) {
+ $langSet = strtolower($matches[1]);
+ if (isset($this->config['accept_language'][$langSet])) {
+ $langSet = $this->config['accept_language'][$langSet];
}
+ } else {
+ $langSet = $this->lang->getLangSet();
}
if (empty($this->config['allow_lang_list']) || in_array($langSet, $this->config['allow_lang_list'])) {
// 合法的语言
- $range = $langSet;
- $this->lang->setLangSet($range);
+ $this->lang->setLangSet($langSet);
} else {
- $range = $this->lang->getLangSet();
+ $langSet = $this->lang->getLangSet();
}
- return $range;
+ return $langSet;
}
/**
diff --git a/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php b/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php
index 0015a24abf9095881ebb5ef9e009cce75ab3c7ac..cabd65bb7bd86d83adf2f898a3c3bfff43a4a327 100644
--- a/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php
+++ b/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php
@@ -559,23 +559,4 @@ trait ModelRelationQuery
$result->refreshOrigin();
}
- /**
- * 查询软删除数据
- * @access public
- * @return Query
- */
- public function withTrashed()
- {
- return $this->model ? $this->model->queryWithTrashed() : $this;
- }
-
- /**
- * 只查询软删除数据
- * @access public
- * @return Query
- */
- public function onlyTrashed()
- {
- return $this->model ? $this->model->queryOnlyTrashed() : $this;
- }
}
diff --git a/vendor/topthink/think-orm/src/model/concern/Attribute.php b/vendor/topthink/think-orm/src/model/concern/Attribute.php
index 897d327f08ae240aca211010370c2c600525b454..b14d25a898ec6acd1fa3014224eff977035ce9dd 100644
--- a/vendor/topthink/think-orm/src/model/concern/Attribute.php
+++ b/vendor/topthink/think-orm/src/model/concern/Attribute.php
@@ -383,7 +383,7 @@ trait Attribute
} elseif (isset($this->type[$name])) {
// 类型转换
$value = $this->writeTransform($value, $this->type[$name]);
- } elseif (array_key_exists($name, $this->origin) && is_object($value) && method_exists($value, '__toString')) {
+ } elseif ((array_key_exists($name, $this->origin) || empty($this->origin)) && is_object($value) && method_exists($value, '__toString')) {
// 对象类型
$value = $value->__toString();
}
diff --git a/vendor/topthink/think-orm/src/model/concern/SoftDelete.php b/vendor/topthink/think-orm/src/model/concern/SoftDelete.php
index 117f1ef7b5322f3233dc6432adcd7214dd3414d1..b7b10921b2f0b79d4121fa7e8d24c06e14f140c2 100644
--- a/vendor/topthink/think-orm/src/model/concern/SoftDelete.php
+++ b/vendor/topthink/think-orm/src/model/concern/SoftDelete.php
@@ -18,14 +18,18 @@ use think\Model;
/**
* 数据软删除
* @mixin Model
+ * @method $this withTrashed()
+ * @method $this onlyTrashed()
*/
trait SoftDelete
{
- /**
- * 是否包含软删除数据
- * @var bool
- */
- protected $withTrashed = false;
+
+ public function db($scope = []): Query
+ {
+ $query = parent::db($scope);
+ $this->withNoTrashed($query);
+ return $query;
+ }
/**
* 判断当前实例是否被软删除
@@ -43,74 +47,18 @@ trait SoftDelete
return false;
}
- /**
- * 查询软删除数据
- * @access public
- * @return Query
- */
- public static function withTrashed(): Query
+ public function scopeWithTrashed(Query $query)
{
- $model = new static();
-
- return $model->withTrashedData(true)->db();
+ $query->removeOption('soft_delete');
}
- /**
- * 查询软删除数据
- * @access public
- * @return Query
- */
- public function queryWithTrashed(): Query
- {
- return $this->withTrashedData(true)->db();
- }
-
- /**
- * 是否包含软删除数据
- * @access protected
- * @param bool $withTrashed 是否包含软删除数据
- * @return $this
- */
- protected function withTrashedData(bool $withTrashed)
- {
- $this->withTrashed = $withTrashed;
- return $this;
- }
-
- /**
- * 只查询软删除数据
- * @access public
- * @return Query
- */
- public static function onlyTrashed(): Query
- {
- $model = new static();
- $field = $model->getDeleteTimeField(true);
-
- if ($field) {
- return $model
- ->db()
- ->useSoftDelete($field, $model->getWithTrashedExp());
- }
-
- return $model->db();
- }
-
- /**
- * 只查询软删除数据
- * @access public
- * @return Query
- */
- public function queryOnlyTrashed(): Query
+ public function scopeOnlyTrashed(Query $query)
{
$field = $this->getDeleteTimeField(true);
if ($field) {
- return $this->db()
- ->useSoftDelete($field, $this->getWithTrashedExp());
+ $query->useSoftDelete($field, $this->getWithTrashedExp());
}
-
- return $this->db();
}
/**
@@ -139,9 +87,9 @@ trait SoftDelete
if ($name && !$force) {
// 软删除
- $this->set($name, $this->autoWriteTimestamp($name));
+ $this->set($name, $this->autoWriteTimestamp());
- $result = $this->exists()->withEvent(false)->save();
+ $this->exists()->withEvent(false)->save();
$this->withEvent(true);
} else {
@@ -149,7 +97,7 @@ trait SoftDelete
$where = $this->getWhere();
// 删除当前模型数据
- $result = $this->db()
+ $this->db()
->where($where)
->removeOption('soft_delete')
->delete();
@@ -172,8 +120,8 @@ trait SoftDelete
/**
* 删除记录
* @access public
- * @param mixed $data 主键列表 支持闭包查询条件
- * @param bool $force 是否强制删除
+ * @param mixed $data 主键列表 支持闭包查询条件
+ * @param bool $force 是否强制删除
* @return bool
*/
public static function destroy($data, bool $force = false): bool
@@ -182,18 +130,20 @@ trait SoftDelete
if (empty($data) && 0 !== $data) {
return false;
}
- // 仅当强制删除时包含软删除数据
$model = (new static());
+
+ $query = $model->db(false);
+
+ // 仅当强制删除时包含软删除数据
if ($force) {
- $model->withTrashedData(true);
+ $query->removeOption('soft_delete');
}
- $query = $model->db(false);
if (is_array($data) && key($data) !== 0) {
$query->where($data);
$data = null;
} elseif ($data instanceof \Closure) {
- call_user_func_array($data, [ & $query]);
+ call_user_func_array($data, [&$query]);
$data = null;
} elseif (is_null($data)) {
return false;
@@ -202,6 +152,7 @@ trait SoftDelete
$resultSet = $query->select($data);
foreach ($resultSet as $result) {
+ /** @var Model $result */
$result->force($force)->delete();
}
@@ -211,7 +162,7 @@ trait SoftDelete
/**
* 恢复被软删除的记录
* @access public
- * @param array $where 更新条件
+ * @param array $where 更新条件
* @return bool
*/
public function restore($where = []): bool
@@ -243,7 +194,7 @@ trait SoftDelete
/**
* 获取软删除字段
* @access protected
- * @param bool $read 是否查询操作 写操作的时候会自动去掉表别名
+ * @param bool $read 是否查询操作 写操作的时候会自动去掉表别名
* @return string|false
*/
protected function getDeleteTimeField(bool $read = false)
@@ -269,7 +220,7 @@ trait SoftDelete
/**
* 查询的时候默认排除软删除数据
* @access protected
- * @param Query $query
+ * @param Query $query
* @return void
*/
protected function withNoTrashed(Query $query): void
diff --git a/vendor/topthink/think-orm/src/model/relation/BelongsTo.php b/vendor/topthink/think-orm/src/model/relation/BelongsTo.php
index dd54f52ca80964785cf638729a232caba0041dd1..741a2e8d4874a82c43810713943f698a88f0a91a 100644
--- a/vendor/topthink/think-orm/src/model/relation/BelongsTo.php
+++ b/vendor/topthink/think-orm/src/model/relation/BelongsTo.php
@@ -241,7 +241,7 @@ class BelongsTo extends OneToOne
if (!empty($this->bindAttr)) {
// 绑定关联属性
$this->bindAttr($result, $relationModel);
- $result->hidden([$relation]);
+ $result->hidden([$relation], true);
}
}
}
@@ -283,7 +283,7 @@ class BelongsTo extends OneToOne
if (!empty($this->bindAttr)) {
// 绑定关联属性
$this->bindAttr($result, $relationModel);
- $result->hidden([$relation]);
+ $result->hidden([$relation], true);
}
}
diff --git a/vendor/topthink/think-orm/src/model/relation/HasOne.php b/vendor/topthink/think-orm/src/model/relation/HasOne.php
index 43f220c9d1dcef8a3ecc1f488f8309bf41fda74f..5e5e50112782f45e657c59510978cb665951f6b7 100644
--- a/vendor/topthink/think-orm/src/model/relation/HasOne.php
+++ b/vendor/topthink/think-orm/src/model/relation/HasOne.php
@@ -240,7 +240,7 @@ class HasOne extends OneToOne
if (!empty($this->bindAttr)) {
// 绑定关联属性
$this->bindAttr($result, $relationModel);
- $result->hidden([$relation]);
+ $result->hidden([$relation], true);
}
}
}
@@ -282,7 +282,7 @@ class HasOne extends OneToOne
if (!empty($this->bindAttr)) {
// 绑定关联属性
$this->bindAttr($result, $relationModel);
- $result->hidden([$relation]);
+ $result->hidden([$relation], true);
}
}
diff --git a/vendor/topthink/think-orm/src/model/relation/MorphTo.php b/vendor/topthink/think-orm/src/model/relation/MorphTo.php
index f53fe4fc5c7037fdbdec0b030e35762846bc60bc..74b16c2775daac090effe4c365274cdf465fb29c 100644
--- a/vendor/topthink/think-orm/src/model/relation/MorphTo.php
+++ b/vendor/topthink/think-orm/src/model/relation/MorphTo.php
@@ -13,6 +13,7 @@ namespace think\model\relation;
use Closure;
use think\db\exception\DbException as Exception;
+use think\db\Query;
use think\helper\Str;
use think\Model;
use think\model\Relation;
@@ -46,14 +47,16 @@ class MorphTo extends Relation
*/
protected $relation;
+ protected $queryCaller = [];
+
/**
* 架构函数
* @access public
- * @param Model $parent 上级模型对象
- * @param string $morphType 多态字段名
- * @param string $morphKey 外键名
- * @param array $alias 多态别名定义
- * @param string $relation 关联名
+ * @param Model $parent 上级模型对象
+ * @param string $morphType 多态字段名
+ * @param string $morphKey 外键名
+ * @param array $alias 多态别名定义
+ * @param ?string $relation 关联名
*/
public function __construct(Model $parent, string $morphType, string $morphKey, array $alias = [], string $relation = null)
{
@@ -80,8 +83,8 @@ class MorphTo extends Relation
/**
* 延迟获取关联数据
* @access public
- * @param array $subRelation 子关联名
- * @param Closure $closure 闭包查询条件
+ * @param array $subRelation 子关联名
+ * @param ?Closure $closure 闭包查询条件
* @return Model
*/
public function getRelation(array $subRelation = [], Closure $closure = null)
@@ -95,7 +98,7 @@ class MorphTo extends Relation
// 主键数据
$pk = $this->parent->$morphKey;
- $relationModel = (new $model)->relation($subRelation)->find($pk);
+ $relationModel = $this->buildQuery((new $model)->relation($subRelation))->find($pk);
if ($relationModel) {
$relationModel->setParent(clone $this->parent);
@@ -107,11 +110,11 @@ class MorphTo extends Relation
/**
* 根据关联条件查询当前模型
* @access public
- * @param string $operator 比较操作符
- * @param integer $count 个数
- * @param string $id 关联表的统计字段
- * @param string $joinType JOIN类型
- * @param Query $query Query对象
+ * @param string $operator 比较操作符
+ * @param integer $count 个数
+ * @param string $id 关联表的统计字段
+ * @param string $joinType JOIN类型
+ * @param Query $query Query对象
* @return Query
*/
public function has(string $operator = '>=', int $count = 1, string $id = '*', string $joinType = '', Query $query = null)
@@ -122,22 +125,45 @@ class MorphTo extends Relation
/**
* 根据关联条件查询当前模型
* @access public
- * @param mixed $where 查询条件(数组或者闭包)
- * @param mixed $fields 字段
- * @param string $joinType JOIN类型
- * @param Query $query Query对象
+ * @param mixed $where 查询条件(数组或者闭包)
+ * @param mixed $fields 字段
+ * @param string $joinType JOIN类型
+ * @param ?Query $query Query对象
* @return Query
*/
public function hasWhere($where = [], $fields = null, string $joinType = '', Query $query = null)
{
- throw new Exception('relation not support: hasWhere');
+ $alias = class_basename($this->parent);
+
+ $types = $this->parent->distinct()->column($this->morphType);
+
+ $query = $query ?: $this->parent->db();
+
+ return $query->alias($alias)
+ ->where(function (Query $query) use ($types, $where, $alias) {
+ foreach ($types as $type) {
+ if ($type) {
+ $query->whereExists(function (Query $query) use ($type, $where, $alias) {
+ /** @var Model $model */
+ $model = new ($this->parseModel($type));
+
+ $table = $model->getTable();
+ $query
+ ->table($table)
+ ->where($alias . '.' . $this->morphType, $type)
+ ->whereRaw("`{$alias}`.`{$this->morphKey}`=`{$table}`.`{$model->getPk()}`")
+ ->where($where);
+ }, 'OR');
+ }
+ }
+ });
}
/**
* 解析模型的完整命名空间
* @access protected
- * @param string $model 模型名(或者完整类名)
- * @return string
+ * @param string $model 模型名(或者完整类名)
+ * @return Model
*/
protected function parseModel(string $model): string
{
@@ -158,7 +184,7 @@ class MorphTo extends Relation
/**
* 设置多态别名
* @access public
- * @param array $alias 别名定义
+ * @param array $alias 别名定义
* @return $this
*/
public function setAlias(array $alias)
@@ -173,7 +199,7 @@ class MorphTo extends Relation
* @access public
* @return $this
*/
- public function removeOption()
+ public function removeOption(string $option = '')
{
return $this;
}
@@ -181,11 +207,11 @@ class MorphTo extends Relation
/**
* 预载入关联查询
* @access public
- * @param array $resultSet 数据集
- * @param string $relation 当前关联名
- * @param array $subRelation 子关联名
- * @param Closure $closure 闭包
- * @param array $cache 关联缓存
+ * @param array $resultSet 数据集
+ * @param string $relation 当前关联名
+ * @param array $subRelation 子关联名
+ * @param ?Closure $closure 闭包
+ * @param array $cache 关联缓存
* @return void
* @throws Exception
*/
@@ -211,8 +237,8 @@ class MorphTo extends Relation
if (!\is_null($closure)) {
$obj = $closure($obj);
}
- $pk = $obj->getPk();
- $list = $obj->with($subRelation)
+ $pk = $obj->getPk();
+ $list = $obj->with($subRelation)
->cache($cache[0] ?? false, $cache[1] ?? null, $cache[2] ?? null)
->select($val);
$data = [];
@@ -242,11 +268,11 @@ class MorphTo extends Relation
/**
* 预载入关联查询
* @access public
- * @param Model $result 数据对象
- * @param string $relation 当前关联名
- * @param array $subRelation 子关联名
- * @param Closure $closure 闭包
- * @param array $cache 关联缓存
+ * @param Model $result 数据对象
+ * @param string $relation 当前关联名
+ * @param array $subRelation 子关联名
+ * @param ?Closure $closure 闭包
+ * @param array $cache 关联缓存
* @return void
*/
public function eagerlyResult(Model $result, string $relation, array $subRelation = [], Closure $closure = null, array $cache = []): void
@@ -260,36 +286,42 @@ class MorphTo extends Relation
/**
* 关联统计
* @access public
- * @param Model $result 数据对象
- * @param Closure $closure 闭包
- * @param string $aggregate 聚合查询方法
- * @param string $field 字段
+ * @param Model $result 数据对象
+ * @param ?Closure $closure 闭包
+ * @param string $aggregate 聚合查询方法
+ * @param string $field 字段
* @return integer
*/
public function relationCount(Model $result, Closure $closure = null, string $aggregate = 'count', string $field = '*')
- {}
+ {
+ }
/**
* 多态MorphTo 关联模型预查询
* @access protected
- * @param string $model 关联模型对象
- * @param string $relation 关联名
- * @param Model $result
- * @param array $subRelation 子关联
- * @param array $cache 关联缓存
+ * @param string $model 关联模型对象
+ * @param string $relation 关联名
+ * @param Model $result
+ * @param array $subRelation 子关联
+ * @param array $cache 关联缓存
* @return void
*/
protected function eagerlyMorphToOne(string $model, string $relation, Model $result, array $subRelation = [], array $cache = []): void
{
// 预载入关联查询 支持嵌套预载入
$pk = $this->parent->{$this->morphKey};
- $data = (new $model)->with($subRelation)
- ->cache($cache[0] ?? false, $cache[1] ?? null, $cache[2] ?? null)
- ->find($pk);
- if ($data) {
- $data->setParent(clone $result);
- $data->exists(true);
+ $data = null;
+
+ if(\class_exists($model)){
+ $data = (new $model)->with($subRelation)
+ ->cache($cache[0] ?? false, $cache[1] ?? null, $cache[2] ?? null)
+ ->find($pk);
+
+ if ($data) {
+ $data->setParent(clone $result);
+ $data->exists(true);
+ }
}
$result->setRelation($relation, $data ?: null);
@@ -298,8 +330,8 @@ class MorphTo extends Relation
/**
* 添加关联数据
* @access public
- * @param Model $model 关联模型对象
- * @param string $type 多态类型
+ * @param Model $model 关联模型对象
+ * @param string $type 多态类型
* @return Model
*/
public function associate(Model $model, string $type = ''): Model
@@ -332,4 +364,18 @@ class MorphTo extends Relation
return $this->parent->setRelation($this->relation, null);
}
+ protected function buildQuery(Query $query)
+ {
+ foreach ($this->queryCaller as $caller) {
+ call_user_func_array([$query, $caller[0]], $caller[1]);
+ }
+
+ return $query;
+ }
+
+ public function __call($method, $args)
+ {
+ $this->queryCaller[] = [$method, $args];
+ return $this;
+ }
}
diff --git a/vendor/topthink/think-trace/composer.json b/vendor/topthink/think-trace/composer.json
index 5af58545e647240a2b61589deb54ca7863db722a..172a2d3c6586df9ef5d64014a025b1d509f394f6 100644
--- a/vendor/topthink/think-trace/composer.json
+++ b/vendor/topthink/think-trace/composer.json
@@ -10,7 +10,7 @@
],
"require": {
"php": ">=7.1.0",
- "topthink/framework": "^6.0.0"
+ "topthink/framework": "^6.0"
},
"autoload": {
"psr-4": {