black-lamp / yii2-socialshare
Social share widget for the Yii2 Framework
Installs: 784
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 9
Forks: 1
Open Issues: 0
Type:yii2-extension
Requires
- yiisoft/yii2: >=2.0.4
README
This widget adds share links for social networks.
It supports from the box
- VK
- Google+
- Telegram
- Viber
- Gmail
Installation
Run command
composer require black-lamp/yii2-socialshare
or add
"black-lamp/yii2-socialshare": "1.*.*"
to the require section of your composer.json.
Add 'SocialShare' component to application config
'components' => [ // ... 'socialShare' => [ 'class' => bl\socialShare\SocialShare::className(), 'defaultIcons' => true, 'attributes' => [ 'class' => 'social-btn' ], 'networks' => [ 'facebook' => [ 'class' => bl\socialShare\classes\Facebook::className(), 'label' => 'Facebook' ], 'twitter' => [ 'class' => bl\socialShare\classes\Twitter::className(), 'label' => 'Twitter', // custom option for Twitter class 'account' => 'twitterAccount' ], 'googlePlus' => [ 'class' => bl\socialShare\classes\GooglePlus::className(), 'label' => 'Google+' ], 'vk' => [ 'class' => bl\socialShare\classes\Vkontakte::className(), 'label' => 'vk' ], // other social networks ... ] ], ]
In this component you need to add and configure social network classes
Component configuration properties
Social network class configuration properties
Using
You should use the widget for adding the share links on page
<?= \bl\socialShare\widgets\SocialShareWidget::widget([ 'componentId' => 'socialShare', 'url' => Url::toRoute(['site/index'], true), 'title' => 'Black Lamp - digital agancy', 'description' => 'Black Lamp provides a comprehensive range of services for development...', 'image' => Url::toRoute(['/logo.png'], true) ]) ?>
Widget configuration properties
What if i want to add a new social network?
You must create class and extend it from bl\socialShare\base\SocialNetwork abstract class
use bl\socialShare\base\SocialNetwork; class LinkedIn extends SocialNetwork { }
and implement the method getLink()
class LinkedIn extends bl\socialShare\base\SocialNetwork { /** * @inheritdoc */ public function getLink($url, $title, $description, $image, $component) { } }
this method must initialize route to the social network
and return initLink()
method with $component
argument
/** * @inheritdoc */ public function getLink($url, $title, $description, $image, $component) { $this->_route = "https://www.linkedin.com/shareArticle?mini=true" ."&url=$url" ."&title=$title" ."&summary=$description"; return $this->initLink($component); }
Other extensions
yii2-social-networks - this widget adds links to social networks