Dans cette section, vous trouverez des exemples couvrant une variété d'options de gestion des tâches. Ces exemples devraient vous donner une idée de l'utilisation des scripts PHP dans MyQ. Vous pouvez également substituer les propriétés et les méthodes dans les exemples pour les utiliser comme blocs de construction de scripts plus complexes.

Actions basées sur le nombre de pages
Déplacez les travaux avec un nombre plus élevé de pages couleur vers une file d'attente monochrome.

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

Supprimez les travaux comportant un grand nombre de pages.

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

Actions basées sur la taille du travail
Déplacez les tâches volumineuses vers une file d'attente dédiée.

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

Supprimez les travaux surdimensionnés.

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

Actions basées sur le format papier
Déplacez les travaux au format papier A3 vers une file d'attente dédiée.

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

Actions basées sur le propriétaire du travail
Déplacer les travaux d'un certain propriétaire vers une file d'attente dédiée.

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

Modifiez le propriétaire de la tâche.

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

Actions basées sur la propriété duplex
Déplacez les travaux recto verso vers une file d'attente recto verso.

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

Déplacer les travaux simplex vers une file d'attente simplex.

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

Actions basées sur la propriété color
Déplacez les tâches couleur vers une file d'attente couleur.

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

Actions basées sur le nom du travail ou l'application source
Déplacez les travaux imprimés dans MS Word vers une file d'attente dédiée.

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

Supprimer les travaux envoyés depuis Facebook.

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

Actions basées sur les droits à une file d'attente
Déplacer les travaux des utilisateurs qui ne sont pas autorisés à imprimer d'une file d'attente vers une autre file d'attente

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

Actions basées sur l'appartenance à un groupe
Déplacer les travaux envoyés par les membres d'un groupe vers une file d'attente dédiée

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

Actions basées sur le PDL du travail
Déplacer tous les travaux envoyés dans un certain PDL vers une file d'attente dédiée

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

Envoi de messages de journal personnalisés à MyQ
Envoyer un message d'informations de journal à MyQ Log

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

Des actions complexes

Si le nombre de pages multiplié par le nombre de copies dépasse un certain nombre, supprimez le travail et informez l'utilisateur

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

Déplacer le travail vers une file d'attente, si autorisé

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

Déplacer le travail vers la première file d'attente personnelle 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;
}
PHP