Skip to main content
Skip table of contents

Ejemplos de acciones de scripts PHP

En esta sección puedes encontrar ejemplos que cubren una variedad de opciones de gestión de trabajos. Estos ejemplos deberían darte una idea de cómo usar el scripting PHP en MyQ. También puede sustituir las propiedades y métodos de los ejemplos para utilizarlos como bloques de construcción de scripts más complejos.

Acciones en función del número de páginas
Mueva los trabajos con un mayor número de páginas en color a una cola monocromo.

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

Eliminar trabajos con un gran número de páginas.

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

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

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

Borrar trabajos sobredimensionados.

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

Acciones basadas en el formato papel
Mueva los trabajos con formato de papel A3 a una cola específica.

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

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

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

Cambia el propietario del trabajo.

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

Acciones basadas en la propiedad dúplex
Mover 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 color
Mover 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
Mueva los trabajos impresos en MS Word a una cola específica.

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 de una cola
Mover los trabajos de los usuarios que no pueden imprimir en una cola a otra cola diferente

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

Acciones basadas en la pertenencia a un grupo
Mover los trabajos enviados por los miembros de un grupo a una cola específica

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

Acciones basadas en el PDL del puesto
Mover todos los trabajos enviados en un determinado PDL 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 número determinado, 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.