Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Разработка расширений / TYPO3 extension development (http://forum.typo3.ru/forumdisplay.php?f=38)
-   -   TYPO3 6: Лучшие практики создания расширения (http://forum.typo3.ru/showthread.php?t=10510)

uoziod 14.12.2012 17:06

TYPO3 6: Лучшие практики создания расширения
 
Поставил старое расширение на TYPO3 6.

Обнаружилась проблема с Call to undefined method TYPO3\\CMS\\Core\\Utility\\GeneralUtility::readLLX MLfile()

Поправил
Код:

$LOCAL_LANG = t3lib_div::readLLXMLfile($llFile, $GLOBALS['LANG']->lang);
на
Код:

$LOCAL_LANG = t3lib_l10n_parser_Llxml::getParsedData($llFile, $GLOBALS['LANG']->lang);
Однако обнаружилась более загадочная ошибка:

Call to undefined method tx_smth_pi1_wizicon::getCharset() in /var/www/typo3_src-6.0.0/typo3/sysext/core/Classes/Localization/Parser/LocallangXmlParser.php on line 54, referer: http://localhost/typo3/sysext/cms/la...ayout.php?id=2

И я без идей уже куда с этим...

Кстати, kickstarter исчез...

Вообще вопрос можно сформулировать проще так:

Кто-нибудь знает, где найти самую актуальную болванку для расширения? :)

uoziod 14.12.2012 18:46

Решение проблемы было найдено (в одном из недавно загруженных расширений) и оно весьма изящно! Вообще если у кого всё-таки будут идеи касательно того где искать такие решения более документированные и централизованно, предлагаю делиться ссылками тут.

Итак! Файл pi1/class.tx_smth_pi1_wizicon.php расширения из-за которого всё переставало работать в TYPO3 6. В данном примере этот скрипт является универсальным для всех TYPO3 от 4 до 6:

PHP код:

...

class 
tx_smth_pi1_wizicon {

    
/**
     * Processing the wizard items array
     *
     * @param    array        $wizardItems: The wizard items
     * @return    Modified        array with wizard items
     */
    
function proc($wizardItems)    {
        global 
$LANG;

        
$LL $this->includeLocalLang();
        
$wizardItems['plugins_tx_smth_pi1'] = array(
            
'icon'=>t3lib_extMgm::extRelPath('smth').'pi1/ce_wiz.gif',
            
'title'=>$LANG->getLLL('pi1_title',$LL),
            
'description'=>$LANG->getLLL('pi1_plus_wiz_description',$LL),
            
'params'=>'&defVals[tt_content][CType]=list&defVals[tt_content][list_type]=tx_smth_pi1'
        
);

        return 
$wizardItems;
    }

    
/**
    * Reads the [extDir]/locallang.xml and returns the $LOCAL_LANG array found in that file.
    *
    * @return    The        array with language labels
    */
    
function includeLocalLang()    {
        
$llFile t3lib_extMgm::extPath('smth').'locallang.xml';
                        
        
$version =     class_exists('t3lib_utility_VersionNumber')
                    ? 
t3lib_utility_VersionNumber::convertVersionNumberToInteger(TYPO3_version)
                    : 
t3lib_div::int_from_ver(TYPO3_version);
        if (
$version >= 4007000) {
                
$object t3lib_div::makeInstance('t3lib_l10n_parser_Llxml');
                
$LOCAL_LANG =  $object->getParsedData($llFile$GLOBALS['LANG']->lang);
        } else
            
$LOCAL_LANG =  t3lib_div::readLLXMLfile($llFile$GLOBALS['LANG']->lang);
                        
        return 
$LOCAL_LANG;
    }

}

... 



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

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