mltpss / php-sdk
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: 2024-09-15 05:04:51 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 的页面上初始化 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而不是Premium with Multipass,供未登录访客在常规按钮上查看。
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_DWIDE的值,由于他们的认证cookie不再有效,您的用户将需要重新登录。
故障排除
我没有看到Multipass按钮
请确保您已正确初始化SDK和标记您的页面。注意包含和标记的位置。
我可以看到Multipass按钮,但无法登录
认证需要cookies,这些cookies需要完全限定的域名。如果您在localhost或IP地址上测试,认证将成功,但无法在您的浏览器中保存cookie。
贡献
我们欢迎贡献和改进。
编码风格
所有PHP代码必须遵守PSR2标准。
构建和发布
错误和安全漏洞
如果您遇到任何错误或意外行为,您可以通过Github使用错误跟踪器报告,或通过电子邮件至hello@sqweb.com。我们将尽快与您联系。
如果您在SQweb或此插件中发现安全漏洞,请发送电子邮件至hello@sqweb.com。所有安全漏洞都将得到及时解决。
许可证
版权所有 (C) 2015-2017 – SQweb
此程序是自由软件;您可以根据自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它;许可证的第3版,或任何后续版本。
此程序是在希望它有用的希望下分发的,但没有任何保证;甚至没有关于适销性或特定用途的暗示保证。有关详细信息,请参阅GNU通用公共许可证。
您应该已经收到了此程序的GNU通用公共许可证副本。如果没有,请见https://gnu.ac.cn/licenses/。