#958 - Активировать формы обратной связи на сайте.

parent 2e0d32c1
...@@ -119,16 +119,16 @@ class Bid extends \common\components\ActiveRecordModel ...@@ -119,16 +119,16 @@ class Bid extends \common\components\ActiveRecordModel
try try
{ {
$session = null; $session = null;
if(Yii::$app->session->has('Session')) if(Yii::$app->session->has('SessionId'))
{ {
$session = Session::findOne(Yii::$app->session->get('Session')); $session = Session::findOne(Yii::$app->session->get('SessionId'));
} }
$email = Settings::getValue('bids-support-email'); $email = Settings::getValue('bids-support-email');
$message = Yii::$app->controller->view->render('@common/modules/bids/views/bid/mail-all', [ $message = Yii::$app->controller->view->render('@common/modules/bids/views/bid/mail-all', [
'model' => $this, 'model' => $this,
'session' => $session 'session' => $session,
]); ]);
$headers = "MIME-Version: 1.0\r\n". $headers = "MIME-Version: 1.0\r\n".
......
...@@ -24,10 +24,28 @@ Email: <?=$model->email?><br> ...@@ -24,10 +24,28 @@ Email: <?=$model->email?><br>
Дата добавления заявки: <?=date('d.m.Y H:i:s', $model->created_at)?><br> Дата добавления заявки: <?=date('d.m.Y H:i:s', $model->created_at)?><br>
<?php if($session) : ?> <?php if($session) : ?>
Реферер: <?=$session->referer?><br> <hr>
Заявка отправлена со страницы: <?=$session->url?><br> <?php if($session->utmUrls) : ?>
<h2>UTM:</h2>
<?php foreach ($session->utmUrls as $url) :
$params = $url->parseUrl(); ?>
<p>
<strong>Дата посещения:</strong> <?=date('d.m.Y H:i:s', $url->created_at)?> <br>
<strong>Время пребывания на посадочной странице:</strong> <?=date('H:i:s', mktime(0, 0, $url->time))?> <br>
Источники: <?=$params['utm_source']?> <br>
Маркетинговые каналы: <?=$params['utm_medium']?> <br>
Ключевое слово в компании: <?=$params['utm_term']?> <br>
Компания : <?=$params['campaign_id']?> <br>
</p>
<?php endforeach; ?>
<?php endif; ?>
<?php endif; ?> <?php endif; ?>
\ No newline at end of file
...@@ -54,6 +54,7 @@ class DefaultController extends BaseController ...@@ -54,6 +54,7 @@ class DefaultController extends BaseController
$sUrl->session_id = $session->id; $sUrl->session_id = $session->id;
$sUrl->url = $url; $sUrl->url = $url;
$sUrl->referer = $referer; $sUrl->referer = $referer;
$sUrl->utm = $sUrl->isUtm();
$sUrl->save(); $sUrl->save();
......
...@@ -49,6 +49,9 @@ class SearchSession extends Session ...@@ -49,6 +49,9 @@ class SearchSession extends Session
$dataProvider = new ActiveDataProvider([ $dataProvider = new ActiveDataProvider([
'query' => $query, 'query' => $query,
'sort' => [
'defaultOrder' => ['created_at' => SORT_DESC]
]
]); ]);
$this->load($params); $this->load($params);
......
...@@ -51,6 +51,9 @@ class SearchSessionUrl extends SessionUrl ...@@ -51,6 +51,9 @@ class SearchSessionUrl extends SessionUrl
$dataProvider = new ActiveDataProvider([ $dataProvider = new ActiveDataProvider([
'query' => $query, 'query' => $query,
'sort' => [
'defaultOrder' => ['created_at' => SORT_DESC]
]
]); ]);
$this->load($params); $this->load($params);
......
...@@ -92,4 +92,12 @@ class Session extends \common\components\ActiveRecordModel ...@@ -92,4 +92,12 @@ class Session extends \common\components\ActiveRecordModel
{ {
return $this->hasMany(SessionUrl::className(), ['session_id' => 'id']); return $this->hasMany(SessionUrl::className(), ['session_id' => 'id']);
} }
/**
* @return \yii\db\ActiveQuery
*/
public function getUtmUrls()
{
return $this->hasMany(SessionUrl::className(), ['session_id' => 'id'])->where(['utm' => 1]);
}
} }
...@@ -40,7 +40,7 @@ class SessionUrl extends \common\components\ActiveRecordModel ...@@ -40,7 +40,7 @@ class SessionUrl extends \common\components\ActiveRecordModel
{ {
return [ return [
[['session_id'], 'required'], [['session_id'], 'required'],
[['session_id', 'created_at', 'updated_at'], 'integer'], [['session_id', 'created_at', 'updated_at', 'utm'], 'integer'],
[['url', 'referer'], 'string'], [['url', 'referer'], 'string'],
[['session_id'], 'exist', 'skipOnError' => true, 'targetClass' => Session::className(), 'targetAttribute' => ['session_id' => 'id']], [['session_id'], 'exist', 'skipOnError' => true, 'targetClass' => Session::className(), 'targetAttribute' => ['session_id' => 'id']],
]; ];
...@@ -74,4 +74,23 @@ class SessionUrl extends \common\components\ActiveRecordModel ...@@ -74,4 +74,23 @@ class SessionUrl extends \common\components\ActiveRecordModel
{ {
return $this->updated_at - $this->created_at; return $this->updated_at - $this->created_at;
} }
public function parseUrl()
{
parse_str(parse_url($this->url, PHP_URL_QUERY), $params);
return $params;
}
public function isUtm()
{
$params = $this->parseUrl();
if(isset($params['utm_source']))
{
return 1;
}
return 0;
}
} }
<?php
use yii\db\Schema;
use yii\db\Migration;
class m160301_055203_fix_sessions extends Migration
{
// Use safeUp/safeDown to run migration code within a transaction
public function safeUp()
{
$this->addColumn('sessions_url', 'utm', Schema::TYPE_INTEGER.'(1) NOT NULL DEFAULT 0 AFTER referer');
}
public function safeDown()
{
$this->dropColumn('sessions_url', 'utm');
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment