Форум русской поддержки Joomla!® CMS
17.08.2017, 23:26:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Основной курс по Joomla
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

Как сделать анонсы событий в Joomla?

 (Прочитано 443 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Аня
Завсегдатай
*****

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 660


Копатыч нестабилен!


« : 08.03.2017, 15:48:41 »

Добрый день! Мне нужен на сайте раздел с анонсами мероприятий, чтобы отражалась дата мероприятия и была бы сортировка по этой дате. Есть идеи - как это сделать?
Я думаю - может,  использовать дату публикации, она в том виде, что есть, мне все равно не нужна, в качестве даты события, но нужно отключить ее логику и назначить свою. Как - не понимаю пока.
А может, есть другие способы?
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 2123



« Ответ #1 : 08.03.2017, 16:04:51 »

Если дата публикации > текущей даты материал считается не опубликованным.
Да  помощи не хватает вводных данных. Что такое событие и т.д
Ну а так варианат испольнение как всегда 3.
1. модуль.
2. плагин
3. Комопнент.
 
Записан
Аня
Завсегдатай
*****

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 660


Копатыч нестабилен!


« Ответ #2 : 08.03.2017, 16:25:24 »

Я не хочу ничего лишнего ставить. Хотя, возможно, придется. Анонсы событий - это материалы, которые созданы и опубликованы сейчас, но объявляют о событиях, которые случатся в будущем. Например, в сентябре конференция, в июне семинар, в августе круглый стол и т.п. Мне нужно, чтобы список таких материалов-объявлений о событиях сортировался по дате событий.
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 2123



« Ответ #3 : 08.03.2017, 16:27:33 »

Ну возможно стоит поставить отдельный компонент событий и не париться. Где все будет из коробки. Веь могу понадобиться такие штуки как фильтр по месяцу и т.д.
Записан
Аня
Завсегдатай
*****

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 660


Копатыч нестабилен!


« Ответ #4 : 08.03.2017, 16:39:12 »

Компонент календаря?
Дело в том, что у меня не театр, а научный институт, там не нужна регистрация, билеты и прочее, это не афиша. Это просто информация о будущих событиях, которые нужно иметь возможность отсортировать по особой дате. Я боюсь, что в компонентах типа афиша и календарь будет много всего лишнего.
« Последнее редактирование: 08.03.2017, 16:55:38 от Аня » Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 2123



« Ответ #5 : 08.03.2017, 16:53:45 »

Компонент календаря?
Событий, ну RSEVents например.
Записан
Torchez
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 93



« Ответ #6 : 09.03.2017, 11:15:36 »

А почему просто не вывести дату в заголовок материала и выводить материалы хоть списком, хоть блогом с нужной сортировкой?

P.S. если сделать подразделы год/месяц/день, то можно вообще выводить как угодно. Расставив теги, можно устроить и тематическую сортировку. Вплоть до тем круглых столов и семинаров.
« Последнее редактирование: 09.03.2017, 11:19:31 от Torchez » Записан
Аня
Завсегдатай
*****

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 660


Копатыч нестабилен!


« Ответ #7 : 09.03.2017, 17:16:16 »

Думаю об этом. Дата в заголовке - уродливо будет. Но можно заголовок скрыть и продублировать его без даты в интротексте, например - извращение, конечно, но и компонент ставить неохота...
Раньше я ставила эту дату события в интротексте, но поскольку анонсов немерянно, неудобно.
Записан
fbr
Живу я здесь
******

Репутация: +146/-6
Online Online

Сообщений: 1321


« Ответ #8 : 09.03.2017, 18:56:23 »

Можно попробовать сортировать по дате начала публикации. Ее задать легко
А выводить вместо нее дату окончания публикации, ее тоже легко задать стандартно
В выводе даты блога/материала нужно будет просто переопределить

$displayData['item']->publish_up
на
$displayData['item']->publish_down
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 2123



« Ответ #9 : 09.03.2017, 19:13:40 »

Дата событий может быть и на сл.неделе. А если ее впихать в дату публикации, то и материал будет не обупликован. Придется перебирать модель.
Записан
fbr
Живу я здесь
******

Репутация: +146/-6
Online Online

Сообщений: 1321


« Ответ #10 : 09.03.2017, 19:57:51 »

Дата публикации выводиться не будет! Ее можно поставить какую угодно, лишь бы в порядке соответствующем последовательности событий

А дата окончания публикации - это то что будет выводиться
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 2123



« Ответ #11 : 09.03.2017, 20:06:53 »

Дата публикации выводиться не будет! Ее можно поставить какую угодно, лишь бы в порядке соответствующем последовательности событий
Да не выводе дело. А запросе в базу. какой нафиг вывод в model.
В самом запросе есть:
Если нет прав на редактирование
Получить только маетриалы у которых дата публикации равно 0днб или меньше текущей даты.
И где  дата снятия с публикации  = 0дню или больше текущей даты
Для этого и существует дата начала  и окончания публикации.
Код
		if ((!$user->authorise('core.edit.state', 'com_content')) && (!$user->authorise('core.edit', 'com_content')))
{
$query->where('(a.publish_up = ' . $nullDate . ' OR a.publish_up <= ' . $nowDate . ')')
->where('(a.publish_down = ' . $nullDate . ' OR a.publish_down >= ' . $nowDate . ')');
}
 
Поэтому и не выйдет их использовать. Отсюда и приговор либо юзать cck с расширяемость, либо спец компонент в котором все что нужно есть в коробке. Ну или пихать костыли.

P.S базовый функционал знать надо.
« Последнее редактирование: 09.03.2017, 20:16:26 от Septdir » Записан
fbr
Живу я здесь
******

Репутация: +146/-6
Online Online

Сообщений: 1321


« Ответ #12 : 09.03.2017, 21:31:04 »

Причем здесь model?

Событие 1 - 1 апреля
Событие 2 - 10 апреля

В менеджере материала:
Событие 1  дата публикации - вчера, дата снятия - 1 апреля
Событие 2 дата публикации - позавчера, дата снятия - 10 апреля
(или просто время разное, через час)

Вывод с сортировкой по дате публикации, отображаемая дата - дата снятия

P.S базовый функционал знать надо.[/i]
Обязательно свысока? Как тут удержаться Azn

Записан
fbr
Живу я здесь
******

Репутация: +146/-6
Online Online

Сообщений: 1321


« Ответ #13 : 09.03.2017, 21:31:51 »

del
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 2123



« Ответ #14 : 09.03.2017, 21:58:18 »

Причем здесь model?
При то что именно в model идет выборка
Событие 1 - 1 апреля
Событие 2 - 10 апреля

В менеджере материала:
Событие 1  дата публикации - вчера, дата снятия - 1 апреля
Событие 2 дата публикации - позавчера, дата снятия - 10 апреля
И снова не выйдет. Как тогда смотреть прошедшие события, это тоже очень важно. Это раз.
Два сортировка должна тогда по дате снятия. Под ням когда событие, а не то когда оно было создано + события зачатую создают даже до публикации. А потом делают анонс(начало публикации).
По факту нужны все поля.
И дата публикации и дата снятия с публикации - это базовые поля. забудь о них чтобы работал с ними корректно придется править модель и не хило.
По факту нужны помимо стандартных. еще 2. Дата начала мероприятия и Дата оканчния.
+ сортировки + мероприятия многдневные должны быть сразу в нескольких днях и т.д
Все в итоге свидеться в отдельному заточенному компоненту. К какому, ну тут выбирайте сами. Их куча есть платные есть бесплатные.
Спилить такое в теории можно и на материал, но их придется править причем серьезно и на моменте выборки, а т.к тригров на запрос в нем нет, придется либо переопределять модель целиком, либо пихать костыль который слетит при первом же обновлении.

Если же обычный функционал событий(фильтры календарь и т.д)не нужен то можно сделать, как предложенно выше вставить в title дату чтобы было в таком виде
[17-02-22 15:10] Заголовок
Затем дернуть получит из него дату регуляркой и убрать ее из заголовка, ну и привести в нужный формат через JHTML
Код приводить не буду ибо с телефона я его просто не напишу. Но если надо могу завтра сделать.
« Последнее редактирование: 09.03.2017, 22:20:30 от Septdir » Записан
robert
Профи
********

Репутация: +385/-15
Offline Offline

Пол: Мужской
Сообщений: 4218


« Ответ #15 : 09.03.2017, 23:30:43 »

Не стал вникать в тему, но не понял 2 момента:
Как тогда смотреть прошедшие события
Ну, мне кажется, что прошедшие события не анонсируют.
Два сортировка должна тогда по дате снятия. Под ням когда событие, а не то когда оно было создано + события зачатую создают даже до публикации.
Можно и по датам начала публикации, если они идут в том же порядке, тем более можно их сделать прошедшими - ведь они не будут выводиться, верно?
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 2123



« Ответ #16 : 09.03.2017, 23:39:07 »

Ну, мне кажется, что прошедшие события не анонсируют.
Прошедшие нет, а будущие да.
Можно и по датам начала публикации, если они идут в том же порядке, тем более можно их сделать прошедшими - ведь они не будут выводиться, верно?
Вот именно что нужно чтобы они выводились. Вспомним самое начало =>
Мне нужен на сайте раздел с анонсами мероприятий, чтобы отражалась дата мероприятия и была бы сортировка по этой дате.
Дата публикации не подходит. По причине того что в запросе в базу все четко прописано.
Дата публикации < текущей даты.
Дата окончания публикации тоже не подойдет, тоже по очевидной причине тогог, что материал снимется сразу же после наступления даты, к примеру в 10.03.17 в 00:00 по северному времени.
И третий важный пунет, ни по одну из этих полей не фильтра. То бишь выборки материалов за определенную дату, скорее всего будущею.
Отсюда делаем простейший вывод, нужны нормальные ивенты ставьте компонент.
Если же надо просто сделать анонсы а на функции все равно, то можно аж 2 варианта сделать.
1. Использовать тайт я писал выше как.
2. Который забыли. Дата мероприятия делать тэгом.


Записан
robert
Профи
********

Репутация: +385/-15
Offline Offline

Пол: Мужской
Сообщений: 4218


« Ответ #17 : 09.03.2017, 23:44:53 »

Прошедшие нет, а будущие да.
Тогда с прошедшими нет проблем.
Вот именно что нужно чтобы они выводились. Вспомним самое начало =>Дата публикации не подходит.
"Они" - это что по-вашему? Под "они" я имел в виду дату начала (publish_up), а не окончания публикации (publish_down).
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 2123



« Ответ #18 : 10.03.2017, 00:37:18 »

Под "они" я имел в виду дату начала (publish_up)
Не подойдёт.  Ибо не получится вывести будущее событие. Ну например сегодня вывести события на сентябрь.
Ни одна из дат публикации не подойти.
Если использовать дату начала то не будут выводиться будущие события.
Если использовать дату окончания то не будут выводиться прошлые события.
А все из-за запроса в базу в котором эти поля используются по назначению.
А для фильтров  и других функций 'событий' нужно выводить все  и будущее и настоящие и прошлое.
Записан
fbr
Живу я здесь
******

Репутация: +146/-6
Online Online

Сообщений: 1321


« Ответ #19 : 10.03.2017, 00:47:42 »

Еще раз попробую объяснить свою мысль:

Дата публикации только для синхронизации:
событие 1 сегодня 14:00
событие 2 сегодня 15:00

Соответственно они будут выводиться в порядке даты публикации

И под это дело подгонять дату снятия:
событие 1 - 1 апреля
событие 2 - 10 апреля

В чем проблема?

...Ну, мне кажется, что прошедшие события не анонсируют.
Я тоже так считаю)

Слетел с публикации - в архив или в другой раздел "Старые анонсы" ))

пс. Или вообще не заморачиваться с датой снятия с публикации
сортировать по публикации, а дату выводить в интротексте.
« Последнее редактирование: 10.03.2017, 00:52:34 от fbr » Записан
robert
Профи
********

Репутация: +385/-15
Offline Offline

Пол: Мужской
Сообщений: 4218


« Ответ #20 : 10.03.2017, 01:07:24 »

Сейчас сделал 2 материала:
- бла: publish_up - 07-03-2017, publish_down - 09-09-2017
- бла2: publish_up - 08-03-2017, publish_down - 10-09-2017
Сортировка: publish_up asc
Заголовок: publish_down (title)
Все вроде корректно выводится.


* Clipboard01.jpg (88.19 Кб, 1366x768 - просмотрено 7 раз.)
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 2123



« Ответ #21 : 10.03.2017, 01:12:17 »


Дата публикации только для синхронизации:
событие 1 сегодня 14:00
событие 2 сегодня 15:00



И под это дело подгонять дату снятия:
событие 1 - 1 апреля
событие 2 - 10 апреля
1 проблема каждый раз придётся считать дату начала. А они в один день и сразу на год редко добавляется. Например сегодня я добавляю события на 10 сентября и 3 августа. А через неделю на 14 августа 7 апреля и 30 декабря, вопрос через сколько матералов мозг взорветься.
Втрое дата окончания публикации означает снятие с публикации.  Больше вывести их не выйдет пока дату окончания не поменяешь => в вашем варианте это сменить дату события.
Я ещё раз пишу, наверно последний раз. Дата создания  Дата начала публикации и дата окончания публикации.  Существуют для чётко определённых,  целей. Использование их для чего либо другого привет к проблемам и взрыву мозга.
Интротекс тоже вариант но в отличии от тайтла по нему не посортируешь.
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 2123



« Ответ #22 : 10.03.2017, 01:14:03 »

Сейчас сделал 2 материала:
- бла: publish_up - 07-03-2017, publish_down - 09-09-2017
- бла2: publish_up - 08-03-2017, publish_down - 10-09-2017
Сортировка: publish_up asc
Заголовок: publish_down (title)
Все вроде корректно выводится.

Ну как у админа они всегда будут выводиться.  
Но а теперь скажите как обычному юзеру посмотреть эти материалы 11 числа?  Или 6 числа.
Эти материалы будут выводиться
Бла 07.03 - 09.09
Бла2 08.03 - 10.09
Всё остальное время они не опубликованы.
« Последнее редактирование: 10.03.2017, 01:18:01 от Septdir » Записан
robert
Профи
********

Репутация: +385/-15
Offline Offline

Пол: Мужской
Сообщений: 4218


« Ответ #23 : 10.03.2017, 01:19:22 »


Ну как у админа они всегда будут выводиться.
На screenshot: гость, не админ.
Но а теперь скажи как мне посмотреть эти материалы 11 числа?  Или 6 числа.
Какого месяца? Если октября, то анонсировать уже нечего.
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 2123



« Ответ #24 : 10.03.2017, 01:23:56 »

На screenshot: гость, не админ.Какого месяца? Если октября, то анонсировать уже нечего.
А как быть с прошедшими мероприятиями?
Календарем мероприятий да и за временем следить надо иначе событие у вас в 19.00 а в 12 его уже нет.
За датой начала тоже и будет ради сортировки она доходить до 12 года. 
Нет если все это не нужно, то тогда зачем вообще ломать голову.
Как верно сказанно вставить в интро текст да использовать сортировку по order
И не нужно велосипедов.
Записан
robert
Профи
********

Репутация: +385/-15
Offline Offline

Пол: Мужской
Сообщений: 4218


« Ответ #25 : 10.03.2017, 01:28:01 »

А как быть с прошедшими мероприятиями?
Еще раз: тема называется "Как сделать анонсы событий...?". Зачем анонсировать прошедшие события?
Календарем мероприятий да и за временем следить надо иначе событие у вас в 19.00 а в 12 его уже нет.
Поставим 23:59:59, какие проблемы?
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 2123



« Ответ #26 : 10.03.2017, 01:39:36 »

Еще раз: тема называется "Как сделать анонсы событий...?". Зачем анонсировать прошедшие события?Поставим 23:59:59, какие проблемы?
А не надо анонсировать, а вот смотреть прошедшие конференции и материалы по ним нужно.

Хорошо а как быть с событиями длинной в два дня конфиренциями например.  И как при таком раскладе посмотреть события только в сл месяце.
Напримню ещё что в начале говорилось что событий не мерянно,  и надо сделать удобно и на выводе и на вводе.
Ну да ладно вы правы я не прав.
Главное просто сделать. А я по привычке сразу думаю что ещё может понадобиться.
Например в данной задаче в моем понимании нужны:
Удобный календарь.
Удобная выборка по месяцу по году по неделе.
Возможность связать материалы.
Удобное добавление без взрыва мозга.
Возможность использовать ни только дату начала но и дату окончания, например, если событие идёт не один день.
Участники, если мы говорим о конференциях.
Рассылки. 
Архив, чтобы можно было посмотреть прошедшие мероприятия и отзывы к ним.
Возможность повторять событие.
Дата добаления
Ну и ещё с 5 менее важных функций.

А главное что это умеет практически любой компонент событий. Да даже если писать свой то ничего сложного тут нет.
« Последнее редактирование: 10.03.2017, 01:58:54 от Septdir » Записан
robert
Профи
********

Репутация: +385/-15
Offline Offline

Пол: Мужской
Сообщений: 4218


« Ответ #27 : 10.03.2017, 01:57:19 »

Все нормально. Не спорю, что могут существовать лучшие решения. Просто хотел выяснить, что предложенный fbr вариант вполне имеет право на жизнь.
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 2123



« Ответ #28 : 10.03.2017, 02:06:58 »

Все нормально. Не спорю, что могут существовать лучшие решения. Просто хотел выяснить, что предложенный fbr вариант вполне имеет право на жизнь.

Ну любой вариант имеет право на жизнь. Поэтому я и написал что я не прав.  Но права на жизнь и оптимальность разные вещи.
Можно и просто заклментить 2 строки в модели и юзать обе даты без последствий.
Или добавить ещё одно поле.
« Последнее редактирование: 10.03.2017, 02:25:51 от Septdir » Записан
Аня
Завсегдатай
*****

Репутация: +32/-0
Offline Offline

Пол: Женский
Сообщений: 660


Копатыч нестабилен!


« Ответ #29 : 11.03.2017, 20:57:11 »

Проблема еще в том, что этих анонсов уже накопилось порядочно, и пользователям - консервативным литературоведам - желательно их видеть в одном месте - и старые и новые, они обожают старые анонсы. Пока у меня даты стоят в интро-тексте. Cортировки по ним нет, а добавление идет хаотически.

Перекинуть старые анонсы в Jevents не просто, там материалы устроены совсем по-другому, чем стандартные материалы Joomla - структура таблиц другая.

Я согласна, что лучшее решение было бы использовать Jevents или тот же К2 - жаль, что не подумала об этом сначала. Сейчас хочу малой кровью обойтись. Если, конечно, считать  полное нарушение логики системы с датой публикации "малой кровью". Какой-то плагин написать, чтобы материалы публиковались независимо от даты? Это первый путь. Для меня слишком сложно.

Или все-таки использовать заголовок для сортировки - но его скрыть,  выводить альтернативный заголовок - сделать экстраполе при помощи Fieldsattach, чтобы уже не было полной крезы.

В общем, выбор между двумя извращениями. О дате снятия с публикации думала, но отмела идею - нужно, чтобы все анонсы оставались на сайте.
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet