template == "router"){ $a[] = routerToArray($item); } else { $a[] = pageToArray($item); } } return json_encode($a); } function pagesToXml(PageArray $items) { $a = array(); foreach($items as $item){ if($item->template == "router"){ $a[] = routerToArray($item); } else { $a[] = pageToArray($item); } } $xml_data = new SimpleXMLElement(''); return arrayToXml($a, $xml_data); } function pageToYaml(PageArray $item){ $a = array(); foreach($items as $item){ if($item->template == "router"){ $a[] = routerToArray($item); } else { $a[] = pageToArray($item); } } return yaml_emit($a); } function arrayToXml($data, &$xml_data){ foreach($data as $key => $value){ if(is_array($value)) { if( is_numeric($key) ){ $key = 'item'.$key; //dealing with <0/>.. issues } $subnode = $xml_data->addChild($key); arrayToXml($value, $subnode); } else { $xml_data->addChild("$key",htmlspecialchars("$value")); } } return $xml_data; } function routerToArray(Page $page){ $outputFormatting = $page->outputFormatting; $page->setOutputFormatting(false); $data = array( "$page->title" => array( 'hersteller' => $page->parent->title, 'name' => $page->name, 'status' => $page->status, 'outdatet' => false, 'parent' => $page->parent->path, 'modified' => $page->modified, 'image' => ($page->image->first() ? array( 'data' => $page->image->first()->httpUrl, 'description' => $page->image->first()->description, 'modified' => $page->image->first()->modified, 'created' => $page->image->first()->created ) : array()), 'data' => array( 'title' => $page->title, 'description' => $page->body, 'images' => array(), 'hardware' => array( 'ram' => $page->ram, 'flash' => $page->flash, 'cpu' => "", 'price' => "" ), 'features' => array(), 'infoBlocks' => array(), ), ), ); foreach($page->info_blocks as $block) { if(empty($block->title)) continue; $data[$page->title]['data']['infoBlocks'][$block->id] = array( 'title' => $block->title, 'body' => $block->body ); } $i = 0; foreach($page->images as $image){ $data[$page->title]['data']['images'][$i] = array( 'data' => $image->httpUrl, 'description' => $image->description, 'modified' => $image->modified, 'created' => $image->created ); $i++; } foreach($page->features as $feature){ array_push($data[$page->title]['data']['features'], $feature->name); } $page->setOutputFormatting($outputFormatting); return $data; } function pageToArray(Page $page) { $outputFormatting = $page->outputFormatting; $page->setOutputFormatting(false); $data = array( 'id' => $page->id, 'parent_id' => $page->parent_id, 'hersteller' => $page->parent->title, 'name' => $page->name, 'status' => $page->status, 'sort' => $page->sort, 'sortfield' => $page->sortfield, 'numChildren' => $page->numChildren, 'template' => $page->template->name, 'parent' => $page->parent->path, 'data' => array(), ); foreach($page->template->fieldgroup as $field) { if($field->type instanceof FieldtypeFieldsetOpen) continue; $value = $page->get($field->name); $data['data'][$field->name] = $field->type->sleepValue($page, $field, $value); } $page->setOutputFormatting($outputFormatting); return $data; } $routers = $pages->find("template=router, sort=title"); if($input->urlSegment1 == "json"){ $useMain = false; header("Content-type: application/json"); echo pagesToJSON($routers); } else if ($input->urlSegment1 == "yaml"){ $useMain = false; //var_dump(pageToYaml($routers)); phpinfo(); } else { $output = ''; #include_once('scripts/import.inc'); #$today = strtotime('-1 day', $today); #$h = $pages->find("template=hersteller"); #foreach($h as $p){ # $pages->delete($p, true); # echo "Delete: $p->name
"; #} foreach($routers as $router){ $title = $router->title; $image = (count($router->image) ? $router->image->first()->size(300,300)->url : 'https://placehold.it/300x300'); $features = getTag($router->features, 2); $output .= "
$title
    $features
"; } $sidebar = renderSidebarFilter(); $content = "
$output
$sidebar"; }