Друзья, совершенно новая, и довольно уникальная штука - это Календарь.
Попробовал, немного разобраться в работе. Возникло множество идей, но вот реализовать их... Возможно ли? Это и хотелось бы спросить у наших супер-умов - создателей программы КБ и Календаря в частности.
А идея самая простая. Как организовать функционал, как в приложении органайзера на мобильном?
Задача 1. Заводить задание, но выбирать для него период, дни исполнения, часы и минуты?
Задача 2. Удалять из задания, ну или проставлять статус "нет необходимости" к определенному заданию из периода? (Допустим, каждый 3 день недели я хожу на тренировки. Но в апреле, 23го числа, я не пойду на тренировку, и мне надо сделать неактивным это напоминание, либо проставить статус "нет необходимости".
1
Работа с календарем или систематические задания.
Автор dolphin, 12 марта 2014 15:02
Сообщений в теме: 6
#1
Отправлено 12 Март 2014 - 15:02
#2 Гость_Roman_*
Отправлено 12 Март 2014 - 15:59
1. Период можно задать, но однократный. Чтобы одно задание повторилось в календаре в разное время несколько раз, необходимо добавить ещё одно событие по другим датам в настройки календаря.
2. Создаёте в таблице два фильтра на поле "Статус", а в календаре добавляете два события на одну и ту же таблицу, но настроенные на эти разные фильтры. Таким образом можно будет видеть в календаре записи из одной таблицы, но с разным цветовым форматированием.
2. Создаёте в таблице два фильтра на поле "Статус", а в календаре добавляете два события на одну и ту же таблицу, но настроенные на эти разные фильтры. Таким образом можно будет видеть в календаре записи из одной таблицы, но с разным цветовым форматированием.
#3
Отправлено 13 Март 2014 - 06:18
Roman (12 Март 2014 - 15:59) писал:
1. Период можно задать, но однократный. Чтобы одно задание повторилось в календаре в разное время несколько раз, необходимо добавить ещё одно событие по другим датам в настройки календаря.
1. Дата начала
2. Дата окончания
И есть еще поле с частотой, равное дню недели или нескольким дням, например, если оно равно 15- то задание должно прописаться по понедельникам и пятницам. Если это поле равно 1234567 - то задание должно прописываться на каждый день, в течении периода.
Вот такое возможно ли реализовать?
Цитата
2. Создаёте в таблице два фильтра на поле "Статус", а в календаре добавляете два события на одну и ту же таблицу, но настроенные на эти разные фильтры. Таким образом можно будет видеть в календаре записи из одной таблицы, но с разным цветовым форматированием.
Как идея... Может быть создать представление, которое будет создавать(заполнять) таблицу, настроенную на отображение календаря?...
То есть, выбрали мы дату начала, дату конца и период(о котором я писал выше - дни недели), после нажали на кнопку добавить и вуаля - нужная таблица, настроенная на календарь, заполнилась этим событием. Это было бы очень удобно реализовать непосредственно в календаре!!! Но тут необходимо продумать и удаление(оно будет точно таким же, но только удаление). Мне кажется, это добавить функциональности Вашему календарю.
#4 Гость_Roman_*
Отправлено 13 Март 2014 - 09:32
Первый пункт пока не выйдет реализовать. Но календарь обязательно будет развиваться, и, возможно, такой функционал появится.
#5
Отправлено 13 Март 2014 - 09:37
Спасибо. Тем временем я попробую первый пункт выполнить как отдельное представление, где можно будет ввести период от и до(дату, время), а также указать по каким дням недели добавлять, и при нажатии на кнопку все это разместится в нужной таблице, в следствии чего появится в календаре, настроенном на эту таблицу.
#6
Отправлено 13 Март 2014 - 11:11
Итак, представление полностью под себя сделал. Выкладываю основные моменты, возможно кому-то пригодится:
1. Как получить данные с датой и другими полями заострять внимание не буду.
2. Мы получим с формы, значение частоты (тут у нас хранится день недели):
Если будут дополнительные вопросы, пожалуйста, не стесняйтесь, спрашивайте.
1. Как получить данные с датой и другими полями заострять внимание не буду.
2. Мы получим с формы, значение частоты (тут у нас хранится день недели):
$chastota = $_REQUEST['chastota'];После, эту строку разделим на составляющие, с целью запустить цикл по каждому из значений частоты выполнения задания:
$chas = str_split($chastota); foreach ($chas as $key) { if ($key== 7) { $key= "0"; }; // поскольку воскресенье у нас равно 0, то мы из семерки должны превратить нуль // тут далее пойдет цикл по датам }3. Прежде всего, нам необходимо превратить дату в секунды (я не программист, но так часто делают гуру программирования, чтобы высчитывать все четко по дням
list($d,$m,$y) = explode(".",$date1); $time1 = mktime(0,0,0,$m,$d,$y); list($d,$m,$y) = explode(".",$date2); $time2 = mktime(0,0,0,$m,$d,$y); // В этом примере $date1 - это дата начала периода, а $date2 - дата конца периода, полученные из формы отображения представления4. После мы должны запустить цикл с шагом в 1 день по выбранным нами датам:
while ($time1<=$time2) { // тут будем выполнять основную программу добавления в таблицу, на которую настроен календарь $time1+=86400;// прибавляем 86400 секунд (24 часа, ну или 1 день) }5. И в завершении, мы должны добавить нужны нам значения в таблицу, если заданная частота совпадает с днем недели из нашего цикла:
$den = date('w',$time1); // получаем значение дня недели из текущего перебора дней if ($den == $key) { // И если частота совпала, мы здесь будем присваивать значения $data[], а после их занесем в нужную нам таблицу с помощью insert_query }
Если будут дополнительные вопросы, пожалуйста, не стесняйтесь, спрашивайте.
#7
Отправлено 17 Май 2014 - 19:18
dolphin (13 Март 2014 - 11:11) писал:
Если будут дополнительные вопросы, пожалуйста, не стесняйтесь, спрашивайте.
Здравствуйте!
У меня такой вопрос. Есть поле Карточка (список) с четырьмя значениями - Свободна, Связана, Неактивна, Неоплачена.
Нужно вычисление - в 0 часов 1-го числа каждого месяца значение сбрасывается на Неоплачена...
Сообщение отредактировал All_ex74: 17 Май 2014 - 19:30
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных