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
9b526379
Commit
9b526379
authored
Feb 03, 2026
by
duke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Разработать API для страницы "Конфигураторы оборудования"
parent
28242fd6
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
460 additions
and
1 deletion
+460
-1
common/modules/content/models/CoContent.php
common/modules/content/models/CoContent.php
+29
-0
common/modules/content/views/content-admin/_form.php
common/modules/content/views/content-admin/_form.php
+2
-1
console/migrations/m260130_091220_add_columnsto_bids_table.php
...le/migrations/m260130_091220_add_columnsto_bids_table.php
+28
-0
frontend/config/main.php
frontend/config/main.php
+19
-0
frontend/modules/api/Module.php
frontend/modules/api/Module.php
+38
-0
frontend/modules/api/controllers/FeedbackController.php
frontend/modules/api/controllers/FeedbackController.php
+37
-0
frontend/modules/api/controllers/SettingsController.php
frontend/modules/api/controllers/SettingsController.php
+33
-0
frontend/modules/api/controllers/StaticController.php
frontend/modules/api/controllers/StaticController.php
+37
-0
frontend/modules/api/docs/feedback.md
frontend/modules/api/docs/feedback.md
+82
-0
frontend/modules/api/docs/settings.md
frontend/modules/api/docs/settings.md
+31
-0
frontend/modules/api/docs/static.md
frontend/modules/api/docs/static.md
+33
-0
frontend/modules/api/models/form/FeedbackForm.php
frontend/modules/api/models/form/FeedbackForm.php
+41
-0
frontend/modules/api/models/resource/SettingsResource.php
frontend/modules/api/models/resource/SettingsResource.php
+50
-0
No files found.
common/modules/content/models/CoContent.php
View file @
9b526379
...
@@ -5,6 +5,7 @@ namespace common\modules\content\models;
...
@@ -5,6 +5,7 @@ namespace common\modules\content\models;
use
common\models\MetaTags
;
use
common\models\MetaTags
;
use
common\modules\languages\models\Languages
;
use
common\modules\languages\models\Languages
;
use
common\modules\messageTemplate\models\MessageTemplate
;
use
common\modules\messageTemplate\models\MessageTemplate
;
use
frontend\modules\api\models\resource\CoContentResource
;
use
frontend\modules\sitemap\behaviors\SitemapBehavior
;
use
frontend\modules\sitemap\behaviors\SitemapBehavior
;
use
Yii
;
use
Yii
;
use
yii\behaviors\TimestampBehavior
;
use
yii\behaviors\TimestampBehavior
;
...
@@ -58,6 +59,34 @@ class CoContent extends \common\components\ActiveRecordModel
...
@@ -58,6 +59,34 @@ class CoContent extends \common\components\ActiveRecordModel
return
'co_content'
;
return
'co_content'
;
}
}
/**
* @return array
*/
public
function
fields
()
{
return
[
'id'
,
'url'
,
'name'
=>
function
(
$model
)
{
/** @var CoContent $model */
return
$model
->
lang
?
$model
->
lang
->
name
:
null
;
},
'text'
=>
function
(
$model
)
{
/** @var CoContent $model */
return
$model
->
lang
?
$model
->
lang
->
text
:
null
;
},
'meta_title'
=>
function
(
$model
)
{
return
$model
->
metaTag
->
title
;
},
'meta_description'
=>
function
(
$model
)
{
return
$model
->
metaTag
->
description
;
},
'meta_keywords'
=>
function
(
$model
)
{
return
$model
->
metaTag
->
keywords
;
}
];
}
/**
/**
* @inheritdoc
* @inheritdoc
*/
*/
...
...
common/modules/content/views/content-admin/_form.php
View file @
9b526379
...
@@ -12,12 +12,13 @@ use common\modules\content\widgets\MetaTagsWidget;
...
@@ -12,12 +12,13 @@ use common\modules\content\widgets\MetaTagsWidget;
/* @var $form yii\widgets\ActiveForm */
/* @var $form yii\widgets\ActiveForm */
$blocks
=
\common\modules\content\models\CoBlocks
::
find
()
->
all
();
$blocks
=
\common\modules\content\models\CoBlocks
::
find
()
->
all
();
//$validation = $model->isNewRecord ? false : true;
?>
?>
<div
class=
"co-content-form"
>
<div
class=
"co-content-form"
>
<?php
$form
=
ActiveForm
::
begin
([
<?php
$form
=
ActiveForm
::
begin
([
'enableClientValidation'
=>
true
,
'options'
=>
[
'options'
=>
[
'enctype'
=>
'multipart/form-data'
'enctype'
=>
'multipart/form-data'
]
]
...
...
console/migrations/m260130_091220_add_columnsto_bids_table.php
0 → 100644
View file @
9b526379
<?php
use
yii\db\Migration
;
/**
* Handles adding columns to table `{{%bids}}`.
*/
class
m260130_091220_add_columnsto_bids_table
extends
Migration
{
/**
* {@inheritdoc}
*/
public
function
safeUp
()
{
$this
->
addColumn
(
'bids'
,
'ip'
,
$this
->
string
()
->
null
()
->
after
(
'text'
));
$this
->
addColumn
(
'bids'
,
'from_page'
,
$this
->
string
()
->
null
()
->
after
(
'text'
));
$this
->
addColumn
(
'bids'
,
'subscribe'
,
$this
->
boolean
());
}
/**
* {@inheritdoc}
*/
public
function
safeDown
()
{
$this
->
dropColumn
(
'bids'
,
'ip'
);
$this
->
dropColumn
(
'bids'
,
'from_page'
);
$this
->
dropColumn
(
'bids'
,
'subscribe'
);
}
}
frontend/config/main.php
View file @
9b526379
...
@@ -27,6 +27,7 @@ return [
...
@@ -27,6 +27,7 @@ return [
'support'
=>
[
'class'
=>
'common\modules\support\Module'
],
'support'
=>
[
'class'
=>
'common\modules\support\Module'
],
'sessions'
=>
[
'class'
=>
'common\modules\sessions\Module'
],
'sessions'
=>
[
'class'
=>
'common\modules\sessions\Module'
],
'analyticsSchool'
=>
[
'class'
=>
'common\modules\analyticsSchool\Module'
],
'analyticsSchool'
=>
[
'class'
=>
'common\modules\analyticsSchool\Module'
],
'api'
=>
[
'class'
=>
'frontend\modules\api\Module'
],
'sitemap'
=>
[
'sitemap'
=>
[
'class'
=>
'frontend\modules\sitemap\Sitemap'
,
'class'
=>
'frontend\modules\sitemap\Sitemap'
,
'models'
=>
[
'models'
=>
[
...
@@ -159,6 +160,24 @@ return [
...
@@ -159,6 +160,24 @@ return [
'showScriptName'
=>
false
,
'showScriptName'
=>
false
,
'enableStrictParsing'
=>
true
,
'enableStrictParsing'
=>
true
,
'rules'
=>
[
'rules'
=>
[
[
'class'
=>
'yii\rest\UrlRule'
,
'controller'
=>
'api/static'
,
'pluralize'
=>
false
,
'only'
=>
[
'view'
,
'options'
]
],
[
'class'
=>
'yii\rest\UrlRule'
,
'controller'
=>
'api/settings'
,
'pluralize'
=>
false
,
'only'
=>
[
'index'
,
'options'
]
],
[
'class'
=>
'yii\rest\UrlRule'
,
'controller'
=>
'api/feedback'
,
'pluralize'
=>
false
,
'only'
=>
[
'create'
,
'options'
]
],
'contacts'
=>
'site/contacts'
,
'contacts'
=>
'site/contacts'
,
[
'pattern'
=>
'sitemap'
,
'route'
=>
'sitemap/default/index'
,
'suffix'
=>
'.xml'
],
[
'pattern'
=>
'sitemap'
,
'route'
=>
'sitemap/default/index'
,
'suffix'
=>
'.xml'
],
[
'pattern'
=>
'sitemapg'
,
'route'
=>
'sitemap/default/google'
,
'suffix'
=>
'.xml'
],
[
'pattern'
=>
'sitemapg'
,
'route'
=>
'sitemap/default/google'
,
'suffix'
=>
'.xml'
],
...
...
frontend/modules/api/Module.php
0 → 100644
View file @
9b526379
<?php
namespace
frontend\modules\api
;
use
Yii
;
use
yii\web\Response
;
/**
* Class Module
* @package common\modules\bids
*/
class
Module
extends
\yii\base\Module
{
/**
* @inheritdoc
*/
public
$controllerNamespace
=
'frontend\modules\api\controllers'
;
/**
* @inheritdoc
*/
public
function
init
()
{
parent
::
init
();
Yii
::
$app
->
response
->
format
=
Response
::
FORMAT_JSON
;
$contentType
=
Yii
::
$app
->
getRequest
()
->
getContentType
();
switch
(
$contentType
)
{
case
'application/json'
:
Yii
::
$app
->
response
->
format
=
Response
::
FORMAT_JSON
;
break
;
case
'application/xml'
:
Yii
::
$app
->
response
->
format
=
Response
::
FORMAT_XML
;
break
;
default
:
Yii
::
$app
->
response
->
format
=
Response
::
FORMAT_JSON
;
}
}
}
frontend/modules/api/controllers/FeedbackController.php
0 → 100644
View file @
9b526379
<?php
namespace
frontend\modules\api\controllers
;
use
frontend\modules\api\models\form\FeedbackForm
;
use
yii\rest\Controller
;
use
yii\rest\CreateAction
;
/**
* Class FeedbackController
* @package frontend\modules\api\controllers
*/
class
FeedbackController
extends
Controller
{
/**
* @inheritDoc
*/
public
function
verbs
()
{
return
[
'create'
=>
[
'post'
]
];
}
/**
* @inheritDoc
*/
public
function
actions
()
{
return
[
'create'
=>
[
'class'
=>
CreateAction
::
className
(),
'modelClass'
=>
FeedbackForm
::
className
()
]
];
}
}
\ No newline at end of file
frontend/modules/api/controllers/SettingsController.php
0 → 100644
View file @
9b526379
<?php
namespace
frontend\modules\api\controllers
;
use
frontend\modules\api\models\resource\SettingsResource
;
use
yii\rest\Controller
;
/**
* Class SettingsController
* @package frontend\modules\api\controllers
*/
class
SettingsController
extends
Controller
{
/**
* @inheritDoc
*/
public
function
verbs
()
{
return
[
'index'
=>
[
'get'
]
];
}
/**
* @return SettingsResource
*/
public
function
actionIndex
()
{
$model
=
new
SettingsResource
();
return
$model
;
}
}
\ No newline at end of file
frontend/modules/api/controllers/StaticController.php
0 → 100644
View file @
9b526379
<?php
namespace
frontend\modules\api\controllers
;
use
common\modules\content\models\CoContent
;
use
yii\rest\Controller
;
use
yii\rest\ViewAction
;
/**
* Class StaticController
* @package frontend\modules\api\controllers
*/
class
StaticController
extends
Controller
{
/**
* @inheritDoc
*/
public
function
verbs
()
{
return
[
'view'
=>
[
'get'
]
];
}
/**
* @inheritDoc
*/
public
function
actions
()
{
return
[
'view'
=>
[
'class'
=>
ViewAction
::
className
(),
'modelClass'
=>
CoContent
::
className
()
]
];
}
}
\ No newline at end of file
frontend/modules/api/docs/feedback.md
0 → 100644
View file @
9b526379
# Уведомление с формы
Получение уведомлений из формы обратной связи
**URL**
:
`/api/feedback`
**Method**
:
`POST`
**Auth request**
: NO
**Data example**
`/api/feedback`
**Data constraints**
| Параметр | Описание
| ----------------------|---------------------------------------------------------|
|
**name**
| Имя. Обязательное к заполнению |
|
**phone**
| Телефон. Обязательное к заполнению|
|
**email**
| E-mail |
|
**form**
| Тип формы. Обязательное к заполнению. Принимает значения
`message`
(Форма обратной связи) и
`callback`
(Обратный звонок)|
|
**text**
| Текст сообщения|
|
**from_page**
| С какой страницы был отправлен запрос|
|
**confirm**
| Согласие на обработку данных. Обязательное к заполнению|
|
**subscribe**
| Согласие на получение рассылок |
**Data example**
```
json
{
"name"
:
"Test"
,
"phone"
:
"+7988799098"
,
"email"
:
"test@test.ru"
,
"form"
:
"message"
,
"text"
:
"test"
,
"from_page"
:
"index"
,
"confirm"
:
1
,
"subscribe"
:
0
}
```
## Success Response
**Status**
:
`201 CREATED`
**Content**
```
json
{
"email"
:
"test@test.ru"
,
"name"
:
"Тест"
,
"phone"
:
"+489567"
,
"form"
:
"message"
,
"ip"
:
"127.0.0.1"
,
"confirm"
:
true
,
"created_at"
:
1770104803
,
"updated_at"
:
1770104803
,
"id"
:
681
}
```
**Status**
:
`422 Data Validation Failed`
**Content**
```
json
[
{
"field"
:
"name"
,
"message"
:
"Необходимо заполнить «Имя»."
},
{
"field"
:
"phone"
,
"message"
:
"Необходимо заполнить «Телефон»."
},
{
"field"
:
"form"
,
"message"
:
"Необходимо заполнить «Форма отправки»."
}
]
```
\ No newline at end of file
frontend/modules/api/docs/settings.md
0 → 100644
View file @
9b526379
# Получение настроек
Используется для получения настроек API.
**URL**
:
`/api/settings`
**Method**
:
`GET`
**Auth request**
: NO
**Data example**
`/api/settings`
## Success Response
**Status**
:
`200 OK`
**Content**
```
json
{
"email"
:
null
,
"footer_email"
:
null
,
"phone"
:
null
,
"telegram"
:
null
,
"policy"
:
null
,
"cookie"
:
null
}
```
\ No newline at end of file
frontend/modules/api/docs/static.md
0 → 100644
View file @
9b526379
# Получение контента страницы
Используется для получения контента страницы API.
**URL**
:
`/api/static/{id}`
`{id}`
- идентификатор страницы, можно узнать в ПУ http://taskon.task-on.com/content/content-admin/manage
**Method**
:
`GET`
**Auth request**
: NO
**Data example**
`/api/static/9`
## Success Response
**Status**
:
`200 OK`
**Content**
```
json
{
"id"
:
95
,
"url"
:
"api"
,
"name"
:
"Лендинг"
,
"text"
:
"<strong>test</strong>"
,
"meta_title"
:
"мета заголовок"
,
"meta_description"
:
"мета описание"
,
"meta_keywords"
:
"мета ключевые слова"
}
```
\ No newline at end of file
frontend/modules/api/models/form/FeedbackForm.php
0 → 100644
View file @
9b526379
<?php
namespace
frontend\modules\api\models\form
;
use
common\modules\bids\models\Bid
;
use
Yii
;
/**
* Class FeedbackForm
* @package frontend\modules\api\models\feedback
*/
class
FeedbackForm
extends
Bid
{
/**
* @return array
*/
public
function
rules
()
{
return
[
[[
'name'
,
'phone'
,
'form'
,
'confirm'
],
'required'
],
[[
'ip'
,
'email'
,
'phone'
,
'text'
,
'from_page'
],
'string'
],
[[
'name'
],
'string'
,
'min'
=>
2
,
'max'
=>
100
],
[[
'email'
],
'email'
],
[[
'confirm'
,
'subscribe'
],
'boolean'
],
[[
'form'
],
'in'
,
'range'
=>
[
Bid
::
FORM_MESSAGE
,
Bid
::
FORM_CALLBACK
]]
];
}
public
function
beforeValidate
()
{
$this
->
ip
=
Yii
::
$app
->
getRequest
()
->
getUserIP
();
$this
->
confirm
=
true
;
return
parent
::
beforeValidate
();
}
public
function
afterSave
(
$insert
,
$changedAttributes
)
{
parent
::
afterSave
(
$insert
,
$changedAttributes
);
$this
->
send
();
}
}
\ No newline at end of file
frontend/modules/api/models/resource/SettingsResource.php
0 → 100644
View file @
9b526379
<?php
namespace
frontend\modules\api\models\resource
;
use
common\models\Settings
;
/**
* Class SettingsResource
* @package frontend\modules\api\models\resource
*/
class
SettingsResource
extends
\yii\base\Model
{
public
$email
;
public
$footer_email
;
public
$phone
;
public
$telegram
;
public
$policy
;
public
$cookie
;
/**
* @return array
*/
public
function
fields
()
{
return
[
'email'
,
'footer_email'
,
'phone'
,
'telegram'
,
'policy'
,
'cookie'
];
}
public
function
init
()
{
parent
::
init
();
$this
->
phone
=
Settings
::
getValue
(
'api-phone'
);
$this
->
telegram
=
Settings
::
getValue
(
'api-telegram'
);
$this
->
policy
=
Settings
::
getValue
(
'api-policy'
);
$this
->
cookie
=
Settings
::
getValue
(
'api-cookie'
);
$this
->
email
=
Settings
::
getValue
(
'setting-info-email'
);
$this
->
footer_email
=
Settings
::
getValue
(
'api-footer-email'
);
}
}
\ 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