Expert insight
Reviewers bring subject knowledge that supports informed editorial assessment.
prepare("SHOW TABLES LIKE ?"); $stmt->execute([$table]); return (bool)$stmt->fetchColumn(); } catch (Throwable $e) { return false; } } function getColumns(PDO $pdo, string $table): array { try { $stmt = $pdo->query("SHOW COLUMNS FROM `$table`"); return array_map(fn($r) => $r['Field'], $stmt->fetchAll(PDO::FETCH_ASSOC)); } catch (Throwable $e) { return []; } } function firstExistingColumn(array $available, array $preferred): ?string { foreach ($preferred as $col) { if (in_array($col, $available, true)) return $col; } return null; } function getParam(string $key): string { return trim((string)($_GET[$key] ?? '')); } function detectJournalSlugFromRequest(): string { foreach ([getParam('slug'), getParam('journal'), getParam('journal_slug')] as $v) { if ($v !== '') return $v; } $uri = parse_url($_SERVER['REQUEST_URI'] ?? '', PHP_URL_PATH); $segments = array_values(array_filter(explode('/', (string)$uri))); foreach ($segments as $segment) { if (!in_array($segment, ['journal-info','reviewer-thanks.php','reviewer-thanks','index.php'], true)) { if (preg_match('/^[a-z0-9\-]+$/i', $segment)) return $segment; } } return ''; } function buildCurrentPageUrl(string $slug): string { return '/journal-info/reviewer-thanks.php?journal=' . urlencode($slug); } function renderHtmlOrText(string $content): string { $content = trim($content); if ($content === '') return ''; if (strip_tags($content) !== $content) return $content; return '
' . nl2br(e($content)) . '
'; } if (!isset($pdo) || !$pdo) die('Database connection is not available.'); if (!tableExists($pdo, 'tb_journals')) die('Table tb_journals not found.'); $journalCols = getColumns($pdo, 'tb_journals'); $journalIdCol = firstExistingColumn($journalCols, ['id']); $journalNameCol = firstExistingColumn($journalCols, ['journal_title', 'journal_name', 'name', 'title']); $journalSlugCol = firstExistingColumn($journalCols, ['journal_slug', 'slug', 'url_slug']); $journalDescCol = firstExistingColumn($journalCols, ['description', 'journal_description', 'about_journal', 'short_description']); $journalShortCol = firstExistingColumn($journalCols, ['journal_short_name', 'short_name', 'abbreviation']); $journalStatusCol = firstExistingColumn($journalCols, ['status']); $journalThanksCol = firstExistingColumn($journalCols, ['reviewer_thanks', 'reviewer_acknowledgement', 'reviewer_acknowledgment']); if (!$journalIdCol || !$journalNameCol) die('tb_journals is missing required columns.'); $requestedSlug = detectJournalSlugFromRequest(); $requestedId = (int)($_GET['id'] ?? ($_GET['journal_id'] ?? 0)); $journal = null; try { if ($requestedSlug !== '' && $journalSlugCol) { $sql = "SELECT * FROM `tb_journals` WHERE `$journalSlugCol` = ? "; if ($journalStatusCol) $sql .= "AND `$journalStatusCol` IN ('Active','active',1,'1') "; $sql .= "LIMIT 1"; $stmt = $pdo->prepare($sql); $stmt->execute([$requestedSlug]); $journal = $stmt->fetch(PDO::FETCH_ASSOC); } if (!$journal && $requestedId > 0) { $sql = "SELECT * FROM `tb_journals` WHERE `$journalIdCol` = ? "; if ($journalStatusCol) $sql .= "AND `$journalStatusCol` IN ('Active','active',1,'1') "; $sql .= "LIMIT 1"; $stmt = $pdo->prepare($sql); $stmt->execute([$requestedId]); $journal = $stmt->fetch(PDO::FETCH_ASSOC); } if (!$journal) { $sql = "SELECT * FROM `tb_journals` "; if ($journalStatusCol) $sql .= "WHERE `$journalStatusCol` IN ('Active','active',1,'1') "; $sql .= "ORDER BY `$journalIdCol` ASC LIMIT 1"; $stmt = $pdo->query($sql); $journal = $stmt->fetch(PDO::FETCH_ASSOC); } } catch (Throwable $e) { die('Error loading journal: ' . e($e->getMessage())); } if (!$journal) die('No journal found.'); $journalId = (int)($journal[$journalIdCol] ?? 0); $journalName = trim((string)($journal[$journalNameCol] ?? 'Journal')); $journalSlug = $journalSlugCol ? trim((string)($journal[$journalSlugCol] ?? '')) : ''; $journalDesc = $journalDescCol ? trim((string)($journal[$journalDescCol] ?? '')) : ''; $journalShort = $journalShortCol ? trim((string)($journal[$journalShortCol] ?? '')) : ''; $reviewerThanks = $journalThanksCol ? trim((string)($journal[$journalThanksCol] ?? '')) : ''; $reviewerTable = null; foreach (['tb_journal_reviewer_board', 'journal_reviewer_board', 'reviewer_board'] as $tbl) { if (tableExists($pdo, $tbl)) { $reviewerTable = $tbl; break; } } $reviewers = []; $pageMessage = ''; if ($reviewerTable) { $reviewerCols = getColumns($pdo, $reviewerTable); $revIdCol = firstExistingColumn($reviewerCols, ['id']); $revJournalIdCol = firstExistingColumn($reviewerCols, ['journal_id']); $revJournalSlugCol = firstExistingColumn($reviewerCols, ['journal_slug', 'slug']); $revJournalNameCol = firstExistingColumn($reviewerCols, ['journal_name', 'journal']); $revNameCol = firstExistingColumn($reviewerCols, ['member_name', 'name', 'full_name', 'reviewer_name']); $revTypeCol = firstExistingColumn($reviewerCols, ['member_type', 'role', 'position']); $revDesignationCol = firstExistingColumn($reviewerCols, ['designation', 'title']); $revInstitutionCol = firstExistingColumn($reviewerCols, ['institution', 'affiliation', 'organization', 'university']); $revCountryCol = firstExistingColumn($reviewerCols, ['country']); $revOrderCol = firstExistingColumn($reviewerCols, ['display_order', 'sort_order', 'position_order', 'id']); $revStatusCol = firstExistingColumn($reviewerCols, ['status']); if ($revNameCol) { $select = [ $revIdCol ? "`$revIdCol` AS `id`" : "0 AS `id`", $revJournalIdCol ? "`$revJournalIdCol` AS `journal_id`" : "0 AS `journal_id`", $revJournalSlugCol ? "`$revJournalSlugCol` AS `journal_slug`" : "'' AS `journal_slug`", $revJournalNameCol ? "`$revJournalNameCol` AS `journal_name`" : "'' AS `journal_name`", "`$revNameCol` AS `member_name`", $revTypeCol ? "`$revTypeCol` AS `member_type`" : "'' AS `member_type`", $revDesignationCol ? "`$revDesignationCol` AS `designation`" : "'' AS `designation`", $revInstitutionCol ? "`$revInstitutionCol` AS `institution`" : "'' AS `institution`", $revCountryCol ? "`$revCountryCol` AS `country`" : "'' AS `country`", $revOrderCol ? "`$revOrderCol` AS `display_order`" : "999999 AS `display_order`" ]; $whereParts = []; $params = []; if ($revJournalIdCol && $journalId > 0) { $whereParts[] = "`$revJournalIdCol` = ?"; $params[] = $journalId; } if ($revJournalSlugCol && $journalSlug !== '') { $whereParts[] = "LOWER(TRIM(`$revJournalSlugCol`)) = LOWER(TRIM(?))"; $params[] = $journalSlug; } if ($revJournalNameCol && $journalName !== '') { $whereParts[] = "LOWER(TRIM(`$revJournalNameCol`)) = LOWER(TRIM(?))"; $params[] = $journalName; } $sql = "SELECT " . implode(", ", $select) . " FROM `$reviewerTable`"; if (!empty($whereParts)) { $sql .= " WHERE (" . implode(' OR ', $whereParts) . ")"; } else { $sql .= " WHERE 1=1"; } if ($revStatusCol) { $sql .= " AND `$revStatusCol` IN ('Active','active',1,'1')"; } $sql .= " ORDER BY CAST(display_order AS UNSIGNED) ASC, id ASC"; try { $stmt = $pdo->prepare($sql); $stmt->execute($params); $reviewers = $stmt->fetchAll(PDO::FETCH_ASSOC) ?: []; } catch (Throwable $e) { $pageMessage = 'Unable to load reviewer records: ' . $e->getMessage(); } } else { $pageMessage = 'Reviewer board table exists, but reviewer name column was not found.'; } } else { $pageMessage = 'Reviewer board table not found.'; } $totalReviewers = count($reviewers); $metaTitle = 'Reviewers Thanks | ' . $journalName; $metaDescription = 'Reviewer thanks and acknowledgement page for ' . $journalName . ', recognizing reviewer contributions to peer review and editorial quality.'; $canonicalUrl = buildCurrentPageUrl($journalSlug ?: (string)$journalId); $defaultThanks = $journalName . ' sincerely thanks its reviewers for their time, expertise, and commitment to academic quality. Reviewer contributions are central to maintaining rigorous editorial standards, fair assessment, and constructive scholarly communication across submissions received by the journal.'; ?>= e($journalName) ?> values the time, expertise, and academic commitment of reviewers who support the journal’s peer review process.
= e($defaultThanks) ?>
Reviewers bring subject knowledge that supports informed editorial assessment.
Reviewer recommendations help authors improve clarity, structure, and reporting.
Peer review contributes to fairness, transparency, and confidence in published research.
Each year, = e($journalName) ?> recognizes the valuable service of reviewers who support submissions, revisions, and editorial consultations.
= e($journalName) ?> welcomes qualified clinicians, researchers, and academic professionals interested in contributing to the peer review process.
Reviewers should have relevant academic or clinical expertise, research experience, and a clear understanding of scholarly communication.
The following reviewers are associated with = e($journalName) ?> and are displayed dynamically from your database.
= e(!empty($parts) ? implode(' • ', $parts) : 'Reviewer Board Member') ?>
Reviewer names will appear here once reviewer board members are added and linked to this journal.
The journal supports reviewers with clear expectations, editorial guidance, and communication throughout the review process.
Join our reviewer community or contact the Editorial Office to learn more.