public function testSetPoly() { T::setLang('fr'); $t = DB_DataObject::factory('formtest'); $t->get('2'); $arr = array('fr' => 'Elt2 FR', 'en' => 'Elt2 EN', 'es' => 'Elt2 ES'); $t->getPlugin('international')->setPoly($t, 'titre', $arr); $t = DB_DataObject::factory('formtest'); $t->get('2'); $this->assertTrue($t->titre, 'Elt2 FR'); // Test that other fields are not affected $this->assertEqual('Test de description élément 2 (en français)', $t->description); // Test that other langs are affected T::setLang('en'); $t = DB_DataObject::factory('formtest'); $t->get('2'); $this->assertTrue($t->titre, 'Elt2 EN'); T::setLang('es'); $t = DB_DataObject::factory('formtest'); $t->get('2'); $this->assertTrue($t->titre, 'Elt2 ES'); // Test that other records are not affected T::setLang('en'); $t = DB_DataObject::factory('formtest'); $t->get(1); $this->assertEqual('element one', $t->titre); }
public static function bootstrap() { $paths[] = APP_ROOT . 'app/_shared/'; $paths[] = APP_ROOT . 'app/' . APP_NAME . '/'; $paths[] = APP_ROOT . 'app/'; set_include_path(get_include_path() . ':' . implode(':', $paths)); if (defined('E_DEPRECATED')) { ini_set('error_reporting', E_ALL & ~E_STRICT & ~E_NOTICE & ~E_DEPRECATED); } else { ini_set('error_reporting', E_ALL & ~E_STRICT & ~E_NOTICE); } switch (MODE) { case 'development': ini_set('display_errors', 1); $caching = false; break; case 'test': ini_set('display_errors', 1); $caching = false; break; case 'production': ini_set('display_errors', 0); $caching = true; break; } T::setConfig(array('path' => APP_ROOT . 'app/' . APP_NAME . '/lang/', 'encoding' => 'utf8', 'saveresult' => false, 'driver' => 'reader', 'autoexpire' => MODE == 'development')); if (!defined('DEFAULT_LANG')) { define('DEFAULT_LANG', 'en'); } M::addPath('lang', dirname(__FILE__) . '/lang/'); $lang = $_REQUEST['lang'] ? $_REQUEST['lang'] : DEFAULT_LANG; T::setLang($lang); M::addPath('templates', APP_ROOT . 'app/_shared/templates/'); M::addPath('templates', APP_ROOT . 'app/' . APP_NAME . '/templates/'); M::addPath('modules', 'modules'); M::addPath('plugins', realpath(dirname(__FILE__))); M::addPath('plugins', APP_ROOT . 'app/'); $opt =& PEAR::getStaticProperty('Module', 'global'); $opt['caching'] = $caching; $opt['cacheDir'] = APP_ROOT . 'app/' . APP_NAME . '/cache/'; $opt['cacheTime'] = 7200; $dispatchopt =& PEAR::getStaticProperty('Dispatcher', 'global'); $dispatchopt['all']['loginmodule'] = 'user'; $dispatchopt['all']['loginaction'] = 'login'; $dispatchopt['all']['modulepath'] = array('modules'); require APP_ROOT . 'app/setup.php'; $setup = new M_setup(); spl_autoload_register('M::m_autoload_db_dataobject'); Mreg::set('setup', $setup); }
public function migration_copyDataToL10n($obj, $iname) { $info = $obj->_getPluginsDef(); $info = $info['l10n']; $db = $obj->getDatabaseConnection(); foreach (Config::getAllLangs() as $lang) { T::setLang($lang); $original = DB_DataObject::factory($obj->tableName()); $original->unloadPlugin('international'); $ifields = $info; unset($original->l10nFields); $original->find(); $fieldsToInsert = array_merge(array('l10n_lang', 'l10n_record_id'), $ifields); foreach ($fieldsToInsert as $k => $field) { $fieldsToInsert[$k] = $db->quoteIdentifier($field); } while ($original->fetch()) { echo 'fetching record num ' . $original->pk() . "\n"; $valuesToInsert = array(); foreach ($ifields as $field) { if (is_numeric($original->{$field})) { $valuesToInsert[] = $original->{$field}; // This might never happen... we never know } else { $valuesToInsert[] = $db->quote($original->{$field}); } } $valuesToInsert = array_merge(array($db->quote($lang), $db->quote($original->pk())), $valuesToInsert); $res = $db->query('INSERT INTO ' . $db->quoteIdentifier($iname) . ' (' . implode(',', $fieldsToInsert) . ') VALUES(' . implode(',', $valuesToInsert) . ')'); if (PEAR::isError($res)) { $nbfailed[$lang]++; } } } if (is_array($nbfailed)) { echo 'Failures while trying to insert translated data :<br />'; foreach ($nbfailed as $lang => $nb) { echo $lang . ' : ' . $nb . '<br />'; } echo '<br /><br />'; } return true; }