Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Import/Data/Notice.php
<?php

namespace XF\Import\Data;

class
Notice extends AbstractEmulatedData
{
    public function
getImportType()
    {
        return
'notice';
    }

    public function
getEntityShortName()
    {
        return
'XF:Notice';
    }

    public function
setPageCriteria(array $criteria)
    {
       
$pageCriteria = $this->app()->criteria('XF:Page', $this->reformatCriteria($criteria));
       
$this->page_criteria = $pageCriteria->getCriteria();
    }

    public function
setUserCriteria(array $criteria)
    {
       
$userCriteria = $this->app()->criteria('XF:User', $this->reformatCriteria($criteria));
       
$this->user_criteria = $userCriteria->getCriteria();
    }

   
/**
     * Reformats criteria from [$rule => $data] to [$rule => ['rule' => $rule, 'data' => $data]]
     *
     * @param array $criteria
     *
     * @return array
     */
   
protected function reformatCriteria(array $criteria)
    {
       
$c = [];

        foreach (
$criteria AS $rule => $data)
        {
           
$c[$rule] = ['rule' => $rule, 'data' => $data];
        }

        return
$c;
    }

    protected function
preSave($oldId)
    {
       
$this->forceNotEmpty('message', $oldId);
    }

    protected function
postSave($oldId, $newId)
    {
       
/** @var \XF\Repository\Notice $repo */
       
$repo = $this->repository('XF:Notice');

        \
XF::runOnce('noticeCacheRebuild', function() use ($repo)
        {
           
$repo->rebuildNoticeCache();
        });
    }
}