На первый взгляд все верно. В связи с этим возникает вопрос очищали ли вы typo3conf кеш после редактирования файла ext_localconf.php.
Для примера:
ext_localconf.php
PHP код:
$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = 'EXT:user_farm_branches/hooks/class.tx_branch_tceHooks.php:&tx_branch_tceHooks';
user_farm_branches/hooks/class/tx_branch_tceHooks.php
PHP код:
<?php
class tx_branch_tceHooks {
//Хук который создает новую группу пользователей для менеджеров филиала и
//учетную запись для руководителя филиала
function processDatamap_preProcessFieldArray(&$incomingFieldArray, $table, $id, &$tce)
{
if($table == 'user_farm_branches' && substr($id, 0, 3) == 'NEW')
{
$config = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['user_farm_branches']);
$res = $GLOBALS['TYPO3_DB']->sql_query('SELECT MAX(uid) as curUid FROM `be_users`');
$curUID = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
$data = array(
"be_users" => array(
"NEW345ds45" => array(
"pid" => "0",
"username" => str_replace('###uid###', $curUID['curUid'], $config['branch_leader_template']),
"password" => md5($config['default_leader_pass']),
"disabled" => 0,
"lang" => "ru",
"usergroup" => $config['branch_leader_group'],
"usergroup_cached_list" => $config['branch_leader_group']
)
),
"be_groups" => array(
"NEW3sdf3sa" => array(
"pid" => 0,
"title" => str_replace('###branch_name###', $incomingFieldArray["name"], $config['branch_manager_template']),
"subgroup" => $config['branch_manager_parent_group']
)
)
);
$localTCE = t3lib_div::makeInstance('t3lib_TCEmain');
$localTCE->stripslashes_values = 0;
$localTCE->start($data, array());
$localTCE->process_datamap();
$incomingFieldArray['leader_id'] = $localTCE->substNEWwithIDs["NEW345ds45"];
$incomingFieldArray['group_id'] = $localTCE->substNEWwithIDs["NEW3sdf3sa"];
}
}
//Хук который создает папку для хранения csv файлов с
//информацией о ценах и остатках товаров в филиале
function processDatamap_afterDatabaseOperations($status, $table, $id, &$fieldArray, &$tce)
{
global $BE_USER, $TYPO3_CONF_VARS;
if($table == 'user_farm_branches' && $status == 'new')
{
$importDir = "branch_".$tce->substNEWwithIDs[$id].'/';
t3lib_div::mkdir_deep(PATH_site.'fileadmin/', 'import/prices/'.$importDir);
}
}
//Хук который при удалении филиала удалят связанных с ним пользователей и информацию
//о ценах и остатках товара в филиале
function processCmdmap_preProcess($command, $table, $id, $fields, &$tce)
{
if ($table == 'user_farm_branches' && $command == 'delete')
{
$branch = t3lib_BEfunc::getRecord('user_farm_branches', $id);
if (is_array($branch))
{
$cmd = array(
"be_users" => array(
$branch['leader_id'] => array(
"delete" => 1
)
),
"be_groups" =>array(
$branch['group_id'] => array(
"delete" => 1
)
)
);
$priceAndRestRecords = t3lib_BEfunc::getRecordsByField(
'user_farm_commerce_product_branch_mm',
'branch_id',
$id
);
if (is_array($priceAndRestRecords))
{
$cmd['user_farm_commerce_product_branch_mm'] = array();
foreach($priceAndRestRecords as $priceAndRestRecord)
{
$cmd['user_farm_commerce_product_branch_mm'][$priceAndRestRecord['uid']] = array(
"delete" => 1
);
}
}
$localTCE = t3lib_div::makeInstance('t3lib_TCEmain');
$localTCE->stripslashes_values = 0;
$localTCE->start(array(), $cmd);
$localTCE->process_cmdmap ();
}
}
}
}
?>