Добавлена выборка актульных сайтов по непройденным вариантам
This commit is contained in:
@ -37,6 +37,31 @@ final class ContingentManager
|
||||
return $sites;
|
||||
}
|
||||
|
||||
public function getSitesFromMiccedu(Database $db, array $params) : array
|
||||
{
|
||||
// select site, vuzkod as org_id from opendata.miccedu_monitoring
|
||||
// where year = 2023 and (vuzkod = :val1 or vuzkod = :val2 or ...)
|
||||
$year = 2023;
|
||||
foreach ($params as $key => $org) {
|
||||
$params[$key] = (int)$org['org_id'];
|
||||
}
|
||||
$query = $this->builder->select()
|
||||
->setTable('miccedu_monitoring')
|
||||
->setColumns(['org_id' => 'vuzkod','site'])
|
||||
->where('AND')
|
||||
->equals('year', $year)
|
||||
->subWhere('OR');
|
||||
foreach ($params as $orgId) {
|
||||
$query->equals('vuzkod', $orgId);
|
||||
}
|
||||
$query = $query->end();
|
||||
$sql = $this->builder->writeFormatted($query);
|
||||
array_unshift($params, $year);
|
||||
$sites = $db->selectQuery($sql, $params);
|
||||
|
||||
return $sites;
|
||||
}
|
||||
|
||||
public function insertContingent(Database $db, array $contingent) : void
|
||||
{
|
||||
$params = ['spec_code', 'spec_name', 'edu_level', 'edu_forms', 'contingent', 'spec_id', 'org_id'];
|
||||
@ -84,11 +109,21 @@ final class ContingentManager
|
||||
public function buildBaseUri(string $url): string
|
||||
{
|
||||
// Строит -> https://<base_uri>
|
||||
if (strpos($url,'https://') === false && strpos($url,'http://') === false) {
|
||||
$url = str_replace("www/", "www.", $url);
|
||||
if (strpos($url,'https://') === false
|
||||
&& strpos($url,'http://') === false
|
||||
) {
|
||||
$url = "http://$url";
|
||||
}
|
||||
$url = str_replace("https://", "http://", $url);
|
||||
$arr = parse_url($url);
|
||||
$url = $arr['scheme'] .'://'. $arr['host'] . '/';
|
||||
|
||||
// $url = str_replace("www.", "", $url);
|
||||
$url = str_replace("_","/", $url);
|
||||
$url = $url."sveden/education/";
|
||||
|
||||
return $url;
|
||||
return trim($url);
|
||||
}
|
||||
|
||||
public function addSpecId(array &$contingent, array $specializations) : void
|
||||
@ -141,12 +176,12 @@ final class ContingentManager
|
||||
$data = explode (' ', $str);
|
||||
if (preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $data[0])
|
||||
&& $data[3] != PHP_EOL) {
|
||||
$orgHttpError[] = $data[2];
|
||||
// $orgHttpError[] = ['org_id' => $data[2], 'site' => $data[3]];
|
||||
// $orgHttpError[] = $data[2];
|
||||
$orgHttpError[] = ['org_id' => $data[2], 'site' => $data[3]];
|
||||
}
|
||||
}
|
||||
$orgHttpError = array_unique($orgHttpError);
|
||||
sort($orgHttpError);
|
||||
// $orgHttpError = array_unique($orgHttpError);
|
||||
ksort($orgHttpError);
|
||||
return $orgHttpError;
|
||||
}
|
||||
}
|
@ -36,10 +36,10 @@ class ContingentParser
|
||||
'UTF-8',
|
||||
$encoding
|
||||
);
|
||||
$html = str_replace('windows-1251','utf-8', $html);
|
||||
} else {
|
||||
$dom->loadHTML(mb_convert_encoding($html,'HTML-ENTITIES','UTF-8'));
|
||||
$html = str_replace('windows-1251','utf-8', $html);
|
||||
}
|
||||
$dom->loadHTML(mb_convert_encoding($html,'HTML-ENTITIES','UTF-8'));
|
||||
|
||||
$this->xpath = new \DOMXPath($dom);
|
||||
$this->template = $template;
|
||||
}
|
||||
|
Reference in New Issue
Block a user