Install SocialLinks using Composer
composer require rezozero/social-links
Configure your SocialLinks
instance with your data source and some
output settings.
// Construct a new SocialLinks
$share = new \RZ\SocialLinks\SocialLinks(array(
'url' => 'http://www.rezo-zero.com',
'title' => 'REZO ZERO website homepage',
// Optional image source url for pinterest. must be at least 200px by 200px, if you intent to use for facebook
'imageUrl' => 'http://www.rezo-zero.com/templates/rezo-zero/img/apple-icon.png',
// Optional status for overriding title for twitter, whatsapp and emails body
'status' => 'Hey! Look at this awesome website.'
));
// Set link class prefix
$share->setClassPrefix('social-link');
// Set social icons class prefix
// Use fa for Font Awesome or an
// other for a custom icon set.
$share->setIconPrefix('fa');
// Optional:
// Set link additional classes, for example
// to add "btn" bootstrap classes.
$share->setLinkClasses('btn btn-default');
echo $share->getUrl('twitter');
// https://twitter.com/intent/tweet?text=Hey%21%20Look%20at%20this%20awesome%20website.%20%E2%80%94%20http%3A%2F%2Fwww.rezo-zero.com
$share->setClassPrefix('social-link');
$share->setIconPrefix('fa');
echo $share->getLink('facebook', $share->getIcon('facebook'));
// <a class="social-link social-link-facebook" target="_blank" rel="nofollow" href="https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.rezo-zero.com"><i class="social-link-icon fa fa-facebook-official"></i><span class="social-link-name">Facebook</span></a>
$share->setClassPrefix('social-link');
$share->setIconPrefix('fa');
echo $share->getLink('facebook', $share->getUseSVG('facebook'));
// <a class="social-link social-link-facebook" target="_blank" rel="nofollow" href="https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.rezo-zero.com"><svg class="social-link-icon fa fa-facebook-official"><use xlink:href="#fa-facebook"></use></svg><span class="social-link-name">Facebook</span></a>
Without icons:
echo $share->getLinks(array('facebook', 'twitter', 'linked-in'));
With <i>
icons:
echo $share->getLinksWithIcon(array('facebook', 'twitter', 'linked-in'));
With <svg>
icons:
echo $share->getLinksWithSVG(array('facebook', 'twitter', 'linked-in'));
You also can choose a not empty separator, i.e. a dash:
echo $share->getLinksWithIcon(array('facebook', 'twitter', 'linked-in'), ' - ');
- delicious
- digg
- evernote
- facebook (sharer by default, or /dialog/feed if you provide a
facebookAppId
), if you use default font-awesome icon prefix, icon class will befacebook-official
. It’s stillfacebook
for SVG icons or non font-awesome prefix. - friendfeed
- google-plus
- linked-in
- newsvine
- scoop-it
- slashdot
- stumbleupon
- tumblr
$twig->addExtension(new \RZ\SocialLinks\Twig\SocialLinksExtension());
SocialLinksExtension
Twig extension introduces 3 new filters to be able
to generate your social links without any PHP code.
social_links
icon_social_links
svg_social_links
tweet_links
First you’ll need to gather your social data in an associative array or
simply set
a string variable (it will be used as the URL).
{% set social_data = {
'url': 'http://www.rezo-zero.com',
'title': 'REZO ZERO website homepage',
} %}
{# or #}
{% set social_data = 'http://www.rezo-zero.com' %}
Then, you can use one of the 3 SocialLinks filters with or without optional arguments. Selected networks can be set using an array or a simple string.
<nav class="social-links">
{{ social_data|social_links(['facebook', 'twitter']) }}
</nav>
<nav class="social-links">
{{ social_data|social_links('twitter') }}
</nav>
<nav class="social-links">
{{ social_data|icon_social_links(
['facebook', 'twitter'],
'icon-prefix',
'class-prefix',
'link-classes',
'Share on %s'
) }}
</nav>
Bonus: tweet_links
is a Twig filter to parse your tweets contents.
We introduced shareActionLabel
argument to provide title
for accessibility on your social links. You can override it in your own Twig template to change the title
and translate it:
<nav class="social-links">
{{ social_data|icon_social_links(
['facebook', 'twitter'],
'icon-prefix',
'class-prefix',
'link-classes',
('share_on_%s'|trans)
) }}
</nav>