Social Network Authentication (Twitter, Google, VK.com)

Social Network Authentication (Twitter, Google, VK.com) 1.1

Нет прав для скачивания
ID, связанный с для этого домена. (Редиректы для VK: )
Не пойму описанного как ввести IDhttp://example.com/ ввожу ошибка[DOUBLEPOST=1372773918,1372773837][/DOUBLEPOST]выдаёт ошибку
{"error":"invalid_request","error_description":"OAuth authorization cannot be used from native VK applications"}
 
:laugh::laugh::laugh: Переведите слово example в гугле и всё станет понятно. Вы не считаете, что его нужно заменить на название своего домена? :)
 
да то что его нужно заменить это ясно, вы вопроса не поняли. Как правильно прописать в строку то есть я пишу: 237645 и у меня выдаёт ошибку
 
Где поле "ID приложения Вконтакте" нужно просто написать ID, например: 5257133
 
Это указывается при создании приложения Вконтакте.
 
Пойдёт, но с ручными правками шаблонов...
 
А я чёрт его знает, что там править нужно. :biggrin:[DOUBLEPOST=1373211471,1373211214][/DOUBLEPOST]А попробуйте вот эту версию установить без каких-либо правок...
 

Вложения

  • addon-Social.zip
    52.2 KB · Просмотры: 16
Пойдёт...
 
Перед установкой необходимо сделать следующее:
В файле library/Social/install.php удалить этот фрагмент
Код:
        if(!$addOnModel->getAddOnById('TMS')){
            throw new XenForo_Exception(new XenForo_Phrase('social_requires_tms'));
        }
В установочном файле addon-Social.xml найти
Код:
<addon addon_id="Social" title="Social" version_string="Beta 2" version_id="1" url="" install_callback_class="Social_Manufacture" install_callback_method="build" uninstall_callback_class="Social_Manufacture" uninstall_callback_method="destroy">
и заменить на
Код:
<addon addon_id="Social" title="Social" version_string="Beta 2" version_id="1" url="" install_callback_class="Social_Install" install_callback_method="build" uninstall_callback_class="Social_Install" uninstall_callback_method="destroy">
затем найти и удалить фрагмент
Код:
  <template_modifications>
    <modification title="social_account_wrapper_sidebar_settings" template_title="account_wrapper" execute_order="10" modification_type="preg_replace" callback_class="" callback_method="" description="" version_id="1" version_string="Beta 2" active="1">
      <search_value><![CDATA[#{xen:phrase facebook_integration}</a></li></xen:if>#s]]></search_value>
      <replace_value><![CDATA[$0
<xen:if is="{$xenOptions.twitterConsumerKey}"><li><a
    class="{xen:if "{$selectedKey} == 'account/twitter'", 'secondaryContent', 'primaryContent'}"
    href="{xen:link account/twitter}">{xen:phrase social_twitter_integration}</a></li></xen:if>
<xen:if is="{$xenOptions.linkedinConsumerKey}"><li><a
    class="{xen:if "{$selectedKey} == 'account/linkedin'", 'secondaryContent', 'primaryContent'}"
    href="{xen:link account/linkedin}">{xen:phrase social_linkedin_integration}</a></li></xen:if>
<xen:if is="{$xenOptions.vkAppId}"><li><a
    class="{xen:if "{$selectedKey} == 'account/vk'", 'secondaryContent', 'primaryContent'}"
    href="{xen:link account/vk}">{xen:phrase social_vk_integration}</a></li></xen:if>
<xen:if is="{$xenOptions.googleAppId}"><li><a
    class="{xen:if "{$selectedKey} == 'account/google'", 'secondaryContent', 'primaryContent'}"
    href="{xen:link account/google}">{xen:phrase social_google_integration}</a></li></xen:if>]]></replace_value>
    </modification>
    <modification title="social_helper_login_form" template_title="helper_login_form" execute_order="10" modification_type="preg_replace" callback_class="" callback_method="" description="" version_id="1" version_string="Beta 2" active="1">
      <search_value><![CDATA[#<xen:if is="{\$xenOptions.facebookAppId}">.*?</xen:if>#s]]></search_value>
      <replace_value><![CDATA[<xen:require css="social_login_buttons.css" />

<dl class="ctrlUnit">
    <xen:if is="{$xenOptions.facebookAppId}">
        <dt></dt>
        <dd><a href="{xen:link register/facebook, '', 'reg=1'}" class="fbLogin"><span>{xen:phrase login_with_facebook}</span></a></dd>
    </xen:if>
    <xen:if is="{$xenOptions.twitterConsumerKey}">
        <dt></dt>
        <dd><a href="{xen:link register/twitter, '', 'reg=1'}" class="twitterLogin"><span>{xen:phrase social_login_with_twitter}</span></a></dd>
    </xen:if>
    <xen:if is="{$xenOptions.linkedinConsumerKey}">
        <dt></dt>
        <dd><a href="{xen:link register/linkedin, '', 'reg=1'}" class="linkedinLogin"><span>{xen:phrase social_login_with_linkedin}</span></a></dd>
    </xen:if>
    <xen:if is="{$xenOptions.vkAppId}">
        <dt></dt>
        <dd><a href="{xen:link register/vk, '', 'reg=1'}" class="vkLogin"><span>{xen:phrase social_login_with_vk}</span></a></dd>
    </xen:if>
    <xen:if is="{$xenOptions.googleAppId}">
        <dt></dt>
        <dd><a href="{xen:link register/google, '', 'reg=1'}" class="googleLogin"><span>{xen:phrase social_login_with_google}</span></a></dd>
    </xen:if>
</dl> ]]></replace_value>
    </modification>
    <modification title="social_login_bar_item" template_title="login_bar_form" execute_order="10" modification_type="preg_replace" callback_class="" callback_method="" description="" version_id="1" version_string="Beta 2" active="1">
      <search_value><![CDATA[#<xen:hook name="login_bar_eauth_set">.*<xen:if is="{\$xenOptions.facebookAppId}">(.*?<xen:hook name="login_bar_eauth_items">.*?)(</xen:hook>)#s]]></search_value>
      <replace_value><![CDATA[<xen:hook name="login_bar_eauth_set"><xen:if is="{$xenOptions.facebookAppId} or {$xenOptions.twitterConsumerKey} or {$xenOptions.linkedinConsumerKey} or {$xenOptions.vkAppId} or {$xenOptions.googleAppId}">
$1
    <xen:require css="social_login_buttons.css" />
    <xen:if is="{$xenOptions.twitterConsumerKey}">
        <li><a href="{xen:link register/twitter, '', 'reg=1'}" class="twitterLogin"><span>{xen:phrase social_login_with_twitter}</span></a></li>
    </xen:if>
    <xen:if is="{$xenOptions.linkedinConsumerKey}">
        <li><a href="{xen:link register/linkedin, '', 'reg=1'}" class="linkedinLogin"><span>{xen:phrase social_login_with_linkedin}</span></a></li>
    </xen:if>
    <xen:if is="{$xenOptions.vkAppId}">
        <li><a href="{xen:link register/vk, '', 'reg=1'}" class="vkLogin"><span>{xen:phrase social_login_with_vk}</span></a></li>
    </xen:if>
    <xen:if is="{$xenOptions.googleAppId}">
        <li><a href="{xen:link register/google, '', 'reg=1'}" class="googleLogin"><span>{xen:phrase social_login_with_google}</span></a></li>
    </xen:if>
$2]]></replace_value>
    </modification>
    <modification title="social_navigation_visitor_tab_link" template_title="navigation_visitor_tab" execute_order="10" modification_type="preg_replace" callback_class="" callback_method="" description="" version_id="1" version_string="Beta 2" active="1">
      <search_value><![CDATA[#<xen:if is="{\$xenOptions.facebookAppId}">.*?</xen:if>#s]]></search_value>
      <replace_value><![CDATA[$0
<xen:if is="{$xenOptions.twitterConsumerKey}"><li><a href="{xen:link account/twitter}">{xen:phrase social_twitter_integration}</a></li></xen:if>
<xen:if is="{$xenOptions.linkedinConsumerKey}"><li><a href="{xen:link account/linkedin}">{xen:phrase social_linkedin_integration}</a></li></xen:if>
<xen:if is="{$xenOptions.vkAppId}"><li><a href="{xen:link account/vk}">{xen:phrase social_vk_integration}</a></li></xen:if>
<xen:if is="{$xenOptions.googleAppId}"><li><a href="{xen:link account/google}">{xen:phrase social_google_integration}</a></li></xen:if>]]></replace_value>
    </modification>
  </template_modifications>
и этот фрагмент тоже удалить
Код:
    <phrase title="social_requires_tms" version_id="0" version_string=""><![CDATA[<a href="http://xenforo.com/community/resources/template-modification-system-tms.293/">Template Modification System</a> required]]></phrase>

Теперь можно установить исправленный аддон.
Идем в штатный TMS и делаем следующие модификации:

Шаблон: account_wrapper
Ключ модификации: social_account_wrapper_sidebar_settings
Тип поиска: Регулярное выражение
Найти:
Код:
#{xen:phrase facebook_integration}</a></li></xen:if>#s
Заменить на:
Код:
$0
<xen:if is="{$xenOptions.twitterConsumerKey}"><li><a
    class="{xen:if "{$selectedKey} == 'account/twitter'", 'secondaryContent', 'primaryContent'}"
    href="{xen:link account/twitter}">{xen:phrase social_twitter_integration}</a></li></xen:if>
<xen:if is="{$xenOptions.linkedinConsumerKey}"><li><a
    class="{xen:if "{$selectedKey} == 'account/linkedin'", 'secondaryContent', 'primaryContent'}"
    href="{xen:link account/linkedin}">{xen:phrase social_linkedin_integration}</a></li></xen:if>
<xen:if is="{$xenOptions.vkAppId}"><li><a
    class="{xen:if "{$selectedKey} == 'account/vk'", 'secondaryContent', 'primaryContent'}"
    href="{xen:link account/vk}">{xen:phrase social_vk_integration}</a></li></xen:if>
<xen:if is="{$xenOptions.googleAppId}"><li><a
    class="{xen:if "{$selectedKey} == 'account/google'", 'secondaryContent', 'primaryContent'}"
    href="{xen:link account/google}">{xen:phrase social_google_integration}</a></li></xen:if>
Шаблон: helper_login_form
Ключ модификации: social_helper_login_form
Тип поиска: Регулярное выражение
Найти:
Код:
#<xen:if is="{\$xenOptions.facebookAppId}">.*?</xen:if>#s
Заменить на:
Код:
<xen:require css="social_login_buttons.css" />
<dl class="ctrlUnit">
    <xen:if is="{$xenOptions.facebookAppId}">
        <dt></dt>
        <dd><a href="{xen:link register/facebook, '', 'reg=1'}" class="fbLogin"><span>{xen:phrase login_with_facebook}</span></a></dd>
    </xen:if>
    <xen:if is="{$xenOptions.twitterConsumerKey}">
        <dt></dt>
        <dd><a href="{xen:link register/twitter, '', 'reg=1'}" class="twitterLogin"><span>{xen:phrase social_login_with_twitter}</span></a></dd>
    </xen:if>
    <xen:if is="{$xenOptions.linkedinConsumerKey}">
        <dt></dt>
        <dd><a href="{xen:link register/linkedin, '', 'reg=1'}" class="linkedinLogin"><span>{xen:phrase social_login_with_linkedin}</span></a></dd>
    </xen:if>
    <xen:if is="{$xenOptions.vkAppId}">
        <dt></dt>
        <dd><a href="{xen:link register/vk, '', 'reg=1'}" class="vkLogin"><span>{xen:phrase social_login_with_vk}</span></a></dd>
    </xen:if>
    <xen:if is="{$xenOptions.googleAppId}">
        <dt></dt>
        <dd><a href="{xen:link register/google, '', 'reg=1'}" class="googleLogin"><span>{xen:phrase social_login_with_google}</span></a></dd>
    </xen:if>
</dl>
Шаблон: login_bar_form
Ключ модификации: social_login_bar_item
Тип поиска: Регулярное выражение
Найти:
Код:
#<xen:hook name="login_bar_eauth_set">.*<xen:if is="{\$xenOptions.facebookAppId}">(.*?<xen:hook name="login_bar_eauth_items">.*?)(</xen:hook>)#s
Заменить на:
Код:
<xen:hook name="login_bar_eauth_set"><xen:if is="{$xenOptions.facebookAppId} or {$xenOptions.twitterConsumerKey} or {$xenOptions.linkedinConsumerKey} or {$xenOptions.vkAppId} or {$xenOptions.googleAppId}">
$1
<xen:require css="social_login_buttons.css" />
<xen:if is="{$xenOptions.twitterConsumerKey}">
<li><a href="{xen:link register/twitter, '', 'reg=1'}" class="twitterLogin"><span>{xen:phrase social_login_with_twitter}</span></a></li>
</xen:if>
<xen:if is="{$xenOptions.linkedinConsumerKey}">
<li><a href="{xen:link register/linkedin, '', 'reg=1'}" class="linkedinLogin"><span>{xen:phrase social_login_with_linkedin}</span></a></li>
</xen:if>
<xen:if is="{$xenOptions.vkAppId}">
<li><a href="{xen:link register/vk, '', 'reg=1'}" class="vkLogin"><span>{xen:phrase social_login_with_vk}</span></a></li>
</xen:if>
<xen:if is="{$xenOptions.googleAppId}">
<li><a href="{xen:link register/google, '', 'reg=1'}" class="googleLogin"><span>{xen:phrase social_login_with_google}</span></a></li>
</xen:if>
$2
Шаблон: navigation_visitor_tab
Ключ модификации: social_navigation_visitor_tab_link
Тип поиска: Регулярное выражение
Найти:
Код:
#<xen:if is="{\$xenOptions.facebookAppId}">.*?</xen:if>#s
Заменить на:
Код:
$0
<xen:if is="{$xenOptions.twitterConsumerKey}"><li><a href="{xen:link account/twitter}">{xen:phrase social_twitter_integration}</a></li></xen:if>
<xen:if is="{$xenOptions.linkedinConsumerKey}"><li><a href="{xen:link account/linkedin}">{xen:phrase social_linkedin_integration}</a></li></xen:if>
<xen:if is="{$xenOptions.vkAppId}"><li><a href="{xen:link account/vk}">{xen:phrase social_vk_integration}</a></li></xen:if>
<xen:if is="{$xenOptions.googleAppId}"><li><a href="{xen:link account/google}">{xen:phrase social_google_integration}</a></li></xen:if>
 
Кто рискнёт? :biggrin: Я столько правок со времён IPB 2.3.x не видел. :laugh:
 
Кто рискнёт? :biggrin: Я столько правок со времён IPB 2.3.x не видел. :laugh:
Это только кажется, что много, а на самом деле ничего сложного - 5 минут времени :)
Инструкцию писал со своих действий по установке на свой форум.
Можно всё это упаковать в готовый аддон, но я не стал этого делать специально.
 
Специально для чего? Чтобы народ не расслаблялся? :biggrin:
Примерно для этого.
Пригодится для общего развития.
Что бы лишний раз потренироваться в использовании TMS и в правке файлов.
Некоторым здесь этого на самом деле не хватает, сам знаешь.:)
 
При модификации шаблона : "account_wrapper" пишет ошибку : "Данный шаблон содержит ошибки и не может быть сохранён: account_wrapper: 1) Строка 98: ошибка синтаксиса в шаблоне."

Вот код шаблона "изменённый" может кто поможет ?

Код:
<xen:require css="account.css" />
<xen:edithint template="navigation_sidebar.css" />

<div class="container">
    <div class="navigationSideBar ToggleTriggerAnchor">
        <h4 class="heading ToggleTrigger" data-target="> ul"data-toggle-if-pointer="yes">{xen:phrase your_account} <span></span></h4>
        <ul data-toggle-class="menuVisible">
            <xen:hook name="account_wrapper_sidebar">
            <li class="section">
                <ul>
                    <xen:hook name="account_wrapper_sidebar_your_account">
                    <li><a
                        class="{xen:if "{$selectedKey} == 'alerts/latest'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link account/alerts}">{xen:phrase your_alerts}</a></li>
                    <xen:if is="{$xenOptions.enableNewsFeed}"><li><a
                        class="{xen:if "{$selectedKey} == 'alerts/newsFeed'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link account/news-feed}">{xen:phrase your_news_feed}</a></li></xen:if>
                    <li><a
                        class="{xen:if "{$selectedKey} == 'alerts/likes'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link account/likes}">{xen:phrase likes_youve_received}</a></li>
                    <li><a
                        class="primaryContent"
                        href="{xen:link watched/threads}">{xen:phrase watched_threads}</a></li>
                    <li><a
                        class="primaryContent"
                        href="{xen:link watched/forums}">{xen:phrase watched_forums}</a></li>
                    </xen:hook>
                </ul>
            </li>
           
            <!-- slot: pre_conversations -->
           
            <li class="section"><h4 class="subHeading">{xen:phrase conversations}</h4>
                <ul>
                    <xen:hook name="account_wrapper_sidebar_conversations">
                    <li><a
                        class="{xen:if "{$selectedKey} == 'conversations/view'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link conversations}">{xen:phrase view_conversations}</a></li>
                    <xen:if is="{$canStartConversation}"><li><a
                        class="{xen:if "{$selectedKey} == 'conversations/add'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link conversations/add}">{xen:phrase start_new_conversation}</a></li></xen:if>
                    </xen:hook>
                </ul>
            </li>
           
            <!-- slot: pre_settings -->
           
            <li class="section"><h4 class="subHeading">{xen:phrase settings}</h4>
                <ul>
                    <xen:hook name="account_wrapper_sidebar_settings">
                    <xen:if is="{$canEditProfile}"><li><a
                        class="{xen:if "{$selectedKey} == 'account/personalDetails'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link account/personal-details}">{xen:phrase personal_details}</a></li></xen:if>
                    <xen:if is="{$canEditSignature}"><li><a
                        class="{xen:if "{$selectedKey} == 'account/signature'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link account/signature}">{xen:phrase signature}</a></li></xen:if>
                    <xen:if is="{$canEditProfile}"><li><a
                        class="{xen:if "{$selectedKey} == 'account/contactDetails'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link account/contact-details}">{xen:phrase contact_details}</a></li></xen:if>
                    <li><a
                        class="{xen:if "{$selectedKey} == 'account/privacy'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link account/privacy}">{xen:phrase privacy}</a></li>
                    <li><a
                        class="{xen:if "{$selectedKey} == 'account/preferences'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link account/preferences}">{xen:phrase preferences}</a></li>
                    <li><a
                        class="{xen:if "{$selectedKey} == 'account/alertPreferences'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link account/alert-preferences}">{xen:phrase alert_preferences}</a></li>
                    <li><a
                        class="{xen:if "{$selectedKey} == 'account/following'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link account/following}">{xen:phrase people_you_follow}</a></li>
                    <li><a
                        class="{xen:if "{$selectedKey} == 'account/ignored'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link account/ignored}">{xen:phrase people_you_ignore}</a></li>
                    <xen:if is="{$xenCache.userUpgradeCount}"><li><a
                        class="{xen:if "{$selectedKey} == 'account/upgrades'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link account/upgrades}">{xen:phrase account_upgrades}</a></li></xen:if>
                    <xen:if is="{$xenOptions.facebookAppId}"><li><a
                        class="{xen:if "{$selectedKey} == 'account/facebook'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link account/facebook}">
                                                $0
                                        <xen:if is="{$xenOptions.twitterConsumerKey}"><li><a
                                                class="{xen:if "{$selectedKey} == 'account/twitter'", 'secondaryContent', 'primaryContent'}"
                                                href="{xen:link account/twitter}">{xen:phrase social_twitter_integration}</a></li></xen:if>
                                        <xen:if is="{$xenOptions.linkedinConsumerKey}"><li><a
                                                class="{xen:if "{$selectedKey} == 'account/linkedin'", 'secondaryContent', 'primaryContent'}"
                                                href="{xen:link account/linkedin}">{xen:phrase social_linkedin_integration}</a></li></xen:if>
                                        <xen:if is="{$xenOptions.vkAppId}"><li><a
                                                class="{xen:if "{$selectedKey} == 'account/vk'", 'secondaryContent', 'primaryContent'}"
                                                href="{xen:link account/vk}">{xen:phrase social_vk_integration}</a></li></xen:if>
                                        <xen:if is="{$xenOptions.googleAppId}"><li><a
                                                class="{xen:if "{$selectedKey} == 'account/google'", 'secondaryContent', 'primaryContent'}"
                                                href="{xen:link account/google}">{xen:phrase social_google_integration}</a></li></xen:if>
                    <li><a
                        class="{xen:if "{$selectedKey} == 'account/security'", 'secondaryContent', 'primaryContent'}"
                        href="{xen:link account/security}">{xen:phrase password}</a></li>
                    </xen:hook>
                </ul>
            </li>
           
            <li class="section">
                <ul>
                    <li><a href="{xen:link logout, '', '_xfToken={$visitor.csrf_token_page}'}"
                        class="LogOut primaryContent">{xen:phrase log_out}</a></li>
                </ul>
            </li>
           
           
            </xen:hook>
        </ul>
    </div>
   
    <div class="mainContentBlock section sectionMain insideSidebar">
        <xen:hook name="account_wrapper_content">{xen:raw $_subView}</xen:hook>
    </div>
</div>
 
При модификации шаблона : "account_wrapper" пишет ошибку : "Данный шаблон содержит ошибки и не может быть сохранён: account_wrapper: 1) Строка 98: ошибка синтаксиса в шаблоне."
Тип поиска не тот выбран.
Должно быть регулярное выражение.
 
А где тогда вообще задаётся тип поиска ? что то вообще не понял .. я искал так :
Поиск шаблона -> account_wrapper - и там уже вручную находил эту фразу.. только она было без # и #s . Может я не так что делаю ? подскажите..
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу