Вывод lang переменных на другой сайт связанных с ипб - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

Вывод lang переменных на другой сайт связанных с ипб

#1 Пользователь не на сайте   Pastuh ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 14
  • Регистрация: 12-Сентябрь 15
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 12 Сентябрь 2015 - 05:07

Предисловие:
Есть самописный портал к которому привязан IPBoard. С портала можно зарегистрироваться, авторизоваться, сменить пароль и выйти из IPB не заходя на сам форум. Так же на данный портал выводится некоторая информация из IPB типа новости, галерея, профиль и тд и тп..

Встала нужда добавить 2 языка: Английский и Русский. Сменить язык с этого портала я могу, а так же проверить какой язык у пользователя и какой язык стоит у системы по дефолту тоже.
Но я не хочу выдумывать велосипед и создавать новые lang файлы для этого портала. Мне удобнее дописать файлы lang ipb и уже из них вывести информацию в зависимости от языка пользователя.

Нужна ваша помощь в выдергивание функции которая работает с lang файлами в ipb или же ее подгрузка в портал, а следом вывод переменных из массивов lang файлов. Что бы я мог скажем использовать следующее:
<? echo $this->lang->words['title']; ?> Если стоит русский язык. Выводит русский текст, а если стоит английский, то английский текст.
Просто иначе придется писать:
<? if ($lang_user == 1) { echo $lang->ru['title']; } else {echo $lang->en['title']; } и работать со своими lang файлами.
Способ в принципе такой же, но кода в 2 раза больше. Конечно можно написать функцию и облегчить его до уровня первого варианта, но зачем? Оно уже есть в IPB.
Убил пару часов, но так ничего вывести у меня не получилось из lang файлов IPB.

Может кто работал и сможет мне помочь.

Спасибо за внимание.
0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 246
  • Регистрация: 20-Март 09
  • Репутация: 2 062
  • IPB version:3.1.x
 

Отправлено 12 Сентябрь 2015 - 08:05

$this->lang->loadLanguageFile( array( 'PACK_NAME' ), 'APP_KEY' );

PACK_NAME - имя пака где находятся языковые строки
APP_KEY - имя приложения
1

#3 Пользователь не на сайте   Pastuh ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 14
  • Регистрация: 12-Сентябрь 15
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 12 Сентябрь 2015 - 08:37

Спасибо, но не получилось.

Сделал так, решил для теста вывести хоть что то вот мой код:

<?
define('FORUM_PATH', $_SERVER['DOCUMENT_ROOT'].$forum.'/');
require_once( FORUM_PATH . 'initdata.php' );
require_once( FORUM_PATH . 'admin/api/member/api_member_login.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/class_localization.php' );//Класс подгрузил на всякий случай, но и без него не так и не сяк не работает.
$ipbRegistry = ipsRegistry::instance();
$ipbRegistry->init();
$DB         =  $ipbRegistry->DB();
$settings   =& $ipbRegistry->fetchSettings();
$request    =& $ipbRegistry->fetchRequest();
$lang       =  $ipbRegistry->getClass('class_localization');
$ipb_test_lang = $lang->loadLanguageFile( array( 'public_online' ), 'members' );
?>


Вывод делаю так:
<? echo $ipb_test_lang['online_page_title']; ?>

Но ничего не выводит. Где я сделал ошибку? Переменные $DB, $settings, $request используются нормально.
0

#4 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 813
  • IPB version:I have no IPB
 

Отправлено 12 Сентябрь 2015 - 08:58

А для чего Вы присваиваете
$ipb_test_lang = $lang->loadLanguageFile( array( 'public_online' ), 'members' );


Вывод
$lang->words['online_page_title']

1

#5 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 246
  • Регистрация: 20-Март 09
  • Репутация: 2 062
  • IPB version:3.1.x
 

Отправлено 12 Сентябрь 2015 - 09:02

$lang->loadLanguageFile( array( 'public_online' ), 'members' );
print_r($lang->words);

1

#6 Пользователь не на сайте   Pastuh ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 14
  • Регистрация: 12-Сентябрь 15
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 12 Сентябрь 2015 - 09:06

Ну вообще думал с целью использовать скажем разные боксы под это дело.
Например для страница новостей портала loadLanguageFile( array( 'news' ), 'portal' )
Для страницы регистрации loadLanguageFile( array( 'regs' ), 'portal' )

И так далее. А так получится что придется разные переменные задавать или нет?

А и да оно заработало)

Сообщение изменено: Pastuh (12 Сентябрь 2015 - 09:07)

0

#7 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 813
  • IPB version:I have no IPB
 

Отправлено 12 Сентябрь 2015 - 09:45

loadLanguageFile только подгружает указанные лэнг-паки, включая глобальный, если он не подгружен. И все.

Просмотреть сообщениеPastuh сказал(а):

Например для страница новостей портала loadLanguageFile( array( 'news' ), 'portal' )
Для страницы регистрации loadLanguageFile( array( 'regs' ), 'portal' )
Для одного и того же приложения, можете в массиве указывать PACK_NAME
$lang->loadLanguageFile( array( 'news', 'regs' ), 'portal' );


Просмотреть сообщениеPastuh сказал(а):

И так далее. А так получится что придется разные переменные задавать или нет?
Нет.
1

#8 Пользователь не на сайте   Pastuh ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 14
  • Регистрация: 12-Сентябрь 15
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 12 Сентябрь 2015 - 10:05

А хорошо спасибо понял тогда. Можно закрывать.
0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна