Cómo cambiar la vista de determinada página en php mvc

Hola, tengo un controlador de vista de modelo simple que adapté de una demostración de mvc de libros que encontré en línea.

De esa demostración simplemente cambié libros a páginas y libro a página. I que configurar la consulta para consultar la tabla de contenido.

Entonces todo está funcionando. Ahora lo que necesito saber es cómo puedo cambiar la plantilla si, por ejemplo, se selecciona la página “SERVICIOS”. Debo mencionar que el menú se está completando desde la base de datos usando los títulos de página.

Tengo este código en mi presenter.php que cambia la vista

model = new Model(); } public function invoke() { global $pages; if (!isset($_GET['page'])) { // if no special page is requested, we'll show a menu of all pages or load the default page $pages = $this->model->getPages(); // include 'view/pages.php'; include 'home.php'; } else { // otherwise show the requested page $page = $this->model->getPage($_GET['page']); $display='Title:' . $page->title . '
' . 'Image:' . $page->image . '
' . 'Description:' . $page->description . '
'; include 'view/layout.php'; } } public function services() { // load views include 'view/services.php'; } } ?>

Entonces, ¿qué tengo que hacer para cambiar una plantilla si se selecciona el menú / página de SERVICIOS? He estado investigando la semana pasada y me he quedado corto en una solución.

Entiendo que hay otros tutoriales para mvc que usan frameworks. Pero no quiero usar framework. Quiero usar php mvc plano para esta prueba.

Tengo esta configuración y se está ejecutando en http://oryanm.waiariki.net.nz/ El primer enlace de inicio es el enlace de etiqueta normal. El segundo menú de inicio y el menú de acercamiento provienen de la base de datos, así como del título, la imagen y la descripción de la página en esas dos páginas. Todavía no configuré el enlace del menú de servicios hasta que pueda encontrar la solución para cambiar su plantilla.

Aquí está mi archivo model.php si ayuda

 <?php include_once("model/page.php"); class Model { public $result; public $pages; public function getPages() { global $pages_array; include_once('model/conn.php'); $sql = "SELECT * FROM pages"; $result = mysqli_query($conn, $sql); if(!$result ) {echo 'error finding any pages';} // or if table is emtpty else if (mysqli_num_rows($result) == 0) { echo '

There are no pages

';} // if not display results else { $pages_array = array(); while ($row = mysqli_fetch_array($result)){ // the row array elements are fields in the database // assign records to php variables $page_title = $row['PageTitle']; $page_image = $row['Image1']; $page_description = $row['Description']; $page_obj = new Page($page_title, $page_image, $page_description); $pages_array[] = $page_obj; } // here goes some hardcoded values to simulate the database return $pages_array; } } public function getPage($title) { global $title; // we use the previous function to get all the books and then we return the requested one. // in a real life scenario this will be done through a db select command $allPages = $this->getPages(); foreach( $allPages as $value ){ if( $value->title == $title){ return $value; } } } } ?>