loading...

Авторизация ...

Имя пользователя :
Пароль :
я всё забыл!

ХакиПоздравление с днём рождения

Написал nickon, 16 ноября 2006 | 46 комментариев | рейтинг новости не нравится   +69   нравится Версия для печати
Модуль создаёт блок кто сегодня именник!

Автор: Ualde

в базе сделать запрос
ALTER TABLE `dle_users` ADD `birthday` DATE NOT NULL;


index.php

перед
$tpl->set('{calendar}',calendar ());


добавить
$tpl->set('{birthday}',$birthdays);


engine/init.php

после
require_once ENGINE_DIR.'/modules/calendar.php';


добавить
require_once ENGINE_DIR.'/modules/birthdays.php';


engine/modules/profile.php

после
$fullname = $parse->safeSQL($parse->process($_POST['fullname']));


добавить
$birthday = $parse->safeSQL($parse->process($_POST['birthday']));


найти
$sql_user = "UPDATE " . PREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'";
    } else {
    $sql_user = "UPDATE " . PREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'";


заменить на
$sql_user = "UPDATE " . PREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip', birthday='$birthday' where name='$user'";
    } else {
    $sql_user = "UPDATE " . PREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip', birthday='$birthday' where name='$user'";


после
$tpl->set('{fullname}', stripslashes($row['fullname']));


добавить
$tpl->set('{birthday}', stripslashes($row['birthday']));


для стандартного шаблона... ну , а для своего по аналогии
templates/Default/main.tpl

после
<table width="100%">
    <tr>
        <td width="5"><img src="/templates/Simple/images/ltdt.png" width="5" height="50" border="0"></td>
        <td background="/templates/Simple/images/bgtdt.png" class="ltitle" valign="top">Вход на сайт</td>
        <td width="5"><img src="/templates/Simple/images/rtdt.png" width="5" height="50" border="0"></td>
    </tr>
    <tr>
        <td background="/templates/Simple/images/ltd.gif"><img src="/templates/Simple/images/ltd.gif" width="5" border="0"></td>
        <td class="copy">{login}</td>
        <td background="/templates/Simple/images/rtd.gif"><img src="/templates/Simple/images/rtd.gif" width="5" border="0"></td>
    </tr>
    <tr>
        <td><img src="/templates/Simple/images/ltdb.png" width="5" height="10" border="0"></td>
        <td background="/templates/Simple/images/tdbbg.png"><img src="/templates/Simple/images/tdbbg.png" width="1" height="10" border="0"></td>
        <td><img src="/templates/Simple/images/rtdb.png" width="5" height="10" border="0"></td>
    </tr>
</table>


добавить
<table width="100%">
    <tr>
        <td width="5"><img src="/templates/Simple/images/ltdt.png" width="5" height="50" border="0"></td>
        <td background="/templates/Simple/images/bgtdt.png" class="ltitle" valign="top">Дни рождения</td>
        <td width="5"><img src="/templates/Simple/images/rtdt.png" width="5" height="50" border="0"></td>
    </tr>
    <tr>
        <td background="/templates/Simple/images/ltd.gif"><img src="/templates/Simple/images/ltd.gif" width="5" border="0"></td>
        <td class="stext">{birthdays}<br /></td>
        <td background="/templates/Simple/images/rtd.gif"><img src="/templates/Simple/images/rtd.gif" width="5" border="0"></td>
    </tr>
    <tr>
        <td><img src="/templates/Simple/images/ltdb.png" width="5" height="10" border="0"></td>
        <td background="/templates/Simple/images/tdbbg.png"><img src="/templates/Simple/images/tdbbg.png" width="1" height="10" border="0"></td>
        <td><img src="/templates/Simple/images/rtdb.png" width="5" height="10" border="0"></td>
    </tr>
</table>


templates/Default/userinfo.tpl

после
<br>Номер ICQ: <span class=date>{icq}</span>


добавить
<br>День рождения: <span class=date>{birthday}</span>


после
<tr valign="middle">
                  <td width="120" height="25">Ваше Имя</td>
                  <td height="25"><input type="text" name="fullname" value="{fullname}" style="width:167px; height:20px; font-family:tahoma; font-size:11px; border:1px solid #E0E0E0 "></td>
                </tr>


добавить
<tr valign="middle">
                  <td width="120" height="25">День рождения</td>
                  <td height="25"><input type="text" name="birthday" value="{birthday}" style="width:167px; height:20px; font-family:tahoma; font-size:11px; border:1px solid #E0E0E0 "></td>
                </tr>


внимание! новый файл
engine/modules/birthdays.php
текст
<?php
/*
Файл: birthdays.php
-----------------------------------------------------
Назначение: вывод пользователей с текущим днем рождения
=====================================================
*/

if(!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}

$today = date('Y-m-d');
$birthdays = "Сегодня день рождения у:<br>";

$sql_result = $db->query("SELECT name FROM " . PREFIX . "_users WHERE birthday='$today' ORDER BY name");

while ($row = $db->get_row($sql_result)) {
    if ($config['allow_alt_url'] == "yes") $link = "<a href="".$config['http_home_url']."user/".urlencode($row['name'])."/">".$row['name']."</a>";
    else $link = "<a href="$PHP_SELF?subaction=userinfo&user=".urlencode($row['name'])."">".$row['name']."</a>";
    $birthdays .= "<li>$link</li>";
}
?>



Комментарии пользователей

  Экспорт комментариев в RSS
 Сортировать по рейтингу, по дате

Написал blagoy, 16 ноября 2006 в 11:12 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Было бы неплохо примерчик посмотреть, а так вообще лишнее это. Было бы компактнее сделать это в календаре, выделив день днюхи как-нибудь по особенному, и сделать всплывающую подсказку при наведении.

Написал Jeka, 16 ноября 2006 в 11:43 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Отлинчая штуковина, аффтару респкт! wink smile

Написал cpaun, 16 ноября 2006 в 14:18 плохой комментарий   0   хороший комментарий
Новостей: 7, комментариев: 339, Пользователи
Карма:
Ualde СПАСИБААААААА БРАТ wink wink wink

Написал Jeka, 16 ноября 2006 в 16:19 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
сори конечно за тупизм, но как в базе этот запрос делать??

Написал slayer, 16 ноября 2006 в 17:49 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 7, Пользователи
Карма:

для стандартного шаблона... ну , а для своего по аналогии
templates/Default/main.tpl

<td class="stext">{birthdays}<br /></td>


что за <br /> - походу опячатка.
проделал все вышесказанные шаги на голый DLE, в итоге на главной появился модуль День рождения, но пишет тока {birthday}.

Написал Nitro, 16 ноября 2006 в 17:53 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Цитата: slayer

что за <br /> - походу опячатка.

Нет не опечатка, по стандартам HTML правильно именно
<br /> а не <br>

Написал slayer, 16 ноября 2006 в 18:17 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 7, Пользователи
Карма:
Nitro, а что я не так делаю, у меня пишет в блоке {birthdays}.
Что-то еще должно быть походу.

Написал sheff, 16 ноября 2006 в 18:25 плохой комментарий   0   хороший комментарий
Новостей: 5, комментариев: 351, Пользователи
Карма:
а вот вопрос, это значит надо будет сделать дополнительное поле при регистрации или как?

Написал sheff, 16 ноября 2006 в 18:27 плохой комментарий   0   хороший комментарий
Новостей: 5, комментариев: 351, Пользователи
Карма:
и для 4,5 подходит?

Написал eagle, 16 ноября 2006 в 18:35 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Same with slayer. There is only {birthdays} tag in the block in dle 5.1.
(Sorry writing in English, but my Russian is not very good. So I can't write in Russian.) sad

Написал voviksumy, 16 ноября 2006 в 18:46 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Похоже самое главное забыли.. Добавить саму исправленную форму добавления ДР.


slayer и другие
значит вы забыли вставить это:


$tpl->set('{birthday}',$birthdays);

Написал voviksumy, 16 ноября 2006 в 18:54 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Jeka,
Запрос делай через админку в окне запросов или в phpMyAdmin

Написал PoMaH, 16 ноября 2006 в 19:06 плохой комментарий   0   хороший комментарий
Новостей: 2, комментариев: 215, Пользователи
Карма:
vse polia dobovliajutca
takim obrazom vvoditca ne tol`ko dniuha, no i drugaja dopolnitel`naja infa


zdes` primer prosto, vsio zavisit ot vashei fantaziji

Написал stepan, 16 ноября 2006 в 20:18 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Что зделать чтобы просто добавить в профиле графу день варенье ..? без всяких выводов в блок просто в профиле графа днюха и дата там... А то чёто неполучается зделать как написано в инструкцмм по дле smile

Написал makarov, 17 ноября 2006 в 11:12 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 24, Пользователи
Карма:
Товарищи у меня али лыжи не едут, али я давно небыл!!

Короче на главной выдается только Сегодня день рождение у...

А у кого списка нет в чем могет быть трабла??

Написал makarov, 17 ноября 2006 в 11:20 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 24, Пользователи
Карма:
Цитата: voviksumy
slayer и другие
значит вы забыли вставить это:

$tpl->set('{birthday}',$birthdays);


нет просто тогда правильно не {birthdays} ставить, а {birthday} тоесть или s дописать в индексе или в шаблоне ее убрать

Написал eagle, 17 ноября 2006 в 12:28 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Thanks makarov. I changed the tag {birthdays} to {birthday} in main.tpl, and it works now. wink
And of course the biggest thanks goes to nickon for his work. smile

Написал Hi-Tech, 18 ноября 2006 в 02:03 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Блин, не отображается человек в блоке если ставлю любой год. Если ставлю 2006 г. то всё работает.
Как исправить можно?

Написал eagle, 19 ноября 2006 в 00:42 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Yes, unfortunately same with Hi-Tech. sad
It works when I enter 2006 as birth year. But when you enter whatever else rather than 2006 as birth year, it doesn't work. crying

Написал Santehnik, 20 ноября 2006 в 22:31 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
гг ну аффтар зажог :)) дык там же в запросе сегоднешняя дата а нада чтобы токо месяц и день совпадал а год любой :)

Написал makarov, 21 ноября 2006 в 10:26 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 24, Пользователи
Карма:
Скиньте кто нить нармальную версию все этого дела....

Написал gozhdik, 24 ноября 2006 в 12:15 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Очень НЕ понравилось что поле ввода Дня рождения в профиле указано в формате: 0000-00-00, помогите сделать форму выпадающего контекстного меню для выбора даты рождения, как на форуме IPB при регистрации. Плизз

Написал podgorniy, 20 декабря 2006 в 01:06 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Предлагаю немного переделанный хак.
Выводит пользователей, у которых именины в текущем месяце. А тек у кого сегодня выделяет красным цветом.
Работающий можно увидеть на http://mlan.ck.ua/

Всё аналогично. Только скрипт engine/modules/birthdays.php следующего содержания:

<?php
/*
Файл: birthdays.php
-----------------------------------------------------
Назначение: вывод пользователей с днем рождения в текущем месяце
=====================================================
*/

if(!defined('DATALIFEENGINE'))
{
die("Hacking attempt!");
}


$sql_result = $db->query("SELECT name, birthday FROM " . PREFIX . "_users WHERE NOT(birthday='0000-00-00') ORDER BY name");
while ($row = $db->get_row($sql_result)) {
$d=split("\-",$row['birthday']);
if ($d[1] == date('m')) {
$let = date('Y')-$d[0];
settype($let, "string");

$lastnum = $let[strlen($let)-1];

if ($lastnum == '1') {$zz = "год";}
else if ($lastnum == '2' || $lastnum == '3' || $lastnum == '4') {$zz = 'года';}
else {$zz = 'лет';}

if ($config['allow_alt_url'] == "yes") $link = "<a href=\"".$config['http_home_url']."user/".urlencode($row['name'])."/\">".$row['name']."</a> ($d[2]-го, $let $zz)";
else $link = "<a href=\"$PHP_SELF?subaction=userinfo&user=".urlencode($row['name'])."\">".$row['name']."</a> ($d[2]-го, $let $zz)";

if (date('d') == $d[2]) {$birthdays .= "<li><font color=red>$link</font></li>";}
else {$birthdays .= "<li>$link</li>";}

}
}
if (!$birthdays) {$birthdays = "<center>в этом месяце нет именинников</center>";}
else {$birthdays = "В этом месяце празднуют:<br />".$birthdays; }

?>

Написал Koribo, 18 февраля 2007 в 11:25 плохой комментарий   0   хороший комментарий
Новостей: 1, комментариев: 39, Пользователи
Карма:
Скажите пожалуйста, как установить я та понял, но как сделать запрос
"ALTER TABLE `dle_users` ADD `birthday` DATE NOT NULL;"
обьясните пожалуйста конкретнее

Написал Alexandr, 27 февраля 2007 в 23:58 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Странно с файлом от podgorniy все работает, а именно от Ualde не хочет работать.... Как исправить?

Написал Twisted Evil, 7 марта 2007 в 13:17 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Господа! у мну не работает... как выяснилось проблема видимо с profile.php
После добавления тех строчек отваливаеться userinfo, а точнее не работает. мод birthday вроде заработал, но без изменения даты в профиле смысла в нем нету... подскажите как поправить???

Написал Alexandr, 7 марта 2007 в 17:07 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Twisted Evil,
Это видимо проблема с версией 5.5, как исправить тоже не знаю.....

А тема здесь вроде умерла ranting


Попробуй вместо строки

$birthday = $parse->safeSQL($parse->process($_POST['birthday']));

Вставить

$birthday = $db->safeSQL($parse->process($_POST['birthday']));

Отпишись если поможет....


Написал Twisted Evil, 7 марта 2007 в 19:45 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
еееее! я сделал это! добил таки мод!
хоть у мну с php и туговато, но по мере всасывания в суть вопроса я понял, что мод написан очень криво и требует грамотной доработки!
единственный сенкс скажу, podgorniy, его скрипт написан без нареканий!

Написал kosen, 21 марта 2007 в 13:37 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Поделись решением... плз...

Написал Medik18, 22 марта 2007 в 14:31 плохой комментарий   0   хороший комментарий
Новостей: 3, комментариев: 113, Пользователи
Карма:
Для версии 5.3 покатило так:
надо: $birthday = $db->safeSQL($parse->process($_POST['birthday']));
вместо: $birthday = $parse->safeSQL($parse->process($_POST['birthday']));

Юзал модуль birthdays.php от podgorniy

makarov тоже верно подсказывает. Всем спасибо за модуль!

Информация



Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
Анализ Тиц и PR сайта