Регистрация
Вход через соцсети
Восстановление пароля

Подключение нескольких разделов к календарю

Новый топик
20.03.2009, 14:58
Ответить | Цитировать
Шугуров Максим

Зарегистрирован:
2009-03-13
Сообщений: 5

У меня возник такой вопрос, необходимо подключить к одному календарю несколько разделов с информацией, чтобы, к примеру, пользователь кликнув по ссылке увидел список объектов, появившихся в этот день в различных разделах, скажем, новостей из разных категорий.
25.03.2009, 19:46
Ответить | Цитировать
Denis
Denis

Зарегистрирован:
2008-07-15
Сообщений: 666

В поставке модуля такого не предусмотрено

Ксю доставляет...
26.03.2009, 12:03
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

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


Сделайте "фиктивный" компонент, в котором укажите в системных настройках $ignore_all=true, а далее сформируйте собственный sql-запрос, который будет объединять несколько таблиц (компонентов) в одну кучу через union (union all). Далее настройте календарь на этот "фиктивный" компонент. И не забудьте добавить в компонент поле Date - типа Дата и время с форматов event

Temet nosce...
30.03.2009, 13:27
Ответить | Цитировать
Шугуров Максим

Зарегистрирован:
2009-03-13
Сообщений: 5

DiGGy писал(а):
Сделайте "фиктивный" компонент, в котором укажите в системных настройках $ignore_all=true, а далее сформируйте собственный sql-запрос, который будет объединять несколько таблиц (компонентов) в одну кучу через union (union all). Далее настройте календарь на этот "фиктивный" компонент. И не забудьте добавить в компонент поле Date - типа Дата и время с форматов event


Спасибо, хорошее решение, я примерно так и поступил.
03.08.2009, 09:12
Ответить | Цитировать
Гость
Гость

Если не трудно, приведите пример системных настроек с использованием $ignore_all.
Пытаюсь тут тоже составить свой запрос, но не работает, просто этот свой запрос не выполняется.
03.08.2009, 11:35
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Код:
// отключение sql-запроса по умолчанию
$ignore_all = true;

// формирование sql-запроса вручную
$query_select = "1, e.FIO,cs.Specialsts_Name,cf.Filials_Name, date_format(a.Date,'%Y-%m-%d'), a.Time, a.Client, a.Phone, a.Shtat, a.Komment, a.Status, a.User_ID, a.IP, a.Created, a.LastUser_ID, a.LastIP, a.LastUpdated, ifnull(u1.ForumName,u1.Login), ifnull(u2.ForumName,u2.Login)";
$result_vars = "$f_RowID, $f_Doctor, $f_Specialist, $f_Filial, $f_Date, $f_Time, $f_Client, $f_Phone, $f_Shtat, $f_Komment, $f_Status, $f_User_ID, $f_IP, $f_Created, $f_LastUser_ID, $f_LastIP, $f_LastUpdated, $f_ModerAdd, $f_ModerUpdate";
$query_order = "a.Date, a.Time";
$query_from = "Message75 a, Message77 s, Message73 e left join Classificator_Specialsts cs on cs.Specialsts_ID=e.Specialist left join Classificator_Filials cf on cf.Filials_ID=s.Filial left join User u1 on u1.User_ID=a.User_ID left join User u2 on u2.User_ID=a.LastUser_ID";
$query_where = "a.Checked=1 and s.Checked=1 and e.Checked=1 and a.Shtat=s.Message_ID and s.Employer=e.Message_ID";


Temet nosce...
03.08.2009, 14:19
Ответить | Цитировать
Гость
Гость

Спасибо,
а если нужен UNION то куда его запихнуть?
03.08.2009, 14:52
Ответить | Цитировать
Гость
Гость

Вот, надо состряпать что-то типа этого:
Цитата:
(SELECT a.`Message_ID`, a.`Keyword`, a.`Subdivision_ID` FROM `Message2` AS a WHERE a.`Subdivision_ID`='100' ORDER BY RAND() LIMIT 3)
UNION
(SELECT a.`Message_ID`, a.`Keyword`, a.`Subdivision_ID` FROM `Message2` AS a WHERE a.`Subdivision_ID`!='100')
LIMIT 10
03.08.2009, 16:22
Ответить | Цитировать
Гость
Гость

Все-ж таки опять не обошлось без курения системных файлов ядра, и в итоге выяснилось, что при ignore_all все равно запрос не полностью свой.
Есть две обязательных вещи (query_select и query_from), которые надо сформировать чтобы они потом вставились сюда:
Цитата:
$message_select = "SELECT".(!$ignore_calc ? " SQL_CALC_FOUND_ROWS" : "")." ".$query_select." FROM ".$query_from. ... далее необязательные...

то бишь в вышеуказанном случае с UNION пришлось так изголяться над запросом, чтобы в его начале не было скобки и начинался он с SELECT...FROM... как хочет Неткат.
198 196 2009-08-03 16:22:26 9605
Описание проекта