Escribo a continuación los archivos:
En index.php
Código PHP:
//...
//cargamos la pagina
$pag = new Pagina();
$pag->cargarTema();
En Pagina.php:
Código PHP:
/**
* Empieza a cargar el tema predeterminado */
public function cargarTema(){
if(!$this->incluir('index.php')) die('Tema no encontrado');
}
Código PHP:
/**
* Incluye el archivo $nombre_archivo. Lo busca en el directorio del tema * predeterminado.
* $nombre_archivo
* @param type $nombre_archivo DEBE incluir tambien las posibles subcarpetas
* en las que esté a partir de la carpeta del tema; ejemplo:
* Carpeta del tema: C:\wamp\www\temas\tema_negro\
* Nombre del archivo: opciones\archivo.php
* @return type Devuelve 1 (true) si ha encontrado el archivo, FALSE de lo contrario */
public function incluir($nombre_archivo){
return include DIR_TEMAS.DS.$this->temaActual.DS.$nombre_archivo;
}
En index.php del tema predeterminado:
Código PHP:
<?php
[B][COLOR="green"]$this->incluir('funciones.php');[/COLOR][/B]
?>
<!DOCTYPE html>
<head>
...
<section id="izquierda">
<?php
if($this->esBackend()) $this->incluir('unarchivo.php');
elseif($this->esFrontend()){
if($this->es_principal()) $this->incluir('otroarchivo.php');
elseif($this->es_post()) $this->incluir('otro.php');
elseif($this->es_pagina()) $this->incluir('lapagina.php');
[B][COLOR="Green"]elseif($this->es_subir()) $this->incluir('subir.php');[/COLOR][/B]
elseif($this->es_registro()) $this->incluir('registro.php');
}
else $this->incluir('registro.php');
...
En subir.php:
Código PHP:
<article><?php if(!$this->nombrePagina()) echo 'holamundo'; //cuando $this->nombrePagina() devuelve FALSE, escribe 'holamundo', es decir, puedo usar $this
?>
<div class="sus">
<h2>Post nuevo</h2>
...
Ahora bien, en funciones.php:
Código PHP:
<?php
/**
* Funcion que uso para pasar el arbol y asi simplificar al maximo el codigo en el tema
* @return string La lista definitiva
*/
function imprimir_categorias(){
//global $pag;
return recorrerCategoriasPadre($this->crearArbolCategorias()); //no me deja usar $this
}
¿Alguna explicación de por qué no estoy en el contexto adecuado? ¿Por qué me deja usar $this en subir.php, y en funciones.php no, si estan en el mismo nivel?
Gracias