One Hat Cyber Team
Your IP :
216.73.216.24
Server IP :
194.44.31.54
Server :
Linux zen.imath.kiev.ua 4.18.0-553.77.1.el8_10.x86_64 #1 SMP Fri Oct 3 14:30:23 UTC 2025 x86_64
Server Software :
Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
nosc
/
public_html
/
View File Name :
functions_gen.2023.10.07.php
<?php include_once("mimetex/mimetex.php"); //------------------------------ // functions_gen.php //------------------------------ $_sexes = array("unspecified" => "U", "male" => "M", "female" => "F"); $_max_file_size=100000000; $_max_article_title_chars=60; $_max_institution_title_chars=100; $_max_country_name_chars=15; $_number_of_person_titles=8; $_journal = array ("email" => "nonlinear.oscillations@gmail.com", "webpage" => "https://imath.kiev.ua/~nosc", "adminpage" => "https://imath.kiev.ua/~nosc/admin", "loginpage"=> "https://imath.kiev.ua/~nosc/users", "name" => array("en" =>"Nonlinear Oscillations", "ru" => "Нелінійні коливання", "ua"=> "Нелінійні коливання"), "start_year" => 1998, "issues_per_year" => 4); //compatibility $_start_year=$_journal['start_year']; $_issues_per_year=$_journal['issues_per_year']; //-------------------------------------------- function please_wait($msg="") { echo "<DIV style=\"height: 100%; padding: 20%;\">\n"; echo "<P text-align: center;\">\n"; echo "<IMG SRC=\"".icons_dir()."/loading.gif\"></P>"; echo "</DIV>\n"; } function icons_dir() { global $_journal; return $_journal['webpage']."/icons"; } function set_master_mode($onoff=FALSE) { global $lang, $session; $onoff = (boolean) $onoff; if ((!$onoff) || (is_allowed_master_mode())) $_SESSION['master_mode'] = $onoff; else tell(enruua("Not enough priviledge","Недостаточно привилегий","Недостатньо привилеїв")."!"); } function is_master_mode() { global $lang, $session; return $_SESSION['master_mode']; } function is_allowed_master_mode() { global $lang, $session; return (current_user_level() >=8); } function current_person() { return person(user_person_id()); } // user_person_id function user_person_id($username="") { global $session; if (!$username) $username = $session -> username; $q = mysql_query("select author_id from users where username='".$username."'"); if (mysql_num_rows($q)) { $who= mysql_fetch_array($q); return $who['author_id']; } else return 0; } function cyrillic_alphabet($l=NULL) { switch ($l) { case "ru": $a = array('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я','а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я'); break; case "ua": $a = array('А','Б','В','Г','Д','Е','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ы','Ь','Ю','Я','Є','Ї','І','Ґ','а','б','в','г','д','е','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ы','ь','ю','я','є','ї','і','ґ'); break; default: $a = array('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я','Є','Є','Ї','Ґ','а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я','є','є','ї','ґ'); break; } return $a; }//cyrillic_alphabet function is_valid_cyrillic($text,$l=NULL) { $text = trim($text); $ans = TRUE; $valid_arr = cyrillic_alphabet($l); if ($text) { $arr = mb_split($text,""); foreach ($arr as $a) { $ans = in_array($a,$valid_arr); } } return $ans; }//is_valid_cyrillic function take_variable($var_name,$default_method="POST") { global ${$var_name}; $v = ${$var_name}; switch (strtoupper($default_method)) { case "GET": if (isset($_GET[$var_name])) $v = $_GET[$var_name]; else { if (isset($_POST[$var_name])) $v = $_POST[$var_name]; } break; case "POST": if (isset($_POST[$var_name])) $v = $_POST[$var_name]; else { if (isset($_GET[$var_name])) $v = $_GET[$var_name]; } break; } return $v; } /* ----------------------------- */ function editorial_language() { return preferred_language(corresponding_editor()); } function corresponding_editor() { return person(8); } function language_select($style="FLAG",$size_descr="MEDIUM") { global $lang,$_journal; if (!in_array($style,array("FLAG","TEXT"))) $style="TEXT"; switch (strtoupper($size_descr)) { case "TINY": $size = "1.5em"; break; case "SMALL": $size = "2em"; break; case "MEDIUM": $size = "3em"; break; case "LARGE": $size = "4em"; break; } $res=""; $langs = array("en","ru","ua"); while ($i = current($langs)) { if (trim($lang) !=$i) { if ($res) $res = $res." "; $res = $res . "<FORM STYLE=\"display: inline;\" action=\"" .$_SERVER['PHP_SELF']."\" method=\"POST\">\n"; while (list($key, $val) = each($_GET)) { if ($key != "lang") $res = $res . "<INPUT type=\"hidden\" name=\"".$key."\" value=\"".$val."\">\n"; //pass($key,$val); } while (list($key, $val) = each($_POST)) { if ($key != "lang") $res = $res . "<INPUT type=\"hidden\" name=\"".$key."\" value=\"".$val."\">\n"; } switch ($style) { case "FLAG": $res = $res . "<INPUT type=\"hidden\" name=\"lang\" value=\"".$i."\">\n"; $res = $res . "<INPUT type=\"image\" src=\"".$_journal['webpage'] ."/" . "icons/".$i.".png\" alt=\"" .enruua_var($i,"English","По-русски","Українською")."\" style=\"width: ".$size."; border-width: 1px; border: solid thin; border-color: #BFBFBF;\">\n"; break; case "TEXT": default: $res = $res . "<INPUT type=\"hidden\" name=\"lang\" value=\"".$i."\">\n"; $res = $res . "<INPUT type=submit value=\"[".$i."]\">\n"; break; } $res = $res . "</FORM>\n"; } next($langs); } return $res; } //function function google_lang($l="") { global $lang; $l = languify($l); switch ($l) { case "ru": return "lang_ru"; break; case "ua": return "lang_uk"; break; default: return "lang_en"; break; } } function google_link($text,$title,$l="") { global $lang; //$l = languify($l); if (!$title) $title = $text= trim($text); $link = "<A HREF=\"https://www.google.com/search?as_q=". $text; if (is_valid_language($l)) $link = $link . "&lr=" . google_lang($l); $link = $link . "\">".$title."</A>"; return $link; } function journal_webpage_link($l="",$quote=TRUE,$style="HTML",$alt="") //misteryously disappeared 25.08.2006 { global $lang,$_journal; $l = languify($l); if (!$alt) $alt = $_journal['name'][$l]; if ($style != "TEXT") { $t = "<A href=\"".$_journal['webpage']."?lang=".$l."\">".$alt."</A>"; if ($quote) $t = quote($t,$l,'HTML'); } else { $t = $alt; if ($quote) $t = quote($t,$l,'TEXT'); } return $t; } function redirect_email_program() { global $_root; return $_root."/email/"; } function mailto ($e,$desc,$subj="",$cc="",$bcc="",$body="") { $l= explode ("@",$e); $u = $l[0]; $d = $l[1]; $foo = gen_alpha_string(5); if (($u) && ($d)) { $a = "<iframe name=\"".$foo."\" style=\"display: invisible;\" WIDTH=0 HEIGHT=\"0\" FRAMEBORDER=\"0\"></iframe><a target=\"".$foo."\" href=\"".redirect_email_program()."?u=".$u."&d=".$d.""; if ($subj) $a = $a."?&subject=".$subj; if ($cc) $a = $a."&cc=".$cc; if ($bcc) $a = $a."&bcc=".$bcc; if ($body) $a = $a."&body=".urlencode($body); if (!$desc) $desc = $u."[AT]".$d; $a = $a . "\">".$desc."</a>"; } else $a = NULL; return $a; } function utf8_lastchar($string) { return utf8_substr($string,utf8_strlen($string)-1,1); } function MFN($var,$m,$f,$n) { switch (strtoupper($var)) { case "M": return $m; break; case "F": return $f; break; case "N": return $n; break; default: return $n; break; } } function last_digit($n) { $s = (string) $n; return substr($s,"-1"); } function which_ordinal($n,$gender="M",$l="",$first_capital=FALSE) { global $lang; $l = languify($l); if ($n) { switch ($n) { case 1: $r = MFN($gender, enruua_var($l,"first","первый","перший"), enruua_var($l,"first","первая","перша"), enruua_var($l,"first","первое","перше")); break; case 2: if ($first_capital) $r = MFN($gender, enruua_var($l,"Second","Второй","Другий"), enruua_var($l,"Second","Вторая","Друга"), enruua_var($l,"Second","Второе","Друге")); else $r = MFN($gender, enruua_var($l,"second","второй","другий"), enruua_var($l,"second","вторая","друга"), enruua_var($l,"second","второе","друге")); break; case 3: if ($first_capital) $r = MFN($gender, enruua_var($l,"Third","Третий","Третій"), enruua_var($l,"Third","Третья","Третя"), enruua_var($l,"Third","Третье","Третє")); else $r = MFN($gender, enruua_var($l,"third","третий","третій"), enruua_var($l,"third","третья","третя"), enruua_var($l,"third","третье","третє")); break; case 4: if ($first_capital) $r = MFN($gender, enruua_var($l,"Fourth","Четвертый","Четвертий"), enruua_var($l,"Fourth","Четвертая","Четверта"), enruua_var($l,"Fourth","Четвертое","Четверте")); else $r = MFN($gender, enruua_var($l,"fourth","четвертый","четвертий"), enruua_var($l,"fourth","четвертая","четверта"), enruua_var($l,"fourth","четвертое","четверте")); break; default: { if (last_digit($n) == 3) $r = $n . MFN($gender, enruua_var($l,"th","-й","-й"), enruua_var($l,"th","-я","-я"), enruua_var($l,"th","-е","-є")); else $r = $n . MFN($gender, enruua_var($l,"th","-й","-й"), enruua_var($l,"th","-я","-я"), enruua_var($l,"th","-е","-е")); } break; } } else $r = $n . MFN($gender, enruua_var($l,"th","-й","-й"), enruua_var($l,"th","-я","-я"), enruua_var($l,"th","-е","-є")); return $r; } function my_mb_ucfirst($str) { $fc = mb_strtoupper(mb_substr($str, 0, 1)); return $fc.mb_substr($str, 1); } function say_how_many_days($num,$l="",$small_nums_style="WAITING_FROM") {global $lang; if(!is_valid_language($l)) $l = languify($lang); switch ($num) { case 0: if ($small_nums_style=="WAITING_FROM") { $t=enruua_var($l,"since today","от сегодняшнего дня","від сьогоднішнього дня"); break; } else { $t=enruua_var($l,"0 days","0 дней","0 днів"); break; } case 1: if ($small_nums_style=="WAITING_FROM") { $t=enruua_var($l,"since yesterday","от вчерашнего дня","від вчорашнього дня"); break; } case 2: if ($small_nums_style=="WAITING_FROM") { $t=enruua_var($l,"since the day before yesterday", "от позавчерашнего дня","від позавчорашнього дня"); break; } default: $t= say_like_ordinal(utf8_lastchar($num), enruua("day","день","день"), enruua("days","дня","дні"), enruua("days","дней","дня"),$num); } return $t; } function say_days_ago($num,$l="") { global $lang; if(!is_valid_language($l)) $l = languify($lang); switch ($num) { case 0: $t=enruua_var($l,"today","сегодня","сьогодні"); break; case 1: $t = enruua_var($l,"yesterday","вчера","вчора"); break; case 2: $t = enruua_var($l,"the day before yesterday","позавчера","позавчора"); break; default: $t= say_like_ordinal(utf8_lastchar($num), enruua_var($l,"day","день","день"), enruua_var($l,"days","дня","дні"), enruua_var($l,"days","дней","дня"),$num) . " ". enruua_var($l,"ago","тому назад","тому"); } return $t; } function say_like_ordinal($num,$one,$two_four,$more,$num_alt="") { if (!$num_alt) $num_alt = $num; $r = ""; if ($num==1) $r = $one; elseif (($num>1) && ($num <5)) $r = $two_four; else $r = $more; return $num_alt." ".$r; } function languify($l) { global $lang; $ll = $l; if (!is_valid_language($ll)) { if (is_valid_language($lang)) $ll=$lang; else $ll="en"; } return $ll; }//languify function article_title($article,$l="") { global $lang; if(!is_valid_language($l)) $l= languify($lang); $t = mimetex($article['title_'.$l]); return $t; }//article_title function andify($array_of_strings,$l="") { global $lang; $l = languify($l); $c = count($array_of_strings); $t = ""; foreach ($array_of_strings as $s) { $i++; if ($i>1) if ($i==$c) if ($c>2) $t = $t . enruua_var($l,", and"," и"," та")." "; else $t = $t . enruua_var($l," and"," и"," та")." "; else $t = $t . ", "; $t = $t . $s; } return $t; }//andify function is_among_authors($person_id,$article_id) { $res = mysql_query("select id from AA where author_id='".$person_id."' and article_id='".$article_id."'"); if (mysql_num_rows($res)) return TRUE; else return FALSE; } function article_authors_entries($article,$l="") { global $lang; if (!is_valid_language($l)) $l = languify($lang); $a = array(); if ($article) { $res = mysql_query("SELECT * FROM AA LEFT JOIN Authors ON AA.author_id=Authors.id WHERE AA.article_id='".$article['id']."' ORDER BY AA.author_ambition"); /*while($a[] = mysql_fetch_array($res)) { //$a[] = plain_short_name($author['id'],FALSE,$l); //print($author['id']); } */ } else $res = NULL; return $res; }//article_authors function article_authors($article,$l="",$type="HTML") { global $lang; if (! is_valid_language($l)) $l = languify($lang); if ($article) { $res = mysql_query("SELECT * FROM AA LEFT JOIN Authors ON AA.author_id=Authors.id WHERE AA.article_id='".$article['id']."' ORDER BY AA.author_ambition"); while($author = mysql_fetch_array($res)) { $a[] = plain_short_name($author['id'],FALSE,$l,$type); //print($author['id']); } } return $a; }//article_authors function DmY_to_time ($dmy,$separator=".") { $p = explode($separator,$dmy); //print_r($p); return mktime(0, 0, 0, $p[1], $p[0], $p[2]); } function guess_client_language() { $c = GetCountryInfo($_SERVER["REMOTE_ADDR"]); switch (strtolower($c['a2'])) { case "ru": case "by": return "ru"; case "ua": return "ua"; default: return "en"; } }//guess_client_language function webpage_link($url,$text="") { if (!$text) $text = $url; return "<A HREF=\"".$url."\">".$text."</A>"; } function country_meaning($TLD,$l="")//???? {global $lang; if (!is_valid_language($l)) $l = $lang; $res = mysql_query("select TLD,Country_".$l." from _countries where TLD='".$TLD."'order by Country_".$l); $country = mysql_fetch_array($res); //should be unique return $country["Country_".$l]; } function post_redirect($location,$args="") //URL,"var=val","var=val",etc DOES NOT WORK!!! { $num = func_num_args(); if ($num>0) { $args = func_get_args(); $url = $args[0]; $fid = "_redirect".gen_alpha_string(4); echo "<form name=\"".$fid."\" action=\"post_redirect.php\" method=\"post\">"; echo "<input type=hidden name=\"location\" value=\"".$url."\">"; while ($param=array_shift($args)) { list($key,$val) = explode("=", $param); echo "<input type=hidden name=\"vars['".$key."']\" value=\"".$val."\">"; } echo "<input type=submit value=\"".enruua("Continue","Далее","Далі")."\">"; echo "</form>"; echo "<SCRIPT TYPE=\"text/javascript\">"; echo "document.".$fid.".submit();"; echo "</SCRIPT>"; } }//post_redirect function is_cyrillic_language($l) { return (($l=="ru") || ($l=="ua")) ? TRUE: FALSE; }//is_cyrillic_language /*-------------------------------------------------*/ function person($id) { $res = mysql_query("SELECT * FROM Authors WHERE id='".$id."'"); if (mysql_num_rows($res)) return mysql_fetch_array($res); else return NULL; }//person function check_publication_data($vol,$no,$ps,$pe,$l=NULL) { global $lang; if (!is_valid_language($l)) $l = $lang; if (!$vol) { $msg[] = enruua_var($l, "the journal volume has not been specified", "не указан том журнала","не вказано том журнала"); } if (!$no) { $msg[] = enruua_var($l, "the journal number has not been specified", "не указан номер журнала","не вказано номер журнала"); } if ($pe < $ps) { $msg[] = enruua_var($l, "the ending page precedes the starting page", "указанная Вами конечная страница предшествует начальной", "вказана Вами кінцева сторінка є ближчою до початку, ніж початкова"); } else { if (!$ps) { $msg[] = enruua_var($l, "the starting page has not been specified", "не указан номер начальной страницы","не вказано номер початкової сторінки"); } if (!$pe) { $msg[] = enruua_var($l, "the ending page has not been specified", "не указан номер конечной страницы","не вказано номер кінцевої сторінки"); } } return $msg; } function is_primary_email ($person,$email_entry_id) { return ($person['primary_email']==$email_entry_id) ? TRUE : FALSE; }//is_primary_email function emails_regi($person)//// ----- { $res = mysql_query("SELECT id,email_field FROM Emails WHERE person_id='".$person['id']."'"); if (mysql_num_rows($res)) return $res; //mysql_fetch_array($res); else return NULL; }//emails function emails($person) { $res = mysql_query("SELECT * FROM Emails WHERE person_id='".$person['id']."' ORDER BY id"); //$emails = array(); $i=0; while ($e = mysql_fetch_array($res)) { $emails[$i]= $e; $i++; } return $emails; }//emails function the_email($e,$args=NULL) { global $lang; if ($e) { $r=mysql_query("SELECT email_field from Emails WHERE id=".$e); $ef = mysql_fetch_array($r); return $ef['email_field']; } else return "*** " .enruua("invalid email id", "неверный идентификатор адреса", "невірний ідентифікатор адреси") ." ***"; } function primary_email($person) { $p = NULL; if ($person['id']) { $p = $person['primary_email']; if (!$p) { $emails = emails($person); $e = current($emails); //assign the first as primary one if ($e['id']) mysql_query("update Authors set primary_email='".$e['id']."'"); $p = $e['id']; //$get_u = get_username($person['id']); } }//if person return $p; } function user($username) { $res = mysql_query("select * from users where username='".$username."'"); $r = NULL; if (mysql_num_rows($res)) { $r = mysql_fetch_array($res); } return $r; } function is_among_persons($user) { } function is_superuser() { global $session; return $session->isAdmin(); } function _title_BoxOver($head,$msg,$c="info") { $t = " title=\"header=[".htmlspecialchars($head)."] body=[".htmlspecialchars($msg)."]"; $t = $t . " windowlock=[on]"; switch($c) { case "alert": break; case "href": break; case "info": $t = $t . " fade=[on] "; default: } $t = $t . "\""; return $t; }//_title_box_over function boolean_complement($val) { return ( (bool) $val)? 0 : 1; } function is_valid_language($l) { global $_locales; return (isset($l) && in_array($l, array_keys($_locales)) ) ? TRUE : FALSE; }//is_valid_language function GetClientIP() { $register_globals = (bool) ini_get('register_gobals'); if ($register_globals) $ip = getenv(REMOTE_ADDR); else $ip = $_SERVER['REMOTE_ADDR']; return $ip; }//GetClientIP function say_greetings(){ global $lang; $hours=date("G")+0; ### you can set own criteria in your country ### whats time we must say good morning and etc if( $hours>=0 && $hours<=14) $hellowords=enruua("Good morning","Доброе утро","Доброго ранку"); elseif ($hours<=18) $hellowords=enruua("Good afternoon","Добрый день","Доброго дня"); else $hellowords=enruua("Good evening","Добрый вечер","Добрий вечір"); return $hellowords; } function gen_alpha_string($length = 8) { /** * The letter l (lowercase L) and the number 1 * have been removed, as they can be mistaken * for each other. Zero and o have also been removed */ $chars = "abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"; $password = ''; for($i = 0; $i < $length; $i++) { $x = rand(0, strlen($chars) -1); $password .= $chars{$x}; } return $password; } //gen_password function gen_password($length = 8) { /** * The letter l (lowercase L) and the number 1 * have been removed, as they can be mistaken * for each other. Zero and o have also been removed */ $chars = "abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789"; $password = ''; for($i = 0; $i < $length; $i++) { $x = rand(0, strlen($chars) -1); $password .= $chars{$x}; } return $password; } //gen_password // function is_logged_in($_user_id) //////////////////////////////// {global $_db_host,$_db_user,$_db_password; // if (!$db_handle) { $db_handle=mysql_connect($_db_host,$_db_user,$_db_password); mysql_query("set names '$_charset'", $db_handle); } return $res=mysql_query("select * from _auth where id='$_user_id' ",$db_handle); }//logged_in_users //---------------- function pass($var,$val="") {return "<input type=\"hidden\" name=\"".$var."\" value=\"".$val."\">\n"; }//pass // function pass_GET() { $v=""; while (list($key, $val) = each($_GET)) { $v=$v.pass($key,$val); } return $v; }//pass_GET // function pass_POST() { $v=""; while (list($key, $val) = each($_POST)) { $v=$v.pass($key,$val); } return $v; }//pass_POST // function readable_file_size($filename) { global $lang; $type = array (enruua("b","б","б"), enruua("Kb","Кб","Кб"), enruua("Mb","Мб","Мб"), enruua("Gb","Гб","Гб")); $filesize = filesize ($filename); for ($i = 0; $filesize > 1024; $i++) $filesize /= 1024; // return round ($filesize, 2)." ".$type[$i]; } function file_link($address,$title=NULL,$class=NULL) { if (!$title) $title=basename($address); return "<a href=\"".$address."\" class=\"".$class."\">".$title."</a>"; }//file_link // function enruua($en,$ru,$ua) { global $lang; switch ($lang){ case "en": return $en; break; case "ru": return $ru; break; case "ua": return $ua; break; } }//enruua function enruua_var($var,$en,$ru,$ua) { switch ($var){ case "en": return $en; break; // case "ru": return $ru; break; // case "ua": return $ua; break; default: return NULL; } }//enruua_var function word_number($l="") {global $lang; return number($l); } function number($l="") {global $lang; if (!is_valid_language($l)) $l = $lang; return enruua_var($l,"No.","№","№"); } function explode_date($YMD) { //global $lang; $stamp=strtotime($YMD); return array("day" => strftime ("%e", $stamp),"month" => strftime ("%m", $stamp), "year" =>strftime ("%Y", $stamp)); }//explode_date // function is_valid_date($date) { if ((integer)$date) $r=1; else $r=0; return $r; } function is_unspecified_date($date) { //if ($date=="0000-00-00") $r=1; else $r=0; if (!(integer)$date) $r=1; else $r=0; // return $r; } function print_date($date=0,$l="",$dot=FALSE) { global $lang,$_locales; if (!is_valid_language($l)) $l = languify($lang); if (!is_unspecified_date($date)) {// $date=today(); switch ($date) { case today(): $d = enruua_var($l,"today","сегодня","сьогодні"); if ($dot) $d = $d . "."; break; default: $dmy = explode_date($date); //setlocale(LC_TIME, $_locales[$lang]); //return strftime("%x".enruua(""," г."," р."), strtotime($date)); $d= enruua_var($l,"on ","","") . $dmy["day"]." ".of_month($dmy["month"])." ".$dmy["year"].enruua(""," г."," р."); if ($dot) $d = $d . enruua_var($l,".","",""); } } else $d="(".enruua_var($l,"the date is not specified","дата не указана","дату не вказано").")"; // return trim($d); }//print_date function print_date_time($datetime=0) { global $lang,$_locales; if(!is_unspecified_date($datetime)) { $dmy = getdate(strtotime($datetime)); $d = $dmy["mday"]." " .of_month($dmy["mon"])." ".$dmy["year"].enruua(""," г."," р.")." " .enruua("at","в","у")." ".$dmy["hours"].":".$dmy["minutes"]; } else $d="(".enruua("the date is not specified","дата не указана","дату не вказано").")"; return $d; }//print_date_time function print_date_time_seconds($datetime=0) { global $lang,$_locales; if(!is_unspecified_date($datetime)) { $dmy = getdate(strtotime($datetime)); $d = $dmy["mday"]." " .of_month($dmy["mon"])." ".$dmy["year"].enruua(""," г."," р.")." " .enruua("at","в","у")." ".$dmy["hours"].":".$dmy["minutes"].":".$dmy["seconds"]; } else $d="(".enruua("the date is not specified","дата не указана","дату не вказано").")"; return $d; }//print_date_time_seconds function print_date_compact($date) { global $lang,$_locales; setlocale(LC_TIME, $_locales[$lang]); //works incorrectly return strftime("%x", strtotime($date)); } // function of_month($m,$l="") { global $lang; if (!is_valid_language($l)) $l = languify($lang); switch($m) { case "1": return enruua_var($l,"January","января","січня"); break; case "2": return enruua_var($l,"February","февраля","лютого"); break; case "3": return enruua_var($l,"March","марта","березня"); break; case "4": return enruua_var($l,"April","апреля","квітня"); break; case "5": return enruua_var($l,"May","мая","травня"); break; case "6": return enruua_var($l,"June","июня","червня"); break; case "7": return enruua_var($l,"July","июля","липня"); break; case "8": return enruua_var($l,"August","августа","серпня"); break; case "9": return enruua_var($l,"September","сентября","вересня"); break; case "10": return enruua_var($l,"October","октября","жовтня"); break; case "11": return enruua_var($l,"November","ноября","листопада"); break; case "12": return enruua_var($l,"December","декабря","грудня"); break; default: return "???"; } }//of_month function month_name($m,$l="") { global $lang; if (!is_valid_language($l)) $l = languify($lang); switch($m) { case "1": return enruua_var($l,"January","январь","січень"); break; case "2": return enruua_var($l,"February","февраль","лютий"); break; case "3": return enruua_var($l,"March","март","березень"); break; case "4": return enruua_var($l,"April","апрель","квітень"); break; case "5": return enruua_var($l,"May","май","травень"); break; case "6": return enruua_var($l,"June","июнь","червень"); break; case "7": return enruua_var($l,"July","июль","липень"); break; case "8": return enruua_var($l,"August","август","серпень"); break; case "9": return enruua_var($l,"September","сентябрь","вересень"); break; case "10": return enruua_var($l,"October","октябрь","жовтень"); break; case "11": return enruua_var($l,"November","ноябрь","листопад"); break; case "12": return enruua_var($l,"December","декабрь","грудень"); break; default: return "???"; } }//month_name function somebody_did_something($person,$enm,$rum,$uam,$enf,$ruf,$uaf,$l="",$type="HTML") { global $lang,$_charset,$_journal; mysql_query("SET NAMES '$_charset'"); $l = languify($l); $v=""; if ($person['id']) { if (strtoupper($type) == "HTML") $v = $v.author_edit_link($person["id"],FALSE); else $v = $v. plain_short_name($person["id"],TRUE,$l); } else $v = $v. enruua_var($l,"unknown person","неизвестно кто","невідомо хто"); $v = $v. " "; switch ($person["sex"]) { case "F": $v = $v . enruua_var($l,$enf,$ruf,$uaf); break; case "M": default: $v = $v. enruua_var($l,$enm,$rum,$uam); break; } return $v; } function something_done_by($person,$enm,$rum,$uam,$enf,$ruf,$uaf,$l="") { global $lang,$_charset; mysql_query("SET NAMES '$_charset'"); if(!is_valid_language($l)) $l = $lang; $v=""; switch ($person["sex"]) { case "F": $v = $v . enruua_var($l,$enf,$ruf,$uaf); break; case "M": default: $v = $v. enruua_var($l,$enm,$rum,$uam); break; } if ($person) $v = $v." ".author_edit_link($person["id"],FALSE); //plain_short_name($person["id"],TRUE,$l); else $v = $v. " ".enruua_var($l,"unknown person","неизвестно кто","невідомо хто"); return $v; } function card_created_updated($entry,$db_handle=0) { global $lang,$_charset; $v=enruua("Card","Карточку","Картку").space().number()." ".$entry["id"]." "; mysql_query("SET NAMES '".$_charset."'"); $buddy = person($entry["created_by"]); if ($buddy["id"]) { if ($buddy["sex"]=="F") $v=$v.enruua("had been created","создала","створила"); else $v=$v.enruua("had been created by","создал","створив"); $v=$v." ".plain_short_name($buddy["id"]); } else { $v=$v.enruua("had been created by unknown person","создал неизвестно кто","створив невідомо хто"); } if (!is_unspecified_date($entry["updated"])) { $buddyx = person($entry['updated_by']); $v = $v . ", "; if ($buddyx['id']) { if ($buddyx["sex"]=="F") $v = $v . enruua("last updated by","последний раз изменяла","востаннє змінювала"); else $v = $v . enruua("last updated by","последний раз изменял","востаннє змінював"); $v=$v." ".plain_short_name($buddyx["id"]); }//if buddyx else { $v = $v . enruua("last updated by an unknown person", "последний раз изменял неизвестно кто", "востаннє змінював невідомо хто"); } $v = $v . " " . print_date_time($entry["updated"]); } //if the date is specified // $v = $v . " " . print_date_time($entry["created"]).""; $v = $v . "."; return $v; } function sex_name($s) { global $lang; $s=trim($s); switch($s) { case "M": return enruua("Masculine","мужской","чоловіча"); break; // case "F": return enruua("Feminine","женский","жіноча"); break; // default: return "-- ".enruua("unspecified","не указан","не вказано")." --"; break; } }//sex function sex_name_short($s) { global $lang; $s=trim($s); switch($s) { case "M": return enruua("M","М","Ч"); break; // case "F": return enruua("F","Ж","Ж"); break; // default: return "-- ".enruua("unspecified","не указан","не вказано")." --"; break; } }//sex function person_name($person,$l=NULL,$type="HTML") {global $lang,$_charset; mysql_query("set names '".$_charset."'"); if (!is_valid_language($l)) $l = languify($lang); $t=""; if (!$person['id']) $t = NULL; else { if ($person['first_name_'.$l]) $t = $person['first_name_'.$l]; if ($person['middle_name_'.$l]) $t = $t . space($type) .$person['middle_name_'.$l]; if ($person['last_name_'.$l]) $t = $t . space($type) .$person['last_name_'.$l]; } return $t; } function address_person($person,$formal=TRUE,$l="",$type="TEXT") { global $lang; if ($person['id']) { if (!is_valid_language($l)) $l = languify(preferred_language($person)); if (!trim($person['middle_name_'.$l])) { $formal=TRUE; } if (!$formal) { if ($l != "en") { $r = call_by_patronimic($person,$l,$type); } else $r = call_by_title($person,$l,$type); } else $r = call_by_title($person,$l,$type); if (!trim($r)) $r = person_name($person,$l,$type); // temporary hack if ($l=="ua") $r = call_by_title($person,$l,$type); return $r; } else return NULL; } function call_by_title($person,$l="",$type="TEXT") { global $lang; if (!is_valid_language($l)) $l = languify($lang); if ($person['title']) { return title_meaning_accusative($person['title'],$l).space($type).$person["last_name_".$l]; } else return enruua_var($l,"colleague","коллега","колего"); } function call_by_patronimic($person,$l=NULL,$type="HTML") { global $lang; if (!is_valid_language($l)) $l = languify($lang); $ret = ""; // if ((mb_strlen($person["first_name_".$l]) >= 3) && (mb_strlen($person["middle_name_".$l]) >= 4)) if ((mb_strlen($person["first_name_".$l]) >= 3) && (mb_strlen($person["middle_name_".$l]) >= 4)) { /* if ($person['title']) $prefix = title_meaning_accusative($person['title'],$l).space($type); else $prefix = ""; $ret = $prefix . $person["first_name_".$l].space($type).$person["middle_name_".$l];*/ $ret = $person["first_name_".$l].space($type).$person["middle_name_".$l]; } else $ret = call_by_title($person,$l,$type); return $ret; }//patronimic function space($type="TEXT") { switch(strtoupper($type)) { case "HTML": $s = " "; break; default: $s = " "; } return $s; } function mdash($type="TEXT") { switch(strtoupper($type)) { case "HTML": $s = "—"; break; default: $s = "-"; } return $s; } function nobr($str,$type="TEXT") { switch(strtoupper($type)) { case "HTML": $s = "<nobr>".$s."</nobr>"; break; default: $s = $str; } return $s; } function bold($text,$type="TEXT") { switch(strtoupper($type)) { case "HTML": $s = "<B>".$text."</B>"; break; default: $s = $text; } return $s; } function href($url,$type="HTML",$title=NULL,$class=NULL) { if (!$title) $title = $url; switch (strtoupper($type)) { case "HTML": return "<A HREF=\"".$url."\" CLASS=\">".$class."\"".$title."</A>"; case "TEXT": case "TXT": return $url; } } function br($type="TEXT") { switch(strtoupper($type)) { case "HTML": $s = "<BR>"; break; default: $s = "\n"; } return $s; } function par($text,$type="TEXT") { switch(strtoupper($type)) { case "HTML": $s = "<P>".$text."</P>\n"; break; default: $s = "\n".$text."\n"; } return $s; } function bpar($type="TEXT") { switch(strtoupper($type)) { case "HTML": $s = "<P>"; break; default: $s = "\n"; } return $s; } function epar($type="TEXT") { switch(strtoupper($type)) { case "HTML": $s = "</P>"; break; default: $s = "\n"; } return $s; } function linebreak($type="TEXT") { if (($type=="HTML")||($type=="html")) return "<P>\n"; else return "\n\n"; } function number_symbol($l="") { global $lang; $l = languify($l); return enruua_var($l,"No.","номер","номер"); } function quote($text,$l="",$type="TEXT") {global $lang; $l=languify($l); switch (strtoupper($type)) { case "HTML": $ql=enruua_var($l,"<SPAN style=\"font-style:italic; font-size: inherit;\">","«","«"); $qr=enruua_var($l,"</SPAN>","»","»"); break; default: $ql=enruua_var($l,"\"","\"","\""); $qr=enruua_var($l,"\"","\"","\""); /* if ($l=="en") $text = strtoupper($text); */ } return $ql.$text.$qr; } function gen_salutation($p,$l="",$formal=TRUE) /// not complete yet! { global $lang; if (!is_valid_language($l)) $l = languify($lang); if (!$p['id']) $t= NULL; else { $t= address_person($p,$formal,$l); /*switch($l) { case "en": $t= address_person($p,TRUE,$l);//call_by_title($p,$l,"TEXT"); // by now break; case "ru": if ($formal) { $t= address_person($p,TRUE,$l);//call_by_title($p,$l,"TEXT"); } else { $patro = address_person($p,FALSE,$l);//call_by_patronimic($p,$l,"TEXT"); if ($patro) $t = $patro; else $t = address_person($p,TRUE,$l);//call_by_title($p,$l,"TEXT"); } break; case "ua": if ($formal) { $t= address_person($p,TRUE,$l);//call_by_title($p,$l,"TEXT"); } else { if ($patro=address_person($p,FALSE,$l))//call_by_patronimic($p,$l,"TEXT")) $t= $patro; {//inactive yet $fn = $p["first_name_".$l]; $fn = str_replace("ій","ію",$fn); $fn = str_replace("ій","ію",$fn); $fn = str_replace("ія","іє",$fn); //return $fn; } } break; }*/ } return $t; }//gen_salutation function plain_short_name($author_id,$add_title=FALSE,$l="",$type="HTML") { global $lang,$_charset,$_journal; mysql_query("SET NAMES '$_charset'"); if (!is_valid_language($l)) $l = $lang; //preferred_language($entry); $entry = person($author_id); if ($entry['id']) {// valid author_id /* $fetch_author = mysql_db_query($_database, "SELECT id, first_name_$lang, middle_name_$lang, last_name_$lang, short_name_$lang,title from Authors where id='$author_id'"); */ if ($entry["short_name_$l"]) $name=$entry["short_name_$l"]; else { // no explicit short_name if ($entry["first_name_$l"]) $name = utf8_substr($entry["first_name_$l"],0,1)."."; if ($entry["middle_name_$l"]) $name = $name.space($type).utf8_substr($entry["middle_name_$l"],0,1)."."; if ($entry["last_name_$l"]) $name = $name.space($type).$entry["last_name_$l"]; } $title = (($add_title) && ($entry["title"])) ? title_meaning($entry["title"],$l).space($type) : ""; return $title . trim($name); } else { return enruua_var($l, "Editorial Board of the journal", "редакция журнала", "редакція журналу")." ". quote($_journal['name'][$l],$l,$type); } } //plain_short_name function article_report_questionnaire_fields() { return array("topic", "methods", "results", "novelty", "style", "language", "length", "ethic", "scope"); } function article_report_codes($q) { switch ($q) { case "topic": return array(2,1,-1,-2); break; case "methods": return array(1,-1,-2); break; case "results": return array(2,1,-1); break; case "novelty": return array(1,-1); break; case "style": return array(2,1,-1); break; case "language": return array(2,1,-1); break; case "length": return array(2,1,-1); break; case "ethic": return array(1,-1); break; case "scope": return array(1,-1); break; default: return NULL; } } function article_report_code_description($q,$l="") { global $lang; if (!is_valid_language($l)) $l = languify($l); switch ($q) { case "scope": return enruua_var($l, "Does the material of the paper comply with the journal scope", "Соответствует ли материал работы тематике журнала", "Чи відповідає матеріал роботи тематиці журналу")."?"; break; case "topic": return enruua_var($l,"How do you estimate the topic of the paper", "Как бы Вы оценили тему статьи", "Як би Ви оцінили тему статті")."?"; break; case "methods": return enruua_var($l,"How do you estimate the methods used in the paper", "Как бы Вы оценили методы статьи", "Як би Ви оцінили методи статті")."?"; break; case "results": return enruua_var($l,"What is your opinion on the correctness of the results obtained in the paper", "Каково Ваше мнение о достоверности результатов, полученных в статье", "Яке Ваше враження про достовірність результатів, отриманих у статті")."?"; break; case "novelty": return enruua_var($l,"How novel are the results of the paper", "Как бы Вы оценили новизну результатов, полученных в статье", "Як би Ви оцінили новизну результатів, отриманих у статті")."?"; break; case "style": return enruua_var($l,"In what scientific style the paper is written", "Как вы оцениваете научный стиль работы", "Як Ви оцінюєте науковий стиль роботи")."?"; break; case "language": return enruua_var($l,"How do you estimate the language of the paper", "Насколько грамотно написана статья с языковой точки зрения", "Наскільки грамотно написано статтю з мовної точки зору")."?"; break; case "length": return enruua_var($l,"How adequate is the length of the paper", "Насколько объем статьи адекватен излагаемому материалу", "Наскільки об'єм статті є адекватним матеріалу, що викладається")."?"; break; case "ethic": return enruua_var($l,"Does the paper comply to the principles of scientific ethic", "Соответствует ли работа нормам научной этики", "Чи відповідає робота нормам наукової етики")."?"; break; default: return NULL; } } function article_report_code_meaning($code,$q,$l="") {global $lang; if (!is_valid_language($l)) $l = languify($lang); $m = "-- ".enruua_var($l,"please choose","просим оценить","просимо оцініти")." --"; switch ($q) { case "topic": switch ($code) { case 2: return enruua_var($l,"very interesting","очень интересна","дуже цікава"); break; case 1: return enruua_var($l,"interesting","интересна","цікава"); break; case -1: return enruua_var($l,"of little interest","малоинтересна","мало цікава"); break; case -2: return enruua_var($l,"of no interest","не вызывает интереса","нецікава"); break; default: return $m; } break; case "methods": switch ($code) { /* case 2: return enruua_var($l,"new and interesting","новые и интересные","нові та цікаві"); break;*/ case 1: return enruua_var($l,"interesting","интересные","цікаві"); break; case -1: return enruua_var($l,"routine","стандартные","стандартні"); break; case -2: return enruua_var($l,"of no interest","не вызывают интереса","нецікаві"); break; default: return $m; } break; case "results": switch ($code) { case 2: return enruua_var($l,"correct","верны","вірні"); break; case 1: return enruua_var($l,"partly correct","частично верны","частково вірні"); break; case -1: return enruua_var($l,"incorrect","неверны","невірні"); break; default: return $m; } break; case "novelty": switch ($code) { case 1: return enruua_var($l,"new","новые","нові"); break; case -1: return enruua_var($l,"well-known","известные","відомі"); break; default: return $m; } break; case "style": switch ($code) { case 2: return enruua_var($l,"good style","хороший стиль","гарний стиль"); break; case 1: return enruua_var($l,"readable","удовлетворительный стиль", "задовільний стиль"); break; case -1: return enruua_var($l,"unreadable","статья неудобочитаема","статтю неможливо читати"); break; default: return $m; } break; case "language": switch ($code) { case 2: return enruua_var($l,"good","грамотно","грамотно"); break; case 1: return enruua_var($l,"average","на удовлетворительном уровне", "на задовільному рівні"); break; case -1: return enruua_var($l,"unsatisfactory","безграмотно","безграмотно"); break; default: return $m; } break; case "length": switch ($code) { case 2: return enruua_var($l,"needs more details","нужно подробнее","треба детальніше"); break; case 1: return enruua_var($l,"acceptable","подходящего объема", "об'єм прийнятний"); break; case -1: return enruua_var($l,"too long","слишком длинная","занадто довга"); break; default: return $m; } break; case "ethic": switch ($code) { case 1: return enruua_var($l,"yes, it does","да, соответствует","так, відповідає"); break; case -1: return enruua_var($l,"no, it does not","нет, не соответствует","ні, не відповідає"); break; default: return $m; } break; case "scope": switch ($code) { case 1: return enruua_var($l,"yes, it does","да, соответствует","так, відповідає"); break; case -1: return enruua_var($l,"no, it does not","нет, не соответствует","ні, не відповідає"); break; default: return $m; } break; } } function article_status_codes() { return array(0,-1,-2,-3,1,2,3,4,5); } function article_status_codes_editorial($art=NULL) { if ($art['id']) { switch ($art['status']) { case 1: $arr = array(0,2,4,5); break; default: $arr = array(0,4,5); break; } return $arr; } else return article_status_codes(); } function article_status_meaning($status) { switch ($status) { case -3: return "complete"; break; case -2: return "pending"; break; case -1: return "assigned"; break; case 0: return "unmanaged"; break; case 1: return "accepted"; break; case 2: return "published"; break; case 3: return "rejected"; break; case 4: return "withdrawn"; break; case 5: return "forwarded"; break; default: return "unknown"; } }//article_status_meaning function article_status_cmp_code($status) { switch ($status) { case -3: return 0; break; case -2: return -1; break; case -1: return -2; break; case 0: return -3; break; default: return $status; } } function referees($rev) { if ($rev['id']) { $res= mysql_query("SELECT * FROM Referees WHERE revision_id='".$rev['id']."' ORDER BY requested,replied,report_received"); if (mysql_num_rows($res)) while ($rr = mysql_fetch_array($res)) { $r[]=$rr;// } return $r; } else return NULL; } function get_article_info($art) { global $lang; $lr = last_revision($art); $i['last_revision'] = $lr['id']; $i['referees_requested'] = array(); $i['referees_requested_and_did_not_reject'] = array(); $i['num_referees_unselected'] = 0; $refereeing_complete = array(); if (($art['status'])>0) { $i['status'] = $art['status']; } else { if ($lr['id']) { $refs = referees($lr); foreach ($refs as $referee) { if (!$referee['referee_id']) { $i['num_referees_unselected']++; } elseif (is_valid_date($referee['requested']) && (!is_valid_date($referee['cancelled'])) ) //(is_valid_date($referee['requested'])) { $i['referees_requested'][] = $referee['id']; if ((is_valid_date($referee['replied'])) && ($referee['agrees']) && (!is_valid_date($referee['cancelled']))) { $i['referees_agreed'][] = $referee['id']; } $refereeing_complete[] = report_done($referee); } } } if (count($refereeing_complete)) $really_complete = (array_product($refereeing_complete) != 0); else $really_complete = FALSE; if ($really_complete) { $i['status'] = -3;//refereeing is complete } else { if (count($i['referees_agreed'])) { $i['status'] = -2; //refereeing } else if (count($i['referees_requested'])) $i['status'] = -1;//requested else $i['status'] = 0;//unmanaged } } return $i; } function article_is_completely_finalised($a) { /*$i['si = get_article_info($a); $s = tatus']; $smeaning = article_status_meaning($s); if (in_array($smeaning,array("rejected","published","withdrawn","forwarded"))) return TRUE; else return FALSE;*/ if (is_valid_date($a['finalised'])) return TRUE; else return FALSE; } function other_journal($l="") { global $lang; if (!$l) $l = languify($l); return array(shortname => enruua_var($l, "Ukrainian Math. J.","Укр. мат. журн.","Укр. мат. журн."), name_nominative => enruua_var($l, "Ukrainian Mathematical Journal","Украинский математический журнал","Український математичний журнал"), name_accusative => enruua_var($l, "Ukrainian Mathematical Journal","Украинского математического журнала","Українського математичного журналу"), email => "umzh@imath.kiev.ua", webpage => "https://imath.kiev.ua/~umzh"); } function print_article_status_editors($art,$l="") { global $lang; $l = languify($l); $i = get_article_info($art); $s = $i['status']; //$smeaning = article_status_meaning($s); switch ($s) { case -3: $lr = last_revision($art); return (is_closed($lr) ? enruua("waiting for a revised version of the manuscript","ожидается переработанный вариант рукописи","очікується перероблена версія рукопису") : enruua("refereeing had been finished, waiting for the editorial decision","рецензирование завершено, ожидается решение редакции","рецензування завершилося, очікується рішення редакції")); break; case -2: return enruua("refereeing is pending", "идет рецензирование", "йде рецензування"); break; case -1: return enruua("being processed", "обрабатывается", "обробляється"); break; case 0: return enruua_var($l,"unmanaged","необработана","неспрацьована"); break; case 1: return enruua("accepted for publication","принята к печати", "прийнята до друку"); break; case 2: return enruua("published","опубликована","опублікована"); break; case 3: return enruua("rejected","отклонена","відхилена"); break; case 4: return enruua("withdrawn by the authors","отозвана авторами","відкликана авторами"); break; case 5: $oj = other_journal($l); return enruua_var($l,"forwarded for publication to the","передана для публикации в","передана для публікації до") ." ". enruua_var($l,$oj['name_nominative'],$oj['name_nominative'],$oj['name_accusative']); break; default: return enruua("temporarily unknown","в настоящий момент невозможно определить", "на сьогоднішній день неможливо визначити"); } } function print_article_status($status,$l="") // becomes obsolete { global $lang; if (!is_valid_language($l)) $l = languify($l); switch ($status) { case -3: return enruua_var($l,"refereeing had been finished","рецензирование завершено","рецензування завершилося"); break; case -2: return enruua_var($l,"refereeing is pending","идет рецензирование","йде рецензування"); break; case -1: return enruua_var($l,"being processed","обрабатывается","обробляється"); break; case 0: return enruua_var($l,"in a uncertain state","в неопределенном состоянии","у невизначеному стані"); break; case 1: return enruua_var($l,"accepted for publication","принята к печати", "прийнята до друку"); break; case 2: return enruua_var($l,"published","опубликована","опублікована"); break; case 3: return enruua_var($l,"rejected","отклонена","відхилена"); break; case 4: return enruua_var($l,"withdrawn by the authors","отозвана авторами","відкликана авторами"); break; case 5: $oj = other_journal($l); return enruua_var($l,"forwarded for publication to the","передана для публикации в","передана для публікації до") ." ". enruua_var($l,$oj['name_nominative'],$oj['name_nominative'],$oj['name_accusative']); break; default: return enruua_var($l,"temporarily unknown","в настоящий момент невозможно определить", "на сьогоднішній день неможливо визначити"); } } function print_article_status_editorial($status,$l="") /// nema se pouzivat!!! { global $lang; if (!is_valid_language($l)) $l = languify($l); switch ($status) { case 1: return enruua_var($l,"accept for publication","принять к печати", "прийняти до друку"); break; case 2: return enruua_var($l,"mark as published","отметить как опубликованную","відмітити як надрукувану"); break; case 3: return enruua_var($l,"reject","отклонить","відхилити"); break; case 4: return enruua_var($l,"stop processing because the paper is withdrawn by the authors", "прекратить рассмотрение по желанию авторов", "припинити розгляд за бажанням авторів"); break; case 5: $oj = other_journal($l); return enruua_var($l,"forward to","передать для публикации в","передати для публікації до") ." ". enruua_var($l,$oj['shortname'],$oj['shortname'],$oj['shortname']) .enruua_var($l," for publication","",""); break; default: return enruua_var($l,"no decision taken yet","решение еще не принято", "рішення поки що не прийнято"); } } function article_status_brief ($status,$l="") // compatibility!!!!! { global $lang; $l = languify($l); return print_article_status_editorial($status,$l); }//article_status_brief function person_allowed_titles($l,$sex="U") { global $lang; if(!is_valid_language($l)) $l=languify($lang); $sex = strtoupper($sex); if (($sex != "M") && ($sex != "F")) $sex = "U"; switch ($sex) { case "M": $t = enruua_var($l,array(0,2,3,4), array(0,2,3,4), array(0,2,3,4)); break; case "F": $t = enruua_var($l,array(0,2,3,5,6,7), array(0,2,3,5), array(0,2,3,5)); break; default: $t = enruua_var($l,array(0,1,2,3,4,5,6,7), array(0,1,2,3,4,5), array(0,1,2,3,4,5)); break; } return $t; }//person_allowed_titles function title_meaning($t,$l="") { global $lang; if(!is_valid_language($l)) $l=languify($lang); switch($t) { case 1: return enruua_var($l,"Doc.","доц.","доц."); break; case 2: return enruua_var($l,"Prof.","проф.","проф."); break; case 3: return enruua_var($l,"Dr.","д-р","д-р"); break; case 4: return enruua_var($l,"Mr.","г-н","пан"); break; case 5: return enruua_var($l,"Mrs.","г-жа","пані"); break; case 6: return enruua_var($l,"Miss","г-жа","пані"); break; case 7: return enruua_var($l,"Ms.","г-жа","пані"); break; case 0: return "-- ".enruua("not specified","не указано","не вказано")." --"; break; default: return ""; } }//title_meaning function title_meaning_accusative($t,$l="") { global $lang; if(!is_valid_language($l)) $l=languify($lang); switch($t) { case 1: return enruua_var($l,"Doc.","доц.","доц."); break; case 2: return enruua_var($l,"Prof.","проф.","проф."); break; case 3: return enruua_var($l,"Dr.","д-р","д-ре"); break; case 4: return enruua_var($l,"Mr.","г-н","пане"); break; case 5: return enruua_var($l,"Mrs.","г-жа","пані"); break; case 6: return enruua_var($l,"Miss","г-жа","пані"); break; case 7: return enruua_var($l,"Ms.","г-жа","пані"); break; case 0: return "-- ".enruua("not specified","не указано","не вказано")." --"; break; default: return ""; } }//title_meaning function is_editor($person) { return ($person['editor']> 0) ? TRUE : FALSE; } function is_authorised_person($person) { return in_array($person['id'],array('dilna')); } function person_status($code) { global $lang; // switch ($code) { case "2": return enruua("editor-in-chief","главный редактор","головний редактор"); break; case "3": return enruua("assistant editor-in-chief", "заместитель главного редактора","заступник головного редактора"); break; case "4": return enruua("executive editor","исполнительный редактор","виконавчий редактор"); break; case "1": return enruua("a member of the editorial board","член редколлегии","член редколегії"); break; default: return enruua("not in the editorial board","не является членом редколлегии", "не є членом редколегії"); } }//person_status // function status($key) //for compatibility {global $lang; return article_status($s); }//status // function year_of_publication($vol) {global $_start_year; return (integer)$vol + $_start_year - 1; // return $y; }//year_of_publication // function volume_of_this_year($year="") { if (!$year) $year=date("Y"); return (integer)$year-year_of_publication(0); }//volume_of_this_year function revision_files($rev) { $files = array(); $dir = revision_dir_name($rev['id']); if (!file_exists($dir)) mkdir($dir, 0700); $dir_handle = opendir($dir); while (false !== ($filename = readdir($dir_handle))) { if ($filename != "." && $filename != "..") $files[] = $filename; } closedir($dir_handle); return $files; } function revision_files_available($rev) { //$files = revision_files($rev); //return count($files); return dir_is_nonempty(revision_dir_name($rev['id'])); } function revision_suitable_for_refereeing($rev) { if ($rev['id']) return revision_files_available($rev);//$rev["revision_is_electronic"]; else return NULL; } function first_revision_received($rev_article_id,$db_handle=0) { global $_database,$_db_host,$_db_user,$_db_password,$_charset; if (!$db_handle) {$db_handle=mysql_connect($_db_host,$_db_user,$_db_password); mysql_query("SET NAMES '$_charset'", $db_handle);} $res_r= mysql_query("SELECT * FROM Revisions WHERE article_id='$rev_article_id' ORDER BY revision_received,id",$db_handle); $r= mysql_fetch_array($res_r); //the first one return $r["revision_received"]; }//first_revision_received function first_revision($art,$db_handle=0) { $res_r= mysql_query("SELECT * FROM Revisions WHERE article_id='".$art['id']."' ORDER BY created,id,revision_received"); $r= mysql_fetch_array($res_r); //the first one return $r["revision_received"]; }//first_revision function volume_link($vol) { global $lang,$_journal; if ($vol) $link = "<A HREF=\"".$_journal['webpage']."/contents.php?lang=".$lang."&volume=".$vol."#info\">".$vol."</A>"; else $link = ""; return $link; } function number_link($vol,$num) { global $lang,$_journal; if (!$num) $num = "?"; if ($vol) { $link = "<A HREF=\"".$_journal['webpage']."/contents.php?lang=".$lang."&volume=".$vol; if ($num != "?") $link = $link . "&number=".$num; $link = $link ."#info\">".$num."</A>"; } else $link = ""; return $link; } function article_publication_data($art,$links=FALSE) { global $lang; if ($art) { $t = enruua("vol","т","т")."."." "; if ($art["published_volume"]) { if ($links) $t = $t . volume_link($art["published_volume"])." (".year_of_publication($art["published_volume"])." ".enruua("","г.","р.").")"; else $t = $t . $art["published_volume"]." (".year_of_publication($art["published_volume"]).enruua(""," г."," р.").")"; } else $t = $t . "?"; $t = $t. ", ".number()." "; if ($art["published_number"]) { if ($links) $t = $t . number_link($art["published_volume"],$art["published_number"]); else $t = $t.$art["published_number"]; } else $t = $t . "?"; //$smeaning = article_status_meaning($s); $i = get_article_info($art); $s = $i['status']; $smeaning = article_status_meaning($s); $show_pages = ($smeaning == "published"); //$art["published_page_start"]; if ($show_pages)//($smeaning == "published") { $t = $t. ", ".enruua("pp","сс","сс").". "; if ($art["published_page_start"]) { $t = $t.$art["published_page_start"]; } else $t = $t . "?"; $t = $t . "-"; if ($art["published_page_end"]) { $t = $t . $art["published_page_end"]; } else $t = $t . "?"; } return $t; } else return NULL; } function last_revision($art) { $res_r= mysql_query("SELECT * FROM Revisions WHERE article_id='".$art['id']."' ORDER BY created DESC,id DESC,revision_received DESC"); if ($res_r) { return mysql_fetch_array($res_r); } else return NULL; } function entire_article_status($art) { // $r = last_revision($art); //return $r['status']; //// Revisions table changed! $i = get_article_info($art); return $i['status']; } function dir_hide($dir) { $r = array(); if (file_exists($dir) && is_dir($dir)) { $file = fopen($dir . "/" . "index.php", 'a', 1); $text="<html>\n <body>\n <center>\n You are not supposed to access this directory </center>\n </body>\n </html>\n"; fwrite($file, $text); fclose($file); } return $r; }//dir_contents function dir_contents($dir) { $r = array(); if (file_exists($dir) && is_dir($dir)) { $a = scandir($dir); foreach ($a as $f) { if (($f != ".") && ($f != "..")) { $r[] = $f; } } } return $r; }//dir_contents function dir_is_nonempty($dir) { $r = FALSE; if (file_exists($dir) && is_dir($dir)) { $a = scandir($dir); foreach ($a as $f) { if (($f != ".") && ($f != "..")) { $r = TRUE; break; } } } return $r; }//dir_is_nonempty function purge_dir($dir,$remove=TRUE,$echo=FALSE) { global $lang; $tmp = ""; if(file_exists($dir)) { if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { unlink($dir."/".$file); if ($echo) $tmp = $tmp . "<p>".$file."</p>\n"; // $a[]=$file; } } closedir($handle); if ($remove) { if (file_exists($dir)) { rmdir($dir); if ($echo) $tmp = $tmp . "<p>".$dir."</p>\n"; } } } } return $tmp; }//purge_dir // function utf8_substr($str,$from,$len){ # utf8 substr # www.yeap.lv return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'. '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s', '$1',$str); }//utf8_substr function utf8_strlen ($str) { $i = 0; $count = 0; $len = strlen ($str); while ($i < $len) { $chr = ord ($str[$i]); $count++; $i++; if ($i >= $len) break; if ($chr & 0x80) { $chr <<= 1; while ($chr & 0x80) { $i++; $chr <<= 1; } } } return $count; } function utf8_wordwrap($str,$len,$what){ # usage: utf8_wordwrap("text",3,"<br>"); # by tjomi4`, thanks to SiMM. # www.yeap.lv $from=0; $str_length = preg_match_all('/[\x00-\x7F\xC0-\xFD]/', $str, $var_empty); $while_what = $str_length / $len; while($i <= round($while_what)){ $string = preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'. '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s', '$1',$str); $total .= $string.$what; $from = $from+$len; $i++; } return $total; } function complete_field_logo($l="") { global $_root,$lang; if (!is_valid_language($l)) $l = languify($lang); return "<img src=\"".$_root."/pixmaps/complete_field.png\" style=\"height: 2.5em;\">"; } function incomplete_field_logo($l="") { global $_root,$lang; if (!is_valid_language($l)) $l = languify($lang); return "<img src=\"".$_root."/pixmaps/incomplete_field.png\" style=\"height: 2.5em;\">"; } function emph($text) { return "<B>".$text."</B>"; } function addtexslashes($str) { $str = addcslashes ($str,"\\"); return $str; } function deleted_text($text) { return "<SPAN STYLE=\"text-decoration: line-through;\">" . $text . "</SPAN>"; } function signature($sig_id) { $res = mysql_query("SELECT * FROM Signatures WHERE id=".$sig_id); return mysql_fetch_array($res); } function signatures($person) { $res = mysql_query("SELECT * FROM Signatures WHERE author_id='".$person['id']."' ORDER BY id"); /* $sigs = array(); while ($s = mysql_fetch_array($res)) { $i = $s['id']; $sigs[$i] = array("en" => $s['signature_en'], "ru" => $s['signature_ru'], "ua" => $s['signature_ua']); }*/ return $res; }//signatures function default_signature($person) { if ($person) { $d = $person['default_signature']; if (!$d) { $sigs = signatures($person); /*foreach ($sigs as $sig) { }*/ $d = key($sigs); } return $d; } else return NULL; } function is_default_signature ($person,$sig_id) { return ($person['default_signature']==$sig_id) ? TRUE : FALSE; }//is_default_signature function letter_signatures($letter_id) { $letter = letter($letter_id); $sigs = array(); if ($letter['id']) { $r = mysql_query("SELECT * FROM LS WHERE letter_id='".$letter['id']."'"); while ($s = mysql_fetch_array($r)) { $sigs[] = $s['signature_id']; } } return $sigs; } function editor_meaning($num) { switch ($num) { case 2: return "chief"; break; case 3: return "assistant"; break; case 4: return "executive"; break; default: return NULL; } } function executive_editor_entries() { return mysql_query("SELECT * FROM Authors WHERE editor='4' and NOT deseased"); } function assistant_editor_in_chief_entries() { return mysql_query("SELECT * FROM Authors WHERE editor='3' and NOT deseased"); } function allowed_senders() { //zero means "Editorial Board of ..." //$cur_uid = user_person_id(); $res = mysql_query("SELECT * FROM Authors where editor>1 and NOT deseased ORDER BY editor,id"); $s = array(0); while($p = mysql_fetch_array($res)) { $s[] = $p['id']; } return $s; } function sender_item_name($author_id,$l=NULL) { global $lang,$_journal; $l = languify($l); if ($author_id) $name = plain_short_name($author_id,FALSE,$l); else { $name = enruua_var($l,"Anonymously in the name of Editorial Board of", "Анонимно от имени редакции журнала", "Анонімно від імені редакції журналу") . " " . quote($_journal['name'][$l],$l,"TEXT"); } return $name; }// function language_name_short($l) { global $lang; if (is_valid_language($l)) return enruua_var($l,enruua("ENG","АНГЛ","АНГЛ"), enruua("RUS","РУС","РОС"), enruua("UKR","УКР","УКР")); else return "*** ".enruua("invalid language id","неверный код языка","невірний код мови") ." ***"; } function check_email_address($email) { // First, we check that there's one @ symbol, and that the lengths are right if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) { // Email invalid because wrong number of characters in one section, or wrong number of @ symbols. return false; } // Split it into sections to make life easier $email_array = explode("@", $email); $local_array = explode(".", $email_array[0]); for ($i = 0; $i < sizeof($local_array); $i++) { if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) { return false; } } if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name $domain_array = explode(".", $email_array[1]); if (sizeof($domain_array) < 2) { return false; // Not enough parts to domain } for ($i = 0; $i < sizeof($domain_array); $i++) { if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) { return false; } } } return true; } function is_valid_email($em_field) { return check_email_address($em_field); }//is_valid_email function letter($id) { $res = mysql_query("SELECT * FROM Letters WHERE id=".$id); return mysql_fetch_array($res); }//letter function letter_text($letter,$language=NULL) { global $lang; $language = languify($language); $m = $letter['body_'.$language]; return $m; } function letter_html($letter,$language=NULL) { global $lang; $language = languify($language); $m = "<HTML>\n<BODY>\n" .nl2br($letter['body_'.$language]) ."</BODY>\n<HTML>\n"; return $m; } function get_person_id_by_signatures($sigs) //array() { $c = count($sigs); $diff = FALSE; if ($c) { $i =0; $sig = signature(current($sigs)); $id_prev = $id = $sig['author_id']; do { $i++; next($sigs); $sig = signature(current($sigs)); $id_prev = $id; $id = $sig['author_id']; if ($id_prev != $id) $diff = TRUE; } while (($i <= c) && (!$diff)); if ($diff) $id=0; } else $id=0; return $id; } function important($txt) { return "<span style=\"color: red; font-weight: bold;\">".$txt."</span>"; } function name_revision($rev,$type,$l="") { global $lang; $l = languify($l); $type = strtoupper($type); $art = article($rev['article_id']); $authors = article_authors_entries($art); if (mysql_num_rows($authors)>1) $an = enruua_var($l,"by","авторы ".mdash($type),"автори ".mdash($type)); else $an = enruua_var($l,"by","автор ".mdash($type),"автор ".mdash($type)); return quote(article_title($art,$l),$l,$type). " (".number().space($type).show_revision_number($rev).", ". $an." " .andify(article_authors($art,$l,$type),$l).")"; } function say_authentication_data($person,$l="",$text=array('HTML'=>'','TEXT'=>''), $text_after=array('HTML'=>'','TEXT'=>'')) { global $lang,$_journal; $l = languify($l); $get_u = get_username($person['id'],$person['id']); foreach (array('TEXT','HTML') as $j) { if ($get_u['raw_password']) { $w[$j] = $text[$j] . par(enruua_var($l,"To access the online manuscript management system of the journal, you will need your login","Для входа в электронную систему Вам понадобятся Ваши код пользователя","Для входу до електронної системи Вам знадобляться Ваші код користувача")." ". enruua_var($l,"and password","и пароль","та пароль").":", $j) . par(enruua_var($l,"Login","Код пользователя","Код користувача").": ". $get_u['username'] .br($j).enruua_var($l,"Password","Пароль","Пароль").": ". $get_u['raw_password'] ,$j); } else { $x = enruua_var($l,"and the password sent to you by email at the time of registration of your user name","и пароль, отправленный Вам электронным письмом при регистрации Вашего кода пользователя","та пароль, надісланий Вам електронним листом підчас реєстрації Вашого коду користувача"); $w[$j] = $text[$j] . par(enruua_var($l,"To log in into the electronic system you will need your user name","Для входа в электронную систему Вам понадобятся Ваш код пользователя","Для входу до електронної системи Вам знадобляться Ваш код користувача")." ". quote($get_u['username'],$l,$j)." ".$x . ". " .enruua_var($l,"Let us recall that, on the page indicated, there is a possibility to regenerate your password in case you forgot it. The new password will then be sent you by email", "Напомним, что на случай, если Вы забыли свой пароль, на указанной выше интернет-странице имеется возможность сгенерировать для Вас новый пароль (при этом новый пароль Вам будет отправлен электронной почтой)","Нагадаймо, що у випадку, якщо Ви забули свій пароль, на вказаній інтернет-сторінці є можливість сгенерувати для Вас новий пароль (при цьому новий пароль Вам буде надіслано за електронною поштою)").".",$j); } $w[$j] = $w[$j] . $text_after[$j]; } return $w; } function say_more_details($person,$l="") { global $lang,$_journal; $l = languify($l); foreach (array('TEXT','HTML') as $j) { $w[$j] = par(enruua_var($l,"More details can be found on the journal page", "Более подробную информацию Вы можете найти на странице журнала", "Більш детальну інформацію Ви можете знайти на сторінці журналу"),$j) .par(journal_webpage_link($l,FALSE,$j,$_journal['webpage']).".",$j); } return say_authentication_data($person,$l,$w); } function gen_phrase($key,$l="") { global $lang,$_journal; $l = languify($l); switch (strtolower($key)) { case "thank_you_for_attention": $p = enruua_var($l,"Thank you for the attention to our journal","Благодарим Вас за внимание к нашему журналу","Дякуємо Вам за увагу до нашого часопису"); break; case "thank_you_for_cooperation": $p = enruua_var($l,"Thank you very much for the cooperation","Искренне Вас благодарим за сотрудничество","Щиро Вам Дякуємо за співпрацю"); break; default: $p=""; } return $p; } function say_you_can_follow($person,$l="") { global $lang,$_journal; $l = languify($l); foreach (array('TEXT','HTML') as $j) { $w[$j] = par(enruua_var($l,"You may check on the progress of your paper by logging on to our online manuscript management system available at the address","Вы можете следить за ходом рассмотрения Вашей работы посредством электронной системы управления рукописями, вход в которую осуществляется по адресу","Ви можете слідкувати за поступом розгляду Вашої роботи через електронну систему керування рукописами, вхід до якої здійснюється за адресою"),$j) .par(journal_webpage_link($l,FALSE,$j,$_journal['webpage']).".",$j); } return say_authentication_data($person,$l,$w); } ?>