Вход Регистрация
Файл: concrete5.7.5.6/concrete/jobs/index_search_all.php
Строк: 63
<?php
namespace ConcreteJob;

use 
Loader;
use 
QueueableJob;
use 
ConcreteCorePageSearchIndexedSearch;
use 
CollectionAttributeKey;
use 
FileAttributeKey;
use 
UserAttributeKey;
use 
Page;
use 
ZendQueueQueue as ZendQueue;
use 
ZendQueueMessage as ZendQueueMessage;

class 
IndexSearchAll extends QueueableJob
{

    public 
$jNotUninstallable 1;
    public 
$jSupportsQueue true;

    protected 
$indexedSearch;

    public function 
getJobName()
    {
        return 
t("Index Search Engine - All");
    }

    public function 
getJobDescription()
    {
        return 
t("Empties the page search index and reindexes all pages.");
    }

    public function 
start(ZendQueue $q)
    {
        
$this->indexedSearch = new IndexedSearch();

        
$attributes CollectionAttributeKey::getList();
        
$attributes array_merge($attributesFileAttributeKey::getList());
        
$attributes array_merge($attributesUserAttributeKey::getList());
        foreach (
$attributes as $ak) {
            
$ak->updateSearchIndex();
        }

        
$db Loader::db();
        
$db->Execute('truncate table PageSearchIndex');
        
$r $db->Execute(
            
'select Pages.cID
            from Pages
                left join CollectionSearchIndexAttributes csia
                    on Pages.cID = csia.cID
            where (ak_exclude_search_index is null or ak_exclude_search_index = 0) and cIsActive = 1'
        
);
        while (
$row $r->FetchRow()) {
            
$q->send($row['cID']);
        }
    }

    public function 
finish(ZendQueue $q)
    {
        
$db Loader::db();
        
$total $db->GetOne('select count(*) from PageSearchIndex');
        return 
t('Index updated. %s pages indexed.'$total);
    }

    public function 
processQueueItem(ZendQueueMessage $msg)
    {
        
$c Page::getByID($msg->body'ACTIVE');
        
$cv $c->getVersionObject();
        if (
is_object($cv)) {
            
$c->reindex($this->indexedSearchtrue);
        }
    }
}
Онлайн: 0
Реклама