Skip to main content
Skip table of contents

Beispiele für PHP-Skript-Aktionen

In diesem Abschnitt finden Sie Beispiele für eine Vielzahl von Auftragsverwaltungsoptionen. Diese Beispiele sollen Ihnen eine Vorstellung davon vermitteln, wie Sie die PHP-Skripte in MyQ verwenden können. Sie können die Eigenschaften und Methoden in den Beispielen auch ersetzen, um sie als Bausteine für komplexere Skripte zu verwenden.

Aktionen basierend auf der Anzahl der Seiten
Verschieben Sie Aufträge mit einer höheren Anzahl von Farbseiten in eine Monochrom-Warteschlange.

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

Löschen Sie Aufträge mit einer großen Anzahl von Seiten.

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

 

Maßnahmen je nach Umfang des Auftrags
Verschieben Sie große Aufträge in eine spezielle Warteschlange.

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

Löschen Sie übergroße Aufträge.

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

 

Maßnahmen auf der Grundlage des Papierformats
Verschieben Sie Aufträge mit dem Papierformat A3 in eine spezielle Warteschlange.

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

 

Aktionen auf der Grundlage des Auftragseigentümers
Verschieben Sie Aufträge eines bestimmten Eigentümers in eine spezielle Warteschlange.

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

Ändern Sie den Eigentümer des Auftrags.

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

 

Aktionen auf der Grundlage der Duplex-Eigenschaft
Verschieben Sie Duplex-Aufträge in eine Duplex-Warteschlange.

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

Verschieben Sie Simplex-Aufträge in eine Simplex-Warteschlange.

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

 

Aktionen auf der Grundlage der Farbeigenschaft
Verschieben Sie Farbaufträge in eine Farbwarteschlange.

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

 

Aktionen auf der Grundlage des Auftragsnamens oder der Quellanwendung
Verschieben Sie in MS Word gedruckte Aufträge in eine spezielle Warteschlange.

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

Löschen Sie von Facebook gesendete Aufträge.

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

 

Aktionen auf der Grundlage der Rechte an einer Warteschlange
Verschieben von Aufträgen von Benutzern, die nicht in einer Warteschlange drucken dürfen, in eine andere Warteschlange

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

 

Aktionen auf der Grundlage der Gruppenzugehörigkeit
Verschieben von Aufträgen, die von Mitgliedern einer Gruppe gesendet wurden, in eine spezielle Warteschlange

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

 

Aktionen auf der Grundlage der PDL des Auftrags
Verschieben aller in einer bestimmten PDL gesendeten Aufträge in eine spezielle Warteschlange

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

 

Senden von benutzerdefinierten Protokollmeldungen an MyQ
Senden Sie eine Log-Info-Nachricht an MyQ Log

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

 

Komplexe Aktionen

Wenn die Anzahl der Seiten multipliziert mit der Anzahl der Kopien eine bestimmte Anzahl überschreitet, wird der Auftrag gelöscht und der Benutzer informiert.

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

 

Verschieben Sie den Auftrag in eine Warteschlange, falls erlaubt

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

 

Verschieben Sie den Auftrag in die erste verfügbare persönliche Warteschlange

CODE
// 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.