Commit 96456e98 by semenov

Merge branch 'master-2' into 'master'

Master 2

See merge request !2
parents de18927b dc62f108
......@@ -26,7 +26,7 @@ php yii cms/update
```php
<?= \skeeks\cms\vk\comments\YaShareWidget::widget([
<?= \skeeks\cms\yandex\share\widget\YaShareWidget::widget([
'namespace' => 'YaShareWidget-main',
'apiId' => 4982033
]); ?>
......
<?php
/**
* @author Semenov Alexander <semenov@skeeks.com>
* @link http://skeeks.com/
* @copyright 2010 SkeekS (СкикС)
* @date 15.03.2015
*/
namespace skeeks\cms\yandex\share\widget;
use yii\web\AssetBundle;
/**
* Class YaShAsset
* @package skeeks\cms\assets
*/
class YaShAsset extends AssetBundle
{
public $sourcePath = '@skeeks/yandex/share/widget';
public $js = [
'//yastatic.net/share/share.js'
];
}
<?php
/**
* @author Semenov Alexander <semenov@skeeks.com>
* @link http://skeeks.com/
* @copyright 2010 SkeekS (СкикС)
* @date 03.07.2015
*/
namespace skeeks\cms\yandex\share\widget;
use skeeks\cms\base\WidgetRenderable;
use skeeks\cms\components\Cms;
use yii\helpers\ArrayHelper;
use yii\helpers\Json;
/**
* @property string $jsonOptions
*
* Class YaShareWidget
* @package skeeks\cms\yandex\share\widget
*/
class YaShareWidget extends WidgetRenderable
{
const SERVICE_VK = 'vkontakte';
const SERVICE_FB = 'facebook';
const SERVICE_TWITTER = 'twitter';
const SERVICE_OK = 'odnoklassniki';
const SERVICE_MOIMIR = 'moimir';
const SERVICE_LJ = 'lj';
const SERVICE_FRIENDFEED = 'friendfeed';
const SERVICE_MOIKRUG = 'moikrug';
const SERVICE_GPLUS = 'gplus';
const SERVICE_SURFINGBIRD = 'surfingbird';
const TYPE_BUTTON = 'button';
const TYPE_SMALL = 'small';
const TYPE_LINK = 'link';
const TYPE_ICON = 'icon';
const TYPE_NONE = 'none';
/**
* @var array
*/
static public $possibleTypes = [
self::TYPE_BUTTON => 'Кнопка',
self::TYPE_SMALL => 'Счетчики',
self::TYPE_LINK => 'Ссылка',
self::TYPE_ICON => 'Иконки и меню',
self::TYPE_NONE => 'Только иконки',
];
/**
* @var array
*/
static public $possibleService = [
self::SERVICE_VK => 'Вконтакте',
self::SERVICE_FB => 'Facebook',
self::SERVICE_TWITTER => 'Twitter',
self::SERVICE_OK => 'Одноклассники',
self::SERVICE_MOIMIR => 'МойМир',
self::SERVICE_LJ => 'Livejournal',
self::SERVICE_FRIENDFEED => 'Friendfeed',
self::SERVICE_MOIKRUG => 'Мой круг',
self::SERVICE_GPLUS => 'Google+',
self::SERVICE_SURFINGBIRD => 'Surfingbird',
];
/**
* @var string
*/
public $typeView = self::TYPE_BUTTON;
/**
* @var array
*/
public $services = [
self::SERVICE_VK,
self::SERVICE_FB,
self::SERVICE_TWITTER,
self::SERVICE_OK,
];
static public function descriptorConfig()
{
return array_merge(parent::descriptorConfig(), [
'name' => 'Виджет блока "Поделиться"'
]);
}
/**
* Файл с формой настроек, по умолчанию
*
* @return string
*/
public function getConfigFormFile()
{
$class = new \ReflectionClass($this->className());
return dirname($class->getFileName()) . DIRECTORY_SEPARATOR . 'views/_settingsForm.php';
}
public function attributeLabels()
{
return array_merge(parent::attributeLabels(),
[
'services' => 'Набор сервисов',
'typeView' => 'Внешний вид блока',
]);
}
public function rules()
{
return ArrayHelper::merge(parent::rules(),
[
[['services'], 'safe'],
[['services'], 'required'],
[['typeView'], 'string'],
[['typeView'], 'required']
]);
}
/**
* @return string
*/
public function getJsonOptions()
{
return Json::encode([
'services' => implode(',', (array) $this->services),
'typeView' => (array) $this->typeView,
]);
}
/**
* @return string
*/
protected function _run()
{
YaShAsset::register($this->view);
return parent::_run();
}
}
\ No newline at end of file
<?php
/**
* @author Semenov Alexander <semenov@skeeks.com>
* @link http://skeeks.com/
* @copyright 2010 SkeekS (СкикС)
* @date 27.05.2015
*/
/* @var $this yii\web\View */
use skeeks\cms\modules\admin\widgets\form\ActiveFormUseTab as ActiveForm;
?>
<?php $form = ActiveForm::begin(); ?>
<?= $form->fieldSet('Отображение'); ?>
<?= $form->field($model, 'viewFile')->textInput(); ?>
<?= $form->fieldSetEnd(); ?>
<?= $form->fieldSet('Параметр виджета'); ?>
<?= $form->field($model, 'yashareQuickServices')->checkboxList(\skeeks\cms\yandex\share\widget\YaShareWidget::$possibleService)->hint('Выберите сервисы, иконки которых будут стоять рядом с кнопкой:'); ?>
<?= $form->field($model, 'yashareType')->radioList(\skeeks\cms\yandex\share\widget\YaShareWidget::$possibleType); ?>
<?= $form->fieldSetEnd(); ?>
<?= $form->buttonsStandart($model) ?>
<?php ActiveForm::end(); ?>
\ No newline at end of file
<?php
/**
* @author Semenov Alexander <semenov@skeeks.com>
* @link http://skeeks.com/
* @copyright 2010 SkeekS (СкикС)
* @date 03.07.2015
*/
/* @var $this yii\web\View */
/* @var $widget \skeeks\cms\yandex\share\widget\YaShareWidget */
?>
<?
$this->registerJs(<<<JS
JS
);
?>
<div class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="<?= $widget->typeView; ?>" data-yashareQuickServices="<?= $widget->services; ?>"></div>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment