sqweb / sdk_php
Requires
- php: >= 5.4.45
- ext-curl: *
- vlucas/phpdotenv: ^2.2
Requires (Dev)
- jakub-onderka/php-parallel-lint: dev-master
- sebastian/phpcpd: ^2.0
- squizlabs/php_codesniffer: ^2.4
This package is not auto-updated.
Last update: 2022-02-01 12:53:13 UTC
README
需求
此SDK已在PHP 5.5及更高版本上进行测试。
我们无法为更早的版本提供官方支持。有关PHP分支的生命周期信息,请查看此页面。
安装
此包旨在用于自定义PHP网站和高级集成。
如果您使用WordPress,我们已为您简化操作。直接从WordPress.org下载SQweb插件,或查看源代码。
推荐:Composer + dotenv
-
在项目根目录下,执行
composer require mltpss/php-sdk。 -
在项目根目录创建一个
.env文件,或者如果您已经有一个,则编辑它。 -
在
.env中粘贴以下配置SQW_ID_SITE=YOUR_WEBSITE_ID SQW_SITENAME=YOUR_WEBSITE_NAME SQW_LANG=en_US
将
SQW_ID_SITE替换为您的网站ID,将SQW_SITENAME替换为要在大型Multipass按钮上显示的名称.
有关其他设置,请参阅下面的 "选项"。
Composer + 手动配置
-
在项目根目录下,执行
composer require mltpss/php-sdk。 -
通过构造函数传入配置创建一个新的SQweb对象。
SQW_ID_SITE和SQW_SITENAME必须指定。require_once('vendor/autoload.php'); $sqweb = new \SQweb\SQweb(['SQW_ID_SITE' => 1234, 'SQW_SITENAME' => 'SQweb']);
有关其他设置,请参阅下面的 "选项"。
手动
-
下载SDK的最新版本,并将其解压缩到项目根目录下名为
sqweb的文件夹中。 -
在项目根目录创建一个名为
sqweb.config的文件。此文件应位于您刚刚创建的sqweb文件夹的上一级,即|–- sqweb/ | |-- src/ | | |-- init.php | | |-- SQweb.php |-- sqweb.config -
在
sqweb.config中粘贴以下配置SQW_ID_SITE=YOUR_WEBSITE_ID SQW_SITENAME=YOUR_WEBSITE_NAME SQW_LANG=en_US将
SQW_ID_SITE替换为您的网站ID,将SQW_SITENAME替换为要在大型Multipass按钮上显示的名称.
有关其他设置,请参阅下面的 "选项"。
用法
1. 初始化SDK
首先,您必须初始化SQweb变量在您希望使用的页面。
如果您使用了composer
$sqweb = new SQweb\SQweb;
如果您是手动安装
include_once "whereYouInstalled/src/init.php";
2. 标记您的页面
然后,您需要在您的页面上添加我们的JavaScript标签。此函数会为您完成,并应插入到HTML中 </body> 标签之前。
$sqweb->script();
确保它在所有页面上都存在。最可能的情况是,您只需将其添加到模板中。
如果您之前有一个SQweb JavaScript标签,请确保删除它以避免任何冲突。
3.a 检查您的订阅者的积分
检查用户是否有积分,以便您可以禁用广告或解锁高级内容。
if ($sqweb->checkCredits() > 0) { // CONTENT } else { // ADS }
3.b 获取用户的电子邮件
如果用户愿意,他可以与您分享他的电子邮件,要获取它,请检查名为 mltpss_e 的cookie是否存在。里面将是一个您需要检索并解码的base64编码的字符串。
例如
if ($_COOKIE['mltpss_e']) { $email = base64_decode($_COOKIE['mltpss_e']); }
如果设置了cookie,此段代码将把电子邮件存储在 $email 变量中。
4.a 显示Multipass按钮
使用此代码在您的页面上显示Multipass按钮
$sqweb->button();
我们为按钮提供了3种额外的大小,要使用它,将一个字符串传递给函数
$sqweb->button('tiny'); $sqweb->button('slim'); $sqweb->button('large');
我们还有一种类型的按钮,免费按钮,它允许您与用户共享电子邮件。要显示它,使用此函数
$sqweb->button('free');
4.b 自定义Multipass按钮
如果您想自定义我们的不同类型的按钮,请将以下内容放入您的配置文件(如果您使用了composer和dotenv,则为 .env;如果没有,则为 sqweb.config)。例如:SQW_LOGIN=Hello world 将在未登录访客的常规按钮上显示 Hello world 而不是 带有Multipass的高级。
| 按钮模型 | 已登录 | 未登录 |
|---|---|---|
| 小型 | SQW_CONNECTED_TINY |
SQW_LOGIN_TINY |
| 常规 | SQW_CONNECTED |
SQW_LOGIN |
| 大型 - 在黑点之前 | N / A | SQW_BTN_UNLIMITED |
| 大型 - 在黑点之后 | N / A | SQW_BTN_NOADS |
| 大型连接 | SQW_CONNECTED_S |
N / A |
5. 更多功能
为您的用户提供支持div
/** * Display a "Support us" message. */ function supportBlock() { } `` For instance: ```php $sqweb = new SQweb; $sqweb->supportBlock();
将显示该块。
为您的用户提供锁定div
/** * Display a locking block. */ function lockingBlock() { } `` For instance: ```php $sqweb = new SQweb; $sqweb->lockingBlock();
我们建议您与我们的其他阻塞功能一起使用它
if ($sqweb->waitToDisplay('15/09/16', 'd/m/y', 2)) { // The content here will appear 2 days after the publication date for non paying users. } else { // Here you can put content that free users will see until the content above is available for all. $sqweb->lockingBlock(); }
仅向非高级用户显示您内容的一部分
/** * Put opacity to your text * Returns text with opacity style. * @param $text Text you want to limit. * @param int $percent Percent of your text you want to show. * @return string */ function transparent($text, $percent = 100) { ... }
例如
echo $sqweb->transparent('one two three four', 50);
免费用户将看到
one two
为非付费用户稍后显示内容
/* * @param string $date When to publish the content on your site. It must be an ISO format(YYYY-MM-DD). * @param int $wait Number of days you want to wait before showing this content to free users. */ function waitToDisplay($date, $wait = 0) { ... }
示例
if ($sqweb->waitToDisplay('15/09/16', 'd/m/y', 2)) { // The content here will appear 2 days after the publication date for non paying users. } else { // Here you can put content that free users will see until the content above is available for all. }
限制免费用户每天可阅读的文章数量
例如,如果我想向免费用户显示5篇文章
if ($sqweb->limitArticle(5) === true) { echo "This is my article"; } else { echo "Sorry, you reached the limit of pages you can see today, come back tomorrow or subscribe to Multipass to get unlimited articles !"; }
选项
除非另有说明,否则这些选项默认为 false。您可以在配置中设置它们。
| 选项 | 描述 |
|---|---|
SQW_DEBUG |
在插件执行时向浏览器控制台输出各种消息。 |
SQW_DWIDE |
设置为 false 以仅启用当前域上的 SQweb。默认为 true。 |
SQW_LANG |
我们支持以下区域设置: en_US、en_GB 和 fr_FR。 |
SQW_AUTOLOGIN |
启用或禁用我们的自动登录功能。默认为 true。 |
已知问题
如果在初始部署后更改了 SQW_DWIDE 的值,由于他们的认证Cookie将不再有效,用户将需要重新登录。
故障排除
我没有看到 Multipass 按钮
请确保您已正确初始化 SDK 并标记您的页面。注意 include 和标记的位置。
我看到 Multipass 按钮,但不能登录
认证需要 Cookie,这需要完全限定域名。如果您在本地主机或 IP 地址上进行测试,认证将成功,但无法在您的浏览器中保存 Cookie。
贡献
我们欢迎贡献和改进。
编码风格
所有 PHP 代码必须符合PSR2 标准。
构建和发布
请参阅RELEASE.md。
错误和安全漏洞
如果您遇到任何错误或意外的行为,您可以通过 Github 上的错误跟踪器报告它,或者通过电子邮件发送到 hello@sqweb.com。我们将尽快与您联系。
如果您在 SQweb 或此插件中发现安全漏洞,请发送电子邮件至 hello@sqweb.com。所有安全漏洞都将得到及时处理。
许可证
版权 (C) 2015-2017 – SQweb
此程序是免费软件;您可以在自由软件基金会发布的 GNU 通用公共许可证的条款下重新分发和/或修改它;许可证的第 3 版或任何更高版本。
此程序是免费提供的,希望对您有用;但没有任何保证,甚至没有隐含的适销性保证或适用于特定目的的适用性保证。有关详细信息,请参阅 GNU 通用公共许可证。
您应该已随此程序收到一份 GNU 通用公共许可证的副本。如果没有,请参阅https://gnu.ac.cn/licenses/。