Skip to content
Snippets Groups Projects
Select Git revision
  • 29f35986b3040dcbc4c4f07a06790dfc53d0a13a
  • master default protected
  • b24
  • ll-workflow
  • alc-scindage-donnees-pj
  • FJ_LL_Tbl_Contrat
  • alc-docker-node
  • ll-apiplatform
  • php84
  • ll-rgpd
  • b23
  • alc-filtre-type-intervenant
  • ll-sans-mdb5
  • formules-ancienne-infra
  • ll-formules
  • alc-intervenant-dmep
  • ll-suppr-v_vol-s
  • b20
  • ll-postgresql
  • b23.0.1
  • b22
  • 24.8
  • 24.7
  • 24.6
  • 24.5
  • 24.4
  • 24.3
  • 24.2
  • 24.1
  • 24.0
  • 23.15
  • 24.0-beta19
  • 24.0-beta18
  • 24.0-beta17
  • 24.0-beta16
  • 24.0-beta15
  • 24.0-beta14
  • 24.0-beta13
  • 23.14
  • 24.0-beta12
  • 24.0-beta11
41 results

config.local.php.default

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Util.php 1.33 KiB
    <?php
    
    namespace UnicaenVue;
    
    use Doctrine\ORM\EntityManager;
    use UnicaenVue\View\Model\AxiosModel;
    
    class Util
    {
        static public function tableAjaxData(EntityManager $em, array $post, string $sql): AxiosModel
        {
            $search = $post['search'] ?? '';
            $elStart = ($post['elStart'] ?? 1) - 1;
            $size = $post['size'] ?? 10;
            $orderCol = $post['orderCol'] ?? null;
            $orderDir = ($post['orderDir'] ?? 'asc') == 'asc' ? 'asc' : 'desc';
    
            if ($orderCol && (str_contains($orderCol, '"') || str_contains($orderCol, "'"))){
                $orderCol = null; // protection contre les injections
            }
    
            $limitSql = "OFFSET :elStart ROWS FETCH FIRST :size ROWS ONLY";
            if ($orderCol) {
                $orderSql = "ORDER BY $orderCol $orderDir";
            } else {
                $orderSql = '';
            }
            $params = [
                'elStart' => $elStart,
                'size'    => $size,
                'search'  => strtolower('%' . $search . '%'),
            ];
            $count = (int)$em->getConnection()->fetchOne('SELECT count(*) cc FROM (' . $sql . ') t', $params);
            $data = $em->getConnection()->fetchAllAssociative($sql . "\n" . $orderSql . "\n" . $limitSql, $params);
    
            $result = [
                'count' => $count,
                'data'  => $data,
            ];
    
            return new AxiosModel($result);
        }
    }