rah / rah_swap
动态交换 Textpattern CMS 数据库
Requires
- php: >=7.1.0
- textpattern/installer: *
- textpattern/lock: >=4.7.0
Requires (Dev)
- rah/mtxpc: ^0.9.0
- squizlabs/php_codesniffer: 3.*
This package is auto-updated.
Last update: 2024-09-17 04:28:55 UTC
README
使用模板标签动态交换连接到 Textpattern CMS 的 MySQL 数据库链接。该插件有潜力允许从不同的数据库中提取模板、文章和其他内容。
安装
使用 Composer
$ composer require rah/rah_swap
或者 下载安装包。
基础
<rah::swap db="myNewDatabase">
...contained statement...
</rah::swap>
插件引入了一个新的标签,<rah::swap/>
。该标签可以用作容器,也可以用作单个、自闭合的标签。用作容器时,仅更改包装代码的数据库连接链接。在闭合标签对上恢复原始链接。
属性
db
数据库名称。如果 db
是唯一设置的属性,则使用当前连接的凭据(用户、密码、主机)更改当前连接的数据库。不创建新链接,而是仅交换数据库,重用旧连接。
示例:db="myDatabase"
默认:未定义
user
用于连接数据库的用户名。
示例:user="username"
默认:未定义
pass
用户的密码。如果用户没有密码,则可以留空。
示例:pass="password"
默认:未定义
host
数据库服务器。 host
可以包含主机名、端口号或本地套接字的路径。默认为 localhost
。
示例:host="hostname.tld:3306"
默认:未定义
dbcharset
数据库的字符集。通常不应使用此属性,而应保持原样。Textpattern 使用 UTF-8,使用非 Unicode 字符集可能会产生意外的结果。
示例:dbcharset="latin1"
默认:未定义
client_flags
传递给数据库客户端的额外标志。通常您不需要担心此属性。通常不应使用此属性。
示例:client_flags=""
默认:未定义
reset
一个布尔属性,当设置时,将数据库连接重置为其原始状态。如果标签用作容器,则在关闭标签对上自动执行重置,无需 reset
属性。当 rah_swap 的标签用作自闭合的单个标签时,使用 reset
在您想要恢复到 Textpattern 的原始数据库连接时。
示例:reset
默认:未定义
link
预定义数据库凭据配置项的名称。如果定义了 link
属性,则使用的凭据将从预先定义的配置数组变量 $rah_swap
中提取,该变量存储在 Textpattern 的配置文件 config.php
中。
示例:link="template_db"
默认:未定义
配置
借助标签的link
属性,可以将数据库连接凭证保存到Textpattern的配置文件(即/textpattern/config.php
),而不是通过标签属性指定。
定义数据库的连接凭证基本上与定义Textpattern核心数据库详情的方式相同。Rah_swap期望一个名为$rah_swap
的全局变量,其中包含一个多维数组,允许配置多个链接。示例配置可能如下所示:
$rah_swap['link1'] = [ 'db' => 'MyDatabase1', 'user' => 'MyUsername1', 'pass' => 'MyPassword1', 'host' => 'localhost', ];
$rah_swap['link2'] = [ 'db' => 'MyDatabase2', 'user' => 'MyUsername2', 'pass' => 'MyPassword2', 'host' => 'localhost', ];
其中link1
和link2
将是链接配置的名称,并将用作rah_swap
标签的link
属性的值。
<rah::swap link="link1" />
<rah::swap link="link2" />
示例
简单使用示例
包含在<rah::swap>
标签内的内容将从名为promotional_content_db的数据库中提取。
<rah::swap db="promotional_content_db">
<txp:article_custom category="promo_2011_06">
<txp:body/>
</txp:article_custom>
</rah::swap>
在示例中,promotional_content_db
将是一个由第二个Textpattern安装使用的数据库。该安装将用于托管推广内容和活动,并将重新分发到多个网站。
显示来自第二个安装的下载
<rah::swap db="downloads">
<txp:file_download>
<txp:file_download_link>
<txp:file_download_name/>
</txp:file_download_link>
</txp:file_download>
</rah::swap>
如上所述,使用Textpattern的file tags
([文件标签](https://docs.textpattern.com/tags/file-tags))从downloads数据库提供文件下载。
作为自闭合标签
将从templates数据库获取模板。
<rah::swap link="templates"/>
<txp:output_form form="header"/>
<txp:output_form form="cdn_template_banner_256x145"/>
<txp:output_form form="cdn_template_banner_256x145"/>
<rah::swap reset/>
使用reset
属性将连接重置为正常。
变更日志
版本 0.2.0 – 2022/04/17
- Textpattern >= 4.7.0 和 PHP >= 7.0 兼容性。
- 现在需要 Textpattern >= 4.7.0。
版本 0.1.0 – 2013/05/06
- 初始发布。