Recuerda el flujo de MVC, es Modelo Vista Controlador, si ves el diagrama:
La vista puede consultar directamente al modelo sin ningún problema, ya que esa es la idea, que el flujo sea así:
- El controlador analiza el input y decide que vista/modelo cargar
- El controlador puede informar al modelo de algún cambio que venga del input
- El controlador pasa el modelo a la vista
- La vista toma al modelo y lo despliega de la forma que el usuario decidió (output)
Eso es en un alto flujo, posteriormente lo que tu quieres hacer se conoce como Widgets lo cual es perfectamente válido, ya que estas respetando al modelo / vista, y lo mejor es que esos helpers esten directamente incrustados en la vista, así te evitas tener que repetir en cada controlador que helpers vas a utilizar, solamente en la vista, cargas el helper/Widget y lo invocas para mostrar el resultado que necesitas en tu template.
Saludos.