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
ba37bf6b
Commit
ba37bf6b
authored
Feb 25, 2016
by
Олег Гиммельшпах
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of git.task-on.com:ktask/task-on.com
parents
d795cec6
98e8f0b8
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
88 additions
and
95 deletions
+88
-95
common/modules/triggers/models/TriggerSchedule.php
common/modules/triggers/models/TriggerSchedule.php
+1
-1
common/modules/triggers/models/TriggerTrigger.php
common/modules/triggers/models/TriggerTrigger.php
+28
-10
common/modules/triggers/views/trigger-admin/testing.php
common/modules/triggers/views/trigger-admin/testing.php
+29
-28
common/modules/users/controllers/UserController.php
common/modules/users/controllers/UserController.php
+7
-8
common/modules/users/models/User.php
common/modules/users/models/User.php
+23
-48
No files found.
common/modules/triggers/models/TriggerSchedule.php
View file @
ba37bf6b
...
@@ -34,7 +34,7 @@ class TriggerSchedule extends \yii\db\ActiveRecord
...
@@ -34,7 +34,7 @@ class TriggerSchedule extends \yii\db\ActiveRecord
public
function
rules
()
public
function
rules
()
{
{
return
[
return
[
[[
'sended'
,
'checked'
,
'message_id'
,
'list_id'
,
'campaign_id'
],
'integer'
],
[[
'sended'
,
'checked'
,
/*'message_id',*/
'list_id'
,
'campaign_id'
],
'integer'
],
[[
'message'
,
'email'
],
'required'
],
[[
'message'
,
'email'
],
'required'
],
[[
'message'
],
'string'
],
[[
'message'
],
'string'
],
[[
'time'
,
'date_create'
],
'safe'
],
[[
'time'
,
'date_create'
],
'safe'
],
...
...
common/modules/triggers/models/TriggerTrigger.php
View file @
ba37bf6b
...
@@ -209,53 +209,71 @@ class TriggerTrigger extends \common\components\ActiveRecordModel
...
@@ -209,53 +209,71 @@ class TriggerTrigger extends \common\components\ActiveRecordModel
/**
/**
* Тут выполняем то, что произойдет когда триггер сработает
* Тут выполняем то, что произойдет когда триггер сработает
* @param null $message
*
* @param array $params
* @return string
*/
*/
public
function
initAction
(
$message
=
null
){
public
function
initAction
(
$params
=
array
()){
$email
=
(
!
Yii
::
$app
->
user
->
isGuest
)
?
Yii
::
$app
->
user
->
identity
->
email
:
null
;
if
(
$email
===
null
&&
array_key_exists
(
'email'
,
$params
))
$email
=
$params
[
'email'
];
else
return
'Email not found'
;
/** @var \DateTime $time_now */
/** @var \DateTime $time_now */
$time_now
=
new
\DateTime
();
$time_now
=
new
\DateTime
();
/** @var MessageTemplate $templateModel */
/** @var MessageTemplate $templateModel */
$templateModel
=
MessageTemplate
::
findOne
(
$this
->
message_template_id
);
$templateModel
=
MessageTemplate
::
findOne
(
$this
->
message_template_id
);
/** @var Templates $template */
/** @var Templates $template */
$template
=
new
Templates
(
$this
->
message_template_id
);
$template
=
new
Templates
(
$this
->
message_template_id
);
$email
=
$this
->
email
;
$sender
=
new
UnisenderAPI
();
$sender
=
new
UnisenderAPI
();
// Create the send list
// Create the send list
$newList
=
$sender
->
createList
();
$newList
=
$sender
->
createList
();
$newListObject
=
Json
::
decode
(
$newList
);
$newListObject
=
Json
::
decode
(
$newList
);
if
(
array_key_exists
(
'result'
,
$newListObject
)
&&
array_key_exists
(
'id'
,
$newListObject
[
'result'
]))
{
if
(
array_key_exists
(
'result'
,
$newListObject
)
&&
is_array
(
$newListObject
[
'result'
])
&&
array_key_exists
(
'id'
,
$newListObject
[
'result'
]))
{
$newListId
=
$newListObject
[
'result'
][
'id'
];
$newListId
=
$newListObject
[
'result'
][
'id'
];
// Subscribe user to new List
// Subscribe user to new List
$sender
->
subscribe
([
'list_ids'
=>
$newListId
,
'fields[email]'
=>
$email
,
'double_optin'
=>
1
]);
$sender
->
subscribe
([
'list_ids'
=>
$newListId
,
'fields[email]'
=>
$email
,
'double_optin'
=>
1
]);
// Create new message
// Create new message
$newMessage
=
$sender
->
createEmailMessage
(
$this
->
name
,
$email
,
$templateModel
->
subject
,
$template
->
getTemplate
(),
$newListId
);
$newMessage
=
$sender
->
createEmailMessage
(
'Школа аналитики "Арт Проект"'
,
'subscribe@task-on.com'
,
$templateModel
->
subject
,
$template
->
getTemplate
(),
$newListId
);
// Decode result
// Decode result
$newMessageObject
=
Json
::
decode
(
$newMessage
);
$newMessageObject
=
Json
::
decode
(
$newMessage
);
if
(
array_key_exists
(
'result'
,
$newMessageObject
)
&&
array_key_exists
(
'message_id'
,
$newMessageObject
[
'result'
]))
{
if
(
array_key_exists
(
'result'
,
$newMessageObject
)
&&
is_array
(
$newMessageObject
[
'result'
])
&&
array_key_exists
(
'message_id'
,
$newMessageObject
[
'result'
]))
{
// Get the message ID
// Get the message ID
$newMessageId
=
$newMessageObject
[
'result'
][
'message_id'
];
$newMessageId
=
$newMessageObject
[
'result'
][
'message_id'
];
// Create new campaign
// Create new campaign
$newCampaign
=
$sender
->
createCampaign
(
$newMessageId
);
$newCampaign
=
$sender
->
createCampaign
(
$newMessageId
);
// Parse the result
// Parse the result
$newCampaignObject
=
Json
::
decode
(
$newCampaign
);
$newCampaignObject
=
Json
::
decode
(
$newCampaign
);
if
(
array_key_exists
(
'result'
,
$newCampaignObject
)
&&
array_key_exists
(
'campaign_id'
,
$newCampaignObject
[
'result'
]))
{
if
(
array_key_exists
(
'result'
,
$newCampaignObject
)
&&
is_array
(
$newCampaignObject
[
'result'
])
&&
array_key_exists
(
'campaign_id'
,
$newCampaignObject
[
'result'
]))
{
$newCampaignId
=
$newCampaignObject
[
'result'
][
'campaign_id'
];
$newCampaignId
=
$newCampaignObject
[
'result'
][
'campaign_id'
];
$schedule
=
new
TriggerSchedule
();
$schedule
=
new
TriggerSchedule
();
$schedule
->
sended
=
1
;
$schedule
->
sended
=
1
;
$schedule
->
checked
=
0
;
$schedule
->
checked
=
0
;
$schedule
->
message_id
=
$newMessageId
;
//
$schedule->message_id=$newMessageId;
$schedule
->
message
=
$template
->
getTemplate
();
$schedule
->
message
=
$template
->
getTemplate
();
$schedule
->
email
=
$email
;
$schedule
->
email
=
$email
;
$schedule
->
time
=
$time_now
->
format
(
'Y-m-d H:i:s'
);
$schedule
->
time
=
$time_now
->
format
(
'Y-m-d H:i:s'
);
$schedule
->
date_create
=
$time_now
->
format
(
'Y-m-d H:i:s'
);
$schedule
->
date_create
=
$time_now
->
format
(
'Y-m-d H:i:s'
);
$schedule
->
list_id
=
$newListId
;
$schedule
->
list_id
=
$newListId
;
$schedule
->
campaign_id
=
$newCampaignId
;
$schedule
->
campaign_id
=
$newCampaignId
;
if
(
!
$schedule
->
save
())
{
if
(
$schedule
->
save
())
{
echo
'Письмо не было отправлено'
;
return
true
;
}
else
{
return
(
current
(
current
(
$schedule
->
getErrors
())));
}
}
}
else
{
$error
=
(
array_key_exists
(
'error'
,
$newCampaignObject
))
?
$newCampaignObject
[
'error'
]
.
' (createCampaign)'
:
'Неизвестная ошибка (CreateCampaign)'
;
return
$error
;
}
}
}
else
{
$error
=
(
array_key_exists
(
'error'
,
$newMessageObject
))
?
$newMessageObject
[
'error'
]
.
' (createMessage)'
:
'Неизвестная ошибка (CreateMessage)'
;
return
$error
;
}
}
}
else
{
$error
=
(
array_key_exists
(
'error'
,
$newListObject
))
?
$newListObject
[
'error'
]
.
' (createList)'
:
'Неизвестная ошибка (CreateList)'
;
return
$error
;
}
}
}
}
}
}
common/modules/triggers/views/trigger-admin/testing.php
View file @
ba37bf6b
...
@@ -5,32 +5,33 @@ use \yii\helpers\Json;
...
@@ -5,32 +5,33 @@ use \yii\helpers\Json;
$email
=
'bystrov@kupitsite.ru'
;
$email
=
'bystrov@kupitsite.ru'
;
$sender
=
new
UnisenderAPI
();
$sender
=
new
UnisenderAPI
();
$sender
->
validateSender
(
'subscribe@task-on.com'
);
// Create the send list
// Create the send list
$newList
=
$sender
->
createList
();
//$newList = $sender->createList();
$newListObject
=
Json
::
decode
(
$newList
);
//$newListObject=Json::decode($newList);
if
(
array_key_exists
(
'result'
,
$newListObject
)
&&
array_key_exists
(
'id'
,
$newListObject
[
'result'
]))
{
//if (array_key_exists('result', $newListObject) && array_key_exists('id', $newListObject['result'])) {
$newListId
=
$newListObject
[
'result'
][
'id'
];
// $newListId=$newListObject['result']['id'];
// Subscribe user to new List
// // Subscribe user to new List
$subscribe
=
$sender
->
subscribe
([
'list_ids'
=>
$newListId
,
'fields[email]'
=>
$email
,
'double_optin'
=>
1
]);
// $subscribe = $sender->subscribe(['list_ids' => $newListId, 'fields[email]' => $email, 'double_optin' => 1]);
// Create new message
// // Create new message
$newMessage
=
$sender
->
createEmailMessage
(
'bystrov'
,
$email
,
'Testing Subject'
,
'Testing Body <br><a href="http://www.google.com/">Testing link</a><br><a href="{{_UnsubscribeUrl}}">Отписаться</a>'
,
$newListId
);
// $newMessage=$sender->createEmailMessage('bystrov', $email, 'Testing Subject', 'Testing Body <br><a href="http://www.google.com/">Testing link</a><br><a href="{{_UnsubscribeUrl}}">Отписаться</a>', $newListId);
// Decode result
// // Decode result
$newMessageObject
=
Json
::
decode
(
$newMessage
);
// $newMessageObject=Json::decode($newMessage);
if
(
array_key_exists
(
'result'
,
$newMessageObject
)
&&
array_key_exists
(
'message_id'
,
$newMessageObject
[
'result'
]))
{
// if (array_key_exists('result', $newMessageObject) && array_key_exists('message_id', $newMessageObject['result'])) {
// Get the message ID
// // Get the message ID
$newMessageId
=
$newMessageObject
[
'result'
][
'message_id'
];
// $newMessageId=$newMessageObject['result']['message_id'];
// Create new campaign
// // Create new campaign
$newCampaign
=
$sender
->
createCampaign
(
$newMessageId
);
// $newCampaign = $sender->createCampaign($newMessageId);
// Parse the result
// // Parse the result
$newCampaignObject
=
Json
::
decode
(
$newCampaign
);
// $newCampaignObject = Json::decode($newCampaign);
if
(
array_key_exists
(
'result'
,
$newCampaignObject
)
&&
array_key_exists
(
'campaign_id'
,
$newCampaignObject
[
'result'
]))
{
// if (array_key_exists('result', $newCampaignObject) && array_key_exists('campaign_id', $newCampaignObject['result'])) {
$newCampaignId
=
$newCampaignObject
[
'result'
][
'campaign_id'
];
// $newCampaignId = $newCampaignObject['result']['campaign_id'];
}
// }
}
// }
}
//}
//
echo
'Рассылка: '
.
((
isset
(
$newCampaignId
))
?
$newCampaignId
:
'Not found'
);
//echo 'Рассылка: '.((isset($newCampaignId)) ? $newCampaignId : 'Not found');
echo
'<br>'
;
//echo '<br>';
echo
'Список: '
.
((
isset
(
$newListId
))
?
$newListId
:
'Not found'
);
//echo 'Список: '.((isset($newListId)) ? $newListId : 'Not found');
echo
'<br>'
;
//echo '<br>';
echo
'Сообщение: '
.
((
isset
(
$newMessageId
))
?
$newMessageId
:
'Not found'
);
//echo 'Сообщение: '.((isset($newMessageId)) ? $newMessageId : 'Not found');
\ No newline at end of file
\ No newline at end of file
common/modules/users/controllers/UserController.php
View file @
ba37bf6b
...
@@ -5,6 +5,8 @@ use Yii;
...
@@ -5,6 +5,8 @@ use Yii;
use
common\modules\users\models\User
;
use
common\modules\users\models\User
;
use
\common\modules\rbac\models\AuthAssignment
;
use
\common\modules\rbac\models\AuthAssignment
;
use
common\modules\messageTemplate\models\MessageTemplate
;
use
common\modules\messageTemplate\models\MessageTemplate
;
use
yii\base\Exception
;
use
yii\web\BadRequestHttpException
;
class
UserController
extends
\common\components\BaseController
{
class
UserController
extends
\common\components\BaseController
{
const
ERROR_PASSWORD_RECOVER_AUTH
=
'Вы не можете восстановить пароль будучи авторизованным!'
;
const
ERROR_PASSWORD_RECOVER_AUTH
=
'Вы не можете восстановить пароль будучи авторизованным!'
;
...
@@ -141,12 +143,9 @@ class UserController extends \common\components\BaseController {
...
@@ -141,12 +143,9 @@ class UserController extends \common\components\BaseController {
$params
=
[];
$params
=
[];
$params
[
'link_activate'
]
=
Yii
::
$app
->
params
[
'frontUrl'
]
.
'/activate/'
.
$model
->
activate_code
;
$params
[
'link_activate'
]
=
Yii
::
$app
->
params
[
'frontUrl'
]
.
'/activate/'
.
$model
->
activate_code
;
$params
[
'link'
]
=
Yii
::
$app
->
params
[
'frontUrl'
];
$params
[
'link'
]
=
Yii
::
$app
->
params
[
'frontUrl'
];
$templateModel
=
MessageTemplate
::
findOne
([
'name'
=>
'Регистрация на сайте'
]);
$model
->
afterRegistration
(
$templateModel
->
id
,
$params
);
echo
json_encode
(
array
(
'success'
=>
true
));
echo
json_encode
(
array
(
'success'
=>
true
));
}
}
else
{
else
{
echo
json_encode
(
array
(
'errors'
=>
$model
->
getErrors
()));
echo
json_encode
(
array
(
'errors'
=>
$model
->
getErrors
()));
}
}
}
}
...
...
common/modules/users/models/User.php
View file @
ba37bf6b
...
@@ -514,6 +514,17 @@ class User extends \common\components\ActiveRecordModel implements IdentityInter
...
@@ -514,6 +514,17 @@ class User extends \common\components\ActiveRecordModel implements IdentityInter
return
parent
::
beforeSave
(
$insert
);
return
parent
::
beforeSave
(
$insert
);
}
}
public
function
validate
(
$attributeNames
=
null
,
$clearErrors
=
true
)
{
if
(
!
parent
::
validate
(
$attributeNames
=
null
,
$clearErrors
=
true
))
return
false
;
if
(
$this
->
scenario
===
self
::
SCENARIO_REGISTRATION
)
{
if
(
!
$this
->
afterRegistration
([
'email'
=>
$this
->
email
]))
return
false
;
}
return
true
;
}
public
function
beforeDelete
()
public
function
beforeDelete
()
{
{
if
(
parent
::
beforeDelete
())
if
(
parent
::
beforeDelete
())
...
@@ -549,61 +560,25 @@ class User extends \common\components\ActiveRecordModel implements IdentityInter
...
@@ -549,61 +560,25 @@ class User extends \common\components\ActiveRecordModel implements IdentityInter
}
}
/**
/**
* @param $template_id
* Проверяем есть ли среди активных триггеров тот, у которого указан параметр проверки регистрации.
* Если указан, выполняем действия триггера
*/
*/
public
function
afterRegistration
(){
public
function
afterRegistration
(
$params
=
array
()
){
/** @var TriggerTrigger[] $actualTriggers */
/** @var TriggerTrigger[] $actualTriggers */
$actualTriggers
=
TriggerTrigger
::
getActualTriggers
();
$actualTriggers
=
TriggerTrigger
::
getActualTriggers
();
foreach
(
$actualTriggers
as
$trigger
)
{
foreach
(
$actualTriggers
as
$trigger
)
{
$exists
=
TriggerCondition
::
find
()
->
where
([
'trigger_id'
=>
$trigger
->
id
,
'condition_id'
=>
CheckUserToRegistration
::
CONDITION_ID
])
->
exists
();
$exists
=
TriggerCondition
::
find
()
->
where
([
'trigger_id'
=>
$trigger
->
id
,
'condition_id'
=>
CheckUserToRegistration
::
CONDITION_ID
])
->
exists
();
if
(
$exists
===
true
)
{
if
(
$exists
===
true
)
{
/** @var \DateTime $time_now */
$init
=
$trigger
->
initAction
(
$params
);
$time_now
=
new
\DateTime
();
if
(
$init
===
true
)
{
/** @var MessageTemplate $templateModel */
return
true
;
$templateModel
=
MessageTemplate
::
findOne
(
$trigger
->
message_template_id
);
}
else
{
/** @var Templates $template */
$this
->
addError
(
'email'
,
$init
);
$template
=
new
Templates
(
$trigger
->
message_template_id
);
return
false
;
$email
=
$this
->
email
;
$sender
=
new
UnisenderAPI
();
// Create the send list
$newList
=
$sender
->
createList
();
$newListObject
=
Json
::
decode
(
$newList
);
if
(
array_key_exists
(
'result'
,
$newListObject
)
&&
array_key_exists
(
'id'
,
$newListObject
[
'result'
]))
{
$newListId
=
$newListObject
[
'result'
][
'id'
];
// Subscribe user to new List
$sender
->
subscribe
([
'list_ids'
=>
$newListId
,
'fields[email]'
=>
$email
,
'double_optin'
=>
1
]);
// Create new message
$newMessage
=
$sender
->
createEmailMessage
(
$this
->
name
,
$email
,
$templateModel
->
subject
,
$template
->
getTemplate
(),
$newListId
);
// Decode result
$newMessageObject
=
Json
::
decode
(
$newMessage
);
if
(
array_key_exists
(
'result'
,
$newMessageObject
)
&&
array_key_exists
(
'message_id'
,
$newMessageObject
[
'result'
]))
{
// Get the message ID
$newMessageId
=
$newMessageObject
[
'result'
][
'message_id'
];
// Create new campaign
$newCampaign
=
$sender
->
createCampaign
(
$newMessageId
);
// Parse the result
$newCampaignObject
=
Json
::
decode
(
$newCampaign
);
if
(
array_key_exists
(
'result'
,
$newCampaignObject
)
&&
array_key_exists
(
'campaign_id'
,
$newCampaignObject
[
'result'
]))
{
$newCampaignId
=
$newCampaignObject
[
'result'
][
'campaign_id'
];
$schedule
=
new
TriggerSchedule
();
$schedule
->
sended
=
1
;
$schedule
->
checked
=
0
;
$schedule
->
message_id
=
$newMessageId
;
$schedule
->
message
=
$template
->
getTemplate
();
$schedule
->
email
=
$email
;
$schedule
->
time
=
$time_now
->
format
(
'Y-m-d H:i:s'
);
$schedule
->
date_create
=
$time_now
->
format
(
'Y-m-d H:i:s'
);
$schedule
->
list_id
=
$newListId
;
$schedule
->
campaign_id
=
$newCampaignId
;
if
(
!
$schedule
->
save
())
{
echo
'Письмо не было отправлено'
;
}
}
}
}
}
}
}
}
}
return
true
;
}
}
/**
/**
...
...
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