Web
Analytics
Skip to content

Concrete5 на русском языке

Иногда на все или определенные страницы сайта нужно добавить новый контент, либо одинаковый, либо генерируемый программно. В этом случае трудно вручную редактировать страницу добавляя или изменяя блоки или название. В этом случае используется небольшой скрипт, выполняющий эту работу в фоновом режиме, не потребляя много ресурсов и не влияя на работу сайта.

namespace Application\Job;

use \Concrete\Core\Job\Job as AbstractJob;

use Area;

use Block;

class UpdatePageDescription extends \Concrete\Core\Job\QueueableJob

{

// Обязательно название задачи

    public function getJobName()
    {
        return t("Page Description Updater.");
    }

    public function getJobDescription()

    {

        return t("Take product description and copy it to Page description.");

    }
    public function start(\ZendQueue\Queue $q)

    {

        

        $list = new \Concrete\Core\Page\PageList();

// можно отфильтровать список страниц.

//В этом примере фильтруем по типу страницы Полный (full)

        $list->filterByPageTypeHandle('full');

        $results = $list->executeGetResults();

        foreach($results as $queryRow) {             

                $q->send($queryRow['cID']);            

        }

    }

    public function processQueueItem(\ZendQueue\Message $msg)

    {

           $page = \Page::getByID($msg->body);

            // $masg->body передает числовой идентификатор $cID страницы


           /* Здесь выполняется необходимый код над страницей


                                 ...................................


          */   


  }

    public function finish(\ZendQueue\Queue $q)

    {

        return t('All pages processed');

    }


}

Загрузка беседы