mltpss/php-sdk

v1.7.7 2018-07-18 11:28 UTC

README

Build Status Latest Stable Version Dependency Status

需求

此 SDK 已在 PHP 5.5 及更高版本中进行了测试。

我们无法为早期版本提供官方支持。有关 PHP 分支的生命周期信息,请参阅此页面

安装

此包适用于自定义 PHP 网站 和高级集成。

如果您正在使用 WordPress,我们已为您简化了操作。直接从 WordPress.org 下载 SQweb 插件,或 查看源代码

推荐:Composer + dotenv

  1. 在项目根目录下,执行 composer require mltpss/php-sdk

  2. 在项目根目录下创建一个 .env 文件,或者如果您已经有了,则编辑它。

  3. .env 中粘贴以下配置

    SQW_ID_SITE=YOUR_WEBSITE_ID
    SQW_SITENAME=YOUR_WEBSITE_NAME
    SQW_LANG=en_US

    SQW_ID_SITE 替换为您的网站 ID,将 SQW_SITENAME 替换为要在大 Multipass 按钮上显示的名称.

有关其他设置,请参阅下面的 "选项"。

Composer + 手动配置

  1. 在项目根目录下,执行 composer require mltpss/php-sdk

  2. 通过构造函数传递配置来创建一个新的 SQweb 对象。 SQW_ID_SITESQW_SITENAME 必须指定

    require_once('vendor/autoload.php');
    $sqweb = new \SQweb\SQweb(['SQW_ID_SITE' => 1234, 'SQW_SITENAME' => 'SQweb']);

有关其他设置,请参阅下面的 "选项"。

手动

  1. 下载 SDK 的最新版本 并解压 到项目根目录下的 sqweb 文件夹中。

  2. 在项目根目录下创建一个名为 sqweb.config 的文件。此文件应在您刚才创建的 sqweb 文件夹的一级目录中,即

    |–- sqweb/
    |   |-- src/
    |   |   |-- init.php
    |   |   |-- SQweb.php
    |-- sqweb.config
    
  3. 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');

Example Buttons

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标准

构建和发布

RELEASE.md

错误和安全漏洞

如果您遇到任何错误或意外行为,您可以通过Github使用错误跟踪器报告,或通过电子邮件至hello@sqweb.com。我们将尽快与您联系。

如果您在SQweb或此插件中发现安全漏洞,请发送电子邮件至hello@sqweb.com。所有安全漏洞都将得到及时解决。

许可证

版权所有 (C) 2015-2017 – SQweb

此程序是自由软件;您可以根据自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它;许可证的第3版,或任何后续版本。

此程序是在希望它有用的希望下分发的,但没有任何保证;甚至没有关于适销性或特定用途的暗示保证。有关详细信息,请参阅GNU通用公共许可证。

您应该已经收到了此程序的GNU通用公共许可证副本。如果没有,请见https://gnu.ac.cn/licenses/