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.

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

Eliminare i lavori con un numero elevato di pagine.

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

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

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

Eliminare i lavori sovradimensionati.

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

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

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

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

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

Cambiare il proprietario del lavoro.

PHP
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.

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

Sposta i lavori simplex in una coda simplex.

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

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

PHP
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.

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

Eliminare i lavori inviati da Facebook.

PHP
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.

PHP
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.

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

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

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

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

PHP
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

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

Spostare il lavoro in una coda, se consentito.

PHP
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 nella prima coda personale disponibile

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

JavaScript errors detected

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

If this problem persists, please contact our support.