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.
if ($this->colorCount>20) {
$this->moveToQueue("ForceMonochrome");
}
Eliminar trabajos con un gran número de páginas.
if ($this->pageCount>500) {
$this->delete();
}
Acciones basadas en el tamaño del trabajo
Mueva los trabajos grandes a una cola dedicada.
if ($this->dataSize>1000000) {
$this->moveToQueue("LargeJobs");
}
Borrar trabajos sobredimensionados.
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.
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.
if ($this->owner->name==="eliot.kate") {
$this->moveToQueue("EliotKate");
}
Cambia el propietario del trabajo.
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.
if ($this->duplex) {
$this->moveToQueue("Duplex");
}
Mover trabajos simplex a una cola simplex.
if ($this->duplex===false) {
$this->moveToQueue("Simplex");
}
Acciones basadas en la propiedad color
Mover trabajos de color a una cola de color.
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.
if (strpos($this->name,"Microsoft Word")!==false) {
$this->moveToQueue("MSWord");
}
Eliminar trabajos enviados desde Facebook.
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
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
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
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
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.
// 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
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
// 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;
}