Страниц: 1
title
Description
Body
Расширенный профиль с поисковыми метками.
Продолжаю развивать поиск-в-один-клик. Дополнительные поля в персональном разделе профиля:
- пол. можно скрыть;
- дата рождения. можно засветить д/р, но скрыть возраст;
- интересы. поиск по совпадающим интересам;
- обо мне. напоминает подпись - доступны 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 символа.',
предвижу, что не уживется с Calendar - с полем users.birthday
Неактивен
Дни рождения на главной странице форума
если в профиле включена галочка "скрыть возраст", именинник появится в списке без указания возраста.
Для ускорения за основу взял код для 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'].': </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'] . ': </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... это потом, когда будет больше времени
Неактивен
еще скриншот

Неактивен
Было бы круто добавить поле, которое было бы видно, рядом с информацией об авторе сообщения. Например, мне надо поле с процессором (CPU) пользователя.
Видел такое на motofan.ru там и модель телефона, и его прошивка, но там другой движок форума. Есть что-то подобное на http://forum.mozilla-russia.org/ там версия браузера, но она определяется сама, т.е. сам пользователь в профиле это не указывает.
Неактивен
первое что нужно сделать - решить какого типа должно быть поле. int, varchar или text
подозреваю, что однострочного поля для описания системы окажется мало. понадобится что-то вроде "Обо мне"
то есть text
план А: решить, что "Обо мне" не нужен, вместо него использовать "Система". тогда достаточно отредактировать файлы
lang/*/profile.php чтобы на страницу выводились другие слова про то же самое поле!!! очень просто ![]()
план Б: все-таки добавить новое поле. пусть в таблице в БД оно называется my_sys.
если Elektra Profile mod уже установлен, надо запустить install_mod, деинсталировать (удалятся поля), отредактировать install_mod.php чтобы создавалось новое поле и заново установить мод
1. добавляем поле в install_mod.php
находим
"ADD `aboutme` text NOT NULL") or
ПЕРЕД этим вставляем
"ADD `my_sys` text NOT NULL, ".
находим
"DROP `aboutme`") or
добавляем ПЕРЕД
"DROP `my_sys`, ".
2. нам нужны языковые расшифровки для страниц
в файлах lang/English/profile.php и lang/Russian/profile.php дублируем все строчки про Aboutme и заменяем слово aboutme на system:
для русского языка это будет выглядеть так:
'System' => 'Моя система', 'System max length' => 'Макс. символов: 1024', 'System legend' => 'Опишите коротко', 'System info' => 'Например, CPU, RAM и видеокарту. В тексте можно использовать встроенные теги BBCode и/или HTML, если это разрешено администратором. Что разрешено, можно увидеть внизу, при редактировании описания.', 'No system' => 'Нет описания.', 'System too long' => 'Описание не должно превышать 1024 символа.',
3. правим самый главный файл /profile.php. общий подход такой - отслеживаем поле aboutme, везде где оно упоминается через запятую с другими полями, добавляем через запятую my_sys. где упоминается в отдельных выражениях - копируем блок строк и заменяем "aboutme" на "my_sys", а расшифровки $lang_profile['Aboutme...'] на $lang_profile['System...']
описывать каждое движение мне лениво - чуть позже приведу hdiff-файл. можете сделать это самоcтоятельно, это нетрудно если быть внимательным
Неактивен
У меня выдает вот такую ошибку:
Fatal error: Maximum execution time of 10 seconds exceeded in /usr/home/vshosts/hosts/u1228/amdfan.org/www/forums/profile.php on line 679
Что это значит?
---
Теперь не выдает, но после указания возраста и пола загружает пустую страницу, а профиль не обновляется
Неактивен
Проблемы только в профиле и я кажется знаю почему: я вставлял код в установочные файлы, а не в файлы уже действующего форума, видимо из-за этого и выдает:
Notice: Undefined index: num_files in /usr/home/vshosts/hosts/u1228/amdfan.org/www/forums/profile.php on line 1192
Notice: Undefined index: file_bonus in /usr/home/vshosts/hosts/u1228/amdfan.org/www/forums/profile.php on line 1193
Неактивен
Еще сейчас обратил внимание на такой момент: при цитировании сообщения другого собеседника пишет "ХХХ написал" если в профиле указать пол, то будет писать "ХХХ написала" если пол женский?
Неактивен
ты пропустил какой-то этап установки. undefined index значит что из таблицы нужные поля не извлечены. в SELECT не упоминаются, а должны!
написал/написала — пол автоматом не будет учитываться. это отдельная большая тема, я ее решать не берусь.
Неактивен
опытным путем выяснил, что notice в профиле появляются только у тех пользователей, которые загружали файлы на форум.
А fatal error у всех.
Мне почему то кажется, что это из-за того что я код вставлял в файлы с дистрибутива, а не с форума.
Если я теперь снова залью новый файл profile.php ,без твоего мода это исправит ситуацию?
Неактивен
Если я теперь снова залью новый файл profile.php ,без твоего мода это исправит ситуацию?
не знаю
не факт. у тебя теперь бардак на форуме.
Неактивен
попробовал на тестовом нифига ( выдает ошибку
An error was encountered
File: /usr/home/vshosts/hosts/u1228/amdfan.org/www/testforum/profile.php
Line: 934
PunBB reported: Unable to fetch user info
Database reported: Unknown column 'u.num_files' in 'field list' (Errno: 1054)
Неактивен
замени все скрипты на "правильные", удали файлы кеша и все!
если ошибки таки останутся - значит база не изменена (не выполнен install_mod)
Database reported: Unknown column 'u.num_files' in 'field list'
так и есть! либо запускай install_mod от EFU, либо ручками в myphpadmin добавь.
Неактивен
Самый свежий релиз Elektra profile http://www.punres.org/viewtopic.php?id=3561
Добавление "Дни рождения на главной странице форума" http://punbb.ru/viewtopic.php?pid=8191#p8191 оно же здесь: http://punbb-pe.org.ru/viewtopic.php?pid=35#p35
"Отправлять сообщения" это чтобы бот писал письма пользователю? Нафига? Какая радость, что компьютер поздравил! Пусть товарищт увидят про д/р и сами поздравляют.
Неактивен
"Отправлять сообщения" это чтобы бот писал письма пользователю? Нафига? Какая радость, что компьютер поздравил! Пусть товарищт увидят про д/р и сами поздравляют.
) возможно ты и прав
Неактивен
он 100% прав )
Неактивен
Страниц: 1