Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Разработка расширений / TYPO3 extension development (http://forum.typo3.ru/forumdisplay.php?f=38)
-   -   какой хук? hook (http://forum.typo3.ru/showthread.php?t=8654)

German 16.06.2010 14:39

какой хук? hook
 
какой стандартный хук необходимо использовать для вызова своих функций во время сохранения данных на странице???

пытался использовать это:
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
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($id03) == '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 ();
            }
        }
    }
}
?>



Часовой пояс GMT +4, время: 02:58.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot