diff --git a/include/ac_common.php b/include/ac_common.php index e489801ac..2ce9585c1 100644 --- a/include/ac_common.php +++ b/include/ac_common.php @@ -1,4 +1,5 @@ '.$p_string.''; -} -function hi($p_string) -{ - return ''.htmlspecialchars($p_string).''; -} -function hb($p_string) -{ - return ''.htmlspecialchars($p_string).''; -} -function th($p_string,$p_extra='') -{ - return ''.htmlspecialchars($p_string).''; -} -function h2info($p_string) -{ - return '

'.htmlspecialchars($p_string).'

'; -} -function h2($p_string,$p_class) -{ - return '

'.htmlspecialchars($p_string).'

'; + return '' . $p_string . ''; } -/*!\brief surround the string with td -*\param $p_string string to surround by TD -*\param $p_extra extra info (class, style, javascript...) -* \return string surrounded by td -*/ -function td($p_string='',$p_extra='') +function hi($p_string) { - return ''.$p_string.''; + return '' . htmlspecialchars($p_string) . ''; } -function tr($p_string,$p_extra='') + +function hb($p_string) { - return ''.$p_string.''; + return '' . htmlspecialchars($p_string) . ''; } -/*!\brief escape correctly php string to javascript */ + +function th($p_string, $p_extra='') +{ + return '' . htmlspecialchars($p_string) . ''; +} + +function h2info($p_string) +{ + return '

' . htmlspecialchars($p_string) . '

'; +} + +function h2($p_string, $p_class) +{ + return '

' . htmlspecialchars($p_string) . '

'; +} + +/* !\brief surround the string with td + * \param $p_string string to surround by TD + * \param $p_extra extra info (class, style, javascript...) + * \return string surrounded by td + */ + +function td($p_string='', $p_extra='') +{ + return '' . $p_string . ''; +} + +function tr($p_string, $p_extra='') +{ + return '' . $p_string . ''; +} + +/* !\brief escape correctly php string to javascript */ + function j($p_string) { - $a=preg_replace("/\r?\n/", "\\n", addslashes($p_string)); - $a=str_replace("'",'\'',$a); + $a = preg_replace("/\r?\n/", "\\n", addslashes($p_string)); + $a = str_replace("'", '\'', $a); return $a; } + /** * format the number for the CSV export - *@param $p_number number + * @param $p_number number */ function nb($p_number) { - $r=sprintf('%.2f',$p_number); - $r=str_replace('.',',',$r); + $r = sprintf('%.2f', $p_number); + $r = str_replace('.', ',', $r); - return $r; + return $r; } + /** * format the number with a sep. for the thousand - *@param $p_number number + * @param $p_number number */ function nbm($p_number) { - if (trim($p_number)=='') return ''; - if ( $p_number==0) return 0; - $a=doubleval($p_number); + if (trim($p_number) == '') + return ''; + if ($p_number == 0) + return 0; + $a = doubleval($p_number); - $r=number_format($a,2,",","."); - if (trim($r)=='') { - var_dump($r);var_dump($p_number);var_dump($a);exit(); - } + $r = number_format($a, 2, ",", "."); + if (trim($r) == '') + { + var_dump($r); + var_dump($p_number); + var_dump($a); + exit(); + } - return $r; + return $r; } -/*! + +/* ! * \brief log error into the /tmp/phpcompta_error.log it doesn't work on windows * * \param p_log message @@ -117,18 +138,19 @@ function nbm($p_number) * \return nothing * */ -function echo_error ($p_log, $p_line="", $p_message="") + +function echo_error($p_log, $p_line="", $p_message="") { - echo "ERREUR :".$p_log." ".$p_line." ".$p_message; - $fdebug=fopen($_ENV['TMP'].DIRECTORY_SEPARATOR."phpcompta_error.log","a+"); - if ($fdebug != null ) + echo "ERREUR :" . $p_log . " " . $p_line . " " . $p_message; + $fdebug = fopen($_ENV['TMP'] . DIRECTORY_SEPARATOR . "phpcompta_error.log", "a+"); + if ($fdebug != null) { - fwrite($fdebug,date("Ymd H:i:s").$p_log." ".$p_line." ".$p_message."\n"); - fclose($fdebug); + fwrite($fdebug, date("Ymd H:i:s") . $p_log . " " . $p_line . " " . $p_message . "\n"); + fclose($fdebug); } } -/*! +/* ! * \brief Compare 2 dates * \param p_date * \param p_date_oth @@ -138,24 +160,26 @@ function echo_error ($p_log, $p_line="", $p_message="") * - > 0 date1 > date2 * - < 0 date1 < date2 */ -function cmpDate ($p_date,$p_date_oth) -{ - date_default_timezone_set ('Europe/Brussels'); - $l_date=isDate($p_date); - $l2_date=isDate($p_date_oth); - if ($l_date == null || $l2_date == null ) +function cmpDate($p_date, $p_date_oth) +{ + date_default_timezone_set('Europe/Brussels'); + + $l_date = isDate($p_date); + $l2_date = isDate($p_date_oth); + if ($l_date == null || $l2_date == null) { - throw new Exception ("erreur date [$p_date] [$p_date_oth]"); + throw new Exception("erreur date [$p_date] [$p_date_oth]"); } - $l_adate=explode(".",$l_date); - $l2_adate=explode(".",$l2_date); - $l_mkdate=mktime(0,0,0,$l_adate[1],$l_adate[0],$l_adate[2]); - $l2_mkdate=mktime(0,0,0,$l2_adate[1],$l2_adate[0],$l2_adate[2]); + $l_adate = explode(".", $l_date); + $l2_adate = explode(".", $l2_date); + $l_mkdate = mktime(0, 0, 0, $l_adate[1], $l_adate[0], $l_adate[2]); + $l2_mkdate = mktime(0, 0, 0, $l2_adate[1], $l2_adate[0], $l2_adate[2]); // si $p_date > $p_date_oth return > 0 - return $l_mkdate-$l2_mkdate; + return $l_mkdate - $l2_mkdate; } -/*! + +/* ! * \brief check if the argument is a number * * \param $p_int number to test @@ -164,57 +188,58 @@ function cmpDate ($p_date,$p_date_oth) * - 1 it's a number * - 0 it is not */ + function isNumber(&$p_int) { - if ( strlen (trim($p_int)) == 0 ) return 0; - if ( is_numeric($p_int) === true) - return 1; + if (strlen(trim($p_int)) == 0) + return 0; + if (is_numeric($p_int) === true) + return 1; else - return 0; - - + return 0; } -/*! +/* ! * \brief Verifie qu'une date est bien formaté * en d.m.y et est valable * \param $p_date * * \return - * - null si la date est invalide ou malformaté + * - null si la date est invalide ou malformaté * - $p_date si tout est bon * */ -function isDate ( $p_date) +function isDate($p_date) { - if ( strlen (trim($p_date)) == 0 ) return null; - if ( preg_match("/^[0-9]{1,2}\.[0-9]{1,2}\.20[0-9]{2}$/",$p_date) == 0 ) + if (strlen(trim($p_date)) == 0) + return null; + if (preg_match("/^[0-9]{1,2}\.[0-9]{1,2}\.20[0-9]{2}$/", $p_date) == 0) { - return null; + return null; } else { - $l_date=explode(".",$p_date); + $l_date = explode(".", $p_date); - if ( sizeof ($l_date) != 3 ) - return null; + if (sizeof($l_date) != 3) + return null; - if ( $l_date[2] > 2020 ) - { - return null; - } - - if ( checkdate ($l_date[1],$l_date[0],$l_date[2]) == false) - { - return null; - } + if ($l_date[2] > 2020) + { + return null; + } + if (checkdate($l_date[1], $l_date[0], $l_date[2]) == false) + { + return null; + } }// !ereg return $p_date; } -/*! + +/* ! * \brief Default page header for each page * * \param p_theme default theme @@ -223,38 +248,39 @@ function isDate ( $p_date) * * \return none */ -function html_page_start($p_theme="",$p_script="",$p_script2="") + +function html_page_start($p_theme="", $p_script="", $p_script2="") { - $cn=new Database(); - if ( $p_theme != "") + $cn = new Database(); + if ($p_theme != "") { - $Res=$cn->exec_sql("select the_filestyle from theme - where the_name='".$p_theme."'"); - if (Database::num_row($Res)==0) - $style="style.css"; - else - { - $s=Database::fetch_array($Res,0); - $style=$s['the_filestyle']; - } + $Res = $cn->exec_sql("select the_filestyle from theme + where the_name='" . $p_theme . "'"); + if (Database::num_row($Res) == 0) + $style = "style.css"; + else + { + $s = Database::fetch_array($Res, 0); + $style = $s['the_filestyle']; + } } else { - $style="style.css"; + $style = "style.css"; } // end if echo ''; echo ""; - if ( $p_script2 != "" ) - $p_script2=''; + if ($p_script2 != "") + $p_script2 = ''; echo " PhpCompta - ". - $p_script2. " + " . + $p_script2 . " "; echo ' @@ -265,19 +291,19 @@ function html_page_start($p_theme="",$p_script="",$p_script2="") echo ""; // language - if ( isset($_SESSION['g_lang'])) + if (isset($_SESSION['g_lang'])) { - set_language(); + set_language(); } /* If we are on the user_login page */ - if ( basename($_SERVER['PHP_SELF']) == 'user_login.php') + if (basename($_SERVER['PHP_SELF']) == 'user_login.php') { - return; + return; } - } -/*! + +/* ! * \brief Minimal page header for each page, used for small popup window * * \param p_theme default theme @@ -286,102 +312,106 @@ function html_page_start($p_theme="",$p_script="",$p_script2="") * * \return none */ -function html_min_page_start($p_theme="",$p_script="",$p_script2="") + +function html_min_page_start($p_theme="", $p_script="", $p_script2="") { - $cn=new Database(); - if ( $p_theme != "") + $cn = new Database(); + if ($p_theme != "") { - $Res=$cn->exec_sql("select the_filestyle from theme - where the_name='".$p_theme."'"); - if (Database::num_row($Res)==0) - $style="style.css"; - else - { - $s=Database::fetch_array($Res,0); - $style=$s['the_filestyle']; - } + $Res = $cn->exec_sql("select the_filestyle from theme + where the_name='" . $p_theme . "'"); + if (Database::num_row($Res) == 0) + $style = "style.css"; + else + { + $s = Database::fetch_array($Res, 0); + $style = $s['the_filestyle']; + } } else { - $style="style.css"; + $style = "style.css"; } // end if echo ''; echo ""; - if ( $p_script2 != "" ) - $p_script2=''; + if ($p_script2 != "") + $p_script2 = ''; echo " PhpCompta - ". - $p_script2. " + " . + $p_script2 . " "; echo ' '; echo ""; /* If we are on the user_login page */ - if ( basename($_SERVER['PHP_SELF']) == 'user_login.php') + if (basename($_SERVER['PHP_SELF']) == 'user_login.php') { - return; + return; } - } -/*! +/* ! * \brief end tag * */ + function html_page_stop() { echo ""; echo ""; } -/*! + +/* ! * \brief Echo no access and stop * * \return nothing */ - function NoAccess($js=1) { - if ( $js == 1 ) + if ($js == 1) { - echo ""; + echo ""; } else { - echo '
'; - echo '

'._(' Cette action ne vous est pas autorisée Contactez votre responsable').'

'; - echo '
'; + echo '
'; + echo '

' . _(' Cette action ne vous est pas autorisée Contactez votre responsable') . '

'; + echo '
'; } - exit -1; + exit - 1; } -/*! + +/* ! * \brief Fix the problem with the quote char for the database * * \param $p_string * \return a string which won't let strange char for the database */ + function FormatString($p_string) { - $p_string=trim($p_string); - if (strlen($p_string) == 0 ) return null; - $p_string=str_replace("\'","'",$p_string); - $p_string=str_replace("''","'",$p_string); - $p_string=str_replace("'","\'",$p_string); + $p_string = trim($p_string); + if (strlen($p_string) == 0) + return null; + $p_string = str_replace("\'", "'", $p_string); + $p_string = str_replace("''", "'", $p_string); + $p_string = str_replace("'", "\'", $p_string); return $p_string; } -/*! -/* \brief store the string which print +/* ! + /* \brief store the string which print * the content of p_array in a table * used to display the menu * \param $p_array array like ( 0=>HREF reference, 1=>visible item (name),2=>Help(opt), @@ -392,76 +422,79 @@ function FormatString($p_string) * \param $default selected item * \param $p_extra extra code for the table tag (CSS or javascript) * -/* \return : string */ -function ShowItem($p_array,$p_dir='V',$class="mtitle",$class_ref="mtitle",$default="",$p_extra="") + /* \return : string */ + +function ShowItem($p_array, $p_dir='V', $class="mtitle", $class_ref="mtitle", $default="", $p_extra="") { - $ret=""; + $ret = "
"; // direction Vertical - if ( $p_dir == 'V') + if ($p_dir == 'V') { - foreach ($p_array as $all=>$href) - { - $javascript=(isset ($href[4]))?$href[4]:""; - $title=""; - $set="XX"; - if ( isset ($href[2] )) - $title=$href[2]; - if ( isset($href[3] )) - $set=$href[3]; + foreach ($p_array as $all => $href) + { + $javascript = (isset($href[4])) ? $href[4] : ""; + $title = ""; + $set = "XX"; + if (isset($href[2])) + $title = $href[2]; + if (isset($href[3])) + $set = $href[3]; - if ( $set == $default ) - $ret.=''; - else - $ret.=''; - } + if ($set == $default) + $ret.=''; + else + $ret.=''; + } } //direction Horizontal - else if ( $p_dir == 'H' ) + else if ($p_dir == 'H') { - $ret.=""; - foreach ($p_array as $all=>$href) - { - $title=""; - $javascript=(isset ($href[4]))?$href[4]:""; + $ret.=""; + foreach ($p_array as $all => $href) + { + $title = ""; + $javascript = (isset($href[4])) ? $href[4] : ""; - $set="A"; - if ( isset ($href[2] )) - $title=$href[2]; + $set = "A"; + if (isset($href[2])) + $title = $href[2]; - if ( isset($href[3])) - $set=$href[3]; + if (isset($href[3])) + $set = $href[3]; - if ( $default=== $href[0]||$set===$default ) - { - $ret.=''; - } - else - { - $ret.=''; - } - - } - $ret.=""; + if ($default === $href[0] || $set === $default) + { + $ret.=''; + } + else + { + $ret.=''; + } + } + $ret.=""; } $ret.="
'.$href[1].'
'.$href[1].'
' . $href[1] . '
' . $href[1] . '
'.$href[1].''.$href[1].'
' . $href[1] . '' . $href[1] . '
"; return $ret; } -/*! + +/* ! * \brief warns * * \param p_string error message * gen : - * - none + * - none * \return: * - none */ + function echo_warning($p_string) { - echo '

'.$p_string."

"; + echo '

' . $p_string . "

"; } -/*! + +/* ! * \brief Show the periode which found thanks its id * * @@ -471,17 +504,17 @@ function echo_warning($p_string) * * \return: string */ -function getPeriodeName($p_cn,$p_id,$pos='p_start') + +function getPeriodeName($p_cn, $p_id, $pos='p_start') { - if ( $pos != 'p_start' and - $pos != 'p_end') - echo_error('ac_common.php'."-".__LINE__.' UNDEFINED PERIODE'); - $ret=$p_cn->get_value("select to_char($pos,'Mon YYYY') as t from parm_periode where p_id=$p_id"); + if ($pos != 'p_start' and + $pos != 'p_end') + echo_error('ac_common.php' . "-" . __LINE__ . ' UNDEFINED PERIODE'); + $ret = $p_cn->get_value("select to_char($pos,'Mon YYYY') as t from parm_periode where p_id=$p_id"); return $ret; } - -/*! +/* ! * \brief Return the period corresponding to the * date * @@ -491,27 +524,30 @@ function getPeriodeName($p_cn,$p_id,$pos='p_start') * \return: * parm_periode.p_id */ -function getPeriodeFromMonth($p_cn,$p_date) + +function getPeriodeFromMonth($p_cn, $p_date) { - $R=$p_cn->get_value("select p_id from parm_periode where + $R = $p_cn->get_value("select p_id from parm_periode where to_char(p_start,'DD.MM.YYYY') = '01.$p_date'"); - if ( $R == "" ) - return -1; + if ($R == "") + return -1; return $R; } -/*!\brief Decode the html for the widegt richtext and remove newline - *\param $p_html string to decode + +/* !\brief Decode the html for the widegt richtext and remove newline + * \param $p_html string to decode * \return the html code without new line */ function Decode($p_html) { - $p_html=str_replace('%0D','',$p_html); - $p_html=str_replace('%0A','',$p_html); - $p_html=urldecode($p_html); + $p_html = str_replace('%0D', '', $p_html); + $p_html = str_replace('%0A', '', $p_html); + $p_html = urldecode($p_html); return $p_html; } -/*!\brief Create the condition to filter on the j_tech_per + +/* !\brief Create the condition to filter on the j_tech_per * thanks a from and to date. * \param $p_cn database conx * \param $p_from start date (date) @@ -520,173 +556,182 @@ function Decode($p_html) * \param $p_field column name * \return a string containg the query */ -function sql_filter_per($p_cn,$p_from,$p_to,$p_form='p_id',$p_field='jr_tech_per') + +function sql_filter_per($p_cn, $p_from, $p_to, $p_form='p_id', $p_field='jr_tech_per') { - if ( $p_form != 'p_id' && - $p_form != 'date' ) + if ($p_form != 'p_id' && + $p_form != 'date') { - echo_error (__FILE__,__LINE__,'Mauvais parametres '); - exit(-1); + echo_error(__FILE__, __LINE__, 'Mauvais parametres '); + exit(-1); } - if ( $p_form == 'p_id' ) + if ($p_form == 'p_id') { - // retrieve the date - $pPeriode=new Periode($p_cn); - $a_start=$pPeriode->get_date_limit($p_from); - $a_end=$pPeriode->get_date_limit($p_to); - if ( $a_start == null || $a_end == null ) - throw new Exception(__FILE__.__LINE__.'Attention periode '. - ' non trouvee periode p_from='.$p_from. - 'p_to_periode = '.$p_to); + // retrieve the date + $pPeriode = new Periode($p_cn); + $a_start = $pPeriode->get_date_limit($p_from); + $a_end = $pPeriode->get_date_limit($p_to); + if ($a_start == null || $a_end == null) + throw new Exception(__FILE__ . __LINE__ . 'Attention periode ' . + ' non trouvee periode p_from=' . $p_from . + 'p_to_periode = ' . $p_to); - $p_from=$a_start['p_start']; - $p_to=$a_end['p_end']; + $p_from = $a_start['p_start']; + $p_to = $a_end['p_end']; } - if ( $p_from == $p_to ) - $periode=" $p_field = (select p_id from parm_periode ". - " where ". - " p_start = to_date('$p_from','DD.MM.YYYY')) "; + if ($p_from == $p_to) + $periode = " $p_field = (select p_id from parm_periode " . + " where " . + " p_start = to_date('$p_from','DD.MM.YYYY')) "; else - $periode = "$p_field in (select p_id from parm_periode ". - " where p_start >= to_date('$p_from','DD.MM.YYYY') and p_end <= to_date('$p_to','DD.MM.YYYY')) "; + $periode = "$p_field in (select p_id from parm_periode " . + " where p_start >= to_date('$p_from','DD.MM.YYYY') and p_end <= to_date('$p_to','DD.MM.YYYY')) "; return $periode; } -/*!\brief alert in javascript - *\param $p_msg is the message - *\param $buffer if false, echo directly and execute the javascript, if $buffer is true, the alert javascript +/* !\brief alert in javascript + * \param $p_msg is the message + * \param $buffer if false, echo directly and execute the javascript, if $buffer is true, the alert javascript * is in the return string - *\return string with alert javascript if $buffer is true + * \return string with alert javascript if $buffer is true */ -function alert($p_msg,$buffer=false) + +function alert($p_msg, $buffer=false) { - $r= ''; - if ($buffer) return $r; + if ($buffer) + return $r; echo $r; - } + /** - *@brief set the lang thanks the _SESSION['g_lang'] var. + * @brief set the lang thanks the _SESSION['g_lang'] var. */ function set_language() { - $dir=""; + $dir = ""; // set differently the language depending of the operating system - if( what_os() == 1 ) + if (what_os() == 1) { - $dir=setlocale(LC_MESSAGES,$_SESSION['g_lang']); - if ( $dir == "") - { - $g_lang='fr_FR.utf8'; - $dir=setlocale(LC_MESSAGES,$g_lang); - echo ''.$_SESSION['g_lang'].' domaine non supporté'; - } - bindtextdomain('messages','./lang'); - textdomain('messages'); - bind_textdomain_codeset('messages','UTF8'); + $dir = setlocale(LC_MESSAGES, $_SESSION['g_lang']); + if ($dir == "") + { + $g_lang = 'fr_FR.utf8'; + $dir = setlocale(LC_MESSAGES, $g_lang); + echo '' . $_SESSION['g_lang'] . ' domaine non supporté'; + } + bindtextdomain('messages', './lang'); + textdomain('messages'); + bind_textdomain_codeset('messages', 'UTF8'); - return; + return; } // for windows - putenv('LANG='.$_SESSION['g_lang']); - $dir=setlocale(LC_ALL,$_SESSION['g_lang']); - bindtextdomain('messages','.\\lang'); + putenv('LANG=' . $_SESSION['g_lang']); + $dir = setlocale(LC_ALL, $_SESSION['g_lang']); + bindtextdomain('messages', '.\\lang'); textdomain('messages'); - bind_textdomain_codeset('messages','UTF8'); + bind_textdomain_codeset('messages', 'UTF8'); } + /** - *@brief try to determine on what os you are running the pĥpcompte - *server - *@return + * @brief try to determine on what os you are running the pĥpcompte + * server + * @return * 0 it is a windows * 1 it is a Unix like */ function what_os() { - $inc_path=get_include_path(); + $inc_path = get_include_path(); - if ( strpos($inc_path,";") != 0 ) + if (strpos($inc_path, ";") != 0) { - $os=0; /* $os is 0 for windoz */ + $os = 0; /* $os is 0 for windoz */ } else { - $os=1; /* $os is 1 for unix */ + $os = 1; /* $os is 1 for unix */ } return $os; } + /** - *@brief shrink the date, make a date shorter for the printing - *@param $p_date format DD.MM.YYYY - *@return date in the format DDMMYY (size = 13 mm in arial 8) + * @brief shrink the date, make a date shorter for the printing + * @param $p_date format DD.MM.YYYY + * @return date in the format DDMMYY (size = 13 mm in arial 8) */ -function shrink_date ($p_date) +function shrink_date($p_date) { - $date=str_replace('.','',$p_date); - $str_date=substr($date,0,4).substr($date,6,2); - return $str_date; -} -/** - *@brief format the date, when taken from the database the format - * is MM-DD-YYYY - *@param $p_date format YYYY-MM-DD - *@return date in the format DD.MM.YYYY - */ -function format_date ($p_date) -{ - $date=explode('-',$p_date); - if ( count($date) != 3) return $p_date; - $str_date=$date[2].'.'.$date[1].'.'.$date[0]; + $date = str_replace('.', '', $p_date); + $str_date = substr($date, 0, 4) . substr($date, 6, 2); return $str_date; } /** - *@brief remove the quote or double quote them - *@param $q string - *@return string correctly quoted + * @brief format the date, when taken from the database the format + * is MM-DD-YYYY + * @param $p_date format YYYY-MM-DD + * @return date in the format DD.MM.YYYY + */ +function format_date($p_date) +{ + $date = explode('-', $p_date); + if (count($date) != 3) + return $p_date; + $str_date = $date[2] . '.' . $date[1] . '.' . $date[0]; + return $str_date; +} + +/** + * @brief remove the quote or double quote them + * @param $q string + * @return string correctly quoted */ function sql_string($q) { - $ret=str_replace("'","''",$q); + $ret = str_replace("'", "''", $q); return $ret; } + /** - *Should a dialog box that you are disconnected for ajax + * Should a dialog box that you are disconnected for ajax */ function ajax_disconnected($div) { -/** - *if $_SESSION['g_user'] is not set : echo a warning - */ -if ( ! isset($_SESSION['g_user'])) - { - $script='var a=$("'.$div.'");a.style.height="70%";a.style.width="70%";'; - $script.='a.style.top=posY-20+offsetY;a.style.left=posX+offsetX;'; - $script=create_script($script); - $html=$script; - $html.=HtmlInput::anchor_close($div); - $html.='
'; - $html.=h2('Données non disponibles','class="info" style="width:auto"'); - $html.=h2('Veuillez vous reconnecter',''); - $html.=alert("Déconnecté",true); - $html=escape_xml($html); + /** + * if $_SESSION['g_user'] is not set : echo a warning + */ + if (!isset($_SESSION['g_user'])) + { + $script = 'var a=$("' . $div . '");a.style.height="70%";a.style.width="70%";'; + $script.='a.style.top=posY-20+offsetY;a.style.left=posX+offsetX;'; + $script = create_script($script); + $html = $script; + $html.=HtmlInput::anchor_close($div); + $html.='
'; + $html.=h2('Données non disponibles', 'class="info" style="width:auto"'); + $html.=h2('Veuillez vous reconnecter', ''); + $html.=alert("Déconnecté", true); + $html = escape_xml($html); - header('Content-type: text/xml; charset=UTF-8'); -echo << $div $html EOF; -exit(); - } + exit(); + } } + /** * * @param int $selected module selected @@ -694,22 +739,29 @@ exit(); function show_module($selected) { global $g_user; - $cn=Dossier::connect(); - $amodule=$cn->get_array("select + $cn = Dossier::connect(); + $amodule = $cn->get_array("select me_code,me_menu,me_url from v_all_menu where user_name=$1 and p_type_display='M' - order by p_order",array($g_user->login)); + order by p_order", array($g_user->login)); - if ( $selected != -1 ) + if ($selected != -1) { require_once('template/module.php'); - $file=$cn->get_value("select me_file from v_all_menu where me_code=$1",array($selected)); - if ($file != '') + $file = $cn->get_array("select me_file,me_parameter from v_all_menu + where me_code=$1 and user_name=$2", array($selected,$g_user->login)); + if ($file[0]['me_file'] != '') { - require_once $file; + if ($file[0]['me_parameter'] !== "") + { + // if there are paramter put them in superglobal + $array=compute_variable($file[0]['me_parameter']); + put_global($array); + } + require_once $file[0]['me_file']; exit(); } } @@ -718,82 +770,129 @@ function show_module($selected) } } +/** + * Find the default module or the first one + * @global $g_user $g_user + * @return default module (string) + */ function find_default_module() { global $g_user; - $cn=Dossier::connect(); + $cn = Dossier::connect(); - $default_module = $cn->get_array("select me_code + $default_module = $cn->get_array("select me_code from profile_menu join profile_user using (p_id) where p_type_display='M' and user_name=$1 and pm_default=1", array($g_user->login)); - if (empty($default_module)) - { - $default_module = $cn->get_array("select me_code + if (empty($default_module)) + { + $default_module = $cn->get_array("select me_code from profile_menu join profile_user using (p_id) where user_name=$1 and p_order=(select min(p_order) from profile_menu - where user_name=$2) limit 1", array($g_user->login,$g_user->login)); - return $default_module[0]['me_code']; - } + where user_name=$2) limit 1", array($g_user->login, $g_user->login)); + return $default_module[0]['me_code']; + } - if (count($default_module) > 1) - { - echo_error("Plusieurs modules sont le module par défaut", __LINE__, __FILE__); - } - elseif (count($default_module) == 1) - { - return $default_module[0]['me_code']; - } + if (count($default_module) > 1) + { + echo_error("Plusieurs modules sont le module par défaut", __LINE__, __FILE__); + } + elseif (count($default_module) == 1) + { + return $default_module[0]['me_code']; + } } /** - * + * show the module + * @global $g_user + * @param $module the $_REQUEST['ac'] exploded into an array + * @param $idx the index */ -function show_menu($module,$idx) +function show_menu($module, $idx) { global $g_user; - $cn=Dossier::connect(); - $amenu=$cn->get_array("select + $cn = Dossier::connect(); + $amenu = $cn->get_array("select me_menu,me_code from v_all_menu where - me_code_dep=$1 and user_name=$2 order by p_order",array($module[$idx],$g_user->login)); + me_code_dep=$1 and user_name=$2 order by p_order", array($module[$idx], $g_user->login)); - if (! empty ($amenu) && count($amenu)>1) + if (!empty($amenu) && count($amenu) > 1) { require 'template/menu.php'; } - elseif (count($amenu)==1) + elseif (count($amenu) == 1) { echo '
'; echo h2info($amenu[0]['me_menu']); echo '
'; - $module[$idx]=$amenu[0]['me_code']; + $module[$idx] = $amenu[0]['me_code']; } - if (empty($amenu) || count($amenu)==1) + if (empty($amenu) || count($amenu) == 1) { -/** - * @todo add security - * check if user can access this module - */ - $file=$cn->get_value("select me_file + /** + * @todo add security + * check if user can access this module + */ + $file = $cn->get_array("select me_file,me_parameter from menu_ref where me_code=$1 and - (me_file is not null or trim(me_file) <>'')", - array($module[$idx])); + (me_file is not null or trim(me_file) <>'')", array($module[$idx])); - if ( $file != "" ) + if ($file[0]['me_file'] != "") { + if ($file[0]['me_parameter'] !== "") + { + // if there are paramter put them in superglobal + $array=compute_variable($file[0]['me_parameter']); + put_global($array); + } echo '
'; - require_once "$file"; + require_once $file[0]['me_file']; echo '
'; exit(); } } } +/** + * Put in superglobal (get,post,request) the value contained in + * the superglobal + * @param $array [key] [value] + */ +function put_global($array) +{ + for ($i=0;$i diff --git a/include/ext_inc.php b/include/extension_choice.inc.php similarity index 59% rename from include/ext_inc.php rename to include/extension_choice.inc.php index c87b7c497..d98abcccf 100644 --- a/include/ext_inc.php +++ b/include/extension_choice.inc.php @@ -21,8 +21,6 @@ $only_plugin=$user->check_dossier(dossier::id()); /* javascript file */ echo load_all_script(); -/* show button to return to access */ - /* show all the extension we can access */ $a=new ISelect('plugin_code'); $a->value=Extension::make_array($cn); @@ -36,7 +34,7 @@ if ( count($a->value) == 0 ) } /* only one plugin available then we don't propose a choice*/ -if ( count($a->value)==1 ) +if ( count($a->value)==1 ) { $_REQUEST['plugin_code']=$a->value[0]['value']; } @@ -49,33 +47,6 @@ else echo ''; echo '
'; } -/* if a code has been asked */ -if (isset($_REQUEST['plugin_code']) ) -{ - $cn=new Database(dossier::id()); - $ext=new Extension($cn); - $ext->search('code',$_REQUEST['plugin_code']); - if ( $ext->get_parameter('id') != 0 ) - { - /* security */ - if ( $ext->can_request($_SESSION['g_user']) == 0 ) - { - alert(j(_("Vous ne pouvez pas utiliser cette extension. Contactez votre responsable"))); - exit(); - } - - if ( ! file_exists('../include/ext'.DIRECTORY_SEPARATOR.trim($ext->get_parameter('filepath')))) - { - alert(j(_("Ce fichier n'existe pas "))); - exit(); - } - require_once('ext'.DIRECTORY_SEPARATOR.trim($ext->get_parameter('filepath'))); - } - else - { - alert(j(_("Cette extension n'existe pas "))); - exit(); - } +require_once 'extension_get.inc.php'; -} ?> diff --git a/include/extension_get.inc.php b/include/extension_get.inc.php new file mode 100644 index 000000000..c233ea60e --- /dev/null +++ b/include/extension_get.inc.php @@ -0,0 +1,42 @@ +search('code',$_REQUEST['plugin_code']); + if ( $ext->get_parameter('id') != 0 ) + { + /* security */ + if ( $ext->can_request($_SESSION['g_user']) == 0 ) + { + alert(j(_("Vous ne pouvez pas utiliser cette extension. Contactez votre responsable"))); + exit(); + } + + if ( ! file_exists('../include/ext'.DIRECTORY_SEPARATOR.trim($ext->get_parameter('filepath')))) + { + alert(j(_("Ce fichier n'existe pas "))); + exit(); + } + require_once('ext'.DIRECTORY_SEPARATOR.trim($ext->get_parameter('filepath'))); + } + else + { + alert(j(_("Cette extension n'existe pas "))); + exit(); + } + +} +?>