grossberger-georg/run-script

通过后端运行服务器端脚本

安装数: 3,324

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 0

开放问题: 1

类型:typo3-cms-extension

v1.0.0 2023-09-08 12:14 UTC

This package is auto-updated.

Last update: 2024-09-11 16:05:16 UTC


README

这是一个TYPO3扩展,允许编辑器通过后端界面运行配置的服务器端脚本。它将在后端工具栏中添加一个下拉菜单,以便选择要运行的脚本。

安装

使用composer将扩展作为依赖项添加: composer require grossberger-georg/run-script

配置

重要:Web服务器必须安装并可供运行PHP进程的用户使用nohup和bash,且在$PATH变量中可用。

创建脚本

执行脚本将更改其工作目录到项目的根路径,并在执行前导出所有可用环境变量。例如:在一个默认选项的composer模式安装中,脚本 ./vendor/bin/typo3 scheduler:run 将启动调度器。

脚本不会被转义、引号或以任何其他方式更改。它将按原样执行。

任何有效的bash命令都是有效的脚本,因此这也被允许: if [[ ! -f /tmp/hello ]]; then echo Hello > /tmp/hello; sleep 200; rm /tmp/hello; fi

如果脚本指向一个文件,请确保它设置了可执行位。

如果是文件并且有EXT:前缀,它将被解析为绝对路径。EXT:前缀在中间将不会被解析。脚本 EXT:shop/Resources/Private/Scripts/import.sh 将工作,但 if [[ ! -f /tmp/importing ]]; then EXT:shop/Resources/Private/Scripts/import.sh; fi; 将不会。

一次只能运行一个脚本实例。EXT:run_script将创建一个锁,并在已有进程运行该脚本时通知用户。

设置要运行的脚本

脚本由两部分组成:一个键以及一个包含至少两个条目的数组:一个名称和要执行的bash命令。它们被添加到全局TYPO3_CONF_VARS中。

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['run_script']['<KEY>'] = [
    'label'  => '<LABEL>',
    'script' => '<SCRIPT>',
];

使用扩展的ext_localconf.php或AdditionalConfiguration.php文件添加脚本。包含一个简单的演示,可以通过在扩展设置中启用“启用演示脚本”选项来激活。

键应遵循TYPO3约定tx_myext_function。

在数组内部,以下选项可用

如果提供了reloadBackend,该数字是在脚本完成后,后台重新加载后的秒数。这对于脚本更改后端可见数据很有用,如产品导入器。

权限

默认情况下,管理员可以看到所有脚本。这可以通过扩展设置中的选项“禁用管理员始终访问”来禁用。然后必须通过TSConfig设置授权访问,如编辑器。

编辑器只能执行TSConfig键tx_runscript.allowed中逗号分隔的列表中的脚本。配置数组的键必须在这个列表中,脚本才能执行。

示例

# Always allow those two:
tx_runscript.allowed = tx_shop_import_products, tx_shop_export_orders

# Editors with Backend Group 3 can also run this one:
[like(","~backend.user.userGroupList~",", "*,3,*")]
    tx_runscript.allowed := addToList(tx_shop_clean_expired_carts)
[global]

许可证

MIT许可证,请参阅LICENSEhttps://open-source.org.cn/licenses/MIT

图标来自 Bootstrap Icons,该图标库采用 MIT 许可。

TYPO3 采用 GNU/GPL 许可发布。请参阅 https://github.com/TYPO3/TYPO3.CMS/blob/master/LICENSE.txt 了解详情