require "include/common.php";
require "include/shell.php";
require "include/dogs.php";
require "include/js.php";
require_once "include/pd.php";
require_once "include/interfaces.php";
require_once "include/sql.php";
// Определение сессии и сессионных переменных
session_start();
$userid = $_SESSION['userid'];
$userif = $_REQUEST['userif'];
if($userif)
$_SESSION['ifid'] = (int)$userif;
elseif(!$_SESSION['ifid'])
$_SESSION['ifid'] = 1;
$ifid = $_SESSION['ifid'];
$if = LoadInterface($ifid);
if($if['id'] == 1) {
$iseng = FALSE;
$nnm = "name";
}
else {
$iseng = TRUE;
$nnm = "engname";
}
$id = (int)$_REQUEST[id];
if($id && !$chk = data_select('id', array('id' => (int)$id), 'dogs')) {
echo ErrMsg($if['err_dog_not_selected']);
exit;
};
if(Whois($id,"dogs") == $userid || is_admin($userid))
$isrightuser = TRUE;
elseif(!$id && $userid && ($_REQUEST[update] == "main")) // adding new dog
$isrightuser = TRUE;
else
$isrightuser=FALSE;
// обновление информации через загрузку - фото и снимки
if(isset($_REQUEST[update]) && $isrightuser) switch($_REQUEST[update]) {
case "documents":
$docid = (int)$_REQUEST[docid];
$descr = Shield($_REQUEST[descr]);
$newf = $_FILES[newf][tmp_name];
if(!$docid) {
$dta = mysql_query("LOCK TABLE docs");
$tmpid = data_select(array('MAX(id)' => 'maxid'), FALSE, "docs");
$docid = $tmpid['maxid'] + 1;
if($newf)
$a = LoadPhoto($id,$docid,$newf,6);
if(!$a)
if(!mysql_query("INSERT INTO docs(id,dogid,descr) VALUES($docid,$id,\"$descr\")")) {
$errstr .= mysql_error();
$res = unlink("docs/$id-$docid.jpg");
unset($docid);
}
}
else {
if($newf)
$a = LoadPhoto($id,$docid,$newf,6);
if(!$a)
if(!mysql_query("UPDATE docs SET descr=\"$descr\" WHERE id=$docid")) {
$errstr .= mysql_error();
}
}
UpdateDate($id);
break;
case "xrays":
$newhd = $_FILES[newhd][tmp_name];
$newed = $_FILES[newed][tmp_name];
if($newhd)
$errstr .= LoadPhoto($id,$_REQUEST[app],$newhd,2);
if($newed)
$errstr .= LoadPhoto($id,$_REQUEST[app],$newed,3);
DogJointPicsUpd($id);
UpdateDate($id);
break;
case "photo":
foreach($_FILES[newfoto][tmp_name] AS $app => $nfoto) {
if($nfoto) {
if($a = LoadPhoto($id,$app,$nfoto))
$errstr .= "ФОТО $app НЕ ЗАГРУЖЕНО: $a !";
if($row = data_select("value", array("dogid" => $id, "pid" => (int)$app), "fotorights"))
$query = "UPDATE fotorights SET value=\"".Shield(xs($vl[$app]))."\" WHERE dogid=$id AND pid=".(int)$app;
else
$query = "INSERT INTO fotorights VALUES(".(int)$id.", ".(int)$app.", \"".Shield(xs($vl[$app]))."\")";
if(!mysql_query($query))
$errstr.= "
".mysql_error()."
";
}
}
DogPhotoUpd($id);
UpdateDate($id);
break;
case "main":
$r = $_REQUEST[r];
// проверки на безопасность ввода от скриптов
$r['name'] = Shield(xs($r['name']));
$r['engname'] = Shield(xs($r['engname']));
$r['name'] = mb_convert_case($r['name'], MB_CASE_UPPER, "UTF-8");
$r['engname'] = mb_convert_case($r['engname'], MB_CASE_UPPER, "UTF-8");
$r['rkf'] = Shield($r['rkf']);
$r['addrkf'] = Shield($r['addrkf']);
$r['tavro'] = Shield($r['tavro']);
$r['breeder'] = Shield($r['breeder']);
$r['owner'] = Shield($r['owner']);
$r['address'] = Shield($r['address']);
$r['phone'] = Shield($r['phone']);
$r['website'] = Shield($r['website']);
$r['email'] = Shield($r['email']);
$r['comments'] = Shield($r['comments']);
$r['kennelid'] = (int)$r['kennelid'];
$r['okid'] = (int)$r['okid'];
$r['countryid'] = (int)$r['countryid'];
$r['cid'] = (int)$r['cid'];
$r['teethid'] = (int)$r['teethid'];
if(!$r['height']) $r['height'] = "0"; else $r['height'] = xz($r['height']);
if(!$r['weight']) $r['weight'] = "0"; else $r['weight'] = xz($r['weight']);
$r['sex'] = (int)$r['sex'];
$r['fatherid'] = (int)$r['fatherid'];
$r['motherid'] = (int)$r['motherid'];
if(is_admin($userid))
$r['sale'] = (($r['sale'] == "on")?"1":"0");
$dbirth_days = $_REQUEST[dbirth_days];
$dbirth_months = $_REQUEST[dbirth_months];
$dbirth_years = $_REQUEST[dbirth_years];
$r['dbirth'] = "$dbirth_days.$dbirth_months.$dbirth_years";
$ddeath_days = $_REQUEST[ddeath_days];
$ddeath_months = $_REQUEST[ddeath_months];
$ddeath_years = $_REQUEST[ddeath_years];
$r['ddeath'] = "$ddeath_days.$ddeath_months.$ddeath_years";
//проверка - если предыдущая введенная собака в базу с идентичной кличкой - не сохранять !
$dchk = mysql_fetch_array(mysql_query("SELECT id, name FROM dogs ORDER BY id DESC LIMIT 1"));
if(!$id && ($dchk['name'] == $r['name'])) {
echo ErrMsg($if['err_already_enter']);
$id = $dchk['id'];
break;
}
if(!$id) {
$dta = mysql_query("LOCK TABLE dogs");
$tmpid = data_select(array('MAX(id)' => 'maxid'), FALSE, "dogs");
$id = $tmpid['maxid'] + 1;
$act = is_admin($userid)?1:0;
if(!mysql_query("INSERT INTO dogs(id,active) VALUES($id,$act)")) {
unset($id);
exit;
}
}
if($id) {
$query = "UPDATE dogs SET ";
$query .= "name = \"{$r['name']}\", ";
$query .= "engname = \"{$r['engname']}\", ";
$query .= "kennelid = \"{$r['kennelid']}\", ";
$query .= "okid = \"{$r['okid']}\", ";
$query .= "countryid = \"{$r['countryid']}\", ";
$query .= "datebirth = \"".ConvertDate($r['dbirth'],TRUE)."\", ";
$query .= "datedeath = \"".ConvertDate($r['ddeath'],TRUE)."\", ";
$query .= "cid = \"{$r['cid']}\", ";
$query .= "teethid = \"{$r['teethid']}\", ";
$query .= "height = \"{$r['height']}\", ";
$query .= "weight = \"{$r['weight']}\", ";
$query .= "sex = \"{$r['sex']}\", ";
$query .= "rkf = \"{$r['rkf']}\", ";
$query .= "addrkf = \"{$r['addrkf']}\", ";
$query .= "fatherid = \"{$r['fatherid']}\", ";
$query .= "motherid = \"{$r['motherid']}\", ";
$query .= "owner = \"{$r['owner']}\", ";
$query .= "breeder = \"{$r['breeder']}\", ";
$query .= "tavro = \"{$r['tavro']}\", ";
$query .= "address = \"{$r['address']}\", ";
$query .= "phone = \"{$r['phone']}\", ";
$query .= "website = \"{$r['website']}\", ";
$query .= "email = \"{$r['email']}\", ";
$query .= "comments = \"{$r['comments']}\", ";
$query .= (is_admin($userid)?"sale = {$r['sale']}, ":"");
$query .= "userid = \"".(Is_admin($userid)?$r['userid']:$userid)."\"";
$query .= " WHERE id=$id";
SQLConn();
if(!mysql_query($query) || !$id)
$errstr .= mysql_error();
else {
$mainfoto = $_FILES[mainfoto][tmp_name];
if($mainfoto)
LoadPhoto($id,0,$mainfoto);
UpdateDate($id);
DogPhotoUpd($id);
// СОХРАНЕНИЕ РОДУХИ
$ar = array();
$ar = PedigreeArray($r['fatherid'], 1, $ar);
$ar = PedigreeArray($r['motherid'], 1, $ar);
PedigreeDBupdate($id, $ar);
PedigreeUpdateOffsprings($id);
}
}
break;
case "photodel":
// if(is_admin($userid)) {
if($isrightuser) {
$n = (int)$_REQUEST[n];
if(($n >= 0) && (file_exists("ph/$id-$n.jpg")))
$res = unlink("ph/$id-$n.jpg");
if(!$res)
$errstr .= "Не удалось удалить фото !!!";
DogPhotoUpd($id);
}
break;
case "docdel":
if(is_admin($userid)) {
$docid = (int)$_REQUEST[docid];
if($docid >= 0) {
if(mysql_query("DELETE FROM docs WHERE id=$docid LIMIT 1")) {
$res = unlink("docs/$id-$docid.jpg");
if(!$res)
$errstr .= "Не удалось удалить файл скана документа !!!";
}
else
$errstr .= mysql_error();
}
}
break;
case "descrdel":
if(is_admin($userid)) {
$descrid = (int)$_REQUEST[descrid];
if($descrid >= 0) {
if(!mysql_query("DELETE FROM descr WHERE id=$descrid LIMIT 1"))
$errstr .= mysql_error();
}
}
break;
case "xraysdel":
if(is_admin($userid)) {
$xraytype = Shield($_REQUEST[xraytype]);
if(($xraytype == "hd") && file_exists("xrays/$id-hd.jpg")) {
$res = unlink("xrays/$id-hd.jpg");
if(!$res)
$errstr .= "Не удалось удалить файл снимка суставов !";
}
if(($xraytype == "ed") && file_exists("xrays/$id-ed.jpg")) {
$res = unlink("xrays/$id-ed.jpg");
if(!$res)
$errstr .= "Не удалось удалить файл снимка суставов !";
}
DogJointPicsUpd($id);
}
break;
}
$pageid = 1;
if(!IsActive($id) && !$isrightuser) exit;
// --- ЧТЕНИЕ ИНФОРМАЦИИ О СОБАКЕ ---
$row = data_select('date_up', array('dogid' => (int)$id), 'upd');
$dateupd = substr($row['date_up'],0,4)."-".substr($row['date_up'],4,2)."-".substr($row['date_up'],6,2);
$row = data_select(array('datebirth' => 0, 'sex' => 0, 'fatherid' => 0, 'motherid' => 0, 'dateupd' => 0, 'titlestr' => 0, 'comments' => 0), array('id' => $id), 'dogs');
//$dateupd = $row['dateupd'];
if($errstr)
$outtext .= ErrMsg($errstr);
switch($_REQUEST[screen]) {
case 1: // СТРАНИЦА ОСНОВНОЙ ИНФОРМАЦИИ О СОБАКЕ
default:
$outtext .= "";
$outtext .= jsSaveDogAll($id);
// --- ЗДОРОВЬЕ ---
// if(($healthstr = ShowHealth($id, ", ")) || $isrightuser)
// $outtext .= DictBlock($if['title_health'].($isrightuser?" [{$if['common_edit']}]":""), $healthstr, 'dog_health');
// --- ТИТУЛЫ ---
if(($titlestr = ShowTitles($id,", ")) || $isrightuser)
$outtext .= DictBlock($if['title_titles'].($isrightuser?" [{$if['common_edit']}]":""), $titlestr, 'dog_titles');
// --- ПРОЧИЕ ДОСТИЖЕНИЯ ---
if($row['titlestr'] || $isrightuser)
$outtext .= DictBlock($if['other_achievments'].($isrightuser?" [{$if['common_edit']}]":""), $row['titlestr'], 'dog_titlestr');
// --- СЕРТИФИКАТЫ ---
if(($certstr = ShowCert($id,", ")) || $isrightuser)
$outtext .= DictBlock($if['title_certificates'].($isrightuser?" [{$if['common_edit']}]":""), $certstr, 'dog_cert');
// --- ДРЕССИРОВКА ---
// if(($studystr = ShowStudy($id,", ")) || $isrightuser)
// $outtext .= DictBlock($if['title_study'].($isrightuser?" [{$if['common_edit']}]":""), $studystr, 'dog_study');
// --- КОММЕНТАРИИ ---
if($row['comments'] != "" && $isrightuser)
$outtext .= DictBlock($if['common_comments'], $row['comments']);
// -- РОДОСЛОВНАЯ (НАЧАЛО)
// собственно строка родословной - заголовок таблицы выводим отдельно !!!
if(is_admin($userid)) {
$pdarr = PdCount($id,4,FALSE);
$pdarr = PdColors($pdarr);
$pdstr = Pedigree($row['fatherid'],3,array('ph' => TRUE),$pdarr).Pedigree($row['motherid'],3,array('ph' => TRUE),$pdarr);
}
else {
$pdarr = PdCount($id,3,FALSE);
$pdarr = PdColors($pdarr);
$pdstr = Pedigree($id,3,array('ph' => TRUE),$pdarr);
}
// --- ИНБРИДИНГИ ---
if(!$ilevel)
$ilevel = 3;
$fib_array = InbreedArray($row, $ilevel, 1);
$inbreed = InbreedStr(InbreedSort($fib_array), "
", TRUE);
if($inbreed)
$outtext .= DictBlock($if['common_inbreeding'], $inbreed);
// --- РОДОСЛОВНАЯ (ОКОНЧАНИЕ) ---
$outtext .= DictBlock($if['dog_title_ped'], "".Substr($pdstr,0,Strlen($pdstr)-4)."
");
// --- СОРЕВНОВАНИЯ ---
// $comptitle = $if['title_competition'].
// ($isrightuser?"[{$if['common_add']}]":"");
// if(($compstr = DogComp($id, $isrightuser)) || $isrightuser)
// $outtext .= DictBlock($comptitle, $compstr, 'dog_comp');
// --- ФОТОГРАФИИ - ГОРИЗОНТАЛЬНО ---
if(($outph = DogPhotos($id, $userid)) || $isrightuser)
$outtext .= DictBlock($if['title_photo'].($isrightuser?"[{$if['common_edit']}]":""),
"",
"dog_photo");
// --- ПРОМЕРЫ ---
// if(($sizestr = DogSizes($id)) || $isrightuser)
// $out2 .= "";
// --- ФОТОГРАФИИ (СБОКУ) ---
/*
if(($outph = DogPhotosV($id, $userid)) || $isrightuser)
$out2 .= InfoBlock(strtoupper($if['title_photo']).($isrightuser?"[{$if['common_edit']}]":""), FALSE,
"",
15,
"dog_photo");
*/
// --- СНИМКИ СУСТАВОВ ---
// $delhd = is_admin($userid)?" [{$if['common_delete']}]":"";
// $deled = is_admin($userid)?" [{$if['common_delete']}]":"";
// $outxr .= (file_exists("xrays/$id-hd.jpg")?("| ".ShowDogXrays($id,140,1)." | $delhd |
"):"");
// $outxr .= (file_exists("xrays/$id-ed.jpg")?("| ".ShowDogXrays($id,140,2)." | $deled |
"):"");
// if($outxr || $isrightuser)
// $out2 .= InfoBlock($if['title_xrays'].($isrightuser?"[{$if['common_edit']}]":""), FALSE,
// "\n", 15, 'dog_xrays');
// --- АРХИВ ДОКУМЕНТОВ ---
if(($outdocs = DogDocuments($id, $userid)) || $isrightuser)
$out2 .= InfoBlock($if['title_docscans'].($isrightuser?"[{$if['common_add']}]":""), FALSE, $outdocs, 15, 'dog_documents');
// --- ОПИСАНИЯ ---
$descrstr = ShowDescr($id, $userid);
if($descrstr || $isrightuser)
$outtext .= DictBlock($if['title_descr'].
($isrightuser?"[{$if['common_add']}]":""), $descrstr, 'dog_descr');
$query="
SELECT
d.name AS dogname,
d.sex,
d.blockshows,
shr.showid,
sh.showdate,
".($iseng?"shst.engname":"shst.name")." AS showstatus,
".($iseng?"shcl.engname":"shcl.name")." AS showclass,
CONCAT('', sh.name, '') AS showname,
".($iseng?"cty.engname":"cty.name")." AS countryname,
sh.judgeid,
shr.classid,
shr.markid,
shr.certid,
shr.place,
shr.titleid,
shr.winnerid,
shr.commentary,
sh.statusid
FROM
dogs AS d,
shows AS sh,
showresults AS shr,
countries AS cty,
showstatus AS shst,
showclass AS shcl
WHERE d.id={$id}
AND d.id=shr.dogid
AND sh.id=shr.showid
AND sh.countryid=cty.id
AND sh.active > 0
AND shst.id=sh.statusid
AND shcl.id=shr.classid
ORDER BY sh.showdate DESC
";
$dta = mysql_query($query);
while($r = mysql_fetch_array($dta)) {
if($r['blockshows'])
break;
$mark = ShowNames($r['markid'],"marktype",$iseng);
$cert = ShowNames($r['certid'],"showcert",$iseng);
if($cert <> "") $cert = "
$cert";
$showname = $r['showname'];
// подтянем результаты бэстов
$rb = BISResults($r['showid']);
if(($title = ShowNames($r['titleid'],"showtitles",$iseng)) || $rb[$id]) $title = "$title ".($rb[$id]?("
".$rb[$id]):"").""; else $title = "";
$winner = ShowNames($r['winnerid'],"titlestype",$iseng);
if($winner <> "") $winner = "
$winner";
// собак в классе
$nmclass = mysql_fetch_array(mysql_query("SELECT COUNT(shr.dogid) FROM showresults AS shr,dogs AS d WHERE shr.showid={$r['showid']} AND d.id=shr.dogid AND classid={$r['classid']} AND d.sex={$r['sex']}"));
// собак на выставке
$nms_s = mysql_fetch_array(mysql_query("SELECT COUNT(shr.dogid) FROM showresults AS shr,dogs AS d WHERE shr.showid={$r['showid']} AND d.id=shr.dogid AND d.sex={$r['sex']}"));
$nms = mysql_fetch_array(mysql_query("SELECT COUNT(shr.dogid) FROM showresults AS shr,dogs AS d WHERE shr.showid={$r['showid']} AND d.id=shr.dogid"));
if($r['statusid'] == 4 || $r['statusid'] == 5) $bcl = "#f0f3f8"; else $bcl = "#FFFFFF";
$shstr .= "";
$shstr .= " | ".ConvertDate($r['showdate'])." | ";
$shstr .= " $showname";
if(file_exists("shows/$id-{$r['showid']}.jpg"))
$shstr .= "
";
$shstr .= " | ";
$shstr .= " {$r['countryname']} | ";
$shstr .= " {$r['showclass']} | ";
$shstr .= " ".$nmclass[0]." | ";
$shstr .= " ".$nms_s[0]." / ".$nms[0]." | ";
$shstr .= "
";
$shstr .= "";
$shstr .= " | {$r['showstatus']} | ";
$shstr .= " {$r['place']}, $mark $title$cert$winner".($r['commentary']?" {$r['commentary']}":"")." | ";
$shstr .= "
";
$shstr .= "";
$shstr .= " | ".ShowNames($r['judgeid'], "showjudges", $iseng)." | ";
$shstr .= "
";
};
if($r['blockshows'])
$outtext .= $if['dog_blockshows'];
else {
$shtmp = $shstr;
$shstr = "\n";
$shstr .= "";
$shstr .= " | {$if['shows_showdate']} | "; // Дата выставки
$shstr .= " {$if['shows_name']} | "; // Название выставки
$shstr .= " {$if['common_country']} | "; // Статус
$shstr .= " {$if['shows_class']} | "; // Класс
$shstr .= " {$if['shows_numinclass']} | ";
$shstr .= " {$if['shows_numonshow']} | ";
$shstr .= "
";
$shstr .= "";
$shstr .= " | {$if['shows_status']} | "; // Название выставки
$shstr .= " {$if['shows_result']} | "; // Результаты
$shstr .= "
";
$shstr .= "";
$shstr .= " | {$if['shows_judge']} | "; // Эксперт
$shstr .= "
";
$shstr .= $shtmp;
$shstr .= "
";
if((mysql_num_rows($dta) > 0) || $isrightuser)
$outtext .= InfoBlock($if['title_showresults'],"",$if['common_dog_showtext'].$shstr);
}
break;
case 2: // СТРАНИЦА ОТОБРАЖЕНИЯ ПОТОМКОВ (СО СТАТИСТИКОЙ)
//Общее количество потомков
if($dta = mysql_query("SELECT COUNT(id) AS cnt FROM dogs WHERE fatherid=".(int)$id." OR motherid=".(int)$id))
$r = mysql_fetch_array($dta);
$offcount = $r['cnt'];
//Обсчет титулов
$query_t = "
SELECT ".(!$iseng?"tt.name":"tt.engname AS name").", tt.color, SUM(dt.count) AS cnt
FROM dogs AS d, titles AS dt, titlestype AS tt
WHERE d.id=dt.dogid
AND dt.tid=tt.id
AND (d.fatherid=".(int)$id." OR d.motherid=".(int)$id.")
AND tt.rang <> 60
GROUP BY tt.name
ORDER BY tt.rang
";
if($dta_t = mysql_query($query_t))
while($rt = mysql_fetch_array($dta_t))
$titlestr .= ($titlestr?", ":"")."{$rt['cnt']} x {$rt['name']}";
// ПРОВЕРКИ
$dtah = mysql_query("SELECT * FROM hd");
while($rh = mysql_fetch_array($dtah))
$ah[$rh['id']] = $rh;
$dtah = mysql_query("SELECT * FROM ed");
while($rh = mysql_fetch_array($dtah))
$eh[$rh['id']] = $rh;
$res_hd = array('1' => 0, '2' => 0, '3' => 0, '4' => 0, '5' => 0);
$res_ed = array('1' => 0, '2' => 0, '3' => 0, '4' => 0, '5' => 0);
$query_h = "
SELECT COUNT( dh.dogid ) AS cnt, dh.hd_left, dh.hd_right, dh.ed_left, ed_right
FROM dogs AS d, dogs_hd AS dh
WHERE d.id = dh.dogid
AND (d.fatherid =".(int)$id." OR d.motherid =".(int)$id.")
GROUP BY dh.hd_left, dh.hd_right, dh.ed_left, ed_right
";
if($dtah = mysql_query($query_h))
while($rh = mysql_fetch_array($dtah)) {
$res_hd[MAX($ah[$rh['hd_left']]['syn'], $ah[$rh['hd_right']]['syn'])] += $rh['cnt'];
$res_ed[MAX($rh['ed_left'], $rh['ed_right'])] += $rh['cnt'];
}
foreach($res_hd AS $rid => $reshd)
if($rid>0 && $reshd>0) {
$hdstr .= ($hdstr?"
":"")."$reshd x HD-".$ah[$rid]['name'];
$hdcount += $reshd;
}
if($hdstr && $if['id']==1)
$hdstr = "$hdcount/$offcount проверено - ".Round($hdcount/$offcount*100)."%
".$hdstr;
foreach($res_ed AS $rid => $resed)
if($rid>0 && $resed>0) {
$edstr .= ($edstr?"
":"")."$resed x ED-".$eh[$rid]['name'];
$edcount += $resed;
}
if($edstr && $if['id']==1)
$edstr = "$edcount/$offcount проверено - ".Round($edcount/$offcount*100)."%
".$edstr;
// Вывод потомков по пометам
$outtext .= "{$if['title_offsprings']}:
";
$outtext .= "{$if['title_titles']}
";
$outtext .= "$titlestr
";
$outtext .= "{$if['common_tests']}
";
$outtext .= "$hdstr
";
$outtext .= "$edstr
";
$i = 0;
$query2 = "SELECT DISTINCT fatherid, motherid, datebirth FROM dogs WHERE active=1 AND (fatherid=".(int)$id." or motherid=".(int)$id.") ORDER BY datebirth";
if($dta2 = mysql_query($query2))
while($r2 = mysql_fetch_array($dta2)) {
$tstr = "{$if['common_litter']} ".($i = $i + 1)." - ".ConvertDate($r2['datebirth']);
if(!$r2['fatherid'] || !$r2['motherid'])
$tstr .= " - {$if['litter_notfull']}";
$query = "SELECT dogs.id as dogid,dogs.name as dogname,dogs.sex,dogs.datebirth,dogs.fatherid,dogs.motherid,dogs.rkf, dogs.cid, dogs.countryid, dogs.userid, dogs.tavro
FROM dogs
WHERE dogs.active=1
AND ".($r2['fatherid']?"dogs.fatherid={$r2['fatherid']}":"(dogs.fatherid IS NULL OR dogs.fatherid=0)")."
AND ".($r2['motherid']?"dogs.motherid={$r2['motherid']}":"(dogs.motherid IS NULL OR dogs.motherid=0)")."
AND ".($r2['datebirth']?"dogs.datebirth='{$r2['datebirth']}'":"dogs.datebirth IS NULL")." ORDER BY datebirth, fatherid, motherid, sex DESC";
if($dta = mysql_query($query))
$outtext .= "".
$tstr.
"
".mysql_num_rows($dta)." {$if['common_dogs']}
".
"".FormAltList($dta, '610px');
}
if($row['sex'] == 2) { // для кобелей добавим в боковую колонку активных продолжателей
$qa = "SELECT d.id, COUNT(pd.id) as cnt
FROM dogs AS d, pd
WHERE d.id = pd.pid
AND pd.level =1
AND d.sex =2
AND d.fatherid = {$id}
GROUP BY d.name
ORDER BY COUNT(pd.id) DESC
LIMIT 0,5";
$dta = mysql_query($qa);
while($r = mysql_fetch_array($dta))
$outtext2 .= DogBlock($r['id'], "{$r[1]} {$if['dog_title_offsprings']}");
$out2 .= InfoBlock($if['title_successors'], "", $outtext2, 48);
}
break;
case 3: // СТРАНИЦА РОДСТВЕННЫХ СВЯЗЕЙ СОБАКИ
if($row['fatherid']) $fid=$row['fatherid']; else $fid="NULL";
if($row['motherid']) $mid=$row['motherid']; else $mid="NULL";
// выводим однопометники
if(($fid > 0) && ($mid > 0)) {
$query = "SELECT dogs.id as dogid,dogs.name as dogname,dogs.sex,dogs.datebirth,dogs.fatherid,dogs.motherid,dogs.rkf, dogs.cid, dogs.countryid, dogs.userid, dogs.tavro
FROM dogs
WHERE dogs.active=1
AND fatherid=".(int)$fid."
AND motherid=".(int)$mid."
AND datebirth='".$row['datebirth']."'
AND dogs.id<>".(int)$id."
ORDER BY datebirth, sex DESC";
if($dta = mysql_query($query))
if(mysql_num_rows($dta) > 0)
$outtext .= "".
$if['title_littermates'].
"
".mysql_num_rows($dta)." {$if['common_dogs']}
".
"".
FormAltList($dta, '610px');
}
// выводим Сибсов
if(($fid > 0) && ($mid > 0)) {
$query = "SELECT dogs.id as dogid,dogs.name as dogname,dogs.sex,dogs.datebirth,dogs.fatherid,dogs.motherid,dogs.rkf, dogs.cid, dogs.countryid, dogs.userid, dogs.tavro
FROM dogs
WHERE dogs.active=1
AND fatherid=".(int)$fid."
AND motherid=".(int)$mid."
AND datebirth<>'".$row['datebirth']."'
AND dogs.id<>".(int)$id."
ORDER BY datebirth, sex DESC";
if($dta = mysql_query($query))
if(mysql_num_rows($dta) > 0)
$outtext .= "".
$if['title_siblings'].
"
".mysql_num_rows($dta)." {$if['common_dogs']}
".
"".
FormAltList($dta, '610px');
}
// Выводим полу-сибсов по отцу
if($fid > 0) {
$query = "SELECT dogs.id as dogid, dogs.name as dogname, dogs.sex, dogs.datebirth, dogs.fatherid, dogs.motherid, dogs.rkf, dogs.cid, dogs.countryid, dogs.userid, dogs.tavro
FROM dogs
WHERE dogs.active=1
AND fatherid=".(int)$fid." ".
(($mid>0)?"AND motherid<>".(int)$mid:"")."
AND dogs.id<>".(int)$id."
ORDER BY datebirth";
if($dta = mysql_query($query))
if(mysql_num_rows($dta) > 0)
$outtext .= "".
$if['title_halfsiblings_sire'].
"
".mysql_num_rows($dta)." {$if['common_dogs']}
".
"".
FormAltList($dta, '610px');
}
// Выводим полу-сибсов по матери
if($mid > 0) {
$query = "SELECT dogs.id as dogid, dogs.name as dogname, dogs.sex, dogs.datebirth, dogs.fatherid, dogs.motherid, dogs.rkf, dogs.cid, dogs.countryid, dogs.userid, dogs.tavro
FROM dogs
WHERE dogs.active=1
AND motherid=".(int)$mid." ".
(($fid>0)?"AND fatherid<>".(int)$fid:"")."
AND dogs.id<>".(int)$id."
ORDER BY datebirth";
if($dta = mysql_query($query))
if(mysql_num_rows($dta) > 0)
$outtext .= "".
$if['title_halfsiblings_dame'].
"
".mysql_num_rows($dta)." {$if['common_dogs']}
".
"".
FormAltList($dta, '610px');
}
break;
case 4: // СТРАНИЦА ПОДБОРА ПАРТНЕРА ДЛЯ СОБАКИ
$partnerid = (int)$_REQUEST[partnerid];
if(!$partnerid)
$outtext .= DogPartnerForm($id);
else {
if($row['sex'] == 1)
$ids = array ('fatherid' => $partnerid, 'motherid' => $id);
else
$ids = array ('fatherid' => $id, 'motherid' => $partnerid);
$level = (int)$_REQUEST[level];
if(!$level || $level > 10 || $level < 3)
$level = 4;
$ilevel = (int)$_REQUEST[ilevel];
if(!$ilevel || $ilevel > 10 || $ilevel < 3)
$ilevel = 4;
if($level > 4) {
$liteif = TRUE;
$title = "".DogFullName($ids['fatherid'],FALSE,FALSE, array('upper' => TRUE))." ×".
"".DogFullName($ids['motherid'],FALSE,FALSE, array('upper' => TRUE))."".
": {$if['comp_pedigree_title']}";
}
$pdarr = PdCount($ids['fatherid'],$level-1,FALSE,$id);
$pdarr = PdCount($ids['motherid'],$level-1,$pdarr,$id);
$pdarr = PdColors($pdarr);
$pdstr = Pedigree($ids['fatherid'],$level-1,array('ph' => TRUE),$pdarr).Pedigree($ids['motherid'],$level-1,array('ph' => TRUE),$pdarr);
$fib_array = InbreedArray($ids, $ilevel-1, 1);
$inbreed = InbreedStr(InbreedSort($fib_array), "
", TRUE);
if($inbreed)
$outtext .= DictBlock($if['common_inbreeding'], $inbreed);
$outtext .= DictBlock($if['comp_pedigree_title'],
"".Substr($pdstr,0,Strlen($pdstr)-4)."
", 48);
}
break;
case 5: // СТРАНИЦА ПОСТРОЕНИЯ РАСШИРЕННОЙ РОДОСЛОВНОЙ СОБАКИ
$level = (int)$_REQUEST[level];
if(!$level)
$outtext .= DogPedigreeParamsForm($id);
else {
$liteif = TRUE;
if($level < 3) $level = 3;
if($level > 10) $level = 10;
$ilevel = (int)$_REQUEST[ilevel];
if(!$ilevel || $ilevel > 10 || $ilevel < 3)
$ilevel = 5;
else
$ilevel--;
$row = data_select(array('fatherid' => 0, 'motherid' => 0),
array('id' => (int)$id),
'dogs');
$pdarr = PdCount($id,$level,FALSE);
$pdarr = PdColors($pdarr);
if(!$_REQUEST[p])
$ds = array('owner' => false);
else
$ds = $_REQUEST[p];
$params = array('ph' => $_REQUEST[isfoto], 'size' => '7.0pt', 'font' => 'Tahoma', 'dataset' => $ds);
$pdstr = Pedigree($row['fatherid'],$level-1,$params,$pdarr).
Pedigree($row['motherid'],$level-1,$params,$pdarr);
$fib_array = InbreedArray($row, $ilevel, 1);
$inbreed = InbreedStr(InbreedSort($fib_array), "
", TRUE);
$title = "".DogFullName($id,FALSE,FALSE, array('upper' => TRUE)).": {$if['pedigree_title']}";
$outped = "";
$outped .= "";
$ii = 1;
while($ii<=$level) {
$outped .= "| ";
if($ii>10) { $outped .= "X"; $ii -=10; };
switch ($ii) {
case 1: $outped .= "I";
break;
case 2: $outped .= "II";
break;
case 3: $outped .= "III";
break;
case 4: $outped .= "IV";
break;
case 5: $outped .= "V";
break;
case 6: $outped .= "VI";
break;
case 7: $outped .= "VII";
break;
case 8: $outped .= "VIII";
break;
case 9: $outped .= "IX";
break;
};
$outped .= " | ";
$ii += 1;
};
$outped .= "
";
$outped .= "".Substr($pdstr,0,Strlen($pdstr)-4);
$outped .= "
\n";
if($inbreed)
$outtext .= DictBlock($if['common_inbreeding'], $inbreed);
$outtext .= DictBlock($if['dog_title_ped'], $outped);
}
break;
case 7:
// ????????? ???????
if(!(int)$_REQUEST[side1]) {
$outtext .= DogOffspringParamsForm($id);
} else {
$level1 = (int)$_REQUEST[level1];
$level2 = (int)$_REQUEST[level2];
$side2 = $_REQUEST[side2];
if($side2 || $level2)
$query = "SELECT DISTINCT dogs.id as dogid,dogs.name as dogname,dogs.sex,dogs.datebirth,dogs.fatherid,dogs.motherid,dogs.rkf, dogs.cid, dogs.countryid, dogs.userid, dogs.tavro
FROM dogs, pd AS p1, pd AS p2
WHERE dogs.active=1
".($males?"AND dogs.sex=2":"")."
AND dogs.id <> ".(int)$id."
AND dogs.id = p1.id
AND p1.id = p2.id
AND p1.n <> p2.n
AND p1.pid =$id
AND p1.n < 16
".($level1?"AND p1.level = $level1":"")."
AND p2.pid =$id
AND p2.n > 15
".($level2?"AND p2.level = $level2":"")."
ORDER BY datebirth";
else
$query = "SELECT DISTINCT dogs.id as dogid,dogs.name as dogname,dogs.sex,dogs.datebirth,dogs.fatherid,dogs.motherid,dogs.rkf, dogs.cid, dogs.countryid, dogs.userid, dogs.tavro
FROM dogs, pd AS p1
WHERE dogs.active=1
".($males?"AND dogs.sex=2":"")."
AND dogs.id <> ".(int)$id."
AND dogs.id = p1.id
AND p1.pid =$id
".($level1?"AND p1.level = $level1":"")."
ORDER BY datebirth";
mysql_query("SET SQL_BIG_SELECTS=1");
if($dta = mysql_query($query))
if(mysql_num_rows($dta) > 0) {
if(mysql_num_rows($dta) > 300) { $dta = mysql_query($query." LIMIT 0, 300"); $overload = TRUE; }
$outtext .= "".
$if['offsprings'].
"
".mysql_num_rows($dta)." {$if['common_dogs']}" . (($level1 && $level2)?" - {$if['common_inbreeding']}: $level1:$level2":"") . ($overload?$if['err_too_much_dogs']:"")."
".
"".
FormAltList($dta, '610px');
}
}
break;
};
if(!$liteif) {
FormHeader($id,$userid, TRUE);
$c1 = TitleDog($id, $isrightuser);
$c1 .= "$outtext
";
$c1 .= "{$if['dog_last_update']} ".ConvertDate($dateupd)."
";
if(is_admin($userid))
$c2 .= DogConfirmButton($id);
$c2 .= DogInfo($id, $userid);
$c2 .= "$out2
";
TwoColumns($c1, $c2);
FormEnding($userid,$id,$pageid);
}
else {
LiteHeader($id);
echo "";
echo "
\n";
echo " $title
\n";
echo "
\n";
// echo DogLinks($id, $ish['blockshows']);
echo "
\n";
echo "
\n";
echo $outtext;
echo "
";
LiteEnding();
}
?>