| Server IP : 103.243.232.44 / Your IP : 216.73.216.237 Web Server : LiteSpeed System : Linux server17213-10344.hostycare.online 5.14.0-687.38.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Aug 12 17:19:12 EDT 2026 x86_64 User : iamakash ( 1400) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/iamakash/public_html/shaurya.meals28.com/ |
Upload File : |
<?php
require __DIR__ . '/vendor/autoload.php';
require __DIR__ . '/includes/auth.php';
requireLogin();
$pdo = getPDO();
$q = trim((string)($_GET['q'] ?? ''));
$parent = trim((string)($_GET['parent'] ?? ''));
$baseYear = '2011-12'; // v1 is single base-year
// Build the full path from a commodity up to the root, for breadcrumbs
if (!function_exists('pathTo')) {
function pathTo(PDO $pdo, string $code, string $baseYear): array
{
$out = [];
$seen = 0;
$cur = $code;
while ($cur !== null && $cur !== '' && $seen++ < 10) {
$s = $pdo->prepare('SELECT comm_code, comm_name, level, parent_code FROM commodities WHERE comm_code=? AND base_year=?');
$s->execute([$cur, $baseYear]);
$row = $s->fetch();
if (!$row) break;
array_unshift($out, $row);
$cur = $row['parent_code'];
}
return $out;
}
}
$results = [];
$children = [];
$currentNode = null;
$crumbs = [];
if ($q !== '') {
// Wild-text search across name / code
$like = '%' . $q . '%';
$stmt = $pdo->prepare(
'SELECT comm_code, comm_name, level, parent_code, comm_wt
FROM commodities
WHERE base_year=:b AND (comm_name LIKE :qn OR comm_code LIKE :qc)
ORDER BY level, comm_name
LIMIT 200'
);
$stmt->execute([':b' => $baseYear, ':qn' => $like, ':qc' => $like]);
$results = $stmt->fetchAll();
} else {
// Hierarchical browse
if ($parent === '') {
// Top of tree: all commodities with parent_code IS NULL
$stmt = $pdo->prepare(
'SELECT comm_code, comm_name, level, parent_code, comm_wt
FROM commodities
WHERE base_year=:b AND parent_code IS NULL
ORDER BY comm_code'
);
$stmt->execute([':b' => $baseYear]);
$children = $stmt->fetchAll();
} else {
$s = $pdo->prepare('SELECT * FROM commodities WHERE comm_code=? AND base_year=?');
$s->execute([$parent, $baseYear]);
$currentNode = $s->fetch();
$stmt = $pdo->prepare(
'SELECT comm_code, comm_name, level, parent_code, comm_wt
FROM commodities
WHERE base_year=:b AND parent_code=:p
ORDER BY comm_code'
);
$stmt->execute([':b' => $baseYear, ':p' => $parent]);
$children = $stmt->fetchAll();
$crumbs = pathTo($pdo, $parent, $baseYear);
}
}
$pageTitle = 'Browse — Shaurya Index Factor';
require __DIR__ . '/includes/header.php';
?>
<div class="card mb-3"><div class="card-body">
<form method="get" class="row g-2 align-items-end">
<div class="col-md-8">
<label class="form-label mb-1">Search by name or code</label>
<input type="text" name="q" value="<?= h($q) ?>" class="form-control" placeholder="e.g. Ragi, Wheat, 1101010101">
</div>
<div class="col-md-2">
<button class="btn btn-primary w-100">Search</button>
</div>
<div class="col-md-2">
<a class="btn btn-outline-secondary w-100" href="<?= base_url('browse.php') ?>">Reset</a>
</div>
</form>
</div></div>
<?php if ($q !== ''): ?>
<div class="card"><div class="card-body">
<h5>Search results for "<?= h($q) ?>" (<?= count($results) ?>)</h5>
<?php if (!$results): ?>
<p class="text-muted mb-0">Nothing found.</p>
<?php else: ?>
<div class="table-responsive">
<table class="table table-sm align-middle">
<thead><tr><th>Level</th><th>Code</th><th>Name</th><th>Full path</th><th class="text-end">Weight</th><th></th></tr></thead>
<tbody>
<?php foreach ($results as $r):
$path = pathTo($pdo, $r['comm_code'], $baseYear);
$pathStr = implode(' > ', array_map(fn($p) => h($p['comm_name']), $path));
?>
<tr class="level-<?= (int)$r['level'] ?>">
<td>L<?= (int)$r['level'] ?></td>
<td><code class="code-chip"><?= h($r['comm_code']) ?></code></td>
<td><?= h($r['comm_name']) ?></td>
<td class="path-crumb"><?= $pathStr ?></td>
<td class="text-end"><?= $r['comm_wt']!==null ? number_format((float)$r['comm_wt'],4) : '' ?></td>
<td>
<a class="btn btn-sm btn-outline-primary" href="<?= base_url('view.php?code=' . urlencode($r['comm_code'])) ?>">View</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php endif; ?>
</div></div>
<?php else: ?>
<div class="card"><div class="card-body">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="<?= base_url('browse.php') ?>">Root</a>
</li>
<?php foreach ($crumbs as $c):
$isLast = ($c['comm_code'] === ($currentNode['comm_code'] ?? null));
?>
<li class="breadcrumb-item <?= $isLast?'active':'' ?>">
<?php if (!$isLast): ?>
<a href="<?= base_url('browse.php?parent=' . urlencode($c['comm_code'])) ?>"><?= h($c['comm_name']) ?></a>
<?php else: ?>
<?= h($c['comm_name']) ?>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ol>
</nav>
<?php if ($currentNode): ?>
<div class="mb-3">
<h5 class="mb-1"><?= h($currentNode['comm_name']) ?>
<small class="text-muted">Level <?= (int)$currentNode['level'] ?></small>
</h5>
<code class="code-chip"><?= h($currentNode['comm_code']) ?></code>
<?php if ($currentNode['comm_wt'] !== null): ?>
· weight <?= number_format((float)$currentNode['comm_wt'],4) ?>
<?php endif; ?>
·
<a href="<?= base_url('view.php?code=' . urlencode($currentNode['comm_code'])) ?>">View monthly history</a>
</div>
<?php endif; ?>
<?php if (!$children): ?>
<p class="text-muted mb-0">No children under this node. It's a leaf —
<a href="<?= base_url('view.php?code=' . urlencode($currentNode['comm_code'])) ?>">view its history</a>.
</p>
<?php else: ?>
<div class="table-responsive">
<table class="table table-sm table-hover align-middle">
<thead><tr><th>Level</th><th>Code</th><th>Name</th><th class="text-end">Weight</th><th></th></tr></thead>
<tbody>
<?php foreach ($children as $c): ?>
<tr class="level-<?= (int)$c['level'] ?>">
<td>L<?= (int)$c['level'] ?></td>
<td><code class="code-chip"><?= h($c['comm_code']) ?></code></td>
<td>
<a href="<?= base_url('browse.php?parent=' . urlencode($c['comm_code'])) ?>">
<?= h($c['comm_name']) ?>
</a>
</td>
<td class="text-end"><?= $c['comm_wt']!==null ? number_format((float)$c['comm_wt'],4) : '' ?></td>
<td>
<a class="btn btn-sm btn-outline-primary" href="<?= base_url('view.php?code=' . urlencode($c['comm_code'])) ?>">View</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php endif; ?>
</div></div>
<?php endif; ?>
<?php require __DIR__ . '/includes/footer.php'; ?>