src/bbn/user/preferences.php
public function add_bit(string $id_usr_opt, array $cfg): ?string
  {
    if (
      ($id_usr_opt = $this->_get_id_option($id_usr_opt)) &&
      ($c = $this->class_cfg['arch']['user_options_bits'])
    ){
      $to_cfg = $this->get_bit_cfg(null, $cfg);
      if ( isset($to_cfg['items']) ){
        unset($to_cfg['items']);
      }
      if ( !empty($to_cfg) ){
        if ( !empty($cfg[$c['cfg']]) ){
          if (  \bbn\str::is_json($cfg[$c['cfg']]) ){
            $cfg[$c['cfg']] = json_decode($cfg[$c['cfg']], true);
          }
          if ( \is_array($cfg[$c['cfg']]) ){
            $cfg[$c['cfg']] = array_merge($cfg[$c['cfg']], $to_cfg);
          }
          else {
            $cfg[$c['cfg']] = $to_cfg;
          }
        }
        else {
          $cfg[$c['cfg']] = $to_cfg;
        }
        $cfg[$c['cfg']] = json_encode($cfg[$c['cfg']]);
      }
      if ( $this->db->insert($this->class_cfg['tables']['user_options_bits'], [
        $c['id_user_option'] => $id_usr_opt,
        $c['id_parent'] => $cfg[$c['id_parent']] ?? NULL,
        $c['id_option'] => $cfg[$c['id_option']] ?? NULL,
        $c['num'] => $cfg[$c['num']] ?? NULL,
        $c['text'] => $cfg[$c['text']] ?? '',
        $c['cfg'] => $cfg[$c['cfg']] ?? '',
      ]) ){
        return $this->db->last_id();
      }
    }
    return null;
  }
public function add_bit(string $id_usr_opt, array $cfg): ?string
  {
    if (
      ($id_usr_opt = $this->_get_id_option($id_usr_opt)) &&
      ($c = $this->class_cfg['arch']['user_options_bits'])
    ){
      $to_cfg = $this->get_bit_cfg(null, $cfg);
      if ( isset($to_cfg['items']) ){
        unset($to_cfg['items']);
      }
      if ( !empty($to_cfg) ){
        if ( !empty($cfg[$c['cfg']]) ){
          if (  \bbn\str::is_json($cfg[$c['cfg']]) ){
            $cfg[$c['cfg']] = json_decode($cfg[$c['cfg']], true);
          }
          if ( \is_array($cfg[$c['cfg']]) ){
            $cfg[$c['cfg']] = array_merge($cfg[$c['cfg']], $to_cfg);
          }
          else {
            $cfg[$c['cfg']] = $to_cfg;
          }
        }
        else {
          $cfg[$c['cfg']] = $to_cfg;
        }
        $cfg[$c['cfg']] = json_encode($cfg[$c['cfg']]);
      }
      if ( $this->db->insert($this->class_cfg['tables']['user_options_bits'], [
        $c['id_user_option'] => $id_usr_opt,
        $c['id_parent'] => $cfg[$c['id_parent']] ?? NULL,
        $c['id_option'] => $cfg[$c['id_option']] ?? NULL,
        $c['num'] => $cfg[$c['num']] ?? NULL,
        $c['text'] => $cfg[$c['text']] ?? '',
        $c['cfg'] => $cfg[$c['cfg']] ?? '',
      ]) ){
        return $this->db->last_id();
      }
    }
    return null;
  }
public function add_bit ( string $ id_usr_opt , array $ cfg ) : ? string { if ( ( $ id_usr_opt = $ this -> _get_id_option ( $ id_usr_opt ) ) && ( $ c = $ this -> class_cfg [ 'arch' ] [ 'user_options_bits' ] ) ) { $ to_cfg = $ this -> get_bit_cfg ( null , $ cfg ) ; if ( isset ( $ to_cfg [ 'items' ] ) ) { unset ( $ to_cfg [ 'items' ] ) ; } if ( ! empty ( $ to_cfg ) ) { if ( ! empty ( $ cfg [ $ c [ 'cfg' ] ] ) ) { if ( \ bbn \ str :: is_json ( $ cfg [ $ c [ 'cfg' ] ] ) ) { $ cfg [ $ c [ 'cfg' ] ] = json_decode ( $ cfg [ $ c [ 'cfg' ] ] , true ) ; } if ( \ is_array ( $ cfg [ $ c [ 'cfg' ] ] ) ) { $ cfg [ $ c [ 'cfg' ] ] = array_merge ( $ cfg [ $ c [ 'cfg' ] ] , $ to_cfg ) ; } else { $ cfg [ $ c [ 'cfg' ] ] = $ to_cfg ; } } else { $ cfg [ $ c [ 'cfg' ] ] = $ to_cfg ; } $ cfg [ $ c [ 'cfg' ] ] = json_encode ( $ cfg [ $ c [ 'cfg' ] ] ) ; } if ( $ this -> db -> insert ( $ this -> class_cfg [ 'tables' ] [ 'user_options_bits' ] , [ $ c [ 'id_user_option' ] => $ id_usr_opt , $ c [ 'id_parent' ] => $ cfg [ $ c [ 'id_parent' ] ] ?? NULL , $ c [ 'id_option' ] => $ cfg [ $ c [ 'id_option' ] ] ?? NULL , $ c [ 'num' ] => $ cfg [ $ c [ 'num' ] ] ?? NULL , $ c [ 'text' ] => $ cfg [ $ c [ 'text' ] ] ?? '' , $ c [ 'cfg' ] => $ cfg [ $ c [ 'cfg' ] ] ?? '' , ] ) ) { return $ this -> db -> last_id ( ) ; } } return null ; }
Adds a bit to a preference

@param string $id_usr_opt The preference's ID
@param array $cfg The bit's values
@return string|null
Adds a bit to a preference