get('folders.data'), 'faqs.json' ]); $faqs = json_decode(trim(file_get_contents($filename))); return $view->render($response, 'admin.faq', compact('faqs')); } public function add(Request $request, Response $response, Container $container) { $post = $request->getParsedBody(); $filename = implode(DIRECTORY_SEPARATOR, [ $container->get('folders.data'), 'faqs.json' ]); $faqs = json_decode(trim(file_get_contents($filename))); $faq = (object) [ 'titulo' => '', 'contenido' => '' ]; if (isset($post['id']) and isset($faqs[$post['id']])) { $faq = $faqs[$post['id']]; } $changed = false; foreach ($faq as $k => $v) { if ($v != $post[$k]) { $faq->$k = $post[$k]; $changed = true; } } if (isset($post['id'])) { $faqs[$post['id']] = $faq; } else { $faqs []= $faq; } $status = false; if ($changed) { $faqs = array_values($faqs); $status = (file_put_contents($filename, json_encode($faqs, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES)) !== false); } $output = [ 'informacion' => $post, 'estado' => $status, 'faqs' => $faqs ]; $response->getBody()->write(json_encode($output)); return $response ->withHeader('Content-Type', 'application/json') ->withStatus(201); } public function delete(Request $request, Response $response, Container $container) { $post = $request->getParsedBody(); $filename = implode(DIRECTORY_SEPARATOR, [ $container->get('folders.data'), 'faqs.json' ]); $faqs = json_decode(trim(file_get_contents($filename))); $status = false; if (isset($post['id']) and isset($faqs[$post['id']])) { unset($faqs[$post['id']]); $faqs = array_values($faqs); $status = (file_put_contents($filename, json_encode($faqs, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES)) !== false); } $output = [ 'informacion' => $post, 'estado' => $status, 'faqs' => $faqs ]; $response->getBody()->write(json_encode($output)); return $response ->withHeader('Content-Type', 'application/json') ->withStatus(201); } }