static function postClone(NotificationTemplate $clone, $oldid) { global $DB; $trad = new NotificationTemplateTranslation(); $fkey = getForeignKeyFieldForTable($clone->getTable()); $crit = array($fkey => $oldid); foreach ($DB->request($trad->getTable(), $crit) as $data) { unset($data['id']); $data[$fkey] = $clone->getID(); $trad->add(Toolbox::addslashes_deep($data)); } }
public static function install(Migration $migration) { global $DB; $migration->displayMessage("Migrate PluginOrderOrder notifications"); $template = new NotificationTemplate(); $templates_id = false; $query_id = "SELECT `id`\n FROM `glpi_notificationtemplates`\n WHERE `itemtype`='PluginOrderOrder'\n AND `name` = 'Order Validation'"; $result = $DB->query($query_id) or die($DB->error()); if ($DB->numrows($result) > 0) { $templates_id = $DB->result($result, 0, 'id'); } else { $tmp = array('name' => 'Order Validation', 'itemtype' => 'PluginOrderOrder', 'date_mod' => $_SESSION['glpi_currenttime'], 'comment' => '', 'css' => ''); $templates_id = $template->add($tmp); } if ($templates_id) { $translation = new NotificationTemplateTranslation(); if (!countElementsInTable($translation->getTable(), "`notificationtemplates_id`='{$templates_id}'")) { $tmp['notificationtemplates_id'] = $templates_id; $tmp['language'] = ''; $tmp['subject'] = '##lang.ordervalidation.title##'; $tmp['content_text'] = '##lang.ordervalidation.url## : ##ordervalidation.url## ##lang.ordervalidation.entity## : ##ordervalidation.entity## ##IFordervalidation.name####lang.ordervalidation.name## : ##ordervalidation.name## ##ENDIFordervalidation.name## ##IFordervalidation.numorder####lang.ordervalidation.numorder## : ##ordervalidation.numorder## ##ENDIFordervalidation.numorder## ##IFordervalidation.orderdate####lang.ordervalidation.orderdate## : ##ordervalidation.orderdate####ENDIFordervalidation.orderdate## ##IFordervalidation.state####lang.ordervalidation.state## : ##ordervalidation.state####ENDIFordervalidation.state## ##IFordervalidation.users####lang.ordervalidation.users## : ##ordervalidation.users####ENDIFordervalidation.users## ##IFordervalidation.comment####lang.ordervalidation.comment## : ##ordervalidation.comment####ENDIFordervalidation.comment##'; $tmp['content_html'] = '<p><strong>##lang.ordervalidation.url##</strong> : ' . '<a href=\\"##ordervalidation.url##\\">##ordervalidation.url##</a><br />' . '<br /><strong>##lang.ordervalidation.entity##</strong> : ##ordervalidation.entity##<br />' . ' ##IFordervalidation.name##<strong>##lang.ordervalidation.name##</strong>' . ' : ##ordervalidation.name####ENDIFordervalidation.name##<br />' . '##IFordervalidation.numorder##<strong>##lang.ordervalidation.numorder##</strong>' . ' : ##ordervalidation.numorder####ENDIFordervalidation.numorder##<br />##IFordervalidation.orderdate##<strong>##lang.ordervalidation.orderdate##</strong>' . ' : ##ordervalidation.orderdate####ENDIFordervalidation.orderdate##<br />' . '##IFordervalidation.state##<strong>##lang.ordervalidation.state##</strong>' . ' : ##ordervalidation.state####ENDIFordervalidation.state##<br />' . '##IFordervalidation.users##<strong>##lang.ordervalidation.users##</strong>' . ' : ##ordervalidation.users####ENDIFordervalidation.users##<br /><br />' . '##IFordervalidation.comment##<strong>##lang.ordervalidation.comment##</strong> : ##ordervalidation.comment####ENDIFordervalidation.comment##</p>'; $translation->add($tmp); } $notifs = array('New Order Validation' => 'ask', 'Confirm Order Validation' => 'validation', 'Cancel Order Validation' => 'undovalidation', 'Cancel Order' => 'cancel'); $notification = new Notification(); foreach ($notifs as $label => $name) { if (!countElementsInTable("glpi_notifications", "`itemtype`='PluginOrderOrder' AND `event`='{$name}'")) { $tmp = array('name' => $label, 'entities_id' => 0, 'itemtype' => 'PluginOrderOrder', 'event' => $name, 'mode' => 'mail', 'comment' => '', 'is_recursive' => 1, 'is_active' => 1, 'date_mod' => $_SESSION['glpi_currenttime'], 'notificationtemplates_id' => $templates_id); $notification->add($tmp); } } } $query_id = "SELECT `id`\n FROM `glpi_notificationtemplates`\n WHERE `itemtype`='PluginOrderOrder'\n AND `name` = 'Due date overtaken'"; $result = $DB->query($query_id) or die($DB->error()); if ($DB->numrows($result) > 0) { $templates_id = $DB->result($result, 0, 'id'); } else { $tmp = array('name' => 'Due date overtaken', 'itemtype' => 'PluginOrderOrder', 'date_mod' => $_SESSION['glpi_currenttime'], 'comment' => '', 'css' => ''); $templates_id = $template->add($tmp); } if ($templates_id) { $translation = new NotificationTemplateTranslation(); if (!countElementsInTable($translation->getTable(), "`notificationtemplates_id`='{$templates_id}'")) { $tmp = array(); $tmp['notificationtemplates_id'] = $templates_id; $tmp['language'] = ''; $tmp['subject'] = '##order.action## ##order.entity##'; $tmp['content_text'] = '##lang.order.entity## : ##order.entity##\\n' . ' \\n##FOREACHorders##\\n' . '##lang.order.item.name## : ##order.item.name##\\n ' . '##lang.order.item.numorder## : ##order.item.numorder##\\n ' . '##lang.order.item.orderdate## : ##order.item.orderdate##\\n ' . '##lang.order.item.duedate## : ##order.item.duedate##\\n ' . '##lang.order.item.deliverydate## : ##order.item.deliverydate##\\n ' . '##order.item.url## \\n ##ENDFOREACHorders##'; $tmp['content_html'] = "##lang.order.entity## : ##order.entity##<br /> " . "<br />##FOREACHorders##<br />" . "##lang.order.item.name## : ##order.item.name##<br /> " . "##lang.order.item.numorder## : ##order.item.numorder##<br /> " . "##lang.order.item.orderdate## : ##order.item.orderdate##<br /> <a>" . "##lang.order.item.duedate## : ##order.item.duedate##<br /> </a><a>" . "##lang.order.item.deliverydate## : ##order.item.deliverydate##<br /> </a><a>" . "##order.item.url##</a><br /> ##ENDFOREACHorders##"; $translation->add($tmp); } $notifs = array('Due date overtaken' => 'duedate'); $notification = new Notification(); foreach ($notifs as $label => $name) { if (!countElementsInTable("glpi_notifications", "`itemtype`='PluginOrderOrder' AND `event`='{$name}'")) { $tmp = array('name' => $label, 'entities_id' => 0, 'itemtype' => 'PluginOrderOrder', 'event' => $name, 'mode' => 'mail', 'comment' => '', 'is_recursive' => 1, 'is_active' => 1, 'date_mod' => $_SESSION['glpi_currenttime'], 'notificationtemplates_id' => $templates_id); $notification->add($tmp); } } } $template = new NotificationTemplate(); $templates_id = false; $query_id = "SELECT `id`\n FROM `glpi_notificationtemplates`\n WHERE `itemtype`='PluginOrderOrder'\n AND `name` = 'Order Delivered'"; $result = $DB->query($query_id) or die($DB->error()); if ($DB->numrows($result) > 0) { $templates_id = $DB->result($result, 0, 'id'); } else { $tmp = array('name' => 'Order Delivered', 'itemtype' => 'PluginOrderOrder', 'date_mod' => $_SESSION['glpi_currenttime'], 'comment' => '', 'css' => ''); $templates_id = $template->add($tmp); } if ($templates_id) { $translation = new NotificationTemplateTranslation(); if (!countElementsInTable($translation->getTable(), "`notificationtemplates_id`='{$templates_id}'")) { $tmp['notificationtemplates_id'] = $templates_id; $tmp['language'] = ''; $tmp['subject'] = '##order.action## ##ordervalidation.name## ##ordervalidation.numorder##'; $tmp['content_text'] = '##order.action## ##lang.ordervalidation.name## : ##ordervalidation.name## ##lang.ordervalidation.orderdate## : ##ordervalidation.orderdate## ##lang.ordervalidation.entity## : ##ordervalidation.entity##'; $tmp['content_html'] = '<p>##order.action## <br /><br />  ##lang.ordervalidation.name## : <br />  ##ordervalidation.name## <br />  ##lang.ordervalidation.orderdate## : <br />  ##ordervalidation.orderdate## <br />  <br />  ##lang.ordervalidation.entity## : <br /> ##ordervalidation.entity##</p>'; $translation->add($tmp); } } $notifs = array('Order Delivered' => 'delivered'); $notification = new Notification(); foreach ($notifs as $label => $name) { if (!countElementsInTable("glpi_notifications", "`itemtype`='PluginOrderOrder' AND `event`='{$name}'")) { $tmp = array('name' => $label, 'entities_id' => 0, 'itemtype' => 'PluginOrderOrder', 'event' => $name, 'mode' => 'mail', 'comment' => '', 'is_recursive' => 1, 'is_active' => 1, 'date_mod' => $_SESSION['glpi_currenttime'], 'notificationtemplates_id' => $templates_id); $notification->add($tmp); } } }