private function deleteAutosearch(\User $user)
 {
     $data = 'user_id = :user_id';
     $param = array(':user_id' => $user->id);
     if ($this->debug) {
         echo "    ... Autosearch: del " . Autosearch::model()->count($data, $param) . " \n";
     } else {
         Autosearch::model()->deleteAll($data, $param);
     }
 }
 public function updateAutosearch($id, $name)
 {
     $crit = $this->getCriteria();
     if ($crit->params != []) {
         if (count($crit->params) == 1 && array_key_exists('status', $crit->params)) {
             Yii::app()->user->setFlash('error', Yii::t('default', 'Автопоиск не изменен. Необходимо задать критерии поиска'));
         } else {
             $Autosearch = Autosearch::model()->findByPk($id);
             $Autosearch->criteria = serialize($this->getCriteria());
             $Autosearch->name = $name;
             $Autosearch->update();
             Yii::app()->user->setFlash('success', Yii::t('default', 'Автопоиск успешно изменен.'));
         }
     } else {
         Yii::app()->user->setFlash('error', Yii::t('default', 'Автопоиск не изменены. Необходимо задать критерии поиска'));
     }
 }
 public function autosearch()
 {
     $model = get_class($this);
     $arrComponents = Yii::app()->getComponents(false);
     //Yii::log("autosearch components=[".print_r( $arrComponents , true )."]" , 'info');
     if (isset($arrComponents['amqp'])) {
         //Yii::log("autosearch components amqp as present" , 'info');
         $strSerialize = @serialize($this);
         $this->sendByAMQPAutosearch($strSerialize);
         $Autosearch = Autosearch::model()->findAllByAttributes(['model' => $model, 'active' => Autosearch::ACTIVE]);
         foreach ($Autosearch as $element) {
             $element->checkOn($this);
         }
     } else {
         //Yii::log("autosearch components amqp as NOT present" , 'info');
         $Autosearch = Autosearch::model()->findAllByAttributes(['model' => $model, 'active' => Autosearch::ACTIVE]);
         foreach ($Autosearch as $element) {
             $element->checkOn($this);
         }
     }
     unset($arrComponents);
 }
示例#4
0
 public function processReceive(PhpAmqpLib\Message\AMQPMessage $msg)
 {
     //$this->logme("processReceive msg=[".print_r( $msg , true )."]" );
     $this->logme("processReceive msg=[" . $msg->body . "]");
     $data = $msg->body;
     if ($data) {
         try {
             $obj = @unserialize($data);
             if (is_a($obj, 'C2goActiveRecord')) {
                 $model = get_class($obj);
                 $this->logme("processReceive model=[{$model}]");
                 $Autosearch = Autosearch::model()->findAllByAttributes(['model' => $model]);
                 //$this->logme("processReceive count(Autosearch)=[".count( $Autosearch , true )."]" );
                 foreach ($Autosearch as $element) {
                     $element->checkOn($obj);
                 }
                 $msg->delivery_info['channel']->basic_ack($msg->delivery_info['delivery_tag']);
             }
         } catch (Exception $e) {
             $this->logme("processReceive exception on process");
         }
     }
     $this->logme("processReceive end");
 }
 public function actionActivate($id)
 {
     Autosearch::model()->updateByPk($id, ['active' => Autosearch::ACTIVE]);
     Yii::app()->user->setFlash('success', Yii::t('CabinetModule.default', 'Автопоиск успешно активирован.'));
     $this->redirect('/cabinet/autosearch');
 }
<?php

$variants = array_merge(['' => Yii::t('default', 'Все')], Autosearch::model()->getModul());
?>
<div class="row">
    <div class="col-sm-12">
        <table>
            <tr>
				<?php 
$curFilter = isset($_GET['filter']) ? $_GET['filter'] : '';
foreach ($variants as $filter => $name) {
    $counter = AutosearchResult::model()->resultTotalCount($filter != '' ? $filter : 'All');
    ?>
	                <td>
						<?php 
    if ($curFilter == $filter) {
        echo $name . '<sup>' . $counter . '</sup>';
    } else {
        ?>
							<a href="/autosearch/result?filter=<?php 
        echo $filter;
        ?>
"><?php 
        echo $name;
        ?>
</a>
							<sup><?php 
        echo $counter;
        ?>
</sup>
				<?php