Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Pastuh

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

Recommended Posts

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

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

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

 

Вывод

$lang->words['online_page_title']

  • Upvote 1

Share this post


Link to post
Share on other sites
$lang->loadLanguageFile( array( 'public_online' ), 'members' );
print_r($lang->words);

  • Upvote 1

Share this post


Link to post
Share on other sites

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

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

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

 

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

 

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

Edited by Pastuh

Share this post


Link to post
Share on other sites

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

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

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...