mltpss/laravel-sdk

Multipass package for Laravel users

v1.3.4 2018-04-16 14:14 UTC

README

Build Status Latest Stable Version Dependency Status

This package allows you to easily integrate SQweb on your Laravel powered website.

Requirements

This SDK has been tested with PHP 5.5 and greater.

We are unable to provide official support for earlier versions. For more information about end of life PHP branches, see this page.

Install

This package is intended for websites powered by Laravel, and advanced integrations.

If you're using WordPress, we've made it easy for you. Download the SQweb plugin directly from WordPress.org, or check out the source here.

Using Composer

  1. In your project root, execute composer require mltpss/laravel-sdk;

  2. Now, go to config/app.php and add this line to your providers array:

    Sqweb\Laravel_sdk\SqwebServiceProvider::class,
  3. Type php artisan vendor:publish at the root of your project to create the configuration file.

  4. In .env, paste the following configuration and set the variable SQW_ID_SITE with your website ID and the variable SQW_SITENAME with the name you want to show on the large multipass button.

    SQW_ID_SITE=YOUR_WEBSITE_ID
    SQW_SITENAME=YOUR_WEBSITE_NAME

For additional settings, see "Options" below.

Usage

The SDK is really simple to use. Here's how to:

1. Tagging your pages

This function outputs the SQweb JavaScript tag. Insert it before the closing </body> tag in your HTML.

{{ $sqweb->script() }}

If you previously had a SQweb JavaScript tag, make sure to remove it to avoid any conflicts.

2. Checking the credits of your subscribers

This function checks if the user has credits, so that you can disable ads and/or unlock premium content.

Use it like this:

@if ($sqweb->checkCredits())
    // CONTENT
@else
    // ADS
@endif

3. a) Showing the Multipass button

Finally, use this code to get the Multipass button on your pages:

{{ $sqweb->button() }}

We have differents sizes for the button, to use them, pass a string to the function e.g:

{{ $sqweb->button('tiny') }}
{{ $sqweb->button('slim') }}
{{ $sqweb->button('large') }}

Example Buttons

3. b) Customizing the Multipass button

If you want to customize our different type of button, put the following in your .env of in the sqweb config file. For instance: SQW_LOGIN=Hello world Will show Hello world instead of Premium with Multipass on the regular button for logged out visitors.

4. More functions

Display a "Support us" message for your users

/**
 * Display a support block.
 */

function supportBlock() {   }
``

For instance:

```php
{!! $sqweb->supportBlock !!}

Will display the block.

Display a locking div for your users

/**
 * Display a locking block.
 */

function lockingBlock() {   }
``

For instance:

```php
{!! $sqweb->lockingBlock !!}

We recommand you to use it in combination with our filter functions, like this:

@if($sqweb->waitToDisplay('2016-09-15', 2))
    // The content here will appear the 2016-09-17, 2 days after the publication date for non paying users.
@else
    // Here you can put content that free users will see before the content above is available for all.
    // {!! $sqweb->lockingBlock !!}
@end

Display only a part of your content to non premium users

/**
 * Put opacity to your text
 * Returns the text with opcaity style.
 * @param text, which is your text.
 * @param int percent which is the percent of your text you want to show.
 * @return string
 */
    public function transparent($text, $percent = 100) { ... }

Example:

{!! $sqweb->transparent('one two three four', 50) !!}

Will display for free users:

one two

Display your content later for non paying users

    /**
     * Display your premium content at a later date to non-paying users.
     * @param  string  $date  When to publish the content on your site. It must be an ISO format(YYYY-MM-DD).
     * @param  integer $wait  Days to wait before showing this content to free users.
     * @return bool
     */
    public function waitToDisplay($date, $wait = 0) { ... }

Example:

@if($sqweb->waitToDisplay('2016-09-15', 2))
    // The content here will appear the 2016-09-17, 2 days after the publication date for non paying users.
@else
    // Here you can put content that free users will see before the content above is available for all.
@end

Limit the number of articles free users can read per day

    /**
     * Limit the number of articles free users can read per day.
     * @param $limitation int The number of articles a free user can see.
     * @return bool
     */
    public function limitArticle($limitation = 0) { ... }

Example if I want to display only 5 articles to free users:

@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 !";
@endif

Options

Unless otherwise noted, these options default to false. You can set them in your .env file.

Contributing

We welcome contributions and improvements.

Coding Style

All PHP code must conform to the PSR2 Standard.

Builds and Releases

See RELEASE.md.

Bugs and Security Vulnerabilities

If you encounter any bug or unexpected behavior, you can either report it on Github using the bug tracker, or via email at hello@sqweb.com. We will be in touch as soon as possible.

If you discover a security vulnerability within SQweb or this plugin, please e-mail security@sqweb.com. Vulnerabilities will be promptly addressed.

License

Copyright (C) 2018 – SQweb

This program is free software ; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation ; either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY ; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.