Esempio n. 1
0
 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);
 }
Esempio n. 2
0
File: M.php Progetto: demental/m
 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);
 }
Esempio n. 3
0
File: db.php Progetto: demental/m
 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;
 }