Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
skeeks
/
cms-module-shop
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
777a6549
authored
Apr 07, 2015
by
semenov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Начало разработки
parent
f10cfbb2
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
161 additions
and
0 deletions
+161
-0
controllers/BackendController.php
+100
-0
models/ShopPersonType.php
+32
-0
views/cart-form.php
+29
-0
No files found.
controllers/BackendController.php
0 → 100644
View file @
777a6549
<?php
/**
* @author Semenov Alexander <semenov@skeeks.com>
* @link http://skeeks.com/
* @copyright 2010 SkeekS (СкикС)
* @date 15.03.2015
*/
namespace
skeeks\modules\cms\shop\controllers
;
use
skeeks\cms\base\Controller
;
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\shop\models\ShopOrder
;
use
yii\filters\VerbFilter
;
use
yii\helpers\ArrayHelper
;
use
yii\web\Response
;
use
yii\widgets\ActiveForm
;
/**
* Class BackendController
* @package skeeks\modules\cms\form\controllers
*/
class
BackendController
extends
Controller
{
/**
* @return array
*/
public
function
behaviors
()
{
return
ArrayHelper
::
merge
(
parent
::
behaviors
(),
[
'verbs'
=>
[
'class'
=>
VerbFilter
::
className
(),
'actions'
=>
[
'validate'
=>
[
'post'
],
'submit'
=>
[
'post'
],
],
],
]);
}
/**
* Процесс отправки формы
* @return array
*/
public
function
actionCreateOrder
()
{
if
(
\Yii
::
$app
->
request
->
isAjax
&&
!
\Yii
::
$app
->
request
->
isPjax
)
{
\Yii
::
$app
->
response
->
format
=
Response
::
FORMAT_JSON
;
$response
=
[
'success'
=>
false
,
'message'
=>
'Произошла ошибка'
,
];
if
(
$formId
=
\Yii
::
$app
->
request
->
post
(
Form
::
FROM_PARAM_ID_NAME
))
{
/**
* @var $modelForm Form
*/
$modelForm
=
Form
::
find
()
->
where
([
'id'
=>
$formId
])
->
one
();
$model
=
$modelForm
->
createValidateModel
();
if
(
$model
->
load
(
\Yii
::
$app
->
request
->
post
())
&&
$model
->
validate
())
{
//Все проверки прошли, формируем модель отправленного сообщения и сохраняем ее
$modelFormSendMessage
=
new
FormSendMessage
();
$modelFormSendMessage
->
data_values
=
$model
->
attributeValues
();
$modelFormSendMessage
->
data_labels
=
$model
->
attributeLabels
();
$modelFormSendMessage
->
page_url
=
\Yii
::
$app
->
request
->
referrer
;
$modelFormSendMessage
->
form_id
=
$formId
;
if
(
$modelFormSendMessage
->
save
())
{
$modelFormSendMessage
->
notify
();
$response
[
'success'
]
=
true
;
$response
[
'message'
]
=
'Успешно отправлена'
;
}
else
{
$response
[
'message'
]
=
'Не удалось сохранить сообщение в базу'
;
}
//Создание нового заказа
$shopOrder
=
new
ShopOrder
([
''
]);
}
else
{
$response
[
'message'
]
=
'Форма заполнена неправильно'
;
}
return
$response
;
}
}
}
}
\ No newline at end of file
models/ShopPersonType.php
View file @
777a6549
...
...
@@ -12,6 +12,7 @@ use skeeks\cms\models\Core;
use
skeeks\modules\cms\form\models\Form
;
use
\Yii
;
use
yii\helpers\ArrayHelper
;
use
yii\web\ErrorHandler
;
/**
* This is the model class for table "{{%shop_person_type}}".
...
...
@@ -116,4 +117,34 @@ class ShopPersonType extends Core
{
return
$this
->
getForm
()
->
one
();
}
/**
* @return string
*/
public
function
renderForm
()
{
/**
* @var $moduleForm \skeeks\modules\cms\shop\Module
*/
//$moduleForm = \Yii::$app->getModule('shop');
$moduleForm
=
\Yii
::
$app
->
getModule
(
'form'
);
$formModel
=
$this
->
form
();
try
{
return
\Yii
::
$app
->
getModule
(
'shop'
)
->
renderFile
(
'cart-form.php'
,
[
'shopPersonType'
=>
$this
,
'module'
=>
$moduleForm
,
'modelForm'
=>
$formModel
,
'fields'
=>
$formModel
->
fields
(),
'model'
=>
$formModel
->
createValidateModel
()
]);
}
catch
(
\Exception
$e
)
{
ob_end_clean
();
ErrorHandler
::
convertExceptionToError
(
$e
);
return
'Ошибка рендеринга формы: '
.
$e
->
getMessage
();
}
}
}
\ No newline at end of file
views/cart-form.php
0 → 100644
View file @
777a6549
<?php
/**
* @author Semenov Alexander <semenov@skeeks.com>
* @link http://skeeks.com/
* @copyright 2010 SkeekS (СкикС)
* @date 17.03.2015
*
* @var $formField \skeeks\modules\cms\form\models\FormField
* @var $model \skeeks\modules\cms\form\models\FormValidateModel
* @var $shopPersonType \skeeks\modules\cms\shop\models\ShopPersonType
*/
use
skeeks\modules\cms\form\widgets\ActiveForm
;
?>
<?php
$form
=
ActiveForm
::
begin
([
'modelForm'
=>
$model
->
modelForm
,
'action'
=>
\skeeks\cms\helpers\UrlHelper
::
construct
(
'shop/backend/create-order'
)
->
toString
(),
]);
?>
<?=
\yii\helpers\Html
::
hiddenInput
(
'shopPersonType'
,
$shopPersonType
->
id
);
?>
<?
if
(
$fields
)
:
?>
<?
foreach
(
$fields
as
$formField
)
:
?>
<?=
$formField
->
renderActiveForm
(
$form
,
$model
)
?>
<?
endforeach
;
?>
<?
endif
;
?>
<?php
ActiveForm
::
end
();
?>
\ No newline at end of file
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