Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2007-04-04 08:14:28

artoodetoo
Гость

Usability - как можно повысить удобство и простоту использования

Во-первых я не хочу гонять пользователя в Профиль/Внешний вид  каждый раз, когда он хочет изменить что-то во внешнем виде форума.

Во-вторых я не хочу добавлять новое поле в профиль на каждый чих. Сейчас в таблице users 37 полей. Немало! Моды могут добавить еще какие-то настройки пользователя в виде новых полей users. Так мы и до сотни полей можем дорости smile Не критично, но как-то нехорошо.

Можете считать этот топик заявкой на написание нового мода.

1. мод должен хранить параметры внешнего вида форума (ПВВ) в куках или в таблице online - то есть как свойства текущей сессии.
например online.display TEXT, хранит сериализованные ПВВ.

2. ПВВ должны быть доступны в том месте, где они используются, например опция "Показывать аватары" должна включаться во viewtopic без захода в личный профиль

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

4. следствие: гость тоже сможет настраивать ПВВ для текущего сеанса работы


Прошу высказываться

#2 2007-04-04 08:27:24

hcs
Гость

Re: Usability - как можно повысить удобство и простоту использования

Для смены языка уменя есть готовое решение, в шапке две ссылки - на русский и английский язык.
вида:

<a href="change_lang.php?lang=English" style="float:left">English</a><!-- //--><a href="change_lang.php?lang=Russian" style="float:right">Русский</a>

код скрипта change_lang.php:

<?php

define('PUN_ROOT', './');


require PUN_ROOT.'include/common.php';

if (isset($_GET['lang'])) {

        if ($_GET['lang'] == "English") 
            $lang = "English";
        if ($_GET['lang'] == "Russian") 
            $lang = "Russian";

    if ($pun_user['is_guest']) {        
        if (version_compare(PHP_VERSION, '5.2.0', '>='))
            setcookie('guest_language', $lang,  time()+ 31536000, $cookie_path, $cookie_domain, $cookie_secure, true);
        else
            setcookie('guest_language', $lang,  time()+ 31536000, $cookie_path.'; HttpOnly', $cookie_domain, $cookie_secure);        
    }
    else {
        if (!file_exists(PUN_ROOT.'lang/'.$lang.'/common.php'))
            message($lang_common['Bad request']);
        $db->query('UPDATE '.$db->prefix.'users SET language="'.$db->escape($lang).'" WHERE id='.$pun_user['id']) or error('Unable to update profile', __FILE__, __LINE__, $db->error());
    }
        
}

$redirect_url = (isset($_SERVER['HTTP_REFERER']) && preg_match('#^'.preg_quote($pun_config['o_base_url']).'/(.*?)\.php#i', $_SERVER['HTTP_REFERER'])) ? htmlspecialchars($_SERVER['HTTP_REFERER']) : 'index.php';
        redirect($redirect_url, $lang_common['Lang changed']);

небольшая модификация function.php функции set_default_user после строки

$pun_user['is_guest'] = true;

добавляем:

    if (isset($_COOKIE['guest_language'])) {
        $pun_user['language'] = $_COOKIE['guest_language'];
        
    }
    else {
        global $cookie_path, $cookie_domain, $cookie_secure, $cookie_seed;
        $pun_user['language'] = $pun_config['o_default_lang'];
        
        if (version_compare(PHP_VERSION, '5.2.0', '>='))
            setcookie('guest_language', $pun_config['o_default_lang'],  time()+ 31536000, $cookie_path, $cookie_domain, $cookie_secure, true);
        else
            setcookie('guest_language', $pun_config['o_default_lang'],  time()+ 31536000, $cookie_path.'; HttpOnly', $cookie_domain, $cookie_secure);
    }

Работает и для зареганых и для гостей.

#3 2007-08-13 11:22:05

flashcat
Гость

Re: Usability - как можно повысить удобство и простоту использования

hcs
Работает и для зареганых и для гостей.

Подскажи пожайлуста что я могу делать не так? я всё сделал как в описании, у пользователей всё нормально работает, а вот у гостей нет, пробывал сам разобраться не получилось.=((( А для гостей то вообщем то оно больше нужно, пока у него нет доступа к профилю разобраться как зарегистрироваться если он Engl, помоги пожайлуста.

#4 2007-08-17 19:35:31

metabazis
Гость

Re: Usability - как можно повысить удобство и простоту использования

Сделал по инструкции все работает.
создал файл change_lang.php вписал код что ниже.
сразу после строки $pun_user['is_guest'] = true; в файле functions.php вписал прилагающися код.
мгновенно возрадовался и поблагодарил hcs smile

#5 2007-11-20 08:11:20

artoodetoo
Гость

Re: Usability - как можно повысить удобство и простоту использования

спасибо hcs! я включил переключалку в свой проект PunBB PE http://punbb-pe.org.ru/
только вместо создания change_lang.php я включил тот текст в misc.php, в остальном практически то же самое.

Добавлено спустя     7 минут   33 секунды:
забыл сказать: еще вот такую фишку применил. формирование меню-переключателя по факту присутствия языковых файлов.
в include/common.php добавил что-то типа:

// Make language menu
$dh = opendir(PUN_ROOT.'lang/');
while (false !== ($file = readdir($dh))) 
{
    if (is_dir(PUN_ROOT.'lang/'.$file) && $file != '.' && $file != '..')
        $languages[] = '<a href="misc.php?lang='.$file.'">'.substr($file,0,3).'</a>';
}
closedir($dh);
sort($languages);

$lang_menu = '['.implode('|',$languages).']';
unset($languages);

потом в header.php эту $lang_menu можно вывести где посчитаете нужным

#6 2008-07-07 15:05:56

SerebroSuper
Гость

Re: Usability - как можно повысить удобство и простоту использования

у меня тоже,в гостях не меняется язык....сделал все тоже самое..(((((
а у пользователях отображается..странно!

#7 2008-08-07 12:04:24

flashcat
Гость

Re: Usability - как можно повысить удобство и простоту использования

Здравствуйте, я вот попробовал переделать как у artoodetoo, проблема осталась, может проблема где то в functions.php или в Индексном файле, так как не меняется только у гостей.

Подвал доски

Под управлением FluxBB. Хостинг Hostens