Skip to main content
Skip table of contents

Exemples d'actions de scripts PHP

Dans cette section, vous trouverez des exemples couvrant une variété d'options de gestion des emplois. Ces exemples devraient vous donner une idée de la manière d'utiliser les scripts PHP dans MyQ. Vous pouvez également substituer les propriétés et les méthodes des exemples pour les utiliser comme éléments de base de scripts plus complexes.

Actions basées sur le nombre de pages
Déplacer les travaux comportant un plus grand nombre de pages couleur vers une file d'attente monochrome.

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

Supprimer les travaux comportant un grand nombre de pages.

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

Actions basées sur l'importance du travail
Déplacer les travaux volumineux vers une file d'attente dédiée.

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

Supprimer les travaux surdimensionnés.

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

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

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

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.

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

Modifier le propriétaire du travail.

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

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

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

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

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

Actions basées sur la propriété de couleur
Déplacer les travaux couleur vers une file d'attente couleur.

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

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

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

Supprimer les travaux envoyés par Facebook.

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

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

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

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

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

Actions basées sur le PDL de l'emploi
Déplacer tous les travaux envoyés dans une certaine PDL vers une file d'attente dédiée

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

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

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

Actions complexes

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

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

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

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

Déplacer le travail dans la première file d'attente personnelle 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.