00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054 class HtmlInput
00055 {
00056
00057 var $type;
00058 var $name;
00059 var $value;
00060 var $readOnly;
00061 var $size;
00062 var $selected;
00063 var $table;
00064 var $label;
00065 var $disabled;
00066 var $extra;
00067 var $extra2;
00068
00069 var $javascript;
00070 var $ctrl;
00071
00072 var $tabindex;
00073 function __construct($p_name="",$p_value="")
00074 {
00075 $this->name=$p_name;
00076 $this->readOnly=false;
00077 $this->size=20;
00078 $this->width=50;
00079 $this->heigh=20;
00080 $this->value=$p_value;
00081 $this->selected="";
00082 $this->table=0;
00083 $this->disabled=false;
00084 $this->javascript="";
00085 $this->extra2="all";
00086 $this->attribute=array();
00087
00088 }
00089 function setReadOnly($p_read)
00090 {
00091 $this->readOnly=$p_read;
00092 }
00093
00094
00095
00096
00097 public function set_attribute($p_name,$p_value)
00098 {
00099 $this->attribute[]=array($p_name,$p_value);
00100 $this->$p_name=$p_value;
00101 }
00102
00103
00104
00105
00106
00107
00108 public function get_js_attr()
00109 {
00110 require_once('function_javascript.php');
00111 $attr="";
00112 if ( count($this->attribute) == 0) return "";
00113
00114
00115 for ($i=0;$i< count($this->attribute);$i++)
00116 {
00117 list($name,$value)=$this->attribute[$i];
00118 $tmp1=sprintf("$('%s').%s='%s';",
00119 $this->name,
00120 $name,
00121 $value);
00122 $attr.=$tmp1;
00123 }
00124 $attr=create_script($attr);
00125 return $attr;
00126 }
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146 public function make_object($p_name=null)
00147 {
00148 $name=($p_name != null)?$p_name.'=':'';
00149 if ( count($this->attribute) == 0) return $name."{}";
00150 $ret=$name."{";
00151 $and='';
00152
00153 for ($i=0;$i< count($this->attribute);$i++)
00154 {
00155 list($name,$value)=$this->attribute[$i];
00156 $tmp1=sprintf($and."'%s':'%s'",
00157 $name,
00158 $value);
00159 $ret.=$tmp1;
00160 $and=',';
00161 }
00162
00163 $ret.='}';
00164 return $ret;
00165 }
00166
00167
00168
00169 function debug()
00170 {
00171 echo "Type ".$this->type."<br>";
00172 echo "name ".$this->name."<br>";
00173 echo "value". $this->value."<br>";
00174 $readonly=($this->readonly==false)?"false":"true";
00175 echo "read only".$readonly."<br>";
00176 }
00177 static function submit ($p_name,$p_value,$p_javascript="")
00178 {
00179
00180 return '<INPUT TYPE="SUBMIT" class="button" NAME="'.$p_name.'" VALUE="'.$p_value.'" '.$p_javascript.'>';
00181 }
00182 static function button ($p_name,$p_value,$p_javascript="")
00183 {
00184
00185 return '<INPUT TYPE="button" class="button" NAME="'.$p_name.'" ID="'.$p_name.'" VALUE="'.$p_value.'" '.$p_javascript.'>';
00186 }
00187
00188 static function reset ($p_value)
00189 {
00190 return '<INPUT TYPE="RESET" class="button" VALUE="'.$p_value.'">';
00191 }
00192 static function hidden($p_name,$p_value,$p_id="")
00193 {
00194 if ($p_id=="") $p_id=$p_name;
00195 return '<INPUT TYPE="hidden" id="'.$p_id.'" NAME="'.$p_name.'" VALUE="'.$p_value.'">';
00196 }
00197
00198 static function extension()
00199 {
00200 return self::hidden('plugin_code',$_REQUEST['plugin_code']);
00201 }
00202
00203
00204
00205
00206
00207
00208
00209
00210 static function button_anchor($p_label,$p_value,$p_name="",$p_javascript="")
00211 {
00212 $r=sprintf('<span id="%s" > <A class="button" style="display:inline;" href="%s" %s >%s</A></span>',
00213 $p_name,
00214 $p_value,
00215 $p_javascript,
00216 $p_label);
00217 return $r;
00218 }
00219 static function infobulle($p_comment)
00220 {
00221 $r='<A HREF="#" style="display:inline;color:black;background-color:yellow;padding-left:4px;width:2em;padding-right:4px;text-decoration:none;" onmouseover="showBulle(\''.$p_comment.'\')" onclick="showBulle(\''.$p_comment.'\')" onmouseout="hideBulle(0)">?</A>';
00222 return $r;
00223 }
00224 static function warnbulle($p_comment)
00225 {
00226 $r='<A HREF="#" style="display:inline;color:red;background-color:white;padding-left:4px;padding-right:4px;text-decoration:none;" onmouseover="showBulle(\''.$p_comment.'\')" onclick="showBulle(\''.$p_comment.'\')" onmouseout="hideBulle(0)">Δ</A>';
00227 return $r;
00228 }
00229
00230
00231
00232 static function detail_op($p_jr_id,$p_mesg)
00233 {
00234 return sprintf('<A class="detail" style="text-decoration:underline;display:inline" HREF="javascript:modifyOperation(%d,%d)">%s</A>',
00235 $p_jr_id,dossier::id(),$p_mesg);
00236 }
00237
00238
00239
00240 static function detail_modele_document($p_id,$p_mesg)
00241 {
00242 return sprintf('<A class="detail" style="text-decoration:underline" HREF="javascript:modifyModeleDocument(%d,%d)">%s</A>',
00243 $p_id,dossier::id(),$p_mesg);
00244 }
00245
00246
00247
00248
00249 static function remove_stock($p_id,$p_mesg)
00250 {
00251 return sprintf('<A class="detail" style="text-decoration:underline" HREF="javascript:removeStock(%d,%d)">%s</A>',
00252 $p_id,dossier::id(),$p_mesg);
00253 }
00254
00255
00256
00257
00258 static function history_card($f_id,$p_mesg,$p_style="")
00259 {
00260 $view_history= sprintf('<A class="detail" style="text-decoration:underline;%s" HREF="javascript:view_history_card(\'%s\',\'%s\')" >%s</A>',
00261 $p_style,$f_id, dossier::id(), $p_mesg);
00262 return $view_history;
00263 }
00264
00265
00266
00267 static function history_card_button($f_id,$p_mesg)
00268 {
00269 static $e=0;
00270 $e++;
00271 $js= sprintf('onclick="view_history_card(\'%s\',\'%s\')"',
00272 $f_id, dossier::id());
00273 $view_history=HtmlInput::button("hcb"+$e,$p_mesg,$js);
00274 return $view_history;
00275 }
00276
00277
00278
00279
00280 static function history_account($p_account,$p_mesg,$p_style="")
00281 {
00282 $view_history= sprintf('<A class="detail" style="text-decoration:underline;%s" HREF="javascript:view_history_account(\'%s\',\'%s\')" >%s</A>',
00283 $p_style,$p_account, dossier::id(), $p_mesg);
00284 return $view_history;
00285 }
00286
00287
00288
00289
00290
00291
00292
00293
00294
00295 static function select_ledger($p_array,$p_selected,$div='')
00296 {
00297 ob_start();
00298 $ledger=new IButton('l');
00299 $ledger->label="choix des journaux";
00300 $ledger->javascript=" show_ledger_choice()";
00301 echo $ledger->input();
00302
00303
00304 echo '<div id="div_jrn'.$div.'" >';
00305 echo '<h2 class="info">Choix des journaux</h2>';
00306
00307 echo '<ul>';
00308 for ($e=0;$e<count($p_array);$e++)
00309 {
00310 $row=$p_array[$e];
00311 $r=new ICheckBox('r_jrn['.$e.']',$row['jrn_def_id']);
00312 $idx=$row['jrn_def_id'];
00313 if ( $p_selected != null && isset($p_selected[$e]))
00314 {
00315 $r->selected=true;
00316 }
00317 echo '<li style="list-style-type: none;">'.$r->input().$row['jrn_def_name'].'('.$row['jrn_def_type'].')</li>';
00318
00319 }
00320 echo '</ul>';
00321 $hide=new IButton('l');
00322 $hide->label="Valider";
00323 $hide->javascript=" hide_ledger_choice() ";
00324 echo $hide->input();
00325
00326 echo '</div>';
00327 $ret=ob_get_contents();
00328 ob_clean();
00329 return $ret;
00330 }
00331
00332
00333
00334
00335 static function select_cat($array_cat)
00336 {
00337 ob_start();
00338 $ledger=new IButton('l');
00339 $ledger->label="Catégorie";
00340 $ledger->javascript=" show_cat_choice()";
00341 echo $ledger->input();
00342
00343
00344 echo '<div id="div_cat">';
00345 echo '<h2 class="info">Choix des categories</h2>';
00346 $selected=(isset($_GET['r_cat']))?$_GET['r_cat']:null;
00347
00348 echo '<ul>';
00349 for ($e=0;$e<count($array_cat);$e++)
00350 {
00351 $row=$array_cat[$e];
00352 $re=new ICheckBox('r_cat['.$e.']',$row['cat']);
00353
00354 if ( $selected != null && isset($selected[$e]))
00355 {
00356 $re->selected=true;
00357 }
00358 echo '<li style="list-style-type: none;">'.$re->input().$row['name'].'('.$row['cat'].')</li>';
00359
00360 }
00361 echo '</ul>';
00362 $hide=new IButton('l');
00363 $hide->label="Valider";
00364 $hide->javascript=" hide_cat_choice() ";
00365 echo $hide->input();
00366
00367 echo '</div>';
00368 $r=ob_get_contents();
00369 ob_clean();
00370 return $r;
00371 }
00372 static function display_periode($p_id)
00373 {
00374 $r=sprintf('<a href="javascript:void(0)" onclick="display_periode(%d,%d)">Modifier</a>',
00375 dossier::id(),
00376 $p_id);
00377 return $r;
00378 }
00379
00380
00381
00382
00383
00384 static function button_close($div_name)
00385 {
00386 $a=new IButton('Fermer','Fermer');
00387 $a->label="Fermer";
00388 $a->javascript="removeDiv('".$div_name."')";
00389 $html=$a->input();
00390
00391 return $html;
00392
00393 }
00394
00395
00396
00397
00398 static function anchor_close($div)
00399 {
00400 $r='';
00401 $r.='<div style="float:right;margin-right:2px;margin-top:1px;padding:0">';
00402 $r.= '<A id="close_div" HREF="javascript:void(0)" onclick="removeDiv(\''.$div.'\');">Fermer</A>';
00403 $r.='</div>';
00404 return $r;
00405 }
00406
00407
00408
00409
00410
00411 static function button_action($action,$javascript,$id="xx")
00412 {
00413 $r="";
00414 $r.='<input type="button" id="'.$id.'"class="button" onclick="'.$javascript.'" value="'.h($action).'">';
00415 return $r;
00416
00417 }
00418
00419
00420
00421
00422
00423
00424
00425 static function anchor_hide($action,$javascript)
00426 {
00427 $r='';
00428 $r.='<div style="float:right;right;margin:2;">';
00429 $r.= '<A id="close_div" HREF="javascript:void(0)" onclick="'.$javascript.'">'.$action.'</A>';
00430 $r.='</div>';
00431 return $r;
00432 }
00433
00434
00435
00436
00437 static function print_window()
00438 {
00439 $r='';
00440 $r.=HtmlInput::button('print','Imprimer','onclick="window.print();"');
00441 return $r;
00442 }
00443
00444
00445
00446 static function card_detail($p_qcode,$pname='',$p_style="")
00447 {
00448
00449 $r="";
00450 $r.=sprintf('<a href="javascript:void(0)" %s onclick="fill_ipopcard({qcode:\'%s\'})">%s [%s]</a>',
00451 $p_style,$p_qcode,$pname,$p_qcode);
00452 return $r;
00453 }
00454
00455
00456
00457
00458
00459
00460 static function array_to_hidden($array,$global_array )
00461 {
00462
00463 $r="";
00464
00465 if ( count($global_array )==0) return '';
00466 foreach ($array as $a)
00467 {
00468 if (isset($global_array [$a])) $r.=HtmlInput::hidden($a,$global_array [$a]);
00469 }
00470
00471 return $r;
00472 }
00473
00474
00475
00476
00477
00478
00479 static function get_to_hidden($array)
00480 {
00481 $r=self::array_to_hidden($array,$_GET );
00482 return $r;
00483 }
00484
00485
00486
00487
00488
00489
00490
00491 static function post_to_hidden($array)
00492 {
00493 $r=self::array_to_hidden($array,$_POST );
00494 return $r;
00495 }
00496
00497
00498
00499
00500
00501
00502
00503 static function request_to_hidden($array)
00504 {
00505 $r=self::array_to_hidden($array,$_REQUEST );
00506 return $r;
00507 }
00508
00509
00510
00511
00512
00513
00514
00515 static function array_to_string($array,$global_array,$start="?" )
00516 {
00517
00518 $r=$start;
00519
00520 if ( count($global_array )==0) return '';
00521 $and="";
00522 foreach ($array as $a)
00523 {
00524 if (isset($global_array [$a]))
00525 $r.=$and."$a=".$global_array [$a];
00526 $and="&";
00527 }
00528
00529 return $r;
00530 }
00531
00532
00533
00534
00535
00536
00537 static function get_to_string($array,$start="?")
00538 {
00539 $r=self::array_to_string($array,$_GET ,$start);
00540 return $r;
00541 }
00542
00543
00544
00545
00546
00547
00548
00549 static function post_to_string($array)
00550 {
00551 $r=self::array_to_string($array,$_POST );
00552 return $r;
00553 }
00554
00555
00556
00557
00558
00559
00560
00561 static function request_to_string($array,$start="?")
00562 {
00563 $r=self::array_to_string($array,$_REQUEST,$start );
00564 return $r;
00565 }
00566
00567
00568
00569
00570
00571
00572
00573 static function generate_id($p_prefix)
00574 {
00575 $r=sprintf('%s_%d',$p_prefix,mt_rand(0,999999));
00576 return $r;
00577 }
00578
00579
00580
00581
00582
00583
00584 static function default_value($ind,$default,$array)
00585 {
00586 if ( ! isset($array[$ind]))
00587 {
00588 return $default;
00589 }
00590 return $array[$ind];
00591 }
00592
00593
00594
00595
00596
00597
00598 static function default_value_get($ind, $default)
00599 {
00600 if (!isset($_GET[$ind]))
00601 {
00602 return $default;
00603 }
00604 return $_GET[$ind];
00605 }
00606
00607
00608
00609
00610
00611
00612 static function default_value_post($ind, $default)
00613 {
00614 if (!isset($_POST[$ind]))
00615 {
00616 return $default;
00617 }
00618 return $_POST[$ind];
00619 }
00620
00621
00622
00623
00624
00625
00626 static function default_value_request($ind, $default)
00627 {
00628 if (!isset($_REQUEST[$ind]))
00629 {
00630 return $default;
00631 }
00632 return $_REQUEST[$ind];
00633 }
00634 static function title_box($name,$div,$mod="close")
00635 {
00636 if ($mod=='close') $r=HtmlInput::anchor_close($div);
00637 if ($mod=='hide') $r=HtmlInput::anchor_hide(_('Fermer'),"$('$div').hide()");
00638 $r.=h2info($name);
00639 return $r;
00640 }
00641
00642
00643
00644
00645
00646
00647
00648
00649
00650 static function anchor($p_text,$p_url="",$p_js="")
00651 {
00652 if ($p_js != "")
00653 {
00654 $p_url="javascript:void(0)";
00655 }
00656
00657
00658 $str=sprintf('<a class="line" href="%s" %s>%s</a>',
00659 $p_url,$p_js,$p_text);
00660 return $str;
00661 }
00662
00663
00664
00665
00666
00667
00668
00669
00670
00671
00672 static function select_stock( $p_cn, $p_name,$p_mode)
00673 {
00674 global $g_user;
00675 if ( ! in_array($p_mode,array('R','W') ) )
00676 {
00677 throw new Exception (__FILE__.":".__LINE__." $p_mode invalide");
00678 }
00679 $profile=$g_user->get_profile();
00680 $sel=new ISelect($p_name);
00681
00682 if ($p_mode == 'W')
00683 {
00684 $sel->value=$p_cn->make_array("
00685 select r_id,r_name
00686 from stock_repository join profile_sec_repository using (r_id)
00687 where
00688 ur_right='W' and p_id=".sql_string($profile).
00689 " order by 2" );
00690 return $sel;
00691 }
00692 if ($p_mode == 'R')
00693 {
00694 $sel->value=$p_cn->make_array("
00695 select r_id,r_name
00696 from stock_repository join profile_sec_repository using (r_id)
00697 where
00698 p_id=".sql_string($profile).
00699 " order by 2" );
00700 return $sel;
00701 }
00702 }
00703 }