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
/
Edit File:
functions_gen.php.2007-05-12.address_person
<?php include_once("mimetex/mimetex.php"); 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 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; } //$lang=languify(take_variable("lang")); $_locales = array("en" => "en_GB", "ru" => "ru_RU.UTF-8", "ua" => "uk_UA.UTF-8"); $_languages = array_keys($_locales); $_sexes = array("unspecified" => "U", "male" => "M", "female" => "F"); $_max_file_size=10000000; $_max_article_title_chars=60; $_max_institution_title_chars=100; $_max_country_name_chars=15; $_number_of_person_titles=8; $_journal = array ("email" => "nosc@imath.kiev.ua", "webpage" => "http://www.imath.kiev.ua/~nosc", "adminpage" => "http://www.imath.kiev.ua/~nosc/admin", "loginpage"=> "http://www.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 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."\">\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 journal_webpage_link($l="",$quote=TRUE) //misteryously disappeared 25.08.2006 { global $lang,$_journal; if (!is_valid_language($l)) $l = languify($lang); $t = "<A href=\"".$_journal['webpage']."?lang=".$l."\">".$_journal['name'][$l]."</A>"; if ($quote) $t = quote($t,$l,'HTML'); 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 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("day","день","день"), enruua("days","дня","дні"), enruua("days","дней","дня"),$num) . " ". enruua("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 quote($text,$l="",$type="TEXT") {global $lang; $l=languify($l); switch ($type) { case "HTML": case "html": $ql=enruua_var($l,"<em>","«","«"); $qr=enruua_var($l,"</em>","»","»"); break; default: $ql=enruua_var($l,"","'","'"); $qr=enruua_var($l,"","'","'"); if ($l=="en") $text = strtoupper($text); } return $ql.$text.$qr; } function webpage_link($url,$text="") { if (!$text) $text = $url; return "<a href=\"".$url."\">".$text."</a>"; } // if (is_valid_language($lang)) setlocale(LC_ALL,$_locales[$lang]); 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 id,email_field FROM Emails WHERE person_id='".$person['id']."' ORDER BY id"); $emails = array(); while ($emails[] = mysql_fetch_array($res)) {} 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="") { if (!$title) $title=basename($address); return "<a href=\"".$address."\">".$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_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 somebody_did_something($person,$enm,$rum,$uam,$enf,$ruf,$uaf,$l="") { global $lang,$_charset; mysql_query("SET NAMES '$_charset'"); if(!is_valid_language($l)) $l = $lang; $v=""; 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","неизвестно кто","невідомо хто"); $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 (!is_valid_language($l)) $l = languify($lang); if ($person['id']) { $lp = preferred_language($person); if (!$formal) { if ($lp != "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); 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 ""; } function call_by_patronimic($person,$l=NULL,$type="HTML") { global $lang; if (!is_valid_language($l)) $l = languify($lang); if ((mb_strlen($person["first_name_".$l]) >= 3) && (mb_strlen($person["middle_name_".$l]) >= 4)) return $person["first_name_".$l].space($type).$person["middle_name_".$l]; else return ""; }//patronimic function space($type="TEXT") { switch(strtoupper($type)) { case "HTML": $s = " "; break; default: $s = " "; } return $s; } 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 { 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; mysql_query("SET NAMES '$_charset'"); if ($entry = person($author_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 (!is_valid_language($l)) $l = $lang; //preferred_language($entry); 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 NULL; } } //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); } function article_status_codes_editorial() { return array(0,1,2,3,4); } 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; 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 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; if (($art['status'])>0) { $i['status'] = $art['status']; } else { if ($lr['id']) { $refs = referees($lr); $i['completion_date'] = '0000-00-00'; foreach ($refs as $referee) { if (!$referee['referee_id']) { $i['num_referees_unselected']++; } elseif (is_valid_date($referee['requested'])) { $i['referees_requested'][] = $referee['id']; if ((is_valid_date($referee['replied'])) && ($referee['agrees'])) { $i['referees_agreed'][] = $referee['id']; } if (!report_done($referee)) $completion_date = '0000-00-00'; else $i['completion_date'] = $referee['report_received']; } } } if (is_valid_date($i['completion_date'])) { $i['status'] = -3;//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 = get_article_info($a); $s = $i['status']; $smeaning = article_status_meaning($s); if (in_array($smeaning,array("declined","published","withdrawn"))) return TRUE; else return FALSE; } function print_article_status($status,$l="") { global $lang; if (!is_valid_language($l)) $l = languify($l); switch ($status) { case -3: return enruua("refereeing had been finished","рецензирование завершено","рецензування завершилося"); break; case -2: return enruua("refereeing is pending","идет рецензирование","йде рецензування"); break; case -1: return enruua("being processed","обрабатывается","обробляється"); break; case 0: return enruua("in a uncertain state","в неопределенном состоянии","у невизначеному стані"); 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; default: return enruua("temporarily unknown","в настоящий момент невозможно определить", "на сьогоднішній день неможливо визначити"); } } function print_article_status_editorial($status,$l="") { global $lang; if (!is_valid_language($l)) $l = languify($l); switch ($status) { case 1: return enruua("accept for publication","принять к печати", "прийняти до друку"); break; case 2: return enruua("mark as published","отметить как опубликованную","відмітити як надрукувану"); break; case 3: return enruua("reject","отклонить","відхилити"); break; case 4: return enruua("stop processing because the paper is withdrawn by the authors", "прекратить рассмотрение по желанию авторов", "припинити розгляд за бажанням авторів"); break; default: return enruua("no decision taken yet","решение еще не принято", "рішення поки що не прийнято"); } } function article_status_brief ($status) { global $lang; switch ($status) { case 0: return enruua("unmanaged","не обраб.","не оброб."); break; case 1: return enruua("under ref.","на рец.","на рец."); break; case 2: return enruua("accepted","прин.", "прийн."); break; case 3: return enruua("published","опубл.","опубл."); break; case 4: return enruua("rejected","откл.","відх."); break; case 5: return enruua("withdrawn","отозв.","відклик."); break; default: return "???"; } }//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 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 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 article_publication_data($art) { global $lang; if ($art) { $t = enruua("vol","т","т")."."." "; if ($art["published_volume"]) { $t = $t . $art["published_volume"]." (".year_of_publication($art["published_volume"]) ." ".enruua("","г.","р.").")"; } else $t = $t . "?"; $t = $t. ", ".number()." "; if ($art["published_number"]) { $t = $t.$art["published_number"]; } else $t = $t . "?"; $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']; } 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="yes") {global $lang; if(file_exists($dir)) { if ($handle = opendir($dir)) { // $tmp ="<table>"; while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { unlink($dir."/".$file); $tmp = $tmp . "<p>".$file."</p>\n"; // $a[]=$file; } } closedir($handle); if ($remove) { if (file_exists($dir)) { rmdir($dir); $tmp = $tmp . "<p>".$dir."</p>\n"; } } } //$tmp=$tmp . "</table>"; } 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 $sigs; }//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 allowed_senders() { //zero means "Editorial Board of ..." //$cur_uid = user_person_id(); $res = mysql_query("SELECT * FROM Authors where editor>1 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); } function letter($id) { $res = mysql_query("SELECT * FROM Letters WHERE id=".$id); return mysql_fetch_array($res); } ?>
Simpan