PDA

Просмотр полной версии : какой хук? hook


German
16.06.2010, 14:39
какой стандартный хук необходимо использовать для вызова своих функций во время сохранения данных на странице???

пытался использовать это:
ext_localconf.php :
$GLOBALS['$TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = 'EXT:asb_header/pi1/class.tx_asbheader_pi1.php:&tx_asbheader_pi1';

class.tx_asbheader_pi1.php:

class tx_asbheader_pi1 extends tslib_pibase {
...
...
function processDatamap_postProcessFieldArray($status, $table, $id, &$fieldArray, &$reference) {
echo 'HOOOOOOOOOOOOOOK';die;
}
...
...
но по не понятным причинам ничего таким образом не работает((

reva2
26.06.2010, 13:44
На первый взгляд все верно. В связи с этим возникает вопрос очищали ли вы typo3conf кеш после редактирования файла ext_localconf.php.

Для примера:

ext_localconf.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
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 ();
}
}
}
}
?>