Показать сообщение отдельно
Старый 27.06.2012, 15:10   #8
lyova
Продвинутый
 
Регистрация: 23.10.2008
Сообщений: 30
По умолчанию

Проблемму решил так:
В файле pi1/php/class.tx_fefilebrowser_application.php нашол массив который отвечает за метки $lang. Он попадает при создании обэкта класса class tx_fefilebrowser_application
function tx_fefilebrowser_application($action, $path, $user, $lang)
Нашол там метод который формует рабочий массив меток
PHP код:
    function setLang($lang)    {
        
$this->lang $lang;
    } 
полазил по екстеншену. в одном из файлов нашол функции что считывають ХМЛ для меток.
добавил в function setLang($lang) код
PHP код:
    function setLang($lang)    {
         
$this->lang $lang;
             
//считываю файл с метками
        
$llFile t3lib_extMgm::extPath('fefilebrowser').'/pi1/locallang.xml';
            
//пробую выбрать только для одного языка "de" ( но почему то заганяет и "default" тоже)    
            
$tmp_arr t3lib_div::readLLXMLfile($llFile"de");
            
//поєтому потом ещё раз выбираю при переборе только тот язык что нужен
            //хотел сделать чтобы выбирало в зависимости от языка
            //но почему то функция "t3lib_div::_GET('L')" здесь не работает вибирает всегда только один язык (в принцыпе мне достаточно одного языка, но всё же)
            //хотя тот же код работает когда его тестировал в файле "class.tx_fefilebrowser_pi1.php"(наверно это какие то особенности тайпо, потому что функция t3lib_div::readLLXMLfile работает, значит t3lib_div подключён )
            
if (t3lib_div::_GET('L')==1$lang_array $tmp_arr['default']; 
            else 
$lang_array $tmp_arr[de];                        
            foreach (
$lang_array as $key => $value)
            {
            
$this->lang[$key] = $value[0][target] ;
            }
            
/////////////////////////////////////////////////////////////////////////            
    

Код заработал. но наверно это можно сделать более правильно с точки зрения програмирования тайпо.

По поводу неработающей авторизации. в екстеншене в файле class.tx_fefilebrowser_pi1.php есть метод который отвечает за авторизацию
PHP код:
    function checkUser($name$password)
    {
        
$select 'uid';
        
$from_table 'fe_users';
        
$where 'username="'.$name.'" AND password="'.$password.'"';        
    
        list( 
$result ) = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows($select$from_table$where$groupBy=''$orderBy=''$limit='');

        return 
$result'uid' ];
    } 
Там пароль проверяеся простым сравнением. а в базе он закодирован. наверно нужно проверять кодировать введеный пароль какой то функцией тайпо (той же что и кодировали пароль в базе) и тогда сравнивать

Последний раз редактировалось lyova; 27.06.2012 в 16:09
lyova вне форума   Ответить с цитированием