Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

3.2.3 - интеграция в smarty и авторизация

Есть сайт c шаблонизатором smarty и отдельно стоит форум, откуда на сайт парсятся новости.

 

Код шаблона смарти:

{foreach from=$items item=topic}
   <div class="box">
           <a href="/news/{$topic.tid}" name="{$topic.tid}">{$topic.title}</a>
           <a href="/forum/index.php?showtopic={$topic.tid}" class="box_comment">{$topic.posts}</a>
           </h1>          
           <div class="box_content">
           {$topic.text|parseipb}          
           </div>
   </div> 
{/foreach}

 

Код плагина для смарти parseipb:

require_once($_SERVER['DOCUMENT_ROOT'].DIRSEP.'forum/initdata.php' );
require_once($_SERVER['DOCUMENT_ROOT'].DIRSEP.'forum/admin/sources/base/ipsRegistry.php' );
function smarty_modifier_parseipb($string) {    
   $registry = ipsRegistry::instance();
   $registry->init();

   IPSText::getTextClass('bbcode')->parse_html = 0;
   IPSText::getTextClass('bbcode')->parse_nl2br = 1;
   IPSText::getTextClass('bbcode')->parse_bbcode = 1;
   IPSText::getTextClass('bbcode')->parse_smilies = 0;

   $string = IPSText::getTextClass('bbcode')->preDisplayParse($string);  
   return $string;
}

 

Код работает и bbcode ipb парсится на сайт. Проблема в том, что уже залогиненные на форуме пользователи разлогиниваются, когда заходят на сайт со страничкой новостей. Подскажите, как поправить.

Рекомендованные сообщения

Как-то вы неправильно подключаете ядро

 

define( 'IPB_THIS_SCRIPT', 'public' );
define( 'IPS_PUBLIC_SCRIPT', 'index.php');
define( 'IPS_ENFORCE_ACCESS', true); // с 3.1.*
require_once( 'initdata.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );

$registry = ipsRegistry::instance();
$registry->init();

 

ipsRegistry::instance();
ipsRegistry::init();

  • Автор

Все равно сбрасывается авторизация.

function smarty_modifier_parseipb($string) {
   define( 'IPB_THIS_SCRIPT', 'public' );
   define( 'IPS_PUBLIC_SCRIPT', 'index.php');
   define( 'IPS_ENFORCE_ACCESS', true);

   require_once( $_SERVER['DOCUMENT_ROOT'].DIRSEP.'forum/initdata.php' );
   require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
   require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );

   $registry = ipsRegistry::instance();
   $registry->init();

   $member = $registry->member()->fetchMemberData();
   var_dump($member["members_display_name"]);

   IPSText::getTextClass('bbcode')->parse_html = 0;
   IPSText::getTextClass('bbcode')->parse_nl2br = 1;
   IPSText::getTextClass('bbcode')->parse_bbcode = 1;
   IPSText::getTextClass('bbcode')->parse_smilies = 0;

   $string = IPSText::getTextClass('bbcode')->preDisplayParse($string);  
   return $string;
}

 

Эта функция лежит в /lib/smarty/plugins/ , форум /forum/ и страничка откуда вызывается шаблон в корне.

Подскажите, где еще может быть ошибка? :(

Изменено пользователем Dimsby

В пути для cookies. Как вариант, из-за ваших настроек на сайте могут быть недоступны cookies форума, и тогда сайт создает новую гостевую cookie, которая перетирает форумную. Задайте в настройках форума путь для cookies как "/", и домен заодно свой пропишите.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.