setData ()

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Роман Цегинька
  • Группа: Заблокирован
  • Сообщений: 95
  • Регистрация: 01.08.2011

19.09.2011 16:20

Привет. У меня следующий вопрос. Где мне найти функцию setData (). Поэтому как модуль форума который я установил на стандартный теме Магента работает нормально. Однако на моей, выдает ошибку что не может найти данную функцыю. Как мне ее найти, чтобы прописать в сам модуль? Всем спасибо!

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

19.09.2011 20:20

Данный метод находится в классе Varien_Object

#3 Роман Цегинька
  • Группа: Заблокирован
  • Сообщений: 95
  • Регистрация: 01.08.2011

20.09.2011 12:11

Дмитрий, вы действительно профисионал в маженто. Большое вам спасибо за ответ.

#4 Роман Цегинька
  • Группа: Заблокирован
  • Сообщений: 95
  • Регистрация: 01.08.2011

20.09.2011 12:42

Но к сожалению даже после замены этого файла с данной функцией ошыбка не исчезла. Оно никак не может подгрузит весь файл обекта.
  public function indexAction()
  {
    $this->loadLayout();
    $block = $this->getLayout()->getBlock('mainForum');
    $categories = Mage::getModel('forum/category')->getCollection()->addFrontendFilter();
    $block->setData('categories', $categories);
    
    $this->_initLayoutMessages('customer/session');
    $this->_initLayoutMessages('catalog/session');
    $this->renderLayout();
  } 

ошибка здесь $block->setData('categories', $categories);

#5 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

20.09.2011 13:14

Системные файлы менять не надо.

#6 Роман Цегинька
  • Группа: Заблокирован
  • Сообщений: 95
  • Регистрация: 01.08.2011

20.09.2011 13:16

Ну если это и делали то это сделал не я. Но исправлять надо мне. Что посоветуете в данном случае?

#7 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

20.09.2011 13:18

Если у вас есть подозрения, что кто-то менял системные файлы - сравните программный код сайта с эталонным программным кодом для вашей версии Magento.

#8 Роман Цегинька
  • Группа: Заблокирован
  • Сообщений: 95
  • Регистрация: 01.08.2011

20.09.2011 13:25

Здесь немножко другая ситуацыя я знаю что код могут менять. Так как сайт не мой я только ищу данную ошибку. Я уже заменил ядро сайта на стандартный и добавил все стандартные зендовськи библиотеки. Однако ситуация не изменилась при том что на Денвере в стандартной версии этот форум работает нормально.

#9 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

20.09.2011 13:32

Используйте указанный выше метод нахождения нестандартных доработок для их последующего анализа.

#10 Роман Цегинька
  • Группа: Заблокирован
  • Сообщений: 95
  • Регистрация: 01.08.2011

20.09.2011 13:50

Да с кодом вроде все нормально. Возможно дело в том что файл Varien / Object.php НЕ подгружается. Как я мог заставить его загружаться в автолоад. А то код не видит никакой функции библиотеки?

#11 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

20.09.2011 13:57

Какое конкретно дтагностическое сообщение пишет интерпретатор PHP?

#12 Роман Цегинька
  • Группа: Заблокирован
  • Сообщений: 95
  • Регистрация: 01.08.2011

20.09.2011 14:07

А как же можно сверить код Магента интерпретатором PHP? А тоя сли честно я не в курсе?

#13 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

20.09.2011 14:08

Для сравнения программного кода имеются специальные инструменты типа Araxis Merge.

#14 Роман Цегинька
  • Группа: Заблокирован
  • Сообщений: 95
  • Регистрация: 01.08.2011

20.09.2011 17:58

Спасибо за подсказку.

#15 Зафар
  • Группа: Пользователь
  • Сообщений: 7
  • Регистрация: 26.09.2011

26.09.2011 19:13

Прочитав цепочку, мне кажется что ошибка на самом деле не на отсутствие метода setData.

Скорей всего PHP вам выдал ошибку типа: PHP Fatal error: Call to a member function setData() on a non-object ... и т.д.

Если так, то все проще.

$block = $this->getLayout()->getBlock('mainForum');


Возможно после выше указанной строчки, переменная $block является False, т.к. Объект Layout не нашел блока с именем mainForum.

Поделиться темой: