1

Тема: Elektra Profile with Labels

Расширенный профиль с поисковыми метками.

Продолжаю развивать поиск-в-один-клик. Дополнительные поля в персональном разделе профиля:
- пол. можно скрыть;
- дата рождения. можно засветить д/р, но скрыть возраст;
- интересы. поиск по совпадающим интересам;
- обо мне. напоминает подпись - доступны BBcodes. удачное место для включения фотографии через [ img]

Дополнительно, в меню профиля появляется пункт "Просмотр" - пользователь или админ может взглянуть на профиль в режиме просмотра, а не редактирования, то есть как его видят все остальные пользователи.

Проект на PunRes: тыц
Скриншоты: тыц, тыц, тыц

в реадме мода приводится фрагмент для lang/English/profile.php

вот для lang/Russian/profile.php:

// Extra personal detail stuff
'Preview'                =>    'Просмотр',
'Gender'                =>    'Пол',
'Gender male'                =>    'Мужской',
'Gender female'                =>    'Женский',
'Gender hidden'                =>    'Не показывать',
'Birthday'                =>    'Дата рождения',
'Birthday months'            =>    array(1=>'Января', 2=>'Февраля', 3=>'Марта', 4=>'Апреля', 5=>'Мая', 6=>'Июня', 7=>'Июля', 8=>'Августа', 9=>'Сентября', 10=>'Октября', 11=>'Ноября', 12=>'Декабря'),
'Birthday hide age'            =>    'Не показывать мой возраст',
'Interests'                =>    'Интересы',
'Interests hint'            =>    'через запятую, например "хоккей, зелёный чай, php"',
'Aboutme'                =>    'Обо мне',
'Aboutme max length'            =>    'Макс. символов: 1024',
'Aboutme legend'            =>    'Представьтесь в нескольких словах',
'Aboutme info'                =>    'Этот текст будет виден другим пользователям в Вашем профиле. Опишите, например, ваше хобби. В тексте можно использовать встроенные теги BBCode и/или HTML, если это разрешено администратором. Что разрешено, можно увидеть внизу, при редактировании описания.',
'No aboutme'                =>    'Нет описания.',
'Aboutme too long'            =>    'Описание не должно превышать 1024 символа.',

Добавлено  02.12.2007 00:02:01:
предвижу, что не уживется с Calendar - с полем users.birthday

updated:
присутствует ошибка с языковой константой "Aboutme too long", для utf-8 требуются поправки в коде.
пожалуйста, прочитайте все сообщения в этой теме!

Сайт artoodetoo

Поделиться

2

Re: Elektra Profile with Labels

Приятный мод smile
Особенно радуют метки.

Будет ли продолжение в виде вывода дней рождений на главную форума?
Например:
Дни рождения в течение семи ближайших ней будут у юзеров: Антон (43), Марина (20), Анфиса  (15)

Будет ли конвертанция дня рождения в одну цифру возраста?
Например:
Иван (32 года), Света (17 лет), Оля (35 лет)...

No Money, No Time, No Girl, No Job - NO PROBLEM!

Поделиться

3

Re: Elektra Profile with Labels

TEXist пишет:

Будет ли продолжение в виде вывода дней рождений на главную форума?

будет с учетом галочки "скрыть возраст".

Сайт artoodetoo

Поделиться

4

Re: Elektra Profile with Labels

artoodetoo пишет:

будет с учетом галочки "скрыть возраст".

Классно smile

Еще одно пожелание от моих юзверей:
Когда переходишь по меткам на юзер-лист хотелось бы видет что это такое.
Т.е:
Нажимаешь например на метку интереса: "зелёный чай" и на следующей странице бы выдавалась надпись типа:

Вы видите внизу список юзверей по запросу интересов: "зелёный чай"

No Money, No Time, No Girl, No Job - NO PROBLEM!

Поделиться

5

Re: Elektra Profile with Labels

TEXist пишет:

Когда переходишь по меткам на юзер-лист хотелось бы видет что это такое.

ну к моду такая фигня не имееет отношения.
это во всех видах поисков такая ерунда! надо исправлять, согласен. сделаю - выложу workaround.

Сайт artoodetoo

Поделиться

6

Re: Elektra Profile with Labels

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

Поделиться

7

Re: Elektra Profile with Labels

для TEXist, spycam и всех остальных.
[size=16]Дни рождения на главной странице форума[/size]
если в профиле включена галочка "скрыть возраст", именинник появится в списке без указания возраста.
http://master.1wd.ru/download/profile-4.gif

Для ускорения за основу взял код для Calendar от Zevs
вот здесь http://punbb.ru/viewtopic.php?pid=3085#p3085 . Чуть-чуть переделал:

Index.php

Найти

    if ($num_users > 0)
        echo "\t\t\t".'<dl id="onlinelist" class= "clearb">'."\n\t\t\t\t".'<dt><strong>'.$lang_index['Online'].':&nbsp;</strong></dt>'."\t\t\t\t".implode(',</dd> ', $users).'</dd>'."\n\t\t\t".'</dl>'."\n";
    else
        echo "\t\t\t".'<div class="clearer"></div>'."\n";

После него добавить:

    //--- birthday begin ---/
    $today = getdate();
    $result = $db->query('SELECT username, id, YEAR(FROM_UNIXTIME(birthday)) AS year, hide_age from '.$db->prefix.'users WHERE DAYOFMONTH(FROM_UNIXTIME(birthday))=\''.$today['mday'].'\' AND MONTH(FROM_UNIXTIME(birthday))=\''.$today['mon'].'\' ORDER by username ASC') or error('Cannot retreive birthdays', __FILE__, __LINE__, $db->error());

    $birthdays_today = array();
    while ($row = $db->fetch_assoc($result))
        $birthdays_today[] .=  "\n\t\t\t\t".'<dd><a href="profile.php?id='.$row['id'].'">'.$row['username'].'</a>'.
        ((!$row['hide_age'])?'('.($today['year']-$row['year']).')':'');

    if (count($birthdays_today) > 0) {
        echo "\t\t\t".'<dl id="birthdayslist">'."\n\t\t\t\t".'<dt><strong>' . $lang_index['Birthday Today'] . ':&nbsp;</strong></dt>';
        echo implode(',</dd> ', $birthdays_today) . '</dd>' . "\n\t\t\t" . '</dl>' . "\n";
    }
    //--- birthday end ---/

В lang/Russian/index.php

добавить

'Birthday Today'               =>      'Именинники сегодня'

В base.css секция 8.1 должна выглядеть так

/* 8.1 Horizontal display of online list, main navigation menu and breadcrumbs */

#birthdayslist DD, #birthdayslist DT, #onlinelist DD, #onlinelist DT, #onlinetodaylist DD, #onlinetodaylist DT,
#brdmenu LI, DIV.linkst LI, DIV.linksb LI, DIV.postlinksb LI,
DIV.postfootright LI, UL.bblinks LI {
    DISPLAY: inline;
    HEIGHT: 0
}

По-хорошему, надо использовать cache... это потом, когда будет больше времени

Сайт artoodetoo

Поделиться

8

Re: Elektra Profile with Labels

Суппер!
Особенно классно что оно скрывается когда ни у кого нет Дня Рождения smile

No Money, No Time, No Girl, No Job - NO PROBLEM!

Поделиться

9

Re: Elektra Profile with Labels

У меня есть сомнения, прошу помочь советом:
Мой SQL запрос по поиску именинников выглядит довольно коряво. А как известно хорошо летают только красивые самолеты smile

Есть такая идея - добавить еще одно поле пользоватею. напрямую оно редактироваться не будет. Это будет часть дня рождения
birt_mmdd varchar(4) - хранит только месяц и день рождения в текстовом формате.
Изменяться будет одновременно с изменением настоящего birthday. По этому полю очень удобно делать выборки по условию "=" или "BETWEEN", или засунуть его в GROUP BY.

Запрос "кто родился 16 февраля":

select id, username, birthday
from users
where birth_mmdd = '0216'

Запрос кто родился за неделю "12-18 февраля":

select id, username, birthday
from users
where birth_mmdd between '0212' and '0218'

Запрос для календарика на февраль "сколько именинников каждый день" может выглядеть так:

select birth_mmdd, count(*)
from users
group by birth_mmdd
where birth_mmdd between '0201' and '0228'

imho, красиво и при наличии индекса будет очень быстро работать.
Вопрос: стОит ли заморачиваться этим или день рождения не настолько важный элемент, чтобы тратить на него силы?

Сайт artoodetoo

Поделиться

10

Re: Elektra Profile with Labels

artoodetoo пишет:

Вопрос: стОит ли заморачиваться этим или день рождения не настолько важный элемент, чтобы тратить на него силы?

Вообщето это самая любимая часть программы smile
Кому не приятно иметь дополнительные приятности в день своего рождения. И форум который сделает эти приятности будет в числе запомнившихся с приятной стороны...
Поэтому вещь полезная.
Ещё видел фишку на одном форуме:
Когда у юзера наступает Днюха - то ему по привату отправляется письмо с поздравлением типа: "Администрация форума поздравляет вас "Здес_Никнейм_Юзера" с Днюхой! Желаем типа счастья.... живите долго...  и т.д."
А можно ещё чтобы автоматом открывалась новая тема в каком-нить форуме с поздравлением этому юзеру... И потом другие юзеры постят в эту тему... типа поздравляют (так обычно делается с известными юзерами: кто-то открывет тему и понеслись поздравления... а тут если бы она сама открывалась... былоб классно).

No Money, No Time, No Girl, No Job - NO PROBLEM!

Поделиться

11

Re: Elektra Profile with Labels

Плоховато работает с puntal - как я понял файл инстал_мод удаляет все файлы кеша - поэтому при обращении на главную сайта - белая страница...

Поделиться

12

Re: Elektra Profile with Labels

файлы в кеше должны восстанавливаться автоматически! "чистый" punbb с этим справляется и все моды с которыми я сталкивался тоже. puntal - это какая-то мини cvs на базе punbb? ничего не могу про нее сказать, это ненормальная реакция. можете удалить из install_mod очистку кеша... на каком-нибудь другом моде все равно завалится.

Сайт artoodetoo

Поделиться

13

Re: Elektra Profile with Labels

Глючок:

Когда юзер постит в строке "О себе" болше разрешонного лимита, то на другой странице выводится пустая табличка и в ней ничего нет, только "вернуться назад"...
Должно же быть по идее что-нить вроде "Слишком много знаков, введите меньшее число знаков..."

No Money, No Time, No Girl, No Job - NO PROBLEM!

Поделиться

14

Re: Elektra Profile with Labels

Давно искал подобный мод smile Плюс ДР smile Календарь уж больно монструозный.

Вопрос - поиск по интересам - синтаксис какой будет?
Т.е. я полагаю, что надо бы так (все интересы - ссылки)
Интерес1, интерес2, еще один интерес3, интерес4.

Будут ли нормально работать такие ссылки при win1251 ?

Поделиться

15

Re: Elektra Profile with Labels

TEXist, такое сообщение предусмотрено. проверю конечно, но и ты посмотри пропустил ли чего...

KCEOH, что значит "будет"? оно уже есть как ссылки. мод тестировался под 1251

Сайт artoodetoo

Поделиться

16

Re: Elektra Profile with Labels

artoodetoo пишет:

TEXist, такое сообщение предусмотрено. проверю конечно, но и ты посмотри пропустил ли чего...

Ошибочка точно.
Я у себя исправил.
Ты просто дал файл ленгвиджа другой.
Ты дал сообщение об ошибке из регистрации, а надо из профайла, обрати внимание.

----
Мысль пришла классная по поводу Д.Рождения:
Вот например высвечиваются именниники сегодняшние.
И после каждого ника потавить кнопочку, на которую нажимаешь (как в моде "Репутация") и прибавляется одно значение, и пишется типа этого:

Анжелла (28) - 10 человек поздравили, Павел (19) - 12 человек поздравили .......

То есть дело не хитрое - нажать на кнопочку (типа счётчика) а челу приятно smile да и вообще интрересно было бы...

Добавлено спустя     2 минуты   29 секунд:
Но круче было бы через AJAX - чтобы без перезагрузки страницы.

No Money, No Time, No Girl, No Job - NO PROBLEM!

Поделиться

17 (19.02.2007 19:29 отредактировано Griffon)

Re: Elektra Profile with Labels

TEXist пишет:

Еще одно пожелание от моих юзверей:
Когда переходишь по меткам на юзер-лист хотелось бы видет что это такое.
Т.е:
Нажимаешь например на метку интереса: "зелёный чай" и на следующей странице бы выдавалась надпись типа:

Вы видите внизу список юзверей по запросу интересов: "зелёный чай"

Имхо лучше сделать еще одно поле в поиске по юзерам для интересов. Но как сделать нормальный поиск сразу по 2 и более интересам(через запятую) я себе вообще не представляю. Можно как-нибудь так:

if ($pun_user['g_search_users'] == '1' && $interest != '')
    {
    $interest = str_replace('*', '%', $interest);
    $interest = str_replace(' ,', ',', $interest);
    $interest = str_replace(', ', ',', $interest);
    $interest = str_replace(',', '%', $interest);
    if(substr($interest, 0, 1) != '%') $interest = '%'.$interest;
    if(substr($interest, -1, 1) != '%') $interest = $interest.'%';
    $where_sql[] = 'u.interests '.$like_command.' \''.$db->escape($interest).'\'';
    }

Но если интересы идут не в той последовательности - не будет работать sad

2 artoodetoo
Потчитал на твоём форуме, что планируешь прикрутить фотографии.
На сколько скоро можно ожидать релиза и каким способом будет реализовано?
Интересны следующие моменты:

  • [li]Количество фоток для пользователя (одна, несколко или целые альбомы)[/li][li]Будет ли как-то связанна с твоей галереей[/li][li]Будет ли возможность коментировать фотографии[/li]

Поделиться

18

Re: Elektra Profile with Labels

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

со сложным поиском по интересом я не хочу заморачиваться. imho, это не очень нужно. планирую такое развитие:
1. в userlist.php выводить текущие критерии поиска. это коснется не только интересов, но и любых выборок из списка
2. search.php - то же самое. будет видно что искали, к примеру, метку такую-то
3. в параметрах сессии сохранять последние варианты поисков. очень вероятно что пользователь сначала ищет какое-то слово, потом добавляет его в свой профиль или в свою тему из предложенного списка.

Сайт artoodetoo

Поделиться

19 (20.02.2007 07:53 отредактировано Griffon)

Re: Elektra Profile with Labels

artoodetoo пишет:

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

Ясно, придётся пока собрать свою версию на коленке и без излишеств sad

artoodetoo пишет:

со сложным поиском по интересом я не хочу заморачиваться. imho, это не очень нужно. планирую такое развитие:
1. в userlist.php выводить текущие критерии поиска. это коснется не только интересов, но и любых выборок из списка
2. search.php - то же самое. будет видно что искали, к примеру, метку такую-то
3. в параметрах сессии сохранять последние варианты поисков. очень вероятно что пользователь сначала ищет какое-то слово, потом добавляет его в свой профиль или в свою тему из предложенного списка.

Т.е. я так понимаю планируется возможность поиска в пользователях только по 1 интересу за раз?

Покопался еще на твоем форуме на 3bb, нашёл интересную фишку

Выберите наиболее подходящий для Вас уровень безопасности.
Высокий (Привязать автоматическую авторизацию к IP адресу)
Средний (Привязать автоматическую авторизацию к подсети IP адреса)
Низкий (IP адрес при автоматической авторизации не проверяется)

Есть ли готовое решение такого плана?

Поделиться

20 (06.04.2007 18:48 отредактировано KCEOH)

Re: Elektra Profile with Labels

Нашел небольшую ошибку. Поправить

            if (pun_strlen($form['aboutme']) > 1024)
                message($lang_prof_reg['Aboutme too long']);

На

            if (pun_strlen($form['aboutme']) > 1024)
                message($lang_profile['Aboutme too long']);

UPD: Ща прочитал о ней на punres smile Неплохо бы и тут о ней сообщить было.

И когда можно будет ожидать извещений о ДР за некоторый срок, за 3-7 дней, допустим?

Добавлено спустя   1 час   24 минуты   24 секунды:
Еще небольшой фикс...
Если форум на utf-8, то интересы сохраняются только в виде англицких букаф и цифирок.

Изменяем

function purge_label($dirty)
{
    $lab = strtolower(str_replace(',', ' ', $dirty));
    $lab = eregi_replace("[[:space:]]+", " ", $lab);
    return trim($lab);
}

На

function purge_label($dirty)
{
    $lab = mb_strtolower(str_replace(',', ' ', $dirty), mb_detect_encoding($dirty));
    $lab = eregi_replace("[[:space:]]+", " ", $lab);
    return trim($lab);
}

Поделиться

21

Re: Elektra Profile with Labels

KCEOH, если форум под UTF-8, то должен присутствовать mb_internal_encoding() см. http://punbb.ru/viewtopic.php?id=1222. тогда mb_detect_encoding не нужен ни здесь, ни где-либо еще!

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

про 'Aboutme too long' правильно написал. я как-то упустил эту тему.

Сайт artoodetoo

Поделиться

22

Re: Elektra Profile with Labels

бакфикс-релиз 1.0.1
www.punres.org/viewtopic.php?id=3561
исправлены некоторые стилевые накладки.
в планах добавить выбор ключевых слов из списка, но только в следующей версии...

Сайт artoodetoo

Поделиться

23 (19.10.2007 21:54 отредактировано jeder)

Re: Elektra Profile with Labels

artoodetoo
Идёт ли развитие мода?
Очень интересует вывод инфы о пользователе на странице форума, т.е под аваркой, ведётся ли работа в этом направлении?

Сайт jeder

Поделиться

24

Re: Elektra Profile with Labels

Кстати как насчёт добавить полноценное фото к моду, чтобы пользователи могли загружать фото, как аватар, а не просто писать ссылку и тэги. Многие и в помине не знают, что такое тэги.

Поделиться

25

Re: Elektra Profile with Labels

на панресе посмотри мод gus

Поделиться