]> _ Git - cubeextranet.git/commitdiff
wip #3853 @0.5
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Tue, 25 Aug 2020 17:31:41 +0000 (17:31 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Tue, 25 Aug 2020 17:31:41 +0000 (17:31 +0000)
inc/ws/Controlleur/class.ws.ajax.php
inc/ws/Controlleur/class.ws.users.tree.php
inc/ws/Util/html5/master/class.ws.html5.links.php

index d5c353c0b0aadee1f928574de2b54214ce44e4f6..2ece9e6eaee166d2ff299801dcaf525c1db3cf3a 100644 (file)
@@ -207,7 +207,7 @@ class wsAjax extends cubeAjax
         $dao = new wsDAOBook($core->con);
         if ($_POST['book'] != '') {
             $book = $dao->duplicate($_POST['book'], $core->user->utilisateur_id, $_POST['title'], isset($_POST['pages']));
-            wsMaintenance::copyLinks([$_POST['book'],$book->book_id]);
+            wsMaintenance::copyLinks([$_POST['book'], $book->book_id]);
         } else {
             $book = $dao->creeEmpty($core->user->utilisateur_id, $core->user->lang, $_POST['title']);
         }
@@ -492,6 +492,8 @@ class wsAjax extends cubeAjax
 
     public static function demandeDevis($args, &$x)
     {
+        CubeIT_Util_PHP::neverStop();
+
         global $core;
 
         $defaults = array('adresse' => '',
index 69a0054c883862c1f8e1bd86213f79b6c7f4815c..e3f8066e49a56097367c1a77c0609d3f635d3dc1 100644 (file)
 <?php\r
 \r
-class wsUsersTree {\r
-\r
-       protected $users;\r
-       protected $admins;\r
-       protected $grades;\r
-       protected $facturables;\r
-       protected $rights;\r
-       protected $entreprises;\r
-       protected $entreprises_tree;\r
-       protected $con;\r
-\r
-       public function __construct(&$con) {\r
-               $this->con = $con;\r
-       }\r
-\r
-       public function refreshWSUsersTree() {\r
-               $this->con->execute('TRUNCATE TABLE ws_users_tree');\r
-               $this->con->execute('TRUNCATE TABLE ws_entreprises_tree');\r
-\r
-               $this->users = array();\r
-               $this->admins = array();\r
-               $this->grades = array();\r
-               $this->entreprises = array();\r
-               $this->domains = array();\r
-\r
-               $this->rights = array();\r
-\r
-               $r = $this->con->select('SELECT * FROM e2_u u LEFT JOIN e2_c e ON u.entreprise=e.entreprise_id WHERE e.ws_grade>0 ORDER BY e.ws_grade ASC');\r
-               while ($r->fetch()) {\r
-                       $this->entreprises[$r->utilisateur_id] = $r->entreprise_id;\r
-                       $this->users[$r->utilisateur_id] = $r->ws_admin;\r
-                       $this->grades[$r->utilisateur_id] = $r->ws_grade;\r
-                       if (!isset($this->admins[$r->ws_admin])) {\r
-                               $this->admins[$r->ws_admin] = array();\r
-                       }\r
-                       if (!isset($this->admins[$r->utilisateur_id])) {\r
-                               $this->admins[$r->utilisateur_id] = array();\r
-                       }\r
-                       $this->admins[$r->ws_admin][] = $r->utilisateur_id;\r
-                       $d = explode('@', $r->email);\r
-                       $this->domains[$r->utilisateur_id] = mb_strtolower($d[1]);\r
-               }\r
-\r
-               $this->facturables = $this->getFacturables();\r
-               // Fabrication de l'arbre\r
-               $c = $this->con->openCursor('ws_users_tree');\r
-               $ce = $this->con->openCursor('ws_entreprises_tree');\r
-\r
-               $evu = array();\r
-\r
-               foreach ($this->users as $utilisateur_id => $admin) {\r
-                       $facturable_id = $administrateur_id = 0;\r
-                       $this->getFacturableOf($utilisateur_id, $facturable_id, $administrateur_id, 1);\r
-\r
-                       if (!isset($this->entreprises[$facturable_id]) || is_null($this->entreprises[$facturable_id])) {\r
-                               //$this->entreprises[$facturable_id]=$this->entreprises[$utilisateur_id];\r
-                       }\r
-\r
-\r
-                       $c->utilisateur_id = $utilisateur_id;\r
-                       $ce->entreprise_id = $c->entreprise_id = $this->entreprises[$utilisateur_id];\r
-                       $c->facturable_id = $facturable_id;\r
-                       $ce->facturable_entreprise_id = $c->facturable_entreprise_id = $this->entreprises[$facturable_id];\r
-                       $ce->administrateur_id = $c->administrateur_id = $administrateur_id;\r
-                       try{\r
-                       $c->insert();\r
-                       }catch(Exception $e){\r
-                               fb($e);\r
-                       }\r
-                       if (isset($evu[$c->entreprise_id])) {\r
-                               continue;\r
-                       }\r
-                       try{\r
-                       $ce->insert();\r
-                       }catch(Exception $e){\r
-                               fb($e);\r
-                       }\r
-                       $evu[$c->entreprise_id] = true;\r
-               }\r
-               // Fabrication de la liste des droits à partir de l'arbre\r
-               $j = 0;\r
-               for ($i = 1; $i <= 5; $i++) {\r
-                       foreach ($this->admins as $admin_id => $list) {\r
-                               $newlist = $list;\r
-                               foreach ($list as $uid) {\r
-                                       if ($uid != $admin_id && isset($this->admins[$uid])) {\r
-                                               $newlist = array_merge($this->admins[$uid], $newlist);\r
-                                       }\r
-                               }\r
-                               $this->admins[$admin_id] = array_unique($newlist);\r
-                       }\r
-               }\r
-               // Ajout des droits personnels\r
-               foreach ($this->users as $uid => $admin) {\r
-                       $this->admins[$uid][] = $uid;\r
-               }\r
-               // Echange des droits entre collègues\r
-               foreach ($this->admins as $admin_id => $list) {\r
-                       $e = $this->entreprises[$admin_id];\r
-                       $collegues = array_keys($this->entreprises, $e);\r
-                       $newlist = $this->admins[$admin_id];\r
-                       foreach ($collegues as $c) {\r
-                               $newlist = array_merge($newlist, $this->admins[$c]);\r
-                       }\r
-                       $newlist = array_unique($newlist);\r
-                       $this->admins[$admin_id] = $newlist;\r
-                       foreach ($collegues as $c) {\r
-                               $this->admins[$c] = $newlist;\r
-                       }\r
-               }\r
-\r
-               $adom = array();\r
-\r
-               foreach ($this->admins as $admin => $list) {\r
-                       $this->admins[$admin] = array_unique($list);\r
-                       sort($this->admins[$admin]);\r
-\r
-                       $adom[$admin] = array();\r
-                       foreach ($list as $id) {\r
-                               $adom[$admin][] = $this->domains[$id];\r
-                       }\r
-                       $adom[$admin] = array_unique($adom[$admin]);\r
-               }\r
-\r
-               $c = $this->con->openCursor('extranet_users.user');\r
-               foreach ($this->admins as $admin => $list) {\r
-                       $c->e1_ws_rights = implode(',', $list);\r
-                       $c->e1_ws_domains = implode(',', $adom[$admin]);\r
-                       $c->update('WHERE id=\'' . $this->con->escape($admin) . '\'');\r
-               }\r
-       }\r
-\r
-       protected function getFacturableOf($utilisateur_id, &$facturable_id, &$administrateur_id, $level) {\r
-               if (in_array($utilisateur_id, $this->facturables)) {\r
-                       $facturable_id = $utilisateur_id;\r
-                       $administrateur_id = $this->users[$utilisateur_id];\r
-                       return;\r
-               }\r
-               if ($level > 10) {\r
-                       $facturable_id = -1;\r
-                       $administrateur_id = -1;\r
-                       return;\r
-               }\r
-\r
-               return $this->getFacturableOf($this->users[$utilisateur_id], $facturable_id, $administrateur_id, $level + 1);\r
-       }\r
-\r
-       protected function getFacturables() {\r
-               $res = array();\r
-               foreach ($this->users as $utilisateur_id => $admin) {\r
-                       if ($this->grades[$admin] == 5) {\r
-                               $res[] = $utilisateur_id;\r
-                       }\r
-               }\r
-               sort($res);\r
-               return $res;\r
-       }\r
+class wsUsersTree\r
+{\r
+\r
+    protected $users;\r
+    protected $admins;\r
+    protected $grades;\r
+    protected $facturables;\r
+    protected $rights;\r
+    protected $entreprises;\r
+    protected $entreprises_tree;\r
+    protected $con;\r
+\r
+    public function __construct(&$con)\r
+    {\r
+        $this->con = $con;\r
+    }\r
+\r
+    public function refreshWSUsersTree()\r
+    {\r
+        $this->con->execute('TRUNCATE TABLE ws_users_tree');\r
+        $this->con->execute('TRUNCATE TABLE ws_entreprises_tree');\r
+\r
+        $this->users = array();\r
+        $this->admins = array();\r
+        $this->grades = array();\r
+        $this->entreprises = array();\r
+        $this->domains = array();\r
+\r
+        $this->rights = array();\r
+\r
+        $r = $this->con->select('SELECT * FROM e2_u u LEFT JOIN e2_c e ON u.entreprise=e.entreprise_id WHERE e.ws_grade>0 ORDER BY e.ws_grade ASC');\r
+        while ($r->fetch()) {\r
+            $this->entreprises[$r->utilisateur_id] = $r->entreprise_id;\r
+            $this->users[$r->utilisateur_id] = $r->ws_admin;\r
+            $this->grades[$r->utilisateur_id] = $r->ws_grade;\r
+            if (!isset($this->admins[$r->ws_admin])) {\r
+                $this->admins[$r->ws_admin] = array();\r
+            }\r
+            if (!isset($this->admins[$r->utilisateur_id])) {\r
+                $this->admins[$r->utilisateur_id] = array();\r
+            }\r
+            $this->admins[$r->ws_admin][] = $r->utilisateur_id;\r
+            $d = explode('@', $r->email);\r
+            $this->domains[$r->utilisateur_id] = mb_strtolower($d[1]);\r
+        }\r
+\r
+        $this->facturables = $this->getFacturables();\r
+        // Fabrication de l'arbre\r
+        $c = $this->con->openCursor('ws_users_tree');\r
+        $ce = $this->con->openCursor('ws_entreprises_tree');\r
+\r
+        $evu = array();\r
+\r
+        foreach ($this->users as $utilisateur_id => $admin) {\r
+            $facturable_id = $administrateur_id = 0;\r
+            $this->getFacturableOf($utilisateur_id, $facturable_id, $administrateur_id, 1);\r
+\r
+            if (!isset($this->entreprises[$facturable_id]) || is_null($this->entreprises[$facturable_id])) {\r
+                //$this->entreprises[$facturable_id]=$this->entreprises[$utilisateur_id];\r
+            }\r
+\r
+            $c->utilisateur_id = $utilisateur_id;\r
+            $ce->entreprise_id = $c->entreprise_id = $this->entreprises[$utilisateur_id];\r
+            $c->facturable_id = $facturable_id;\r
+            $ce->facturable_entreprise_id = $c->facturable_entreprise_id = $this->entreprises[$facturable_id];\r
+            $ce->administrateur_id = $c->administrateur_id = $administrateur_id;\r
+            try {\r
+                $c->insert();\r
+            } catch (Exception $e) {\r
+                fb($e);\r
+            }\r
+            if (isset($evu[$c->entreprise_id])) {\r
+                continue;\r
+            }\r
+            try {\r
+                $ce->insert();\r
+            } catch (Exception $e) {\r
+                fb($e);\r
+            }\r
+            $evu[$c->entreprise_id] = true;\r
+        }\r
+        // Fabrication de la liste des droits à partir de l'arbre\r
+        $j = 0;\r
+        for ($i = 1; $i <= 5; $i++) {\r
+            foreach ($this->admins as $admin_id => $list) {\r
+                $newlist = $list;\r
+                foreach ($list as $uid) {\r
+                    if ($uid != $admin_id && isset($this->admins[$uid])) {\r
+                        $newlist = array_merge($this->admins[$uid], $newlist);\r
+                    }\r
+                }\r
+                $this->admins[$admin_id] = array_unique($newlist);\r
+            }\r
+        }\r
+        // Ajout des droits personnels\r
+        foreach ($this->users as $uid => $admin) {\r
+            $this->admins[$uid][] = $uid;\r
+        }\r
+        // Echange des droits entre collègues\r
+        foreach ($this->admins as $admin_id => $list) {\r
+            if (!isset($this->entreprises[$admin_id])) {\r
+                continue;\r
+            }\r
+            $e = $this->entreprises[$admin_id];\r
+            $collegues = array_keys($this->entreprises, $e);\r
+            $newlist = $this->admins[$admin_id];\r
+            foreach ($collegues as $c) {\r
+                $newlist = array_merge($newlist, $this->admins[$c]);\r
+            }\r
+            $newlist = array_unique($newlist);\r
+            $this->admins[$admin_id] = $newlist;\r
+            foreach ($collegues as $c) {\r
+                $this->admins[$c] = $newlist;\r
+            }\r
+        }\r
+\r
+        $adom = array();\r
+\r
+        foreach ($this->admins as $admin => $list) {\r
+            $this->admins[$admin] = array_unique($list);\r
+            sort($this->admins[$admin]);\r
+\r
+            $adom[$admin] = array();\r
+            foreach ($list as $id) {\r
+                $adom[$admin][] = $this->domains[$id];\r
+            }\r
+            $adom[$admin] = array_unique($adom[$admin]);\r
+        }\r
+\r
+        $c = $this->con->openCursor('extranet_users.user');\r
+        foreach ($this->admins as $admin => $list) {\r
+            $c->e1_ws_rights = implode(',', $list);\r
+            $c->e1_ws_domains = implode(',', $adom[$admin]);\r
+            $c->update('WHERE id=\'' . $this->con->escape($admin) . '\'');\r
+        }\r
+    }\r
+\r
+    protected function getFacturableOf($utilisateur_id, &$facturable_id, &$administrateur_id, $level)\r
+    {\r
+        if (in_array($utilisateur_id, $this->facturables)) {\r
+            $facturable_id = $utilisateur_id;\r
+            $administrateur_id = $this->users[$utilisateur_id];\r
+            return;\r
+        }\r
+        if ($level > 10) {\r
+            $facturable_id = -1;\r
+            $administrateur_id = -1;\r
+            return;\r
+        }\r
+        if (!$utilisateur_id || !isset($this->users[$utilisateur_id])) {\r
+            return;\r
+        }\r
+\r
+        return $this->getFacturableOf($this->users[$utilisateur_id], $facturable_id, $administrateur_id, $level + 1);\r
+    }\r
+\r
+    protected function getFacturables()\r
+    {\r
+        $res = array();\r
+        foreach ($this->users as $utilisateur_id => $admin) {\r
+            if ($this->grades[$admin] == 5) {\r
+                $res[] = $utilisateur_id;\r
+            }\r
+        }\r
+        sort($res);\r
+        return $res;\r
+    }\r
 \r
 }\r
 \r
index b21b1e0e98b449ba966e7d2f3a8f95a181bd9678..ef238a552105bfe56a032840b2d8649de2d77a0e 100644 (file)
@@ -2123,7 +2123,7 @@ class zoomLink extends normalLink
             $both = $leftfile;
         }
 
-        if ($attributes['border'] > 0) {
+        if (isset($attributes['border']) && $attributes['border'] > 0) {
             $tmp = CubeIT_Files::tempnam() . '.jpg';
             CubeIT_CommandLine_Imagemagick::addBorder($both, $tmp, $attributes['border'], $attributes['borderColor']);
             $compiler->vdir->addTemp($both);