コード例 #1
0
ファイル: Keyword.php プロジェクト: evgeniys-hyuna/leadsite
 public function buildLeads()
 {
     $leads = array();
     $keywords = Keyword::model()->findAll('deleted_at IS NULL AND status = \'' . Keyword::STATUS_CHECKED . '\'');
     foreach ($keywords as $k) {
         $domain = '';
         $executorCriteria = new CDbCriteria();
         $executorCriteria->addCondition('keyword_id = :keyword_id');
         $executorCriteria->addCondition('status = :status');
         $executorCriteria->params = array(':keyword_id' => $k->id, ':status' => Executor::STATUS_DONE);
         $executorCriteria->order = 'id DESC';
         $executor = Executor::model()->find($executorCriteria);
         if ($executor) {
             $site = Site::model()->findAll('executor_id = :executor_id', array(':executor_id' => $executor->id));
             $domain .= $site[0]->domain;
         } else {
             $domain = 'This task has never been checked';
         }
         array_push($leads, array('id' => $k->id, 'keyword' => $k->name, 'domain' => strlen($domain) > 0 ? $domain : 'No results ' . $executor->id, 'search_engine' => $k->search_engine, 'updated' => $executor->deleted_at));
     }
     return new CArrayDataProvider($leads, array('sort' => array('attributes' => array('*')), 'pagination' => array('pageSize' => 50)));
 }
コード例 #2
0
ファイル: Executor.php プロジェクト: evgeniys-hyuna/leadsite
 public static function getActiveSearchEngines()
 {
     $currentExecutors = Executor::model()->findAll('deleted_at IS NULL');
     $activeSearchEngines = array();
     foreach ($currentExecutors as $e) {
         if (!$e->keyword_id) {
             continue;
         }
         $searchEngnie = '';
         if ($dotPos = strpos($e->keyword->search_engine, '.')) {
             $searchEngnie = substr($e->keyword->search_engine, 0, $dotPos);
         } else {
             $searchEngnie = $e->keyword->search_engine;
         }
         if (!in_array($searchEngnie, $activeSearchEngines)) {
             $activeSearchEngines[] = $searchEngnie;
         }
     }
     return $activeSearchEngines;
 }
コード例 #3
0
<?php

/* @var $this SiteController */
$this->pageTitle = Yii::app()->name;
?>

<p>Tasks done: <?php 
echo Executor::model()->count('status = \'' . Executor::STATUS_DONE . '\'');
?>
</p>
<p>Tasks in total: <?php 
echo Executor::model()->count();
?>
</p>
<p>Pending keywords: <?php 
echo Keyword::model()->count('status = \'' . Keyword::STATUS_PENDING . '\'');
?>
</p>

<h3>Active Executors</h3>

<div>
    <?php 
$this->widget('zii.widgets.grid.CGridView', array('id' => 'grvKeywords', 'dataProvider' => $executor->searchActive(), 'htmlOptions' => array(), 'columns' => array(array('name' => 'id', 'header' => 'ID', 'value' => function ($e) {
    return $e->id;
}), array('name' => 'keyword_id', 'header' => 'Keyword', 'value' => function ($e) {
    return String::build('{keyword_id}: {keyword}', array('keyword' => $e->keyword->name, 'keyword_id' => $e->keyword_id));
}), array('header' => 'Search Engine', 'value' => function ($e) {
    return ucwords($e->keyword->search_engine);
}), array('name' => 'status', 'header' => 'Status', 'value' => function ($e) {
    return ucwords($e->status);
コード例 #4
0
 public function actionTerminateExecutor($executorId)
 {
     $executor = Executor::model()->findByPk($executorId);
     $executor->stop();
     $this->redirect(Yii::app()->createUrl('site/statistics'));
 }