/** * if an array if receive the keys are * p_date * p_depot * f_idX f_id * sg_codeX * sg_type0 * * @global $cn database connx * @param $p_array * if an array if receive the keys are * p_date * p_depot * f_idX f_id * sg_codeX * sg_type0 * @param $p_readonly true or false */ function input($p_array = null, $p_readonly = false) { global $cn; if ($p_array != null) { extract($p_array); } else { $p_date = ''; $p_motif = ''; $p_depot = 0; } $date = new IDate('p_date', $p_date); $date->setReadOnly($p_readonly); $motif = new IText('p_motif', $p_motif); $motif->setReadOnly($p_readonly); $motif->size = 80; $idepo = HtmlInput::select_stock($cn, "p_depot", "W"); $idepo->setReadOnly($p_readonly); if (count($idepo->value) == 0) { NoAccess(); die; } $idepo->selected = $p_depot; if ($p_readonly) { $nb = $row; } else { if (isset($row)) { $nb = $row > MAX_ARTICLE_STOCK ? $row : MAX_ARTICLE_STOCK; } else { $nb = MAX_ARTICLE_STOCK; } } for ($e = 0; $e < $nb; $e++) { //ATTR_DEF_STOCKfiche_ $sg_code[$e] = new ICard('sg_code' . $e); $sg_code[$e]->extra = "[sql] fd_id = 500000"; $sg_code[$e]->set_attribute("typecard", $sg_code[$e]->extra); $sg_code[$e]->set_attribute("label", "label" . $e); $sg_code[$e]->value = isset(${'sg_code' . $e}) ? ${'sg_code' . $e} : ''; $sg_quantity[$e] = new INum('sg_quantity' . $e); $sg_quantity[$e]->value = isset(${'sg_quantity' . $e}) ? ${'sg_quantity' . $e} : ''; $label[$e] = new ISpan("label{$e}"); if (trim($sg_code[$e]->value) != '') { $label[$e]->value = $cn->get_value("select vw_name from vw_fiche_attr where quick_code=\$1", array($sg_code[$e]->value)); } $sg_code[$e]->setReadOnly($p_readonly); $sg_quantity[$e]->setReadOnly($p_readonly); if (isset(${'sg_type' . $e})) { $sg_type[$e] = ${'sg_type' . $e} == 'c' ? 'OUT' : 'IN'; } if (isset(${'f_id' . $e})) { $fiche[$e] = new Fiche($this->cn, ${'f_id' . $e}); } } $select_exercice = new ISelect('p_exercice'); $select_exercice->value = $cn->make_array('select distinct p_exercice,p_exercice from parm_periode order by 1 desc'); require_once NOALYSS_INCLUDE . '/template/stock_inv.php'; }
function form() { $comment = new IText(); $comment->name = 'p_comment'; $comment->value = $this->p_comment; $comment->size = 45; $value = new IPoste(); $value->name = 'p_value'; $value->value = $this->p_value; $value->size = 7; $value->set_attribute('ipopup', 'ipop_account'); $value->set_attribute('account', 'p_value'); $poste = new IText(); $poste->setReadOnly(true); $poste->size = strlen($this->p_code) + 1; $poste->name = 'p_code'; $poste->value = $this->p_code; $r = ""; $r .= '<tr>'; $r .= '<td align="right"> Code </td>'; $r .= '<TD>' . $poste->input() . '</TD>'; $r .= '</tr>'; $r .= '<tr>'; $r .= '<td align="right"> Commentaire </td>'; $r .= '<TD>' . $comment->input() . '</TD>'; $r .= '</tr>'; $r .= '<tr>'; $r .= '<td align="right"> Poste comptable </td>'; $r .= '<TD>' . $value->input(); $r .= '<span id="p_value_label"></span></td>'; $r .= '</tr>'; $r .= Dossier::hidden(); return $r; }
public function select() { $r = ''; $array = $this->get_valide(); $r .= HtmlInput::hidden('gDossier', dossier::id()); if (empty($array) == false) { $acompte = new INum('acompte'); $acompte->value = 0; $r .= _(" Acompte à déduire"); $r .= $acompte->input(); $r .= '<p>'; $e_comm_paiement = new IText('e_comm_paiement'); $e_comm_paiement->table = 0; $e_comm_paiement->setReadOnly(false); $e_comm_paiement->size = 60; $e_comm_paiement->tabindex = 3; $r .= _(" Libellé du paiement"); $r .= $e_comm_paiement->input(); $r .= '</p>'; } $r .= '<ol>'; $r .= '<li ><input type="radio" name="e_mp" value="0" checked>' . _('Paiement encodé plus tard'); if (empty($array) == false) { foreach ($array as $row) { $f = ''; /* if the qcode is null the propose a search button to select the card */ if ($row->mp_qcode == NULL) { $a = new ICard(); $a->jrn = $row->mp_jrn_def_id; $a->set_attribute('typecard', $row->mp_fd_id); $a->name = 'e_mp_qcode_' . $row->mp_id; $a->set_dblclick("fill_ipopcard(this);"); $a->set_callback('filter_card'); $a->set_function('fill_data'); $a->set_attribute('ipopup', 'ipopcard'); $a->set_attribute('label', $a->name . '_label'); $s = new ISpan(); $s->name = $a->name . '_label'; $f = _(" paiement par ") . $a->input() . $s->input(); } else { /* if the qcode is not null then add a hidden variable with the qcode */ $fiche = new Fiche($this->cn); $fiche->get_by_qcode($row->mp_qcode); $f = HtmlInput::hidden('e_mp_qcode_' . $row->mp_id, $row->mp_qcode); // $f.=$fiche->strAttribut(ATTR_DEF_NAME); } $r .= '<li><input type="radio" name="e_mp" value="' . $row->mp_id . '">'; $r .= $row->mp_lib . ' ' . $f; } } $r .= '</ol>'; return $r; }
function input($p_array = null, $p_readonly = 0) { global $g_parameter, $g_user; if ($p_array != null) { extract($p_array); } $flag_tva = $g_parameter->MY_TVA_USE; /* Add button */ $f_add_button = new IButton('add_card'); $f_add_button->tabindex = -1; $f_add_button->label = _('Créer une nouvelle fiche'); $f_add_button->set_attribute('ipopup', 'ipop_newcard'); $f_add_button->set_attribute('jrn', $this->id); $f_add_button->javascript = "this.jrn=\$('p_jrn').value; select_card_type(this);"; $f_add_button2 = new IButton('add_card2'); $f_add_button2->tabindex = -1; $f_add_button2->label = _('Créer une nouvelle fiche'); $f_add_button2->set_attribute('ipopup', 'ipop_newcard'); $f_add_button2->set_attribute('filter', $this->get_all_fiche_def()); // $f_add_button2->set_attribute('jrn',$this->id); $f_add_button2->javascript = " this.jrn=\$('p_jrn').value;select_card_type(this);"; $str_add_button = ""; $str_add_button2 = ""; if ($g_user->check_action(FICADD) == 1) { $str_add_button = $f_add_button->input(); $str_add_button2 = $f_add_button2->input(); } // The first day of the periode $oPeriode = new Periode($this->db); list($l_date_start, $l_date_end) = $oPeriode->get_date_limit($g_user->get_periode()); if ($g_parameter->MY_DATE_SUGGEST == 'Y') { $op_date = !isset($e_date) ? $l_date_start : $e_date; } else { $op_date = !isset($e_date) ? '' : $e_date; } $e_ech = isset($e_ech) ? $e_ech : ""; $e_comm = isset($e_comm) ? $e_comm : ""; $r = ''; $r .= dossier::hidden(); $f_legend = _('Client'); $Echeance = new IDate(); $Echeance->setReadOnly(false); $Echeance->tabindex = 2; $label = HtmlInput::infobulle(4); $f_echeance = $Echeance->input('e_ech', $e_ech, _('Echéance') . $label); $Date = new IDate(); $Date->setReadOnly(false); $f_date = $Date->input("e_date", $op_date); $f_periode = ''; // Periode //-- if ($this->check_periode() == true) { $l_user_per = $g_user->get_periode(); $def = isset($periode) ? $periode : $l_user_per; $period = new IPeriod("period"); $period->user = $g_user; $period->cn = $this->db; $period->value = $def; $period->type = OPEN; try { $l_form_per = $period->input(); } catch (Exception $e) { if ($e->getCode() == 1) { throw new Exception(_("Aucune période ouverte")); } } $label = HtmlInput::infobulle(3); $f_periode = '<td>' . _("Période comptable") . "</td> <td> {$label} " . $l_form_per . '</td>'; } /* if we suggest the next pj, then we need a javascript */ $add_js = ""; if ($g_parameter->MY_PJ_SUGGEST == 'Y') { $add_js = "update_pj();"; } if ($g_parameter->MY_DATE_SUGGEST == 'Y') { $add_js .= 'get_last_date();'; } $add_js .= 'update_name();'; $add_js .= 'update_pay_method();'; $add_js .= 'update_row("sold_item");'; $wLedger = $this->select_ledger('VEN', 2); if ($wLedger == null) { throw new Exception(_('Pas de journal disponible')); } $wLedger->table = 1; $wLedger->javascript = "onChange='update_predef(\"ven\",\"f\",\"" . $_REQUEST['ac'] . "\");{$add_js}'"; $wLedger->label = " Journal " . HtmlInput::infobulle(2); $f_jrn = $wLedger->input(); $Commentaire = new IText(); $Commentaire->table = 0; $Commentaire->setReadOnly(false); $Commentaire->size = 60; $Commentaire->tabindex = 3; $label = HtmlInput::infobulle(1); $f_desc = $Commentaire->input("e_comm", h($e_comm)); // PJ //-- /* suggest PJ ? */ $default_pj = ''; if ($g_parameter->MY_PJ_SUGGEST == 'Y') { $default_pj = $this->guess_pj(); } $pj = new IText(); $pj->table = 0; $pj->name = "e_pj"; $pj->size = 10; $pj->value = isset($e_pj) ? $e_pj : $default_pj; $f_pj = $pj->input() . HtmlInput::hidden('e_pj_suggest', $default_pj); // Display the customer //-- $fiche = 'deb'; // Save old value and set a new one //-- $e_client = isset($e_client) ? $e_client : ""; $e_client_label = " "; //str_pad("",100,"."); // retrieve e_client_label //-- if (strlen(trim($e_client)) != 0) { $fClient = new Fiche($this->db); $fClient->get_by_qcode($e_client); $e_client_label = $fClient->strAttribut(ATTR_DEF_NAME) . ' ' . ' Adresse : ' . $fClient->strAttribut(ATTR_DEF_ADRESS) . ' ' . $fClient->strAttribut(ATTR_DEF_CP) . ' ' . $fClient->strAttribut(ATTR_DEF_CITY) . ' '; } $W1 = new ICard(); $W1->label = "Client " . HtmlInput::infobulle(0); $W1->name = "e_client"; $W1->tabindex = 3; $W1->value = $e_client; $W1->table = 0; $W1->set_dblclick("fill_ipopcard(this);"); $W1->set_attribute('ipopup', 'ipopcard'); // name of the field to update with the name of the card $W1->set_attribute('label', 'e_client_label'); // name of the field to update with the name of the card $W1->set_attribute('typecard', 'deb'); // Add the callback function to filter the card on the jrn $W1->set_callback('filter_card'); $W1->set_function('fill_data'); $W1->javascript = sprintf(' onchange="fill_data_onchange(\'%s\');" ', $W1->name); $f_client_qcode = $W1->input(); $client_label = new ISpan(); $client_label->table = 0; $f_client = $client_label->input("e_client_label", $e_client_label); $f_client_bt = $W1->search(); // Record the current number of article $Hid = new IHidden(); $p_article = isset($nb_item) ? $nb_item : $this->get_min_row(); $r .= $Hid->input("nb_item", $p_article); $max = $p_article < $this->get_min_row() ? $this->get_min_row() : $p_article; $f_legend_detail = _("Détail articles vendus"); // For each article //-- for ($i = 0; $i < $max; $i++) { // Code id, price & vat code //-- $march = isset(${"e_march{$i}"}) ? ${"e_march{$i}"} : ""; $march_price = isset(${"e_march" . $i . "_price"}) ? ${"e_march" . $i . "_price"} : ""; if ($flag_tva == 'Y') { $march_tva_id = isset(${"e_march{$i}" . "_tva_id"}) ? ${"e_march{$i}" . "_tva_id"} : ""; $march_tva_amount = isset(${"e_march{$i}" . "_tva_amount"}) ? ${"e_march{$i}" . "_tva_amount"} : ""; } $march_label = isset(${"e_march" . $i . "_label"}) ? ${"e_march" . $i . "_label"} : ""; // retrieve the tva label and name //-- if (strlen(trim($march)) != 0 && strlen(trim($march_label)) == 0) { $fMarch = new Fiche($this->db); $fMarch->get_by_qcode($march); $march_label = $fMarch->strAttribut(ATTR_DEF_NAME); if ($flag_tva == 'Y') { if (!isset(${"e_march{$i}" . "_tva_id"})) { $march_tva_id = $fMarch->strAttribut(ATTR_DEF_TVA); } } } // Show input //-- $W1 = new ICard(); $W1->label = ""; $W1->name = "e_march" . $i; $W1->value = $march; $W1->table = 1; $W1->set_attribute('typecard', 'cred'); $W1->set_dblclick("fill_ipopcard(this);"); $W1->set_attribute('ipopup', 'ipopcard'); // name of the field to update with the name of the card $W1->set_attribute('label', 'e_march' . $i . '_label'); // name of the field with the price $W1->set_attribute('price', 'e_march' . $i . '_price'); // name of the field with the TVA_ID $W1->set_attribute('tvaid', 'e_march' . $i . '_tva_id'); // Add the callback function to filter the card on the jrn $W1->set_callback('filter_card'); $W1->set_function('fill_data'); $W1->javascript = sprintf(' onchange="fill_data_onchange(\'%s\');" ', $W1->name); $W1->readonly = false; $array[$i]['quick_code'] = $W1->input(); $array[$i]['bt'] = $W1->search(); // For computing we need some hidden field for holding the value $array[$i]['hidden'] = ''; if ($flag_tva == 'Y') { $array[$i]['hidden'] .= HtmlInput::hidden('tva_march' . $i, 0); } $htva = new INum('htva_march' . $i); $htva->readOnly = 1; $htva->value = 0; $array[$i]['htva'] = $htva->input(); if ($g_parameter->MY_TVA_USE == 'Y') { $tvac = new INum('tvac_march' . $i); } else { $tvac = new IHidden('tvac_march' . $i); } $tvac->readOnly = 1; $tvac->value = 0; $array[$i]['tvac'] = $tvac->input(); if ($g_parameter->MY_UPDLAB == 'Y') { $Span = new IText("e_march" . $i . "_label"); $Span->css_size = "100%"; } else { $Span = new ISpan("e_march" . $i . "_label"); } $Span->value = $march_label; $Span->setReadOnly(false); // card's name, price //-- $array[$i]['denom'] = $Span->input("e_march" . $i . "_label", $march_label); // price $Price = new INum(); $Price->setReadOnly(false); $Price->size = 9; $Price->javascript = "onBlur='format_number(this);clean_tva({$i});compute_ledger({$i})'"; $array[$i]['pu'] = $Price->input("e_march" . $i . "_price", $march_price); $array[$i]['tva'] = ''; $array[$i]['amount_tva'] = ''; // if tva is not needed then no tva field if ($flag_tva == 'Y') { // vat label //-- $Tva = new ITva_Popup($this->db); $Tva->in_table = true; $Tva->set_attribute('compute', $i); $Tva->js = 'onblur="format_number(this);clean_tva(' . $i . ');compute_ledger(' . $i . ')"'; $Tva->value = $march_tva_id; $array[$i]['tva'] = $Tva->input("e_march{$i}" . "_tva_id"); // vat amount //-- $wTva_amount = new INum(); $wTva_amount->readOnly = false; $wTva_amount->size = 6; $wTva_amount->javascript = "onBlur='format_number(this);compute_ledger({$i})'"; $array[$i]['amount_tva'] = $wTva_amount->input("e_march" . $i . "_tva_amount", $march_tva_amount); } // quantity //-- $quant = isset(${"e_quant{$i}"}) ? ${"e_quant{$i}"} : "1"; $Quantity = new INum(); $Quantity->setReadOnly(false); $Quantity->size = 8; $Quantity->javascript = "onChange='format_number(this);clean_tva({$i});compute_ledger({$i})'"; $array[$i]['quantity'] = $Quantity->input("e_quant" . $i, $quant); } // foreach article $f_type = _('Client'); ob_start(); require_once NOALYSS_INCLUDE . '/template/form_ledger_detail.php'; $r .= ob_get_contents(); ob_end_clean(); // Set correctly the REQUEST param for jrn_type $r .= HtmlInput::hidden('jrn_type', 'VEN'); $r .= HtmlInput::button('add_item', _('Ajout article'), ' onClick="ledger_add_row()"'); $r .= create_script("\$('" . $Date->id . "').focus()"); return $r; }
function input($p_array = null, $notused = 0) { global $g_parameter, $g_user; if ($p_array != null) { extract($p_array); } $pview_only = false; $min_article = $this->get_min_row(); $f_add_button = new IButton('add_card'); $f_add_button->label = _('Créer une nouvelle fiche'); $f_add_button->set_attribute('ipopup', 'ipop_newcard'); $f_add_button->set_attribute('jrn', $this->id); $f_add_button->javascript = " this.jrn=\$('p_jrn').value;select_card_type(this);"; $str_add_button = $g_user->check_action(FICADD) == 1 ? $f_add_button->input() : ""; // The first day of the periode $pPeriode = new Periode($this->db); list($l_date_start, $l_date_end) = $pPeriode->get_date_limit($g_user->get_periode()); if ($g_parameter->MY_DATE_SUGGEST == 'Y') { $op_date = !isset($e_date) ? $l_date_start : $e_date; } else { $op_date = !isset($e_date) ? '' : $e_date; } $r = ""; $r .= dossier::hidden(); $f_legend = 'Banque, caisse'; // Date //-- $Date = new IDate("e_date", $op_date); $Date->setReadOnly($pview_only); $f_date = $Date->input(); $f_period = ''; if ($this->check_periode() == true) { // Periode //-- $l_user_per = isset($periode) ? $periode : $g_user->get_periode(); $period = new IPeriod(); $period->cn = $this->db; $period->type = OPEN; $period->value = $l_user_per; $period->user = $g_user; $period->name = 'periode'; try { $l_form_per = $period->input(); } catch (Exception $e) { if ($e->getCode() == 1) { throw new Exception(_("Aucune période ouverte")); } } $label = HtmlInput::infobulle(3); $f_period = "Période comptable {$label}" . $l_form_per; } // Ledger (p_jrn) //-- $onchange = "update_bank();ajax_saldo('first_sold');update_name();update_row('fin_item');"; if ($g_parameter->MY_DATE_SUGGEST == 'Y') { $onchange .= 'get_last_date();'; } if ($g_parameter->MY_PJ_SUGGEST == 'Y') { $onchange .= 'update_pj();'; } $add_js = 'onchange="' . $onchange . '"'; $wLedger = $this->select_ledger('FIN', 2); if ($wLedger == null) { throw new Exception(_('Pas de journal disponible')); } $wLedger->javascript = $add_js; $label = " Journal " . HtmlInput::infobulle(2); $f_jrn = $label . $wLedger->input(); // retrieve bank name, code and account from the jrn_def.jrn_def_bank $f_bank = '<span id="bkname">' . $this->get_bank_name() . '</span>'; if ($this->bank_id == "") { echo h2("Journal de banque non configuré " . $this->get_name(), ' class="error"'); echo '<span class="error"> vous devez donner à ce journal un compte en banque (fiche), modifiez dans CFGLED</span>'; alert("Journal de banque non configuré " . $this->get_name()); } $f_legend_detail = 'Opérations financières'; //-------------------------------------------------- // Saldo begin end //------------------------------------------------- // Extrait $default_pj = ''; if ($g_parameter->MY_PJ_SUGGEST == 'Y') { $default_pj = $this->guess_pj(); } $wPJ = new IText('e_pj'); $wPJ->readonly = false; $wPJ->size = 10; $wPJ->value = isset($e_pj) ? $e_pj : $default_pj; $f_extrait = $wPJ->input() . HtmlInput::hidden('e_pj_suggest', $default_pj); $label = HtmlInput::infobulle(7); $first_sold = isset($first_sold) ? $first_sold : ""; $wFirst = new INum('first_sold', $first_sold); $last_sold = isset($last_sold) ? $last_sold : ""; $wLast = new INum('last_sold', $last_sold); $max = isset($nb_item) ? $nb_item : $min_article; $r .= HtmlInput::hidden('nb_item', $max); //-------------------------------------------------- // financial operation //------------------------------------------------- $array = array(); // Parse each " tiers" for ($i = 0; $i < $max; $i++) { $tiers = isset(${"e_other" . $i}) ? ${"e_other" . $i} : ""; $tiers_amount = isset(${"e_other{$i}" . "_amount"}) ? round(${"e_other{$i}" . "_amount"}, 2) : 0; $tiers_comment = isset(${"e_other{$i}" . "_comment"}) ? ${"e_other{$i}" . "_comment"} : ""; $operation_date = new IDate("dateop" . $i); $operation_date->value = isset(${'dateop' . $i}) ? ${'dateop' . $i} : ""; $array[$i]['dateop'] = $operation_date->input(); ${"e_other{$i}" . "_amount"} = isset(${"e_other{$i}" . "_amount"}) ? ${"e_other{$i}" . "_amount"} : 0; $W1 = new ICard(); $W1->label = ""; $W1->name = "e_other" . $i; $W1->id = "e_other" . $i; $W1->value = $tiers; $W1->extra = 'deb'; // credits $W1->typecard = 'deb'; $W1->style = ' style = "vertical-align:65%"'; $W1->set_dblclick("fill_ipopcard(this);"); $W1->set_attribute('ipopup', 'ipopcard'); // name of the field to update with the name of the card $W1->set_attribute('label', 'e_other_name' . $i); // name of the field to update with the name of the card $W1->set_attribute('typecard', 'filter'); // Add the callback function to filter the card on the jrn $W1->set_callback('filter_card'); $W1->set_function('fill_data'); $W1->javascript = sprintf(' onchange="fill_data_onchange(\'%s\');" ', $W1->name); $W1->readonly = $pview_only; $array[$i]['qcode'] = $W1->input(); $array[$i]['search'] = $W1->search(); // Card name // $card_name = ""; if ($tiers != "") { $fiche = new Fiche($this->db); $fiche->get_by_qcode($tiers); $card_name = $this->db->get_value("Select ad_value from fiche_detail where ad_id=\$1 and f_id=\$2", array(ATTR_DEF_NAME, $fiche->id)); } $wcard_name = new IText("e_other_name" . $i, $card_name); $wcard_name->id = $wcard_name->name; $wcard_name->readOnly = true; $array[$i]['cname'] = $wcard_name->input(); // Comment $wComment = new IText("e_other{$i}" . "_comment", $tiers_comment); $wComment->size = 35; $wComment->setReadOnly($pview_only); $array[$i]['comment'] = $wComment->input(); // amount $wAmount = new INum("e_other{$i}" . "_amount", $tiers_amount); $wAmount->size = 7; $wAmount->setReadOnly($pview_only); $array[$i]['amount'] = $wAmount->input(); // concerned ${"e_concerned" . $i} = isset(${"e_concerned" . $i}) ? ${"e_concerned" . $i} : ""; $wConcerned = new IConcerned("e_concerned" . $i, ${"e_concerned" . $i}); $wConcerned->tiers = "e_other" . $i; $wConcerned->setReadOnly($pview_only); $wConcerned->amount_id = "e_other" . $i . "_amount"; $wConcerned->paid = 'paid'; $array[$i]['concerned'] = $wConcerned->input(); } ob_start(); require_once NOALYSS_INCLUDE . '/template/form_ledger_fin.php'; $r .= ob_get_contents(); ob_end_clean(); $r .= create_script("\$('" . $Date->id . "').focus()"); return $r; }
<?php //This file is part of NOALYSS and is under GPL //see licence.txt require_once NOALYSS_INCLUDE . '/class_html_input.php'; require_once NOALYSS_INCLUDE . '/class_itext.php'; echo HtmlInput::title_box($msg, "divmenu"); $str_code = new IText('me_code', $m->me_code); if ($m->me_code != -1) { $str_code->setReadOnly(true); } $str_menu = new IText('me_menu', $m->me_menu); $str_desc = new IText('me_description', $m->me_description); $str_file = new IText('me_file', $m->me_file); $str_url = new IText('me_url', $m->me_url); $str_parameter = new IText('me_parameter', $m->me_parameter); $str_js = new IText('me_javascript', $m->me_javascript); $a_type = array(array('label' => _('Impression'), 'value' => 'PR'), array('label' => _('Menu'), 'value' => 'ME')); $str_type = new ISelect("me_type", $a_type); $str_type->selected = $m->me_type; ?> <table> <tr> <td> <?php echo _("Code du menu"); ?> </td> <td> <?php echo $str_code->input();