Зодиак

Nikolay90

Пользователь
Поставил этот мод (у меня R482) по последней инструкции от MY-94.
Ошибок и нотисов нет.
Нашёл три случая некорректной работы этого мода:
1) В мини-профилях пользователей в собщениях, знак зодиака отображается корректно, но при этом в таблице 'bb_users' поле 'user_zodiac' пустое.

2) В профилях пользователей, в строке со знаком зодиака, "дырка", то есть Знак зодиака не отобразился при выбранной дате рождения.

3) У меня есть пользователь, у которого дата рождения 23 ноября. Но в мини-профиле отображается, что он "Скорпион", хотя должен быть "Стрелец". Я так понимаю, что даты для знаков зодиака связаны с функцией RealTime()? В коде я не нашёл как поправить даты, с какого числа по какое, соответствующие каждому знаку зодиака.
 

Nikolay90

Пользователь
Есть соображения по поводу этого мода.
Нерешённой осталась проблема учёта числа месяца и месяца по календарю для определения знака Зодиака.
1) Я отказался в этом моде от использования функции realdate(), поскольку неполучается вытянуть из неё отдельно число месяца и отдельно месяц.
2) Для того, чтобы определить знак Зодиака с учётом календарной даты, я думаю так:
а) нужна ланговая переменная, хранящая массив названий знаков:
PHP:
$lang['SELECT_ZODIAC'] = array("Козерог","Водолей","Рыбы","Овен","Телец","Близнецы","Рак","Лев","Дева","Весы","Скорпион","Стрелец");

б) например, массив начальных чисел месяца для каждого знака Зодиака:
PHP:
 $signsstart = array(1 => 21, 2 => 20, 3 => 20, 4 => 20, 5 => 20, 6 => 20, 7 => 21, 8 => 22, 9 => 23, 10 => 23, 11 => 23, 12 => 23);

3) Предположим, что у нас есть 2 переменные:
$b_day - хранящая число месяца;
$b_md - хранящая сам месяц,
тогда с помощью примерно такой условной операции можно вернуть в переменную $zodiac, название знака Зодиака:
PHP:
 $zodiac = $b_day < $signsstart[$b_md+1] ? $lang['SELECT_ZODIAC'][$b_md-1] : $lang['SELECT_ZODIAC'][$b_md%12];
здесь проверяется попадает ли число месяца в следующий знак зодиака соответствующего месяца, если да, то возвращается знак под номером, соответствующим остатку при делении месяца на 12, а если нет, то возвращается предыдущий знак зодиака (учитывая, что нумерация элементов массива идёт с нуля).

4) в php-коде файла usercp_register.php я действительно нашёл эти 2 переменные: $b_day и $b_md (до того, как к ним применили функцию mkrealdate())

5) Я так понимаю, что определение знака Зодиака (из пункта 3) должно быть в файле usercp_viewprofile.php.

Нормальная ли такая идея для этого мода?
Каким способом лучше передать значения переменных $b_day и $b_md из одного php файла в другой?
 

drew

Пользователь
PHP:
$lang['SELECT_ZODIAC'] = array(
1 = "Козерог",
2 ="Водолей",
3 ="Рыбы",
4 ="Овен"
и т.д
Почему бы не сделать так ?
 

vitalix

Пользователь
vitalix, скинь сам нотис
Код:
Notice: Undefined index: in /var/www/h0009478/data/www/vittrack.ru/viewtopic.php on line 918
 
Notice: Undefined index: in /var/www/h0009478/data/www/vittrack.ru/viewtopic.php on line 919
Notice: Undefined index: in /var/www/h0009478/data/www/vittrack.ru/viewtopic.php on line 920
Notice: Undefined index: in /var/www/h0009478/data/www/vittrack.ru/viewtopic.php on line 921
Notice: Undefined index: in /var/www/h0009478/data/www/vittrack.ru/viewtopic.php on line 922
Notice: Undefined index: in /var/www/h0009478/data/www/vittrack.ru/viewtopic.php on line 923
Notice: Undefined index: in /var/www/h0009478/data/www/vittrack.ru/viewtopic.php on line 924
Notice: Undefined index: in /var/www/h0009478/data/www/vittrack.ru/viewtopic.php on line 925
Notice: Undefined index: in /var/www/h0009478/data/www/vittrack.ru/viewtopic.php on line 926
Notice: Undefined index: in /var/www/h0009478/data/www/vittrack.ru/viewtopic.php on line 927
Notice: Undefined index: in /var/www/h0009478/data/www/vittrack.ru/viewtopic.php on line 928
Notice: Undefined index: in /var/www/h0009478/data/www/vittrack.ru/viewtopic.php on line 929
 

vitalix

Пользователь
Код:
viewtopic.php
 
$birthday_zodiac = realdate($postrow[$i]['user_birthday'], 'n'); 
$mzodiac = array(
'1' => '' . $images['capricorn'] . ' "' . $lang['ZODIAC_SELECT'] . '" title="' .$lang['ZODIAC_SELECT'][$birthday_zodiac]. '',
'2' => '' . $images['aquarius'] . ' "' . $lang['ZODIAC_SELECT'] . '" title="' .$lang['ZODIAC_SELECT'][$birthday_zodiac]. '',
'3' => '' . $images['pisces'] . ' "' . $lang['ZODIAC_SELECT'] . '" title="' .$lang['ZODIAC_SELECT'][$birthday_zodiac]. '',
'4' => '' . $images['aries'] . ' "' . $lang['ZODIAC_SELECT'] . '" title="' .$lang['ZODIAC_SELECT'][$birthday_zodiac]. '',
'5' => '' . $images['taurus'] . ' "' . $lang['ZODIAC_SELECT'] . '" title="' .$lang['ZODIAC_SELECT'][$birthday_zodiac]. '',
'6' => '' . $images['gemini'] . ' "' . $lang['ZODIAC_SELECT'] . '" title="' .$lang['ZODIAC_SELECT'][$birthday_zodiac]. '',
'7' => '' . $images['cancer'] . ' "' . $lang['ZODIAC_SELECT'] . '" title="' .$lang['ZODIAC_SELECT'][$birthday_zodiac]. '',
'8' => '' . $images['leo'] . ' "' . $lang['ZODIAC_SELECT'] . '" title="' .$lang['ZODIAC_SELECT'][$birthday_zodiac]. '',
'9' => '' . $images['virgo'] . ' "' . $lang['ZODIAC_SELECT'] . '" title="' .$lang['ZODIAC_SELECT'][$birthday_zodiac]. '',
'10' => '' . $images['libra'] . ' "' . $lang['ZODIAC_SELECT'] . '" title="' .$lang['ZODIAC_SELECT'][$birthday_zodiac]. '',
'11' => '' . $images['scorpio'] . ' "' . $lang['ZODIAC_SELECT'] . '" title="' .$lang['ZODIAC_SELECT'][$birthday_zodiac]. '',
'12' => '' . $images['sagittarius'] . ' "' . $lang['ZODIAC_SELECT'] . '" title="' .$lang['ZODIAC_SELECT'][$birthday_zodiac]. '',
);
$htmlzodiac = !empty($birthday_zodiac) ? ''.$lang['ZODIAC_SELECT'][$birthday_zodiac].'&nbsp;<img src="'.$mzodiac[$birthday_zodiac].'" />' : '';

$poster_longevity = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? delta_time($postrow[$i]['user_regdate']) : '';

$poster_avatar = '';'
 
Сверху