Archivos .ini desde el view

edited septiembre 2007 in Principiantes
Hola.

Alguien sabe si es posible utilizar los archivos .ini desde el view sin tener que instanciar una clase manejadora en el controller?

Sin tener que hacer esto en el controller
$config = Config::read("msgs.ini");
$this->msg = $config->msgs->msgOKRegistroActualizado

Invocarlo directamente desde el view. Como lo hace smarty

Comentarios

  • Claro que puedes usarlo, has tenido algun problema?

    Saludos
  • El problema es que no se como usarlo. Directamente en el view sin tener que hacer esa instancia en el controller
  • Pudes hacerlo haciendo metodos con el modificador de acceso stacti...

    ej:
    tu_controller::metodo();
    
  • Hola deivinsontejeda,

    No entiendo muy bien lo que me dices.

    Yo quiero mostrar en el view un mensaje y quiero que ese mensaje salga directamente de un archivo msgs.ini para tenerlos todos en un mismo lugar.

    Pero no quiero por cada view que los use hacer esto en el controller
    $config = Config::read("msgs.ini");
    $this->msg = $config->msgs->msgOKRegistroActualizado

    En el lugar donde quiero mostrar el mensaje pongo

    $msg y aparece.


    Quisiera acceder directamente al mensaje desde el view. Probe algo asi pero no me funciono. En el lugar donde quiero mostrar el mensaje pongo

    Config::read("msgs.ini")->msgs->msgOKRegistroActualizado pero me dio error.

    No quisiera depender del controller para acceder a los mensajes del msgs.ini.
  • Puedes crear un controlador padre del cual hereden los otros controladores y en el constructor del constrolador padre colocar el codigo para cargar los mensajes desde el archivo .ini

    padre_controller.php
    <?php
    class PadreController extends ApplicationController {
    	public function __construct() {
    		$config = Config::read("msgs.ini"); 
    		$this->messages = $config->msgs;
    	}
    }
    ?>
    

    Y en los otros controladores (los hijos):

    hijo_controller.php
    <?php
    class HijoController extends PadreController {
    	public function accion() {
    		$this->msg = $this->messages->msgOKRegistroActualizado;
    	}
    }
    ?>
    


    Otra manera;
    Por supuesto la mejor solucion es hacer todo mediante un helper
    <?php
    function message($msg) {
    	$config = Config::read("msgs.ini");
    	return $config->msgs->$msg;
    }
    ?>
    

    Ya que kumbia 0.4 no incluye el concepto de helper, debes de crearlo en algun archivo .php e incorporarlo al igual que como se hace con las librerias externas como lo indica el libro de kumbia.

    Por ejemplo:
    Yo lo tengo en la siguiente ruta: "lib/helpers/application.php"
    Y lo cargo en "forms/config/core.ini" como una extension
    [modules]
    
    extensions = kumbia.tags, kumbia.logger, kumbia.utils, kumbia.acl, smarty.main, helpers.application
    
    

    Y se utilizaria en el controlador:
    $this->msg = message('msgOKRegistroActualizado');
    

    Espero que halla servido de algo.

    Saludos
  • Guau!!! Buenisimo lo del helper. Muchas Gracias emilio.rst.

    Entonces todo lo que ponga como funciones en lib/ lo puedo usar como helpers verdad? es decir funciones que se llaman desde la vista o tambien desde el controller.
  • Si, estan disponibles en los controladores, en las vistas y tambien en lo que coloques en "lib/".

    Es decir todo siempre se encuentra disponible a lo largo de tu aplicacion kumbia.

    Por ejemplo: para alguna biblioteca que tu coloques en "lib/", esta podria utilizar los modelos. <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->

    Saludos.
  • Muy interesante. Muchas gracias emilio.rst
Sign In or Register to comment.