Расширение модуля сообщества - Вход в Facebook Inchoo
Я хотел бы расширить модуль сообщества. Тот, на который я ссылаюсь, - это Вход в Facebook Inchoo.
Этот модуль имеет класс под названием Inchoo_Facebook_Block_Template
, и один из методов класса:
public function getRequiredPermissions()
{
return json_encode('email,user_birthday');
}
Я хотел бы создать модуль, который "расширяет" (это правильный термин в Magento?) этот класс и изменяет то, что возвращает описанный выше метод. В данный момент я редактирую метод непосредственно для выполнения своей задачи и изменяю вышеуказанный метод кому:
public function getRequiredPermissions()
{
return json_encode('email,user_birthday,friends_birthday,user_photos,friends_photos');
}
Модуль, который я создаю, должен добавлять дополнительные разрешения Facebook в модуль входа в Facebook, но не редактировать его содержимое.
Любая помощь приветствуется.
2 answers
После добавления зависимости ваш etc/modules/*.xml
файл
<depends>
<Inchoo_Facebook/>
</depends>
Вы должны иметь возможность безопасно переписать класс из своего собственного модуля:
Config.xml
<config>
<global>
<blocks>
<extension>
<class>Your_Extension_Block</class>
</extension>
<inchoo>
<rewrite>
<template>Your_Extension_Block_Template</template>
</rewrite>
</inchoo>
</blocks>
</global>
</config>
Your/Extension/Block/Template.php
class Your_Extension_Block_Template extends Inchoo_Facebook_Block_Template
{
public function getRequiredPermissions()
{
return json_encode('email,user_birthday,friends_birthday,user_photos,friends_photos');
}
}
Ответ Сандера выведет вас на правильный путь, если вы хотите сохранить свои улучшения при себе. Однако, поскольку мы все любим открытый исходный код, я предлагаю вам отправить ребятам в Inchoo запрос на извлечение с вашими изменениями. Если вы сделаете его необязательным с помощью новой настройки, я совершенно уверен, что они включат его.
Вы можете найти код для расширения Facebook на Github.
Также взгляните на расширение Social Connect от них, которое объединяет Facebook расширение с рядом других вариантов входа в систему (в настоящее время Google и Twitter).