17.02.2019, 09:05
|
|
Аспирант
|
|
Регистрация: 27.10.2012
Сообщений: 80
|
|
Праздники и события я думаю можно вынести в отдельные файлы "html", для праздников один файл, для рабочих суббот второй, для особых событий третий, и четвертый для простых событий которые в календаре не подсвечиваются а только выводятся текстом в диве внизу,
даты в файлах заносить в виде
хх.хх.хххх-хххх г. чтобы можно было указать начало события, или конец события, ну или промежуток годов когда это событие показывается, например новый год начали отмечать в 193х или 194х году, точно не помню, надо в вики посмотреть, значит указыаем 01.01.19хх-хххх, а до этого года нг выводится как будний день,
Рождество отмечалась до революции, при союзе не отмечалось, а после распада союза опять начали отмечать, значит в файл заносим две записи, 07.01.хххх-1917 и 07.01.1991-хххх, что значит что Рождество подсвечиваться до 1917 и после 1991 года...
как то так мне представляется реализация календаря...
|
|
20.02.2019, 00:37
|
|
Аспирант
|
|
Регистрация: 27.10.2012
Сообщений: 80
|
|
Вопрос такой, может правильнее заносить даты событий в формате число месяц ≤/≥год?
С знаками ≤ и ≥?
И в случае необходимости указывать года через запятую?
Например 01.07.≤1917,≥1991 Рождество
Как правильнее и универсальнее заносить даты событий/праздников в отдельные файлы?
|
|
20.02.2019, 11:24
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
Сообщение от m~r.Nemo
|
Например 01.07.≤1917,≥1991 Рождество
|
А Рождество всегда было что-ли? А зачем Крещение Руси тогда? А до него что было? Перун и компания? Ну вот! И это только про территорию Руси - Россия, Украина и Беларусь. Вы хоть разберитесь в датах что вы хотите. Претендуете на универсальность, но не понимаете что она намного шире. Поэтому и нет одного календаря js на все случаи жизни, всегда есть какие-то ограничения необходимости. Да и сам объект Date в js не безграничен, от -271821 до 275760 года, Григорианская система исчисления, это вам на всякий случай, а вдруг.
Последний раз редактировалось Rise, 20.02.2019 в 11:35.
|
|
21.02.2019, 04:37
|
|
Аспирант
|
|
Регистрация: 27.10.2012
Сообщений: 80
|
|
Rise,
Ну в принципе можно добавить минимальное и максимальное значения для поля ввода, типа
<input type="number" size="4" name="year" min="1900" max="2100" value="2019">
ну для большей универсальности можно чуть больше...
<input type="number" size="4" name="year" min="1850" max="2200" value="2019">
но мне кажется это почему то лишним, ведь никто не будет вводить подобные даты чтоб посмотреть календарь за эти года, поэтому я думаю надо смотреть на вещи реально, и ограничиться датами советского периода(максимум 1900г.) ну и на 50-100 лет вперед, так что крещение Руси и более ранние периоды это уже слишком...
Для начала под словом универсальность я подразумевал максимально удобную навигацию, как два выпадающих списка для выбора числа и месяца и поля ввода для года, с добавлеными кнопками < и > плюс скрытая/появляющаяся кнопка сегодня, и кнопка для изменения ориентации календаря(с меняющимся текстом, стрелка вправо при вертикальном расположении дней и вниз при горизонтальном),
Сначала хотелось бы получить календарь см выше, с первым днем недели пн, подсвеченными днями пред/будущ мес, подсвеченными выходными, и подсвеченными сегодняшним днем недели и числом, а подсветка праздников пока только в планах...
просто я интересуюсь как лучше и правильнее это реализовать...
|
|
22.02.2019, 00:33
|
|
Аспирант
|
|
Регистрация: 27.10.2012
Сообщений: 80
|
|
Поскольку календарь предназначен для вывода на страницах сайта, он по умолчанию не может быть универсальным в широком смысле этого слова, а должен быть универсальным для просмотра и навигации именно на сайте, Rise согласись, не очень удобно когда месяц и год выводятся текстом и только две кнопки вперед/назад, удобнее когда подобные кнопки есть и у месяца и у года, неудобно кнопками листать 20-30-50 месяцев или лет, гораздо удобнее когда есть выпадающий список, а ещё удобнее когда возле выпадающего списка есть кнопки вперёд/назад, так придётся делать гораздо меньше телодвижений для просмотра определённого месяца, также выпадающий список не удобен для навигации по годам если надо посмотреть календарь за +-50лет, тут гораздо удобнее поле ввода, но поле ввода не очень удобно для просмотра +-1 год, в этом случае гораздо удобнее кнопки, а когда есть и поле ввода и кнопки это намного удобнее, в одном случае можно воспользоваться кнопками, в другом полем ввода или выпадающим списком, так придётся делать на порядок меньше телодвижений, кнопка "сегодня" как бы мешает и раздражает если она есть всегда, но она намного удобнее для возврата к текущему месяцу, значит (я считаю) её нужно спрятать и показывать только тогда, когда на экране отображается нетекущий месяц, как так я пытаюсь рассуждать...
По поводу подсветки праздников, я хочу вывести всю информацию о празднике(как бы скопировать нужную часть с вики и тд) и пытаюсь разобраться как лучше заносить даты чтобы потом было удобнее, скопировать только часть текста из этих файлов для вставки в Нижний див под сеткой календаря...
как то так...
|
|
22.02.2019, 14:42
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
m~r.Nemo, мне кажется твой пример навигации не очень, дубли всех элементов навигации, много всяких кнопочек, всё это создает не удобство, а сложность, нужно найти какой-то баланс. Совсем не в тему select для чисел, select значит "выбирать", выбирать числа можно прямо из таблицы, в этом как-бы основной смысл их отображения. На поворот таблицы достаточно одной кнопки, работающей по принципу переключателя. Кнопка "сегодня" может быть всегда, если она работает, как указатель на текущее число, а не месяц. Выбор месяца и года бывает что конфигурируется в плагине, как например jquery ui datepicker, там может быть месяц и год текстом, а может быть и выпадающими списками, как вместе, так и по отдельности. Баланс стрелок и списков, как у них в примере, мне кажется как раз оптимальным. Интересно как там работает список лет, всегда показывает плюс минус 10 лет от активного года и этот диапазон динамически изменяется по мере выбора. Так что думаю достаточно будет две кнопки/иконки предыдущий и следующий месяц, два выпадающих списка месяц и год, две кнопки/иконки сегодня и поворот.
Все остальное что нужно, это какая-то штука, которая принимает месяц и год, а затем возвращает массив дат, по сути как в моем примере calendar.update(year, month), только более продвинутая, чтобы каждый элемент массива был не просто число, а некий объект свойств: год, месяц, число, неделя, день недели, еще что-то. Тогда станет совсем всё просто. Навигация будет обращаться к этой штуке при изменении месяца или года, та будет генерировать массив, затем останется отрисовать всё, пройдя циклом по массиву, сверяя данные дат в нем с какими-то другими данными (из объекта в файле например), проставляя нужные классы и тд. Вот здесь пример подобной штуки, как вариант.
Объект в файле - ну это может быть обычный объект js в обычном файле js, но это не точно, но для начала пойдет. Надо просто подумать как его оптимально структурировать, чтобы было удобно сверять данные.
Последний раз редактировалось Rise, 22.02.2019 в 14:55.
|
|
23.02.2019, 05:22
|
|
Аспирант
|
|
Регистрация: 27.10.2012
Сообщений: 80
|
|
Rise,
Позволь с тобой не согласиться по некоторым пунктам, и так
пункт первый: кнопка поворот, видимо ты не внимательно читал мои посты...
Сообщение от m~r.Nemo
|
и кнопка для изменения ориентации календаря(с меняющимся текстом, стрелка вправо при вертикальном расположении дней и вниз при горизонтальном),
|
тут я согласен что нужна только одна единственная кнопка работающая как переключатель, я разместил две только для того чтобы показать как она должна меняться, другими словами я просто отобразил как должны меняться свойства border-radius и transform rotate(90deg),а названия дней недели там лишнее, уберу, достаточно одной стрелки...
Пункт второй: кнопка "сегодня" по моему мнению неважно о чём разговор о сегодняшнем числе или месяце, мне представляется что она нужна только для того, чтобы, подчёркиваю в один клик, вернуться к сегодняшнему числу или месяцу, поэтому мне не совсем понятно зачем она нужна при отображении текущего месяца или числа, поэтому я и думаю что её надо скрыть и показывать при любом отклонении от текущего момента...
Пункт третий: навигация по годам,
я пытался искать календари в сети, посмотрел не один десяток вариантов, и пришёл к выводу что навигация на 30-50 лет очень нудна при использовании кнопок, также достаточно муторно с выпадающий списком, сначала на 10 лет, потом второй третий пятый раз? также муторно пользоваться селектом если там будут указаны все года, одним словом я пришёл к выводу что навигация по годам наиболее удобна именно с полем ввода, начал искать, найдя в сети календарь который выложен в первом посте, попробовал поюзать, выяснилось что он оптимален для юзанья на большие периоды (30-50 и более лет), но неудобен при отклонении на год 2-3, из предыдущего опыта юзанья других календарей я пришёл к выводу наиболее оптимальным вариантом будет поле ввода плюс кнопки, на этом варианте и остановился...
|
|
23.02.2019, 07:43
|
|
Аспирант
|
|
Регистрация: 27.10.2012
Сообщений: 80
|
|
Пункт четвёртый: навигация по месяцам, из предыдущего опыты юзанья разных календарей пришёл к выводу, что выпадающий список практически одинаков по удобству юзанья с вариантом где месяц выведен текстом с кнопками, просто раньше мне хотелось скорее из соображений эстетических чтобы был элемент формы, что то типа поля ввода или выпадающий список, но впринципе вывести месяц текстом и сьимитировать внешний вид выпадающего списка через стили элементарно, просто добавлю треугольник-стрелку... "∇"
Пункт пятый: навигация по числам - поскольку это не органайзер, не ежедневник, а именно календарь, мне тоже кажется что выбор дат из сетки будет лучше, плюс уменьшиться ширина календаря что органично повлияет на внешний вид, маленький размер текста с большими отступами смотрится не очень... тут возник вопрос, возможно ли как нибудь реализовать чтобы на разных страницах одного и того же сайта отображался календарь на одних стр с выбором числа, а на других без выбора числа?
рано или поздно прийду к подсветке праздников для разных стран, как лучше поступить если вдруг у кого-то не определило страну, и опредилило ошибочно? Может стоит добавить заранее выпадающий список с выбором страны, чтобы посетитель мог вручную выбрать страну?
|
|
23.02.2019, 13:22
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
m~r.Nemo,
п.2 Указатель может быть на 5-м числе, а сегодня допустим 10-е, кнопка "сегодня" передвинет указатель на сегодня. (указатель это выделение цветом при клике или еще что-то, другими словами это текущее выбранное значение). Иногда сегодня делают какой-то дефолтной датой, необязательно называть кнопку "сегодня", это может быть что-то типа "Home", т.е. календарь может стартовать не обязательно с сегодняшней даты.
п.3 Мне как то не очень ручной ввод, календарь принято листать.
п.4 Имитировать навигацию это не эстетика, а обман пользователя.
п.5 Не понимаю зачем это надо, когда есть числа в таблице.
Про выбор стран: а сайт у вас тоже переведен на все эти языки?
Последний раз редактировалось Rise, 23.02.2019 в 13:42.
|
|
23.02.2019, 19:36
|
|
Аспирант
|
|
Регистрация: 27.10.2012
Сообщений: 80
|
|
Rise,
п2. поскольку это календарь для сайта, то его предназначение просто показать сетку календаря за текущий месяц, плюс возможность навигации месяцам и годам, по умолчанию стоит текущие месяц и число, если кому-то надо что-то другое(не текущее число), пусть тот и заморачивается, мне же надо просто календарь с текущим числом/месяцем, как названа кнопка "сегодня", "назад", "вернуться" мне кажется не столь важным..
предназначение этой кнопки - в один клик вернуться к исходному отображении..
п.3 для листания календаря есть кнопки возле поля ввода...
п.4 у каждого свой вкус, сказал индус, натягивая ... обезьяну, не буду спорить спорить, ведь у каждого своё мнение, но мне так больше нравится...
п.5 поскольку в данном случае навигация по числам нужна исключительно для просмотра событий за этот день, то на части страниц показывать календарь с дивом под сеткой, на других страницах этот див (с событиями) лишний, и показать только сетку... В посте выше я ведь определился что селект для выбора числа лишний, и нужен выбор числа из сетки, следовательно на одних страницах с навигацией с выбором из сетки, на других стр в сетке просто текст а не кнопки/иконки... Другими словами на страницах открытых для всех выводится просто сетка, а на закрытых(регистрацией) страницах выводим календарь с дивом под сеткой и навигацией по числам...
А причём перевод? если вдруг скрипт ошибочно определил страну(впн и тд) , и русскоговорящий посетитель хочет видеть подсветку праздников своей страны, а не чужой, почему бы не дать ему возможность исправления вручную...
|
|
|
|