- Добавлено условие на скроллинг

parent ca21f134
<?php
/**
* Created by PhpStorm.
* User: PHOENIX
* Date: 18.02.16
* Time: 17:07
*/
namespace common\modules\triggers\components\conditions\conditions;
use common\modules\messageTemplate\components\Templates;
use common\modules\messageTemplate\models\MessageTemplate;
use common\modules\triggers\components\conditions\vendor\ConditionBase;
use common\modules\triggers\components\conditions\vendor\ConditionInterface;
use common\modules\triggers\models\TriggerCondition;
use common\modules\triggers\models\TriggerParam;
use common\modules\triggers\models\TriggerSchedule;
use common\modules\triggers\models\TriggerTrigger;
use yii\web\BadRequestHttpException;
class CheckScrolling extends ConditionBase implements ConditionInterface {
const CONDITION_ID=9;
public $name = 'Скроллинг страницы';
public $params=[];
/**
* @param null|string $conditionName
* @return $this mixed
*/
public static function init($conditionName=__CLASS__){
return parent::init($conditionName);
}
public function initScript(){
// Получили список всех активных (актуальных) триггеров
/** @var TriggerTrigger[] $actualTriggers */
$actualTriggers = TriggerTrigger::getActualTriggers(self::CONDITION_ID);
// Перебираем их в цикле
foreach($actualTriggers as $trigger) {
// Получили условия триггера на итерации
$conditions = TriggerCondition::find()->where(['trigger_id' => $trigger->getPrimaryKey()])->all();
// Перебираем все условия триггера на итерации
foreach($conditions as $condition) {
// Пытаемся получить параметр URL в условии
/** @var TriggerParam $paramUrl */
$paramUrl = TriggerParam::find()->where(['condition_id'=>$condition->getPrimaryKey(), 'key'=>'url'])->one();
// Пытаемся получить параметр процента на условии
$paramPercent = TriggerParam::find()->where(['condition_id'=>$condition->getPrimaryKey(), 'key'=>'percent'])->one();
// Если сработали условия что триггер есть, у него указаны время и URL и при этом он является триггером ДАННОГО типа
echo (
$paramUrl!==null
) ? '1' : '0';
if (
$condition->condition_id==self::CONDITION_ID &&
$paramUrl!==null &&
$paramUrl->value==\Yii::$app->request->getUrl() &&
$paramPercent!==null &&
!\Yii::$app->user->isGuest
) {
$view = \Yii::$app->controller->view;
// Создаем скрипт
$script ='var initiated = false; $(document).scroll(function() {
var percent='.((int)$paramPercent->value).';
var percent_value = ($(document).height()/100)*percent;
if ($(document).scrollTop()>=percent_value && initiated==false) {
$.ajax({
url: "/triggers/default/inittrigger",
method: "GET",
async: false,
data: {
id: '.$trigger->getPrimaryKey().'
},
});
initiated=true;
}
});';
// Регистрируем его
$view->registerJs($script, $view::POS_READY);
}
}
}
}
/**
* @param $time
* @return bool
*/
public function check($time){
return false;
}
}
\ No newline at end of file
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