Расширение модуля сообщества - Вход в 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
Author: beingalex, 2013-09-13

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');
    }
}
 3
Author: Sander Mangel, 2013-09-13 12:40:14

Ответ Сандера выведет вас на правильный путь, если вы хотите сохранить свои улучшения при себе. Однако, поскольку мы все любим открытый исходный код, я предлагаю вам отправить ребятам в Inchoo запрос на извлечение с вашими изменениями. Если вы сделаете его необязательным с помощью новой настройки, я совершенно уверен, что они включат его.

Вы можете найти код для расширения Facebook на Github.

Также взгляните на расширение Social Connect от них, которое объединяет Facebook расширение с рядом других вариантов входа в систему (в настоящее время Google и Twitter).

 1
Author: Kristof at Fooman, 2013-09-13 12:48:18