Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   Не работает разширение в typo3 4.7 (http://forum.typo3.ru/showthread.php?t=10192)

lyova 25.06.2012 01:53

Не работает разширение в typo3 4.7
 
Здраствуйте!
У меня такая проблемма. На typo 4.7 ставлю екстеншен fefilebrowser. (файловый менеджер). Первая проблема была: не проходила авторизация на первой странице екстеншена. видимо в новой версии тайпо что то поменялось. Поставил на той же странице felogin. Когда захожу через него, то екстеншен принимаєт, пускает в робочую область. И всё работает. Но, есть одно но. Все текстовые надписи (Label) не отображаються, вместо каждого из них пишется табое: "[object Object]:". Видимо оно почему то не хочет принимать данные из locallang. Хотя там всё есть как обычно. Может в тайпо 4.7 какой то другой принцып подключения их? По тому что в тайпо 4.5 этот екстеншен работает без проблем. Наверно надо чтото править в екстеншене. Было ли у кого такое? Может в других екстеншенах? Что такое эта надпись "[object Object]:"? Может оно не может какой то обьэкт побключить?

Андрей Аксенов 25.06.2012 12:03

При переходе на новую версию, следует прочитать, что в ней изменилось, и руководство по обновлению...
- авторизация изменилась
- работа с языковыми метками поменялась
Что и как, читайте.

lyova 25.06.2012 15:39

Спасибо за ваш ответ и за статью. По ней я создал файлы locallang.xlf и de.locallang.xlf. Они должны автоматически подхватываться тайпо или нужно в екстеншене переписывать функции вызова меток?

Андрей Аксенов 25.06.2012 15:48

Должны подхватываться автоматом, но в расширении могут использоваться "устаревшие" функции. Тут уже придется разбираться с расширением либо самостоятельно, либо написать автору и ждать реакции...
Вообщем попробуйте очистить временные файлы и запустите расширение... А там видно будет.

lyova 25.06.2012 15:57

Спасибо за ответ. Я сделал так. Создал просто файл болванку
PHP код:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<xliff version="1.0">
  <file source-language="en" datatype="plaintext" original="messages" date="2011-10-17T20:22:32Z" product-name="fefilebrowser" target-language="de">
        <header/>
        <body>
            
        </body>
    </file>
</xliff>

После этого надписи "[object Object]:" пропали. Видимо оно сам файл приняло.
Теперь добавляю описание одной метки
PHP код:

            <trans-unit id="treeHeadd" xml:space="preserve"  approved="yes" >
            <
source>Explorer</source>
            <
target  state="translated">Explorer</target>
            </
trans-unit

Вместо именно этой метки снова появляются "[object Object]:".

Андрей Аксенов 25.06.2012 16:03

А для чего все эти сложности? Разве нельзя установить это расширение, перевести все метки, если они еще не переведены, и работать с ним как обычно?
К тому же, расширение конечно интересное, но уже два года пребывает в состоянии альфа-разработки... Подозреваю, что его забросили, и придется дорабатывать все что не действует самому. А стоит ли?

lyova 25.06.2012 16:12

В том то и дело что это "[object Object]:" выводилось и для дефолтного языка тоже. Если бы хотя для него работало то я бы просто перевёл метки. Хотелось бы именно это расширение запустить. решить проблему. или хотя бы разобраться почему что оно не работает. Может подобная ситуация случится и с другими екстеншенами. Что интересно, то сам екстеншен работает нормально. Если знать какой "[object Object]:" чему соответствует.

lyova 27.06.2012 15:10

Проблемму решил так:
В файле 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' ];
    } 

Там пароль проверяеся простым сравнением. а в базе он закодирован. наверно нужно проверять кодировать введеный пароль какой то функцией тайпо (той же что и кодировали пароль в базе) и тогда сравнивать


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

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