method browse documentation in bbn\Appui\Note
function(array $cfg, bool $with_content = false, bool $private = false, string $id_type = NULL, bool $pinned = NULL)
  {
    if (isset($cfg['limit']) && ($user = bbn\User::getInstance())) {
      /** @var bbn\Db $db */
      $db       = &$this->db;
      $cf       = &$this->class_cfg;
      $opt      = Option::getInstance();
      $cfo      = $opt->getClassCfg();
      $grid_cfg = [
        'table' => $cf['table'],
        'fields' => [
          $db->cfn($this->fields['id'], $cf['table']),
          $db->cfn($this->fields['id_parent'], $cf['table']),
          $db->cfn($this->fields['id_alias'], $cf['table']),
          $db->cfn($this->fields['id_type'], $cf['table']),
          $db->cfn($this->fields['id_option'], $cf['table']),
          $db->cfn($this->fields['mime'], $cf['table']),
          $db->cfn($this->fields['lang'], $cf['table']),
          $db->cfn($this->fields['private'], $cf['table']),
          $db->cfn($this->fields['locked'], $cf['table']),
          $db->cfn($this->fields['pinned'], $cf['table']),
          $db->cfn($this->fields['creator'], $cf['table']),
          $db->cfn($this->fields['active'], $cf['table']),
          $db->cfn($cf['arch']['versions']['version'], $cf['tables']['versions']),
          $db->cfn($cf['arch']['versions']['title'], $cf['tables']['versions']),
          $db->cfn($cf['arch']['versions']['excerpt'], $cf['tables']['versions']),
          $db->cfn($cf['arch']['versions']['id_user'], $cf['tables']['versions']),
          'creation' => 'first_version.' . $cf['arch']['versions']['creation'],
          'last_edit' => $db->cfn($cf['arch']['versions']['creation'], $cf['tables']['versions']),
          'option_name' => $db->cfn($cfo['arch']['options']['text'], $cfo['table'])
        ],
        'join' => [[
          'table' => $cf['tables']['versions'],
          'on' => [
            'logic' => 'AND',
            'conditions' => [[
              'field' => $db->cfn($cf['arch']['versions']['id_note'], $cf['tables']['versions']),
              'operator' => '=',
              'exp' => $db->cfn($this->fields['id'], $cf['table'])
            ], [
              'field' => $db->cfn($cf['arch']['versions']['latest'], $cf['tables']['versions']),
              'operator' => '=',
              'value' => 1
            ]],
          ],
        ], [
          'table' => $cf['tables']['versions'],
          'alias' => 'first_version',
          'on' => [
            'logic' => 'AND',
            'conditions' => [[
              'field' => 'first_version.' . $cf['arch']['versions']['id_note'],
              'operator' => '=',
              'exp' => $db->cfn($cf['arch']['notes']['id'], $cf['table']),
            ], [
              'field' => 'first_version.' . $cf['arch']['versions']['version'],
              'operator' => '=',
              'value' => 1,
            ]],
          ],
        ], [
          'table' => $cfo['tables']['options'],
          'type' => 'left',
          'on' => [
            'logic' => 'AND',
            'conditions' => [[
              'field' => $db->cfn($cf['arch']['notes']['id_option'], $cf['table']),
              'operator' => '=',
              'exp' => $db->cfn($cfo['arch']['options']['id'], $cfo['tables']['options'], true),
            ]],
          ],
        ]],
        'filters' => [[
          'field' => $db->cfn($cf['arch']['notes']['active'], $cf['table']),
          'value' => 1,
        ]],
        'group_by' => $db->cfn($cf['arch']['notes']['id'], $cf['table'])
      ];
      if ($private) {
        $grid_cfg['filters'][] = [
          'field' => $db->cfn($cf['arch']['notes']['private'], $cf['table']),
          'value' => 1
        ];
        $grid_cfg['filters'][] = [
          'field' => $db->cfn($cf['arch']['notes']['creator'], $cf['table']),
          'value' => $user->getId()
        ];
      }
      else {
        $grid_cfg['filters'][] = [
          'field' => $db->cfn($cf['arch']['notes']['private'], $cf['table']),
          'value' => 0
        ];
      }
      if ($id_type) {
        $grid_cfg['filters'][] = [
          'field' => $db->cfn($cf['arch']['notes']['id_type'], $cf['table']),
          'value' => $id_type
        ];
      }
      if (!is_null($pinned)) {
        $grid_cfg['filters'][] = [
          'field' => $db->cfn($cf['arch']['notes']['pinned'], $cf['table']),
          'value' => $pinned
        ];
      }
      if (!empty($cfg['fields'])) {
        $grid_cfg['fields'] = bbn\X::mergeArrays($grid_cfg['fields'], $cfg['fields']);
        unset($cfg['fields']);
      }
      if (!empty($cfg['join'])) {
        $grid_cfg['join'] = bbn\X::mergeArrays($grid_cfg['join'], $cfg['join']);
        unset($cfg['join']);
      }
      if ($with_content) {
        $grid_cfg['fields']['content'] = $db->cfn($cf['arch']['versions']['content'], $cf['tables']['versions']);
      }
      $grid = new Grid($this->db, $cfg, $grid_cfg);
      return $grid->getDatatable();
    }
  }
  BBN is a suite of PHP and JS libraries and VueJS components - all open-source! bbn.io, build applications, the quick way
  
  
    
    
      
        
        
      
    
    
    
      
      
      
      
      
        
          
          
          
          
          
          
          
          
            
              
                
              
            
            
              
              This website uses cookies to ensure you get the best experience on our website.                
                
              
              
                
                
              
             
           
          
          
          
            
            © 2011-2025 
BBN Solutions