Compare commits

..

2 Commits

Author SHA1 Message Date
buttle 5b2d677d17 renders a default menu when wordpress api fails 2022-03-25 12:07:14 +01:00
buttle 9d3976c1cb fixes back button rerender error 2022-03-25 11:52:10 +01:00
1 changed files with 61 additions and 37 deletions

View File

@ -10,11 +10,16 @@ $items = new ArrayObject;
$items[0] = new ArrayObject(); // top level menu items go here
if ($wordpress_endpoint) {
try {
$client = new Client($wordpress_endpoint);
$client->setOptions(array("timeout"=>1));
$response = $client->send();
}
catch (exception $e) {
$response = null;
}
if ($response) {
$response_data = json_decode($response->getBody());
if (!$response->isClientError() && $response_data) {
foreach ($response_data as $menu_item) {
$lowered_title = strtolower($menu_item->title);
@ -38,11 +43,31 @@ if ($wordpress_endpoint) {
$items[$menu_item->menu_item_parent][$menu_item->ID] =$item;
}
}
}
}
if (count($items[0]) == 0) {
// we did not retrieve a menu from the wordpress site
// let's create a default menu
if ($wordpress_site) {
$project_item = [
"id" => 2,
"title" => "Project",
"url" => $wordpress_site
];
$items[0][2] = $project_item;
}
$login_item = [
"id" => 1,
"title" => "Login",
"url" => "/login"
];
$items[0][1] = $login_item;
}
//print_r($items);
function render_menu($items, $level_id) {
if (!function_exists('render_menu')) {
function render_menu($items, $level_id) {
echo '<ul>' . PHP_EOL;
foreach ($items[$level_id] as $menu_item) {
echo '<li>' . PHP_EOL;
@ -53,10 +78,9 @@ function render_menu($items, $level_id) {
echo '</li>' . PHP_EOL;
}
echo '</ul>' . PHP_EOL;
}
}
if (count($items[0]) > 0) {
render_menu($items, 0);
}
render_menu($items, 0);
?>