Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
skeeks
/
yandex-share-widget
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Merge Requests
0
Members
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
fd4be926
authored
Jul 16, 2015
by
Неля
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
90266 yii2-cms
parent
de18927b
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
211 additions
and
0 deletions
+211
-0
YaShAsset.php
+21
-0
YaShareWidget.php
+146
-0
views/_settingsForm.php
+24
-0
views/default.php
+20
-0
No files found.
YaShAsset.php
0 → 100644
View file @
fd4be926
<?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 VkAsset
* @package skeeks\cms\assets
*/
class
YaShAsset
extends
AssetBundle
{
public
$sourcePath
=
'@skeeks/yandex/share/widget'
;
public
$js
=
[
'//yastatic.net/share/share.js'
];
}
YaShareWidget.php
0 → 100644
View file @
fd4be926
<?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
views/_settingsForm.php
0 → 100644
View file @
fd4be926
<?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
views/default.php
0 → 100644
View file @
fd4be926
<?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>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment