am folosit Programator modul cu integrarea moderării conținutului pentru a publica un conținut automat. Funcționează perfect folosind modulul. Acum vreau să adaug o funcționalitate conform căreia, odată ce conținutul este publicat prin cron, un e-mail va fi trimis autorului respectivului conținut.
am folosit hook_scheduler_publish_action
pentru a efectua această acțiune, dar, din păcate, mă confrunt cu un scenariu diferit.
- Dacă elimin codul de publicare al nodului și păstrez doar codul de trimitere a e-mailului, e-mailul este lansat.
- Dacă elimin codul de trimitere a e-mailului și păstrez numai codul de publicare a nodului, nodul este publicat.
- Dacă le păstrez pe amândouă, se trimit doar mail, conținutul nu este publicat.
Ref: https://git.drupalcode.org/project/scheduler/blob/8.x-1.x/scheduler.api.php
Codul de mai jos este doar publicarea conținutului, nu trimiterea de e-mail.
funcția MYMODULE_scheduler_publish_action(NodeInterface $nod) {
// starea de moderare a nodului va fi „publicată”
$nod->set('stare_moderare', 'publicat');
$nod->salvare();
// trimite e-mail autorului
$mail_params = matrice(
'mail_subject' => 'execută cron',
'mail_body' => '<p>nodul publicat folosind programatorul</p>',
'mail_to' => '[email protected]'
);
\Drupal::service('MYMODULE.common_service')->FunctionToSendEmail($mail_params);
}
Codul de mai jos trimite doar e-mailuri, nu publică conținut.
funcția MYMODULE_scheduler_publish_action(NodeInterface $nod) {
// trimite e-mail autorului
$mail_params = matrice(
'mail_subject' => 'execută cron',
'mail_body' => '<p>nodul publicat folosind programatorul</p>',
'mail_to' => '[email protected]'
);
\Drupal::service('MYMODULE.common_service')->FunctionToSendEmail($mail_params);
// starea de moderare a nodului va fi „publicată”
$nod->set('stare_moderare', 'publicat');
$nod->salvare();
}
Asta înseamnă că acest cârlig efectuează doar prima acțiune și le ignoră pe altele.
Acum întrebarea mea este cum voi efectua mai multe acțiuni folosind acest cârlig sau există vreo altă procedură pentru a face acest lucru?
Vă rog să mă ajutați. Mulțumesc anticipat.