Process($per_year); } $issuesWhere = '((id_issue < 1024) OR ((id_issue > 1023) AND ((creation_phaze >= 3) OR (partial = 1) OR (creation_phaze = 2 AND year > 2016))))'; global $lang; $type = preg_replace('/[^A-z]/', '', $_GET['mag']); if (strpos($type,"eng") === 0) { DBConnect(); $mag_info = GetRecordSet('enotabene.emag_mags', array('*'), "str_id_eng_nb='$type'"); if (count($mag_info) > 0) { $mag_info = $mag_info[0]; $type = $mag_info['str_id']; } } $month = array_key_exists('month', $_GET) ? intval($_GET['month']) : 0; $year = array_key_exists('year', $_GET) ? intval($_GET['year']) : 0; $isAurora = ($host == 'aurora-group') ? 1 : 0; //print('type = '.$type); DBConnect(); $mag_info = GetRecordSet('enotabene.emag_mags', array('*'), "str_id='$type'"); $mag_info = $mag_info[0]; $id_mag = $mag_info['id_mag']; if ($id_mag == 74 && ($year == 2024 || $year == 0)) $id_mag = 47; if ($id_mag == 74 && !$isAurora) { header("location: https://aurora-journals.com/e_PHILHARMONICA/"); die(); } $magWhere = 'id_mag='.$id_mag; if ($isAurora && ($id_mag == 74 || $id_mag == 47)) { $magWhere = '((id_mag = 74 AND year <=2023) OR (id_mag = 47 AND year >2023))'; } if (!$year) { $year = GetSQLValue('enotabene.emag_issues','year',$magWhere.' AND '.$issuesWhere.' ORDER BY year DESC LIMIT 0,1'); $month = GetSQLValue('enotabene.emag_issues','month','year='.$year.' AND '.$magWhere.' AND '.$issuesWhere.' ORDER BY month DESC LIMIT 0,1'); } if (!$month) { $month = GetSQLValue('enotabene.emag_issues','month','year='.$year.' AND '.$magWhere.' AND '.$issuesWhere.' ORDER BY month DESC LIMIT 0,1'); } $science_nums = GetSQLValue('enotabene.emag_mags', 'science_nums', "id_mag =".$id_mag); $kvartil = GetSQLValue('enotabene.emag_mags', 'kvartil', "id_mag =".$id_mag); $partial = GetSQLValue("enotabene.emag_issues", "partial", 'id_mag="'.$id_mag.'" AND year='.$year.' AND month='.$month); $creation_phaze = GetSQLValue("enotabene.emag_issues", "creation_phaze", 'id_mag="'.$id_mag.'" AND year='.$year.' AND month='.$month); $science_nums_new_array = GetRecordSet('enotabene.emag_scientific_cipher_of_specialty as s LEFT JOIN enotabene.emag_cipher_by_mags as m ON s.id_cipher = m.id_cipher', array('DISTINCT(s.num)'), 'id_mag='.$id_mag.' ORDER BY s.num'); $science_nums_new_str = ""; for ($i = 0; $i < count($science_nums_new_array); $i++) { if ($science_nums_new_str != "") { $science_nums_new_str .= ", "; } $science_nums_new_str .= $science_nums_new_array[$i]['num']; } $mag_info['science_nums_new_str'] = $science_nums_new_str; DBDisconnect(); ShowTopPart(); if ($month && $year) { DBConnect(); if ($type == 'phil' || $type == 'psen') { $mag_page_header = new CSimplePage('e_mag_page_header_'.$type.'.tpl'); } else { $mag_page_header = new CSimplePage('e_mag_page_header.tpl'); } $issues_db = GetRecordSet('enotabene.emag_issues', array('year','month', 'id_issue'), 'id_mag='.$id_mag.' AND '.$issuesWhere.' ORDER BY year, month'); $issues = array(); $years = array(); foreach( $issues_db as $issue) { $issues[$issue['year']][$issue['month']] = $issue['id_issue']; if (!in_array($issue['year'], $years)) { $years[] = $issue['year']; } } DBDisconnect(); $mag_page_header->AddVar('issues', $issues); $mag_page_header->AddVar('all_years', $years); $mag_page_header->AddVar('current_month', $month); $mag_page_header->AddVar('current_month_txt', (GetTxtMonth($month, $mag_info['issues_in_year'], $lang))); $mag_page_header->AddVar('current_year', $year); $mag_page_header->AddVar('period_txt', (GetTxtPeriod($mag_info['issues_in_year'], $lang))); $mag_page_header->AddVar('mag_info', $mag_info); $mag_page_header->AddVar('mag_first_year', $mag_info['first_issue_year']); $mag_page_header->AddVar('science_nums', $science_nums); $mag_page_header->AddVar('kvartil', $kvartil); $mag_page_header->Show(); } else { $mag_page_header = new CSimplePage('e_mag_page_header_no_issues.tpl'); $mag_page_header->AddVar('mag_info', $mag_info); $mag_page_header->AddVar('science_nums', $science_nums); $mag_page_header->AddVar('kvartil', $kvartil); $mag_page_header->Show(); $month = 0; $year = 0; } $side_menu_html = ''; $electronic = true; if ($mag_info['printed'] > 0) { $electronic = false; } $side_menu_html = RenderSideMenu($type, -1, 0, 0, $mag_info, $lang, $electronic, 0); DBConnect(); $issues_nb_itemid = GetRecordSet('enotabene.emag_issues', array('year','month', 'id_issue'), 'nb_itemid > 0 AND id_mag='.$id_mag.' AND year='.$year.' AND month ='.$month); $where = "emag_articles.id_mag=".$id_mag." AND year=".$year.' AND month='.$month.' AND status = 7 ORDER BY page_start ASC, id_article ASC'; if (count($issues_nb_itemid) > 0 ) { $where = "emag_articles.nb_itemid > 0 AND ".$where; } $subscribtionUser = GetESubscribtionUser($id_mag, $year, $month, 0); DBConnect(); $not_public_articles = GetRecordSet('enotabene.emag_articles', array("*"), "id_mag=".$id_mag." AND year=".$year.' AND month='.$month.' AND status = 10 ORDER BY page_start ASC, id_article ASC'); DBDisconnect(); $tFilter = new CTransliterateFilter(); for($i=0; $i < count($not_public_articles); $i++) if (strlen($not_public_articles[$i]['authors_eng']) < 2) { $not_public_articles[$i]['authors_eng'] = $tFilter->Process($not_public_articles[$i]['authors']); } $mag = new CList("enotabene.emag_articles", $where, array('id_article','id_mag','year','month','title','title_eng', 'title_cn','annotation','annotation_eng', 'annotation_cn','review','review_start_date','review_cost','reviewer_decision','authors','authors_eng','page_start','page_end','lang_text','doi','id_rubric','free','is_eng_text_published','edn','nb_itemid'), "e_content/"); $mag->AddHelperQuery("SELECT title AS rubric, title_eng as rubric_eng FROM enotabene.emag_rubrics WHERE id_rubric={id_rubric}"); $mag->AddHelperQuery("SELECT GROUP_CONCAT(keyword SEPARATOR ', ') AS keywords FROM enotabene.emag_keywords WHERE id_article={id_article}"); $mag->AddHelperQuery("SELECT GROUP_CONCAT(keyword SEPARATOR ', ') AS keywords_eng FROM enotabene.emag_keywords_eng WHERE id_article={id_article}"); $mag->AddHelperQuery("SELECT GROUP_CONCAT(keyword SEPARATOR ', ') AS keywords_cn FROM enotabene.emag_keywords_cn WHERE id_article={id_article}"); $mag->AddHelperQuery("SELECT GROUP_CONCAT(link SEPARATOR '
') AS bibliography FROM enotabene.emag_bibliolinks WHERE id_article={id_article}"); $mag->AddHelperQuery("SELECT GROUP_CONCAT(link SEPARATOR '
') AS eng_bibliography FROM enotabene.emag_bibliolinks WHERE id_article={id_article}"); $mag->AddHelperQuery("SELECT id_item as purchased_id FROM nb_library_purchased_items WHERE is_active = 1 AND id_mag={id_mag} AND year={year} AND month={month} AND id_user=".$subscribtionUser); $mag->AddHelperQuery("SELECT id_item as purchased_id_collection FROM nb_library_purchased_items WHERE is_active = 1 AND id_mag={id_mag} AND year=-1 AND month=-1 AND id_user=".$subscribtionUser); $mag->AddHelperQuery("SELECT id_item as purchased_id_full FROM nb_library_purchased_items WHERE is_active = 1 AND year=-1 AND month=-1 AND id_user=".$subscribtionUser." AND (((id_mag=-3) AND (DATE_ADD(order_date, INTERVAL 1 YEAR) > NOW())) OR ((id_mag=-4) AND (DATE_ADD(order_date, INTERVAL 1 DAY) > NOW())))"); if (isset($_SESSION['library_id_user'])) $subscribtionUser = $_SESSION['library_id_user']; $mag->AddHelperQuery("SELECT id_item as purchased_id_article FROM nb_library_purchased_items WHERE is_active = 1 AND year=-1 AND month=-1 AND id_mag=-1 AND id_user=".$subscribtionUser." AND id_article=-{id_article}"); $mag->AddFieldFilter('doi', new CDoiFilter()); $mag->AddConst('not_public_articles', $not_public_articles); DBConnect(); $articleIDs = GetRecordSet('enotabene.emag_articles', array('id_article'), "id_mag=".$id_mag." AND year=".$year.' AND month='.$month.' AND status = 7'); DBDisconnect(); $articleIDsStr = ''; $articleReviews = array(); $articleReviewsEng = array(); $reviewHistory = array(); $reviewHistoryEng = array(); DBConnect(); if (count($articleIDs)) { foreach ($articleIDs as $articleID) { $articleIDsStr .= (!$articleIDsStr ? '' : ',') . $articleID['id_article']; $articleReviews[$articleID['id_article']] = array(); $reviewHistoryTmp = GetRecordSet('enotabene.emag_review_history', array('id_review_history', 'id_article'), "id_article = ".$articleID['id_article']." AND status = 1 AND review_cost >= 100 ORDER BY review_start_date ASC"); $reviewHistoryEngTmp = GetRecordSet('enotabene.emag_review_history', array('id_review_history', 'id_article'), "id_article = ".$articleID['id_article']." AND status = 1 AND review_cost >= 100 AND LENGTH(review_eng) > 5 ORDER BY review_start_date ASC"); if (count($reviewHistoryTmp) == 0 || count($reviewHistoryEngTmp) == 0 ) { $id_article_original = GetSQLValue('enotabene.emag_articles','id_article_original','id_article='.$articleID['id_article']); if ($id_article_original > 0) { if (count($reviewHistoryTmp) == 0) { $reviewHistoryTmp = GetRecordSet('enotabene.emag_review_history', array('id_review_history', 'id_article'), "id_article = ".$id_article_original." AND status = 1 AND review_cost >= 100 ORDER BY review_start_date ASC"); if (count($reviewHistoryTmp) == 0) { $id_article_original_2 = GetSQLValue('enotabene.emag_articles','id_article_original','id_article='.$id_article_original); if ($id_article_original_2 > 0) $reviewHistoryTmp = GetRecordSet('enotabene.emag_review_history', array('id_review_history', 'id_article'), "id_article = ".$id_article_original_2." AND status = 1 AND review_cost >= 100 ORDER BY review_start_date ASC"); } for($i=0; $i < count($reviewHistoryTmp); $i++) { $reviewHistoryTmp[$i]['id_article'] = $articleID['id_article']; } } if (count($reviewHistoryEngTmp) == 0) { //$_GET['debug']=1; $reviewHistoryEngTmp = GetRecordSet('enotabene.emag_review_history', array('id_review_history', 'id_article'), "id_article = ".$id_article_original." AND status = 1 AND review_cost >= 100 AND LENGTH(review_eng) > 5 ORDER BY review_start_date ASC"); // print("count reviewHistoryEngTmp " .count($reviewHistoryEngTmp)); //print_r($reviewHistoryEngTmp); if (count($reviewHistoryEngTmp) == 0) { $id_article_original_2 = GetSQLValue('enotabene.emag_articles','id_article_original','id_article='.$id_article_original); if ($id_article_original_2 > 0) $reviewHistoryEngTmp = GetRecordSet('enotabene.emag_review_history', array('id_review_history', 'id_article'), "id_article = ".$id_article_original_2." AND status = 1 AND review_cost >= 100 AND LENGTH(review_eng) > 5 ORDER BY review_start_date ASC"); } for($i=0; $i < count($reviewHistoryEngTmp); $i++) { $reviewHistoryEngTmp[$i]['id_article'] = $articleID['id_article']; } } } } $reviewHistory = array_merge($reviewHistory, $reviewHistoryTmp); $reviewHistoryEng = array_merge($reviewHistoryEng, $reviewHistoryEngTmp); } } //print_r($reviewHistoryEng); DBDisconnect(); if ($articleIDsStr) { /*DBConnect(); $reviewHistory = GetRecordSet('enotabene.emag_review_history', array('id_review_history', 'id_article'), "id_article IN(".$articleIDsStr.") AND status = 1 AND review_cost >= 100 ORDER BY review_start_date ASC"); $reviewHistoryEng = GetRecordSet('enotabene.emag_review_history', array('id_review_history', 'id_article'), "id_article IN(".$articleIDsStr.") AND status = 1 AND review_cost >= 100 AND LENGTH(review_eng) > 5 ORDER BY review_start_date ASC"); DBDisconnect(); */ if (count($reviewHistory)){ foreach($reviewHistory as $reviewHistoryObj){ $articleReviews[$reviewHistoryObj['id_article']][$reviewHistoryObj['id_review_history']] = $reviewHistoryObj; } } if (count($articleIDs)) { foreach ($articleIDs as $articleID) { while (count($articleReviews[$articleID['id_article']]) > 3 ) { array_shift($articleReviews[$articleID['id_article']]); } } } if (count($reviewHistoryEng)){ foreach($reviewHistoryEng as $reviewHistoryEngObj){ $articleReviewsEng[$reviewHistoryEngObj['id_article']][$reviewHistoryEngObj['id_review_history']] = $reviewHistoryEngObj; } } if (count($articleIDs)) { foreach ($articleIDs as $articleID) { if (isset($articleReviewsEng[$articleID['id_article']])) while (count($articleReviewsEng[$articleID['id_article']]) > 3 ) { array_shift($articleReviewsEng[$articleID['id_article']]); } } } } $mag->SetRecordCountInPage(100); $mag->AddConst('side_menu', $side_menu_html); $mag->AddConst('mag_info', $mag_info); $mag->AddFieldFilter('bibliography', new CNewlineFilter()); $mag->AddFieldFilter('annotation', new CAnnotationFilter()); $mag->AddFieldFilter('annotation_eng', new CAnnotationFilter()); $mag->AddFieldFilter('annotation_cn', new CAnnotationFilter()); $mag->AddFieldFilter('eng_bibliography', new CTransliterateFilter()); $mag->AddFieldFilter('authors_eng', new CTransliterateIfNeededFilter()); $mag->AddConst('partial', $partial); $mag->AddConst('creation_phaze', $creation_phaze); $mag->AddConst('mag_year', $year); $mag->AddConst('lang', $lang); $mag->AddConst('articleReviews', $articleReviews); $mag->AddConst('articleReviewsEng', $articleReviewsEng); $output_info = GetOutputMagInfo($id_mag, $year, $month); $editor = $output_info['editor']; $issn = $output_info['issn']; $issue_date = $output_info['issue_date']; $trans = new CTransliterateFilter(); $mag->AddConst('editor', $editor); $mag->AddConst('editor_eng', $trans->Process($editor)); $mag->AddConst('issue_date', $issue_date); $mag->AddConst('is_aurora', $isAurora); $mag->Show(); ShowBottomPart(); ?>