Hromadné operace - Jet\DataListing_Operation

Každá operace nad seznamem dat je tvořena svou třídou, která dědí od abstraktní třídy Jet\DataListing_Operation a implementuje provedení operace samotné.

Příklad hromadné operace zablokování uživatelů modulu ukázkové aplikace ManageAccess.Administrators.Users:

namespace JetApplicationModule\ManageAccess\Administrators\Users;

use 
Jet\DataListing_Operation;
use 
Jet\Logger;
use 
Jet\Tr;

use 
JetApplication\Auth_Administrator_User as User;

class 
Listing_Operation_Block extends DataListing_Operation
{
    public const 
KEY 'block';
    
    public function 
getKey(): string
    
{
        return static::
KEY;
    }
    
    public function 
getTitle(): string
    
{
        return 
Tr::_('Block filtered users');
    }
    
    public function 
perform(): void
    
{
        
$ids $this->listing->getAllIds();

        foreach(
$ids as $id) {
            
$user User::get$id );
            if(
                !
$user ||
                
$user->isBlocked()
            ) {
                continue;
            }
            
            
            
$user->block();
            
$user->save();
            
            
Logger::success(
                
event'admin_blocked',
                
event_message'Administrator '.$user->getUsername().' ('.$user->getId().') has been blocked',
                
context_object_id$user->getId(),
                
context_object_name$user->getUsername()
            );
        }
    }
}

Přehled metod

Metoda Význam
public setListing(
DataListing $listing
) : void
Seznam automaticky při předání operace nastavuje operaci referenci na sebe. K tomu slouží tato metoda.
public getListing(
) : DataListing
Vrací instanci seznamu dat do kterého operace náleží.
public getKey(
) : string
Vrací unikátní klíč identifikující operaci. Doporučuje se implementovat takto: class Listing_Operation_Block extends Listing_Operation
{
    public const 
KEY 'block';
    
    public function 
getKey(): string
    
{
        return static::
KEY;
    }
}
A s operací lze následně pracovat takto: $listing->operationListing_Operation_Block::KEY )->perform();
public getTitle(
) : string
Vrací vygenerovaný a případně již přeložený titulek operace.
public getIcon(
) : string
Může vrátit název ikony operace. Nepovinné.
abstract public perform(
) : void
Implementace provedení dané operace.
Předchozí kapitola
Exporty - Jet\DataListing_Export
Další kapitola
Konfigurace - SysConf_Jet_DataListing