MyQ X Server

Exemplos de ações em scripts PHP

Nesta seção, você encontrará exemplos que abrangem uma variedade de opções de gerenciamento de trabalhos. Esses exemplos devem dar uma ideia de como usar os scripts PHP no MyQ. Você também pode substituir as propriedades e métodos nos exemplos para usá-los como blocos de construção de scripts mais complexos.

Ações baseadas no número de páginas
Mova trabalhos com um número maior de páginas coloridas para uma fila de trabalhos monocromática.

PHP
if ($this->colorCount>20) {
 $this->moveToQueue("ForceMonochrome");
 }

Excluir trabalhos com um grande número de páginas.

PHP
if ($this->pageCount>500) {
 $this->delete();
 }


Ações baseadas no tamanho do trabalho
Mova trabalhos grandes para uma fila dedicada.

PHP
if ($this->dataSize>1000000) {
 $this->moveToQueue("LargeJobs");
 }

Exclua trabalhos com tamanho excessivo.

PHP
if ($this->dataSize>5000000) {
 $this->delete();
 }


Ações com base no formato
do papel Mova trabalhos no formato A3 para uma fila de trabalhos dedicada.

PHP
if ($this->paper==="a3") {
 $this->moveToQueue("LargePaperFormat");
 }


Ações com base no proprietário
do trabalho Mova trabalhos de um determinado proprietário para uma fila dedicada.

PHP
if ($this->owner->name==="eliot.kate") {
 $this->moveToQueue("EliotKate");
 }

Altere o proprietário do trabalho.

PHP
if ($this->owner->name==="eliot.kate") {
 $this->owner=MyQ()->getUserByUserName("simon.kate");
 }


Ações com base na propriedade
de frente e verso Mova trabalhos em duplex para uma fila de duplex.

PHP
if ($this->duplex) {
 $this->moveToQueue("Duplex");
 }

Mova trabalhos simplex para uma fila simplex.

PHP
if ($this->duplex===false) {
 $this->moveToQueue("Simplex");
 }


Ações baseadas na propriedade
de cor Mova trabalhos coloridos para uma fila de cor.

PHP
if ($this->color) {
 $this->moveToQueue("Color");
 }


Ações baseadas no nome do trabalho ou no aplicativo
de origem Mova trabalhos impressos no MS Word para uma fila dedicada.

PHP
if (strpos($this->name,"Microsoft Word")!==false) {
 $this->moveToQueue("MSWord");
 }

Excluir trabalhos enviados do Facebook.

PHP
if (strpos($this->name,'Facebook')!==false) {
 $this->delete();
 }


Ações baseadas nos direitos de acesso a uma fila
Mova os trabalhos de usuários que não têm permissão para imprimir em uma fila de impressão para uma fila de trabalhos diferente

PHP
if ($this->owner->canPrintToQueue("Color")===false) {
 $this->moveToQueue("Monochrome");
 }


Ações baseadas na filiação
a um grupo Mova os trabalhos enviados por membros de um grupo para uma fila dedicada

PHP
if ($this->owner->hasGroup("Clerks")) {
 $this->moveToQueue("Clerks");
 }


Ações baseadas na PDL do trabalho
: mova todos os trabalhos enviados em uma determinada PDL para uma fila dedicada

PHP
if ($this->lang===0) {
 $this->moveToQueue("UnknownPDL");
 }


Envio de mensagens de log personalizadas para o MyQ
Envie uma mensagem de informação de log para o MyQ Log

PHP
MyQ()->logInfo("This message appears in the MyQ log.");


Ações complexas

Se o número de páginas multiplicado pelo número de cópias exceder um determinado valor, exclua o trabalho e informe o usuário

PHP
// get the number of pages and the number of copies
$pages_number = $this->pageCount; $copies_number = $this->copies;
// if total (pagescopies) exceeds 500, delete the job and notify its owner
if ( $pages_number * $copies_number>500) {
 $this->delete(); $this->owner->sendNotification("error","Job refused", "Cannot
 print jobs exceeding 500 pages.");
}


Mover o trabalho para uma fila de trabalhos, se permitido

PHP
if ($this->color) {
  if ($this->owner->canPrintToQueue("JPS2")) {
     $this->moveToQueue("JPS2");
  } else {
     $this->owner->sendEmail("Job error", "Color printing denied");
     $this->delete();
  }
}


Mover o trabalho para a primeira fila pessoal disponível

PHP
// get all user's queues sorted by priority
$personalQueues = $this->owner->personalQueues;
 
// loop them
foreach ($personalQueues as $q) {
    // skip queue if no printer is available
    if ($q->isAnyPrinterAvailable() === false) {
        continue;
    }
 
    // queue printer is available, move job to queue
    $this->moveToQueue($q->name);
    // job is moved, stop the loop
    break;
}