Lo que digo es que en la función
LoadTemplate, una vez que se corroboró que
$template_name es distinto de
false, entras en una estructura
if que setea un
flag (
$loaded)... ese mismo
flag es luego la única condición para entrar a otra estructura
if donde vuelves a llamar a la función con los mismos parámetros. Es decir, en primer lugar que la segunda estructura
if (en realidad es la tercera) está de más, porque siempre que entre en la anterior entrará luego en esa. En segundo lugar, que lo que haces dentro de ésta (volver a llamar a la función) crea un flujo recursivo infinito, pues llamas a la función con
exactamente los mismos parámetros. El
break que pones no hace nada, puesto que el break sólo te permite de salir de estructuras
while,
do-while,
for,
foreach y
switch (
http://php.net/manual/en/control-structures.break.php). De todos modos, no sé si ese es el único error o hay algún otro. ¡Suerte!