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
A s operací lze následně pracovat takto:
$listing->operation( Listing_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. |