Me gustó en terminos generales.
Buena documentación .. usa un motor de templates "standard" y una capa de abstracción para tus BD. Está bien estructurado y hace lo que dice.
Lo que no sé es por qué defines tantas variables como globales:
Código PHP:
global $cms_version, $_SESSION, $masterlogin, $guests;
Sobre todo $_SESSION que de por sí es una variable "superglobal" .. es decir, su ambito es global incluso en una llamada desde una función tuya.
En otras partes defines desde PHP .. contenido HTML/javascript/etc que debería ir como parte de la template. Según mi opinión aunque esto implique más variabels PHP que gestionar y sobre todo para "condicionales" de "o muestro ese HTML o no" implicaría muchas más definiciones de bloques y llamadas a estos ...
Código PHP:
$t->set_var(array( .......
"LOGOUT" => "<B><a href='index.php?action=logout'>Salir</a> | <a href='index.php'>Inicio</a> </B>"
));
Sería más configurable si cabe si todo eso estubiera en la template y sólo mandes la variable o dato en sí que es generado desde PHP o gestionado por PHP.
Lo que tampoco veo .. Si bien usas el array superglobal $_SESSION para trabajar las variables de sesión .. No veo como capturas las variabels que propagas en links o formularios .. es decir $_GET, $_POST siguiendo la misma filosofía de $_SESSION. (corrigeme si me equivoco).
El hecho es que .. si no lo usas tu CMS no funcionará correctamente bajo configuraciones de register_globals a OFF .. Siendo que .. si tu código lo usase podría ser más seguro.
No me quedó claro que sistema de gestión de usuarios usa. ¿ Es sólo un administrador el que puede publicar y administrar el sitio?. Si es así .. para una versión "4" .. estaría bueno integrar un sistema de usuarios con niveles de acceso para administrar/publicar en el sitio.
Estaría bueno tener disponible una demo en linea (live xD) para la sección de administración.
Un saludo,