aureka/disqus-bundle

Provides a few Twig filters to integrate Symfony with Disqus

Installs: 81

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 7

Forks: 2

Open Issues: 1

Type:symfony-bundle

0.0.2 2014-04-29 08:49 UTC

This package is not auto-updated.

Last update: 2024-03-16 14:03:56 UTC


README

Build Status

Provides Twig funtions to facilitate the integration of your Symfony site with Disqus. It also enables the Disqus Single Sign-On.

Functions

  • disqus(blogpost): Append the JavaScript for the disqus thread.
  • disqus_count(): Appends the JavaScript for the comment count.

Installation

Add the following line to your composer.json:

{
    "require": {
        "aureka/disqus-bundle" : "dev-master"
    }
}

Execute composer update.

Add the following line to your AppKernel.php.

public function registerBundles()
{
    $bundles = array(
        // your other bundles
        new Aureka\DisqusBundle\AurekaDisqusBundle(),
    );
}

Configuration

Add the following lines to your config.yml:

aureka_disqus:
    short_name: 'your_shortname' # used to identify the site in disqus

Basic usage

Make the class an implementation of the interface Disqusable:

# src/Acme/DemoBundle/Entity/BlogPost.php

namespace Acme\DemoBundle\Entity;

use Aureka\DisqusBundle\Model\Disqusable;

class BlogPost implements Disqusable
{

    // ... your other methods

    public function getDisqusId()
    {
        return $this->disqusId; // generate it on the fly or make it persisted.
    }
}

Use the twig filter in your template.

{# src/Acme/DemoBundle/Resources/views/BlogPost/show.html.twig #}

{# renders the thread and comment form #}
{{ disqus(blogpost) }}

{# adds the count for any disqus link #}
{{ disqus_count() }}

Single Sign-On

Disqus brings a Single Sign-On feature that lets your application authenticate its users in Disqus.

In order to do that you need to activate the add-on in your Disqus account, create an app for your website and add the following settings to config.yml:

aureka_disqus:
    short_name: 'your_shortname' # used to identify the site in disqus
    sso:
        enabled: true
        api_key: 'enter_your_api_key_here'
        private_key: 'enter_the application_private_key_here'

Now go to your User class and make it an implementation of DisqusUser:

# src/Acme/DemoBundle/Entity/User.php

namespace Acme\DemoBundle\Entity;

use Areka\DisqusBundle\Model\DisqusUser;

class User implements DisqusUser
{
    public function getDisqusId()
    {
        return $this->id; // Or a custom generated id
    }
}

For further information, please visit the official documentation.