Arhivele Blog-ului

Configurare Openfiler 2.99.1

Instalarea Openfiler pe un sistem cu BIOS RAID are câteva particularităţi. Cea mai vizibilă este lipsa unităţilor fizice (PV) din Block Device Management. În cazul în care acestea apar, matricea RAID a fost compromisă.

Este bine ca la instalare să se modifice doar layout-ul implicit de la partiţionare (se bifează opţiunea Force to be a primary partition la cele trei partiţii de sistem) şi să se creeze un VG cu LVM. Unitatea VG se poate crea şi din consolă folosind comenzile:

parted /dev/mapper/[device]
(parted) mkpart
Partition type? primary/extended? extended
Start? [start]
End? [end]
(parted) mkpart logical ext3 [start] [end]
(parted) set 4 LVM
New state?  [on]/off? on
quit

pvcreate /dev/mapper/[device]
vgcreate [nume_VG] /dev/mapper/[device]

Partitiile logice (LV) si directoarele de partajat se pot crea din interfaţa de administrare web https://[adresa.ip.server.openfiler]:446.

Setări LDAP

  • Use Local LDAP Server
  • Server: 127.0.0.1
  • Base DN: dc=example,dc=com
  • Root Bind DN: cn=Manager,dc=example,dc=com
  • Root bind password: [parola root]
Postat în Linux

Disc local inaccesibil

Pe un XP, imediat după pornire, apare mesajul de eroare „Windows Explorer Has Encountered an Error and Needs to Close”. Cum log-ul din Event Viewer nu a fost de ajutor, am pus un CD cu XP în unitate și am sperat la mai bine cu:

sfc.exe /scannow

După restart a fost altceva. Discul local se putea accesa doar cu clic-dreapta și Explore, iar încercările de accesare directă se opreau într-o fereastră Open with….

Rezolvare:
Problema era de la un fișier autorun.inf din rădăcină, rămas după o devirusare. Pentru ștergere s-au rulat comenzile de mai jos.

cd \
attrib -a -s -h autorun.inf
del autorun.inf
Postat în Windows

Inserare rânduri multiple

Pentru generarea mai multor înregistrări dintr-un multiselect se poate folosi varianta următoare ce foloseşte CodeIgniter şi un model CRUD. Exemplul preia mai multe servicii cu tot cu tarife.

Models
class Orders_model extends Crud_model {
    public $table = 'orders';
    public function add($data)
    {
        $this->db->insert($this->table, $data);
        return $this->db->insert_id();
    }
}
class Services_model extends Crud_model {
    public $table = 'services';

    public function get_service()
    {
        $query = $this->db->get($this->table);
        $data =array();
        foreach($query->result_array() as $row){
            $data[$row['service_id']] = $row['service_name'];
        }
        return $data;
    }

    public function get_value($service_details)
    {
        $this->db->select('value');
        $this->db->where('service_id', $service_details);
        $query = $this->db->get($this->table);
        return $query->row()->value;
    }
}
View
<?php echo form_open($form_action); ?>
     <fieldset>
          <?php echo form_multiselect('service[]', $services, $this->input->post('service')); ?>
     </fieldset>
<?php echo form_close(); ?>
Controller
public function add()
    {
        $this->form_validation->set_rules('service', 'Serviciu', 'required');  
        $this->form_validation->set_rules('price', 'Tarif', 'numeric');
        
        if ($this->form_validation->run() == TRUE)
        {
            foreach ($this->input->post('service') as $service_details) {
                $order = array(
                    'client_id'     => $this->input->post('client'),
                    'service_id'    => $service_details,
                    'price'         => $this->services_model->get_value($service_details),
                );

                $this->orders_model->add($order);
            }
            redirect('nume_controller');
        }

        $this->data['form_action'] = 'nume_controller/add/';
        $this->data['services'] = $this->services_model->get_service();
    
        $this->layout->render('nume_controller/add', $this->data);
    }

 

Postat în CodeIgniter