Eu dei uma estudada mais aprofundada no CI e a classe Loader e a que
instancia todas as outras por isso nao funciona
pois ate as sessions nao estao instanciadas ainda. Ou seja, estou tentando
acessar algo que ainda nao foi declarado ou instanciado,
e ai que estava o problema.
Vou ter de estudar mais para ver se e possivel implementar isso, pois
infelizmente, apenas nessa classe e possivale alterar
o diretorio das views para criar uma infra estrutura de templates /views
para /templattes/template1 etc.
A coisa e mais da estrutura do CodeIgniter do que de orientacao a objeto
alguem tem alguma
ideia de como contornar essa situacao.
minha necessidade e verificar no __construct() da classe MY_Load
se existe um valor definido para a variavel de sessao 'language' para
carregar
as views traduzidas no idioma que esta na session.
Via config.php ele funciona, mas como nao consigo instanciar a classe
sessions na MY_Loader
ele sempre retorna vazio usando $_SESSION['language'].
E infelizmente, pelo que vi essa e a unica forma de alterar a localizacao e
nome do diretorio de views
alterando a variavel $this->_ci_view_path = 'caminho/path/views'; no
construct da classe MY_Loader
correto? Ou ha outra forma?
Abcs.
-----------------------------------------------------------------------------------
A titulo de curiosidade segue a funcao final que ficou dentro da classe
MY_Loader
Eu consigo acessar normalmente a session, mas como ela e instanciada antes
da classe de
sessions do CodeIgniter, ela acaba sendo uma sessao diferente.
Vou tentar pegar os parametros de config da session no arquivo de
configuracao e iniciar a sessao com eles para
ver se funciona.
public function get_config_value($conf = '')
{
//Se nao foi definido o valor a ser localizado
if ($conf == '' ) return FALSE;
//Verifica a configuracao esta setada via sessions
if ( isset($_SESSION[$conf])){
return $_SESSION[$conf];
}
//verifica se esta setado via config.php
else {
$config =& get_config();
if (isset( $config[$conf]))
return $config[$conf];
else return FALSE; //se nao achou nenhum valor retorna false
}
*
*
*Pablo Augusto
SEO | SEM | Marketing Digital
*
*Me siga no Twitter:* @pabloaugusto <http://twitter.com/pabloaugusto>
*Artigos sobre Otimização de sites <http://webtags.com.br/seo>, Marteking
Digital e Mídias Sociais:* WebTags <http://webtags.com.br>
MSN: [email protected]
SKYPE: [email protected]
EMAIL: [email protected]
[image: Linkedin] <http://linkedin.com/in/pabloaugusto> [image:
Twitter]<http://twitter.com/pabloaugusto>
[image: Facebook] <http://facebook.com/pabloaugusto> [image:
Flickr]<http://flickr.com/photos/pabloaugusto> [image:
Youtube] <http://youtube.com/pabloaugustoo> [image:
FormSpring]<http://formspring.me/opabloaugusto> [image:
LastFM] <http://lastfm.com.br/user/pabloaugustoo> [image:
DeviantART]<http://deviantart.com/pabloaugustoo> [image:
Tumblr] <http://pabloaugusto.tumblr.com/> [image:
Vimeo]<http://vimeo.com/pabloaugusto> [image:
del.icio.us] <http://del.icio.us/pabloaugusto> [image:
Slideshare]<http://slideshare.net/pabloaugusto> [image:
Friendfeed] <http://friendfeed.com/pabloaugusto>
2011/2/27 [email protected] <[email protected]>
Pablo,
>
> Esse erro ocorre quando vc faz uma chamada $this fora do contexto de uma
> classe ou numa chamada estática ao método. No seu caso está ocorrendo a
> primeira hipótese, ou seja, sua função não está definida no escopo de uma
> classe.
>
> A solução para isso é simples. Você deve inserir o objeto $session no
> escopo da função usando o globals ou passa-lo como parâmetro. E,
> evidentemente, retirar o $this da jogada.
>
> Assim:
> function get_sconfig($conf = '')
> {
> global $session;
> ...
>
> //Verifica a configuracao esta setada via sessions
> $resp = $session->userdata($conf);
> ...
>
> ou assim:
> function get_sconfig($conf = '', $session)
> {
> ...
>
> //Verifica a configuracao esta setada via sessions
> $resp = $session->userdata($conf);
> ...
>
> Abraço,
>
> --
> Iuri Jacob
> Engenheiro de Software
> IMPA - Instituto de Matemática Pura e Aplicada
> http://www.iurijacob.com.br/
> http://br.linkedin.com/in/iurijacob
> http://twitter.com/#!/iurijacob
>
> Tecnologia no Século XXI
> http://www.bytecodex.com/blog/
>
>
> Em 26 de fevereiro de 2011 20:50, Pablo Augusto
> <[email protected]>escreveu:
>
>> Boa noite pessoal, veja se alguem tem uma ideia de como resolver esse
>> problema.
>>
>> Estou fazendo uma funcao para o Code Igniter 2 para checar se um valor de
>> configuracao
>> esta definido via sessions e via config.php.
>>
>> Quanto vou checar se o valor passado por parametro na chamada da funcao
>> esta disponivel
>> na session o seguinte erro ocorre:
>>
>> *Fatal error*: Using $this when not in object context in *
>> D:\xampp\htdocs\XXXXXXX\application\core\MY_Loader.php* on line *34*
>> *
>> *
>> A linha 34 e justamente essa, aonde eu pego o valor do parametro $conf e
>> tento recuperar o valor que esta na session:
>> *$resp = $this->session->userdata($conf);*
>>
>> A chamada da funcao esta sendo feita da seguinte forma
>> *$view_path = get_sconfig('view_path');*
>>
>>
>> Qual seria o problema, o this nao esta instanciado ainda na chamada do
>> MY_loader?
>> Como poderia fazer essa funcao para checar se a variavel esta na session
>> ou no config file entao?
>>
>> Abcs
>>
>> --------------------------------------------------------------------------------------------
>> Segue abaixo a funcao completa para elucidar todo cenário.
>>
>> function get_sconfig($conf = '')
>> {
>> //Se nao foi definido o valor a ser localizado
>> if ($conf == '' ) return FALSE;
>>
>> //Verifica a configuracao esta setada via sessions
>> $resp = $this->session->userdata($conf);
>> $resp = (! isset($resp)) ? '' : $resp;
>>
>> //Se nao esta setada via sessions verifica se esta setado via
>> config.php
>> if ($resp == '')
>> {
>> $resp = $config[$conf];
>> $resp = (! isset($resp)) ? '' : $resp;
>> }
>>
>> //Se conseguiu localizar um valor definido para a configuracao retorna ele
>> //senao retorna false
>> if ($resp == '') return FALSE;
>> else return $resp;
>> }
>>
>>
>>
>> *
>> *
>> *Pablo Augusto
>> SEO | SEM | Marketing Digital
>>
>> *
>> *Me siga no Twitter:* @pabloaugusto <http://twitter.com/pabloaugusto>
>> *Artigos sobre Otimização de sites <http://webtags.com.br/seo>, Marteking
>> Digital e Mídias Sociais:* WebTags <http://webtags.com.br>
>> MSN: [email protected]
>> SKYPE: [email protected]
>> EMAIL: [email protected]
>>
>> [image: Linkedin] <http://linkedin.com/in/pabloaugusto> [image:
>> Twitter]<http://twitter.com/pabloaugusto>
>> [image: Facebook] <http://facebook.com/pabloaugusto> [image:
>> Flickr]<http://flickr.com/photos/pabloaugusto> [image:
>> Youtube] <http://youtube.com/pabloaugustoo> [image:
>> FormSpring]<http://formspring.me/opabloaugusto> [image:
>> LastFM] <http://lastfm.com.br/user/pabloaugustoo> [image:
>> DeviantART]<http://deviantart.com/pabloaugustoo> [image:
>> Tumblr] <http://pabloaugusto.tumblr.com/> [image:
>> Vimeo]<http://vimeo.com/pabloaugusto> [image:
>> del.icio.us] <http://del.icio.us/pabloaugusto> [image:
>> Slideshare]<http://slideshare.net/pabloaugusto> [image:
>> Friendfeed] <http://friendfeed.com/pabloaugusto>
>>
>> --
>> http://www.phprio.org/
>> Pedidos de Camisetas:
>> http://sites.google.com/a/phprio.org/index/camisetas
>> Pedidos de Elephpants:
>> http://sites.google.com/a/phprio.org/index/elephant
>>
>
>
> --
> http://www.phprio.org/
> Pedidos de Camisetas: http://sites.google.com/a/phprio.org/index/camisetas
> Pedidos de Elephpants: http://sites.google.com/a/phprio.org/index/elephant
>
_______________________________________________
[email protected]
http://www.codeigniter.com.br
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------