<?php
$pages = json_decode('{
"Pages":{
"Home":"Dashboard",
"USD Market":{
"Current-Trades":"USD-Current-Trades",
"Exchange-Trades":"USD-Exchange-Trades"
}
}
}', true);
class Z
{
private $pages;
private $currentPage;
public function setConfig($currentPage, array $config)
{
$this->currentPage = $currentPage;
$this->pages = [];
$this->addToPageList($config['Pages']);
}
public function pages($linkName)
{
return $this->pages[$linkName];
}
public function addToPageList(array $pages)
{
foreach ($pages as $key => $page) {
if (is_array($page)) {
$this->addToPageList($page);
} else {
$active = ($page == $this->currentPage) ? 'active' : 'inactive';
$this->pages[$page] = $active;
}
}
}
}
$z = new Z();
$z->setConfig('USD-Exchange-Trades', $pages); // current page, page config
echo $z->pages('USD-Exchange-Trades') . "\n";
echo $z->pages('USD-Current-Trades') . "\n";
echo $z->pages('Dashboard') . "\n";
- Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
- active
inactive
inactive
preferences:
127.2 ms | 408 KiB | 5 Q