Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 22.09.2006, 00:48   #1
Boris
Продвинутый
 
Регистрация: 15.02.2005
Сообщений: 50
Question Проблема с subclassing

Не могу понять в чём проблема.
Раньше делал subclassing для плагинов и для t3lib

Сегодня надо было добавить свою дополнительную методу для mc_googlesitemap

Сделал как обычно, в ext_localconf.php прописал:
PHP код:
$TYPO3_CONF_VARS['FE']['XCLASS']['ext/mc_googlesitemap/class.tx_mcgooglesitemap_base.php'] = t3lib_extMgm::extPath($_EXTKEY,'class.ux_tx_mcgooglesitemap_base.php'); 
Создал ux_tx_mcgooglesitemap_base.php и в нем:
PHP код:
<?
class ux_tx_mcgooglesitemap_base extends tx_mcgooglesitemap_base {
 
//Изменённая метода базового класса
function sitemapContent($array=array()) { 
t3lib_div::debug('sitemapContent');
if ( 
count($array) == ) { $array=$this->cObj->data; }
if ( 
$array['tx_mcgooglesitemap_objective'] == "tt_ipcshop" ) { 
return 
$this->sitemapMyExt($array); 
}else{
parent::sitemapContent($array);
}
}
 
//Дополнительная метода 
function sitemapMyExt($array=array()) {
t3lib_div::debug('sitemapIPCshop');
}
}
Но методы моего класса вообще не вызываются.

Для теста изменяю название базового класса:
PHP код:
class ux_tx_mcgooglesitemap_base extends tx_mcgooglesitemap_base2 
Выдаётся ошибка - класс не найден

Может кто-нибудь подскажет, где собака зарыта?

Последний раз редактировалось Boris; 22.09.2006 в 01:41
Boris вне форума   Ответить с цитированием
Старый 22.09.2006, 12:10   #2
Дмитрий Самойлов
Продвинутый
 
Регистрация: 28.03.2005
Сообщений: 78
Отправить сообщение для Дмитрий Самойлов с помощью ICQ Отправить сообщение для Дмитрий Самойлов с помощью Skype™
По умолчанию

Попробуй в начале ( перед class ux_tx_mcgooglesitemap_base ...) дописать нечто следующее
require_once(t3lib_extMgm::extPath('mc_googlesitem ap').'class.tx_mcgooglesitemap_base.php');
или
require_once(t3lib_extMgm::extPath('mc_googlesitem ap').'pi1/class.tx_mcgooglesitemap_base.php');

в зависимости от того где находится class.tx_mcgooglesitemap_base.php
Дмитрий Самойлов вне форума   Ответить с цитированием
Старый 22.09.2006, 12:35   #3
Boris
Продвинутый
 
Регистрация: 15.02.2005
Сообщений: 50
По умолчанию

не помогает

А вообще зачем ето прописывать?
Ведь в class.tx_mcgooglesitemap_base.php прописано:
PHP код:
if (defined("TYPO3_MODE") && $TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/mc_googlesitemap/class.tx_mcgooglesitemap_base.php"])
{
include_once (
$TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/mc_googlesitemap/class.tx_mcgooglesitemap_base.php"]);


Последний раз редактировалось Boris; 22.09.2006 в 12:54
Boris вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


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


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

Хостинг и техническая поддержка: TYPO3 Лаборатория