Я использую Mediawiki с расширением SMW в приватной обстановке для организации вымышленной вселенной, которую создает моя группа. У меня есть некоторые функциональные возможности, которые я хотел бы, и я хотел бы знать, есть ли расширение или возможность сделать свое собственное, которое позволило бы мне делать то, что я хочу делать.
В основном на простом английском … Я хочу знать, что происходит во вселенной в определенный момент (или продолжительность) во времени.
Я хотел бы дать пользователю возможность указать дату (простую, как год, или настолько точную, насколько это необходимо) или длительность, и возвращать каждое событие с длительностью, которая перекрывается.
Например.
Пользователь вводит дату (частичную, в данном случае) 309 г. до н.э.
Вики возвращает Событие 1 и Событие 4, так как данная дата находится в пределах продолжительности обоих.
Это позволило бы моим создателям запросить конкретную дату (и, возможно, продолжительность) и выяснить, какие события уже происходят, чтобы они могли скорректировать свои работы в соответствии с тем, что уже установлено. Это простая проверка конфликтов.
Если нет доступных расширений, способных справиться с этим, могу ли я где-нибудь исследовать что-то подобное? Я никогда не имел дело с датами в PHP. Я обычный бизнес-кодер, я никогда не делал сложные приложения.
В SMW нет встроенного типа данных «длительность», поэтому, возможно, самый простой подход — это использовать один дата собственности для даты начала и один для даты окончания (обратите внимание, что это должно быть BC
/AD
не BCE
/CE
или похожие):
[[Event starts at::3200 BC]]
[[Event ends at::198 BC]]
Затем вы можете выполнить запрос для каждого события, которое имеет дату начала до и дату окончания после определенной даты:
{{#ask:[[Event starts at::<1000 BC]] [[Event ends at::>1000 BC]]}}
Обратите внимание, что >
фактически означает «больше или равно» в синтаксисе запроса SMW.
Других решений пока нет …