MyQ X Server
10.3 10.2 8.2 EoL Print Server Central Server English French German Italian Portuguese Spanish
10.3 10.2 8.2 EoL Print Server Central Server English French German Italian Portuguese Spanish

Exemples d’actions de scripts PHP

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

Actions en fonction du nombre de pages
: déplacez les travaux comportant un grand nombre de pages en couleur vers une file d’attente monochrome.

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

Supprimez les travaux comportant un grand nombre de pages.

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


Actions en fonction de la taille du travail
Déplacer les travaux volumineux vers une file d’attente dédiée.

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

Supprimez les travaux de trop grande taille.

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


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

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


Actions en fonction du propriétaire
du travail : transférez les travaux d’un propriétaire donné 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 en fonction de la propriété
recto-verso : déplacez les travaux recto-verso vers une file d’attente recto-verso.

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

Déplacer les travaux en recto vers une file d’attente recto.

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


Actions basées sur la propriété
couleur : transférez les travaux en 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 d’impression dans 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 depuis Facebook.

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


Actions basées sur les droits d’accès à une file
d’attente : déplacer les travaux des utilisateurs non autorisés à imprimer vers 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 du travail
: déplacer tous les travaux envoyés dans un certain PDL vers une file d’attente dédiée

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


Envoi de messages de journalisation personnalisés à MyQ
: envoyez un message d’information de journalisation au journal MyQ

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 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 vers 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;
}