-<?php\r
-\r
-class commonAjax {\r
-\r
- public static function form($action, $titre, $form, $bouton = null, $cols = 2, $class = '', $extra = '', $return = false) {\r
- global $core;\r
- if ($class != '') {\r
- $class = ' ' . $class;\r
- }\r
- $bouton = is_null($bouton) ? __('Enregister') : $bouton;\r
- $colspan = $cols > 2 ? ' colspan="' . ($cols - 1) . '"' : '';\r
- $res = commonPage::bh();\r
- $res .= '<form action="' . $action . '" method="post">';\r
- $res .= '<table class="form' . $class . '">';\r
- $res .= '<tr><th' . $colspan . '><h1>' . $titre . '</h1></th><th class="right"><a href="#" class="closePopup">' . cubeMedia::image(IMG . '/close.png') . '</a></th></tr>';\r
- $res .= $form;\r
- if ($bouton) {\r
- $res .= '<tr><td colspan="' . $cols . '" class="right"><a href="#" class="submit">' . $core->typo->BoutonOK($bouton) . '</a></td></tr>';\r
- }\r
- $res .= '</table>';\r
- $res .= $extra;\r
- $res .= '</form>';\r
- $res .= commonPage::bf();\r
-\r
- if (!$return) {\r
- echo $res;\r
- exit;\r
- }\r
- return $res;\r
- }\r
-\r
- public static function page($liste, $page) {\r
- global $core;\r
- $core->user->changeSettings($liste, 'page', $page);\r
- $core->sauvePreferencesUtilisateur();\r
- }\r
-\r
- public static function parPage($liste, $nb) {\r
- global $core;\r
- $core->user->changeSettings($liste, 'par_page', $nb);\r
- $core->user->changeSettings($liste, 'page', 1);\r
- $core->sauvePreferencesUtilisateur();\r
- }\r
-\r
- public static function sort($liste, $orderby) {\r
- global $core;\r
- $settings = $core->user->getSettings($liste);\r
- if ($orderby == 'facture_id') {\r
- $orderby = 'CAST(facture_id AS SIGNED)';\r
- }\r
-\r
- if ($settings['orderby'] == $orderby) {\r
- $sens = ($settings['sens'] == 'ASC') ? 'DESC' : 'ASC';\r
- $core->user->changeSettings($liste, 'orderby', $orderby);\r
- $core->user->changeSettings($liste, 'sens', $sens);\r
- } else {\r
- $core->user->changeSettings($liste, 'orderby', $orderby);\r
- $core->user->changeSettings($liste, 'sens', 'ASC');\r
- }\r
- $core->sauvePreferencesUtilisateur();\r
- }\r
-\r
- public static function filtre($liste, $data = null) {\r
- global $core;\r
- $core->user->changeSettings($liste, 'filtres', $data);\r
- $core->user->changeSettings($liste, 'page', 1);\r
- $core->sauvePreferencesUtilisateur();\r
- }\r
-\r
- public static function motdepasseOublie($args, &$x) {\r
- self::form('recupMotdepasse', 'Mot de passe oublié ?', commonUrl::motdepasseOublie($args), __('Recevoir mon mot de passe par e-mail'));\r
- }\r
-\r
- public static function mesParametres($args, &$x) {\r
- self::form('sauveMesParametres', 'Mes paramètres', commonUrl::mesParametres($args), false);\r
- }\r
-\r
- public static function sauveMesParametres($args, &$x) {\r
- global $core;\r
- $dao = new commonDAOUtilisateur($core->con);\r
- $dao->changeParametres($core->user->utilisateur_id, $_POST['lang'], $_POST['login']);\r
- $x->addRedirection();\r
- }\r
-\r
- public static function recupMotdepasse($args, &$x) {\r
- global $core;\r
- $dao = new commonDAOUtilisateur($core->con);\r
- $utilisateur = $dao->selectByEmail($_POST['email']);\r
-\r
- if (!is_null($utilisateur) && $utilisateur->enabled) {\r
- $mail = new cubeMail();\r
- $mail->charset = 'UTF-8';\r
- $mail->from = FROM_NAME . '<' . FROM_EMAIL . '>';\r
- $mail->bcc = MAIL_BCC;\r
- $mail->subject = '[' . EMAIL_SUBJECT . '] ' . __('Récupération de vos identifiants');\r
- $mail->to = $utilisateur->prenom . ' ' . $utilisateur->nom . '<' . $utilisateur->email . '>';\r
- $body = __('Bonjour,') . "\r\n\r\n";\r
- $body .= ASK_IDENT . "\r\n";\r
- $body .= __('Voici toutes les informations vous permettant de vous y connecter à nouveau :') . "\r\n\r\n";\r
- $body .= __('Adresse') . ' : http://' . $_SERVER['HTTP_HOST'] . '/' . "\r\n";\r
- $body .= __('Identifiant') . ' : ' . $utilisateur->email . "\r\n";\r
- $body .= __('Mot de passe') . ' : ' . $utilisateur->password . "\r\n\r\n";\r
- $body .= __('Cordialement,') . "\r\n";\r
- $body .= TEAM_NAME;\r
- $mail->body = $body;\r
- $ok = $mail->send();\r
- $message = $ok ? __('Vos identifiants vous ont été envoyé par e-mail') : __("Une erreur s'est produite lors de l'envoi de vos identifiants");\r
- } else {\r
- $message = __('Cet e-mail ne correspond à aucun utilisateur du système');\r
- }\r
- $x->addAlert($message);\r
- $x->addClosePopup();\r
- }\r
-\r
- public static function changeMotdepasse($args, &$x) {\r
- self::form('sauveMotdepasse', 'Changer mon mot de passe', commonUrl::changeMotdepasse(), __('Enregistrer mon nouveau mot de passe'));\r
- }\r
-\r
- public static function sauveMotdepasse($args, &$x) {\r
- global $core;\r
-\r
- $ok = true;\r
- if ($_POST['actuel'] != $core->user->password) {\r
- $x->addError('actuel', '');\r
- $ok = false;\r
- } else {\r
- $x->addOk('actuel');\r
- }\r
-\r
- if (strlen($_POST['nouveau']) > 10 || strlen($_POST['nouveau']) < 6 || $_POST['nouveau'] != $_POST['confirmation']) {\r
- $x->addError('nouveau', '');\r
- $x->addError('confirmation', '');\r
- $ok = false;\r
- } else {\r
- $x->addOk('nouveau');\r
- $x->addOk('confirmation');\r
- }\r
-\r
- if ($ok) {\r
- $dao = new commonDAOUtilisateur($core->con);\r
- $dao->changeMotdepasse($core->user->utilisateur_id, $_POST['nouveau']);\r
-\r
- $_SESSION['user_password'] = $_POST['password'];\r
- $x->addClosePopup();\r
- $x->addAlert(__('Votre mot de passe a été modifié'));\r
- }\r
- }\r
-\r
- public static function connectAs($args, &$x) {\r
- global $core;\r
- $dao = new commonDAOUtilisateur($core->con);\r
- $utilisateur = $dao->selectById($args[1]);\r
-\r
- $_SESSION['user_email'] = $utilisateur->email;\r
- $_SESSION['user_password'] = $utilisateur->password;\r
-\r
- $x->addRedirection(SITE_PATH);\r
- }\r
-\r
- public static function sortFichiers($args, &$x) {\r
- commonAjax::sort('fichiers', $args[1]);\r
- $x->addContent('listeFichiers', commonUrl::listeFichiers());\r
- }\r
-\r
- public static function pageFichiers($args, &$x) {\r
- commonAjax::page('fichiers', $args[1]);\r
- $x->addContent('listeFichiers', commonUrl::listeFichiers());\r
- }\r
-\r
- public static function parPageFichiers($args, &$x) {\r
- commonAjax::parPage('fichiers', $_POST['par_page']);\r
- $x->addContent('listeFichiers', commonUrl::listeFichiers());\r
- }\r
-\r
- public static function searchFichiers($args, &$x) {\r
- $x->addContent('listeFichiers', commonUrl::listeFichiers());\r
- }\r
-\r
- public static function refreshFichiers($args, &$x) {\r
- $x->addContent('listeFichiers', commonUrl::listeFichiers());\r
- }\r
-\r
- public static function supprimeFichier($args, &$x) {\r
- global $core;\r
-\r
- array_shift($args);\r
- $path = implode('/', $args);\r
- $entreprise = array_shift($args);\r
- commonDroits::telecharger($entreprise);\r
-\r
- $dao = new commonDAOFichier($core->con);\r
- $dao->supprime($path);\r
- $x->addContent('listeFichiers', commonUrl::listeFichiers());\r
- }\r
-\r
- public static function formDashboard($args, &$x) {\r
- commonAjax::form('saveDashboard', __('Ajouter un élément au dashboard'), commonUrl::formDashboard($args));\r
- }\r
-\r
- public static function saveDashboard($args, &$x) {\r
- global $core;\r
-\r
- $c = $core->con->openCursor('dashboard');\r
- $c->site = MODE;\r
- $c->nom = $_POST['nom'];\r
- if ($_POST['dashboard_id'] == 'new') {\r
- $c->rubrique = $_POST['rubrique'];\r
- $c->equipier = $core->user->utilisateur_id;\r
- $c->settings = serialize($core->user->getSettings($_POST['rubrique']));\r
- $r = $core->con->select('SELECT MAX(dashboard_id) AS dashboard_id FROM dashboard');\r
- $c->dashboard_id = $r->dashboard_id + 1;\r
- $c->insert();\r
- } else {\r
- $c->update('WHERE dashboard_id=\'' . $_POST['dashboard_id'] . '\'');\r
- }\r
- $x->addRedirection(SITE_PATH);\r
- }\r
-\r
- public static function pageDashboard($args, &$x) {\r
- $settings = self::getDashboardSettings($args[1]);\r
- $settings['page'] = $args[2];\r
- $r = self::saveDashboardSettings($args[1], $settings);\r
- $x->addContent('dashboard_' . $args[1], commonUrl::displayDashboard($r));\r
- }\r
-\r
- public static function parPageDashboard($args, &$x) {\r
- $settings = self::getDashboardSettings($args[1]);\r
- $settings['par_page'] = $_POST['par_page'];\r
- $settings['page'] = 1;\r
- $r = self::saveDashboardSettings($args[1], $settings);\r
- $x->addContent('dashboard_' . $args[1], commonUrl::displayDashboard($r));\r
- }\r
-\r
- public static function sortDashboard($args, &$x) {\r
- $settings = self::getDashboardSettings($args[1]);\r
- if ($settings['orderby'] == $args[2]) {\r
- $settings['sens'] = ($settings['sens'] == 'ASC') ? 'DESC' : 'ASC';\r
- } else {\r
- $settings['orderby'] = $args[2];\r
- $settings['sens'] = 'ASC';\r
- }\r
- $r = self::saveDashboardSettings($args[1], $settings);\r
- $x->addContent('dashboard_' . $args[1], commonUrl::displayDashboard($r));\r
- }\r
-\r
- public static function saveDashboardSettings($dashboard, $settings) {\r
- global $core;\r
-\r
- $settings['page'] = $settings['page'] ? $settings['page'] : 1;\r
-\r
- if ($settings['par_page'] > 0) {\r
- $settings['limit'] = array(($settings['page'] - 1) * $settings['par_page'], $settings['par_page']);\r
- } else {\r
- $settings['limit'] = null;\r
- }\r
-\r
- $c = $core->con->openCursor('dashboard');\r
- $c->settings = serialize($settings);\r
- $c->update('WHERE dashboard_id=' . $dashboard);\r
- return $core->con->select('SELECT * FROM dashboard WHERE dashboard_id=\'' . $core->con->escape($dashboard) . '\'');\r
- }\r
-\r
- public static function getDashboardSettings($dashboard) {\r
- global $core;\r
- $r = $core->con->select('SELECT * FROM dashboard WHERE dashboard_id=\'' . $core->con->escape($dashboard) . '\'');\r
- return unserialize($r->settings);\r
- }\r
-\r
- public static function delDashboard($args, &$x) {\r
- global $core;\r
- $r = $core->con->execute('DELETE FROM dashboard WHERE dashboard_id=\'' . $core->con->escape($args[1]) . '\' AND equipier=\'' . $core->user->utilisateur_id . '\'');\r
- $x->addReplace('dashboard_' . $args[1], '');\r
- }\r
-\r
- public static function reloadDashboards($args, &$x) {\r
- $x->addContent('dash', commonUrl::listeDashboard(array()));\r
- }\r
-\r
- public static function orderDashboards($args, &$x) {\r
- global $core;\r
- $c = $core->con->openCursor('dashboard');\r
- $i = 1;\r
- foreach ($_GET['dashboard'] as $id) {\r
- $c->sort = $i;\r
- $c->update('WHERE dashboard_id=\'' . $core->con->escape($id) . '\'');\r
- $i++;\r
- }\r
- }\r
-\r
- public static function toggleDashboard($args, &$x) {\r
- global $core;\r
-\r
- $r = $core->con->select('SELECT state FROM dashboard WHERE dashboard_id=\'' . $core->con->escape($args[1]) . '\'');\r
- $new = ($r->state == '1') ? '0' : '1';\r
-\r
- $c = $core->con->openCursor('dashboard');\r
- $c->state = $new;\r
- $c->update('WHERE dashboard_id=\'' . $core->con->escape($args[1]) . '\'');\r
- }\r
-\r
- public static function syncftp($args, &$x) {\r
- commonDroits::min(5);\r
- $u = parse_url('ftp://' . ltrim($_POST['dest'], '/'));\r
- if (!isset($u['port'])) {\r
- $u['port'] = '21';\r
- }\r
-\r
- $commandes = array(\r
- 'set ftp:passive-mode ' . $_POST['mode'],\r
- 'mkdir -p ' . $u['path'],\r
- 'cd ' . $u['path'],\r
- 'lcd ' . $_POST['source'],\r
- 'mirror -Rve --parallel=5'\r
- );\r
-\r
- //$lftp->setManualArg( . '> mirror -Rv ' . $package);\r
-\r
- $lftp = new cubeCommandLine('lftp');\r
- $lftp->setArg('u', $u['user'] . ',' . $u['pass']);\r
- $lftp->setArg('p', $u['port']);\r
- $lftp->setArg('e', implode(';', $commandes));\r
- $lftp->setArg(null, $u['host']);\r
- $lftp->execute();\r
-\r
- $x->addValue('res', utf8_encode($lftp->output));\r
- }\r
-\r
-}\r
-\r
+<?php
+
+class commonAjax {
+
+ public static function form($action, $titre, $form, $bouton = null, $cols = 2, $class = '', $extra = '', $return = false) {
+ global $core;
+ if ($class != '') {
+ $class = ' ' . $class;
+ }
+ $bouton = is_null($bouton) ? __('Enregister') : $bouton;
+ $colspan = $cols > 2 ? ' colspan="' . ($cols - 1) . '"' : '';
+ $res = commonPage::bh();
+ $res .= '<form action="' . $action . '" method="post">';
+ $res .= '<table class="form' . $class . '">';
+ $res .= '<tr><th' . $colspan . '><h1>' . $titre . '</h1></th><th class="right"><a href="#" class="closePopup">' . cubeMedia::image(IMG . '/close.png') . '</a></th></tr>';
+ $res .= $form;
+ if ($bouton) {
+ $res .= '<tr><td colspan="' . $cols . '" class="right"><a href="#" class="submit">' . $core->typo->BoutonOK($bouton) . '</a></td></tr>';
+ }
+ $res .= '</table>';
+ $res .= $extra;
+ $res .= '</form>';
+ $res .= commonPage::bf();
+
+ if (!$return) {
+ echo $res;
+ exit;
+ }
+ return $res;
+ }
+
+ public static function page($liste, $page) {
+ global $core;
+ $core->user->changeSettings($liste, 'page', $page);
+ $core->sauvePreferencesUtilisateur();
+ }
+
+ public static function parPage($liste, $nb) {
+ global $core;
+ $core->user->changeSettings($liste, 'par_page', $nb);
+ $core->user->changeSettings($liste, 'page', 1);
+ $core->sauvePreferencesUtilisateur();
+ }
+
+ public static function sort($liste, $orderby) {
+ global $core;
+ $settings = $core->user->getSettings($liste);
+ if ($orderby == 'facture_id') {
+ $orderby = 'CAST(facture_id AS SIGNED)';
+ }
+
+ if ($settings['orderby'] == $orderby) {
+ $sens = ($settings['sens'] == 'ASC') ? 'DESC' : 'ASC';
+ $core->user->changeSettings($liste, 'orderby', $orderby);
+ $core->user->changeSettings($liste, 'sens', $sens);
+ } else {
+ $core->user->changeSettings($liste, 'orderby', $orderby);
+ $core->user->changeSettings($liste, 'sens', 'ASC');
+ }
+ $core->sauvePreferencesUtilisateur();
+ }
+
+ public static function filtre($liste, $data = null) {
+ global $core;
+ $core->user->changeSettings($liste, 'filtres', $data);
+ $core->user->changeSettings($liste, 'page', 1);
+ $core->sauvePreferencesUtilisateur();
+ }
+
+ public static function motdepasseOublie($args, &$x) {
+ self::form('recupMotdepasse', 'Mot de passe oublié ?', commonUrl::motdepasseOublie($args), __('Recevoir mon mot de passe par e-mail'));
+ }
+
+ public static function mesParametres($args, &$x) {
+ self::form('sauveMesParametres', 'Mes paramètres', commonUrl::mesParametres($args), false);
+ }
+
+ public static function sauveMesParametres($args, &$x) {
+ global $core;
+ $dao = new commonDAOUtilisateur($core->con);
+ $dao->changeParametres($core->user->utilisateur_id, $_POST['lang'], $_POST['login']);
+ $x->addRedirection();
+ }
+
+ public static function recupMotdepasse($args, &$x) {
+ global $core;
+ $dao = new commonDAOUtilisateur($core->con);
+ $utilisateur = $dao->selectByEmail($_POST['email']);
+
+ if (!is_null($utilisateur) && $utilisateur->enabled) {
+ $mail = new cubeMail();
+ $mail->charset = 'UTF-8';
+ $mail->from = FROM_NAME . '<' . FROM_EMAIL . '>';
+ $mail->bcc = MAIL_BCC;
+ $mail->subject = '[' . EMAIL_SUBJECT . '] ' . __('Récupération de vos identifiants');
+ $mail->to = $utilisateur->prenom . ' ' . $utilisateur->nom . '<' . $utilisateur->email . '>';
+ $body = __('Bonjour,') . "\r\n\r\n";
+ $body .= ASK_IDENT . "\r\n";
+ $body .= __('Voici toutes les informations vous permettant de vous y connecter à nouveau :') . "\r\n\r\n";
+ $body .= __('Adresse') . ' : http://' . $_SERVER['HTTP_HOST'] . '/' . "\r\n";
+ $body .= __('Identifiant') . ' : ' . $utilisateur->email . "\r\n";
+ $body .= __('Mot de passe') . ' : ' . $utilisateur->password . "\r\n\r\n";
+ $body .= __('Cordialement,') . "\r\n";
+ $body .= TEAM_NAME;
+ $mail->body = $body;
+ $ok = $mail->send();
+ $message = $ok ? __('Vos identifiants vous ont été envoyé par e-mail') : __("Une erreur s'est produite lors de l'envoi de vos identifiants");
+ } else {
+ $message = __('Cet e-mail ne correspond à aucun utilisateur du système');
+ }
+ $x->addAlert($message);
+ $x->addClosePopup();
+ }
+
+ public static function changeMotdepasse($args, &$x) {
+ self::form('sauveMotdepasse', 'Changer mon mot de passe', commonUrl::changeMotdepasse(), __('Enregistrer mon nouveau mot de passe'));
+ }
+
+ public static function sauveMotdepasse($args, &$x) {
+ global $core;
+
+ $ok = true;
+ if ($_POST['actuel'] != $core->user->password) {
+ $x->addError('actuel', '');
+ $ok = false;
+ } else {
+ $x->addOk('actuel');
+ }
+
+ if (strlen($_POST['nouveau']) > 10 || strlen($_POST['nouveau']) < 6 || $_POST['nouveau'] != $_POST['confirmation']) {
+ $x->addError('nouveau', '');
+ $x->addError('confirmation', '');
+ $ok = false;
+ } else {
+ $x->addOk('nouveau');
+ $x->addOk('confirmation');
+ }
+
+ if ($ok) {
+ $dao = new commonDAOUtilisateur($core->con);
+ $dao->changeMotdepasse($core->user->utilisateur_id, $_POST['nouveau']);
+
+ $_SESSION['user_password'] = $_POST['password'];
+ $x->addClosePopup();
+ $x->addAlert(__('Votre mot de passe a été modifié'));
+ }
+ }
+
+ public static function connectAs($args, &$x) {
+ global $core;
+ $dao = new commonDAOUtilisateur($core->con);
+ $utilisateur = $dao->selectById($args[1]);
+
+ $_SESSION['user_email'] = $utilisateur->email;
+ $_SESSION['user_password'] = $utilisateur->password;
+
+ $x->addRedirection(SITE_PATH);
+ }
+
+ public static function sortFichiers($args, &$x) {
+ commonAjax::sort('fichiers', $args[1]);
+ $x->addContent('listeFichiers', commonUrl::listeFichiers());
+ }
+
+ public static function pageFichiers($args, &$x) {
+ commonAjax::page('fichiers', $args[1]);
+ $x->addContent('listeFichiers', commonUrl::listeFichiers());
+ }
+
+ public static function parPageFichiers($args, &$x) {
+ commonAjax::parPage('fichiers', $_POST['par_page']);
+ $x->addContent('listeFichiers', commonUrl::listeFichiers());
+ }
+
+ public static function searchFichiers($args, &$x) {
+ $x->addContent('listeFichiers', commonUrl::listeFichiers());
+ }
+
+ public static function refreshFichiers($args, &$x) {
+ $x->addContent('listeFichiers', commonUrl::listeFichiers());
+ }
+
+ public static function supprimeFichier($args, &$x) {
+ global $core;
+
+ array_shift($args);
+ $path = implode('/', $args);
+ $entreprise = array_shift($args);
+ commonDroits::telecharger($entreprise);
+
+ $dao = new commonDAOFichier($core->con);
+ $dao->supprime($path);
+ $x->addContent('listeFichiers', commonUrl::listeFichiers());
+ }
+
+ public static function formDashboard($args, &$x) {
+ commonAjax::form('saveDashboard', __('Ajouter un élément au dashboard'), commonUrl::formDashboard($args));
+ }
+
+ public static function saveDashboard($args, &$x) {
+ global $core;
+
+ $c = $core->con->openCursor('dashboard');
+ $c->site = MODE;
+ $c->nom = $_POST['nom'];
+ if ($_POST['dashboard_id'] == 'new') {
+ $c->rubrique = $_POST['rubrique'];
+ $c->equipier = $core->user->utilisateur_id;
+ $c->settings = serialize($core->user->getSettings($_POST['rubrique']));
+ $r = $core->con->select('SELECT MAX(dashboard_id) AS dashboard_id FROM dashboard');
+ $c->dashboard_id = $r->dashboard_id + 1;
+ $c->insert();
+ } else {
+ $c->update('WHERE dashboard_id=\'' . $_POST['dashboard_id'] . '\'');
+ }
+ $x->addRedirection(SITE_PATH);
+ }
+
+ public static function pageDashboard($args, &$x) {
+ $settings = self::getDashboardSettings($args[1]);
+ $settings['page'] = $args[2];
+ $r = self::saveDashboardSettings($args[1], $settings);
+ $x->addContent('dashboard_' . $args[1], commonUrl::displayDashboard($r));
+ }
+
+ public static function parPageDashboard($args, &$x) {
+ $settings = self::getDashboardSettings($args[1]);
+ $settings['par_page'] = $_POST['par_page'];
+ $settings['page'] = 1;
+ $r = self::saveDashboardSettings($args[1], $settings);
+ $x->addContent('dashboard_' . $args[1], commonUrl::displayDashboard($r));
+ }
+
+ public static function sortDashboard($args, &$x) {
+ $settings = self::getDashboardSettings($args[1]);
+ if ($settings['orderby'] == $args[2]) {
+ $settings['sens'] = ($settings['sens'] == 'ASC') ? 'DESC' : 'ASC';
+ } else {
+ $settings['orderby'] = $args[2];
+ $settings['sens'] = 'ASC';
+ }
+ $r = self::saveDashboardSettings($args[1], $settings);
+ $x->addContent('dashboard_' . $args[1], commonUrl::displayDashboard($r));
+ }
+
+ public static function saveDashboardSettings($dashboard, $settings) {
+ global $core;
+
+ $settings['page'] = $settings['page'] ? $settings['page'] : 1;
+
+ if ($settings['par_page'] > 0) {
+ $settings['limit'] = array(($settings['page'] - 1) * $settings['par_page'], $settings['par_page']);
+ } else {
+ $settings['limit'] = null;
+ }
+
+ $c = $core->con->openCursor('dashboard');
+ $c->settings = serialize($settings);
+ $c->update('WHERE dashboard_id=' . $dashboard);
+ return $core->con->select('SELECT * FROM dashboard WHERE dashboard_id=\'' . $core->con->escape($dashboard) . '\'');
+ }
+
+ public static function getDashboardSettings($dashboard) {
+ global $core;
+ $r = $core->con->select('SELECT * FROM dashboard WHERE dashboard_id=\'' . $core->con->escape($dashboard) . '\'');
+ return unserialize($r->settings);
+ }
+
+ public static function delDashboard($args, &$x) {
+ global $core;
+ $r = $core->con->execute('DELETE FROM dashboard WHERE dashboard_id=\'' . $core->con->escape($args[1]) . '\' AND equipier=\'' . $core->user->utilisateur_id . '\'');
+ $x->addReplace('dashboard_' . $args[1], '');
+ }
+
+ public static function reloadDashboards($args, &$x) {
+ $x->addContent('dash', commonUrl::listeDashboard(array()));
+ }
+
+ public static function orderDashboards($args, &$x) {
+ global $core;
+ $c = $core->con->openCursor('dashboard');
+ $i = 1;
+ foreach ($_GET['dashboard'] as $id) {
+ $c->sort = $i;
+ $c->update('WHERE dashboard_id=\'' . $core->con->escape($id) . '\'');
+ $i++;
+ }
+ }
+
+ public static function toggleDashboard($args, &$x) {
+ global $core;
+
+ $r = $core->con->select('SELECT state FROM dashboard WHERE dashboard_id=\'' . $core->con->escape($args[1]) . '\'');
+ $new = ($r->state == '1') ? '0' : '1';
+
+ $c = $core->con->openCursor('dashboard');
+ $c->state = $new;
+ $c->update('WHERE dashboard_id=\'' . $core->con->escape($args[1]) . '\'');
+ }
+
+ public static function syncftp($args, &$x) {
+ commonDroits::min(5);
+ $u = parse_url('ftp://' . ltrim($_POST['dest'], '/'));
+ if (!isset($u['port'])) {
+ $u['port'] = '21';
+ }
+
+ $commandes = array(
+ 'set ftp:passive-mode ' . $_POST['mode'],
+ 'mkdir -p ' . $u['path'],
+ 'cd ' . $u['path'],
+ 'lcd ' . $_POST['source'],
+ 'mirror -Rve --parallel=5'
+ );
+
+ //$lftp->setManualArg( . '> mirror -Rv ' . $package);
+
+ $lftp = new cubeCommandLine('lftp');
+ $lftp->setArg('u', $u['user'] . ',' . $u['pass']);
+ $lftp->setArg('p', $u['port']);
+ $lftp->setArg('e', implode(';', $commandes));
+ $lftp->setArg(null, $u['host']);
+ $lftp->execute();
+
+ $x->addValue('res', utf8_encode($lftp->output));
+ }
+
+ public static function createDevSpace($args, &$x) {
+
+ global $core;
+
+ $domain = $_POST['domain'];
+ $svn = $_POST['svn'];
+ $user = $_POST['user'];
+ $zend = $_POST['zend'];
+ if (!$user) {
+ $user = $domain;
+ }
+ if (!$svn) {
+ $svn = $domain;
+ }
+
+ $domain = cubeText::str2URL($domain);
+ $user = cubeText::str2URL($user);
+ $svn = cubeText::str2URL($svn);
+ $password = CubeIT_Crypt::generateRandomString(10);
+ $zend = cubeText::str2URL($zend);
+ $zend = cubeText::ucfirst($zend);
+
+ $body = "Adresse : http://$domain.dev.cubedesigners.com
+
+SSH : $domain.dev.cubedesigners.com
+Nom d'utilisateur : $user
+Mot de passe : $password
+Chemin : /home/$user/www
+Port : 22
+
+Base de données MySQL : https://chihiro.fluidbook.com/phpmyadmin/
+Hôte : localhost
+Nom d'utilisateur : $user
+Nom de la base : $user
+Mot de passe : $password
+
+SVN : svn+ssh://svn@svn.cubedesigners.com/projects/$svn";
+
+ $mail = new cubeMail();
+ $mail->charset = 'UTF-8';
+ $mail->from = 'extranet@cubedesigners.com';
+ $mail->to = $core->user->email;
+ $mail->subject = 'Création de l\'espace de développement "' . $domain . '"';
+ $mail->body = $body;
+ $mail->send();
+
+ $args = "-l $user -d $svn -o $domain -u $user -p $password";
+ if ($zend) {
+ $args.=" -n $zend";
+ }
+
+ `ssh root@chihiro.cubedesigners.com /usr/local/bin/tools/projectcreator/make.php $args`;
+
+ $x->addAlert('Espace de développement crée. Vous allez recevoir un mail récapitulant les identifiants de l\'espace crée');
+ }
+
+}
+
?>
\ No newline at end of file