Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
taskonsite-архив-перенесен
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Packages
Packages
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Dmitry Korolev
taskonsite-архив-перенесен
Commits
73c5f333
Commit
73c5f333
authored
Feb 11, 2016
by
Олег Гиммельшпах
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of git.task-on.com:ktask/task-on.com
parents
4cc2187e
b7c2d1fc
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
58 additions
and
0 deletions
+58
-0
common/components/UnisenderAPI.php
common/components/UnisenderAPI.php
+41
-0
common/modules/triggers/components/conditions/conditions/CheckEmailToOpening.php
.../components/conditions/conditions/CheckEmailToOpening.php
+12
-0
common/modules/triggers/components/conditions/vendor/ConditionBase.php
...s/triggers/components/conditions/vendor/ConditionBase.php
+5
-0
No files found.
common/components/UnisenderAPI.php
View file @
73c5f333
<?php
<?php
namespace
common\components
;
namespace
common\components
;
use
common\modules\triggers\components\conditions\vendor\ConditionBase
;
use
yii\helpers\Json
;
use
yii\helpers\Json
;
/**
/**
...
@@ -39,6 +40,11 @@ class UnisenderAPI {
...
@@ -39,6 +40,11 @@ class UnisenderAPI {
*/
*/
protected
$visitedLinks
=
[];
protected
$visitedLinks
=
[];
/**
* @var array
*/
protected
$statuses
=
[];
/**
/**
* @param string $ApiKey
* @param string $ApiKey
* @param string $Encoding
* @param string $Encoding
...
@@ -94,6 +100,36 @@ class UnisenderAPI {
...
@@ -94,6 +100,36 @@ class UnisenderAPI {
);
);
}
}
/**
* @param $message_id
* @return array
*/
public
function
getMessageStatuses
(
$message_id
){
$this
->
statuses
=
$this
->
callMethod
(
'checkEmail'
,
[
'email_id'
=>
$message_id
]
);
$this
->
statuses
=
Json
::
decode
(
$this
->
statuses
);
return
$this
->
statuses
;
}
/**
* @return bool
*/
public
function
isReaded
(){
if
(
array_key_exists
(
'result'
,
$this
->
statuses
)
&&
array_key_exists
(
'status'
,
$this
->
statuses
[
'result'
]))
{
if
(
$this
->
statuses
[
'result'
][
'status'
]
==
ConditionBase
::
MESSAGE_READ
)
return
true
;
}
return
false
;
}
/**
* @param $campaign_id
* @return mixed
*/
public
function
getVisitedLinks
(
$campaign_id
){
public
function
getVisitedLinks
(
$campaign_id
){
$this
->
visitedLinks
=
$this
->
callMethod
(
$this
->
visitedLinks
=
$this
->
callMethod
(
'getVisitedLinks'
,
'getVisitedLinks'
,
...
@@ -105,6 +141,11 @@ class UnisenderAPI {
...
@@ -105,6 +141,11 @@ class UnisenderAPI {
return
$this
->
visitedLinks
;
return
$this
->
visitedLinks
;
}
}
/**
* @param $email
* @param $link
* @return bool
*/
public
function
linkIsVisited
(
$email
,
$link
)
{
public
function
linkIsVisited
(
$email
,
$link
)
{
if
(
array_key_exists
(
'result'
,
$this
->
visitedLinks
)
&&
array_key_exists
(
'data'
,
$this
->
visitedLinks
[
'result'
]))
{
if
(
array_key_exists
(
'result'
,
$this
->
visitedLinks
)
&&
array_key_exists
(
'data'
,
$this
->
visitedLinks
[
'result'
]))
{
foreach
(
$this
->
visitedLinks
[
'result'
][
'data'
]
as
$transition
)
{
foreach
(
$this
->
visitedLinks
[
'result'
][
'data'
]
as
$transition
)
{
...
...
common/modules/triggers/components/conditions/conditions/CheckEmailToOpening.php
View file @
73c5f333
<?php
<?php
namespace
common\modules\triggers\components\conditions\conditions
;
namespace
common\modules\triggers\components\conditions\conditions
;
use
common\components\UnisenderAPI
;
use
common\modules\triggers\components\conditions\vendor\ConditionBase
;
use
common\modules\triggers\components\conditions\vendor\ConditionBase
;
use
common\modules\triggers\components\conditions\vendor\ConditionInterface
;
use
common\modules\triggers\components\conditions\vendor\ConditionInterface
;
...
@@ -19,7 +20,18 @@ class CheckEmailToOpening extends ConditionBase implements ConditionInterface {
...
@@ -19,7 +20,18 @@ class CheckEmailToOpening extends ConditionBase implements ConditionInterface {
return
parent
::
init
(
$conditionName
);
return
parent
::
init
(
$conditionName
);
}
}
/**
* @param $message
* @return bool
*/
public
function
check
(
$message
){
public
function
check
(
$message
){
if
(
!
is_null
(
$message
))
{
// Создаем объект унисендера
$sender
=
new
UnisenderAPI
();
// Делаем запрос на получение статуса сообщения
$sender
->
getMessageStatuses
(
$message
->
message_id
);
return
$sender
->
isReaded
();
}
return
true
;
return
true
;
}
}
}
}
\ No newline at end of file
common/modules/triggers/components/conditions/vendor/ConditionBase.php
View file @
73c5f333
...
@@ -11,6 +11,11 @@ class ConditionBase {
...
@@ -11,6 +11,11 @@ class ConditionBase {
public
$config
=
[];
public
$config
=
[];
const
MESSAGE_READ
=
'ok_read'
;
const
MESSAGE_LINK_VISITED
=
'ok_link_visited'
;
const
MESSAGE_UNSUBSCRIBED
=
'ok_unsubscribed'
;
const
MESSAGE_SPAM_FOLDER
=
'ok_spam_folder'
;
/**
/**
* @param string $conditionName
* @param string $conditionName
* @return mixed
* @return mixed
...
...
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