Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
skeeks
/
cms-module-form
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Merge Requests
0
Pipelines
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
1b3f7980
authored
Mar 20, 2015
by
semenov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
new module
parent
6d4ac288
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
138 additions
and
32 deletions
+138
-32
controllers/AdminFormSendMessageController.php
+20
-2
controllers/BackendController.php
+5
-2
mail/send-message.php
+49
-0
migrations/m150307_162740_create_form_send_messages_table.php
+2
-1
models/Form.php
+1
-1
models/FormField.php
+15
-1
models/FormSendMessage.php
+44
-4
models/FormValidateModel.php
+2
-21
No files found.
controllers/AdminFormSendMessageController.php
View file @
1b3f7980
...
@@ -31,9 +31,27 @@ class AdminFormSendMessageController extends AdminModelEditorSmartController
...
@@ -31,9 +31,27 @@ class AdminFormSendMessageController extends AdminModelEditorSmartController
$this
->
enableScenarios
=
true
;
$this
->
enableScenarios
=
true
;
$this
->
gridColumns
=
[
$this
->
gridColumns
=
[
'form_id'
,
[
'class'
=>
\yii\grid\DataColumn
::
className
(),
'value'
=>
function
(
FormSendMessage
$model
)
{
if
(
$form
=
Form
::
find
()
->
where
([
'id'
=>
$model
->
form_id
])
->
one
())
{
return
$form
->
name
;
}
},
'attribute'
=>
'form_id'
,
'format'
=>
'html'
],
[
'class'
=>
\skeeks\cms\grid\CreatedAtColumn
::
className
()],
[
'class'
=>
\skeeks\cms\grid\CreatedAtColumn
::
className
()],
[
'class'
=>
\skeeks\cms\grid\CreatedByColumn
::
className
()]
[
'class'
=>
\skeeks\cms\grid\CreatedByColumn
::
className
()],
'page_url'
,
'ip'
];
];
parent
::
init
();
parent
::
init
();
...
...
controllers/BackendController.php
View file @
1b3f7980
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
namespace
skeeks\modules\cms\form\controllers
;
namespace
skeeks\modules\cms\form\controllers
;
use
skeeks\cms\base\Controller
;
use
skeeks\cms\base\Controller
;
use
skeeks\modules\cms\form\models\Form
;
use
skeeks\modules\cms\form\models\Form
;
use
skeeks\modules\cms\form\models\FormField
;
use
skeeks\modules\cms\form\models\FormSendMessage
;
use
skeeks\modules\cms\form\models\FormSendMessage
;
use
yii\filters\VerbFilter
;
use
yii\filters\VerbFilter
;
use
yii\helpers\ArrayHelper
;
use
yii\helpers\ArrayHelper
;
...
@@ -67,14 +68,16 @@ class BackendController extends Controller
...
@@ -67,14 +68,16 @@ class BackendController extends Controller
//Все проверки прошли, формируем модель отправленного сообщения и сохраняем ее
//Все проверки прошли, формируем модель отправленного сообщения и сохраняем ее
$modelFormSendMessage
=
new
FormSendMessage
();
$modelFormSendMessage
=
new
FormSendMessage
();
$modelFormSendMessage
->
data_values
=
$model
->
attributeValues
();
$modelFormSendMessage
->
data_labels
=
$model
->
attributeLabels
();
$modelFormSendMessage
->
data
=
$model
->
getValues
();
$modelFormSendMessage
->
page_url
=
\Yii
::
$app
->
request
->
referrer
;
$modelFormSendMessage
->
page_url
=
\Yii
::
$app
->
request
->
referrer
;
$modelFormSendMessage
->
form_id
=
$formId
;
$modelFormSendMessage
->
form_id
=
$formId
;
if
(
$modelFormSendMessage
->
save
())
if
(
$modelFormSendMessage
->
save
())
{
{
$modelFormSendMessage
->
notify
();
$response
[
'success'
]
=
true
;
$response
[
'success'
]
=
true
;
$response
[
'message'
]
=
'Успешно отправлена'
;
$response
[
'message'
]
=
'Успешно отправлена'
;
}
else
}
else
...
...
mail/send-message.php
0 → 100644
View file @
1b3f7980
<?php
/**
* @author Semenov Alexander <semenov@skeeks.com>
* @link http://skeeks.com/
* @copyright 2010 SkeekS (СкикС)
* @date 19.03.2015
*/
use
skeeks\cms\mail\helpers\Html
;
/**
* @var $formSendMessage \skeeks\modules\cms\form\models\FormSendMessage
* @var $form \skeeks\modules\cms\form\models\Form
* @var $formField \skeeks\modules\cms\form\models\FormField
*/
?>
<?=
Html
::
beginTag
(
'h1'
);
?>
Отправка формы «
<?=
\yii\helpers\Html
::
encode
(
$form
->
name
)
?>
» #
<?=
$formSendMessage
->
id
;
?>
<?=
Html
::
endTag
(
'h1'
);
?>
<?=
Html
::
beginTag
(
'p'
);
?>
Форма была заполнена и успешно отправлена со страницы:
<?=
Html
::
a
(
$formSendMessage
->
page_url
,
$formSendMessage
->
page_url
);
?>
<br
/>
Дата и время отправки:
<?=
\Yii
::
$app
->
formatter
->
asDatetime
(
$formSendMessage
->
created_at
)
?>
<br
/>
Уникальный номер сообщения:
<?=
$formSendMessage
->
id
;
?>
<?=
Html
::
endTag
(
'p'
);
?>
<?=
Html
::
beginTag
(
'h3'
);
?>
Данные формы:
<?=
Html
::
endTag
(
'h3'
);
?>
<?=
Html
::
beginTag
(
'p'
);
?>
<?
foreach
((
array
)
$form
->
fields
()
as
$formField
)
:
?>
<?
if
(
$value
=
\yii\helpers\ArrayHelper
::
getValue
((
array
)
$formSendMessage
->
data_values
,
$formField
->
attribute
))
:
?>
<?=
Html
::
beginTag
(
'b'
);
?>
<?=
$formField
->
normalName
()
?>
:
<?=
Html
::
endTag
(
'b'
);
?>
<?=
Html
::
encode
(
$value
)
?>
<br
/>
<?
endif
;
?>
<?
endforeach
;
?>
<?=
Html
::
endTag
(
'p'
);
?>
<?=
Html
::
beginTag
(
'h5'
);
?>
Дополнительная информация:
<?=
Html
::
endTag
(
'h5'
);
?>
<?=
Html
::
beginTag
(
'p'
);
?>
Дополнительные данные по данному сообщению можно посмотреть
<?=
Html
::
a
(
'тут'
,
\skeeks\cms\helpers\UrlHelper
::
construct
(
'form/admin-form-send-message/update'
,
[
'id'
=>
$formSendMessage
->
id
])
->
enableAdmin
()
->
enableAbsolute
()
->
toString
());
?>
.
<?=
Html
::
endTag
(
'p'
);
?>
\ No newline at end of file
migrations/m150307_162740_create_form_send_messages_table.php
View file @
1b3f7980
...
@@ -34,7 +34,8 @@ class m150307_162740_create_form_send_messages_table extends Migration
...
@@ -34,7 +34,8 @@ class m150307_162740_create_form_send_messages_table extends Migration
'processed_by'
=>
Schema
::
TYPE_INTEGER
.
' NULL'
,
//пользователь который принял заявку
'processed_by'
=>
Schema
::
TYPE_INTEGER
.
' NULL'
,
//пользователь который принял заявку
'data'
=>
Schema
::
TYPE_TEXT
.
' NULL'
,
//Данные с формы в серилизованном виде
'data_values'
=>
Schema
::
TYPE_TEXT
.
' NULL'
,
//Данные с формы в серилизованном виде
'data_labels'
=>
Schema
::
TYPE_TEXT
.
' NULL'
,
//Данные с формы в серилизованном виде
'emails'
=>
Schema
::
TYPE_TEXT
.
' NULL'
,
//email на которые были отправлены уведомления
'emails'
=>
Schema
::
TYPE_TEXT
.
' NULL'
,
//email на которые были отправлены уведомления
'phones'
=>
Schema
::
TYPE_TEXT
.
' NULL'
,
//Телефоны на которые были отправлены уведомления
'phones'
=>
Schema
::
TYPE_TEXT
.
' NULL'
,
//Телефоны на которые были отправлены уведомления
...
...
models/Form.php
View file @
1b3f7980
...
@@ -94,7 +94,7 @@ class Form extends Core
...
@@ -94,7 +94,7 @@ class Form extends Core
/**
/**
* @return \yii\db\ActiveQuery
* @return \yii\db\ActiveQuery
*/
*/
public
function
get
FormEmails
()
public
function
find
FormEmails
()
{
{
return
$this
->
hasMany
(
FormEmail
::
className
(),
[
'form_id'
=>
'id'
]);
return
$this
->
hasMany
(
FormEmail
::
className
(),
[
'form_id'
=>
'id'
]);
}
}
...
...
models/FormField.php
View file @
1b3f7980
...
@@ -215,8 +215,21 @@ class FormField extends Core
...
@@ -215,8 +215,21 @@ class FormField extends Core
}
}
/**
* @return string
*/
public
function
normalName
()
public
function
normalName
()
{
{
return
$this
->
if
(
$this
->
name
)
{
return
(
string
)
$this
->
name
;
}
if
(
$this
->
label
)
{
return
(
string
)
$this
->
label
;
}
return
(
string
)
$this
->
attribute
;
}
}
}
}
\ No newline at end of file
models/FormSendMessage.php
View file @
1b3f7980
...
@@ -15,6 +15,8 @@ use skeeks\cms\models\behaviors\HasStatus;
...
@@ -15,6 +15,8 @@ use skeeks\cms\models\behaviors\HasStatus;
use
skeeks\cms\models\behaviors\Implode
;
use
skeeks\cms\models\behaviors\Implode
;
use
skeeks\cms\models\behaviors\Serialize
;
use
skeeks\cms\models\behaviors\Serialize
;
use
skeeks\cms\models\Core
;
use
skeeks\cms\models\Core
;
use
yii\helpers\ArrayHelper
;
use
yii\helpers\Html
;
/**
/**
* This is the model class for table "{{%form_send_message}}".
* This is the model class for table "{{%form_send_message}}".
...
@@ -64,7 +66,7 @@ class FormSendMessage extends Core
...
@@ -64,7 +66,7 @@ class FormSendMessage extends Core
Serialize
::
className
()
=>
Serialize
::
className
()
=>
[
[
'class'
=>
Serialize
::
className
(),
'class'
=>
Serialize
::
className
(),
'fields'
=>
[
'data'
,
'data_server'
,
'data_session'
,
'data_cookie'
,
'additional_data'
,
'data_request'
]
'fields'
=>
[
'data
_labels'
,
'data_values
'
,
'data_server'
,
'data_session'
,
'data_cookie'
,
'additional_data'
,
'data_request'
]
],
],
Implode
::
className
()
=>
Implode
::
className
()
=>
...
@@ -82,7 +84,7 @@ class FormSendMessage extends Core
...
@@ -82,7 +84,7 @@ class FormSendMessage extends Core
{
{
return
array_merge
(
parent
::
rules
(),
[
return
array_merge
(
parent
::
rules
(),
[
[[
'created_by'
,
'updated_by'
,
'created_at'
,
'updated_at'
,
'processed_by'
,
'status'
,
'form_id'
],
'integer'
],
[[
'created_by'
,
'updated_by'
,
'created_at'
,
'updated_at'
,
'processed_by'
,
'status'
,
'form_id'
],
'integer'
],
[[
'
data'
,
'emails'
,
'phones'
,
'email_message'
,
'phone_message'
,
'data_server'
,
'data_session'
,
'data_cookie'
,
'data_request'
,
'additional_data
'
],
'safe'
],
[[
'
emails'
,
'phones'
,
'email_message'
,
'phone_message'
,
'data_server'
,
'data_session'
,
'data_cookie'
,
'data_request'
,
'additional_data'
,
'data_labels'
,
'data_values
'
],
'safe'
],
[[
'ip'
],
'string'
,
'max'
=>
32
],
[[
'ip'
],
'string'
,
'max'
=>
32
],
[[
'page_url'
],
'string'
,
'max'
=>
500
],
[[
'page_url'
],
'string'
,
'max'
=>
500
],
[[
'form_id'
],
'required'
],
[[
'form_id'
],
'required'
],
...
@@ -148,8 +150,45 @@ class FormSendMessage extends Core
...
@@ -148,8 +150,45 @@ class FormSendMessage extends Core
/**
/**
* @return \yii\db\ActiveQuery
* @return \yii\db\ActiveQuery
*/
*/
public
function
get
Form
()
public
function
find
Form
()
{
{
return
$this
->
hasOne
(
FormForm
::
className
(),
[
'id'
=>
'form_id'
]);
return
$this
->
hasOne
(
Form
::
className
(),
[
'id'
=>
'form_id'
]);
}
/**
* Уведомить всех кого надо и как надо
*/
public
function
notify
()
{
/**
* @var Form $form
*/
$form
=
$this
->
findForm
()
->
one
();
if
(
$form
)
{
$emails
=
$form
->
findFormEmails
()
->
all
();
if
(
$emails
)
{
foreach
(
$emails
as
$formEmail
)
{
//\Yii::$app->mailer->setViewPath(\Yii::$app->getModule('form')->basePath . '/mail');
\Yii
::
$app
->
mailer
->
compose
(
'@skeeks/modules/cms/form/mail/send-message'
,
[
'form'
=>
$form
,
'formSendMessage'
=>
$this
])
->
setFrom
([
\Yii
::
$app
->
params
[
'supportEmail'
]
=>
\Yii
::
$app
->
name
])
->
setTo
(
$formEmail
->
value
)
->
setSubject
(
"Отправка формы «
{
$form
->
name
}
» #"
.
$this
->
id
)
->
send
();
}
}
}
}
}
}
}
\ No newline at end of file
models/FormValidateModel.php
View file @
1b3f7980
...
@@ -52,7 +52,7 @@ class FormValidateModel extends Model
...
@@ -52,7 +52,7 @@ class FormValidateModel extends Model
/**
/**
* @return array
* @return array
*/
*/
public
function
get
Values
()
public
function
attribute
Values
()
{
{
$result
=
parent
::
rules
();
$result
=
parent
::
rules
();
...
@@ -66,26 +66,7 @@ class FormValidateModel extends Model
...
@@ -66,26 +66,7 @@ class FormValidateModel extends Model
return
$result
;
return
$result
;
}
}
/**
* @return array
*/
public
function
getFieldsValues
()
{
$result
=
parent
::
rules
();
foreach
(
$this
->
modelForm
->
fields
()
as
$field
)
{
if
(
$this
->
getAttribute
(
$field
->
attribute
))
{
$result
[
$field
->
attribute
]
=
[
'field'
=>
$field
,
'value'
=>
$this
->
getAttribute
(
$field
->
attribute
)
];
}
}
return
$result
;
}
/**
/**
* @var array attribute values indexed by attribute names
* @var array attribute values indexed by attribute names
...
@@ -251,7 +232,7 @@ class FormValidateModel extends Model
...
@@ -251,7 +232,7 @@ class FormValidateModel extends Model
foreach
(
$this
->
modelForm
->
fields
()
as
$field
)
foreach
(
$this
->
modelForm
->
fields
()
as
$field
)
{
{
$result
[
$field
->
attribute
]
=
$field
->
label
;
$result
[
$field
->
attribute
]
=
$field
->
normalName
()
;
}
}
return
$result
;
return
$result
;
...
...
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