Сайт сообщества | Клуб пользователей | О проекте

Имя
Пароль
ПравилаРегистрацияСправка
Сообщения за деньПоиск

Вернуться   Клуб пользователей портальной системы RUNCMS > Портал > Настройка и эксплуатация

Ответ
 
Опции темы Опции просмотра
alekseyn вне форума alekseyn
Младший участник


| Цитировать Старый #1 11-19-2008, 16:19

Народ,
Остро встала необходимость поставить переключение языков (интерфейса) на лету, т.е. по выбору посетителя.
В связи с этим найден модуль разработанный еще для и-ксупса в стародавние времена....
Ставим на роню 1.5.3 и видем что не пашет...
работает сие чудо так -
в файл /include/common.php
после:
Код:
include(XOOPS_ROOT_PATH."/modules/system/cache/config.php");
Добавляем:
Код:
// ############ Include function for language selection ##############
include(XOOPS_ROOT_PATH."/modules/language/common/functions.php");
После этого через блок сего модуля, переключатем язык в системных настройках...
Трабл в том, что в нынешней роне реализовано кеширование с которым самостоятельно справится я не могу и поэтому требуется ваша помощь.
вот файл /modules/language/common/functions.php
Код:
<?
if ($HTTP_GET_VARS['sel_lang']>'') {
//sets a cookie for a month with the language that the user selected
setcookie('selected_language', $HTTP_GET_VARS['sel_lang'], time()+3600*24*30, '/');  
$xoopsConfig['language'] = $HTTP_GET_VARS['sel_lang'];
} elseif ($HTTP_COOKIE_VARS['selected_language'] > '') {
$xoopsConfig['language'] = $HTTP_COOKIE_VARS['selected_language'];
}
?>
надобно туды вставить сброс кэша меню (я так думаю) и быть может обновление модуля system...

Прошу помочь разобраться.
Есть идеи господа?
Вложения
Тип файла: zip language.zip (7.6 Кбайт, 2 просмотров)

Посетить домашнюю страницу alekseyn
  Сообщения: 80 c 11.05.2005 | Репутация: 5
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #2 11-20-2008, 00:39

Сброс кэша и тем более обновление system, не очень хорошая идея. Посетители сайта будут постоянно «тыкать» в изображения флажков, и при этом постоянно будут проводиться операции с файлами, и обновляться база. Зачем устраивать лишнюю нагрузку на сайт?

Легче подправить кэширование, чтобы в имени кэш-файла учитывался язык портала.


Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском
-------------------------------------------------------------------
Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,185 c 20.09.2003 | Репутация: 223
alekseyn вне форума alekseyn
Младший участник


| Цитировать Старый #3 11-20-2008, 09:29

понятно....
было бы хорошо конечно, но без основательного хака этого не сделать...
у меня нет ни времени ни знаний чтоб так перелопачивать систему кеширования.

а для того сайта, к которому хотел все это прикрутить нагрузка не так существенна... посещаемость почти никакая... тем более висит на своем сервере... так что вопрос остается открытым.

быть может я еще и недопонимаю всю систему кеширования на сайте. При переключении языка в админке, названия модулей начинают отображаться через одно (вразнобой) на разных языках, а то и вовсе система не реагирует на смену языка.... иногда обновление модулей помогает, иногда нет... не пойму в чем дело....

если не сделаю переключение языков, то придется отладить одну копию сайта на русском, потом делать полную копию сайта в подпапку /eng например менять там язык и натравливать ее на туже базу.... есть надежда что сработает... и все новости,файлы,ссылки,Факи, форумы будут корректно отображаться в обоих копиях сайта....

Есть мысли как упростить задачу?
прошу помощи!

Последний раз редактировалось alekseyn, 11-20-2008 в 10:01

Посетить домашнюю страницу alekseyn
  Сообщения: 80 c 11.05.2005 | Репутация: 5
alekseyn вне форума alekseyn
Младший участник


| Цитировать Старый #4 11-20-2008, 11:22

ок... немного упростилось все...
при залогиненом пользователе не происходит переключение.... скорее всего из- за поля в базе... т.е. надо бы стереть запись language по умолчанию в таблице users....
либо переписать функцию модуля, чтоб она меняла эту запись в соответсвии с выбранным пользователем значением

анониму язык интерфейса переключает этот модуль нормально, за исключением главного меню.... причем Домой-Home и под-меню модулей переключаются, а остальные главные пункты меню нет....

где ковырять кэш меню? почему основные названия не переключаются а подменюшки переключаются без проблем?

Посетить домашнюю страницу alekseyn
  Сообщения: 80 c 11.05.2005 | Репутация: 5
alekseyn вне форума alekseyn
Младший участник


| Цитировать Старый #5 11-20-2008, 17:23

Ок...
частично переделал модуль чтоб он снова работал под роню 1.5.3... на других не пробовал, но должно работать...
Модуль меняет конфигурацию портала для анонимных пользователей и меняет настройки профиля пользователя для зарегистрированных...
У кого есть предложения или дополнения к коду - добро пожаловать !
Итак... для полноценной работы - нужно скачать и установить сам модуль (в приложении)
Затем, добавим два куска кода в файл common.php
после
Код:
include_once(XOOPS_ROOT_PATH.'/modules/system/cache/config.php');
вставляем
Код:
// ############ Language module incert begin ##############
if (!$xoopsUser) {  // If not a user
if ($_GET['sel_lang']>'') {
//sets a cookie for a month with the language that the user selected
setcookie('selected_language', $_GET['sel_lang'], time()+3600*24*30, '/');  
$xoopsConfig['language'] = $_GET['sel_lang'];
} elseif ($_COOKIE['selected_language'] > '') {
$xoopsConfig['language'] = $_COOKIE['selected_language'];
}
} 
// ############ Language module incert end ##############
и в самом конце перед
Код:
?>
вставляем
Код:
// ############ Language module incert begin ##############
if ($_GET['sel_lang'] > '') {
if ($xoopsUser) {
$db->query("UPDATE ".RC_USERS_TBL." SET language='".$_GET['sel_lang']."' WHERE uid=".$xoopsUser->getVar("uid")."");
redirect_header(basename(_PHP_SELF), 1, 'OK. One second please...');        
//redirect_header("javascript:history.go(-1)", 1, 'OK. One second please...');
exit();
}
}
// ############ Language module incert end ##############
или для тех у кого этот файл без хаков, можно скачать модифицированный из СТАНДАРТНОГО файл common.php


проблема с кэшем меню пока не решена.... подменюшки сменяются... а основные пункты меню нет....

Кто поможет решить проблему?
Вложения
Тип файла: zip common.zip (5.0 Кбайт, 2 просмотров)
Тип файла: zip language.zip (9.3 Кбайт, 4 просмотров)

Последний раз редактировалось alekseyn, 11-20-2008 в 17:41

Посетить домашнюю страницу alekseyn
  Сообщения: 80 c 11.05.2005 | Репутация: 5
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #6 11-20-2008, 22:00

Цитата:
Сообщение от alekseyn Посмотреть сообщение
проблема с кэшем меню пока не решена.... подменюшки сменяются... а основные пункты меню нет....

Кто поможет решить проблему?
А дело не в кэше:

в файле /class/xoopsmodule.php в методе mainLink2()

заменить

PHP код:
$ret['name'] = $this->name(1); 
на

PHP код:
$ret['name'] = $this->modinfo['name']; 
в этом случае имя модуля будет взято не из базы данных, а из языкового файла modinfo.php

Последний раз редактировалось LARK, 11-20-2008 в 22:03


Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском
-------------------------------------------------------------------
Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,185 c 20.09.2003 | Репутация: 223
alekseyn вне форума alekseyn
Младший участник


| Цитировать Старый #7 11-21-2008, 09:47

Большое спасибо! Все работает теперь как надо !

Посетить домашнюю страницу alekseyn
  Сообщения: 80 c 11.05.2005 | Репутация: 5
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Рейтинг@Mail.ru Хостинг провайдер Majordomo. Powered by: vBulletin Version 3.0
Copyright ©2000-2024, Jelsoft Enterprises Ltd.
Все разделы прочитаны - Руководство форума - Архив - Вверх
Rambler's Top100
Output: 72.77 Kb. compressed to 67.16 Kb. by saving 5.62 Kb. (7.72%)
Page generated in 0.07855 seconds with 13 queries