Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Php ja zend ongelma

runeberg [18.08.2010 14:35:47]

#

Hei.

Osaisko joku neuvoa missä mättää, kun yritän mun zend projektissa asettaa zend translaten globaaliksi?
Eli mulla on bootstrap.php:ssä seuraavaa:

$view = new Zend_View();

$this->bootstrap('layout');
$layout = $this->getResource('layout');
$view = $layout->getView();

$translate = new Zend_Translate('tmx', APPLICATION_PATH.'/i18n/translation.tmx', 'fi');
$translate->setLocale('fi');
$view->translate = $translate;

ja index.phtml:ssä sitä käytetään:

echo $this->translate->_('Hello');

mutta silloin antaa virheen: Call to a member function _() on a non-object
Eli jokin näkyvyystason ongelma?
Käännökset toimii hienosti, jos käytän näitä suoraan index.phtml:ssä

<?php
$translate = new Zend_Translate('tmx', APPLICATION_PATH.'/i18n/translation.tmx', 'fi');
$translate->setLocale('fi');
?>
...
<?php
echo $translate->_('Hello');
?>

Tämä ei vaan ole kovin kiva tapa tuota käytää, koska käännöksiä tarvisi paljon muuallakin.

Teuro [18.08.2010 14:40:01]

#

'$this' viittaa olioon itseensä, joten et voi käyttää sitä olion ulkopuolella. Sinun tulee käyttää juurikin tuota luotua oliota. Oliothan voi vaikka taulukoidan, jos se helpottaa asiaa.

runeberg [18.08.2010 14:48:57]

#

Koitin myös käyttää sitä index.phmtl:ssä näin:

echo $view->translate->_('Hello');

mutta ei auttanut asiaan, sama virheilmoitus.
Jossain netin ohjeissä ekana mainitulla tavalla se oli tehty ja videossakin homma toimi, mutta en saanut itsellä toimimaan.

Teuro [18.08.2010 14:52:35]

#

Onko translate siis oma olionsa? Vai onko se $view olion kantaluokan jäsenmuuttuja? Luulen, että jälkimmäinen arvaus on oikein, jolloin virheilmoitus on aivan oikeassa, koska tällöin et käytä metodia olion kautta, vaan jäsenmuuttujan kautta joka ei (tietenkään) onnistu.

tsuriga [18.08.2010 17:19:53]

#

Ongelma ratkaistu(?): http://mureakuha.com/keskustelut/2?18075

runeberg [19.08.2010 12:30:32]

#

tsuriga kirjoitti:

Ongelma ratkaistu(?): http://mureakuha.com/keskustelut/2?18075

Kyllä, ongelma ratkaistu. Unohtui mainita siitä tänne.
Kiitoksia kaikille!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta