Skip to main content
Skip table of contents

Ejemplos de acciones de scripts PHP

En esta sección puede encontrar ejemplos que cubren una variedad de opciones de administración de trabajos. Estos ejemplos deberían darle una idea sobre cómo usar las secuencias de comandos PHP en MyQ. También puede sustituir las propiedades y los métodos de los ejemplos para usarlos como componentes básicos de secuencias de comandos más complejas.

Acciones en función del número de páginas
Mueva trabajos con una mayor cantidad de páginas en color a una cola monocromática.

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

Elimine trabajos con una gran cantidad de páginas.

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

Acciones basadas en el tamaño del trabajo
Mueva trabajos grandes a una cola dedicada.

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

Eliminar trabajos de gran tamaño.

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

Acciones basadas en formato papel
Mueva trabajos con formato de papel A3 a una cola dedicada.

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

Acciones basadas en el propietario del trabajo
Mueva los trabajos de un determinado propietario a una cola dedicada.

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

Cambiar el propietario del trabajo.

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

Acciones basadas en la propiedad dúplex
Mueva trabajos dúplex a una cola dúplex.

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

Mover trabajos simplex a una cola simplex.

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

Acciones basadas en la propiedad del color.
Mueva trabajos de color a una cola de color.

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

Acciones basadas en el nombre del trabajo o la aplicación de origen
Mover trabajos impresos en MS Word a una cola dedicada.

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

Eliminar trabajos enviados desde Facebook.

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

Acciones basadas en los derechos a una cola
Mueva los trabajos de los usuarios que no pueden imprimir de una cola a una cola diferente.

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

Acciones basadas en la pertenencia al grupo
Mover trabajos enviados por miembros de un grupo a una cola dedicada.

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

Acciones basadas en la PDL del trabajo
Mueva todos los trabajos enviados en un PDL determinado a una cola dedicada.

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

Envío de mensajes de registro personalizados a MyQ
Enviar un mensaje de información de registro a MyQ Log.

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

Acciones complejas

Si el número de páginas multiplicado por el número de copias supera un cierto número, elimine el trabajo e informe al usuario.

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 el trabajo a una cola, si está 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 el trabajo a la primera cola personal disponible.

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.