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
Requires
- symfony/framework-bundle: >=2.3
- symfony/twig-bundle: >=2.3
- twig/extensions: *
Requires (Dev)
- phpunit/phpunit: *
- symfony/browser-kit: >=2.3,<2.4-dev
This package is not auto-updated.
Last update: 2024-11-09 17:19:30 UTC
README
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.