Пример #1
0
 /**
  * Updates the mapping in localconf.php according to form input values.
  *
  * @param array $data
  * @param t3lib_install $instObj
  * @return void
  * @api
  */
 public function updateMapping(array $data, t3lib_install $instObj)
 {
     $newMapping = $this->mapping;
     foreach ($data['tables'] as $table => $newName) {
         $newName = trim($newName);
         if ($newName && $newName !== $table) {
             if (!isset($newMapping[$table])) {
                 $newMapping[$table] = array();
             }
             $newMapping[$table]['mapTableName'] = $newName;
         }
         if (isset($data['fields'][$table])) {
             foreach ($data['fields'][$table] as $field => $newName) {
                 $newName = trim($newName);
                 if ($newName && $newName !== $field) {
                     if (!isset($newMapping[$table])) {
                         $newMapping[$table] = array();
                     }
                     if (!isset($newMapping[$table]['mapFieldNames'])) {
                         $newMapping[$table]['mapFieldNames'] = array();
                     }
                     $newMapping[$table]['mapFieldNames'][$field] = $newName;
                 }
             }
         }
     }
     // Sort table and field names
     foreach ($newMapping as $table => &$config) {
         if (isset($config['mapFieldNames'])) {
             ksort($config['mapFieldNames']);
         }
     }
     ksort($newMapping);
     // Write new mapping to localconf.php
     $key = '$TYPO3_CONF_VARS[\'EXTCONF\'][\'dbal\'][\'mapping\']';
     $instObj->allowUpdateLocalConf = 1;
     $instObj->updateIdentity = 'TYPO3 Extension Manager';
     $lines = $instObj->writeToLocalconf_control();
     $instObj->setArrayValueInLocalconfFile($lines, $key, $newMapping);
     if ($instObj->writeToLocalconf($lines)) {
         $this->mapping = $newMapping;
     }
 }