Skip to main content
Skip table of contents

Esempi di azioni di script PHP

In questa sezione si trovano esempi che coprono una serie di opzioni di gestione dei lavori. Questi esempi dovrebbero dare un'idea di come utilizzare lo scripting PHP in MyQ. È inoltre possibile sostituire le proprietà e i metodi degli esempi per utilizzarli come elementi costitutivi di script più complessi.

Azioni basate sul numero di pagine
Spostare i lavori con un numero maggiore di pagine a colori in una coda monocromatica.

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

Eliminare i lavori con un numero elevato di pagine.

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

 

Azioni basate sulle dimensioni del lavoro
Spostare i lavori di grandi dimensioni in una coda dedicata.

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

Eliminare i lavori sovradimensionati.

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

 

Azioni basate sul formato della carta
Spostare i lavori con formato carta A3 in una coda dedicata.

CODE
if ($this->paper===6) {
 $this->moveToQueue("LargePaperFormat");
 }

 

Azioni basate sul proprietario del lavoro
Sposta i lavori di un certo proprietario in una coda dedicata.

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

Cambiare il proprietario del lavoro.

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

 

Azioni basate sulla proprietà duplex
Sposta i lavori duplex in una coda duplex.

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

Sposta i lavori simplex in una coda simplex.

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

 

Azioni basate sulla proprietà del colore
Sposta i lavori a colori in una coda di colore.

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

 

Azioni basate sul nome del lavoro o sull'applicazione di origine
Spostare i lavori stampati in MS Word in una coda dedicata.

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

Eliminare i lavori inviati da Facebook.

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

 

Azioni basate sui diritti di una coda
Spostare i lavori degli utenti che non sono autorizzati a stampare in una coda in un'altra coda.

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

 

Azioni basate sull'appartenenza al gruppo
Spostare i lavori inviati dai membri di un gruppo in una coda dedicata.

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

 

Azioni basate sul PDL del lavoro
Spostare tutti i lavori inviati in un certo PDL in una coda dedicata

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

 

Invio di messaggi di log personalizzati a MyQ
Inviare un messaggio informativo di log a MyQ Log

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

 

Azioni complesse

Se il numero di pagine moltiplicato per il numero di copie supera un certo numero, eliminare il lavoro e informare l'utente

CODE
// 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.");
}

 

Spostare il lavoro in una coda, se consentito.

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

 

Spostare il lavoro alla prima coda personale disponibile

CODE
// 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;
}

 

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.