Страница 1 из 4

[Сценарий] С днем рождения!

Добавлено: Вс мар 08, 2015 10:46 am
Amarok
Научил Алису поздравлять хозяев с днем рождения.
Для этого нужно:
1. что б Алисочка знала сегодняшнее число
2. что б Алиса знала дату рождения

Итак, приступаем к обучению нашей девочки:
У меня все пользователи находятся в классе Peoples. Добавляем к классу свойство birthday. Далее, заполняем это свойство у каждого пользователя вписывая день рождения (число.месяц) без нолей.

Создаем сценарий birthday:

Код: Выделить всё

$today=gg("Time.DayOfMonthNum");
$today.=".";
$today.=gg("Time.MonthNum");
$objects=getObjectsByClass("Peoples");
foreach($objects as $obj) {
if (gg($obj['TITLE'].".birthday") == $today){
$from=gg('ThisComputer.EMail');
$to=gg($obj['TITLE'].".EMail4SMS");
$subj="HappyBirthday";
$bodytext="С днем рождения! ";
$bodytext.=getRandomLine(birthday);
$bodytext.=" (Алиса)";
SendMail($from, $to, $subj, $bodytext);}}
 
Файл birthday.txt кладем в htdocs\texts

В onNewMinute добавляем:

Код: Выделить всё

if (($h==13 and $m=="00")) { RunScript('birthday'); } //Поздравляю с днем рождения   

Re: С днем рождения!

Добавлено: Вс мар 08, 2015 10:55 am
Amarok
Кстати, приветствуется пополнение "базы поздравлений" (файла birthday.txt). Только одна просьба: поздравлялка должна быть нейтральна к полу, возрасту и семейному положению)

Re: С днем рождения!

Добавлено: Пн апр 13, 2015 6:23 am
Controer
Amarok писал(а):Научил Алису поздравлять хозяев с днем рождения.
Для этого нужно:
1. что б Алисочка знала сегодняшнее число
2. что б Алиса знала дату рождения

Итак, приступаем к обучению нашей девочки:
У меня все пользователи находятся в классе Peoples. Добавляем к классу свойство birthday. Далее, заполняем это свойство у каждого пользователя вписывая день рождения (число.месяц) без нолей.

Создаем сценарий birthday:

Код: Выделить всё

$today=gg("Time.DayOfMonthNum");
$today.=".";
$today.=gg("Time.MonthNum");
$objects=getObjectsByClass("Peoples");
foreach($objects as $obj) {
if (gg($obj['TITLE'].".birthday") == $today){
$from=gg('ThisComputer.EMail');
$to=gg($obj['TITLE'].".EMail4SMS");
$subj="HappyBirthday";
$bodytext="С днем рождения! ";
$bodytext.=getRandomLine(birthday);
$bodytext.=" (Алиса)";
SendMail($from, $to, $subj, $bodytext);}}
 
Файл birthday.txt кладем в htdocs\texts

В onNewMinute добавляем:

Код: Выделить всё

if (($h==13 and $m=="00")) { RunScript('birthday'); } //Поздравляю с днем рождения     
А где найти onNewMinute , или это такой сценарий?

У меня все пользователи находятся в классе Peoples. Добавляем к классу свойство birthday. Далее, заполняем это свойство у каждого пользователя вписывая день рождения (число.месяц) без нолей.

Можете выложить скриншот примера, а то я не разберусь.

Re: С днем рождения!

Добавлено: Пн апр 13, 2015 7:27 am
Amarok
Screenshot_1.jpg
Screenshot_1.jpg (18.54 КБ) 15823 просмотра
Screenshot_2.jpg
Screenshot_2.jpg (8.99 КБ) 15823 просмотра
Screenshot_3.jpg
Screenshot_3.jpg (89.53 КБ) 15823 просмотра
И
Screenshot_5.jpg
Screenshot_5.jpg (12.5 КБ) 15822 просмотра

Re: С днем рождения!

Добавлено: Пт окт 09, 2015 4:04 pm
alexon
А можете подробнее объяснить где создать класс Peoples и как присвоить свойство birthday.

Re: С днем рождения!

Добавлено: Чт окт 15, 2015 2:43 pm
Vovix
Amarok, я посмел немного переделать сценарий birthday,

цель: я хотел, что-бы в свойстве у объекта (пользователя) .Birthday, записывать не только день и месяц (да еще и без ноля впереди), а еще и год (вдруг в дальнейшем пригодиться), т.е. там у меня дата рождения записана в обычном, привычном виде, например: 01.12.1973
ну и у меня используется класс Users (в вашем примере Peoples)

вот код

Код: Выделить всё

say ("Проверим, есть ли сегодня дни рождения у кого-нибудь из пользователей.",-1);
$TCd=gg("ThisComputer.DateD");
$TCm=gg("ThisComputer.DateM");
$fullName='unknown';
$objects=getObjectsByClass("Users");
foreach($objects as $obj) {
     $user=$obj['TITLE'];
     list($USd, $USm, $USy) = explode(".", gg($user.".Brithday"));
    if (($USd == $TCd)&($USm == $TCm)) {
         $fullName=gg($user.".fullName");
        $bodytext=$fullName.": ";
         $bodytext.=getRandomLine(birthday);
        $bodytext.=" С днем рождения! (Алиса)";
        say($bodytext,1);   
        runScript('send_mes', array('to'=>$fullName,'subj'=>"- HappyBirthday -",'msg'=>$bodytext,'what'=>"SMS"));
    } 
  
}
if ($fullName=='unknown') {
    say ("На сегодня я дней рождения не обнаружила.",-1);
}

Re: С днем рождения!

Добавлено: Пн окт 19, 2015 4:53 pm
alexon
А на мой вопрос ни кто не ответит?

Re: С днем рождения!

Добавлено: Пн окт 19, 2015 5:05 pm
Amarok
alexon писал(а):А на мой вопрос ни кто не ответит?
Peoples.zip
(2.16 КБ) 445 скачиваний

Re: С днем рождения!

Добавлено: Пн окт 19, 2015 10:18 pm
ErmolenkoM
alexon писал(а):А можете подробнее объяснить где создать класс Peoples и как присвоить свойство birthday.
Читаем ВиКи. Раздел Азбука. Про объекты и свойства тут: http://majordomo.smartliving.ru/Main/BasicsObjects

Re: С днем рождения!

Добавлено: Чт окт 22, 2015 1:02 pm
alexon
Amarok писал(а):
alexon писал(а):А на мой вопрос ни кто не ответит?
Peoples.zip
Не могу настроить. Вроде все правильно делаю. А код который в peoples.zip куда прикрутить?