Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Pastuh

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

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

Предисловие:

Есть самописный портал к которому привязан 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.

 

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

 

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

Поделиться сообщением


Ссылка на сообщение

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

 

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

APP_KEY - имя приложения

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

 

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

 

<?
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 используются нормально.

Поделиться сообщением


Ссылка на сообщение

А для чего Вы присваиваете

$ipb_test_lang = $lang->loadLanguageFile( array( 'public_online' ), 'members' );

 

Вывод

$lang->words['online_page_title']

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
$lang->loadLanguageFile( array( 'public_online' ), 'members' );
print_r($lang->words);

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
09/12/15 06:07 (изменено)

Ну вообще думал с целью использовать скажем разные боксы под это дело.

Например для страница новостей портала loadLanguageFile( array( 'news' ), 'portal' )

Для страницы регистрации loadLanguageFile( array( 'regs' ), 'portal' )

 

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

 

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

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

Поделиться сообщением


Ссылка на сообщение

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

Например для страница новостей портала loadLanguageFile( array( 'news' ), 'portal' )

Для страницы регистрации loadLanguageFile( array( 'regs' ), 'portal' )

Для одного и того же приложения, можете в массиве указывать PACK_NAME

$lang->loadLanguageFile( array( 'news', 'regs' ), 'portal' );

 

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...