gourmet/social-meta

Adds Facebook Open Graph and Twitter Cards support to CakePHP 3.x

Installs: 4 988

Dependents: 0

Suggesters: 0

Security: 0

Stars: 24

Watchers: 7

Forks: 8

Open Issues: 2

Type:cakephp-plugin

v1.0.2 2016-07-05 04:09 UTC

This package is auto-updated.

Last update: 2024-03-28 00:01:35 UTC


README

Build Status Total Downloads License

Adds Facebook Open Graph and Twitter Cards support to CakePHP 3.

What's included?

  • CardHelper
  • OpenGraphHelper

Install

Using Composer:

composer require gourmet/social-meta:~1.0

You then need to load the plugin. In boostrap.php, something like:

\Cake\Core\Plugin::load('Gourmet/SocialMeta');

Usage

Include the helpers in your AppView:

public function initialize(array $config)
{
    $this->loadHelper('Gourmet/SocialMeta.Card');
    $this->loadHelper('Gourmet/SocialMeta.OpenGraph');
}

Keep in mind that certain configuration option are made available to you. For example:

public function initialize(array $config)
{
    $this->loadHelper('Gourmet/SocialMeta.Card', [
        'card' => 'photo',
        'tags' => ['twitter' => [
            'description' => 'Some default description'
        ]]
    ]);
    $this->loadHelper('Gourmet/SocialMeta.OpenGraph', [
        'app_id' => 'xxx'
    ]);
}

You are now ready to use the helpers in your view / layout.

For the Facebook OpenGraph, you will need to use the helper's html() method as it will include the defined namespaces:

echo $this->OpenGraph->html();

or by passing extra options and namespaces:

echo $this->OpenGraph->html(['lang' => 'en'], ['foo' => 'http://foo']);

You can then render the OpenGraph meta tags:

echo $this->OpenGraph->render();

which will render the most basic stuff using some black magic, or you could be much more verbose:

echo $this->OpenGraph
    ->setTitle('My Page')
    ->setDescription('One of my awesome pages')
    ->setImage('http://link.to/image', ['width' => '200', 'height' => '300'])
    ->render();

Other methods: setType, setUri, setLocale, setName, setImage, setVideo

For the Twitter Cards, something similar to that last code example:

echo $this->Card
    ->setTitle('My Page')
    ->setDescription('One of my awesome pages')
    ->setImage('http://link.to/image', ['width' => '200', 'height' => '300'])
    ->render();

Other methods: setCard, setUrl, setData1, setLabel1, setData2, setLabel2, setCreator, setSite, setPlayer

Patches & Features

  • Fork
  • Mod, fix
  • Test - this is important, so it's not unintentionally broken
  • Commit - do not mess with license, todo, version, etc. (if you do change any, bump them into commits of their own that I can ignore when I pull)
  • Pull request - bonus point for topic branches

Bugs & Feedback

http://github.com/gourmet/social-meta/issues

License

Copyright (c)2015, Jad Bitar and licensed under The MIT License.